aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/breaking_changes.md14
-rw-r--r--docs/ja/feature_haptic_feedback.md19
-rw-r--r--docs/ja/hardware_keyboard_guidelines.md23
-rw-r--r--docs/ja/tap_hold.md30
-rw-r--r--keyboards/bm60rgb/bm60rgb.h2
-rw-r--r--keyboards/bm60rgb/info.json6
-rw-r--r--keyboards/bm60rgb/keymaps/default/keymap.c4
-rw-r--r--keyboards/bm60rgb/keymaps/via/keymap.c8
-rw-r--r--keyboards/bm60rgb/rules.mk2
-rw-r--r--keyboards/dztech/dz65rgb/config.h17
-rw-r--r--keyboards/dztech/dz65rgb/dz65rgb.c132
-rw-r--r--keyboards/dztech/dz65rgb/dz65rgb.h41
-rw-r--r--keyboards/dztech/dz65rgb/readme.md14
-rw-r--r--keyboards/dztech/dz65rgb/v1/config.h15
-rw-r--r--keyboards/dztech/dz65rgb/v1/readme.md16
-rw-r--r--keyboards/dztech/dz65rgb/v1/v1.c123
-rw-r--r--keyboards/dztech/dz65rgb/v1/v1.h34
-rw-r--r--keyboards/dztech/dz65rgb/v2/config.h15
-rw-r--r--keyboards/dztech/dz65rgb/v2/readme.md16
-rw-r--r--keyboards/dztech/dz65rgb/v2/v2.c123
-rw-r--r--keyboards/dztech/dz65rgb/v2/v2.h34
-rwxr-xr-xkeyboards/dztech/dz65rgb/v3/config.h57
-rw-r--r--keyboards/dztech/dz65rgb/v3/readme.md19
-rwxr-xr-xkeyboards/dztech/dz65rgb/v3/rules.mk24
-rwxr-xr-xkeyboards/dztech/dz65rgb/v3/v3.c125
-rwxr-xr-xkeyboards/dztech/dz65rgb/v3/v3.h35
-rw-r--r--keyboards/handwired/split89/config.h2
-rw-r--r--keyboards/keebio/iris/keymaps/mnil/config.h29
-rw-r--r--keyboards/keebio/iris/keymaps/mnil/keymap.c94
-rw-r--r--keyboards/keebio/iris/keymaps/mnil/readme.md2
-rw-r--r--keyboards/keebio/iris/keymaps/mnil/rules.mk1
-rw-r--r--keyboards/kyria/kyria.h59
-rw-r--r--keyboards/kyria/rev1/rev1.h39
-rw-r--r--keyboards/kyria/rules.mk7
-rw-r--r--keyboards/mechwild/murphpad/config.h4
-rw-r--r--keyboards/mechwild/murphpad/keymaps/default/keymap.c59
-rw-r--r--keyboards/mechwild/murphpad/keymaps/via/keymap.c81
-rw-r--r--keyboards/mechwild/murphpad/readme.md2
-rw-r--r--keyboards/pistachio/config.h2
-rw-r--r--keyboards/pistachio/keymaps/rate/keymap.c69
-rw-r--r--keyboards/pistachio/keymaps/via/keymap.c78
-rw-r--r--keyboards/pistachio/keymaps/via/rules.mk1
-rw-r--r--keyboards/pistachio_mp/info.json44
-rw-r--r--keyboards/planck/keymaps/mnil/config.h23
-rw-r--r--keyboards/planck/keymaps/mnil/keymap.c60
-rw-r--r--keyboards/planck/keymaps/mnil/readme.md2
-rw-r--r--keyboards/switchplate/switchplate910/config.h87
-rw-r--r--keyboards/switchplate/switchplate910/info.json297
-rw-r--r--keyboards/switchplate/switchplate910/keymaps/default/keymap.c40
-rw-r--r--keyboards/switchplate/switchplate910/keymaps/default/readme.md3
-rw-r--r--keyboards/switchplate/switchplate910/keymaps/via/keymap.c57
-rw-r--r--keyboards/switchplate/switchplate910/keymaps/via/rules.mk (renamed from keyboards/xelus/pachi/keymaps/via/rules.mk)0
-rw-r--r--keyboards/switchplate/switchplate910/readme.md13
-rw-r--r--keyboards/switchplate/switchplate910/rules.mk22
-rw-r--r--keyboards/switchplate/switchplate910/switchplate910.c (renamed from keyboards/xelus/pachi/pachi.c)4
-rw-r--r--keyboards/switchplate/switchplate910/switchplate910.h43
-rw-r--r--keyboards/telophase/config.h53
-rw-r--r--keyboards/telophase/keymaps/default/keymap.c134
-rw-r--r--keyboards/telophase/matrix.c127
-rw-r--r--keyboards/telophase/readme.md13
-rw-r--r--keyboards/telophase/rules.mk39
-rw-r--r--keyboards/telophase/telophase.c44
-rw-r--r--keyboards/telophase/telophase.h77
-rw-r--r--keyboards/xelus/pachi/mini_32u4/keymaps/default/config.h (renamed from keyboards/xelus/pachi/keymaps/default/config.h)0
-rw-r--r--keyboards/xelus/pachi/mini_32u4/keymaps/default/keymap.c35
-rw-r--r--keyboards/xelus/pachi/mini_32u4/keymaps/default/readme.md (renamed from keyboards/xelus/pachi/keymaps/default/readme.md)0
-rw-r--r--keyboards/xelus/pachi/mini_32u4/keymaps/via/config.h (renamed from keyboards/xelus/pachi/keymaps/via/config.h)0
-rw-r--r--keyboards/xelus/pachi/mini_32u4/keymaps/via/keymap.c (renamed from keyboards/xelus/pachi/keymaps/via/keymap.c)2
-rw-r--r--keyboards/xelus/pachi/mini_32u4/keymaps/via/readme.md (renamed from keyboards/xelus/pachi/keymaps/via/readme.md)0
-rw-r--r--keyboards/xelus/pachi/mini_32u4/keymaps/via/rules.mk1
-rw-r--r--keyboards/xelus/pachi/mini_32u4/readme.md19
-rw-r--r--keyboards/xelus/pachi/readme.md3
-rw-r--r--keyboards/xelus/pachi/rev1/keymaps/default/config.h (renamed from keyboards/xelus/pachi/config.h)6
-rw-r--r--keyboards/xelus/pachi/rev1/keymaps/default/keymap.c35
-rw-r--r--keyboards/xelus/pachi/rev1/keymaps/default/readme.md2
-rw-r--r--keyboards/xelus/pachi/rev1/keymaps/via/config.h (renamed from keyboards/xelus/pachi/pachi.h)10
-rw-r--r--keyboards/xelus/pachi/rev1/keymaps/via/keymap.c (renamed from keyboards/xelus/pachi/keymaps/default/keymap.c)2
-rw-r--r--keyboards/xelus/pachi/rev1/keymaps/via/readme.md2
-rw-r--r--keyboards/xelus/pachi/rev1/keymaps/via/rules.mk1
-rw-r--r--keyboards/xelus/pachi/rev1/readme.md19
-rw-r--r--keyboards/xelus/pachi/rgb/config.h76
-rw-r--r--keyboards/xelus/pachi/rgb/halconf.h27
-rw-r--r--keyboards/xelus/pachi/rgb/keymaps/default/config.h19
-rw-r--r--keyboards/xelus/pachi/rgb/keymaps/default/keymap.c35
-rw-r--r--keyboards/xelus/pachi/rgb/keymaps/default/readme.md2
-rw-r--r--keyboards/xelus/pachi/rgb/keymaps/via/config.h24
-rw-r--r--keyboards/xelus/pachi/rgb/keymaps/via/keymap.c43
-rw-r--r--keyboards/xelus/pachi/rgb/keymaps/via/readme.md2
-rw-r--r--keyboards/xelus/pachi/rgb/keymaps/via/rules.mk1
-rw-r--r--keyboards/xelus/pachi/rgb/mcuconf.h28
-rw-r--r--keyboards/xelus/pachi/rgb/readme.md19
-rw-r--r--keyboards/xelus/pachi/rgb/rgb.c239
-rw-r--r--keyboards/xelus/pachi/rgb/rgb.h36
-rw-r--r--keyboards/xelus/pachi/rgb/rules.mk32
-rw-r--r--keyboards/xelus/trinityxttkl/config.h35
-rw-r--r--keyboards/xelus/trinityxttkl/trinityxttkl.c16
-rw-r--r--keyboards/xelus/trinityxttkl/trinityxttkl.h16
-rw-r--r--users/mnil/config.h21
-rw-r--r--users/mnil/mnil.c146
-rw-r--r--users/mnil/mnil.h85
-rw-r--r--users/mnil/readme.md23
-rw-r--r--users/mnil/rules.mk7
102 files changed, 3076 insertions, 652 deletions
diff --git a/docs/breaking_changes.md b/docs/breaking_changes.md
index 2ad8b5a14..a1a56bd45 100644
--- a/docs/breaking_changes.md
+++ b/docs/breaking_changes.md
@@ -56,7 +56,7 @@ This happens immediately after the previous `develop` branch is merged.
56 * [ ] `git commit -m 'Branch point for <DATE> Breaking Change'` 56 * [ ] `git commit -m 'Branch point for <DATE> Breaking Change'`
57 * [ ] `git tag breakpoint_<YYYY>_<MM>_<DD>` 57 * [ ] `git tag breakpoint_<YYYY>_<MM>_<DD>`
58 * [ ] `git tag <next_version>` # Prevent the breakpoint tag from confusing version incrementing 58 * [ ] `git tag <next_version>` # Prevent the breakpoint tag from confusing version incrementing
59 * [ ] `git push origin develop` 59 * [ ] `git push upstream develop`
60 * [ ] `git push --tags` 60 * [ ] `git push --tags`
61 61
62## 4 Weeks Before Merge 62## 4 Weeks Before Merge
@@ -86,17 +86,21 @@ This happens immediately after the previous `develop` branch is merged.
86* `qmk_firmware` git commands 86* `qmk_firmware` git commands
87 * [ ] `git checkout develop` 87 * [ ] `git checkout develop`
88 * [ ] `git pull --ff-only` 88 * [ ] `git pull --ff-only`
89 * [ ] `git rebase origin/master`
90 * [ ] Edit `readme.md` 89 * [ ] Edit `readme.md`
91 * [ ] Remove the notes about `develop` 90 * [ ] Remove the notes about `develop`
92 * [ ] Roll up the ChangeLog into one file. 91 * [ ] Roll up the ChangeLog into one file.
93 * [ ] `git commit -m 'Merge point for <DATE> Breaking Change'` 92 * [ ] `git commit -m 'Merge point for <DATE> Breaking Change'`
94 * [ ] `git push origin develop` 93 * [ ] `git push upstream develop`
95* GitHub Actions 94* GitHub Actions
96 * [ ] Create a PR for `develop` 95 * [ ] Create a PR for `develop`
97 * [ ] Make sure travis comes back clean 96 * [ ] Make sure travis comes back clean
98 * [ ] Merge `develop` PR 97 * [ ] **Turn off 'Automatically delete head branches' for the repository** -- confirm with @qmk/directors that it is done before continuing
98* `qmk_firmware` git commands
99 * [ ] `git checkout master`
100 * [ ] `git pull --ff-only`
101 * [ ] `git merge --no-ff develop`
102 * [ ] `git push upstream master`
99 103
100## Post-merge operations 104## Post-merge operations
101 105
102* (Optional) [update ChibiOS + ChibiOS-Contrib on `develop`](chibios_upgrade_instructions.md) \ No newline at end of file 106* (Optional) [update ChibiOS + ChibiOS-Contrib on `develop`](chibios_upgrade_instructions.md)
diff --git a/docs/ja/feature_haptic_feedback.md b/docs/ja/feature_haptic_feedback.md
index b9b426701..158079725 100644
--- a/docs/ja/feature_haptic_feedback.md
+++ b/docs/ja/feature_haptic_feedback.md
@@ -1,8 +1,8 @@
1# 触覚フィードバック 1# 触覚フィードバック
2 2
3<!--- 3<!---
4 original document: 0.8.123:docs/feature_haptic_feedback.md 4 original document: 0.12.41:docs/feature_haptic_feedback.md
5 git diff 0.8.123 HEAD -- docs/feature_haptic_feedback.md | cat 5 git diff 0.12.41 HEAD -- docs/feature_haptic_feedback.md | cat
6--> 6-->
7 7
8## 触覚フィードバック の rules.mk オプション 8## 触覚フィードバック の rules.mk オプション
@@ -31,7 +31,7 @@
31| `HPT_TOG` | 触覚フィードバックのオン/オフを切り替え | 31| `HPT_TOG` | 触覚フィードバックのオン/オフを切り替え |
32| `HPT_RST` | 触覚フィードバック設定をデフォルトに戻す | 32| `HPT_RST` | 触覚フィードバック設定をデフォルトに戻す |
33| `HPT_FBK` | キー押下またはリリースまたはその両方でフィードバックを切り替え | 33| `HPT_FBK` | キー押下またはリリースまたはその両方でフィードバックを切り替え |
34| `HPT_BUZ` | ソレノイドの振動のオン/オフを切り替え | 34| `HPT_BUZ` | ソレノイドのザー音オン/オフを切り替え |
35| `HPT_MODI` | 次の DRV2605L 波形に移動 | 35| `HPT_MODI` | 次の DRV2605L 波形に移動 |
36| `HPT_MODD` | 前の DRV2605L 波形に移動 | 36| `HPT_MODD` | 前の DRV2605L 波形に移動 |
37| `HPT_CONT` | 連続触覚モードのオン/オフを切り替え | 37| `HPT_CONT` | 連続触覚モードのオン/オフを切り替え |
@@ -44,7 +44,7 @@
44 44
45ほとんどの MCU はソレノイドのコイルを駆動するために必要な電流を供給できないため、最初に MOSFET を介してソレノイドを駆動する回路を構築する必要があります。 45ほとんどの MCU はソレノイドのコイルを駆動するために必要な電流を供給できないため、最初に MOSFET を介してソレノイドを駆動する回路を構築する必要があります。
46 46
47[Adafruit が提供する配線図](https://playground.arduino.cc/uploads/Learning/solenoid_driver.pdf) 47[Adafruit が提供する配線図](https://cdn-shop.adafruit.com/product-files/412/412_solenoid_driver.pdf)
48 48
49 49
50| 設定 | デフォルト | 説明 | 50| 設定 | デフォルト | 説明 |
@@ -53,8 +53,15 @@
53| `SOLENOID_DEFAULT_DWELL` | `12` ms | ソレノイドのデフォルトの滞留時間を設定する。 | 53| `SOLENOID_DEFAULT_DWELL` | `12` ms | ソレノイドのデフォルトの滞留時間を設定する。 |
54| `SOLENOID_MIN_DWELL` | `4` ms | 滞留時間の下限を設定する。 | 54| `SOLENOID_MIN_DWELL` | `4` ms | 滞留時間の下限を設定する。 |
55| `SOLENOID_MAX_DWELL` | `100` ms | 滞留時間の上限を設定する。 | 55| `SOLENOID_MAX_DWELL` | `100` ms | 滞留時間の上限を設定する。 |
56 56| `SOLENOID_DWELL_STEP_SIZE` | `1` ms | `HPT_DWL*` キーコードが送信される時に使われるステップサイズ |
57?> 滞留時間とは、「プランジャー」が作動したままになる時間です。滞留時間により、ソレノイドの音が変わります。 57| `SOLENOID_DEFAULT_BUZZ` | `0` (無効) | HPT_RST では、この値が "1" の場合、ブザー音が "on" に設定されます |
58| `SOLENOID_BUZZ_ACTUATED` | `SOLENOID_MIN_DWELL` | ソレノイドがブザー音モードの場合の動作時間 |
59| `SOLENOID_BUZZ_NONACTUATED` | `SOLENOID_MIN_DWELL` | ソレノイドがブザー音モードの場合の非動作時間 |
60
61* ソレノイドのブザー音がオフの場合、滞留時間は「プランジャー」が作動したままになる時間です。滞留時間により、ソレノイドの音が変わります。
62* ソレノイドのブザー音がオンの場合、滞留時間は振動の長さを設定しますが、`SOLENOID_BUZZ_ACTUATED` と `SOLENOID_BUZZ_NONACTUATED` はブザー音の間の(非)動作時間を設定します。
63* 現在の実装では、上記の時間設定のいずれについても、設定の精度はキーボードがマトリックスをスキャンできる速度によって影響を受ける可能性があります。
64 したがって、キーボードのスキャンルーチンが遅い場合は、`SOLENOID_DWELL_STEP_SIZE` をキーボードのスキャンに掛かる時間よりもわずかに小さい値に設定することをお勧めします。
58 65
59ブートローダ実行中に一部のピンが給電されているかもしれず (例えば、STM32F303 チップ上の A13)、そうすると書き込みプロセスの間ずっとソレノイドがオン状態になることに注意してください。これはソレノイドを加熱し損傷を与えるかもしれません。ソレノイドが接続されているピンがブートローダ/DFU 実行中にソレノイドをオンにしていることが分かった場合は、他のピンを選択してください。 66ブートローダ実行中に一部のピンが給電されているかもしれず (例えば、STM32F303 チップ上の A13)、そうすると書き込みプロセスの間ずっとソレノイドがオン状態になることに注意してください。これはソレノイドを加熱し損傷を与えるかもしれません。ソレノイドが接続されているピンがブートローダ/DFU 実行中にソレノイドをオンにしていることが分かった場合は、他のピンを選択してください。
60 67
diff --git a/docs/ja/hardware_keyboard_guidelines.md b/docs/ja/hardware_keyboard_guidelines.md
index faf021776..8a9127abc 100644
--- a/docs/ja/hardware_keyboard_guidelines.md
+++ b/docs/ja/hardware_keyboard_guidelines.md
@@ -2,12 +2,31 @@
2 2
3<!--- 3<!---
4 grep --no-filename "^[ ]*git diff" docs/ja/*.md | sh 4 grep --no-filename "^[ ]*git diff" docs/ja/*.md | sh
5 original document: 0.10.33:docs/hardware_keyboard_guidelines.md 5 original document: 0.12.41:docs/hardware_keyboard_guidelines.md
6 git diff 0.10.33 HEAD -- docs/hardware_keyboard_guidelines.md | cat 6 git diff 0.12.41 HEAD -- docs/hardware_keyboard_guidelines.md | cat
7--> 7-->
8 8
9QMK は開始以来、コミュニティにおけるキーボードの作成や保守に貢献しているあなたのような人たちのおかげで飛躍的に成長しました。私たちが成長するにつれて、うまくやるためのいくつかのパターンを発見しました。他の人たちがあなたの苦労の恩恵を受けやすくするため、それにあわせてもらえるようお願いします。 9QMK は開始以来、コミュニティにおけるキーボードの作成や保守に貢献しているあなたのような人たちのおかげで飛躍的に成長しました。私たちが成長するにつれて、うまくやるためのいくつかのパターンを発見しました。他の人たちがあなたの苦労の恩恵を受けやすくするため、それにあわせてもらえるようお願いします。
10 10
11## QMK Lint を使う
12
13キーボードの問題をチェックできるツール、`qmk lint` を提供しています。キーボードとキーマップで作業をしている間は、頻繁に使うことをお勧めします。
14
15チェックに合格した例:
16
17```
18$ qmk lint -kb rominronin/katana60/rev2
19Ψ Lint check passed!
20```
21
22チェックに失敗した例:
23
24```
25$ qmk lint -kb clueboard/66/rev3
26☒ Missing keyboards/clueboard/66/rev3/readme.md
27☒ Lint check failed!
28```
29
11## あなたのキーボード/プロジェクトの名前を決める 30## あなたのキーボード/プロジェクトの名前を決める
12 31
13キーボードの名前は全て小文字で、アルファベット、数字、アンダースコア(`_`)のみで構成されています。アンダースコア(`_`)で始めてはいけません。スラッシュ(`/`)はサブフォルダの区切り文字として使用されます。 32キーボードの名前は全て小文字で、アルファベット、数字、アンダースコア(`_`)のみで構成されています。アンダースコア(`_`)で始めてはいけません。スラッシュ(`/`)はサブフォルダの区切り文字として使用されます。
diff --git a/docs/ja/tap_hold.md b/docs/ja/tap_hold.md
index bf23ae4ab..07242821a 100644
--- a/docs/ja/tap_hold.md
+++ b/docs/ja/tap_hold.md
@@ -1,8 +1,8 @@
1# タップホールド設定オプション 1# タップホールド設定オプション
2 2
3<!--- 3<!---
4 original document: 0.10.33:docs/tap_hold.md 4 original document: 0.12.41:docs/tap_hold.md
5 git diff 0.10.33 HEAD -- docs/tap_hold.md | cat 5 git diff 0.12.41 HEAD -- docs/tap_hold.md | cat
6--> 6-->
7 7
8タップホールドオプションは素晴らしいものですが、問題が無いわけではありません。デフォルト設定を適切なものにしようとしましたが、一部の人にとってまだ問題を引き起こすかもしれません。 8タップホールドオプションは素晴らしいものですが、問題が無いわけではありません。デフォルト設定を適切なものにしようとしましたが、一部の人にとってまだ問題を引き起こすかもしれません。
@@ -92,7 +92,7 @@ bool get_permissive_hold(uint16_t keycode, keyrecord_t *record) {
92#define IGNORE_MOD_TAP_INTERRUPT 92#define IGNORE_MOD_TAP_INTERRUPT
93``` 93```
94 94
95許容ホールドと同様に、これは高速なタイピストのためのファームウェアの処理方法を変更します。モッドタップキーを押し、他のキーを押し、モッドタップキーを放し、通常のキーを放すと、通常は両方のキーのタッピング機能が出力されます。これはローリングコンボキーには望ましくないかもしれません。 95許容ホールドと同様に、これは高速なタイピストのためのファームウェアの処理方法を変更します。モッドタップキーを押し、他のキーを押し、モッドタップキーを放し、通常のキーを放すと、`TAPPING_TERM` 内で押された場合でも、通常はモッドと通常のキーが出力されます。これは、ローリングコンボキーや、頻繁に使用するキー(例えば、`RCTL_T(KC_QUOT)`)にモッドタップを使う高速なタイピストには望ましくない場合があります。
96 96
97`モッドタップ割り込みの無視`を設定するには、両方のキーを `TAPPING_TERM` の間ホールドすると、(その修飾キーの)ホールド機能を実行する必要があります。 97`モッドタップ割り込みの無視`を設定するには、両方のキーを `TAPPING_TERM` の間ホールドすると、(その修飾キーの)ホールド機能を実行する必要があります。
98 98
@@ -103,7 +103,7 @@ bool get_permissive_hold(uint16_t keycode, keyrecord_t *record) {
103- `SFT_T(KC_A)` を放す 103- `SFT_T(KC_A)` を放す
104- `KC_X` を放す 104- `KC_X` を放す
105 105
106通常、これは `X` (`SHIFT`+`x`) を送信します。`モッドタップ割り込みの無視` を有効にすると、ホールドアクションを登録するには、両方のキーを `TAPPING_TERM` の間ホールドする必要があります。この場合、素早いタップは `ax` を送信しますが、両方をホールドすると、`X` (`SHIFT`+`x`) を出力します。 106通常、これは大文字の `X` (`SHIFT`+`x`)、またはモッド + キーを送信します。`モッドタップ割り込みの無視` を有効にすると、ホールドアクションを登録するには、両方のキーを `TAPPING_TERM` の間ホールドする必要があります。この場合、素早いタップは `ax` を送信しますが、両方をホールドすると、大文字の `X` (`SHIFT`+`x`) を出力します。
107 107
108 108
109?> __注意__: これはモディファイアにのみ関係し、レイヤー切り替えキーには関係しません。 109?> __注意__: これはモディファイアにのみ関係し、レイヤー切り替えキーには関係しません。
@@ -137,8 +137,7 @@ bool get_ignore_mod_tap_interrupt(uint16_t keycode, keyrecord_t *record) {
137#define TAPPING_FORCE_HOLD 137#define TAPPING_FORCE_HOLD
138``` 138```
139 139
140タップの後でユーザがキーをホールドすると、ホールド機能がアクティブになるのではなく、デフォルトでタッピング機能が繰り返されます。これにより、デュアルロールキーのタッピング機能を自動繰り返しする機能を維持することができます。 140タップの後でユーザがキーをホールドすると、ホールド機能がアクティブになるのではなく、デフォルトでタッピング機能が繰り返されます。これにより、デュアルロールキーのタッピング機能を自動繰り返しする機能を維持することができます。`TAPPING_FORCE_HOLD` は、デュアルロールキーをタップした後ホールドした場合、ユーザがホールド機能をアクティブにする機能を削除します。
141`TAPPING_FORCE_HOLD` は、デュアルロールキーをタップした後ホールドした場合、ユーザがホールド機能をアクティブにする機能を削除します。
142 141
143例: 142例:
144 143
@@ -185,6 +184,25 @@ bool get_tapping_force_hold(uint16_t keycode, keyrecord_t *record) {
185 184
186例えば、他のキーを押すことなく `LT(2, KC_SPACE)` を押したり放したりしても何も起こりません。これを有効にすると、代わりに `KC_SPACE` を送信します。 185例えば、他のキーを押すことなく `LT(2, KC_SPACE)` を押したり放したりしても何も起こりません。これを有効にすると、代わりに `KC_SPACE` を送信します。
187 186
187この機能をより細かく制御するために、以下を `config.h` に追加することができます:
188
189```c
190#define RETRO_TAPPING_PER_KEY
191```
192
193そして、以下の関数をキーマップに追加します:
194
195```c
196bool get_retro_tapping(uint16_t keycode, keyrecord_t *record) {
197 switch (keycode) {
198 case LT(2, KC_SPACE):
199 return true;
200 default:
201 return false;
202 }
203}
204```
205
188## キー別の関数にキーレコードを含めるのはなぜですか? 206## キー別の関数にキーレコードを含めるのはなぜですか?
189 207
190「キー別」の関数全てにキーレコードを含んでいることに気付いたかもしれません。そしてなぜそうしたのか不思議に思っているかもしれません。 208「キー別」の関数全てにキーレコードを含んでいることに気付いたかもしれません。そしてなぜそうしたのか不思議に思っているかもしれません。
diff --git a/keyboards/bm60rgb/bm60rgb.h b/keyboards/bm60rgb/bm60rgb.h
index 705539fc9..4a3dc2e83 100644
--- a/keyboards/bm60rgb/bm60rgb.h
+++ b/keyboards/bm60rgb/bm60rgb.h
@@ -17,7 +17,7 @@
17 17
18#include "quantum.h" 18#include "quantum.h"
19 19
20#define LAYOUT( \ 20#define LAYOUT_60_ansi_arrow( \
21 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ 21 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
22 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ 22 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
23 K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \ 23 K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \
diff --git a/keyboards/bm60rgb/info.json b/keyboards/bm60rgb/info.json
index 5871bd5bc..d467a0405 100644
--- a/keyboards/bm60rgb/info.json
+++ b/keyboards/bm60rgb/info.json
@@ -4,9 +4,11 @@
4 "maintainer": "qmk", 4 "maintainer": "qmk",
5 "width": 15, 5 "width": 15,
6 "height": 5, 6 "height": 5,
7 "layout_aliases": {
8 "LAYOUT": "LAYOUT_60_ansi_arrow"
9 },
7 "layouts": { 10 "layouts": {
8 "LAYOUT_60_iso_arrow": { 11 "LAYOUT_60_ansi_arrow": {
9 "key_count": 63,
10 "layout": [ 12 "layout": [
11 {"label":"K00 (B0,D0)", "x":0, "y":0}, 13 {"label":"K00 (B0,D0)", "x":0, "y":0},
12 {"label":"K01 (B0,D1)", "x":1, "y":0}, 14 {"label":"K01 (B0,D1)", "x":1, "y":0},
diff --git a/keyboards/bm60rgb/keymaps/default/keymap.c b/keyboards/bm60rgb/keymaps/default/keymap.c
index 9099a0407..e8be1cccf 100644
--- a/keyboards/bm60rgb/keymaps/default/keymap.c
+++ b/keyboards/bm60rgb/keymaps/default/keymap.c
@@ -16,14 +16,14 @@
16#include QMK_KEYBOARD_H 16#include QMK_KEYBOARD_H
17 17
18const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 18const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
19 [0] = LAYOUT( 19 [0] = LAYOUT_60_ansi_arrow(
20 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, 20 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,
21 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, 21 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,
22 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, 22 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,
23 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, KC_UP, KC_SLSH, 23 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, KC_UP, KC_SLSH,
24 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT 24 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
25 ), 25 ),
26 [1] = LAYOUT( 26 [1] = LAYOUT_60_ansi_arrow(
27 RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, 27 RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______,
28 _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, 28 _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______,
29 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 29 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
diff --git a/keyboards/bm60rgb/keymaps/via/keymap.c b/keyboards/bm60rgb/keymaps/via/keymap.c
index d84aaf525..da2f6e8ce 100644
--- a/keyboards/bm60rgb/keymaps/via/keymap.c
+++ b/keyboards/bm60rgb/keymaps/via/keymap.c
@@ -16,28 +16,28 @@
16#include QMK_KEYBOARD_H 16#include QMK_KEYBOARD_H
17 17
18const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 18const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
19 [0] = LAYOUT( 19 [0] = LAYOUT_60_ansi_arrow(
20 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, 20 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,
21 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, 21 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,
22 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, 22 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,
23 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, KC_UP, KC_SLSH, 23 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, KC_UP, KC_SLSH,
24 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT 24 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
25 ), 25 ),
26 [1] = LAYOUT( 26 [1] = LAYOUT_60_ansi_arrow(
27 RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, 27 RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______,
28 _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, 28 _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______,
29 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 29 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
30 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 30 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
31 _______, _______, _______, _______, _______, _______, _______, _______, _______ 31 _______, _______, _______, _______, _______, _______, _______, _______, _______
32 ), 32 ),
33 [2] = LAYOUT( 33 [2] = LAYOUT_60_ansi_arrow(
34 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 34 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
35 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 35 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
36 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 36 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
37 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 37 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
38 _______, _______, _______, _______, _______, _______, _______, _______, _______ 38 _______, _______, _______, _______, _______, _______, _______, _______, _______
39 ), 39 ),
40 [3] = LAYOUT( 40 [3] = LAYOUT_60_ansi_arrow(
41 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 41 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
42 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 42 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
43 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 43 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
diff --git a/keyboards/bm60rgb/rules.mk b/keyboards/bm60rgb/rules.mk
index bf1b1ffa4..49f18fcbf 100644
--- a/keyboards/bm60rgb/rules.mk
+++ b/keyboards/bm60rgb/rules.mk
@@ -33,5 +33,7 @@ RGB_MATRIX_ENABLE = yes
33RGB_MATRIX_DRIVER = WS2812 33RGB_MATRIX_DRIVER = WS2812
34LTO_ENABLE = yes 34LTO_ENABLE = yes
35 35
36LAYOUTS = 60_ansi_arrow
37
36# partially generated by KBFirmware JSON to QMK Parser 38# partially generated by KBFirmware JSON to QMK Parser
37# https://noroadsleft.github.io/kbf_qmk_converter/ 39# https://noroadsleft.github.io/kbf_qmk_converter/
diff --git a/keyboards/dztech/dz65rgb/config.h b/keyboards/dztech/dz65rgb/config.h
index b8c5759db..71487efbd 100644
--- a/keyboards/dztech/dz65rgb/config.h
+++ b/keyboards/dztech/dz65rgb/config.h
@@ -1,3 +1,18 @@
1/* Copyright 2021 DZTECH <moyi4681@live.cn>
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
3#include "config_common.h" 18#include "config_common.h"
diff --git a/keyboards/dztech/dz65rgb/dz65rgb.c b/keyboards/dztech/dz65rgb/dz65rgb.c
index aa5bf6601..8340d8fce 100644
--- a/keyboards/dztech/dz65rgb/dz65rgb.c
+++ b/keyboards/dztech/dz65rgb/dz65rgb.c
@@ -1,117 +1,17 @@
1/* Copyright 2021 DZTECH <moyi4681@live.cn>
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 "dz65rgb.h" 17#include "dz65rgb.h"
2
3#ifdef RGB_MATRIX_ENABLE
4const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
5 { 0, C8_8, C7_8, C6_8 },
6 { 0, C9_8, C7_7, C6_7 },
7 { 0, C9_7, C8_7, C6_6 },
8 { 0, C9_6, C8_6, C7_6 },
9 { 0, C9_5, C8_5, C7_5 },
10 { 0, C9_4, C8_4, C7_4 },
11 { 0, C9_3, C8_3, C7_3 },
12 { 0, C9_2, C8_2, C7_2 },
13 { 0, C9_1, C8_1, C7_1 },
14 { 0, C2_9, C3_9, C4_9 },
15 { 0, C1_9, C3_10, C4_10 },
16 { 0, C1_10, C2_10, C4_11 },
17 { 0, C1_11, C2_11, C3_11 },
18 { 0, C1_13, C2_13, C3_13 },
19 { 0, C1_14, C2_14, C3_14 },
20
21 { 0, C1_7, C2_7, C3_7 },
22 { 0, C1_6, C2_6, C3_6 },
23 { 0, C1_5, C2_5, C3_5 },
24 { 0, C1_4, C2_4, C3_4 },
25 { 0, C1_3, C2_3, C3_3 },
26 { 0, C1_2, C2_2, C4_3 },
27 { 0, C1_1, C3_2, C4_2 },
28 { 0, C2_1, C3_1, C4_1 },
29 { 0, C9_9, C8_9, C7_9 },
30 { 0, C9_10, C8_10, C7_10 },
31 { 0, C9_11, C8_11, C7_11 },
32 { 0, C9_12, C8_12, C7_12 },
33 { 0, C9_13, C8_13, C7_13 },
34 { 0, C9_14, C8_14, C7_14 },
35 { 0, C1_15, C2_15, C3_15 },
36
37 { 0, C1_8, C2_8, C3_8 },
38 { 1, C9_6, C8_6, C7_6 },
39 { 1, C9_5, C8_5, C7_5 },
40 { 1, C9_4, C8_4, C7_4 },
41 { 1, C9_3, C8_3, C7_3 },
42 { 1, C9_2, C8_2, C7_2 },
43 { 1, C9_1, C8_1, C7_1 },
44 { 1, C2_9, C3_9, C4_9 },
45 { 1, C1_9, C3_10, C4_10 },
46 { 1, C1_10, C2_10, C4_11 },
47 { 1, C1_11, C2_11, C3_11 },
48 { 1, C1_12, C2_12, C3_12 },
49 { 1, C1_13, C2_13, C3_13 },
50 { 0, C1_16, C2_16, C3_16 },
51
52 { 1, C9_8, C7_7, C6_7 },
53 { 1, C1_5, C2_5, C3_5 },
54 { 1, C1_4, C2_4, C3_4 },
55 { 1, C1_3, C2_3, C3_3 },
56 { 1, C1_2, C2_2, C4_3 },
57 { 1, C1_1, C3_2, C4_2 },
58 { 1, C9_9, C8_9, C7_9 },
59 { 1, C9_10, C8_10, C7_10 },
60 { 1, C9_11, C8_11, C7_11 },
61 { 1, C9_12, C8_12, C7_12 },
62 { 1, C1_14, C2_14, C3_14 },
63 { 1, C1_15, C2_15, C3_15 },
64 { 1, C1_16, C2_16, C3_16 },
65 { 0, C9_15, C8_15, C6_14 },
66
67 { 1, C8_8, C7_8, C6_8 },
68 { 1, C1_8, C2_8, C3_8 },
69 { 1, C1_7, C2_7, C3_7 },
70 { 1, C2_1, C3_1, C4_1 },
71 { 1, C9_14, C8_14, C7_14 },
72 { 1, C9_15, C8_15, C6_14 },
73 { 1, C9_16, C7_15, C6_15 },
74 { 1, C8_16, C7_16, C6_16 },
75 { 0, C8_16, C7_16, C6_16 },
76 { 0, C9_16, C7_15, C6_15 }
77};
78
79led_config_t g_led_config = {
80 {
81 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 },
82 { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 },
83 { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED, 42, 43 },
84 { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, NO_LED, 56, 57 },
85 { 58, 59, 60, NO_LED, NO_LED, 61, NO_LED, NO_LED, 62, 63, 64, 65, NO_LED, 66, 67 }
86 }, {
87 { 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 203, 0 }, { 224, 0 },
88 { 4, 16 }, { 23, 16 }, { 38, 16 }, { 53, 16 }, { 68, 16 }, { 83, 16 }, { 98, 16 }, { 113, 16 }, { 128, 16 }, { 143, 16 }, { 158, 16 }, { 173, 16 }, { 188, 16 }, { 206, 16 }, { 224, 16 },
89 { 6, 32 }, { 26, 32 }, { 41, 32 }, { 56, 32 }, { 71, 32 }, { 86, 32 }, { 101, 32 }, { 116, 32 }, { 131, 32 }, { 146, 32 }, { 161, 32 }, { 176, 32 }, { 201, 32 }, { 224, 32 },
90 { 9, 48 }, { 34, 48 }, { 49, 48 }, { 64, 48 }, { 79, 48 }, { 94, 48 }, { 109, 48 }, { 124, 48 }, { 139, 48 }, { 154, 48 }, { 169, 48 }, { 189, 48 }, { 210, 48 }, { 224, 48 },
91 { 2, 64 }, { 21, 64 }, { 39, 64 }, { 96, 64 }, { 150, 64 }, { 165, 64 }, { 180, 64 }, { 195, 64 }, { 210, 64 }, { 224, 64 }
92 }, {
93 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
94 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
95 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
96 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
97 1, 1, 1, 4, 1, 1, 1, 1, 1, 1
98 }
99};
100
101void suspend_power_down_kb(void) {
102 rgb_matrix_set_suspend_state(true);
103 suspend_power_down_user();
104}
105
106void suspend_wakeup_init_kb(void) {
107 rgb_matrix_set_suspend_state(false);
108 suspend_wakeup_init_user();
109}
110
111__attribute__ ((weak))
112void rgb_matrix_indicators_user(void) {
113 if (host_keyboard_led_state().caps_lock) {
114 rgb_matrix_set_color(30, 0xFF, 0xFF, 0xFF);
115 }
116}
117#endif
diff --git a/keyboards/dztech/dz65rgb/dz65rgb.h b/keyboards/dztech/dz65rgb/dz65rgb.h
index 371facc89..734a1cff3 100644
--- a/keyboards/dztech/dz65rgb/dz65rgb.h
+++ b/keyboards/dztech/dz65rgb/dz65rgb.h
@@ -1,19 +1,28 @@
1/* Copyright 2021 DZTECH <moyi4681@live.cn>
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
19#ifdef KEYBOARD_dztech_dz65rgb_v1
20 #include "v1.h"
21#endif
22#ifdef KEYBOARD_dztech_dz65rgb_v2
23 #include "v2.h"
24#endif
25#ifdef KEYBOARD_dztech_dz65rgb_v3
26 #include "v3.h"
27#endif
3#include "quantum.h" 28#include "quantum.h"
4
5#define XXX KC_NO
6
7#define LAYOUT_65_ansi( \
8 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
9 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \
10 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, \
11 K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \
12 K40, K41, K42, K45, K48, K49, K4A, K4B, K4D, K4E \
13) { \
14 { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
15 { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \
16 { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, XXX, K2D, K2E }, \
17 { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, XXX, K3D, K3E }, \
18 { K40, K41, K42, XXX, XXX, K45, XXX, XXX, K48, K49, K4A, K4B, XXX, K4D, K4E } \
19}
diff --git a/keyboards/dztech/dz65rgb/readme.md b/keyboards/dztech/dz65rgb/readme.md
index 8d7b95b3d..e4d7a7a35 100644
--- a/keyboards/dztech/dz65rgb/readme.md
+++ b/keyboards/dztech/dz65rgb/readme.md
@@ -3,17 +3,25 @@
3A customizable 65% RGB keyboard. 3A customizable 65% RGB keyboard.
4 4
5* Keyboard Maintainer: [moyi4681](https://github.com/moyi4681) 5* Keyboard Maintainer: [moyi4681](https://github.com/moyi4681)
6* Hardware Supported: DZ65RGB V1 and V2 6* Hardware Supported: DZ65RGB V1,V2 and V3
7* Hardware Availability: [KBDfans](https://kbdfans.com/) 7* Hardware Availability: [KBDfans](https://kbdfans.com/)
8 8
9There are two versions of the DZ65RGB. Please use the appropriate firmware for your board. 9There are three versions of the DZ65RGB. Please use the appropriate firmware for your board.
10 10
11* V1: STM32F303 (Arm), takes .bin files 11* V1: STM32F303 (Arm), takes .bin files
12* V2: ATmega32U4 (AVR), takes .hex files 12* V2: ATmega32U4 (AVR), takes .hex files, is31fl3731 rgbmatrix driver
13* V3: ATmega32U4 (AVR), takes .bin files, is31fl3741 rgbmatrix driver
14
15## Bootloader mode
16
17To put in bootloader mode, hold the `Esc` key while plugging in the USB cable. or use reset key behind the pcb.
18
19## Making firmware
13 20
14Make example for this keyboard (after setting up your build environment): 21Make example for this keyboard (after setting up your build environment):
15 22
16 make dztech/dz65rgb/v1:default # Arm (STM32F303) 23 make dztech/dz65rgb/v1:default # Arm (STM32F303)
17 make dztech/dz65rgb/v2:default # AVR (ATmega32U4) 24 make dztech/dz65rgb/v2:default # AVR (ATmega32U4)
25 make dztech/dz65rgb/v3:default # AVR (ATmega32U4)
18 26
19See 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). 27See 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/dztech/dz65rgb/v1/config.h b/keyboards/dztech/dz65rgb/v1/config.h
index 1b0aa5205..1ecd9002c 100644
--- a/keyboards/dztech/dz65rgb/v1/config.h
+++ b/keyboards/dztech/dz65rgb/v1/config.h
@@ -1,3 +1,18 @@
1/* Copyright 2019 DZTECH <moyi4681@live.cn>
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 */
1#pragma once 16#pragma once
2 17
3/* USB Device descriptor parameter */ 18/* USB Device descriptor parameter */
diff --git a/keyboards/dztech/dz65rgb/v1/readme.md b/keyboards/dztech/dz65rgb/v1/readme.md
new file mode 100644
index 000000000..ac433e5b8
--- /dev/null
+++ b/keyboards/dztech/dz65rgb/v1/readme.md
@@ -0,0 +1,16 @@
1# DZ65RGB V1
2
3A customizable 65% RGB keyboard.
4
5* Keyboard Maintainer: [moyi4681](https://github.com/moyi4681)
6* Hardware Supported: DZ65RGB V1
7* Hardware Availability: [KBDfans](https://kbdfans.com/)
8
9## Making firmware
10
11Make example for this keyboard (after setting up your build environment):
12
13 make dztech/dz65rgb/v1:default
14
15See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
16
diff --git a/keyboards/dztech/dz65rgb/v1/v1.c b/keyboards/dztech/dz65rgb/v1/v1.c
new file mode 100644
index 000000000..8a3f0e27b
--- /dev/null
+++ b/keyboards/dztech/dz65rgb/v1/v1.c
@@ -0,0 +1,123 @@
1/* Copyright 2019 DZTECH <moyi4681@live.cn>
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 "v1.h"
17
18#ifdef RGB_MATRIX_ENABLE
19const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
20 { 0, C8_8, C7_8, C6_8 },
21 { 0, C9_8, C7_7, C6_7 },
22 { 0, C9_7, C8_7, C6_6 },
23 { 0, C9_6, C8_6, C7_6 },
24 { 0, C9_5, C8_5, C7_5 },
25 { 0, C9_4, C8_4, C7_4 },
26 { 0, C9_3, C8_3, C7_3 },
27 { 0, C9_2, C8_2, C7_2 },
28 { 0, C9_1, C8_1, C7_1 },
29 { 0, C2_9, C3_9, C4_9 },
30 { 0, C1_9, C3_10, C4_10 },
31 { 0, C1_10, C2_10, C4_11 },
32 { 0, C1_11, C2_11, C3_11 },
33 { 0, C1_13, C2_13, C3_13 },
34 { 0, C1_14, C2_14, C3_14 },
35
36 { 0, C1_7, C2_7, C3_7 },
37 { 0, C1_6, C2_6, C3_6 },
38 { 0, C1_5, C2_5, C3_5 },
39 { 0, C1_4, C2_4, C3_4 },
40 { 0, C1_3, C2_3, C3_3 },
41 { 0, C1_2, C2_2, C4_3 },
42 { 0, C1_1, C3_2, C4_2 },
43 { 0, C2_1, C3_1, C4_1 },
44 { 0, C9_9, C8_9, C7_9 },
45 { 0, C9_10, C8_10, C7_10 },
46 { 0, C9_11, C8_11, C7_11 },
47 { 0, C9_12, C8_12, C7_12 },
48 { 0, C9_13, C8_13, C7_13 },
49 { 0, C9_14, C8_14, C7_14 },
50 { 0, C1_15, C2_15, C3_15 },
51
52 { 0, C1_8, C2_8, C3_8 },
53 { 1, C9_6, C8_6, C7_6 },
54 { 1, C9_5, C8_5, C7_5 },
55 { 1, C9_4, C8_4, C7_4 },
56 { 1, C9_3, C8_3, C7_3 },
57 { 1, C9_2, C8_2, C7_2 },
58 { 1, C9_1, C8_1, C7_1 },
59 { 1, C2_9, C3_9, C4_9 },
60 { 1, C1_9, C3_10, C4_10 },
61 { 1, C1_10, C2_10, C4_11 },
62 { 1, C1_11, C2_11, C3_11 },
63 { 1, C1_12, C2_12, C3_12 },
64 { 1, C1_13, C2_13, C3_13 },
65 { 0, C1_16, C2_16, C3_16 },
66
67 { 1, C9_8, C7_7, C6_7 },
68 { 1, C1_5, C2_5, C3_5 },
69 { 1, C1_4, C2_4, C3_4 },
70 { 1, C1_3, C2_3, C3_3 },
71 { 1, C1_2, C2_2, C4_3 },
72 { 1, C1_1, C3_2, C4_2 },
73 { 1, C9_9, C8_9, C7_9 },
74 { 1, C9_10, C8_10, C7_10 },
75 { 1, C9_11, C8_11, C7_11 },
76 { 1, C9_12, C8_12, C7_12 },
77 { 1, C1_14, C2_14, C3_14 },
78 { 1, C1_15, C2_15, C3_15 },
79 { 1, C1_16, C2_16, C3_16 },
80 { 0, C9_15, C8_15, C6_14 },
81
82 { 1, C8_8, C7_8, C6_8 },
83 { 1, C1_8, C2_8, C3_8 },
84 { 1, C1_7, C2_7, C3_7 },
85 { 1, C2_1, C3_1, C4_1 },
86 { 1, C9_14, C8_14, C7_14 },
87 { 1, C9_15, C8_15, C6_14 },
88 { 1, C9_16, C7_15, C6_15 },
89 { 1, C8_16, C7_16, C6_16 },
90 { 0, C8_16, C7_16, C6_16 },
91 { 0, C9_16, C7_15, C6_15 }
92};
93
94led_config_t g_led_config = {
95 {
96 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 },
97 { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 },
98 { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED, 42, 43 },
99 { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, NO_LED, 56, 57 },
100 { 58, 59, 60, NO_LED, NO_LED, 61, NO_LED, NO_LED, 62, 63, 64, 65, NO_LED, 66, 67 }
101 }, {
102 { 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 203, 0 }, { 224, 0 },
103 { 4, 16 }, { 23, 16 }, { 38, 16 }, { 53, 16 }, { 68, 16 }, { 83, 16 }, { 98, 16 }, { 113, 16 }, { 128, 16 }, { 143, 16 }, { 158, 16 }, { 173, 16 }, { 188, 16 }, { 206, 16 }, { 224, 16 },
104 { 6, 32 }, { 26, 32 }, { 41, 32 }, { 56, 32 }, { 71, 32 }, { 86, 32 }, { 101, 32 }, { 116, 32 }, { 131, 32 }, { 146, 32 }, { 161, 32 }, { 176, 32 }, { 201, 32 }, { 224, 32 },
105 { 9, 48 }, { 34, 48 }, { 49, 48 }, { 64, 48 }, { 79, 48 }, { 94, 48 }, { 109, 48 }, { 124, 48 }, { 139, 48 }, { 154, 48 }, { 169, 48 }, { 189, 48 }, { 210, 48 }, { 224, 48 },
106 { 2, 64 }, { 21, 64 }, { 39, 64 }, { 96, 64 }, { 150, 64 }, { 165, 64 }, { 180, 64 }, { 195, 64 }, { 210, 64 }, { 224, 64 }
107 }, {
108 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
109 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
110 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
111 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
112 1, 1, 1, 4, 1, 1, 1, 1, 1, 1
113 }
114};
115
116
117__attribute__ ((weak))
118void rgb_matrix_indicators_user(void) {
119 if (host_keyboard_led_state().caps_lock) {
120 rgb_matrix_set_color(30, 0xFF, 0xFF, 0xFF);
121 }
122}
123#endif
diff --git a/keyboards/dztech/dz65rgb/v1/v1.h b/keyboards/dztech/dz65rgb/v1/v1.h
new file mode 100644
index 000000000..1811cefae
--- /dev/null
+++ b/keyboards/dztech/dz65rgb/v1/v1.h
@@ -0,0 +1,34 @@
1/* Copyright 2019 DZTECH <moyi4681@live.cn>
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
21
22#define LAYOUT_65_ansi( \
23 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
24 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \
25 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, \
26 K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \
27 K40, K41, K42, K45, K48, K49, K4A, K4B, K4D, K4E \
28) { \
29 { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
30 { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \
31 { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, XXX, K2D, K2E }, \
32 { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, XXX, K3D, K3E }, \
33 { K40, K41, K42, XXX, XXX, K45, XXX, XXX, K48, K49, K4A, K4B, XXX, K4D, K4E } \
34}
diff --git a/keyboards/dztech/dz65rgb/v2/config.h b/keyboards/dztech/dz65rgb/v2/config.h
index 117fb1e3e..1e1e21f5e 100644
--- a/keyboards/dztech/dz65rgb/v2/config.h
+++ b/keyboards/dztech/dz65rgb/v2/config.h
@@ -1,3 +1,18 @@
1/* Copyright 2020 DZTECH <moyi4681@live.cn>
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 */
1#pragma once 16#pragma once
2 17
3/* USB Device descriptor parameter */ 18/* USB Device descriptor parameter */
diff --git a/keyboards/dztech/dz65rgb/v2/readme.md b/keyboards/dztech/dz65rgb/v2/readme.md
new file mode 100644
index 000000000..7bf376640
--- /dev/null
+++ b/keyboards/dztech/dz65rgb/v2/readme.md
@@ -0,0 +1,16 @@
1# DZ65RGB V2
2
3A customizable 65% RGB keyboard.
4
5* Keyboard Maintainer: [moyi4681](https://github.com/moyi4681)
6* Hardware Supported: DZ65RGB V2
7* Hardware Availability: [KBDfans](https://kbdfans.com/)
8
9## Making firmware
10
11Make example for this keyboard (after setting up your build environment):
12
13 make dztech/dz65rgb/v2:default
14
15See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
16
diff --git a/keyboards/dztech/dz65rgb/v2/v2.c b/keyboards/dztech/dz65rgb/v2/v2.c
new file mode 100644
index 000000000..788709d98
--- /dev/null
+++ b/keyboards/dztech/dz65rgb/v2/v2.c
@@ -0,0 +1,123 @@
1/* Copyright 2020 DZTECH <moyi4681@live.cn>
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 "v2.h"
17
18#ifdef RGB_MATRIX_ENABLE
19const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
20 { 0, C8_8, C7_8, C6_8 },
21 { 0, C9_8, C7_7, C6_7 },
22 { 0, C9_7, C8_7, C6_6 },
23 { 0, C9_6, C8_6, C7_6 },
24 { 0, C9_5, C8_5, C7_5 },
25 { 0, C9_4, C8_4, C7_4 },
26 { 0, C9_3, C8_3, C7_3 },
27 { 0, C9_2, C8_2, C7_2 },
28 { 0, C9_1, C8_1, C7_1 },
29 { 0, C2_9, C3_9, C4_9 },
30 { 0, C1_9, C3_10, C4_10 },
31 { 0, C1_10, C2_10, C4_11 },
32 { 0, C1_11, C2_11, C3_11 },
33 { 0, C1_13, C2_13, C3_13 },
34 { 0, C1_14, C2_14, C3_14 },
35
36 { 0, C1_7, C2_7, C3_7 },
37 { 0, C1_6, C2_6, C3_6 },
38 { 0, C1_5, C2_5, C3_5 },
39 { 0, C1_4, C2_4, C3_4 },
40 { 0, C1_3, C2_3, C3_3 },
41 { 0, C1_2, C2_2, C4_3 },
42 { 0, C1_1, C3_2, C4_2 },
43 { 0, C2_1, C3_1, C4_1 },
44 { 0, C9_9, C8_9, C7_9 },
45 { 0, C9_10, C8_10, C7_10 },
46 { 0, C9_11, C8_11, C7_11 },
47 { 0, C9_12, C8_12, C7_12 },
48 { 0, C9_13, C8_13, C7_13 },
49 { 0, C9_14, C8_14, C7_14 },
50 { 0, C1_15, C2_15, C3_15 },
51
52 { 0, C1_8, C2_8, C3_8 },
53 { 1, C9_6, C8_6, C7_6 },
54 { 1, C9_5, C8_5, C7_5 },
55 { 1, C9_4, C8_4, C7_4 },
56 { 1, C9_3, C8_3, C7_3 },
57 { 1, C9_2, C8_2, C7_2 },
58 { 1, C9_1, C8_1, C7_1 },
59 { 1, C2_9, C3_9, C4_9 },
60 { 1, C1_9, C3_10, C4_10 },
61 { 1, C1_10, C2_10, C4_11 },
62 { 1, C1_11, C2_11, C3_11 },
63 { 1, C1_12, C2_12, C3_12 },
64 { 1, C1_13, C2_13, C3_13 },
65 { 0, C1_16, C2_16, C3_16 },
66
67 { 1, C9_8, C7_7, C6_7 },
68 { 1, C1_5, C2_5, C3_5 },
69 { 1, C1_4, C2_4, C3_4 },
70 { 1, C1_3, C2_3, C3_3 },
71 { 1, C1_2, C2_2, C4_3 },
72 { 1, C1_1, C3_2, C4_2 },
73 { 1, C9_9, C8_9, C7_9 },
74 { 1, C9_10, C8_10, C7_10 },
75 { 1, C9_11, C8_11, C7_11 },
76 { 1, C9_12, C8_12, C7_12 },
77 { 1, C1_14, C2_14, C3_14 },
78 { 1, C1_15, C2_15, C3_15 },
79 { 1, C1_16, C2_16, C3_16 },
80 { 0, C9_15, C8_15, C6_14 },
81
82 { 1, C8_8, C7_8, C6_8 },
83 { 1, C1_8, C2_8, C3_8 },
84 { 1, C1_7, C2_7, C3_7 },
85 { 1, C2_1, C3_1, C4_1 },
86 { 1, C9_14, C8_14, C7_14 },
87 { 1, C9_15, C8_15, C6_14 },
88 { 1, C9_16, C7_15, C6_15 },
89 { 1, C8_16, C7_16, C6_16 },
90 { 0, C8_16, C7_16, C6_16 },
91 { 0, C9_16, C7_15, C6_15 }
92};
93
94led_config_t g_led_config = {
95 {
96 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 },
97 { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 },
98 { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED, 42, 43 },
99 { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, NO_LED, 56, 57 },
100 { 58, 59, 60, NO_LED, NO_LED, 61, NO_LED, NO_LED, 62, 63, 64, 65, NO_LED, 66, 67 }
101 }, {
102 { 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 203, 0 }, { 224, 0 },
103 { 4, 16 }, { 23, 16 }, { 38, 16 }, { 53, 16 }, { 68, 16 }, { 83, 16 }, { 98, 16 }, { 113, 16 }, { 128, 16 }, { 143, 16 }, { 158, 16 }, { 173, 16 }, { 188, 16 }, { 206, 16 }, { 224, 16 },
104 { 6, 32 }, { 26, 32 }, { 41, 32 }, { 56, 32 }, { 71, 32 }, { 86, 32 }, { 101, 32 }, { 116, 32 }, { 131, 32 }, { 146, 32 }, { 161, 32 }, { 176, 32 }, { 201, 32 }, { 224, 32 },
105 { 9, 48 }, { 34, 48 }, { 49, 48 }, { 64, 48 }, { 79, 48 }, { 94, 48 }, { 109, 48 }, { 124, 48 }, { 139, 48 }, { 154, 48 }, { 169, 48 }, { 189, 48 }, { 210, 48 }, { 224, 48 },
106 { 2, 64 }, { 21, 64 }, { 39, 64 }, { 96, 64 }, { 150, 64 }, { 165, 64 }, { 180, 64 }, { 195, 64 }, { 210, 64 }, { 224, 64 }
107 }, {
108 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
109 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
110 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
111 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
112 1, 1, 1, 4, 1, 1, 1, 1, 1, 1
113 }
114};
115
116
117__attribute__ ((weak))
118void rgb_matrix_indicators_user(void) {
119 if (host_keyboard_led_state().caps_lock) {
120 rgb_matrix_set_color(30, 0xFF, 0xFF, 0xFF);
121 }
122}
123#endif
diff --git a/keyboards/dztech/dz65rgb/v2/v2.h b/keyboards/dztech/dz65rgb/v2/v2.h
new file mode 100644
index 000000000..ead68e876
--- /dev/null
+++ b/keyboards/dztech/dz65rgb/v2/v2.h
@@ -0,0 +1,34 @@
1/* Copyright 2020 DZTECH <moyi4681@live.cn>
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
21
22#define LAYOUT_65_ansi( \
23 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
24 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \
25 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, \
26 K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \
27 K40, K41, K42, K45, K48, K49, K4A, K4B, K4D, K4E \
28) { \
29 { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
30 { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \
31 { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, XXX, K2D, K2E }, \
32 { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, XXX, K3D, K3E }, \
33 { K40, K41, K42, XXX, XXX, K45, XXX, XXX, K48, K49, K4A, K4B, XXX, K4D, K4E } \
34}
diff --git a/keyboards/dztech/dz65rgb/v3/config.h b/keyboards/dztech/dz65rgb/v3/config.h
new file mode 100755
index 000000000..c348e323d
--- /dev/null
+++ b/keyboards/dztech/dz65rgb/v3/config.h
@@ -0,0 +1,57 @@
1/* Copyright 2021 DZTECH <moyi4681@live.cn>
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 0x445A
23#define PRODUCT_ID 0x1424
24#define DEVICE_VER 0x0003
25#define MANUFACTURER DZTECH
26#define PRODUCT DZ65RGBV3
27
28/* key matrix size */
29#define MATRIX_ROWS 5
30#define MATRIX_COLS 15
31#define MATRIX_ROW_PINS { F0, F1, F4, E6, C6 }
32#define MATRIX_COL_PINS { F7, F6, F5, C7, B0, B1, B2, B3, B4, D7, D6, D4, D5, D3, D2}
33#define UNUSED_PINS
34
35/* COL2ROW, ROW2COL*/
36#define DIODE_DIRECTION COL2ROW
37
38/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
39#define DEBOUNCE 5
40/* disable these deprecated features by default */
41#define NO_ACTION_MACRO
42#define NO_ACTION_FUNCTION
43#ifdef RGB_MATRIX_ENABLE
44#define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
45#define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended
46#define USB_SUSPEND_WAKEUP_DELAY 5000
47#define RGB_MATRIX_KEYPRESSES
48#define RGB_MATRIX_LED_PROCESS_LIMIT 4
49#define RGB_MATRIX_LED_FLUSH_LIMIT 26
50#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_ALL
51#define DRIVER_ADDR_1 0b0110000
52#define DRIVER_ADDR_2 0b0110000 // this is here for compliancy reasons.
53#define DRIVER_COUNT 1
54#define DRIVER_1_LED_TOTAL 68
55#define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL
56#define DRIVER_INDICATOR_LED_TOTAL 0
57#endif
diff --git a/keyboards/dztech/dz65rgb/v3/readme.md b/keyboards/dztech/dz65rgb/v3/readme.md
new file mode 100644
index 000000000..e5ae7eec7
--- /dev/null
+++ b/keyboards/dztech/dz65rgb/v3/readme.md
@@ -0,0 +1,19 @@
1# DZ65RGB V3
2
3A customizable 65% RGB keyboard.
4
5* Keyboard Maintainer: [moyi4681](https://github.com/moyi4681)
6* Hardware Supported: DZ65RGB V3
7* Hardware Availability: [KBDfans](https://kbdfans.com/)
8
9## Bootloader mode
10
11To put in bootloader mode, hold the `Esc` key while plugging in the USB cable. or use reset key behind the pcb.
12
13## Making firmware
14
15Make example for this keyboard (after setting up your build environment):
16
17 make dztech/dz65rgb/v3:default
18
19See 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/dztech/dz65rgb/v3/rules.mk b/keyboards/dztech/dz65rgb/v3/rules.mk
new file mode 100755
index 000000000..36358fe4d
--- /dev/null
+++ b/keyboards/dztech/dz65rgb/v3/rules.mk
@@ -0,0 +1,24 @@
1# MCU name
2MCU = atmega32u4
3
4# Bootloader selection
5BOOTLOADER = lufa-ms
6
7# Build Options
8# change yes to no to disable
9#
10BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
11MOUSEKEY_ENABLE = no # 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
21BLUETOOTH_ENABLE = no # Enable Bluetooth
22AUDIO_ENABLE = no # Audio output
23RGB_MATRIX_ENABLE = yes # Use RGB matrix
24RGB_MATRIX_DRIVER = IS31FL3741
diff --git a/keyboards/dztech/dz65rgb/v3/v3.c b/keyboards/dztech/dz65rgb/v3/v3.c
new file mode 100755
index 000000000..dec75814c
--- /dev/null
+++ b/keyboards/dztech/dz65rgb/v3/v3.c
@@ -0,0 +1,125 @@
1/* Copyright 2021 DZTECH <moyi4681@live.cn>
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 "v3.h"
18
19#ifdef RGB_MATRIX_ENABLE
20
21const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
22 {0, CS21_SW1, CS20_SW1, CS19_SW1},
23 {0, CS21_SW2, CS20_SW2, CS19_SW2},
24 {0, CS21_SW3, CS20_SW3, CS19_SW3},
25 {0, CS21_SW4, CS20_SW4, CS19_SW4},
26 {0, CS21_SW5, CS20_SW5, CS19_SW5},
27 {0, CS21_SW6, CS20_SW6, CS19_SW6},
28 {0, CS21_SW7, CS20_SW7, CS19_SW7},
29 {0, CS21_SW8, CS20_SW8, CS19_SW8},
30 {0, CS24_SW1, CS23_SW1, CS22_SW1},
31 {0, CS24_SW2, CS23_SW2, CS22_SW2},
32 {0, CS24_SW3, CS23_SW3, CS22_SW3},
33 {0, CS24_SW4, CS23_SW4, CS22_SW4},
34 {0, CS24_SW5, CS23_SW5, CS22_SW5},
35 {0, CS24_SW6, CS23_SW6, CS22_SW6},
36 {0, CS24_SW7, CS23_SW7, CS22_SW7},
37
38 {0, CS15_SW1, CS14_SW1, CS13_SW1},
39 {0, CS15_SW2, CS14_SW2, CS13_SW2},
40 {0, CS15_SW3, CS14_SW3, CS13_SW3},
41 {0, CS15_SW4, CS14_SW4, CS13_SW4},
42 {0, CS15_SW5, CS14_SW5, CS13_SW5},
43 {0, CS15_SW6, CS14_SW6, CS13_SW6},
44 {0, CS15_SW7, CS14_SW7, CS13_SW7},
45 {0, CS15_SW8, CS14_SW8, CS13_SW8},
46 {0, CS30_SW1, CS29_SW1, CS28_SW1},
47 {0, CS30_SW2, CS29_SW2, CS28_SW2},
48 {0, CS30_SW3, CS29_SW3, CS28_SW3},
49 {0, CS30_SW4, CS29_SW4, CS28_SW4},
50 {0, CS30_SW5, CS29_SW5, CS28_SW5},
51 {0, CS30_SW6, CS29_SW6, CS28_SW6},
52 {0, CS30_SW7, CS29_SW7, CS28_SW7},
53
54 {0, CS12_SW1, CS11_SW1, CS10_SW1},
55 {0, CS12_SW2, CS11_SW2, CS10_SW2},
56 {0, CS12_SW3, CS11_SW3, CS10_SW3},
57 {0, CS12_SW4, CS11_SW4, CS10_SW4},
58 {0, CS12_SW5, CS11_SW5, CS10_SW5},
59 {0, CS12_SW6, CS11_SW6, CS10_SW6},
60 {0, CS12_SW7, CS11_SW7, CS10_SW7},
61 {0, CS12_SW8, CS11_SW8, CS10_SW8},
62 {0, CS33_SW1, CS32_SW1, CS31_SW1},
63 {0, CS33_SW2, CS32_SW2, CS31_SW2},
64 {0, CS33_SW3, CS32_SW3, CS31_SW3},
65 {0, CS33_SW4, CS32_SW4, CS31_SW4},
66 {0, CS33_SW5, CS32_SW5, CS31_SW5},
67 {0, CS33_SW7, CS32_SW7, CS31_SW7},
68
69 {0, CS9_SW1, CS8_SW1, CS7_SW1},
70 {0, CS9_SW2, CS8_SW2, CS7_SW2},
71 {0, CS9_SW3, CS8_SW3, CS7_SW3},
72 {0, CS9_SW4, CS8_SW4, CS7_SW4},
73 {0, CS9_SW5, CS8_SW5, CS7_SW5},
74 {0, CS9_SW6, CS8_SW6, CS7_SW6},
75 {0, CS9_SW7, CS8_SW7, CS7_SW7},
76 {0, CS9_SW8, CS8_SW8, CS7_SW8},
77 {0, CS36_SW1, CS35_SW1, CS34_SW1},
78 {0, CS36_SW2, CS35_SW2, CS34_SW2},
79 {0, CS36_SW3, CS35_SW3, CS34_SW3},
80 {0, CS36_SW4, CS35_SW4, CS34_SW4},
81 {0, CS36_SW5, CS35_SW5, CS34_SW5},
82 {0, CS36_SW7, CS35_SW7, CS34_SW7},
83
84 {0, CS3_SW1, CS2_SW1, CS1_SW1},
85 {0, CS3_SW2, CS2_SW2, CS1_SW2},
86 {0, CS3_SW3, CS2_SW3, CS1_SW3},
87 {0, CS3_SW6, CS2_SW6, CS1_SW6},
88 {0, CS39_SW1, CS38_SW1, CS37_SW1},
89 {0, CS39_SW2, CS38_SW2, CS37_SW2},
90 {0, CS39_SW3, CS38_SW3, CS37_SW3},
91 {0, CS39_SW4, CS38_SW4, CS37_SW4},
92 {0, CS39_SW5, CS38_SW5, CS37_SW5},
93 {0, CS39_SW7, CS38_SW7, CS37_SW7}
94
95};
96led_config_t g_led_config = { {
97 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 },
98 { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 },
99 { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED,42, 43 },
100 { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, NO_LED,55, 56, 57 },
101 { 58, 59, 60, NO_LED, NO_LED, 61, NO_LED, NO_LED, NO_LED, 62, 63, 64, 65, 66, 67 }
102}, {
103 {0,0},{15,0},{30,0},{45,0},{60,0},{75,0},{90,0},{105,0},{120,0},{135,0},{150,0},{165,0},{180,0},{203,0},{224,0},
104 {4,16},{23,16},{38,16},{53,16},{68,16},{83,16},{98,16},{113,16},{128,16},{143,16},{158,16},{173,16},{188,16},{206,16},{224,16},
105 {6,32},{26,32},{41,32},{56,32},{71,32},{86,32},{101,32},{116,32},{131,32},{146,32},{161,32},{176,32},{201,32},{224,32},
106 {9,48},{34,48},{49,48},{64,48},{79,48},{94,48},{109,48},{124,48},{139,48},{154,48},{169,48},{189,48},{210,48},{224,48},
107 { 2, 64 }, { 21, 64 }, { 39, 64 }, { 96, 64 }, { 150, 64 }, { 165, 64 }, { 180, 64 }, { 195, 64 }, { 210, 64 }, { 224, 64 }
108}, {
109 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
110 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
111 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
112 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
113 1, 1, 1, 4, 1, 1, 1, 1, 1, 1
114} };
115
116
117__attribute__ ((weak))
118void rgb_matrix_indicators_user(void)
119{
120 if (host_keyboard_led_state().caps_lock)
121 {
122 rgb_matrix_set_color(30, 0xFF, 0xFF, 0xFF);
123 }
124}
125#endif
diff --git a/keyboards/dztech/dz65rgb/v3/v3.h b/keyboards/dztech/dz65rgb/v3/v3.h
new file mode 100755
index 000000000..a36069d79
--- /dev/null
+++ b/keyboards/dztech/dz65rgb/v3/v3.h
@@ -0,0 +1,35 @@
1/* Copyright 2021 DZTECH <moyi4681@live.cn>
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 XXX KC_NO
22
23#define LAYOUT_65_ansi( \
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, K2D, K2E, \
27 K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3C, K3D, K3E, \
28 K40, K41, K42, K45, K49, K4A, K4B, K4C, K4D, K4E \
29) { \
30 { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
31 { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \
32 { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, XXX, K2D, K2E }, \
33 { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, XXX, K3C, K3D, K3E }, \
34 { K40, K41, K42, XXX, XXX, K45, XXX, XXX, XXX, K49, K4A, K4B, K4C, K4D, K4E } \
35}
diff --git a/keyboards/handwired/split89/config.h b/keyboards/handwired/split89/config.h
index 0151822fa..d78535a20 100644
--- a/keyboards/handwired/split89/config.h
+++ b/keyboards/handwired/split89/config.h
@@ -50,7 +50,7 @@ COLS = number of cols per side which curently needs to be equal so there are bla
50#define MATRIX_ROW_PINS_RIGHT { F6, F7, B1, B3, B2, B6 } 50#define MATRIX_ROW_PINS_RIGHT { F6, F7, B1, B3, B2, B6 }
51#define MATRIX_COL_PINS_RIGHT { F5, F4, B5, B4, E6, D7, C6, D4, D2, D3 } 51#define MATRIX_COL_PINS_RIGHT { F5, F4, B5, B4, E6, D7, C6, D4, D2, D3 }
52 52
53/* this will be tied to high (VCC with a 2k to 10k resistor) on the left keyboard half and tied to low (GND using a wire jumper only) on the right keyboard half. This allows a user to plug in a USB cable to either side and function correctly with or without a TRS/TRRS cable with a single hex file. 53/* this will be tied to high (VCC with a 2k to 10k resistor) on the left keyboard half and tied to low (GND using a wire jumper only) on the right keyboard half. This allows a user to plug in a USB cable to either side and function correctly with or without a TRS/TRRS cable with a single hex file. */
54#define SPLIT_HAND_PIN D1 54#define SPLIT_HAND_PIN D1
55 55
56/* COL2ROW, ROW2COL */ 56/* COL2ROW, ROW2COL */
diff --git a/keyboards/keebio/iris/keymaps/mnil/config.h b/keyboards/keebio/iris/keymaps/mnil/config.h
new file mode 100644
index 000000000..091df08ef
--- /dev/null
+++ b/keyboards/keebio/iris/keymaps/mnil/config.h
@@ -0,0 +1,29 @@
1/* Copyright 2021 Mats Nilsson
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 EE_HANDS
20
21#undef RGBLED_NUM
22#define RGBLIGHT_ANIMATIONS
23#define RGBLED_NUM 12
24#define RGBLIGHT_HUE_STEP 8
25#define RGBLIGHT_SAT_STEP 8
26#define RGBLIGHT_VAL_STEP 8
27#define RGBLIGHT_SPLIT \
28 { 6, 6 }
29#define RGBLIGHT_SLEEP
diff --git a/keyboards/keebio/iris/keymaps/mnil/keymap.c b/keyboards/keebio/iris/keymaps/mnil/keymap.c
new file mode 100644
index 000000000..7c7dc1a40
--- /dev/null
+++ b/keyboards/keebio/iris/keymaps/mnil/keymap.c
@@ -0,0 +1,94 @@
1/* Copyright 2021 Mats Nilsson
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 "mnil.h"
18
19const uint8_t RGBLED_BREATHING_INTERVALS[] PROGMEM = {5, 5, 5, 5};
20
21#define HSV_DEFAULT 32, 255, 255
22
23layer_state_t layer_state_set_user(layer_state_t state) {
24 state = update_tri_layer_state(state, _SYMBOLS, _NAVIGATION, _NUMPAD);
25
26 switch (get_highest_layer(state)) {
27 case _NUMPAD:
28 rgblight_sethsv_noeeprom(HSV_GREEN);
29 break;
30 case _NAVIGATION:
31 rgblight_sethsv_noeeprom(HSV_MAGENTA);
32 break;
33 case _SYMBOLS:
34 rgblight_sethsv_noeeprom(HSV_AZURE);
35 break;
36 default: // for any other layers, or the default layer
37 rgblight_sethsv_noeeprom(HSV_DEFAULT);
38 break;
39 }
40 return state;
41}
42
43// clang-format off
44const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
45 [_COLEMAK] = LAYOUT(
46 //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
47 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
48 //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
49 KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, TD(OAA), KC_NO,
50 //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
51 KC_LSFT, TD(AAE), KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, KC_NO,
52 //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
53 KC_LCTL, KC_Z, KC_X, KC_C, KC_D, KC_V, _NAV_SPC, _SYM_ENT,KC_K, KC_H, KC_COMM, KC_DOT, SE_MINS, KC_LGUI,
54 //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
55 KC_LGUI, SFT_TAB, _NAV_SPC, _SYM_ENT,CTL_BSPC,ALT_DEL),
56 // └────────┴────────┴────────┘ └────────┴────────┴────────┘
57 [_SYMBOLS] = LAYOUT(
58 //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
59 KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS,
60 //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
61 KC_TRNS, KC_NO, SE_PIPE, SE_LBRC, SE_RBRC, KC_NO, S(KC_5), SE_QUES, SE_AT, SE_EQL, SE_DLR, KC_TRNS,
62 //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
63 KC_TRNS, SE_LCBR, SE_RCBR, SE_LPRN, SE_RPRN, KC_NO, SE_PLUS, S(KC_1), S(KC_2), S(KC_3), SE_AMPR, KC_TRNS,
64 //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
65 KC_TRNS, M_TILD, M_CIRC, SE_LESS, SE_GRTR, KC_NO, KC_TRNS, KC_TRNS, SE_APOS, SE_SLSH, SE_BSLS, SE_ASTR, M_BTCK, KC_TRNS,
66 //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
67 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ),
68 // └────────┴────────┴────────┘ └────────┴────────┴────────┘
69 [_NAVIGATION] = LAYOUT(
70 //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
71 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
72 //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
73 KC_TRNS, KC_NO, CUT, COPY, PASTE, AUTOFILL, KC_NO, KC_HOME, KC_WH_D, KC_WH_U, KC_END, KC_NO,
74 //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
75 KC_TRNS, KC_ACL0, KC_ACL1, KC_BTN2, KC_BTN1, KC_LCTL, KC_WH_L, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_WH_R,
76 //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
77 KC_TRNS, KC_ACL2, KC_BTN4, KC_BTN3, KC_BTN5, KC_NO, KC_TRNS, KC_TRNS, KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_LCTL,
78 //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
79 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ),
80 // └────────┴────────┴────────┘ └────────┴────────┴────────┘
81 [_NUMPAD] = LAYOUT(
82 //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
83 RGB_TOG, RGB_M_P, RGB_M_B, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RESET,
84 //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
85 KC_TRNS, QUIT, WIN, MVWSL , MVWSR, CRYWS, TERM, KC_7, KC_8, KC_9, KC_COMM, KC_NO,
86 //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
87 KC_TRNS, CS_TAB, C_TAB, PRVWS, NXTWS, I3MOD, OPEN, KC_4, KC_5, KC_6, KC_0, KC_NO,
88 //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
89 KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, MOVWS, KC_TRNS, KC_TRNS, BROWSER, KC_1, KC_2, KC_3, KC_DOT, KC_NO,
90 //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
91 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ),
92 // └────────┴────────┴────────┘ └────────┴────────┴────────┘
93};
94// clang-format on
diff --git a/keyboards/keebio/iris/keymaps/mnil/readme.md b/keyboards/keebio/iris/keymaps/mnil/readme.md
new file mode 100644
index 000000000..e74eea471
--- /dev/null
+++ b/keyboards/keebio/iris/keymaps/mnil/readme.md
@@ -0,0 +1,2 @@
1# mnil's iris keymap
2Read my user settings [here](../../../../../users/mnil/readme.md) for more details.
diff --git a/keyboards/keebio/iris/keymaps/mnil/rules.mk b/keyboards/keebio/iris/keymaps/mnil/rules.mk
new file mode 100644
index 000000000..22e6c8fcc
--- /dev/null
+++ b/keyboards/keebio/iris/keymaps/mnil/rules.mk
@@ -0,0 +1 @@
RGBLIGHT_ENABLE = yes
diff --git a/keyboards/kyria/kyria.h b/keyboards/kyria/kyria.h
index de87c5ba5..c1db6307e 100644
--- a/keyboards/kyria/kyria.h
+++ b/keyboards/kyria/kyria.h
@@ -17,6 +17,10 @@
17 17
18#include "quantum.h" 18#include "quantum.h"
19 19
20#if defined(KEYBOARD_kyria_rev1)
21# include "rev1.h"
22#endif
23
20/* This a shortcut to help you visually see your layout. 24/* This a shortcut to help you visually see your layout.
21 * 25 *
22 * The first section contains all of the arguments representing the physical 26 * The first section contains all of the arguments representing the physical
@@ -25,58 +29,3 @@
25 * The second converts the arguments into a two-dimensional array which 29 * The second converts the arguments into a two-dimensional array which
26 * represents the switch matrix. 30 * represents the switch matrix.
27 */ 31 */
28#define LAYOUT( \
29 L00, L01, L02, L03, L04, L05, R06, R07, R08, R09, R10, R11, \
30 L12, L13, L14, L15, L16, L17, R18, R19, R20, R21, R22, R23, \
31 L24, L25, L26, L27, L28, L29, L30, L31, R32, R33, R34, R35, R36, R37, R38, R39, \
32 L40, L41, L42, L43, L44, R45, R46, R47, R48, R49 \
33) \
34{ \
35 { KC_NO, KC_NO, L05, L04, L03, L02, L01, L00 }, \
36 { KC_NO, KC_NO, L17, L16, L15, L14, L13, L12 }, \
37 { L31, L30, L29, L28, L27, L26, L25, L24 }, \
38 { L44, L43, L42, L41, L40, KC_NO, KC_NO, KC_NO }, \
39 { KC_NO, KC_NO, R06, R07, R08, R09, R10, R11 }, \
40 { KC_NO, KC_NO, R18, R19, R20, R21, R22, R23 }, \
41 { R32, R33, R34, R35, R36, R37, R38, R39 }, \
42 { R45, R46, R47, R48, R49, KC_NO, KC_NO, KC_NO }, \
43}
44
45#define LAYOUT_stack( \
46 L00, L01, L02, L03, L04, L05, \
47 L12, L13, L14, L15, L16, L17, \
48 L24, L25, L26, L27, L28, L29, L30, L31, \
49 L40, L41, L42, L43, L44, \
50 \
51 R06, R07, R08, R09, R10, R11, \
52 R18, R19, R20, R21, R22, R23, \
53 R32, R33, R34, R35, R36, R37, R38, R39, \
54 R45, R46, R47, R48, R49 \
55) \
56{ \
57 { KC_NO, KC_NO, L05, L04, L03, L02, L01, L00 }, \
58 { KC_NO, KC_NO, L17, L16, L15, L14, L13, L12 }, \
59 { L31, L30, L29, L28, L27, L26, L25, L24 }, \
60 { L44, L43, L42, L41, L40, KC_NO, KC_NO, KC_NO }, \
61 { KC_NO, KC_NO, R06, R07, R08, R09, R10, R11 }, \
62 { KC_NO, KC_NO, R18, R19, R20, R21, R22, R23 }, \
63 { R32, R33, R34, R35, R36, R37, R38, R39 }, \
64 { R45, R46, R47, R48, R49, KC_NO, KC_NO, KC_NO }, \
65}
66
67#define LAYOUT_split_3x6_5( \
68 L00, L01, L02, L03, L04, L05, R06, R07, R08, R09, R10, R11, \
69 L12, L13, L14, L15, L16, L17, R18, R19, R20, R21, R22, R23, \
70 L24, L25, L26, L27, L28, L29, R34, R35, R36, R37, R38, R39, \
71 L40, L41, L42, L43, L44, R45, R46, R47, R48, R49 \
72) \
73{ \
74 { KC_NO, KC_NO, L05, L04, L03, L02, L01, L00 }, \
75 { KC_NO, KC_NO, L17, L16, L15, L14, L13, L12 }, \
76 { KC_NO, KC_NO, L29, L28, L27, L26, L25, L24 }, \
77 { L44, L43, L42, L41, L40, KC_NO, KC_NO, KC_NO }, \
78 { KC_NO, KC_NO, R06, R07, R08, R09, R10, R11 }, \
79 { KC_NO, KC_NO, R18, R19, R20, R21, R22, R23 }, \
80 { KC_NO, KC_NO, R34, R35, R36, R37, R38, R39 }, \
81 { R45, R46, R47, R48, R49, KC_NO, KC_NO, KC_NO }, \
82}
diff --git a/keyboards/kyria/rev1/rev1.h b/keyboards/kyria/rev1/rev1.h
index 2ef05bb0e..44060a153 100644
--- a/keyboards/kyria/rev1/rev1.h
+++ b/keyboards/kyria/rev1/rev1.h
@@ -41,3 +41,42 @@
41 { R32, R33, R34, R35, R36, R37, R38, R39 }, \ 41 { R32, R33, R34, R35, R36, R37, R38, R39 }, \
42 { R45, R46, R47, R48, R49, KC_NO, KC_NO, KC_NO }, \ 42 { R45, R46, R47, R48, R49, KC_NO, KC_NO, KC_NO }, \
43} 43}
44
45#define LAYOUT_stack( \
46 L00, L01, L02, L03, L04, L05, \
47 L12, L13, L14, L15, L16, L17, \
48 L24, L25, L26, L27, L28, L29, L30, L31, \
49 L40, L41, L42, L43, L44, \
50 \
51 R06, R07, R08, R09, R10, R11, \
52 R18, R19, R20, R21, R22, R23, \
53 R32, R33, R34, R35, R36, R37, R38, R39, \
54 R45, R46, R47, R48, R49 \
55) \
56{ \
57 { KC_NO, KC_NO, L05, L04, L03, L02, L01, L00 }, \
58 { KC_NO, KC_NO, L17, L16, L15, L14, L13, L12 }, \
59 { L31, L30, L29, L28, L27, L26, L25, L24 }, \
60 { L44, L43, L42, L41, L40, KC_NO, KC_NO, KC_NO }, \
61 { KC_NO, KC_NO, R06, R07, R08, R09, R10, R11 }, \
62 { KC_NO, KC_NO, R18, R19, R20, R21, R22, R23 }, \
63 { R32, R33, R34, R35, R36, R37, R38, R39 }, \
64 { R45, R46, R47, R48, R49, KC_NO, KC_NO, KC_NO }, \
65}
66
67#define LAYOUT_split_3x6_5( \
68 L00, L01, L02, L03, L04, L05, R06, R07, R08, R09, R10, R11, \
69 L12, L13, L14, L15, L16, L17, R18, R19, R20, R21, R22, R23, \
70 L24, L25, L26, L27, L28, L29, R34, R35, R36, R37, R38, R39, \
71 L40, L41, L42, L43, L44, R45, R46, R47, R48, R49 \
72) \
73{ \
74 { KC_NO, KC_NO, L05, L04, L03, L02, L01, L00 }, \
75 { KC_NO, KC_NO, L17, L16, L15, L14, L13, L12 }, \
76 { KC_NO, KC_NO, L29, L28, L27, L26, L25, L24 }, \
77 { L44, L43, L42, L41, L40, KC_NO, KC_NO, KC_NO }, \
78 { KC_NO, KC_NO, R06, R07, R08, R09, R10, R11 }, \
79 { KC_NO, KC_NO, R18, R19, R20, R21, R22, R23 }, \
80 { KC_NO, KC_NO, R34, R35, R36, R37, R38, R39 }, \
81 { R45, R46, R47, R48, R49, KC_NO, KC_NO, KC_NO }, \
82}
diff --git a/keyboards/kyria/rules.mk b/keyboards/kyria/rules.mk
index 61d90c67c..2c749186a 100644
--- a/keyboards/kyria/rules.mk
+++ b/keyboards/kyria/rules.mk
@@ -2,13 +2,6 @@
2MCU = atmega32u4 2MCU = atmega32u4
3 3
4# Bootloader selection 4# Bootloader selection
5# Teensy halfkay
6# Pro Micro caterina
7# Atmel DFU atmel-dfu
8# LUFA DFU lufa-dfu
9# QMK DFU qmk-dfu
10# ATmega32A bootloadHID
11# ATmega328P USBasp
12BOOTLOADER = atmel-dfu 5BOOTLOADER = atmel-dfu
13 6
14# Build Options 7# Build Options
diff --git a/keyboards/mechwild/murphpad/config.h b/keyboards/mechwild/murphpad/config.h
index e107ad260..0887025ad 100644
--- a/keyboards/mechwild/murphpad/config.h
+++ b/keyboards/mechwild/murphpad/config.h
@@ -36,8 +36,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
36#define UNUSED_PINS 36#define UNUSED_PINS
37 37
38/* Encoder pins */ 38/* Encoder pins */
39#define ENCODERS_PAD_A { E6 } 39#define ENCODERS_PAD_A { E6, D2 }
40#define ENCODERS_PAD_B { B4 } 40#define ENCODERS_PAD_B { B4, D3 }
41 41
42/* Encoder resolution */ 42/* Encoder resolution */
43#define ENCODER_RESOLUTION 4 43#define ENCODER_RESOLUTION 4
diff --git a/keyboards/mechwild/murphpad/keymaps/default/keymap.c b/keyboards/mechwild/murphpad/keymaps/default/keymap.c
index 685cc9108..eace87cd6 100644
--- a/keyboards/mechwild/murphpad/keymaps/default/keymap.c
+++ b/keyboards/mechwild/murphpad/keymaps/default/keymap.c
@@ -18,8 +18,8 @@
18// Defines names for use in layer keycodes and the keymap 18// Defines names for use in layer keycodes and the keymap
19 19
20enum layer_names { 20enum layer_names {
21 _BASE, 21 _BASE,
22 _FN1, 22 _FN1,
23 _FN2, 23 _FN2,
24 _FN3 24 _FN3
25}; 25};
@@ -28,46 +28,46 @@ enum layer_names {
28const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 28const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
29 /* Base */ 29 /* Base */
30 [_BASE] = LAYOUT( 30 [_BASE] = LAYOUT(
31 KC_F1, KC_F2, KC_F3, KC_F4, 31 KC_F1, KC_F2, KC_F3, KC_F4,
32 KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, 32 KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
33 KC_P7, KC_P8, KC_P9, KC_PPLS, 33 KC_P7, KC_P8, KC_P9, KC_PPLS,
34 KC_MUTE, KC_P4, KC_P5, KC_P6, KC_NO, 34 KC_MUTE, KC_P4, KC_P5, KC_P6, _______,
35 MO(_FN1), KC_P1, KC_P2, KC_P3, KC_PENT, 35 MO(_FN1), KC_P1, KC_P2, KC_P3, KC_PENT,
36 KC_BSPC, KC_P0, KC_NO, KC_PDOT, KC_NO, 36 KC_BSPC, KC_P0, _______, KC_PDOT, _______,
37 37
38 KC_F5, KC_F6, KC_F7 38 KC_F5, KC_F6, KC_F7
39 39
40 ), 40 ),
41 [_FN1] = LAYOUT( 41 [_FN1] = LAYOUT(
42 _______, _______, _______, _______, 42 _______, _______, _______, _______,
43 _______, _______, _______, _______, 43 _______, _______, _______, _______,
44 RGB_HUD, RGB_SPI, RGB_HUI, _______, 44 RGB_HUD, RGB_SPI, RGB_HUI, _______,
45 _______, RGB_RMOD, RGB_TOG, RGB_MOD, KC_NO, 45 _______, RGB_RMOD, RGB_TOG, RGB_MOD, _______,
46 _______, RGB_VAD, RGB_SPD, RGB_VAI, _______, 46 _______, RGB_VAD, RGB_SPD, RGB_VAI, _______,
47 _______, RGB_SAD, KC_NO, RGB_SAI, KC_NO, 47 _______, RGB_SAD, _______, RGB_SAI, _______,
48 48
49 _______, _______, _______ 49 _______, _______, _______
50 50
51 ), 51 ),
52 [_FN2] = LAYOUT( 52 [_FN2] = LAYOUT(
53 _______, _______, _______, _______, 53 _______, _______, _______, _______,
54 _______, _______, _______, _______, 54 _______, _______, _______, _______,
55 _______, _______, _______, _______, 55 _______, _______, _______, _______,
56 _______, _______, _______, _______, KC_NO,
57 _______, _______, _______, _______, _______, 56 _______, _______, _______, _______, _______,
58 _______, _______, _______, _______, KC_NO, 57 _______, _______, _______, _______, _______,
59 58 _______, _______, _______, _______, _______,
59
60 _______, _______, _______ 60 _______, _______, _______
61 61
62 ), 62 ),
63 [_FN3] = LAYOUT( 63 [_FN3] = LAYOUT(
64 _______, _______, _______, _______, 64 _______, _______, _______, _______,
65 _______, _______, _______, _______, 65 _______, _______, _______, _______,
66 _______, _______, _______, _______, 66 _______, _______, _______, _______,
67 _______, _______, _______, _______, KC_NO,
68 _______, _______, _______, _______, _______, 67 _______, _______, _______, _______, _______,
69 _______, _______, _______, _______, KC_NO, 68 _______, _______, _______, _______, _______,
70 69 _______, _______, _______, _______, _______,
70
71 _______, _______, _______ 71 _______, _______, _______
72 72
73 ) 73 )
@@ -83,6 +83,13 @@ bool encoder_update_user(uint8_t index, bool clockwise) {
83 tap_code(KC_VOLD); 83 tap_code(KC_VOLD);
84 } 84 }
85 break; 85 break;
86 case 1:
87 if (clockwise) {
88 tap_code(KC_BRIU);
89 } else {
90 tap_code(KC_BRID);
91 }
92 break;
86 } 93 }
87 return true; 94 return true;
88} 95}
diff --git a/keyboards/mechwild/murphpad/keymaps/via/keymap.c b/keyboards/mechwild/murphpad/keymaps/via/keymap.c
index bd74d2184..f7d381940 100644
--- a/keyboards/mechwild/murphpad/keymaps/via/keymap.c
+++ b/keyboards/mechwild/murphpad/keymaps/via/keymap.c
@@ -17,8 +17,8 @@
17 17
18// Defines names for use in layer keycodes and the keymap 18// Defines names for use in layer keycodes and the keymap
19enum layer_names { 19enum layer_names {
20 _BASE, 20 _BASE,
21 _FN1, 21 _FN1,
22 _FN2, 22 _FN2,
23 _FN3 23 _FN3
24}; 24};
@@ -26,49 +26,49 @@ enum layer_names {
26const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 26const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
27 /* Base */ 27 /* Base */
28 [_BASE] = LAYOUT( 28 [_BASE] = LAYOUT(
29 KC_F1, KC_F2, KC_F3, KC_F4, 29 KC_F1, KC_F2, KC_F3, KC_F4,
30 KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, 30 KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
31 KC_P7, KC_P8, KC_P9, KC_PPLS, 31 KC_P7, KC_P8, KC_P9, KC_PPLS,
32 KC_MUTE, KC_P4, KC_P5, KC_P6, KC_NO, 32 KC_MUTE, KC_P4, KC_P5, KC_P6, _______,
33 MO(_FN1), KC_P1, KC_P2, KC_P3, KC_PENT, 33 MO(_FN1), KC_P1, KC_P2, KC_P3, KC_PENT,
34 KC_BSPC, KC_P0, KC_NO, KC_PDOT, KC_NO, 34 KC_BSPC, KC_P0, _______, KC_PDOT, _______,
35 35
36 _______, _______, _______ 36 KC_F5, KC_F6, KC_F7
37 37
38 ), 38 ),
39 [_FN1] = LAYOUT( 39 [_FN1] = LAYOUT(
40 _______, _______, _______, _______, 40 _______, _______, _______, _______,
41 _______, _______, _______, _______, 41 _______, _______, _______, _______,
42 RGB_HUD, RGB_SPI, RGB_HUI, _______, 42 RGB_HUD, RGB_SPI, RGB_HUI, _______,
43 _______, RGB_RMOD, RGB_TOG, RGB_MOD, KC_NO, 43 _______, RGB_RMOD, RGB_TOG, RGB_MOD, _______,
44 _______, RGB_VAD, RGB_SPD, RGB_VAI, _______, 44 _______, RGB_VAD, RGB_SPD, RGB_VAI, _______,
45 _______, RGB_SAD, KC_NO, RGB_SAI, KC_NO, 45 _______, RGB_SAD, _______, RGB_SAI, _______,
46 46
47 _______, _______, _______ 47 _______, _______, _______
48 48
49 ), 49 ),
50 [_FN2] = LAYOUT( 50 [_FN2] = LAYOUT(
51 _______, _______, _______, _______, 51 _______, _______, _______, _______,
52 _______, _______, _______, _______, 52 _______, _______, _______, _______,
53 _______, _______, _______, _______, 53 _______, _______, _______, _______,
54 _______, _______, _______, _______, KC_NO, 54 _______, _______, _______, _______, _______,
55 _______, _______, _______, _______, _______, 55 _______, _______, _______, _______, _______,
56 _______, _______, _______, _______, KC_NO, 56 _______, _______, _______, _______, _______,
57 57
58 _______, _______, _______ 58 _______, _______, _______
59 59
60 ), 60 ),
61 [_FN3] = LAYOUT( 61 [_FN3] = LAYOUT(
62 _______, _______, _______, _______, 62 _______, _______, _______, _______,
63 _______, _______, _______, _______, 63 _______, _______, _______, _______,
64 _______, _______, _______, _______, 64 _______, _______, _______, _______,
65 _______, _______, _______, _______, KC_NO, 65 _______, _______, _______, _______, _______,
66 _______, _______, _______, _______, _______, 66 _______, _______, _______, _______, _______,
67 _______, _______, _______, _______, KC_NO, 67 _______, _______, _______, _______, _______,
68 68
69 _______, _______, _______ 69 _______, _______, _______
70 70
71 ) 71 )
72}; 72};
73 73
74#ifdef ENCODER_ENABLE 74#ifdef ENCODER_ENABLE
@@ -81,6 +81,13 @@ bool encoder_update_user(uint8_t index, bool clockwise) {
81 tap_code(KC_VOLD); 81 tap_code(KC_VOLD);
82 } 82 }
83 break; 83 break;
84 case 1:
85 if (clockwise) {
86 tap_code(KC_BRIU);
87 } else {
88 tap_code(KC_BRID);
89 }
90 break;
84 } 91 }
85 return true; 92 return true;
86} 93}
diff --git a/keyboards/mechwild/murphpad/readme.md b/keyboards/mechwild/murphpad/readme.md
index 6318aeae1..3f46af48b 100644
--- a/keyboards/mechwild/murphpad/readme.md
+++ b/keyboards/mechwild/murphpad/readme.md
@@ -5,7 +5,7 @@
5A DIY numpad kit with macro row, two additional keys, OLED, RGB Underglow, and encoder. 5A DIY numpad kit with macro row, two additional keys, OLED, RGB Underglow, and encoder.
6 6
7* Keyboard Maintainer: [Kyle McCreery](https://github.com/kylemccreery) 7* Keyboard Maintainer: [Kyle McCreery](https://github.com/kylemccreery)
8* Hardware Supported: MurphPad v2.0 8* Hardware Supported: MurphPad v3.1
9* Hardware Availability: [MurphPad on MechWild](https://mechwild.com/product/murphpad/) 9* Hardware Availability: [MurphPad on MechWild](https://mechwild.com/product/murphpad/)
10 10
11Make example for this keyboard (after setting up your build environment): 11Make example for this keyboard (after setting up your build environment):
diff --git a/keyboards/pistachio/config.h b/keyboards/pistachio/config.h
index e427f90ec..461a364ec 100644
--- a/keyboards/pistachio/config.h
+++ b/keyboards/pistachio/config.h
@@ -20,7 +20,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
20#include "config_common.h" 20#include "config_common.h"
21 21
22/* USB Device descriptor parameter */ 22/* USB Device descriptor parameter */
23#define VENDOR_ID 0xFEED 23#define VENDOR_ID 0x5255
24#define PRODUCT_ID 0xD0C2 24#define PRODUCT_ID 0xD0C2
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER rate 26#define MANUFACTURER rate
diff --git a/keyboards/pistachio/keymaps/rate/keymap.c b/keyboards/pistachio/keymaps/rate/keymap.c
new file mode 100644
index 000000000..34e1324ae
--- /dev/null
+++ b/keyboards/pistachio/keymaps/rate/keymap.c
@@ -0,0 +1,69 @@
1/* Copyright 2020 rate
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#include "keymap_jp.h"
18
19
20enum layer_names {
21 _QWERTY = 0,
22 _FN,
23 _NUM
24};
25
26enum custom_keycodes {
27 RGB_RST = SAFE_RANGE
28};
29
30const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
31 [_QWERTY] = LAYOUT(
32 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_DEL, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
33 KC_0, KC_ZKHK, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, JP_MINS, JP_CIRC, JP_YEN, KC_BSPC, KC_DEL,
34 KC_H, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, JP_AT, JP_LBRC, KC_HOME,
35 KC_U, KC_ENT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, JP_SCLN, JP_COLN, JP_RBRC, KC_ENT, KC_END,
36 KC_VOLU, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, JP_COMM, JP_DOT, JP_SLSH, JP_BSLS, KC_RSFT, KC_PGUP,
37 KC_VOLD, KC_LCTRL, KC_LGUI, KC_LALT, KC_LALT, LT(_NUM, KC_M), KC_SPC, LT(_FN, KC_SPC), KC_MPLY, JP_KANA, KC_UP, KC_DOWN, KC_INS, KC_RCTRL, KC_PGDN
38 ),
39 [_FN] = LAYOUT(
40 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
41 RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
42 RGB_VAD, _______, _______, _______, _______, KC_UP, _______, _______, KC_HOME, KC_END, _______, KC_PGUP, _______, _______, _______,
43 _______, _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, KC_LEFT, KC_UP, KC_DOWN, KC_RIGHT, KC_PGDN, _______, _______, _______, _______,
44 RGB_HUI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAI,
45 RGB_HUD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD
46 ),
47 [_NUM] = LAYOUT(
48 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
49 RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PMNS, _______, _______, _______, _______,
50 RGB_VAD, KC_7, KC_8, KC_9, _______, _______, _______, KC_7, KC_8, KC_9, _______, _______, _______, _______, _______,
51 _______, KC_4, KC_5, KC_6, _______, _______, _______, KC_4, KC_5, KC_6, _______, KC_PPLS, KC_PAST, _______, _______, _______,
52 RGB_HUI, KC_1, KC_2, KC_3, KC_0, JP_DOT, _______, KC_1, KC_2, KC_3, _______, KC_PSLS, _______, _______, RGB_SAI,
53 RGB_HUD, _______, _______, _______, _______, _______, _______, KC_0, _______, JP_DOT, _______, _______, _______, _______, RGB_SAD
54 )
55};
56
57
58bool process_record_user(uint16_t keycode, keyrecord_t *record) {
59 switch (keycode) {
60 case RGB_RST:
61 if (record->event.pressed) {
62 eeconfig_update_rgblight_default();
63 rgblight_enable();
64 }
65 break;
66 }
67
68 return true;
69}
diff --git a/keyboards/pistachio/keymaps/via/keymap.c b/keyboards/pistachio/keymaps/via/keymap.c
new file mode 100644
index 000000000..357253ac2
--- /dev/null
+++ b/keyboards/pistachio/keymaps/via/keymap.c
@@ -0,0 +1,78 @@
1/* Copyright 2020 rate
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#include "keymap_jp.h"
18
19
20enum layer_names {
21 _QWERTY = 0,
22 _FN,
23 _NUM,
24 _RESERVE
25};
26
27enum custom_keycodes {
28 RGB_RST = SAFE_RANGE
29};
30
31const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
32 [_QWERTY] = LAYOUT(
33 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_DEL, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
34 KC_0, KC_ZKHK, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, JP_MINS, JP_CIRC, JP_YEN, KC_BSPC, KC_DEL,
35 KC_H, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, JP_AT, JP_LBRC, KC_HOME,
36 KC_U, KC_ENT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, JP_SCLN, JP_COLN, JP_RBRC, KC_ENT, KC_END,
37 KC_VOLU, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, JP_COMM, JP_DOT, JP_SLSH, JP_BSLS, KC_RSFT, KC_PGUP,
38 KC_VOLD, KC_LCTRL, KC_LGUI, KC_LALT, KC_LALT, LT(_NUM, KC_M), KC_SPC, LT(_FN, KC_SPC), KC_MPLY, JP_KANA, KC_UP, KC_DOWN, KC_INS, KC_RCTRL, KC_PGDN
39 ),
40 [_FN] = LAYOUT(
41 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
42 RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
43 RGB_VAD, _______, _______, _______, _______, KC_UP, _______, _______, KC_HOME, KC_END, _______, KC_PGUP, _______, _______, _______,
44 _______, _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, KC_LEFT, KC_UP, KC_DOWN, KC_RIGHT, KC_PGDN, _______, _______, _______, _______,
45 RGB_HUI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAI,
46 RGB_HUD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD
47 ),
48 [_NUM] = LAYOUT(
49 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
50 RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PMNS, _______, _______, _______, _______,
51 RGB_VAD, KC_7, KC_8, KC_9, _______, _______, _______, KC_7, KC_8, KC_9, _______, _______, _______, _______, _______,
52 _______, KC_4, KC_5, KC_6, _______, _______, _______, KC_4, KC_5, KC_6, _______, KC_PPLS, KC_PAST, _______, _______, _______,
53 RGB_HUI, KC_1, KC_2, KC_3, KC_0, JP_DOT, _______, KC_1, KC_2, KC_3, _______, KC_PSLS, _______, _______, RGB_SAI,
54 RGB_HUD, _______, _______, _______, _______, _______, _______, KC_0, _______, JP_DOT, _______, _______, _______, _______, RGB_SAD
55 ),
56 [_RESERVE] = LAYOUT(
57 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
58 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
59 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
60 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
61 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
62 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
63 )
64};
65
66
67bool process_record_user(uint16_t keycode, keyrecord_t *record) {
68 switch (keycode) {
69 case RGB_RST:
70 if (record->event.pressed) {
71 eeconfig_update_rgblight_default();
72 rgblight_enable();
73 }
74 break;
75 }
76
77 return true;
78}
diff --git a/keyboards/pistachio/keymaps/via/rules.mk b/keyboards/pistachio/keymaps/via/rules.mk
new file mode 100644
index 000000000..036bd6d1c
--- /dev/null
+++ b/keyboards/pistachio/keymaps/via/rules.mk
@@ -0,0 +1 @@
VIA_ENABLE = yes \ No newline at end of file
diff --git a/keyboards/pistachio_mp/info.json b/keyboards/pistachio_mp/info.json
index cbbbd67bc..4514423f9 100644
--- a/keyboards/pistachio_mp/info.json
+++ b/keyboards/pistachio_mp/info.json
@@ -7,24 +7,30 @@
7 "layouts": { 7 "layouts": {
8 "LAYOUT": { 8 "LAYOUT": {
9 "layout": [ 9 "layout": [
10 {"label":"Encoder", "x":3, "y":0}, 10 {"label":"Encoder", "x":3, "y":0},
11 {"label":"Num Lock", "x":0, "y":1.5}, 11
12 {"label":"/", "x":1, "y":1.5}, 12 {"label":"Num Lock", "x":0, "y":1.5},
13 {"label":"*", "x":2, "y":1.5}, 13 {"label":"/", "x":1, "y":1.5},
14 {"label":"-", "x":3, "y":1.5}, 14 {"label":"*", "x":2, "y":1.5},
15 {"label":"7", "x":0, "y":2.5}, 15 {"label":"-", "x":3, "y":1.5},
16 {"label":"8", "x":1, "y":2.5}, 16
17 {"label":"9", "x":2, "y":2.5}, 17 {"label":"7", "x":0, "y":2.5},
18 {"label":"+", "x":3, "y":2.5, "h":2}, 18 {"label":"8", "x":1, "y":2.5},
19 {"label":"4", "x":0, "y":3.5}, 19 {"label":"9", "x":2, "y":2.5},
20 {"label":"5", "x":1, "y":3.5}, 20
21 {"label":"6", "x":2, "y":3.5}, 21 {"label":"4", "x":0, "y":3.5},
22 {"label":"1", "x":0, "y":4.5}, 22 {"label":"5", "x":1, "y":3.5},
23 {"label":"2", "x":1, "y":4.5}, 23 {"label":"6", "x":2, "y":3.5},
24 {"label":"3", "x":2, "y":4.5}, 24 {"label":"+", "x":3, "y":2.5, "h":2},
25 {"label":"Enter", "x":3, "y":4.5, "h":2}, 25
26 {"label":"0", "x":0, "y":5.5, "w":2}, 26 {"label":"1", "x":0, "y":4.5},
27 {"label":".", "x":2, "y":5.5}] 27 {"label":"2", "x":1, "y":4.5},
28 {"label":"3", "x":2, "y":4.5},
29
30 {"label":"0", "x":0, "y":5.5, "w":2},
31 {"label":".", "x":2, "y":5.5},
32 {"label":"Enter", "x":3, "y":4.5, "h":2}
33 ]
28 } 34 }
29 } 35 }
30} \ No newline at end of file 36}
diff --git a/keyboards/planck/keymaps/mnil/config.h b/keyboards/planck/keymaps/mnil/config.h
new file mode 100644
index 000000000..2dc8e19be
--- /dev/null
+++ b/keyboards/planck/keymaps/mnil/config.h
@@ -0,0 +1,23 @@
1/* Copyright 2021 Mats Nilsson
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#ifdef AUDIO_ENABLE
20# define STARTUP_SONG SONG(NO_SOUND)
21#endif
22
23#define MIDI_BASIC
diff --git a/keyboards/planck/keymaps/mnil/keymap.c b/keyboards/planck/keymaps/mnil/keymap.c
new file mode 100644
index 000000000..85d84d2c6
--- /dev/null
+++ b/keyboards/planck/keymaps/mnil/keymap.c
@@ -0,0 +1,60 @@
1/* Copyright 2021 Mats Nilsson
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 "mnil.h"
18
19layer_state_t layer_state_set_user(layer_state_t state) { return update_tri_layer_state(state, _SYMBOLS, _NAVIGATION, _NUMPAD); }
20
21// clang-format off
22const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
23
24[_COLEMAK] = LAYOUT_planck_2x2u(
25 KC_ESC, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, TD(OAA), KC_BSPC,
26 KC_TAB, TD(AAE), KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, KC_NO,
27 KC_LSFT, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, KC_DOT, SE_MINS, KC_NO ,
28 KC_LCTL, KC_NO, KC_LGUI, SFT_TAB, _NAV_SPC, _SYM_ENT, CTL_BSPC,ALT_DEL, KC_NO, KC_LGUI
29),
30
31[_QWERTY] = LAYOUT_planck_2x2u(
32 KC_TRNS, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, SE_AA,
33 KC_TRNS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, SE_OSLH, SE_AE,
34 KC_TRNS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_TRNS,
35 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
36),
37
38[_SYMBOLS] = LAYOUT_planck_2x2u(
39 KC_TRNS, KC_NO, SE_PIPE, SE_LBRC, SE_RBRC, KC_NO, S(KC_5), SE_QUES, SE_AT, SE_EQL, SE_DLR, KC_BSPC,
40 KC_TRNS, SE_LCBR, SE_RCBR, SE_LPRN, SE_RPRN, KC_NO, SE_PLUS, S(KC_1), S(KC_2), S(KC_3), SE_AMPR, KC_QUOT,
41 KC_TRNS, M_TILD, M_CIRC, SE_LESS, SE_GRTR, KC_NO, SE_APOS, SE_SLSH, SE_BSLS, SE_ASTR, M_BTCK, KC_ENT,
42 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
43),
44
45[_NAVIGATION] = LAYOUT_planck_2x2u(
46 KC_TRNS, KC_NO, CUT, COPY, PASTE, AUTOFILL,KC_NO, KC_HOME, KC_WH_D, KC_WH_U, KC_END, KC_NO,
47 KC_TRNS, KC_ACL0, KC_ACL1, KC_BTN2, KC_BTN1, KC_LCTL, KC_WH_L, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_WH_R,
48 KC_TRNS, KC_ACL2, KC_BTN4, KC_BTN3, KC_BTN5, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_LCTL,
49 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
50),
51
52[_NUMPAD] = LAYOUT_planck_2x2u(
53 KC_TRNS, QUIT, WIN, MVWSL, MVWSR, CRYWS, TERM, KC_7, KC_8, KC_9, KC_COMM, RESET,
54 KC_TRNS, CS_TAB, C_TAB, PRVWS, NXTWS, I3MOD, OPEN, KC_4, KC_5, KC_6, KC_0, KC_NO,
55 KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, MOVWS, BROWSER, KC_1, KC_2, KC_3, KC_DOT, KC_NO,
56 QWE_COL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
57),
58
59};
60// clang-format on
diff --git a/keyboards/planck/keymaps/mnil/readme.md b/keyboards/planck/keymaps/mnil/readme.md
new file mode 100644
index 000000000..43c940961
--- /dev/null
+++ b/keyboards/planck/keymaps/mnil/readme.md
@@ -0,0 +1,2 @@
1# mnil's planck keymap
2Read my user settings [here](../../../../users/mnil/readme.md) for more details.
diff --git a/keyboards/switchplate/switchplate910/config.h b/keyboards/switchplate/switchplate910/config.h
new file mode 100644
index 000000000..81f825470
--- /dev/null
+++ b/keyboards/switchplate/switchplate910/config.h
@@ -0,0 +1,87 @@
1/*
2Copyright 2021 Stefan Karsch
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 0x54F3
24#define PRODUCT_ID 0x2065
25#define DEVICE_VER 0x0001
26#define MANUFACTURER Switchplate Peripherals
27#define PRODUCT 910
28
29/* key matrix size */
30#define MATRIX_ROWS 5
31#define MATRIX_COLS 15
32
33/*
34 * Keyboard Matrix Assignments
35 *
36 * Change this to how you wired your keyboard
37 * COLS: AVR pins used for columns, left to right
38 * ROWS: AVR pins used for rows, top to bottom
39 * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
40 * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
41 *
42 */
43#define MATRIX_ROW_PINS { F4, F5, F6, F7, D1 }
44#define MATRIX_COL_PINS { D2, D3, D5, D4, D6, D7, B4, B5, B6, C6, C7, B3, B2, B0, B1 }
45#define UNUSED_PINS
46
47/* COL2ROW, ROW2COL*/
48#define DIODE_DIRECTION COL2ROW
49
50#define BACKLIGHT_PIN B7
51// #define BACKLIGHT_BREATHING
52#define BACKLIGHT_LEVELS 3
53
54/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
55#define DEBOUNCE 5
56
57/* define if matrix has ghost (lacks anti-ghosting diodes) */
58//#define MATRIX_HAS_GHOST
59
60/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
61#define LOCKING_SUPPORT_ENABLE
62/* Locking resynchronize hack */
63#define LOCKING_RESYNC_ENABLE
64
65/*
66 * Feature disable options
67 * These options are also useful to firmware size reduction.
68 */
69
70/* disable debug print */
71//#define NO_DEBUG
72
73/* disable print */
74//#define NO_PRINT
75
76/* disable action features */
77//#define NO_ACTION_LAYER
78//#define NO_ACTION_TAPPING
79//#define NO_ACTION_ONESHOT
80
81/* disable these deprecated features by default */
82#define NO_ACTION_MACRO
83#define NO_ACTION_FUNCTION
84
85/* Bootmagic Lite key configuration */
86// #define BOOTMAGIC_LITE_ROW 0
87// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/switchplate/switchplate910/info.json b/keyboards/switchplate/switchplate910/info.json
new file mode 100644
index 000000000..bbdcd3da0
--- /dev/null
+++ b/keyboards/switchplate/switchplate910/info.json
@@ -0,0 +1,297 @@
1{
2 "keyboard_name": "southpaw910",
3 "url": "",
4 "maintainer": "MxBluE",
5 "width": 22.5,
6 "height": 6.25,
7 "layouts": {
8 "LAYOUT_all": {
9 "layout": [
10 {
11 "x": 0,
12 "y": 0
13 },
14 {
15 "x": 1,
16 "y": 0
17 },
18 {
19 "x": 2,
20 "y": 0
21 },
22 {
23 "x": 3,
24 "y": 0
25 },
26 {
27 "x": 4,
28 "y": 0
29 },
30 {
31 "x": 5,
32 "y": 0
33 },
34 {
35 "x": 6,
36 "y": 0
37 },
38 {
39 "x": 7,
40 "y": 0
41 },
42 {
43 "x": 8,
44 "y": 0
45 },
46 {
47 "x": 9,
48 "y": 0
49 },
50 {
51 "x": 10,
52 "y": 0
53 },
54 {
55 "x": 11,
56 "y": 0
57 },
58 {
59 "x": 12,
60 "y": 0
61 },
62 {
63 "x": 13,
64 "y": 0
65 },
66 {
67 "x": 14,
68 "y": 0
69 },
70 {
71 "x": 15,
72 "y": 0
73 },
74 {
75 "x": 0,
76 "y": 1,
77 "w": 1.5
78 },
79 {
80 "x": 1.5,
81 "y": 1
82 },
83 {
84 "x": 2.5,
85 "y": 1
86 },
87 {
88 "x": 3.5,
89 "y": 1
90 },
91 {
92 "x": 4.5,
93 "y": 1
94 },
95 {
96 "x": 5.5,
97 "y": 1
98 },
99 {
100 "x": 6.5,
101 "y": 1
102 },
103 {
104 "x": 7.5,
105 "y": 1
106 },
107 {
108 "x": 8.5,
109 "y": 1
110 },
111 {
112 "x": 9.5,
113 "y": 1
114 },
115 {
116 "x": 10.5,
117 "y": 1
118 },
119 {
120 "x": 11.5,
121 "y": 1
122 },
123 {
124 "x": 12.5,
125 "y": 1
126 },
127 {
128 "x": 13.5,
129 "y": 1,
130 "w": 1.5
131 },
132 {
133 "x": 15,
134 "y": 1
135 },
136 {
137 "x": 0,
138 "y": 2,
139 "w": 1.75
140 },
141 {
142 "x": 1.75,
143 "y": 2
144 },
145 {
146 "x": 2.75,
147 "y": 2
148 },
149 {
150 "x": 3.75,
151 "y": 2
152 },
153 {
154 "x": 4.75,
155 "y": 2
156 },
157 {
158 "x": 5.75,
159 "y": 2
160 },
161 {
162 "x": 6.75,
163 "y": 2
164 },
165 {
166 "x": 7.75,
167 "y": 2
168 },
169 {
170 "x": 8.75,
171 "y": 2
172 },
173 {
174 "x": 9.75,
175 "y": 2
176 },
177 {
178 "x": 10.75,
179 "y": 2
180 },
181 {
182 "x": 11.75,
183 "y": 2
184 },
185 {
186 "x": 12.75,
187 "y": 2,
188 "w": 2.25
189 },
190 {
191 "x": 15,
192 "y": 2
193 },
194 {
195 "x": 0,
196 "y": 3,
197 "w": 2.25
198 },
199 {
200 "x": 2.25,
201 "y": 3
202 },
203 {
204 "x": 3.25,
205 "y": 3
206 },
207 {
208 "x": 4.25,
209 "y": 3
210 },
211 {
212 "x": 5.25,
213 "y": 3
214 },
215 {
216 "x": 6.25,
217 "y": 3
218 },
219 {
220 "x": 7.25,
221 "y": 3
222 },
223 {
224 "x": 8.25,
225 "y": 3
226 },
227 {
228 "x": 9.25,
229 "y": 3
230 },
231 {
232 "x": 10.25,
233 "y": 3
234 },
235 {
236 "x": 11.25,
237 "y": 3
238 },
239 {
240 "x": 12.25,
241 "y": 3,
242 "w": 1.75
243 },
244 {
245 "x": 14,
246 "y": 3
247 },
248 {
249 "x": 15,
250 "y": 3
251 },
252 {
253 "x": 0,
254 "y": 4,
255 "w": 1.25
256 },
257 {
258 "x": 1.25,
259 "y": 4,
260 "w": 1.25
261 },
262 {
263 "x": 2.5,
264 "y": 4,
265 "w": 1.25
266 },
267 {
268 "x": 3.75,
269 "y": 4,
270 "w": 6.25
271 },
272 {
273 "x": 10,
274 "y": 4,
275 "w": 1.25
276 },
277 {
278 "x": 11.25,
279 "y": 4,
280 "w": 1.25
281 },
282 {
283 "x": 13,
284 "y": 4
285 },
286 {
287 "x": 14,
288 "y": 4
289 },
290 {
291 "x": 15,
292 "y": 4
293 }
294 ]
295 }
296 }
297}
diff --git a/keyboards/switchplate/switchplate910/keymaps/default/keymap.c b/keyboards/switchplate/switchplate910/keymaps/default/keymap.c
new file mode 100644
index 000000000..5277a0dc0
--- /dev/null
+++ b/keyboards/switchplate/switchplate910/keymaps/default/keymap.c
@@ -0,0 +1,40 @@
1/* Copyright 2021 Stefan Karsch
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// Defines names for use in layer keycodes and the keymap
19enum layer_names {
20 _BASE,
21 _FN
22};
23
24const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
25 LAYOUT_all( /* Base */
26 KC_GESC, 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, KC_TRNS,
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_DEL,
28 KC_CAPSLOCK, 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,
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_PGDN,
30 KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
31),
32
33 LAYOUT_all( /* L1 */
34 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, KC_INS, KC_TRNS,
35 KC_TRNS, KC_MPLY, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAI,
36 RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAD,
37 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, RGB_MOD, RGB_SAI, RGB_TOG,
38 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUD, RGB_SAD, RGB_HUI
39),
40};
diff --git a/keyboards/switchplate/switchplate910/keymaps/default/readme.md b/keyboards/switchplate/switchplate910/keymaps/default/readme.md
new file mode 100644
index 000000000..19ca528e9
--- /dev/null
+++ b/keyboards/switchplate/switchplate910/keymaps/default/readme.md
@@ -0,0 +1,3 @@
1# The default keymap for Switchplate910
2
3Nothing special \ No newline at end of file
diff --git a/keyboards/switchplate/switchplate910/keymaps/via/keymap.c b/keyboards/switchplate/switchplate910/keymaps/via/keymap.c
new file mode 100644
index 000000000..c27877254
--- /dev/null
+++ b/keyboards/switchplate/switchplate910/keymaps/via/keymap.c
@@ -0,0 +1,57 @@
1/* Copyright 2021 Stefan Karsch
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// Defines names for use in layer keycodes and the keymap
19enum layer_names {
20 _BASE,
21 _FN
22};
23
24const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
25 LAYOUT_all( /* Base */
26 KC_GESC, 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, KC_TRNS,
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_DEL,
28 KC_CAPSLOCK, 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,
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_PGDN,
30 KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
31),
32
33 LAYOUT_all( /* L1 */
34 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, KC_INS, KC_TRNS,
35 KC_TRNS, KC_MPLY, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAI,
36 RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAD,
37 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, RGB_MOD, RGB_SAI, RGB_TOG,
38 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUD, RGB_SAD, RGB_HUI
39),
40
41 LAYOUT_all( /* L2 */
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,
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,
45 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,
46 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
47),
48
49 LAYOUT_all( /* L3 */
50 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,
51 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,
52 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,
53 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,
54 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
55)
56
57};
diff --git a/keyboards/xelus/pachi/keymaps/via/rules.mk b/keyboards/switchplate/switchplate910/keymaps/via/rules.mk
index 1e5b99807..1e5b99807 100644
--- a/keyboards/xelus/pachi/keymaps/via/rules.mk
+++ b/keyboards/switchplate/switchplate910/keymaps/via/rules.mk
diff --git a/keyboards/switchplate/switchplate910/readme.md b/keyboards/switchplate/switchplate910/readme.md
new file mode 100644
index 000000000..199a8c117
--- /dev/null
+++ b/keyboards/switchplate/switchplate910/readme.md
@@ -0,0 +1,13 @@
1# Switchplate910
2
3Acoustic cut PCB for the TGR 910
4
5* Keyboard Maintainer: [Switchplate Peripherals](https://switchplate.co/)/[ai03](https://github.com/ai03-2725)
6* Hardware Supported: Switchplate910 PCB
7* Hardware Availability: GB
8
9Make example for this keyboard (after setting up your build environment):
10
11 make switchplate/switchplate910:default
12
13See 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/switchplate/switchplate910/rules.mk b/keyboards/switchplate/switchplate910/rules.mk
new file mode 100644
index 000000000..6e53d4cab
--- /dev/null
+++ b/keyboards/switchplate/switchplate910/rules.mk
@@ -0,0 +1,22 @@
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 = lite # Virtual DIP switch configuration
11MOUSEKEY_ENABLE = no # 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 = no # USB Nkey Rollover
19BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
20RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
21BLUETOOTH_ENABLE = no # Enable Bluetooth
22AUDIO_ENABLE = no # Audio output
diff --git a/keyboards/xelus/pachi/pachi.c b/keyboards/switchplate/switchplate910/switchplate910.c
index 5dd530254..fce0d3072 100644
--- a/keyboards/xelus/pachi/pachi.c
+++ b/keyboards/switchplate/switchplate910/switchplate910.c
@@ -1,4 +1,4 @@
1/* Copyright 2021 Harrison Chan (Xelus) 1/* Copyright 2021 Stefan Karsch
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
@@ -14,5 +14,5 @@
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#include "pachi.h" 17#include "switchplate910.h"
18 18
diff --git a/keyboards/switchplate/switchplate910/switchplate910.h b/keyboards/switchplate/switchplate910/switchplate910.h
new file mode 100644
index 000000000..7142ec779
--- /dev/null
+++ b/keyboards/switchplate/switchplate910/switchplate910.h
@@ -0,0 +1,43 @@
1/* Copyright 2021 Stefan Karsch
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/* This is a shortcut to help you visually see your layout.
22 *
23 * The first section contains all of the arguments representing the physical
24 * layout of the board and position of the keys.
25 *
26 * The second converts the arguments into a two-dimensional array which
27 * represents the switch matrix.
28 */
29
30#define LAYOUT_all( \
31 K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K213, \
32 K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \
33 K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K214, \
34 K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K314, \
35 K400, K401, K402, K405, K408, K409, K411, K412, K414 \
36) \
37{ \
38 { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \
39 { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \
40 { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214 }, \
41 { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, KC_NO, K314 }, \
42 { K400, K401, K402, KC_NO, KC_NO, K405, KC_NO, KC_NO, K408, K409, KC_NO, K411, K412, KC_NO, K414 } \
43}
diff --git a/keyboards/telophase/config.h b/keyboards/telophase/config.h
index c67dd939b..51718da9d 100644
--- a/keyboards/telophase/config.h
+++ b/keyboards/telophase/config.h
@@ -1,5 +1,5 @@
1/* 1/*
2Copyright 2012 Jun Wako <wakojun@gmail.com> 2Copyright 2021
3 3
4This program is free software: you can redistribute it and/or modify 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 5it under the terms of the GNU General Public License as published by
@@ -15,32 +15,45 @@ You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>. 15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/ 16*/
17 17
18#ifndef CONFIG_H 18#pragma once
19#define CONFIG_H
20 19
21#include "config_common.h" 20#include "config_common.h"
22 21
23/* USB Device descriptor parameter */ 22/* USB Device descriptor parameter */
24 23#define VENDOR_ID 0xFEED
25#define VENDOR_ID 0xFEED 24#define PRODUCT_ID 0x6060
26#define PRODUCT_ID 0x6060 25#define DEVICE_VER 0x0001
27#define DEVICE_VER 0x0001 26#define MANUFACTURER unknown
28#define MANUFACTURER unknown 27#define PRODUCT Telophase
29#define PRODUCT Telophase
30 28
31/* key matrix size */ 29/* key matrix size */
32#define MATRIX_ROWS 4 30#define MATRIX_ROWS 4
33#define MATRIX_COLS 12 31#define MATRIX_COLS 12
34 32
35/* define if matrix has ghost */
36//#define MATRIX_HAS_GHOST
37
38/* number of backlight levels */
39//#define BACKLIGHT_LEVELS 3
40
41#define ONESHOT_TIMEOUT 500 33#define ONESHOT_TIMEOUT 500
42 34
43/* 35/*
36 * Force NKRO
37 *
38 * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
39 * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
40 * makefile for this to work.)
41 *
42 * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
43 * until the next keyboard reset.
44 *
45 * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
46 * fully operational during normal computer usage.
47 *
48 * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
49 * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
50 * bootmagic, NKRO mode will always be enabled until it is toggled again during a
51 * power-up.
52 *
53 */
54//#define FORCE_NKRO
55
56/*
44 * Feature disable options 57 * Feature disable options
45 * These options are also useful to firmware size reduction. 58 * These options are also useful to firmware size reduction.
46 */ 59 */
@@ -55,10 +68,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
55//#define NO_ACTION_LAYER 68//#define NO_ACTION_LAYER
56//#define NO_ACTION_TAPPING 69//#define NO_ACTION_TAPPING
57//#define NO_ACTION_ONESHOT 70//#define NO_ACTION_ONESHOT
58//#define NO_ACTION_MACRO
59//#define NO_ACTION_FUNCTION
60 71
61//UART settings for communication with the RF microcontroller 72/* disable these deprecated features by default */
73#define NO_ACTION_MACRO
74#define NO_ACTION_FUNCTION
75
76// UART settings for communication with the RF microcontroller
62#define SERIAL_UART_BAUD 1000000 77#define SERIAL_UART_BAUD 1000000
63#define SERIAL_UART_RXD_PRESENT (UCSR1A & _BV(RXC1)) 78#define SERIAL_UART_RXD_PRESENT (UCSR1A & _BV(RXC1))
64#define SERIAL_UART_INIT_CUSTOM \ 79#define SERIAL_UART_INIT_CUSTOM \
@@ -66,5 +81,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
66 UCSR1B = _BV(TXEN1) | _BV(RXEN1); \ 81 UCSR1B = _BV(TXEN1) | _BV(RXEN1); \
67 /* 8-bit data */ \ 82 /* 8-bit data */ \
68 UCSR1C = _BV(UCSZ11) | _BV(UCSZ10); 83 UCSR1C = _BV(UCSZ11) | _BV(UCSZ10);
69
70#endif
diff --git a/keyboards/telophase/keymaps/default/keymap.c b/keyboards/telophase/keymaps/default/keymap.c
index 9cc6c1bb0..163f754d4 100644
--- a/keyboards/telophase/keymaps/default/keymap.c
+++ b/keyboards/telophase/keymaps/default/keymap.c
@@ -1,99 +1,55 @@
1// this is the style you want to emulate. 1/*
2// This is the canonical layout file for the Quantum project. If you want to add another keyboard, 2Copyright 2021
3 3
4#include QMK_KEYBOARD_H 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.
5 8
6// Each layer gets a name for readability, which is then used in the keymap matrix below. 9This program is distributed in the hope that it will be useful,
7// The underscores don't mean anything - you can have a layer called STUFF or any other name. 10but WITHOUT ANY WARRANTY; without even the implied warranty of
8// Layer names don't all need to be of the same length, obviously, and you can also skip them 11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
9// entirely and just use numbers. 12GNU General Public License for more details.
10enum telophase_layers 13
11{ 14You should have received a copy of the GNU General Public License
12 _QWERTY, 15along with this program. If not, see <http://www.gnu.org/licenses/>.
13 _LOWER, 16*/
14 _RAISE, 17
15 _ADJUST, 18#include QMK_KEYBOARD_H
16};
17 19
18enum telophase_keycodes 20enum layer_names {
19{ 21 _QWERTY,
20 LOWER = SAFE_RANGE, 22 _LOWER,
21 RAISE, 23 _RAISE,
22 ADJUST 24 _ADJUST
23}; 25};
24 26
25#define LONGPRESS_DELAY 150 27#define LONGPRESS_DELAY 150
26#define LAYER_TOGGLE_DELAY 300 28#define LAYER_TOGGLE_DELAY 300
27 29
28const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 30const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
29[_QWERTY] = { /*QWERTY*/ 31 [_QWERTY] = LAYOUT_ortho_4x12(
30 {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC }, 32 KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
31 {KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT }, 33 KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
32 {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, 34 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
33 {KC_LCTL, KC_LGUI, KC_LALT, ADJUST, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT } 35 KC_LCTL, KC_LGUI, KC_LALT, MO(_ADJUST), MO(_LOWER), KC_SPC, KC_SPC, MO(_RAISE), KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT
34}, 36 ),
35 37 [_LOWER] = LAYOUT_ortho_4x12(
36 38 KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL,
37[_LOWER] = { /*Lower*/ 39 KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
38 {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL }, 40 _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), _______, _______, _______,
39 {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE }, 41 _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
40 {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),_______, _______, _______ }, 42 ),
41 {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY } 43 [_RAISE] = LAYOUT_ortho_4x12(
42}, 44 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
43 45 KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
44 46 _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______,
45 47 _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
46[_RAISE] = { /*Raise*/ 48 ),
47 {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL }, 49 [_ADJUST] = LAYOUT_ortho_4x12(
48 {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS }, 50 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
49 {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______ }, 51 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
50 {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY } 52 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
51 53 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
52}, 54 )
53
54
55[_ADJUST] = { /*Adjust*/
56 {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
57 {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
58 {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
59 {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }
60
61},
62};
63
64bool process_record_user(uint16_t keycode, keyrecord_t *record) {
65 switch (keycode) {
66 case LOWER:
67 if (record->event.pressed) {
68 layer_on(_LOWER);
69 } else {
70 layer_off(_LOWER);
71 }
72 return false;
73 break;
74
75 case RAISE:
76 if (record->event.pressed) {
77 layer_on(_RAISE);
78 } else {
79 layer_off(_RAISE);
80 }
81 return false;
82 break;
83
84 case ADJUST:
85 if (record->event.pressed) {
86 layer_on(_ADJUST);
87 } else {
88 layer_off(_ADJUST);
89 }
90 return false;
91 break;
92
93 }
94 return true;
95}
96
97void matrix_scan_user(void) {
98 return;
99}; 55};
diff --git a/keyboards/telophase/matrix.c b/keyboards/telophase/matrix.c
index bc7a125e0..a153dd4bf 100644
--- a/keyboards/telophase/matrix.c
+++ b/keyboards/telophase/matrix.c
@@ -15,86 +15,18 @@ GNU General Public License for more details.
15You should have received a copy of the GNU General Public License 15You should have received a copy of the GNU General Public License
16along with this program. If not, see <http://www.gnu.org/licenses/>. 16along with this program. If not, see <http://www.gnu.org/licenses/>.
17*/ 17*/
18#include <stdint.h> 18
19#include <stdbool.h> 19#include "quantum.h"
20#if defined(__AVR__)
21#include <avr/io.h>
22#endif
23#include "wait.h"
24#include "print.h"
25#include "debug.h"
26#include "util.h"
27#include "matrix.h" 20#include "matrix.h"
28#include "timer.h"
29#include "protocol/serial.h" 21#include "protocol/serial.h"
30 22
31#if (MATRIX_COLS <= 8) 23void matrix_init_custom(void) {
32# define print_matrix_header() print("\nr/c 01234567\n")
33# define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row))
34# define matrix_bitpop(i) bitpop(matrix[i])
35# define ROW_SHIFTER ((uint8_t)1)
36#elif (MATRIX_COLS <= 16)
37# define print_matrix_header() print("\nr/c 0123456789ABCDEF\n")
38# define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row))
39# define matrix_bitpop(i) bitpop16(matrix[i])
40# define ROW_SHIFTER ((uint16_t)1)
41#elif (MATRIX_COLS <= 32)
42# define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n")
43# define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row))
44# define matrix_bitpop(i) bitpop32(matrix[i])
45# define ROW_SHIFTER ((uint32_t)1)
46#endif
47
48/* matrix state(1:on, 0:off) */
49static matrix_row_t matrix[MATRIX_ROWS];
50
51__attribute__ ((weak))
52void matrix_init_quantum(void) {
53 matrix_init_kb();
54}
55
56__attribute__ ((weak))
57void matrix_scan_quantum(void) {
58 matrix_scan_kb();
59}
60
61__attribute__ ((weak))
62void matrix_init_kb(void) {
63 matrix_init_user();
64}
65
66__attribute__ ((weak))
67void matrix_scan_kb(void) {
68 matrix_scan_user();
69}
70
71__attribute__ ((weak))
72void matrix_init_user(void) {
73}
74
75__attribute__ ((weak))
76void matrix_scan_user(void) {
77}
78
79inline
80uint8_t matrix_rows(void) {
81 return MATRIX_ROWS;
82}
83
84inline
85uint8_t matrix_cols(void) {
86 return MATRIX_COLS;
87}
88
89void matrix_init(void) {
90
91 matrix_init_quantum();
92 serial_init(); 24 serial_init();
93} 25}
94 26
95uint8_t matrix_scan(void) 27bool matrix_scan_custom(matrix_row_t current_matrix[]) {
96{
97 uint32_t timeout = 0; 28 uint32_t timeout = 0;
29 bool changed = false;
98 30
99 //the s character requests the RF slave to send the matrix 31 //the s character requests the RF slave to send the matrix
100 SERIAL_UART_DATA = 's'; 32 SERIAL_UART_DATA = 's';
@@ -107,9 +39,9 @@ uint8_t matrix_scan(void)
107 //wait for the serial data, timeout if it's been too long 39 //wait for the serial data, timeout if it's been too long
108 //this only happened in testing with a loose wire, but does no 40 //this only happened in testing with a loose wire, but does no
109 //harm to leave it in here 41 //harm to leave it in here
110 while(!SERIAL_UART_RXD_PRESENT){ 42 while (!SERIAL_UART_RXD_PRESENT) {
111 timeout++; 43 timeout++;
112 if (timeout > 10000){ 44 if (timeout > 10000) {
113 break; 45 break;
114 } 46 }
115 } 47 }
@@ -118,47 +50,16 @@ uint8_t matrix_scan(void)
118 50
119 //check for the end packet, the key state bytes use the LSBs, so 0xE0 51 //check for the end packet, the key state bytes use the LSBs, so 0xE0
120 //will only show up here if the correct bytes were recieved 52 //will only show up here if the correct bytes were recieved
121 if (uart_data[11] == 0xE0) 53 if (uart_data[11] == 0xE0) {
122 {
123 //shifting and transferring the keystates to the QMK matrix variable 54 //shifting and transferring the keystates to the QMK matrix variable
124 for (uint8_t i = 0; i < MATRIX_ROWS; i++) { 55 for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
125 matrix[i] = (uint16_t) uart_data[i*2] | (uint16_t) uart_data[i*2+1] << 6; 56 matrix_row_t current_row = (uint16_t) uart_data[i * 2] | (uint16_t) uart_data[i * 2 + 1] << 6;
57 if (current_matrix[i] != current_row) {
58 changed = true;
59 }
60 current_matrix[i] = current_row;
126 } 61 }
127 } 62 }
128 63
129 64 return changed;
130 matrix_scan_quantum();
131 return 1;
132}
133
134inline
135bool matrix_is_on(uint8_t row, uint8_t col)
136{
137 return (matrix[row] & ((matrix_row_t)1<<col));
138}
139
140inline
141matrix_row_t matrix_get_row(uint8_t row)
142{
143 return matrix[row];
144}
145
146void matrix_print(void)
147{
148 print_matrix_header();
149
150 for (uint8_t row = 0; row < MATRIX_ROWS; row++) {
151 print_hex8(row); print(": ");
152 print_matrix_row(row);
153 print("\n");
154 }
155}
156
157uint8_t matrix_key_count(void)
158{
159 uint8_t count = 0;
160 for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
161 count += matrix_bitpop(i);
162 }
163 return count;
164} 65}
diff --git a/keyboards/telophase/readme.md b/keyboards/telophase/readme.md
index 97bce57bb..26b623ca1 100644
--- a/keyboards/telophase/readme.md
+++ b/keyboards/telophase/readme.md
@@ -1,16 +1,13 @@
1Telophase 1# Telophase
2=========
3 2
4A wireless split compact keyboard. 3A wireless split compact keyboard.
5 4
6Hardware Supported: Telophase PCB 5This keyboard uses a completely different 'matrix scan' system to other keyboards, it relies on an external nRF51822 microcontroller maintaining a matrix of keystates received from the keyboard halves. The matrix.c file contains the code to poll the external microcontroller for the key matrix. As long as this file is not changed, all other QMK features are supported.
6
7* Hardware Supported: Telophase PCB
7 8
8Make example for this keyboard (after setting up your build environment): 9Make example for this keyboard (after setting up your build environment):
9 10
10 make telophase:default 11 make telophase:default
11 12
12See [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. 13See 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).
13
14## Mitosis Notes
15
16These configuration files were based off the Atreus keyboard. It assumes a Pro Micro is being used, however retains the 'make upload' feature from the Atreus branch. This keyboard uses a completely different 'matrix scan' system to other keyboards, it relies on an external nRF51822 microcontroller maintaining a matrix of keystates received from the keyboard halves. The matrix.c file contains the code to poll the external microcontroller for the key matrix. As long as this file is not changed, all other QMK features are supported.
diff --git a/keyboards/telophase/rules.mk b/keyboards/telophase/rules.mk
index 614d90918..d475836b7 100644
--- a/keyboards/telophase/rules.mk
+++ b/keyboards/telophase/rules.mk
@@ -2,34 +2,27 @@
2MCU = atmega32u4 2MCU = atmega32u4
3 3
4# Bootloader selection 4# Bootloader selection
5# Teensy halfkay
6# Pro Micro caterina
7# Atmel DFU atmel-dfu
8# LUFA DFU lufa-dfu
9# QMK DFU qmk-dfu
10# ATmega32A bootloadHID
11# ATmega328P USBasp
12BOOTLOADER = caterina 5BOOTLOADER = caterina
13 6
14# Build Options 7# Build Options
15# comment out to disable the options. 8# change yes to no to disable
16# 9#
17#BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration 10BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
18MOUSEKEY_ENABLE = yes # Mouse keys 11MOUSEKEY_ENABLE = yes # Mouse keys
19EXTRAKEY_ENABLE = yes # Audio control and System control 12EXTRAKEY_ENABLE = yes # Audio control and System control
20CONSOLE_ENABLE = yes # Console for debug 13CONSOLE_ENABLE = yes # Console for debug
21COMMAND_ENABLE = yes # Commands for debug and configuration 14COMMAND_ENABLE = yes # Commands for debug and configuration
22CUSTOM_MATRIX = yes # Remote matrix from the wireless bridge 15SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
23# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE 16# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
24# SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend 17NKRO_ENABLE = yes # USB Nkey Rollover
25NKRO_ENABLE = yes # USB Nkey Rollover - not yet supported in LUFA 18BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
26# BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality 19RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
27# MIDI_ENABLE = YES # MIDI controls 20BLUETOOTH_ENABLE = no # Enable Bluetooth
28UNICODE_ENABLE = YES # Unicode 21AUDIO_ENABLE = no # Audio output
29# BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID 22CUSTOM_MATRIX = lite
30 23
31# # project specific files 24# project specific files
32SRC = matrix.c serial_uart.c 25SRC += matrix.c serial_uart.c
33 26
34# Disable unsupported hardware 27# Disable unsupported hardware
35RGBLIGHT_SUPPORTED = no 28RGBLIGHT_SUPPORTED = no
diff --git a/keyboards/telophase/telophase.c b/keyboards/telophase/telophase.c
index 7484551c9..334cc7697 100644
--- a/keyboards/telophase/telophase.c
+++ b/keyboards/telophase/telophase.c
@@ -1,26 +1,44 @@
1/*
2Copyright 2021
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
1#include "telophase.h" 18#include "telophase.h"
2 19
3void led_init(void) { 20void led_init(void) {
4 DDRD |= (1<<1); 21 setPinOutput(D1);
5 PORTD |= (1<<1); 22 setPinOutput(F4);
6 DDRF |= (1<<4) | (1<<5); 23 setPinOutput(F5);
7 PORTF |= (1<<4) | (1<<5); 24 writePinHigh(D1);
25 writePinHigh(F4);
26 writePinHigh(F5);
8} 27}
9 28
10
11void matrix_init_kb(void) { 29void matrix_init_kb(void) {
12 // put your keyboard start-up code here 30 // put your keyboard start-up code here
13 // runs once when the firmware starts up 31 // runs once when the firmware starts up
14 matrix_init_user(); 32 matrix_init_user();
15 led_init(); 33 led_init();
16} 34}
17 35
18#ifdef SWAP_HANDS_ENABLE 36#ifdef SWAP_HANDS_ENABLE
19__attribute__ ((weak)) 37__attribute__ ((weak))
20const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { 38const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
21{{12, 0}, {11, 0}, {10, 0}, {9, 0}, {8, 0}, {7, 0}, {6, 0}, {5, 0}, {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0}}, 39 {{12, 0}, {11, 0}, {10, 0}, {9, 0}, {8, 0}, {7, 0}, {6, 0}, {5, 0}, {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0}},
22{{12, 1}, {11, 1}, {10, 1}, {9, 1}, {8, 1}, {7, 1}, {6, 1}, {5, 1}, {4, 1}, {3, 1}, {2, 1}, {1, 1}, {0, 1}}, 40 {{12, 1}, {11, 1}, {10, 1}, {9, 1}, {8, 1}, {7, 1}, {6, 1}, {5, 1}, {4, 1}, {3, 1}, {2, 1}, {1, 1}, {0, 1}},
23{{12, 2}, {11, 2}, {10, 2}, {9, 2}, {8, 2}, {7, 2}, {6, 2}, {5, 2}, {4, 2}, {3, 2}, {2, 2}, {1, 2}, {0, 2}}, 41 {{12, 2}, {11, 2}, {10, 2}, {9, 2}, {8, 2}, {7, 2}, {6, 2}, {5, 2}, {4, 2}, {3, 2}, {2, 2}, {1, 2}, {0, 2}},
24{{12, 3}, {11, 3}, {10, 3}, {9, 3}, {8, 3}, {7, 3}, {6, 3}, {5, 3}, {4, 3}, {3, 3}, {2, 3}, {1, 3}, {0, 3}}, 42 {{12, 3}, {11, 3}, {10, 3}, {9, 3}, {8, 3}, {7, 3}, {6, 3}, {5, 3}, {4, 3}, {3, 3}, {2, 3}, {1, 3}, {0, 3}}
25}; 43};
26#endif 44#endif
diff --git a/keyboards/telophase/telophase.h b/keyboards/telophase/telophase.h
index 458ea35da..8ca674417 100644
--- a/keyboards/telophase/telophase.h
+++ b/keyboards/telophase/telophase.h
@@ -1,14 +1,30 @@
1#ifndef TELOPHASE_H 1/*
2#define TELOPHASE_H 2Copyright 2021
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
3 19
4#include "quantum.h" 20#include "quantum.h"
5 21
6#define red_led_off PORTF |= (1<<5) 22#define red_led_off writePinHigh(F5)
7#define red_led_on PORTF &= ~(1<<5) 23#define red_led_on writePinLow(F5)
8#define blu_led_off PORTF |= (1<<4) 24#define blu_led_off writePinHigh(F4)
9#define blu_led_on PORTF &= ~(1<<4) 25#define blu_led_on writePinLow(F4)
10#define grn_led_off PORTD |= (1<<1) 26#define grn_led_off writePinHigh(D1)
11#define grn_led_on PORTD &= ~(1<<1) 27#define grn_led_on writePinLow(D1)
12 28
13#define set_led_off red_led_off; grn_led_off; blu_led_off 29#define set_led_off red_led_off; grn_led_off; blu_led_off
14#define set_led_red red_led_on; grn_led_off; blu_led_off 30#define set_led_red red_led_on; grn_led_off; blu_led_off
@@ -19,46 +35,19 @@
19#define set_led_cyan red_led_off; grn_led_on; blu_led_on 35#define set_led_cyan red_led_off; grn_led_on; blu_led_on
20#define set_led_white red_led_on; grn_led_on; blu_led_on 36#define set_led_white red_led_on; grn_led_on; blu_led_on
21 37
22/*
23#define LED_B 5
24#define LED_R 6
25#define LED_G 7
26
27#define all_leds_off PORTF &= ~(1<<LED_B) & ~(1<<LED_R) & ~(1<<LED_G)
28
29#define red_led_on PORTF |= (1<<LED_R)
30#define red_led_off PORTF &= ~(1<<LED_R)
31#define grn_led_on PORTF |= (1<<LED_G)
32#define grn_led_off PORTF &= ~(1<<LED_G)
33#define blu_led_on PORTF |= (1<<LED_B)
34#define blu_led_off PORTF &= ~(1<<LED_B)
35
36#define set_led_off PORTF &= ~(1<<LED_B) & ~(1<<LED_R) & ~(1<<LED_G)
37#define set_led_red PORTF = PORTF & ~(1<<LED_B) & ~(1<<LED_G) | (1<<LED_R)
38#define set_led_blue PORTF = PORTF & ~(1<<LED_G) & ~(1<<LED_R) | (1<<LED_B)
39#define set_led_green PORTF = PORTF & ~(1<<LED_B) & ~(1<<LED_R) | (1<<LED_G)
40#define set_led_yellow PORTF = PORTF & ~(1<<LED_B) | (1<<LED_R) | (1<<LED_G)
41#define set_led_magenta PORTF = PORTF & ~(1<<LED_G) | (1<<LED_R) | (1<<LED_B)
42#define set_led_cyan PORTF = PORTF & ~(1<<LED_R) | (1<<LED_B) | (1<<LED_G)
43#define set_led_white PORTF |= (1<<LED_B) | (1<<LED_R) | (1<<LED_G)
44*/
45
46// This a shortcut to help you visually see your layout. 38// This a shortcut to help you visually see your layout.
47// The first section contains all of the arguements 39// The first section contains all of the arguements
48// The second converts the arguments into a two-dimensional array 40// The second converts the arguments into a two-dimensional array
49#define LAYOUT_ortho_4x12( \ 41#define LAYOUT_ortho_4x12( \
50 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, \ 42 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, \
51 k12, k13, k14, k15, k16, k17, k18, k19, k20, k21, k22, k23, \ 43 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, \
52 k24, k25, k26, k27, k28, k29, k30, k31, k32, k33, k34, k35, \ 44 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, \
53 k36, k37, k38, k39, k40, k41, k42, k43, k44, k45, k46, k47 \ 45 k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B \
54) \ 46) { \
55{ \ 47 { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B }, \
56 { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11 }, \ 48 { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B }, \
57 { k12, k13, k14, k15, k16, k17, k18, k19, k20, k21, k22, k23 }, \ 49 { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B }, \
58 { k24, k25, k26, k27, k28, k29, k30, k31, k32, k33, k34, k35 }, \ 50 { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B } \
59 { k36, k37, k38, k39, k40, k41, k42, k43, k44, k45, k46, k47 }, \
60} 51}
61 52
62#define LAYOUT LAYOUT_ortho_4x12 53#define LAYOUT LAYOUT_ortho_4x12
63
64#endif
diff --git a/keyboards/xelus/pachi/keymaps/default/config.h b/keyboards/xelus/pachi/mini_32u4/keymaps/default/config.h
index ea9bfa60e..ea9bfa60e 100644
--- a/keyboards/xelus/pachi/keymaps/default/config.h
+++ b/keyboards/xelus/pachi/mini_32u4/keymaps/default/config.h
diff --git a/keyboards/xelus/pachi/mini_32u4/keymaps/default/keymap.c b/keyboards/xelus/pachi/mini_32u4/keymaps/default/keymap.c
new file mode 100644
index 000000000..f5678a1f9
--- /dev/null
+++ b/keyboards/xelus/pachi/mini_32u4/keymaps/default/keymap.c
@@ -0,0 +1,35 @@
1/* Copyright 2021 Harrison Chan (Xelus)
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_all(
21 KC_ESC, KC_F13, 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_SLCK, KC_PAUS,
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_BSPC, KC_INS, KC_HOME, KC_PGUP,
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_DEL, KC_END, KC_PGDN,
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,
25 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, MO(1), KC_UP,
26 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_APP, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
27
28 [1] = LAYOUT_all(
29 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, KC_TRNS,
30 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_RESET, KC_RESET, KC_TRNS, KC_TRNS, KC_TRNS,
31 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, KC_TRNS,
32 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,
33 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,
34 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
35};
diff --git a/keyboards/xelus/pachi/keymaps/default/readme.md b/keyboards/xelus/pachi/mini_32u4/keymaps/default/readme.md
index ab9f16263..ab9f16263 100644
--- a/keyboards/xelus/pachi/keymaps/default/readme.md
+++ b/keyboards/xelus/pachi/mini_32u4/keymaps/default/readme.md
diff --git a/keyboards/xelus/pachi/keymaps/via/config.h b/keyboards/xelus/pachi/mini_32u4/keymaps/via/config.h
index 0315ad280..0315ad280 100644
--- a/keyboards/xelus/pachi/keymaps/via/config.h
+++ b/keyboards/xelus/pachi/mini_32u4/keymaps/via/config.h
diff --git a/keyboards/xelus/pachi/keymaps/via/keymap.c b/keyboards/xelus/pachi/mini_32u4/keymaps/via/keymap.c
index 8586df14f..386356464 100644
--- a/keyboards/xelus/pachi/keymaps/via/keymap.c
+++ b/keyboards/xelus/pachi/mini_32u4/keymaps/via/keymap.c
@@ -27,7 +27,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
27 27
28 [1] = LAYOUT_all( 28 [1] = LAYOUT_all(
29 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, KC_TRNS, 29 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, KC_TRNS,
30 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, KC_TRNS, KC_TRNS, 30 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_RESET, KC_RESET, KC_TRNS, KC_TRNS, KC_TRNS,
31 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, KC_TRNS, 31 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, KC_TRNS,
32 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, 32 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,
33 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, 33 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,
diff --git a/keyboards/xelus/pachi/keymaps/via/readme.md b/keyboards/xelus/pachi/mini_32u4/keymaps/via/readme.md
index 4f2ef1ef3..4f2ef1ef3 100644
--- a/keyboards/xelus/pachi/keymaps/via/readme.md
+++ b/keyboards/xelus/pachi/mini_32u4/keymaps/via/readme.md
diff --git a/keyboards/xelus/pachi/mini_32u4/keymaps/via/rules.mk b/keyboards/xelus/pachi/mini_32u4/keymaps/via/rules.mk
new file mode 100644
index 000000000..1e5b99807
--- /dev/null
+++ b/keyboards/xelus/pachi/mini_32u4/keymaps/via/rules.mk
@@ -0,0 +1 @@
VIA_ENABLE = yes
diff --git a/keyboards/xelus/pachi/mini_32u4/readme.md b/keyboards/xelus/pachi/mini_32u4/readme.md
new file mode 100644
index 000000000..5c29400a4
--- /dev/null
+++ b/keyboards/xelus/pachi/mini_32u4/readme.md
@@ -0,0 +1,19 @@
1# Pachi
2
3Pachi TKL Keyboard that supports both 87 and 88 layouts.
4
5* Keyboard Maintainer: [Xelus22](https://github.com/Xelus22)
6* Hardware Supported: Group buys
7
8Make example for this keyboard (after setting up your build environment):
9
10 make xelus/pachi/mini_32u4:default
11
12Reset your keyboard in 3 ways:
13<ol>
14<li>Software reset on Fn + Backspace</li>
15<li>Bootmagic reset: hold down the top left key (usually escape) and plugin the keyboard</li>
16<li>Physical reset button: on the back of the PCB, there should be a small golden button you can press</li>
17</ol>
18
19See 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/xelus/pachi/readme.md b/keyboards/xelus/pachi/readme.md
index 537a2c689..4f4046567 100644
--- a/keyboards/xelus/pachi/readme.md
+++ b/keyboards/xelus/pachi/readme.md
@@ -1,6 +1,6 @@
1# Pachi 1# Pachi
2 2
3Pachi TKL Keyboard that supports both 87 and 88 layouts. 3Pachi series keyboards.
4 4
5* Keyboard Maintainer: [Xelus22](https://github.com/Xelus22) 5* Keyboard Maintainer: [Xelus22](https://github.com/Xelus22)
6* Hardware Supported: Group buys 6* Hardware Supported: Group buys
@@ -9,5 +9,6 @@ Make example for this keyboard (after setting up your build environment):
9 9
10 make xelus/pachi/rev1:default 10 make xelus/pachi/rev1:default
11 make xelus/pachi/mini_32u4:default 11 make xelus/pachi/mini_32u4:default
12 make xelus/pachi/rgb:default
12 13
13See 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). 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).
diff --git a/keyboards/xelus/pachi/config.h b/keyboards/xelus/pachi/rev1/keymaps/default/config.h
index f4570f608..ea9bfa60e 100644
--- a/keyboards/xelus/pachi/config.h
+++ b/keyboards/xelus/pachi/rev1/keymaps/default/config.h
@@ -13,5 +13,7 @@
13 * You should have received a copy of the GNU General Public License 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/>. 14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */ 15 */
16 16#pragma once
17#include "config_common.h" 17
18#define USB_POLLING_INTERVAL_MS 1
19#define QMK_KEYS_PER_SCAN 4
diff --git a/keyboards/xelus/pachi/rev1/keymaps/default/keymap.c b/keyboards/xelus/pachi/rev1/keymaps/default/keymap.c
new file mode 100644
index 000000000..f5678a1f9
--- /dev/null
+++ b/keyboards/xelus/pachi/rev1/keymaps/default/keymap.c
@@ -0,0 +1,35 @@
1/* Copyright 2021 Harrison Chan (Xelus)
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_all(
21 KC_ESC, KC_F13, 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_SLCK, KC_PAUS,
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_BSPC, KC_INS, KC_HOME, KC_PGUP,
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_DEL, KC_END, KC_PGDN,
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,
25 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, MO(1), KC_UP,
26 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_APP, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
27
28 [1] = LAYOUT_all(
29 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, KC_TRNS,
30 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_RESET, KC_RESET, KC_TRNS, KC_TRNS, KC_TRNS,
31 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, KC_TRNS,
32 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,
33 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,
34 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
35};
diff --git a/keyboards/xelus/pachi/rev1/keymaps/default/readme.md b/keyboards/xelus/pachi/rev1/keymaps/default/readme.md
new file mode 100644
index 000000000..ab9f16263
--- /dev/null
+++ b/keyboards/xelus/pachi/rev1/keymaps/default/readme.md
@@ -0,0 +1,2 @@
1# The Default Pachi TKL Layout
2
diff --git a/keyboards/xelus/pachi/pachi.h b/keyboards/xelus/pachi/rev1/keymaps/via/config.h
index 7f33f2c08..0315ad280 100644
--- a/keyboards/xelus/pachi/pachi.h
+++ b/keyboards/xelus/pachi/rev1/keymaps/via/config.h
@@ -16,10 +16,8 @@
16 16
17#pragma once 17#pragma once
18 18
19#include "quantum.h" 19// 3 layers or else it will not fit in EEPROM
20#define DYNAMIC_KEYMAP_LAYER_COUNT 3
20 21
21#if defined(KEYBOARD_xelus_pachi_rev1) 22#define USB_POLLING_INTERVAL_MS 1
22 #include "rev1.h" 23#define QMK_KEYS_PER_SCAN 4
23#elif defined(KEYBOARD_xelus_pachi_mini_32u4)
24 #include "mini_32u4.h"
25#endif
diff --git a/keyboards/xelus/pachi/keymaps/default/keymap.c b/keyboards/xelus/pachi/rev1/keymaps/via/keymap.c
index 8586df14f..386356464 100644
--- a/keyboards/xelus/pachi/keymaps/default/keymap.c
+++ b/keyboards/xelus/pachi/rev1/keymaps/via/keymap.c
@@ -27,7 +27,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
27 27
28 [1] = LAYOUT_all( 28 [1] = LAYOUT_all(
29 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, KC_TRNS, 29 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, KC_TRNS,
30 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, KC_TRNS, KC_TRNS, 30 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_RESET, KC_RESET, KC_TRNS, KC_TRNS, KC_TRNS,
31 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, KC_TRNS, 31 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, KC_TRNS,
32 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, 32 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,
33 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, 33 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,
diff --git a/keyboards/xelus/pachi/rev1/keymaps/via/readme.md b/keyboards/xelus/pachi/rev1/keymaps/via/readme.md
new file mode 100644
index 000000000..4f2ef1ef3
--- /dev/null
+++ b/keyboards/xelus/pachi/rev1/keymaps/via/readme.md
@@ -0,0 +1,2 @@
1# The VIA Pachi TKL Layout
2
diff --git a/keyboards/xelus/pachi/rev1/keymaps/via/rules.mk b/keyboards/xelus/pachi/rev1/keymaps/via/rules.mk
new file mode 100644
index 000000000..1e5b99807
--- /dev/null
+++ b/keyboards/xelus/pachi/rev1/keymaps/via/rules.mk
@@ -0,0 +1 @@
VIA_ENABLE = yes
diff --git a/keyboards/xelus/pachi/rev1/readme.md b/keyboards/xelus/pachi/rev1/readme.md
new file mode 100644
index 000000000..fabf5348e
--- /dev/null
+++ b/keyboards/xelus/pachi/rev1/readme.md
@@ -0,0 +1,19 @@
1# Pachi
2
3Pachi TKL Keyboard that supports both 87 and 88 layouts.
4
5* Keyboard Maintainer: [Xelus22](https://github.com/Xelus22)
6* Hardware Supported: Group buys
7
8Make example for this keyboard (after setting up your build environment):
9
10 make xelus/pachi/rev1:default
11
12Reset your keyboard in 3 ways:
13<ol>
14<li>Software reset on Fn + Backspace</li>
15<li>Bootmagic reset: hold down the top left key (usually escape) and plugin the keyboard</li>
16<li>Physical reset button: on the back of the PCB, there should be a small golden button you can press</li>
17</ol>
18
19See 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/xelus/pachi/rgb/config.h b/keyboards/xelus/pachi/rgb/config.h
new file mode 100644
index 000000000..f97650850
--- /dev/null
+++ b/keyboards/xelus/pachi/rgb/config.h
@@ -0,0 +1,76 @@
1/* Copyright 2021 Harrison Chan (Xelus)
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/* USB Device descriptor parameter */
20#define VENDOR_ID 0x5845 // "XE"
21#define PRODUCT_ID 0x5052 // "PR"
22#define DEVICE_VER 0x0001
23#define MANUFACTURER Xelus
24#define PRODUCT Xelus Pachi RGB
25
26/* key matrix size */
27#define MATRIX_ROWS 6
28#define MATRIX_COLS 17
29
30/* key matrix pins */
31#define MATRIX_ROW_PINS { B14, B13, B12, B2, A8, B15 }
32#define MATRIX_COL_PINS { C13, C14, C15, H0, A0, A1, A2, A3, A4, A5, A6, A7, B0, B1, H1, B10, B11 }
33#define UNUSED_PINS
34
35/* COL2ROW or ROW2COL */
36#define DIODE_DIRECTION COL2ROW
37
38/* Set 0 if debouncing isn't needed */
39#define DEBOUNCE 5
40
41/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
42#define LOCKING_SUPPORT_ENABLE
43
44/* Locking resynchronize hack */
45#define LOCKING_RESYNC_ENABLE
46
47// I2C setup
48#define I2C1_SCL 8
49#define I2C1_SDA 9
50#define I2C1_SCL_PAL_MODE 4
51#define I2C1_SDA_PAL_MODE 4
52#define I2C1_TIMINGR_PRESC 0U
53#define I2C1_TIMINGR_SCLDEL 11U
54#define I2C1_TIMINGR_SDADEL 0U
55#define I2C1_TIMINGR_SCLH 14U
56#define I2C1_TIMINGR_SCLL 42U
57
58// I2C EEPROM
59#define EEPROM_I2C_24LC64
60
61// RGB Matrix defines
62#define DRIVER_ADDR_1 0b0110000
63#define DRIVER_ADDR_2 0b0110001
64
65#define DRIVER_COUNT 1
66#define DRIVER_1_LED_TOTAL 117
67#define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL
68#define ISSI_DRIVER_TOTAL DRIVER_LED_TOTAL
69
70#define RGB_MATRIX_STARTUP_VAL 80
71#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
72#define RGB_MATRIX_KEYPRESSES
73#define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended
74#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_ALL
75
76#define FORCE_NKRO
diff --git a/keyboards/xelus/pachi/rgb/halconf.h b/keyboards/xelus/pachi/rgb/halconf.h
new file mode 100644
index 000000000..633d94a88
--- /dev/null
+++ b/keyboards/xelus/pachi/rgb/halconf.h
@@ -0,0 +1,27 @@
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/xelus/kangaroo/halconf.h -r platforms/chibios/common/configs/halconf.h`
20 */
21
22#pragma once
23
24#define HAL_USE_I2C TRUE
25
26#include_next <halconf.h>
27
diff --git a/keyboards/xelus/pachi/rgb/keymaps/default/config.h b/keyboards/xelus/pachi/rgb/keymaps/default/config.h
new file mode 100644
index 000000000..ea9bfa60e
--- /dev/null
+++ b/keyboards/xelus/pachi/rgb/keymaps/default/config.h
@@ -0,0 +1,19 @@
1/* Copyright 2021 Harrison Chan (Xelus)
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 USB_POLLING_INTERVAL_MS 1
19#define QMK_KEYS_PER_SCAN 4
diff --git a/keyboards/xelus/pachi/rgb/keymaps/default/keymap.c b/keyboards/xelus/pachi/rgb/keymaps/default/keymap.c
new file mode 100644
index 000000000..c863d4413
--- /dev/null
+++ b/keyboards/xelus/pachi/rgb/keymaps/default/keymap.c
@@ -0,0 +1,35 @@
1/* Copyright 2021 Harrison Chan (Xelus)
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_ansi_tsangan(
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_SLCK, KC_PAUS,
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_INS, KC_HOME, KC_PGUP,
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_DEL, KC_END, KC_PGDN,
24 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,
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,
26 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
27
28 [1] = LAYOUT_ansi_tsangan(
29 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,
30 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, RESET , RGB_TOG, RGB_HUI, RGB_SAI,
31 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, RGB_MOD, RGB_HUD, RGB_SAD,
32 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,
33 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAI,
34 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_RMOD,RGB_VAD, RGB_MOD)
35};
diff --git a/keyboards/xelus/pachi/rgb/keymaps/default/readme.md b/keyboards/xelus/pachi/rgb/keymaps/default/readme.md
new file mode 100644
index 000000000..2227ffe0b
--- /dev/null
+++ b/keyboards/xelus/pachi/rgb/keymaps/default/readme.md
@@ -0,0 +1,2 @@
1# The Default Pachi RGB Layout
2
diff --git a/keyboards/xelus/pachi/rgb/keymaps/via/config.h b/keyboards/xelus/pachi/rgb/keymaps/via/config.h
new file mode 100644
index 000000000..9e2988837
--- /dev/null
+++ b/keyboards/xelus/pachi/rgb/keymaps/via/config.h
@@ -0,0 +1,24 @@
1/* Copyright 2021 Harrison Chan (Xelus)
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// 3 layers or else it will not fit in EEPROM
20#define DYNAMIC_KEYMAP_LAYER_COUNT 3
21
22#define USB_POLLING_INTERVAL_MS 1
23#define QMK_KEYS_PER_SCAN 4
24
diff --git a/keyboards/xelus/pachi/rgb/keymaps/via/keymap.c b/keyboards/xelus/pachi/rgb/keymaps/via/keymap.c
new file mode 100644
index 000000000..d6a17a5fe
--- /dev/null
+++ b/keyboards/xelus/pachi/rgb/keymaps/via/keymap.c
@@ -0,0 +1,43 @@
1/* Copyright 2021 Harrison Chan (Xelus)
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_ansi_tsangan(
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_SLCK, KC_PAUS,
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_INS, KC_HOME, KC_PGUP,
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_DEL, KC_END, KC_PGDN,
24 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,
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,
26 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
27
28 [1] = LAYOUT_ansi_tsangan(
29 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,
30 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, RESET , KC_TRNS, KC_TRNS, KC_TRNS,
31 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, KC_TRNS,
32 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,
33 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,
34 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
35
36 [2] = LAYOUT_ansi_tsangan(
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, 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, 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, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
41 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)
43};
diff --git a/keyboards/xelus/pachi/rgb/keymaps/via/readme.md b/keyboards/xelus/pachi/rgb/keymaps/via/readme.md
new file mode 100644
index 000000000..af77c0427
--- /dev/null
+++ b/keyboards/xelus/pachi/rgb/keymaps/via/readme.md
@@ -0,0 +1,2 @@
1# The VIA Pachi RGB Layout
2
diff --git a/keyboards/xelus/pachi/rgb/keymaps/via/rules.mk b/keyboards/xelus/pachi/rgb/keymaps/via/rules.mk
new file mode 100644
index 000000000..1e5b99807
--- /dev/null
+++ b/keyboards/xelus/pachi/rgb/keymaps/via/rules.mk
@@ -0,0 +1 @@
VIA_ENABLE = yes
diff --git a/keyboards/xelus/pachi/rgb/mcuconf.h b/keyboards/xelus/pachi/rgb/mcuconf.h
new file mode 100644
index 000000000..20db196d2
--- /dev/null
+++ b/keyboards/xelus/pachi/rgb/mcuconf.h
@@ -0,0 +1,28 @@
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/xelus/kangaroo/mcuconf.h -r platforms/chibios/GENERIC_STM32_F072XB/configs/mcuconf.h`
20 */
21
22#pragma once
23
24#include_next <mcuconf.h>
25
26#undef STM32_I2C_USE_I2C1
27#define STM32_I2C_USE_I2C1 TRUE
28
diff --git a/keyboards/xelus/pachi/rgb/readme.md b/keyboards/xelus/pachi/rgb/readme.md
new file mode 100644
index 000000000..b22fd0258
--- /dev/null
+++ b/keyboards/xelus/pachi/rgb/readme.md
@@ -0,0 +1,19 @@
1# Pachi
2
3Pachi RGB TKL Keyboard that is a per-key RGB, hotswap, ANSI and tsangan.
4
5* Keyboard Maintainer: [Xelus22](https://github.com/Xelus22)
6* Hardware Supported: Group buys
7
8Make example for this keyboard (after setting up your build environment):
9
10 make xelus/pachi/rgb:default
11
12Reset your keyboard in 3 ways:
13<ol>
14<li>Software reset on Fn + Backspace</li>
15<li>Bootmagic reset: hold down the top left key (usually escape) and plugin the keyboard</li>
16<li>Physical reset button: on the back of the PCB, there should be a small golden button you can press</li>
17</ol>
18
19See 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/xelus/pachi/rgb/rgb.c b/keyboards/xelus/pachi/rgb/rgb.c
new file mode 100644
index 000000000..413f4534e
--- /dev/null
+++ b/keyboards/xelus/pachi/rgb/rgb.c
@@ -0,0 +1,239 @@
1/* Copyright 2021 Harrison Chan (Xelus)
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 "rgb.h"
18#include <hal.h>
19#include <ch.h>
20
21// tested and working
22void matrix_io_delay(void) { __asm__ volatile("nop\nnop\nnop\n"); }
23
24#ifdef RGB_MATRIX_ENABLE
25#include <i2c_master.h>
26#include "drivers/issi/is31fl3741.h"
27const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
28/* Refer to IS31 manual for these locations
29 * driver
30 * | R location
31 * | | G location
32 * | | | B location
33 * | | | | */
34 {0, CS39_SW1, CS38_SW1, CS37_SW1}, //A1
35 {0, CS36_SW1, CS35_SW1, CS34_SW1}, //A2
36 {0, CS33_SW1, CS32_SW1, CS31_SW1}, //A3
37 {0, CS30_SW1, CS29_SW1, CS28_SW1}, //A4
38 {0, CS27_SW1, CS26_SW1, CS25_SW1}, //A5
39 {0, CS24_SW1, CS23_SW1, CS22_SW1}, //A6
40 {0, CS21_SW1, CS20_SW1, CS19_SW1}, //A7
41 {0, CS18_SW1, CS17_SW1, CS16_SW1}, //A8
42 {0, CS15_SW1, CS14_SW1, CS13_SW1}, //A9
43 {0, CS12_SW1, CS11_SW1, CS10_SW1}, //A10
44 {0, CS9_SW1 , CS8_SW1 , CS7_SW1 }, //A11
45 {0, CS6_SW1 , CS5_SW1 , CS4_SW1 }, //A12
46 {0, CS3_SW1 , CS2_SW1 , CS1_SW1 }, //A13
47
48 {0, CS39_SW2, CS38_SW2, CS37_SW2}, //B1
49 {0, CS36_SW2, CS35_SW2, CS34_SW2}, //B2
50 {0, CS33_SW2, CS32_SW2, CS31_SW2}, //B3
51 {0, CS30_SW2, CS29_SW2, CS28_SW2}, //B4
52 {0, CS27_SW2, CS26_SW2, CS25_SW2}, //B5
53 {0, CS24_SW2, CS23_SW2, CS22_SW2}, //B6
54 {0, CS21_SW2, CS20_SW2, CS19_SW2}, //B7
55 {0, CS18_SW2, CS17_SW2, CS16_SW2}, //B8
56 {0, CS15_SW2, CS14_SW2, CS13_SW2}, //B9
57 {0, CS12_SW2, CS11_SW2, CS10_SW2}, //B10
58 {0, CS9_SW2 , CS8_SW2 , CS7_SW2 }, //B11
59 {0, CS6_SW2 , CS5_SW2 , CS4_SW2 }, //B12
60 {0, CS3_SW2 , CS2_SW2 , CS1_SW2 }, //B13
61
62 {0, CS39_SW3, CS38_SW3, CS37_SW3}, //C1
63 {0, CS36_SW3, CS35_SW3, CS34_SW3}, //C2
64 {0, CS33_SW3, CS32_SW3, CS31_SW3}, //C3
65 {0, CS30_SW3, CS29_SW3, CS28_SW3}, //C4
66 {0, CS27_SW3, CS26_SW3, CS25_SW3}, //C5
67 {0, CS24_SW3, CS23_SW3, CS22_SW3}, //C6
68 {0, CS21_SW3, CS20_SW3, CS19_SW3}, //C7
69 {0, CS18_SW3, CS17_SW3, CS16_SW3}, //C8
70 {0, CS15_SW3, CS14_SW3, CS13_SW3}, //C9
71 {0, CS12_SW3, CS11_SW3, CS10_SW3}, //C10
72 {0, CS9_SW3 , CS8_SW3 , CS7_SW3 }, //C11
73 {0, CS6_SW3 , CS5_SW3 , CS4_SW3 }, //C12
74 {0, CS3_SW3 , CS2_SW3 , CS1_SW3 }, //C13
75
76 {0, CS39_SW4, CS38_SW4, CS37_SW4}, //D1
77 {0, CS36_SW4, CS35_SW4, CS34_SW4}, //D2
78 {0, CS33_SW4, CS32_SW4, CS31_SW4}, //D3
79 {0, CS30_SW4, CS29_SW4, CS28_SW4}, //D4
80 {0, CS27_SW4, CS26_SW4, CS25_SW4}, //D5
81 {0, CS24_SW4, CS23_SW4, CS22_SW4}, //D6
82 {0, CS21_SW4, CS20_SW4, CS19_SW4}, //D7
83 {0, CS18_SW4, CS17_SW4, CS16_SW4}, //D8
84 {0, CS15_SW4, CS14_SW4, CS13_SW4}, //D9
85 {0, CS12_SW4, CS11_SW4, CS10_SW4}, //D10
86 {0, CS9_SW4 , CS8_SW4 , CS7_SW4 }, //D11
87 {0, CS6_SW4 , CS5_SW4 , CS4_SW4 }, //D12
88 {0, CS3_SW4 , CS2_SW4 , CS1_SW4 }, //D13
89
90 {0, CS39_SW5, CS38_SW5, CS37_SW5}, //E1
91 {0, CS36_SW5, CS35_SW5, CS34_SW5}, //E2
92 {0, CS33_SW5, CS32_SW5, CS31_SW5}, //E3
93 {0, CS30_SW5, CS29_SW5, CS28_SW5}, //E4
94 {0, CS27_SW5, CS26_SW5, CS25_SW5}, //E5
95 {0, CS24_SW5, CS23_SW5, CS22_SW5}, //E6
96 {0, CS21_SW5, CS20_SW5, CS19_SW5}, //E7
97 {0, CS18_SW5, CS17_SW5, CS16_SW5}, //E8
98 {0, CS15_SW5, CS14_SW5, CS13_SW5}, //E9
99 {0, CS12_SW5, CS11_SW5, CS10_SW5}, //E10
100 {0, CS9_SW5 , CS8_SW5 , CS7_SW5 }, //E11
101 {0, CS6_SW5 , CS5_SW5 , CS4_SW5 }, //E12
102 {0, CS3_SW5 , CS2_SW5 , CS1_SW5 }, //E13
103
104 {0, CS39_SW6, CS38_SW6, CS37_SW6}, //F1
105 {0, CS36_SW6, CS35_SW6, CS34_SW6}, //F2
106 {0, CS33_SW6, CS32_SW6, CS31_SW6}, //F3
107 {0, CS30_SW6, CS29_SW6, CS28_SW6}, //F4
108 {0, CS27_SW6, CS26_SW6, CS25_SW6}, //F5
109 {0, CS24_SW6, CS23_SW6, CS22_SW6}, //F6
110 {0, CS21_SW6, CS20_SW6, CS19_SW6}, //F7
111 {0, CS18_SW6, CS17_SW6, CS16_SW6}, //F8
112 {0, CS15_SW6, CS14_SW6, CS13_SW6}, //F9
113 {0, CS12_SW6, CS11_SW6, CS10_SW6}, //F10
114 {0, CS9_SW6 , CS8_SW6 , CS7_SW6 }, //F11
115 {0, CS6_SW6 , CS5_SW6 , CS4_SW6 }, //F12
116 {0, CS3_SW6 , CS2_SW6 , CS1_SW6 }, //F13
117
118 {0, CS39_SW7, CS38_SW7, CS37_SW7}, //G1
119 {0, CS36_SW7, CS35_SW7, CS34_SW7}, //G2
120 {0, CS33_SW7, CS32_SW7, CS31_SW7}, //G3
121 {0, CS30_SW7, CS29_SW7, CS28_SW7}, //G4
122 {0, CS27_SW7, CS26_SW7, CS25_SW7}, //G5
123 {0, CS24_SW7, CS23_SW7, CS22_SW7}, //G6
124 {0, CS21_SW7, CS20_SW7, CS19_SW7}, //G7
125 {0, CS18_SW7, CS17_SW7, CS16_SW7}, //G8
126 {0, CS15_SW7, CS14_SW7, CS13_SW7}, //G9
127 {0, CS12_SW7, CS11_SW7, CS10_SW7}, //G10
128 {0, CS9_SW7 , CS8_SW7 , CS7_SW7 }, //G11
129 {0, CS6_SW7 , CS5_SW7 , CS4_SW7 }, //G12
130 {0, CS3_SW7 , CS2_SW7 , CS1_SW7 }, //G13
131
132 {0, CS39_SW8, CS38_SW8, CS37_SW8}, //H1
133 {0, CS36_SW8, CS35_SW8, CS34_SW8}, //H2
134 {0, CS33_SW8, CS32_SW8, CS31_SW8}, //H3
135 {0, CS30_SW8, CS29_SW8, CS28_SW8}, //H4
136 {0, CS27_SW8, CS26_SW8, CS25_SW8}, //H5
137 {0, CS24_SW8, CS23_SW8, CS22_SW8}, //H6
138 {0, CS21_SW8, CS20_SW8, CS19_SW8}, //H7
139 {0, CS18_SW8, CS17_SW8, CS16_SW8}, //H8
140 {0, CS15_SW8, CS14_SW8, CS13_SW8}, //H9
141 {0, CS12_SW8, CS11_SW8, CS10_SW8}, //H10
142 {0, CS9_SW8 , CS8_SW8 , CS7_SW8 }, //H11
143 {0, CS6_SW8 , CS5_SW8 , CS4_SW8 }, //H12
144 {0, CS3_SW8 , CS2_SW8 , CS1_SW8 }, //H13
145
146 {0, CS39_SW9, CS38_SW9, CS37_SW9}, //I1
147 {0, CS36_SW9, CS35_SW9, CS34_SW9}, //I2
148 {0, CS33_SW9, CS32_SW9, CS31_SW9}, //I3
149 {0, CS30_SW9, CS29_SW9, CS28_SW9}, //I4
150 {0, CS27_SW9, CS26_SW9, CS25_SW9}, //I5
151 {0, CS24_SW9, CS23_SW9, CS22_SW9}, //I6
152 {0, CS21_SW9, CS20_SW9, CS19_SW9}, //I7
153 {0, CS18_SW9, CS17_SW9, CS16_SW9}, //I8
154 {0, CS15_SW9, CS14_SW9, CS13_SW9}, //I9
155 {0, CS12_SW9, CS11_SW9, CS10_SW9}, //I10
156 {0, CS9_SW9 , CS8_SW9 , CS7_SW9 }, //I11
157 {0, CS6_SW9 , CS5_SW9 , CS4_SW9 }, //I12
158 {0, CS3_SW9 , CS2_SW9 , CS1_SW9 } //I13
159};
160
161__attribute__ ((weak))
162led_config_t g_led_config = { {
163 { -1+00+3 , NO_LED, -1+26+3 , -1+39+3 , -1+52+3 , -1+65+3 , -1+78+3 , -1+91+3 , -1+104+3 , -1+00+1 , -1+13+1 , -1+26+1 , -1+39+1 , -1+52+1 , -1+65+1 , -1+78+1 , -1+91+1 },
164 { -1+00+4 , -1+13+4 , -1+26+4 , -1+39+4 , -1+52+4 , -1+65+4 , -1+78+4 , -1+91+4 , -1+104+4 , -1+00+2 , -1+13+2 , -1+26+2 , -1+39+2 , -1+52+2 , -1+65+2 , -1+78+2 , -1+91+2 },
165 { -1+00+6 , -1+13+6 , -1+26+6 , -1+39+6 , -1+52+6 , -1+65+6 , -1+78+6 , -1+91+6 , -1+104+6 , -1+00+5 , -1+13+5 , -1+26+5 , -1+39+5 , -1+52+5 , -1+65+5 , -1+78+5 , -1+91+6 },
166 { -1+00+8 , -1+13+8 , -1+26+8 , -1+39+8 , -1+52+8 , -1+65+8 , -1+78+8 , -1+91+8 , -1+104+8 , -1+00+7 , -1+13+7 , -1+26+7 , NO_LED , -1+52+7 , NO_LED , NO_LED , NO_LED },
167 { -1+00+11, -1+13+11, -1+26+11, -1+39+11, -1+52+11, -1+65+11, -1+78+11, -1+91+11, -1+104+11, -1+00+10, -1+13+10, NO_LED , NO_LED , -1+52+10, NO_LED , -1+78+10, NO_LED },
168 { -1+00+9 , -1+13+9 , -1+26+9 , NO_LED , NO_LED , -1+65+9 , NO_LED , NO_LED , NO_LED , NO_LED , -1+13+12, NO_LED , -1+39+12, -1+52+12, -1+65+12, -1+78+12, -1+91+12}
169}, {
170 {123, 0}, {117, 15}, {0 , 0}, {0 , 15}, {123, 27}, {3 , 27}, {127, 40}, {5 , 40}, {2 , 64}, {133, 52}, {8 , 52}, {131, 64}, {255,255},
171 {143, 0}, {130, 15}, {255,255}, {13 , 15}, {136, 27}, {19 , 27}, {140, 40}, {23 , 40}, {18 , 64}, {146, 52}, {29 , 52}, {148, 64}, {255,255},
172 {156, 0}, {143, 15}, {26 , 0}, {26 , 15}, {149, 27}, {32 , 27}, {153, 40}, {36 , 40}, {34 , 64}, {255,255}, {42 , 52}, {255,255}, {255,255},
173 {169, 0}, {156, 15}, {39 , 0}, {39 , 15}, {162, 27}, {45 , 27}, {255,255}, {49 , 40}, {255,255}, {255,255}, {55 , 52}, {164, 64}, {255,255},
174 {182, 0}, {175, 15}, {52 , 0}, {52 , 15}, {179, 27}, {58 , 27}, {174, 40}, {62 , 40}, {255,255}, {170, 52}, {68 , 52}, {180, 64}, {255,255},
175 {198, 0}, {198, 15}, {65 , 0}, {65 , 15}, {198, 27}, {71 , 27}, {255,255}, {75 , 40}, {83 , 64}, {255,255}, {81 , 52}, {198, 64}, {255,255},
176 {211, 0}, {211, 15}, {84 , 0}, {78 , 15}, {211, 27}, {84 , 27}, {255,255}, {88 , 40}, {255,255}, {211, 52}, {94 , 52}, {211, 64}, {255,255},
177 {224, 0}, {224, 15}, {97 , 0}, {91 , 15}, {224, 27}, {97 , 27}, {255,255}, {101, 40}, {255,255}, {255,255}, {107, 52}, {224, 64}, {255,255},
178 {255,255}, {255,255}, {110, 0}, {104, 15}, {255,255}, {110, 27}, {255,255}, {114, 40}, {255,255}, {255,255}, {120, 52}, {255,255}, {255,255}
179}, {
180 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
181 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
182 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
183 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
184 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
185 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
186 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
187 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
188 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4
189} };
190
191static void init(void) {
192 i2c_init();
193 IS31FL3741_init(DRIVER_ADDR_1);
194 for (int index = 0; index < ISSI_DRIVER_TOTAL; index++) {
195 bool enabled = !( ( index == -1+0+13) || //A13
196 ( index == -1+13+3) || //B3
197 ( index == -1+13+13) || //B13
198 ( index == -1+26+10) || //C10
199 ( index == -1+26+12) || //C12
200 ( index == -1+26+13) || //C13
201 ( index == -1+39+7) || //D7
202 ( index == -1+39+9) || //D9
203 ( index == -1+39+10) || //D10
204 ( index == -1+39+13) || //D13
205 ( index == -1+52+9) || //E9
206 ( index == -1+52+13) || //E13
207 ( index == -1+65+7) || //F7
208 ( index == -1+65+10) || //F10
209 ( index == -1+65+13) || //F13
210 ( index == -1+78+7) || //G7
211 ( index == -1+78+9) || //G9
212 ( index == -1+78+13) || //G13
213 ( index == -1+91+7) || //H7
214 ( index == -1+91+9) || //H9
215 ( index == -1+91+10) || //H10
216 ( index == -1+91+13) || //H13
217 ( index == -1+104+1) || //I1
218 ( index == -1+104+2) || //I2
219 ( index == -1+104+5) || //I5
220 ( index == -1+104+7) || //I7
221 ( index == -1+104+9) || //I9
222 ( index == -1+104+10) || //I10
223 ( index == -1+104+12) || //I12
224 ( index == -1+104+13) //I13
225 );
226 IS31FL3741_set_led_control_register(index, enabled, enabled, enabled);
227 }
228 IS31FL3741_update_led_control_registers(DRIVER_ADDR_1, 0);
229}
230
231static void flush(void) { IS31FL3741_update_pwm_buffers(DRIVER_ADDR_1, DRIVER_ADDR_2); }
232
233const rgb_matrix_driver_t rgb_matrix_driver = {
234 .init = init,
235 .flush = flush,
236 .set_color = IS31FL3741_set_color,
237 .set_color_all = IS31FL3741_set_color_all
238};
239#endif
diff --git a/keyboards/xelus/pachi/rgb/rgb.h b/keyboards/xelus/pachi/rgb/rgb.h
new file mode 100644
index 000000000..894519ebe
--- /dev/null
+++ b/keyboards/xelus/pachi/rgb/rgb.h
@@ -0,0 +1,36 @@
1/* Copyright 2021 Harrison Chan (Xelus)
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 ____ KC_NO
21
22#define LAYOUT_ansi_tsangan( \
23 K000, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, \
24 K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K116, \
25 K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, K216, \
26 K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, \
27 K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K412, K415, \
28 K500, K501, K502, K505, K510, K512, K513, K514, K515, K516 \
29) { \
30 { K000, ____, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016 }, \
31 { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K116 }, \
32 { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, K216 }, \
33 { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, ____, K313, ____, ____, ____ }, \
34 { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, ____, K412, ____, ____, K415, ____ }, \
35 { K500, K501, K502, ____, ____, K505, ____, ____, ____, ____, K510, ____, K512, K513, K514, K515, K516 } \
36}
diff --git a/keyboards/xelus/pachi/rgb/rules.mk b/keyboards/xelus/pachi/rgb/rules.mk
new file mode 100644
index 000000000..42e9d3feb
--- /dev/null
+++ b/keyboards/xelus/pachi/rgb/rules.mk
@@ -0,0 +1,32 @@
1# MCU name
2MCU = STM32L433
3
4# Build Options
5# change yes to no to disable
6#
7BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
8MOUSEKEY_ENABLE = yes # Mouse keys
9EXTRAKEY_ENABLE = yes # Audio control and System control
10CONSOLE_ENABLE = yes # Console for debug
11COMMAND_ENABLE = no # Commands for debug and configuration
12# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
13SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
14# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
15NKRO_ENABLE = yes # USB Nkey Rollover
16BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
17MIDI_ENABLE = no # MIDI support
18UNICODE_ENABLE = no # Unicode
19BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
20AUDIO_ENABLE = no # Audio output on port C6
21FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
22
23EEPROM_DRIVER = i2c
24
25RGB_MATRIX_ENABLE = yes
26RGB_MATRIX_DRIVER = custom
27
28COMMON_VPATH += $(DRIVER_PATH)/issi
29SRC += drivers/issi/is31fl3741.c
30
31LTO_ENABLE = yes
32OPT = 2
diff --git a/keyboards/xelus/trinityxttkl/config.h b/keyboards/xelus/trinityxttkl/config.h
index e2a4d2390..12745c54d 100644
--- a/keyboards/xelus/trinityxttkl/config.h
+++ b/keyboards/xelus/trinityxttkl/config.h
@@ -1,19 +1,18 @@
1/* 1/* Copyright 2021 Harrison Chan (Xelus)
2Copyright 2015 Jun Wako <wakojun@gmail.com> 2 *
3 3 * This program is free software: you can redistribute it and/or modify
4This 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
5it under the terms of the GNU General Public License as published by 5 * the Free Software Foundation, either version 2 of the License, or
6the Free Software Foundation, either version 2 of the License, or 6 * (at your option) any later version.
7(at your option) any later version. 7 *
8 8 * This program is distributed in the hope that it will be useful,
9This program is distributed in the hope that it will be useful, 9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 * GNU General Public License for more details.
12GNU General Public License for more details. 12 *
13 13 * You should have received a copy of the GNU General Public License
14You should have received a copy of the GNU General Public License 14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15along with this program. If not, see <http://www.gnu.org/licenses/>. 15 */
16*/
17 16
18#pragma once 17#pragma once
19 18
@@ -42,3 +41,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
42#define LOCKING_SUPPORT_ENABLE 41#define LOCKING_SUPPORT_ENABLE
43/* Locking resynchronize hack */ 42/* Locking resynchronize hack */
44#define LOCKING_RESYNC_ENABLE 43#define LOCKING_RESYNC_ENABLE
44
45#define LED_CAPS_LOCK_PIN A1
46#define LED_SCROLL_LOCK_PIN A13
47#define LED_PIN_ON_STATE 1
diff --git a/keyboards/xelus/trinityxttkl/trinityxttkl.c b/keyboards/xelus/trinityxttkl/trinityxttkl.c
index c548a10cf..79d3df949 100644
--- a/keyboards/xelus/trinityxttkl/trinityxttkl.c
+++ b/keyboards/xelus/trinityxttkl/trinityxttkl.c
@@ -1,3 +1,19 @@
1/* Copyright 2021 Harrison Chan (Xelus)
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 "trinityxttkl.h" 17#include "trinityxttkl.h"
2 18
3// Tested and verified working on Trinity XT TKL 19// Tested and verified working on Trinity XT TKL
diff --git a/keyboards/xelus/trinityxttkl/trinityxttkl.h b/keyboards/xelus/trinityxttkl/trinityxttkl.h
index 7cb7d590f..df0540bab 100644
--- a/keyboards/xelus/trinityxttkl/trinityxttkl.h
+++ b/keyboards/xelus/trinityxttkl/trinityxttkl.h
@@ -1,3 +1,19 @@
1/* Copyright 2021 Harrison Chan (Xelus)
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"
diff --git a/users/mnil/config.h b/users/mnil/config.h
new file mode 100644
index 000000000..3547785ff
--- /dev/null
+++ b/users/mnil/config.h
@@ -0,0 +1,21 @@
1/* Copyright 2021 Mats Nilsson
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 MK_3_SPEED
20#define MK_MOMENTARY_ACCEL
21#define PERMISSIVE_HOLD
diff --git a/users/mnil/mnil.c b/users/mnil/mnil.c
new file mode 100644
index 000000000..11d5ee28d
--- /dev/null
+++ b/users/mnil/mnil.c
@@ -0,0 +1,146 @@
1/* Copyright 2021 Mats Nilsson
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 "mnil.h"
18
19bool process_record_user(uint16_t keycode, keyrecord_t *record) {
20 switch (keycode) {
21 case M_TILD: // ~
22 if (record->event.pressed) {
23 tap_code16(RALT(KC_RBRC));
24 tap_code(KC_SPC);
25 } else {
26 }
27 break;
28 case M_CIRC: // ^
29 if (record->event.pressed) {
30 tap_code16(S(KC_RBRC));
31 tap_code(KC_SPC);
32 } else {
33 }
34 break;
35 case M_BTCK: // `
36 if (record->event.pressed) {
37 tap_code16(S(KC_EQL));
38 tap_code(KC_SPC);
39 } else {
40 }
41 break;
42 case QWE_COL: // Swap default keymap layer
43 if (record->event.pressed) {
44 if (get_highest_layer(default_layer_state) == _COLEMAK) {
45 default_layer_set(1UL << _QWERTY);
46 } else {
47 default_layer_set(1UL << _COLEMAK);
48 }
49 }
50 break;
51 }
52 return true;
53};
54
55// Tap Dance
56// Determine the current tap dance state
57int cur_dance(qk_tap_dance_state_t *state) {
58 if (state->count == 1) {
59 if (state->interrupted || !state->pressed)
60 return SINGLE_TAP;
61 else
62 return SINGLE_HOLD;
63 } else if (state->count == 2) {
64 if (state->interrupted)
65 return DOUBLE_SINGLE_TAP;
66 else if (state->pressed)
67 return DOUBLE_HOLD;
68 else
69 return DOUBLE_SINGLE_TAP;
70 }
71 if (state->count == 3) {
72 if (state->interrupted || !state->pressed)
73 return TRIPLE_TAP;
74 else
75 return TRIPLE_HOLD;
76 } else
77 return 8;
78}
79
80static tap ae_tap_state = {.is_press_action = true, .state = 0};
81
82void ae_finished(qk_tap_dance_state_t *state, void *user_data) {
83 ae_tap_state.state = cur_dance(state);
84 switch (ae_tap_state.state) {
85 case SINGLE_TAP:
86 register_code(KC_A);
87 break;
88 case SINGLE_HOLD:
89 tap_code(SE_AE);
90 break;
91 case DOUBLE_SINGLE_TAP:
92 tap_code(KC_A);
93 register_code(KC_A);
94 break;
95 }
96}
97
98void ae_reset(qk_tap_dance_state_t *state, void *user_data) {
99 switch (ae_tap_state.state) {
100 case SINGLE_TAP:
101 unregister_code(KC_A);
102 break;
103 case DOUBLE_SINGLE_TAP:
104 unregister_code(KC_A);
105 break;
106 }
107 ae_tap_state.state = 0;
108}
109
110static tap aa_tap_state = {.is_press_action = true, .state = 0};
111
112void aa_finished(qk_tap_dance_state_t *state, void *user_data) {
113 aa_tap_state.state = cur_dance(state);
114 switch (aa_tap_state.state) {
115 case SINGLE_TAP:
116 register_code(SE_OSLH);
117 break;
118 case SINGLE_HOLD:
119 register_code(SE_AA);
120 unregister_code(SE_AA);
121 break;
122 case DOUBLE_SINGLE_TAP:
123 tap_code(SE_OSLH);
124 register_code(SE_OSLH);
125 break;
126 }
127}
128
129void aa_reset(qk_tap_dance_state_t *state, void *user_data) {
130 switch (aa_tap_state.state) {
131 case SINGLE_TAP:
132 unregister_code(SE_OSLH);
133 break;
134 case DOUBLE_SINGLE_TAP:
135 unregister_code(SE_OSLH);
136 break;
137 }
138 aa_tap_state.state = 0;
139}
140
141// clang-format off
142qk_tap_dance_action_t tap_dance_actions[] = {
143 [AAE] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, ae_finished, ae_reset, 250),
144 [OAA] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, aa_finished, aa_reset, 250)
145};
146// clang-format on
diff --git a/users/mnil/mnil.h b/users/mnil/mnil.h
new file mode 100644
index 000000000..357acfe3c
--- /dev/null
+++ b/users/mnil/mnil.h
@@ -0,0 +1,85 @@
1/* Copyright 2021 Mats Nilsson
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 QMK_KEYBOARD_H
20#include "keymap_swedish.h"
21
22// Layers
23enum layers {
24 _COLEMAK,
25 _QWERTY,
26 _SYMBOLS,
27 _NAVIGATION,
28 _NUMPAD,
29};
30
31// Custom Keycodes
32#define _NAV_SPC LT(_NAVIGATION, KC_SPC) // _NAVIGATION when held, SPACE when tapped
33#define _SYM_ENT LT(_SYMBOLS, KC_ENT) // _SYMBOLS when held, ENTER when tapped
34#define CTL_BSPC MT(MOD_LCTL, KC_BSPC) // CTRL when held, BACKSPACE when tapped
35#define ALT_DEL MT(MOD_LALT, KC_DEL) // ALT when held, DELETE when tapped
36#define SFT_TAB MT(MOD_LSFT, KC_TAB) // SHIFT when held, TAB when tapped
37#define C_TAB C(KC_TAB) // CTRL+TAB
38#define CS_TAB C(S(KC_TAB)) // SHIFT+CTRL+TAB
39#define CUT C(KC_X) // CTRL+X
40#define COPY C(KC_INS) // CTRL+INSERT
41#define PASTE S(KC_INS) // SHIFT+INSERT
42#define AUTOFILL C(S(KC_L)) // Bitwarden Autofill, CTRL+SHIFT+L
43
44// i3 config
45#define I3MOD KC_LGUI // $mod
46#define OPEN G(KC_SPC) // $mod+SPACE
47#define QUIT G(S(KC_Q)) // $mod+SHIFT+Q
48#define WIN G(C(KC_SPC)) // $mod+CTRL+SPACE
49#define BROWSER G(KC_ENTER) // $mod+ENTER
50#define TERM G(S(KC_ENTER)) // $mod+CTRL+ENTER
51#define NXTWS G(KC_TAB) // $mod+TAB
52#define PRVWS G(S(KC_TAB)) // $mod+SHIFT+TAB
53#define MOVWS G(KC_LSFT) // $mod+SHIFT+$X
54#define CRYWS G(KC_LALT) // $mod+ALT+$X
55#define MVWSL G(C(S(KC_LEFT))) // $mod+CTRL+SHIFT+LEFT
56#define MVWSR G(C(S(KC_RGHT))) // $mod+CTRL+SHIFT+RIGHT
57
58enum custom_keycodes {
59 M_TILD = SAFE_RANGE, // ~
60 M_CIRC, // ^
61 M_BTCK, // `
62 QWE_COL, // Swaps default layer
63};
64
65// Tap Dance
66typedef struct {
67 bool is_press_action;
68 int state;
69} tap;
70
71// Define a type for as many tap dance states as you need
72enum {
73 SINGLE_TAP = 1,
74 SINGLE_HOLD = 2,
75 DOUBLE_TAP = 3,
76 DOUBLE_HOLD = 4,
77 DOUBLE_SINGLE_TAP = 5, // send two single taps
78 TRIPLE_TAP = 6,
79 TRIPLE_HOLD = 7
80};
81
82enum {
83 AAE = 0, // a and ae
84 OAA, // o and aa
85};
diff --git a/users/mnil/readme.md b/users/mnil/readme.md
new file mode 100644
index 000000000..f688ea388
--- /dev/null
+++ b/users/mnil/readme.md
@@ -0,0 +1,23 @@
1# mnil's user settings
2This keymap consist of four primary layers, `_COLEMAK`, `_SYMBOL`, `_NAVIGATION` and `_NUMPAD`.
3Colemak layout for less finger travel distance and to reduce RSI.
4The `_SYMBOL` layer is optimized for programming, specifically in `C++`.
5Space and Enter do double duties as layer toggle on hold where the `_NUMPAD` is entered when both are held down.
6`ALT+TAB` and `SHIFT+ALT+TAB` keys is implemented to register `ALT` and then `TAB` on each subsequent key press one leaves the `_NUMPAD`-layer.
7The Swedish characters `åäöÅÄÖ` are added as a tap dances on top of the Colemak layer since they are rarely needed.
8
9# License
10Copyright 2021 Mats Nilsson matni403@gmail.com @mnil
11
12This program is free software: you can redistribute it and/or modify
13it under the terms of the GNU General Public License as published by
14the Free Software Foundation, either version 2 of the License, or
15(at your option) any later version.
16
17This program is distributed in the hope that it will be useful,
18but WITHOUT ANY WARRANTY; without even the implied warranty of
19MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20GNU General Public License for more details.
21
22You should have received a copy of the GNU General Public License
23along with this program. If not, see <http://www.gnu.org/licenses/>.
diff --git a/users/mnil/rules.mk b/users/mnil/rules.mk
new file mode 100644
index 000000000..22cebfaee
--- /dev/null
+++ b/users/mnil/rules.mk
@@ -0,0 +1,7 @@
1SRC += mnil.c
2MOUSEKEY_ENABLE = yes # Enable mouse keys
3LTO_ENABLE = yes # Enable link time optimization
4BACKLIGHT_ENABLE = no
5CONSOLE_ENABLE = no
6AUTO_SHIFT_ENABLE = no
7TAP_DANCE_ENABLE = yes