Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d26537acc1 | ||
|
|
932a67ced2 | ||
|
|
6c550cc7f7 | ||
|
|
89eeb4987c | ||
|
|
455a988aa6 | ||
|
|
6cc03dd30a | ||
|
|
366be0f7e9 | ||
|
|
5fda0e2c04 | ||
|
|
c330fa725d | ||
|
|
68b1ef2d1d | ||
|
|
9d0b7ab9b9 | ||
|
|
18c6e1d46d | ||
|
|
867d60bd64 | ||
|
|
99f637e82c | ||
|
|
ffdfe3798b | ||
|
|
1c9af238dc | ||
|
|
9c4916e2e8 | ||
|
|
dd5ead676b | ||
|
|
70efc82c1c | ||
|
|
b29179de1a | ||
|
|
ef8267d6a7 | ||
|
|
6cdba3a437 | ||
|
|
2fd4595955 | ||
|
|
d4399172d3 | ||
|
|
a3d60464ef | ||
|
|
555a449488 | ||
|
|
3cd6cb65bc | ||
|
|
64e6ba0211 | ||
|
|
bf70db479c | ||
|
|
b89abc402b | ||
|
|
6b6ee5fa28 | ||
|
|
92a029d6f3 | ||
|
|
7d2f70f398 | ||
|
|
8f0bf52b25 | ||
|
|
c024acd752 | ||
|
|
6b8168c378 | ||
|
|
20a28d6752 | ||
|
|
b71ee47c44 | ||
|
|
4f3a4eca97 | ||
|
|
0453b61e1a | ||
|
|
877e81f963 | ||
|
|
0a8accae06 | ||
|
|
2c6cff4cb7 | ||
|
|
988942ce40 | ||
|
|
09474cbf04 | ||
|
|
baa65d2177 | ||
|
|
572a35d9a2 | ||
|
|
1e51bb39a3 | ||
|
|
f44b48669d | ||
|
|
e10e67c9b9 | ||
|
|
eab623f1ad | ||
|
|
72540f7d83 | ||
|
|
692d0268ca | ||
|
|
b976fcbb44 | ||
|
|
a0a57dc613 | ||
|
|
dba3f0d1eb | ||
|
|
09c4d536c3 | ||
|
|
c9c2916829 | ||
|
|
792c4e7893 |
No files matched your search
@@ -7,6 +7,7 @@ on:
|
|||||||
paths:
|
paths:
|
||||||
- 'keyboards/**'
|
- 'keyboards/**'
|
||||||
- 'layouts/community/**'
|
- 'layouts/community/**'
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
api_data:
|
api_data:
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ on:
|
|||||||
paths:
|
paths:
|
||||||
- 'keyboards/**'
|
- 'keyboards/**'
|
||||||
- 'layouts/community/**'
|
- 'layouts/community/**'
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
api_data:
|
api_data:
|
||||||
|
|||||||
@@ -30,18 +30,38 @@ If you find that you can no longer type with the keyboard, you may have accident
|
|||||||
|
|
||||||

|

|
||||||
|
|
||||||
Open the Device Manager and look for a device that looks like your keyboard.
|
Open the Device Manager, select **View → Devices by container**, and look for an entry with your keyboard's name.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
Right-click it and hit **Uninstall device**. Make sure to tick **Delete the driver software for this device** first.
|
Right-click each entry and hit **Uninstall device**. Make sure to tick **Delete the driver software for this device** first if it appears.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
Click **Action → Scan for hardware changes**. At this point, you should be able to type again. Double check in Zadig that the keyboard device(s) are using the `HidUsb` driver. If so, you're all done, and your board should be functional again! Otherwise, repeat the process until Zadig reports the correct driver.
|
Click **Action → Scan for hardware changes**. At this point, you should be able to type again. Double check in Zadig that the keyboard device(s) are using the `HidUsb` driver. If so, you're all done, and your board should be functional again! Otherwise, repeat this process until Zadig reports the correct driver.
|
||||||
|
|
||||||
?> A full reboot of your computer may sometimes be necessary at this point, to get Windows to pick up the new driver.
|
?> A full reboot of your computer may sometimes be necessary at this point, to get Windows to pick up the new driver.
|
||||||
|
|
||||||
|
## Uninstallation
|
||||||
|
|
||||||
|
Uninstallation of bootloader devices is a little more involved than installation.
|
||||||
|
|
||||||
|
Open the Device Manager, select **View → Devices by container**, and look for the bootloader device. Match up the USB VID and PID in Zadig with one from [the table below](#list-of-known-bootloaders).
|
||||||
|
|
||||||
|
Find the `Inf name` value in the Details tab of the device properties. This should generally be something like `oemXX.inf`:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Then, open a new Command Prompt window as an Administrator (type in `cmd` into the Start menu and press Ctrl+Shift+Enter). Run `pnputil /enum-drivers` to verify the `Inf name` matches the `Published Name` field of one of the entries:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Run `pnputil /delete-driver oemXX.inf /uninstall`. This will delete the driver and remove it from any devices using it. Note that this will not uninstall the device itself.
|
||||||
|
|
||||||
|
As with the previous section, this process may need to be repeated multiple times, as multiple drivers can be applicable to the same device.
|
||||||
|
|
||||||
|
!> **WARNING:** Be *extremely careful* when doing this! You could potentially uninstall the driver for some other critical device. If you are unsure, double check the output of `/enum-drivers`, and omit the `/uninstall` flag when running `/delete-driver`.
|
||||||
|
|
||||||
## List of Known Bootloaders
|
## List of Known Bootloaders
|
||||||
|
|
||||||
This is a list of known bootloader devices and their USB vendor and product IDs, as well as the correct driver to assign for flashing with QMK. Note that the usbser and HidUsb drivers are built in to Windows, and cannot be assigned with Zadig - if your device has an incorrect driver, you must use the Device Manager to uninstall it as described in the previous section.
|
This is a list of known bootloader devices and their USB vendor and product IDs, as well as the correct driver to assign for flashing with QMK. Note that the usbser and HidUsb drivers are built in to Windows, and cannot be assigned with Zadig - if your device has an incorrect driver, you must use the Device Manager to uninstall it as described in the previous section.
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
# QMK の設定
|
# QMK の設定
|
||||||
|
|
||||||
<!---
|
<!---
|
||||||
original document: 0.12.41:docs/config_options.md
|
original document: 0.13.17:docs/config_options.md
|
||||||
git diff 0.12.41 HEAD -- docs/config_options.md | cat
|
git diff 0.13.17 HEAD -- docs/config_options.md | cat
|
||||||
-->
|
-->
|
||||||
|
|
||||||
QMK はほぼ無制限に設定可能です。可能なところはいかなるところでも、やりすぎな程、ユーザーがコードサイズを犠牲にしてでも彼らのキーボードをカスタマイズをすることを許しています。ただし、このレベルの柔軟性により設定が困難になります。
|
QMK はほぼ無制限に設定可能です。可能なところはいかなるところでも、やりすぎな程、ユーザーがコードサイズを犠牲にしてでも彼らのキーボードをカスタマイズをすることを許しています。ただし、このレベルの柔軟性により設定が困難になります。
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
# よくある質問
|
# よくある質問
|
||||||
|
|
||||||
<!---
|
<!---
|
||||||
original document: 0.8.62:docs/faq_general.md
|
original document: 0.13.17:docs/faq_general.md
|
||||||
git diff 0.8.62 HEAD -- docs/faq_general.md | cat
|
git diff 0.13.17 HEAD -- docs/faq_general.md | cat
|
||||||
-->
|
-->
|
||||||
|
|
||||||
## QMK とは何か?
|
## QMK とは何か?
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
# PS/2 マウスサポート :id=ps2-mouse-support
|
# PS/2 マウスサポート :id=ps2-mouse-support
|
||||||
|
|
||||||
<!---
|
<!---
|
||||||
original document: 0.9.44:docs/feature_ps2_mouse.md
|
original document: 0.13.17:docs/feature_ps2_mouse.md
|
||||||
git diff 0.9.44 HEAD -- docs/feature_ps2_mouse.md | cat
|
git diff 0.13.17 HEAD -- docs/feature_ps2_mouse.md | cat
|
||||||
-->
|
-->
|
||||||
|
|
||||||
PS/2 マウス (例えばタッチパッドあるいはトラックポイント)を複合デバイスとしてキーボードに接続することができます。
|
PS/2 マウス (例えばタッチパッドあるいはトラックポイント)を複合デバイスとしてキーボードに接続することができます。
|
||||||
@@ -210,7 +210,7 @@ void ps2_mouse_set_sample_rate(ps2_mouse_sample_rate_t sample_rate);
|
|||||||
この機能を有効にするには、以下のようにスクロールボタンマスクを設定する必要があります:
|
この機能を有効にするには、以下のようにスクロールボタンマスクを設定する必要があります:
|
||||||
|
|
||||||
```c
|
```c
|
||||||
#define PS2_MOUSE_SCROLL_BTN_MASK (1<<PS2_MOUSE_BUTTON_MIDDLE) /* Default */
|
#define PS2_MOUSE_SCROLL_BTN_MASK (1<<PS2_MOUSE_BTN_MIDDLE) /* Default */
|
||||||
```
|
```
|
||||||
|
|
||||||
スクロールボタン機能を無効にするには:
|
スクロールボタン機能を無効にするには:
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
# スワップハンドアクション
|
# スワップハンドアクション
|
||||||
|
|
||||||
<!---
|
<!---
|
||||||
original document: 0.8.177:docs/feature_swap_hands.md
|
original document: 0.13.17:docs/feature_swap_hands.md
|
||||||
git diff 0.8.177 HEAD -- docs/feature_swap_hands.md | cat
|
git diff 0.13.17 HEAD -- docs/feature_swap_hands.md | cat
|
||||||
-->
|
-->
|
||||||
|
|
||||||
スワップハンドアクションにより、別のレイヤーを必要とせずに片手入力をサポートします。Makefile に `SWAP_HANDS_ENABLE` を設定し、キーマップに `hand_swap_config` エントリを定義します。これで `ACTION_SWAP_HANDS` コマンドキーが押されるたびにキーボードがミラーされます。例えば、QWERTY で "Hello, World" を入力するには、`^Ge^s^s^w^c W^wr^sd` を入力します。
|
スワップハンドアクションにより、別のレイヤーを必要とせずに片手入力をサポートします。Makefile に `SWAP_HANDS_ENABLE` を設定し、キーマップに `hand_swap_config` エントリを定義します。これで `ACTION_SWAP_HANDS` コマンドキーが押されるたびにキーボードがミラーされます。例えば、QWERTY で "Hello, World" を入力するには、`^Ge^s^s^w^c W^wr^sd` を入力します。
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
# ユーザスペース: キーマップ間でのコードの共有
|
# ユーザスペース: キーマップ間でのコードの共有
|
||||||
|
|
||||||
<!---
|
<!---
|
||||||
original document: 0.9.43:docs/feature_userspace.md
|
original document: 0.13.17:docs/feature_userspace.md
|
||||||
git diff 0.9.43 HEAD -- docs/feature_userspace.md | cat
|
git diff 0.13.17 HEAD -- docs/feature_userspace.md | cat
|
||||||
-->
|
-->
|
||||||
|
|
||||||
似たキーマップを複数のキーボードで使う場合、それらの間でコードを共有できるという利点が得られることがあります。`users/`に以下の構造でキーマップ(理想的には GitHub のユーザ名、`<name>`)と同じ名前の独自のフォルダを作成します:
|
似たキーマップを複数のキーボードで使う場合、それらの間でコードを共有できるという利点が得られることがあります。`users/`に以下の構造でキーマップ(理想的には GitHub のユーザ名、`<name>`)と同じ名前の独自のフォルダを作成します:
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
# GPIO 制御 :id=gpio-control
|
# GPIO 制御 :id=gpio-control
|
||||||
|
|
||||||
<!---
|
<!---
|
||||||
original document: 0.9.34:docs/internals_gpio_control.md
|
original document: 0.13.15:docs/internals_gpio_control.md
|
||||||
git diff 0.9.34 HEAD -- docs/internals_gpio_control.md | cat
|
git diff 0.13.15 HEAD -- docs/internals_gpio_control.md | cat
|
||||||
-->
|
-->
|
||||||
|
|
||||||
QMK には、マイクロコントローラに依存しない GPIO 制御抽象レイヤーがあります。これは異なるプラットフォーム間でピン制御に簡単にアクセスできるようにするためのものです。
|
QMK には、マイクロコントローラに依存しない GPIO 制御抽象レイヤーがあります。これは異なるプラットフォーム間でピン制御に簡単にアクセスできるようにするためのものです。
|
||||||
@@ -26,3 +26,22 @@ QMK には、マイクロコントローラに依存しない GPIO 制御抽象
|
|||||||
## 高度な設定 :id=advanced-settings
|
## 高度な設定 :id=advanced-settings
|
||||||
|
|
||||||
各マイクロコントローラは GPIO に関して複数の高度な設定を持つことができます。この抽象レイヤーは、アーキテクチャー固有の機能の使用法を制限しません。上級ユーザは、目的のデバイスのデータシートを参照し、必要なライブラリを含めてください。AVR については、標準 avr/io.h ライブラリが使われます; STM32 については ChibiOS [PAL ライブラリ](https://chibios.sourceforge.net/docs3/hal/group___p_a_l.html)が使われます。
|
各マイクロコントローラは GPIO に関して複数の高度な設定を持つことができます。この抽象レイヤーは、アーキテクチャー固有の機能の使用法を制限しません。上級ユーザは、目的のデバイスのデータシートを参照し、必要なライブラリを含めてください。AVR については、標準 avr/io.h ライブラリが使われます; STM32 については ChibiOS [PAL ライブラリ](https://chibios.sourceforge.net/docs3/hal/group___p_a_l.html)が使われます。
|
||||||
|
|
||||||
|
## アトミック操作 :id=atomic-operation
|
||||||
|
|
||||||
|
上記の関数は、必ずしもアトミックに動作することが保証されているわけではありません。そのため、上記の関数を複数組み合わせて使用する際に、操作の途中での割り込みを防ぎたい場合は、以下の `ATOMIC_BLOCK_FORCEON` マクロを使用してください。
|
||||||
|
|
||||||
|
例:
|
||||||
|
```c
|
||||||
|
void some_function() {
|
||||||
|
// 通常の処理
|
||||||
|
ATOMIC_BLOCK_FORCEON {
|
||||||
|
// アトミックであることが必要な処理
|
||||||
|
}
|
||||||
|
// 通常の処理
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
`ATOMIC_BLOCK_FORCEON` は、ブロックが実行される前に、割り込みが有効か無効かに関わらず、強制的に割り込みを無効にします。そして、ブロックが実行された後に、割り込みを有効にします。
|
||||||
|
|
||||||
|
したがって、`ATOMIC_BLOCK_FORCEON`は、ブロックの実行前に割り込みが有効になっていることがわかっている場合や、ブロックの完了時に割り込みを有効にしても問題ないことがわかっている場合のみ使用できることに注意してください。
|
||||||
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
<!---
|
<!---
|
||||||
grep --no-filename "^[ ]*git diff" docs/ja/*.md | sh
|
grep --no-filename "^[ ]*git diff" docs/ja/*.md | sh
|
||||||
original document: 0.12.45:docs/newbs_getting_started.md
|
original document: 0.13.20:docs/newbs_getting_started.md
|
||||||
git diff 0.12.45 HEAD -- docs/newbs_getting_started.md | cat
|
git diff 0.13.20 HEAD -- docs/newbs_getting_started.md | cat
|
||||||
-->
|
-->
|
||||||
|
|
||||||
キーマップをビルドする前に、いくつかのソフトウェアをインストールしてビルド環境を構築する必要があります。
|
キーマップをビルドする前に、いくつかのソフトウェアをインストールしてビルド環境を構築する必要があります。
|
||||||
@@ -57,9 +57,7 @@ MSYS2 をインストールしたら、開いている MSYS の全ターミナ
|
|||||||
|
|
||||||
次のコマンドを実行して、QMK CLI をインストールします:
|
次のコマンドを実行して、QMK CLI をインストールします:
|
||||||
|
|
||||||
PYTHONUTF8=1 python3 -m pip install qmk
|
python3 -m pip install qmk
|
||||||
|
|
||||||
!> **訳注:** 現在、日本語版 Windows 環境では、環境変数として `PYTHONUTF8=1` を指定してインストールする必要があります。この環境変数を指定しない場合、システムのロケール設定が原因で一部の Python モジュールのインストールでエラーが発生します。この問題は該当モジュールのソースコードでは修正済みですが、配布モジュールはまだ修正されていません。
|
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
# QMK 開発用の Visual Studio Code のセットアップ
|
# QMK 開発用の Visual Studio Code のセットアップ
|
||||||
|
|
||||||
<!---
|
<!---
|
||||||
original document: 0.10.33:docs/other_vscode.md
|
original document: 0.13.17:docs/other_vscode.md
|
||||||
git diff 0.10.33 HEAD -- docs/other_vscode.md | cat
|
git diff 0.13.17 HEAD -- docs/other_vscode.md | cat
|
||||||
-->
|
-->
|
||||||
|
|
||||||
[Visual Studio Code](https://code.visualstudio.com/) (VS Code) は多くの異なるプログラミング言語をサポートするオープンソースのコードエディタです。
|
[Visual Studio Code](https://code.visualstudio.com/) (VS Code) は多くの異なるプログラミング言語をサポートするオープンソースのコードエディタです。
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
<!---
|
<!---
|
||||||
grep --no-filename "^[ ]*git diff" docs/ja/*.md | sh
|
grep --no-filename "^[ ]*git diff" docs/ja/*.md | sh
|
||||||
original document: 0.9.46:docs/proton_c_conversion.md
|
original document: 0.13.17:docs/proton_c_conversion.md
|
||||||
git diff 0.9.46 HEAD -- docs/proton_c_conversion.md | cat
|
git diff 0.13.17 HEAD -- docs/proton_c_conversion.md | cat
|
||||||
-->
|
-->
|
||||||
|
|
||||||
Proton C は Pro Micro の差し替え可能品であるため、簡単に使用することができます。
|
Proton C は Pro Micro の差し替え可能品であるため、簡単に使用することができます。
|
||||||
|
|||||||
@@ -19,31 +19,31 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
|
||||||
#define LAYOUT_tsangan( \
|
#define LAYOUT_60_tsangan_hhkb( \
|
||||||
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K413, \
|
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K413, \
|
||||||
K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, \
|
K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, \
|
||||||
K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, \
|
K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, \
|
||||||
K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, \
|
K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, \
|
||||||
K400, K401, K402, K406, K410, K411, K412 \
|
K400, K401, K402, K406, K410, K411, K412 \
|
||||||
) { \
|
) { \
|
||||||
{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013 }, \
|
{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013 }, \
|
||||||
{ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113 }, \
|
{ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113 }, \
|
||||||
{ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, KC_NO }, \
|
{ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, KC_NO }, \
|
||||||
{ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, KC_NO }, \
|
{ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, KC_NO }, \
|
||||||
{ K400, K401, K402, KC_NO, KC_NO, KC_NO, K406, KC_NO, KC_NO, KC_NO, K410, K411, K412, K413 } \
|
{ K400, K401, K402, KC_NO, KC_NO, KC_NO, K406, KC_NO, KC_NO, KC_NO, K410, K411, K412, K413 } \
|
||||||
}
|
}
|
||||||
|
|
||||||
/* HHKB Variant */
|
/* HHKB Variant */
|
||||||
#define LAYOUT_60_hhkb( \
|
#define LAYOUT_60_hhkb( \
|
||||||
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K413, \
|
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K413, \
|
||||||
K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, \
|
K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, \
|
||||||
K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, \
|
K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, \
|
||||||
K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, \
|
K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, \
|
||||||
K401, K402, K406, K410, K411 \
|
K401, K402, K406, K410, K411 \
|
||||||
) { \
|
) { \
|
||||||
{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013 }, \
|
{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013 }, \
|
||||||
{ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113 }, \
|
{ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113 }, \
|
||||||
{ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, KC_NO }, \
|
{ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, KC_NO }, \
|
||||||
{ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, KC_NO }, \
|
{ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, KC_NO }, \
|
||||||
{ KC_NO, K401, K402, KC_NO, KC_NO, KC_NO, K406, KC_NO, KC_NO, KC_NO, K410, K411, KC_NO, K413 } \
|
{ KC_NO, K401, K402, KC_NO, KC_NO, KC_NO, K406, KC_NO, KC_NO, KC_NO, K410, K411, KC_NO, K413 } \
|
||||||
}
|
}
|
||||||
@@ -1,15 +1,150 @@
|
|||||||
{
|
{
|
||||||
"keyboard_name": "1up60hte",
|
"keyboard_name": "1up60hte",
|
||||||
"url": "https://www.1upkeyboards.com/shop/controllers/1up-rgb-60-pcb-hte/",
|
"url": "https://www.1upkeyboards.com/shop/controllers/1up-rgb-60-pcb-hte/",
|
||||||
"maintainer": "1upkeyboards",
|
"maintainer": "1upkeyboards",
|
||||||
"width": 15,
|
"width": 15,
|
||||||
"height": 5,
|
"height": 5,
|
||||||
|
"layout_aliases": {
|
||||||
|
"LAYOUT_tsangan": "LAYOUT_60_tsangan_hhkb"
|
||||||
|
},
|
||||||
"layouts": {
|
"layouts": {
|
||||||
"LAYOUT_tsangan": {
|
"LAYOUT_60_tsangan_hhkb": {
|
||||||
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"|", "x":13, "y":0}, {"label":"~", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Control", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Fn", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.5}, {"label":"Alt", "x":1.5, "y":4}, {"label":"Meta", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"label":"Meta", "x":11, "y":4, "w":1.5}, {"label":"Alt", "x":12.5, "y":4}, {"label":"Ctrl", "x":13.5, "y":4, "w":1.5}]
|
"layout": [
|
||||||
|
{"label":"Esc", "x":0, "y":0},
|
||||||
|
{"label":"!", "x":1, "y":0},
|
||||||
|
{"label":"@", "x":2, "y":0},
|
||||||
|
{"label":"#", "x":3, "y":0},
|
||||||
|
{"label":"$", "x":4, "y":0},
|
||||||
|
{"label":"%", "x":5, "y":0},
|
||||||
|
{"label":"^", "x":6, "y":0},
|
||||||
|
{"label":"&", "x":7, "y":0},
|
||||||
|
{"label":"*", "x":8, "y":0},
|
||||||
|
{"label":"(", "x":9, "y":0},
|
||||||
|
{"label":")", "x":10, "y":0},
|
||||||
|
{"label":"_", "x":11, "y":0},
|
||||||
|
{"label":"+", "x":12, "y":0},
|
||||||
|
{"label":"|", "x":13, "y":0},
|
||||||
|
{"label":"~", "x":14, "y":0},
|
||||||
|
|
||||||
|
{"label":"Tab", "x":0, "y":1, "w":1.5},
|
||||||
|
{"label":"Q", "x":1.5, "y":1},
|
||||||
|
{"label":"W", "x":2.5, "y":1},
|
||||||
|
{"label":"E", "x":3.5, "y":1},
|
||||||
|
{"label":"R", "x":4.5, "y":1},
|
||||||
|
{"label":"T", "x":5.5, "y":1},
|
||||||
|
{"label":"Y", "x":6.5, "y":1},
|
||||||
|
{"label":"U", "x":7.5, "y":1},
|
||||||
|
{"label":"I", "x":8.5, "y":1},
|
||||||
|
{"label":"O", "x":9.5, "y":1},
|
||||||
|
{"label":"P", "x":10.5, "y":1},
|
||||||
|
{"label":"{", "x":11.5, "y":1},
|
||||||
|
{"label":"}", "x":12.5, "y":1},
|
||||||
|
{"label":"|", "x":13.5, "y":1, "w":1.5},
|
||||||
|
|
||||||
|
{"label":"Control", "x":0, "y":2, "w":1.75},
|
||||||
|
{"label":"A", "x":1.75, "y":2},
|
||||||
|
{"label":"S", "x":2.75, "y":2},
|
||||||
|
{"label":"D", "x":3.75, "y":2},
|
||||||
|
{"label":"F", "x":4.75, "y":2},
|
||||||
|
{"label":"G", "x":5.75, "y":2},
|
||||||
|
{"label":"H", "x":6.75, "y":2},
|
||||||
|
{"label":"J", "x":7.75, "y":2},
|
||||||
|
{"label":"K", "x":8.75, "y":2},
|
||||||
|
{"label":"L", "x":9.75, "y":2},
|
||||||
|
{"label":":", "x":10.75, "y":2},
|
||||||
|
{"label":"\"", "x":11.75, "y":2},
|
||||||
|
{"label":"Enter", "x":12.75, "y":2, "w":2.25},
|
||||||
|
|
||||||
|
{"label":"Shift", "x":0, "y":3, "w":2.25},
|
||||||
|
{"label":"Z", "x":2.25, "y":3},
|
||||||
|
{"label":"X", "x":3.25, "y":3},
|
||||||
|
{"label":"C", "x":4.25, "y":3},
|
||||||
|
{"label":"V", "x":5.25, "y":3},
|
||||||
|
{"label":"B", "x":6.25, "y":3},
|
||||||
|
{"label":"N", "x":7.25, "y":3},
|
||||||
|
{"label":"M", "x":8.25, "y":3},
|
||||||
|
{"label":"<", "x":9.25, "y":3},
|
||||||
|
{"label":">", "x":10.25, "y":3},
|
||||||
|
{"label":"?", "x":11.25, "y":3},
|
||||||
|
{"label":"Shift", "x":12.25, "y":3, "w":1.75},
|
||||||
|
{"label":"Fn", "x":14, "y":3},
|
||||||
|
|
||||||
|
{"label":"Ctrl", "x":0, "y":4, "w":1.5},
|
||||||
|
{"label":"Alt", "x":1.5, "y":4},
|
||||||
|
{"label":"Meta", "x":2.5, "y":4, "w":1.5},
|
||||||
|
{"x":4, "y":4, "w":7},
|
||||||
|
{"label":"Meta", "x":11, "y":4, "w":1.5},
|
||||||
|
{"label":"Alt", "x":12.5, "y":4},
|
||||||
|
{"label":"Ctrl", "x":13.5, "y":4, "w":1.5}
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"LAYOUT_60_hhkb": {
|
"LAYOUT_60_hhkb": {
|
||||||
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"|", "x":13, "y":0}, {"label":"~", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Control", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Fn", "x":14, "y":3}, {"label":"Alt", "x":1.5, "y":4}, {"label":"Meta", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"label":"Meta", "x":11, "y":4, "w":1.5}, {"label":"Alt", "x":12.5, "y":4}]
|
"layout": [
|
||||||
|
{"label":"Esc", "x":0, "y":0},
|
||||||
|
{"label":"!", "x":1, "y":0},
|
||||||
|
{"label":"@", "x":2, "y":0},
|
||||||
|
{"label":"#", "x":3, "y":0},
|
||||||
|
{"label":"$", "x":4, "y":0},
|
||||||
|
{"label":"%", "x":5, "y":0},
|
||||||
|
{"label":"^", "x":6, "y":0},
|
||||||
|
{"label":"&", "x":7, "y":0},
|
||||||
|
{"label":"*", "x":8, "y":0},
|
||||||
|
{"label":"(", "x":9, "y":0},
|
||||||
|
{"label":")", "x":10, "y":0},
|
||||||
|
{"label":"_", "x":11, "y":0},
|
||||||
|
{"label":"+", "x":12, "y":0},
|
||||||
|
{"label":"|", "x":13, "y":0},
|
||||||
|
{"label":"~", "x":14, "y":0},
|
||||||
|
|
||||||
|
{"label":"Tab", "x":0, "y":1, "w":1.5},
|
||||||
|
{"label":"Q", "x":1.5, "y":1},
|
||||||
|
{"label":"W", "x":2.5, "y":1},
|
||||||
|
{"label":"E", "x":3.5, "y":1},
|
||||||
|
{"label":"R", "x":4.5, "y":1},
|
||||||
|
{"label":"T", "x":5.5, "y":1},
|
||||||
|
{"label":"Y", "x":6.5, "y":1},
|
||||||
|
{"label":"U", "x":7.5, "y":1},
|
||||||
|
{"label":"I", "x":8.5, "y":1},
|
||||||
|
{"label":"O", "x":9.5, "y":1},
|
||||||
|
{"label":"P", "x":10.5, "y":1},
|
||||||
|
{"label":"{", "x":11.5, "y":1},
|
||||||
|
{"label":"}", "x":12.5, "y":1},
|
||||||
|
{"label":"|", "x":13.5, "y":1, "w":1.5},
|
||||||
|
|
||||||
|
{"label":"Control", "x":0, "y":2, "w":1.75},
|
||||||
|
{"label":"A", "x":1.75, "y":2},
|
||||||
|
{"label":"S", "x":2.75, "y":2},
|
||||||
|
{"label":"D", "x":3.75, "y":2},
|
||||||
|
{"label":"F", "x":4.75, "y":2},
|
||||||
|
{"label":"G", "x":5.75, "y":2},
|
||||||
|
{"label":"H", "x":6.75, "y":2},
|
||||||
|
{"label":"J", "x":7.75, "y":2},
|
||||||
|
{"label":"K", "x":8.75, "y":2},
|
||||||
|
{"label":"L", "x":9.75, "y":2},
|
||||||
|
{"label":":", "x":10.75, "y":2},
|
||||||
|
{"label":"\"", "x":11.75, "y":2},
|
||||||
|
{"label":"Enter", "x":12.75, "y":2, "w":2.25},
|
||||||
|
|
||||||
|
{"label":"Shift", "x":0, "y":3, "w":2.25},
|
||||||
|
{"label":"Z", "x":2.25, "y":3},
|
||||||
|
{"label":"X", "x":3.25, "y":3},
|
||||||
|
{"label":"C", "x":4.25, "y":3},
|
||||||
|
{"label":"V", "x":5.25, "y":3},
|
||||||
|
{"label":"B", "x":6.25, "y":3},
|
||||||
|
{"label":"N", "x":7.25, "y":3},
|
||||||
|
{"label":"M", "x":8.25, "y":3},
|
||||||
|
{"label":"<", "x":9.25, "y":3},
|
||||||
|
{"label":">", "x":10.25, "y":3},
|
||||||
|
{"label":"?", "x":11.25, "y":3},
|
||||||
|
{"label":"Shift", "x":12.25, "y":3, "w":1.75},
|
||||||
|
{"label":"Fn", "x":14, "y":3},
|
||||||
|
|
||||||
|
{"label":"Alt", "x":1.5, "y":4},
|
||||||
|
{"label":"Meta", "x":2.5, "y":4, "w":1.5},
|
||||||
|
{"x":4, "y":4, "w":7},
|
||||||
|
{"label":"Meta", "x":11, "y":4, "w":1.5},
|
||||||
|
{"label":"Alt", "x":12.5, "y":4}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -17,17 +17,19 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
#include QMK_KEYBOARD_H
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
[0] = LAYOUT_tsangan(
|
[0] = LAYOUT_60_tsangan_hhkb(
|
||||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV,
|
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV,
|
||||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
|
||||||
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
|
||||||
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL),
|
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL
|
||||||
|
),
|
||||||
|
|
||||||
[1] = LAYOUT_tsangan(
|
[1] = LAYOUT_60_tsangan_hhkb(
|
||||||
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, KC_INS, KC_DEL,
|
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, KC_INS, KC_DEL,
|
||||||
KC_CAPS, BL_TOGG, BL_DEC, BL_INC, BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_CLR,
|
KC_CAPS, BL_TOGG, BL_DEC, BL_INC, BL_STEP, _______, _______, _______, _______, KC_SLCK, KC_PAUS, KC_UP, _______, KC_CLR,
|
||||||
KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPLY, KC_MPRV, KC_MNXT, RGB_VAD, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS,
|
_______, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPLY, KC_MPRV, KC_MNXT, RGB_VAD, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______,
|
||||||
KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS,
|
_______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, KC_END, KC_PGDN, KC_DOWN, _______, _______,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
|
_______, _______, _______, _______, _______, _______, _______
|
||||||
|
)
|
||||||
};
|
};
|
||||||
@@ -17,17 +17,19 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
#include QMK_KEYBOARD_H
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
[0] = LAYOUT_tsangan(
|
[0] = LAYOUT_60_hhkb(
|
||||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV,
|
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV,
|
||||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
|
||||||
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
|
||||||
KC_NO, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_NO),
|
KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT
|
||||||
|
),
|
||||||
|
|
||||||
[1] = LAYOUT_tsangan(
|
[1] = LAYOUT_60_hhkb(
|
||||||
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, KC_INS, KC_DEL,
|
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, KC_INS, KC_DEL,
|
||||||
KC_CAPS, BL_TOGG, BL_DEC, BL_INC, BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_CLR,
|
KC_CAPS, BL_TOGG, BL_DEC, BL_INC, BL_STEP, _______, _______, _______, _______, KC_SLCK, KC_PAUS, KC_UP, _______, KC_CLR,
|
||||||
KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPLY, KC_MPRV, KC_MNXT, RGB_VAD, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS,
|
_______, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPLY, KC_MPRV, KC_MNXT, RGB_VAD, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______,
|
||||||
KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS,
|
_______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, KC_END, KC_PGDN, KC_DOWN, _______, _______,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
|
_______, _______, _______, _______, _______
|
||||||
|
)
|
||||||
};
|
};
|
||||||
@@ -17,31 +17,35 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
#include QMK_KEYBOARD_H
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
[0] = LAYOUT_tsangan(
|
[0] = LAYOUT_60_tsangan_hhkb(
|
||||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV,
|
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV,
|
||||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
|
||||||
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
|
||||||
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL),
|
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL
|
||||||
|
),
|
||||||
|
|
||||||
[1] = LAYOUT_tsangan(
|
[1] = LAYOUT_60_tsangan_hhkb(
|
||||||
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, KC_INS, KC_DEL,
|
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, KC_INS, KC_DEL,
|
||||||
KC_CAPS, BL_TOGG, BL_DEC, BL_INC, BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_CLR,
|
KC_CAPS, BL_TOGG, BL_DEC, BL_INC, BL_STEP, _______, _______, _______, _______, KC_SLCK, KC_PAUS, KC_UP, _______, KC_CLR,
|
||||||
KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPLY, KC_MPRV, KC_MNXT, RGB_VAD, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS,
|
_______, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPLY, KC_MPRV, KC_MNXT, RGB_VAD, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______,
|
||||||
KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS,
|
_______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, KC_END, KC_PGDN, KC_DOWN, _______, _______,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
_______, _______, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
|
||||||
[2] = LAYOUT_tsangan(
|
[2] = LAYOUT_60_tsangan_hhkb(
|
||||||
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, 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, 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, KC_TRNS,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
_______, _______, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
|
||||||
[3] = LAYOUT_tsangan(
|
[3] = LAYOUT_60_tsangan_hhkb(
|
||||||
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, 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, 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, KC_TRNS,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
_______, _______, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
};
|
};
|
||||||
@@ -1,17 +1,19 @@
|
|||||||
|
|
||||||
# 1up60hte (Hot Swap Tsangan Edition)
|
# 1up60hte (Hot Swap Tsangan Edition)
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
||||||
A 60% PCB with USB C, RGB underglow, backlighting, hotswappable switches, and a Tsangan layout.
|
A 60% PCB with USB C, RGB underglow, backlighting, hotswappable switches, and a Tsangan layout.
|
||||||
|
|
||||||
Keyboard Maintainer: [Bubnick](https://github.com/bubnick)
|
* Keyboard Maintainer: [Bubnick](https://github.com/bubnick)
|
||||||
Hardware Supported: 1up60hte 60% PCB
|
* Hardware Supported: 1up60hte 60% PCB
|
||||||
Hardware Availability: [1upkeyboards.com](https://www.1upkeyboards.com/shop/controllers/1up-rgb-60-pcb-hte/)
|
* Hardware Availability: [1upkeyboards.com](https://www.1upkeyboards.com/shop/controllers/1up-rgb-60-pcb-hte/)
|
||||||
|
|
||||||
Make example for this keyboard (after setting up your build environment):
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
make 1upkeyboards/1up60hte:default
|
make 1upkeyboards/1up60hte:default
|
||||||
|
|
||||||
|
Flashing example for this keyboard:
|
||||||
|
|
||||||
|
make 1upkeyboards/1up60hte:default:flash
|
||||||
|
|
||||||
See 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).
|
See 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).
|
||||||
@@ -2,28 +2,25 @@
|
|||||||
MCU = atmega32u4
|
MCU = atmega32u4
|
||||||
|
|
||||||
# Bootloader selection
|
# Bootloader selection
|
||||||
# Teensy halfkay
|
|
||||||
# Pro Micro caterina
|
|
||||||
# Atmel DFU atmel-dfu
|
|
||||||
# LUFA DFU lufa-dfu
|
|
||||||
# QMK DFU qmk-dfu
|
|
||||||
# ATmega32A bootloadHID
|
|
||||||
# ATmega328P USBasp
|
|
||||||
BOOTLOADER = atmel-dfu
|
BOOTLOADER = atmel-dfu
|
||||||
|
|
||||||
# Build Options
|
# Build Options
|
||||||
# comment out to disable the options.
|
# change yes to no to disable
|
||||||
#
|
#
|
||||||
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
|
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
|
||||||
MOUSEKEY_ENABLE = yes # Mouse keys
|
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||||
CONSOLE_ENABLE = no # Console for debug
|
CONSOLE_ENABLE = no # Console for debug
|
||||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
AUDIO_ENABLE = no
|
NKRO_ENABLE = yes # USB Nkey Rollover
|
||||||
RGBLIGHT_ENABLE = yes
|
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
||||||
|
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
|
||||||
|
BLUETOOTH_ENABLE = no # Enable Bluetooth
|
||||||
|
AUDIO_ENABLE = no # Audio output
|
||||||
|
|
||||||
LTO_ENABLE = yes
|
LTO_ENABLE = yes
|
||||||
|
|
||||||
LAYOUTS = 60_hhkb
|
LAYOUTS = 60_hhkb 60_tsangan_hhkb
|
||||||
@@ -3,19 +3,18 @@
|
|||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
|
||||||
[0] = LAYOUT_all(
|
[0] = LAYOUT_all(
|
||||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
|
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
|
||||||
KC_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_ENT,
|
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_LCTRL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS,
|
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT,
|
||||||
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_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_LCTL, KC_LGUI, KC_LALT, _______, KC_SPC, _______, KC_RALT, KC_RGUI, KC_RCTL),
|
KC_LCTL, KC_LGUI, KC_LALT, _______, KC_SPC, _______, KC_RALT, KC_RGUI, KC_RCTL
|
||||||
|
),
|
||||||
[1] = LAYOUT_all(
|
[1] = LAYOUT_all(
|
||||||
KC_EXEC, 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_EXEC, 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_BSPC, KC_UP, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______, KC_PENT,
|
_______, KC_BSPC, KC_UP, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______,
|
||||||
KC_CAPS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_MUTE, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RIGHT, KC_INS,
|
KC_CAPS, KC_LEFT, KC_DOWN, KC_RGHT, KC_MUTE, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_INS, KC_PENT,
|
||||||
_______, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLD, KC_VOLU, KC_PPLS, KC_PMNS, _______, KC_END, KC_PGDN, KC_DOWN, _______, _______,
|
_______, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLD, KC_VOLU, KC_PPLS, KC_PMNS, _______, KC_END, KC_PGDN, KC_DOWN, _______, _______,
|
||||||
RESET, _______, _______, _______, _______, _______, KC_BRID, KC_BRIU, _______)
|
RESET, _______, _______, _______, _______, _______, KC_BRID, KC_BRIU, _______
|
||||||
|
)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -3,32 +3,32 @@
|
|||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
|
||||||
[0] = LAYOUT_all(
|
[0] = LAYOUT_all(
|
||||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
|
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
|
||||||
KC_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_ENT,
|
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_LCTRL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS,
|
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT,
|
||||||
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_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_LCTL, KC_LGUI, KC_LALT, _______, KC_SPC, _______, KC_RALT, KC_RGUI, KC_RCTL),
|
KC_LCTL, KC_LGUI, KC_LALT, _______, KC_SPC, _______, KC_RALT, KC_RGUI, KC_RCTL
|
||||||
|
),
|
||||||
[1] = LAYOUT_all(
|
[1] = LAYOUT_all(
|
||||||
KC_EXEC, 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_EXEC, 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_BSPC, KC_UP, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______, KC_PENT,
|
_______, KC_BSPC, KC_UP, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______,
|
||||||
KC_CAPS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_MUTE, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RIGHT, KC_INS,
|
KC_CAPS, KC_LEFT, KC_DOWN, KC_RGHT, KC_MUTE, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_INS, KC_PENT,
|
||||||
_______, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLD, KC_VOLU, KC_PPLS, KC_PMNS, _______, KC_END, KC_PGDN, KC_DOWN, _______, _______,
|
_______, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLD, KC_VOLU, KC_PPLS, KC_PMNS, _______, KC_END, KC_PGDN, KC_DOWN, _______, _______,
|
||||||
RESET, _______, _______, _______, _______, _______, KC_BRID, KC_BRIU, _______),
|
RESET, _______, _______, _______, _______, _______, KC_BRID, KC_BRIU, _______
|
||||||
|
),
|
||||||
[2] = LAYOUT_all(
|
[2] = LAYOUT_all(
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______),
|
_______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
[3] = LAYOUT_all(
|
[3] = LAYOUT_all(
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______)
|
_______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
)
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -2,12 +2,25 @@
|
|||||||
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
|
||||||
|
/* LAYOUT_all
|
||||||
|
* ┌────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬──────┐
|
||||||
|
* │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │
|
||||||
|
* ├────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬────┤
|
||||||
|
* │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │ │
|
||||||
|
* ├──────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐1d │
|
||||||
|
* │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │ │
|
||||||
|
* ├─────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤
|
||||||
|
* │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c │3d │
|
||||||
|
* ├─────┼───┴┬──┴──┬┴───┴───┴─┬─┴─┬─┴───┴───┴┬──┴──┬┴───┬─┴───┤
|
||||||
|
* │40 │41 │43 │44 │45 │46 │48 │4a │4b │
|
||||||
|
* └─────┴────┴─────┴──────────┴───┴──────────┴─────┴────┴─────┘
|
||||||
|
*/
|
||||||
#define LAYOUT_all( \
|
#define LAYOUT_all( \
|
||||||
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \
|
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \
|
||||||
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
|
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, \
|
||||||
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \
|
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k1d, \
|
||||||
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \
|
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \
|
||||||
k40, k41, k43, k44, k45, k46, k48, k4a, k4b \
|
k40, k41, k43, k44, k45, k46, k48, k4a, k4b \
|
||||||
) \
|
) \
|
||||||
{ \
|
{ \
|
||||||
{k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \
|
{k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \
|
||||||
|
|||||||
@@ -1 +1,17 @@
|
|||||||
|
/* Copyright 2016 Toni (@toneman77)
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
#include "amj60.h"
|
#include "amj60.h"
|
||||||
+82
-120
@@ -1,5 +1,21 @@
|
|||||||
#ifndef AMJ60_H
|
/* Copyright 2016 Toni (@toneman77)
|
||||||
#define AMJ60_H
|
* 2021 James Young for QMK (@noroadsleft)
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
|
||||||
@@ -7,23 +23,43 @@
|
|||||||
#define XXX KC_NO
|
#define XXX KC_NO
|
||||||
|
|
||||||
/* AMJ60 layout to the best of my knowledge matrix layout
|
/* AMJ60 layout to the best of my knowledge matrix layout
|
||||||
* ,-----------------------------------------------------------.
|
*
|
||||||
* | 00 |01| 02| 03| 04| 05| 06| 07| 08| 09| 0a| 0b| 0c| 0d| 49|
|
* I scoured the internet researching this PCB, which near as I know was
|
||||||
* |-----------------------------------------------------------|
|
* discontinued around 2017. Fortunately, the wiring seems to be based on the
|
||||||
* | 10 | 11| 12| 13| 14| 15| 16| 17| 18| 19| 1a| 1b| 1c| 1d |
|
* GH60, and I own a KC60, which is also based on the GH60. I traced my KC60
|
||||||
* |-----------------------------------------------------------|
|
* (which I already had apart!) and worked out the right shift can be split
|
||||||
* | 20 | 21| 22| 23| 24| 25| 26| 27| 28| 29| 2a| 2b| 2d |
|
* 1.75/1 (HHKB style) or 1/1.75 (JIS/ABNT2). With either split, the 1u key
|
||||||
* |-----------------------------------------------------------|
|
* was on column C, so I used that here.
|
||||||
* | 30 | 31| 32| 33| 34| 35| 36| 37| 38| 39| 3a| 3b| 3c | 3d |
|
*
|
||||||
* |-----------------------------------------------------------|
|
* - noroadsleft
|
||||||
* | 40 | 41 | 42 | 45 | 4a | 4b | 4c | 4d |
|
*
|
||||||
* `-----------------------------------------------------------'
|
* ┌───────┐
|
||||||
|
* 2u Backspace │0d │
|
||||||
|
* └───────┘
|
||||||
|
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
|
||||||
|
* │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │49 │ ┌─────┐
|
||||||
|
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ │ │
|
||||||
|
* │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d │ ┌──┴┐ │ ISO Enter
|
||||||
|
* 2.25u ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬────┤ │2c │2d │
|
||||||
|
* LShift │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │2d │ └───┴────┘
|
||||||
|
* ┌────────┐ ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┤ ┌──────────┐
|
||||||
|
* │30 │ │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3d │3c │ │3d │ 2.75u RShift
|
||||||
|
* └────────┘ ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤ └──────────┘
|
||||||
|
* │40 │41 │42 │ 45 │4a │4b │4c │4d │ ┌───┬──────┐
|
||||||
|
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ │3c │3d │ JIS RShift
|
||||||
|
* ┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐ └───┴──────┘
|
||||||
|
* Tsangan │40 │41 │42 │ 45 │4b │4c │4d │
|
||||||
|
* └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘
|
||||||
|
* ┌─────┬───┬─────┬───────────────────────┬─────┬───┬───┬─────┐
|
||||||
|
* Topre-style │40 │41 │42 │ 45 │4a │4b │4c │4d │
|
||||||
|
* └─────┴───┴─────┴───────────────────────┴─────┴───┴───┴─────┘
|
||||||
|
*
|
||||||
*/
|
*/
|
||||||
#define LAYOUT( \
|
#define LAYOUT_all( \
|
||||||
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k49,\
|
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k49,\
|
||||||
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
|
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
|
||||||
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \
|
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \
|
||||||
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \
|
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3c, \
|
||||||
k40, k41, k42, k45, k4a, k4b, k4c, k4d \
|
k40, k41, k42, k45, k4a, k4b, k4c, k4d \
|
||||||
) \
|
) \
|
||||||
{ \
|
{ \
|
||||||
@@ -34,20 +70,6 @@
|
|||||||
{k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, k49, k4a, k4b, k4c, k4d} \
|
{k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, k49, k4a, k4b, k4c, k4d} \
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* ANSI
|
|
||||||
* ,-----------------------------------------------------------.
|
|
||||||
* | 00 |01| 02| 03| 04| 05| 06| 07| 08| 09| 0a| 0b| 0c| 0d |
|
|
||||||
* |-----------------------------------------------------------|
|
|
||||||
* | 10 | 11| 12| 13| 14| 15| 16| 17| 18| 19| 1a| 1b| 1c| 1d |
|
|
||||||
* |-----------------------------------------------------------|
|
|
||||||
* | 20 | 21| 22| 23| 24| 25| 26| 27| 28| 29| 2a| 2b| 2d |
|
|
||||||
* |-----------------------------------------------------------|
|
|
||||||
* | 30 | 32| 33| 34| 35| 36| 37| 38| 39| 3a| 3b| 3d |
|
|
||||||
* |-----------------------------------------------------------|
|
|
||||||
* | 40 | 41 | 42 | 45 | 4a | 4b | 4c | 4d |
|
|
||||||
* `-----------------------------------------------------------'
|
|
||||||
*/
|
|
||||||
#define LAYOUT_60_ansi( \
|
#define LAYOUT_60_ansi( \
|
||||||
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \
|
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \
|
||||||
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
|
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
|
||||||
@@ -63,24 +85,40 @@
|
|||||||
{k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d} \
|
{k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d} \
|
||||||
}
|
}
|
||||||
|
|
||||||
/* AMJ60 HHKB matrix layout
|
#define LAYOUT_60_hhkb( \
|
||||||
* ,------------------------------------------------------------.
|
|
||||||
* | 00 |01| 02| 03| 04| 05| 06| 07| 08| 09| 0a| 0b| 0c| 0d| 49 |
|
|
||||||
* |------------------------------------------------------------|
|
|
||||||
* | 10 | 11| 12| 13| 14| 15| 16| 17| 18| 19| 1a| 1b| 1c| 1d |
|
|
||||||
* |------------------------------------------------------------|
|
|
||||||
* | 20 | 21| 22| 23| 24| 25| 26| 27| 28| 29| 2a| 2b| 2d |
|
|
||||||
* |------------------------------------------------------------|
|
|
||||||
* | 30 | 32| 33| 34| 35| 36| 37| 38| 39| 3a| 3b| 3d | 3c |
|
|
||||||
* |------------------------------------------------------------|
|
|
||||||
* | 40 | 41 | 42 | 45 | 4a | 4b | 4c | 4d |
|
|
||||||
* `------------------------------------------------------------'
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define LAYOUT_hhkb( \
|
|
||||||
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k49, \
|
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k49, \
|
||||||
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
|
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
|
||||||
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \
|
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \
|
||||||
|
k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3c, \
|
||||||
|
k41, k42, k45, k4b, k4c \
|
||||||
|
) \
|
||||||
|
{ \
|
||||||
|
{k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \
|
||||||
|
{k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d}, \
|
||||||
|
{k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d}, \
|
||||||
|
{k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d}, \
|
||||||
|
{XXX, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, k49, XXX, k4b, k4c, XXX} \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define LAYOUT_60_iso( \
|
||||||
|
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \
|
||||||
|
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, \
|
||||||
|
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \
|
||||||
|
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, \
|
||||||
|
k40, k41, k42, k45, k4a, k4b, k4c, k4d \
|
||||||
|
) \
|
||||||
|
{ \
|
||||||
|
{k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \
|
||||||
|
{k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, XXX}, \
|
||||||
|
{k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d}, \
|
||||||
|
{k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, XXX, k3d}, \
|
||||||
|
{k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d} \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define LAYOUT_60_ansi_split_bs_rshift( \
|
||||||
|
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k49,\
|
||||||
|
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
|
||||||
|
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \
|
||||||
k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3c, \
|
k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3c, \
|
||||||
k40, k41, k42, k45, k4a, k4b, k4c, k4d \
|
k40, k41, k42, k45, k4a, k4b, k4c, k4d \
|
||||||
) \
|
) \
|
||||||
@@ -91,79 +129,3 @@
|
|||||||
{k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d}, \
|
{k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d}, \
|
||||||
{k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, k49, k4a, k4b, k4c, k4d} \
|
{k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, k49, k4a, k4b, k4c, k4d} \
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ISO
|
|
||||||
* ,-----------------------------------------------------------.
|
|
||||||
* | 00 |01| 02| 03| 04| 05| 06| 07| 08| 09| 0a| 0b| 0c| 0d |
|
|
||||||
* |-----------------------------------------------------------|
|
|
||||||
* | 10 | 11| 12| 13| 14| 15| 16| 17| 18| 19| 1a| 1b| 1c| 1d |
|
|
||||||
* |-----------------------------------------------------------|
|
|
||||||
* | 20 | 21| 22| 23| 24| 25| 26| 27| 28| 29| 2a| 2b| 2c|2d |
|
|
||||||
* |-----------------------------------------------------------|
|
|
||||||
* | 30 | 31| 32| 33| 34| 35| 36| 37| 38| 39| 3a| 3b| 3d |
|
|
||||||
* |-----------------------------------------------------------|
|
|
||||||
* | 40 | 41 | 42 | 45 | 4a | 4b | 4c | 4d |
|
|
||||||
* `-----------------------------------------------------------'
|
|
||||||
*/
|
|
||||||
#define LAYOUT_iso( \
|
|
||||||
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \
|
|
||||||
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
|
|
||||||
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \
|
|
||||||
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, \
|
|
||||||
k40, k41, k42, k45, k4a, k4b, k4c, k4d \
|
|
||||||
) \
|
|
||||||
{ \
|
|
||||||
{k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \
|
|
||||||
{k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d}, \
|
|
||||||
{k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d}, \
|
|
||||||
{k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, XXX, k3d}, \
|
|
||||||
{k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d} \
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ISO w/ split right shift key matrix layout
|
|
||||||
* ,-----------------------------------------------------------.
|
|
||||||
* | 00 |01| 02| 03| 04| 05| 06| 07| 08| 09| 0a| 0b| 0c| 0d |
|
|
||||||
* |-----------------------------------------------------------|
|
|
||||||
* | 10 | 11| 12| 13| 14| 15| 16| 17| 18| 19| 1a| 1b| 1c| 1d |
|
|
||||||
* |-----------------------------------------------------------|
|
|
||||||
* | 20 | 21| 22| 23| 24| 25| 26| 27| 28| 29| 2a| 2b| 2c|2d |
|
|
||||||
* |-----------------------------------------------------------|
|
|
||||||
* | 30 | 31| 32| 33| 34| 35| 36| 37| 38| 39| 3a| 3b| 3d | 3c |
|
|
||||||
* |-----------------------------------------------------------|
|
|
||||||
* | 40 | 41 | 42 | 45 | 4a | 4b | 4c | 4d |
|
|
||||||
* `-----------------------------------------------------------'
|
|
||||||
*/
|
|
||||||
#define LAYOUT_iso_splitrshift( \
|
|
||||||
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \
|
|
||||||
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
|
|
||||||
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \
|
|
||||||
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3c, \
|
|
||||||
k40, k41, k42, k45, k4a, k4b, k4c, k4d \
|
|
||||||
) \
|
|
||||||
{ \
|
|
||||||
{k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \
|
|
||||||
{k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d}, \
|
|
||||||
{k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d}, \
|
|
||||||
{k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d}, \
|
|
||||||
{k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d} \
|
|
||||||
}
|
|
||||||
|
|
||||||
#define LAYOUT_max( \
|
|
||||||
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k49,\
|
|
||||||
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
|
|
||||||
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \
|
|
||||||
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3c, \
|
|
||||||
k40, k41, k42, k45, k4a, k4b, k4c, k4d \
|
|
||||||
) \
|
|
||||||
{ \
|
|
||||||
{k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \
|
|
||||||
{k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d}, \
|
|
||||||
{k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d}, \
|
|
||||||
{k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d}, \
|
|
||||||
{k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, k49, k4a, k4b, k4c, k4d} \
|
|
||||||
}
|
|
||||||
|
|
||||||
void matrix_init_user(void);
|
|
||||||
void matrix_scan_user(void);
|
|
||||||
|
|
||||||
#endif
|
|
||||||
+54
-28
@@ -15,8 +15,7 @@ You should have received a copy of the GNU General Public License
|
|||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef CONFIG_H
|
#pragma once
|
||||||
#define CONFIG_H
|
|
||||||
|
|
||||||
#include "config_common.h"
|
#include "config_common.h"
|
||||||
|
|
||||||
@@ -31,46 +30,69 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
#define MATRIX_ROWS 5
|
#define MATRIX_ROWS 5
|
||||||
#define MATRIX_COLS 14
|
#define MATRIX_COLS 14
|
||||||
|
|
||||||
// ROWS: Top to bottom, COLS: Left to right
|
/*
|
||||||
|
* Keyboard Matrix Assignments
|
||||||
#define MATRIX_ROW_PINS { F7, F6, F5, F4, D5}
|
*
|
||||||
#define MATRIX_COL_PINS { F1, F0, E6, C7, C6, B0, D4, B1, B7, B5, B4, D7, D6, B3}
|
* Change this to how you wired your keyboard
|
||||||
|
* COLS: AVR pins used for columns, left to right
|
||||||
|
* ROWS: AVR pins used for rows, top to bottom
|
||||||
|
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
|
||||||
|
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#define MATRIX_ROW_PINS { F7, F6, F5, F4, D5 }
|
||||||
|
#define MATRIX_COL_PINS { F1, F0, E6, C7, C6, B0, D4, B1, B7, B5, B4, D7, D6, B3 }
|
||||||
#define UNUSED_PINS
|
#define UNUSED_PINS
|
||||||
|
|
||||||
/* COL2ROW or ROW2COL */
|
/* COL2ROW, ROW2COL */
|
||||||
#define DIODE_DIRECTION COL2ROW
|
#define DIODE_DIRECTION COL2ROW
|
||||||
|
|
||||||
#define LED_CAPS_LOCK_PIN B2
|
#define LED_CAPS_LOCK_PIN B2
|
||||||
#define LED_PIN_ON_STATE 0
|
#define LED_PIN_ON_STATE 0
|
||||||
|
|
||||||
#define BACKLIGHT_PIN B6
|
#define BACKLIGHT_PIN B6
|
||||||
|
#define BACKLIGHT_LEVELS 4
|
||||||
|
#define BACKLIGHT_BREATHING
|
||||||
|
|
||||||
|
#define RGB_DI_PIN E2
|
||||||
|
#ifdef RGB_DI_PIN
|
||||||
|
# define RGBLED_NUM 8
|
||||||
|
# define RGBLIGHT_HUE_STEP 10
|
||||||
|
# define RGBLIGHT_SAT_STEP 17
|
||||||
|
# define RGBLIGHT_VAL_STEP 17
|
||||||
|
//# define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
|
||||||
|
//# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
|
||||||
|
/*== all animations enable ==*/
|
||||||
|
# define RGBLIGHT_ANIMATIONS
|
||||||
|
/*== or choose animations ==*/
|
||||||
|
//# define RGBLIGHT_EFFECT_BREATHING
|
||||||
|
//# define RGBLIGHT_EFFECT_RAINBOW_MOOD
|
||||||
|
//# define RGBLIGHT_EFFECT_RAINBOW_SWIRL
|
||||||
|
//# define RGBLIGHT_EFFECT_SNAKE
|
||||||
|
//# define RGBLIGHT_EFFECT_KNIGHT
|
||||||
|
//# define RGBLIGHT_EFFECT_CHRISTMAS
|
||||||
|
//# define RGBLIGHT_EFFECT_STATIC_GRADIENT
|
||||||
|
//# define RGBLIGHT_EFFECT_RGB_TEST
|
||||||
|
//# define RGBLIGHT_EFFECT_ALTERNATING
|
||||||
|
/*== customize breathing effect ==*/
|
||||||
|
/*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
|
||||||
|
//# define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
|
||||||
|
/*==== use exp() and sin() ====*/
|
||||||
|
//# define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
|
||||||
|
//# define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
|
||||||
|
#endif
|
||||||
|
|
||||||
/* define if matrix has ghost */
|
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||||
//#define MATRIX_HAS_GHOST
|
|
||||||
|
|
||||||
/* Set 0 if debouncing isn't needed */
|
|
||||||
#define DEBOUNCE 5
|
#define DEBOUNCE 5
|
||||||
|
|
||||||
|
/* define if matrix has ghost (lacks anti-ghosting diodes) */
|
||||||
|
//#define MATRIX_HAS_GHOST
|
||||||
|
|
||||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||||
#define LOCKING_SUPPORT_ENABLE
|
#define LOCKING_SUPPORT_ENABLE
|
||||||
/* Locking resynchronize hack */
|
/* Locking resynchronize hack */
|
||||||
#define LOCKING_RESYNC_ENABLE
|
#define LOCKING_RESYNC_ENABLE
|
||||||
|
|
||||||
/* Backlight configuration
|
|
||||||
*/
|
|
||||||
#define BACKLIGHT_LEVELS 4
|
|
||||||
|
|
||||||
/* Underlight configuration
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define RGB_DI_PIN E2
|
|
||||||
#define RGBLIGHT_ANIMATIONS
|
|
||||||
#define RGBLED_NUM 8 // Number of LEDs
|
|
||||||
#define RGBLIGHT_HUE_STEP 10
|
|
||||||
#define RGBLIGHT_SAT_STEP 17
|
|
||||||
#define RGBLIGHT_VAL_STEP 17
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Feature disable options
|
* Feature disable options
|
||||||
* These options are also useful to firmware size reduction.
|
* These options are also useful to firmware size reduction.
|
||||||
@@ -86,7 +108,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
//#define NO_ACTION_LAYER
|
//#define NO_ACTION_LAYER
|
||||||
//#define NO_ACTION_TAPPING
|
//#define NO_ACTION_TAPPING
|
||||||
//#define NO_ACTION_ONESHOT
|
//#define NO_ACTION_ONESHOT
|
||||||
//#define NO_ACTION_MACRO
|
|
||||||
//#define NO_ACTION_FUNCTION
|
|
||||||
|
|
||||||
#endif
|
/* disable these deprecated features by default */
|
||||||
|
#define NO_ACTION_MACRO
|
||||||
|
#define NO_ACTION_FUNCTION
|
||||||
|
|
||||||
|
/* Bootmagic Lite key configuration */
|
||||||
|
//#define BOOTMAGIC_LITE_ROW 0
|
||||||
|
//#define BOOTMAGIC_LITE_COLUMN 0
|
||||||
+357
-24
@@ -1,27 +1,360 @@
|
|||||||
{
|
{
|
||||||
"keyboard_name": "AMJ60",
|
"keyboard_name": "AMJ60",
|
||||||
"url": "",
|
"url": "",
|
||||||
"maintainer": "qmk",
|
"maintainer": "qmk",
|
||||||
"width": 15,
|
"width": 15,
|
||||||
"height": 5,
|
"height": 5,
|
||||||
"layouts": {
|
"layouts": {
|
||||||
"LAYOUT": {
|
"LAYOUT_all": {
|
||||||
"layout": [{"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k03", "x":3, "y":0}, {"label":"k04", "x":4, "y":0}, {"label":"k05", "x":5, "y":0}, {"label":"k06", "x":6, "y":0}, {"label":"k07", "x":7, "y":0}, {"label":"k08", "x":8, "y":0}, {"label":"k09", "x":9, "y":0}, {"label":"k0a", "x":10, "y":0}, {"label":"k0b", "x":11, "y":0}, {"label":"k0c", "x":12, "y":0}, {"label":"k0d", "x":13, "y":0}, {"label":"k49", "x":14, "y":0}, {"label":"k10", "x":0, "y":1, "w":1.5}, {"label":"k11", "x":1.5, "y":1}, {"label":"k12", "x":2.5, "y":1}, {"label":"k13", "x":3.5, "y":1}, {"label":"k14", "x":4.5, "y":1}, {"label":"k15", "x":5.5, "y":1}, {"label":"k16", "x":6.5, "y":1}, {"label":"k17", "x":7.5, "y":1}, {"label":"k18", "x":8.5, "y":1}, {"label":"k19", "x":9.5, "y":1}, {"label":"k1a", "x":10.5, "y":1}, {"label":"k1b", "x":11.5, "y":1}, {"label":"k1c", "x":12.5, "y":1}, {"label":"k1d", "x":13.5, "y":1, "w":1.5}, {"label":"k20", "x":0, "y":2, "w":1.75}, {"label":"k21", "x":1.75, "y":2}, {"label":"k22", "x":2.75, "y":2}, {"label":"k23", "x":3.75, "y":2}, {"label":"k24", "x":4.75, "y":2}, {"label":"k25", "x":5.75, "y":2}, {"label":"k26", "x":6.75, "y":2}, {"label":"k27", "x":7.75, "y":2}, {"label":"k28", "x":8.75, "y":2}, {"label":"k29", "x":9.75, "y":2}, {"label":"k2a", "x":10.75, "y":2}, {"label":"k2b", "x":11.75, "y":2}, {"label":"k2c", "x":12.75, "y":2}, {"label":"k2d", "x":13.75, "y":2, "w":1.25}, {"label":"k30", "x":0, "y":3, "w":1.25}, {"label":"k31", "x":1.25, "y":3}, {"label":"k32", "x":2.25, "y":3}, {"label":"k33", "x":3.25, "y":3}, {"label":"k34", "x":4.25, "y":3}, {"label":"k35", "x":5.25, "y":3}, {"label":"k36", "x":6.25, "y":3}, {"label":"k37", "x":7.25, "y":3}, {"label":"k38", "x":8.25, "y":3}, {"label":"k39", "x":9.25, "y":3}, {"label":"k3a", "x":10.25, "y":3}, {"label":"k3b", "x":11.25, "y":3}, {"label":"k3c", "x":12.25, "y":3, "w":1.75}, {"label":"k3d", "x":14, "y":3}, {"label":"k40", "x":0, "y":4, "w":1.25}, {"label":"k41", "x":1.25, "y":4, "w":1.25}, {"label":"k42", "x":2.5, "y":4, "w":1.25}, {"label":"k45", "x":3.75, "y":4, "w":6.25}, {"label":"k4a", "x":10, "y":4, "w":1.25}, {"label":"k4b", "x":11.25, "y":4, "w":1.25}, {"label":"k4c", "x":12.5, "y":4, "w":1.25}, {"label":"k4d", "x":13.75, "y":4, "w":1.25}]
|
"layout": [
|
||||||
},
|
{"label":"k00", "x":0, "y":0},
|
||||||
"LAYOUT_60_ansi": {
|
{"label":"k01", "x":1, "y":0},
|
||||||
"layout": [{"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k03", "x":3, "y":0}, {"label":"k04", "x":4, "y":0}, {"label":"k05", "x":5, "y":0}, {"label":"k06", "x":6, "y":0}, {"label":"k07", "x":7, "y":0}, {"label":"k08", "x":8, "y":0}, {"label":"k09", "x":9, "y":0}, {"label":"k0a", "x":10, "y":0}, {"label":"k0b", "x":11, "y":0}, {"label":"k0c", "x":12, "y":0}, {"label":"k0d", "x":13, "y":0, "w":2}, {"label":"k10", "x":0, "y":1, "w":1.5}, {"label":"k11", "x":1.5, "y":1}, {"label":"k12", "x":2.5, "y":1}, {"label":"k13", "x":3.5, "y":1}, {"label":"k14", "x":4.5, "y":1}, {"label":"k15", "x":5.5, "y":1}, {"label":"k16", "x":6.5, "y":1}, {"label":"k17", "x":7.5, "y":1}, {"label":"k18", "x":8.5, "y":1}, {"label":"k19", "x":9.5, "y":1}, {"label":"k1a", "x":10.5, "y":1}, {"label":"k1b", "x":11.5, "y":1}, {"label":"k1c", "x":12.5, "y":1}, {"label":"k1d", "x":13.5, "y":1, "w":1.5}, {"label":"k20", "x":0, "y":2, "w":1.75}, {"label":"k21", "x":1.75, "y":2}, {"label":"k22", "x":2.75, "y":2}, {"label":"k23", "x":3.75, "y":2}, {"label":"k24", "x":4.75, "y":2}, {"label":"k25", "x":5.75, "y":2}, {"label":"k26", "x":6.75, "y":2}, {"label":"k27", "x":7.75, "y":2}, {"label":"k28", "x":8.75, "y":2}, {"label":"k29", "x":9.75, "y":2}, {"label":"k2a", "x":10.75, "y":2}, {"label":"k2b", "x":11.75, "y":2}, {"label":"k2d", "x":12.75, "y":2, "w":2.25}, {"label":"k30", "x":0, "y":3, "w":2.25}, {"label":"k32", "x":2.25, "y":3}, {"label":"k33", "x":3.25, "y":3}, {"label":"k34", "x":4.25, "y":3}, {"label":"k35", "x":5.25, "y":3}, {"label":"k36", "x":6.25, "y":3}, {"label":"k37", "x":7.25, "y":3}, {"label":"k38", "x":8.25, "y":3}, {"label":"k39", "x":9.25, "y":3}, {"label":"k3a", "x":10.25, "y":3}, {"label":"k3b", "x":11.25, "y":3}, {"label":"k3d", "x":12.25, "y":3, "w":2.75}, {"label":"k40", "x":0, "y":4, "w":1.25}, {"label":"k41", "x":1.25, "y":4, "w":1.25}, {"label":"k42", "x":2.5, "y":4, "w":1.25}, {"label":"k45", "x":3.75, "y":4, "w":6.25}, {"label":"k4a", "x":10, "y":4, "w":1.25}, {"label":"k4b", "x":11.25, "y":4, "w":1.25}, {"label":"k4c", "x":12.5, "y":4, "w":1.25}, {"label":"k4d", "x":13.75, "y":4, "w":1.25}]
|
{"label":"k02", "x":2, "y":0},
|
||||||
},
|
{"label":"k03", "x":3, "y":0},
|
||||||
"LAYOUT_hhkb": {
|
{"label":"k04", "x":4, "y":0},
|
||||||
"layout": [{"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k03", "x":3, "y":0}, {"label":"k04", "x":4, "y":0}, {"label":"k05", "x":5, "y":0}, {"label":"k06", "x":6, "y":0}, {"label":"k07", "x":7, "y":0}, {"label":"k08", "x":8, "y":0}, {"label":"k09", "x":9, "y":0}, {"label":"k0a", "x":10, "y":0}, {"label":"k0b", "x":11, "y":0}, {"label":"k0c", "x":12, "y":0}, {"label":"k0d", "x":13, "y":0}, {"label":"k49", "x":14, "y":0}, {"label":"k10", "x":0, "y":1, "w":1.5}, {"label":"k11", "x":1.5, "y":1}, {"label":"k12", "x":2.5, "y":1}, {"label":"k13", "x":3.5, "y":1}, {"label":"k14", "x":4.5, "y":1}, {"label":"k15", "x":5.5, "y":1}, {"label":"k16", "x":6.5, "y":1}, {"label":"k17", "x":7.5, "y":1}, {"label":"k18", "x":8.5, "y":1}, {"label":"k19", "x":9.5, "y":1}, {"label":"k1a", "x":10.5, "y":1}, {"label":"k1b", "x":11.5, "y":1}, {"label":"k1c", "x":12.5, "y":1}, {"label":"k1d", "x":13.5, "y":1, "w":1.5}, {"label":"k20", "x":0, "y":2, "w":1.75}, {"label":"k21", "x":1.75, "y":2}, {"label":"k22", "x":2.75, "y":2}, {"label":"k23", "x":3.75, "y":2}, {"label":"k24", "x":4.75, "y":2}, {"label":"k25", "x":5.75, "y":2}, {"label":"k26", "x":6.75, "y":2}, {"label":"k27", "x":7.75, "y":2}, {"label":"k28", "x":8.75, "y":2}, {"label":"k29", "x":9.75, "y":2}, {"label":"k2a", "x":10.75, "y":2}, {"label":"k2b", "x":11.75, "y":2}, {"label":"k2d", "x":12.75, "y":2, "w":2.25}, {"label":"k30", "x":0, "y":3, "w":2.25}, {"label":"k32", "x":2.25, "y":3}, {"label":"k33", "x":3.25, "y":3}, {"label":"k34", "x":4.25, "y":3}, {"label":"k35", "x":5.25, "y":3}, {"label":"k36", "x":6.25, "y":3}, {"label":"k37", "x":7.25, "y":3}, {"label":"k38", "x":8.25, "y":3}, {"label":"k39", "x":9.25, "y":3}, {"label":"k3a", "x":10.25, "y":3}, {"label":"k3b", "x":11.25, "y":3}, {"label":"k3d", "x":12.25, "y":3, "w":1.75}, {"label":"k3c", "x":14, "y":3}, {"label":"k40", "x":0, "y":4, "w":1.25}, {"label":"k41", "x":1.25, "y":4, "w":1.25}, {"label":"k42", "x":2.5, "y":4, "w":1.25}, {"label":"k45", "x":3.75, "y":4, "w":6.25}, {"label":"k4a", "x":10, "y":4, "w":1.25}, {"label":"k4b", "x":11.25, "y":4, "w":1.25}, {"label":"k4c", "x":12.5, "y":4, "w":1.25}, {"label":"k4d", "x":13.75, "y":4, "w":1.25}]
|
{"label":"k05", "x":5, "y":0},
|
||||||
},
|
{"label":"k06", "x":6, "y":0},
|
||||||
"LAYOUT_iso": {
|
{"label":"k07", "x":7, "y":0},
|
||||||
"layout": [{"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k03", "x":3, "y":0}, {"label":"k04", "x":4, "y":0}, {"label":"k05", "x":5, "y":0}, {"label":"k06", "x":6, "y":0}, {"label":"k07", "x":7, "y":0}, {"label":"k08", "x":8, "y":0}, {"label":"k09", "x":9, "y":0}, {"label":"k0a", "x":10, "y":0}, {"label":"k0b", "x":11, "y":0}, {"label":"k0c", "x":12, "y":0}, {"label":"k0d", "x":13, "y":0, "w":2}, {"label":"k10", "x":0, "y":1, "w":1.5}, {"label":"k11", "x":1.5, "y":1}, {"label":"k12", "x":2.5, "y":1}, {"label":"k13", "x":3.5, "y":1}, {"label":"k14", "x":4.5, "y":1}, {"label":"k15", "x":5.5, "y":1}, {"label":"k16", "x":6.5, "y":1}, {"label":"k17", "x":7.5, "y":1}, {"label":"k18", "x":8.5, "y":1}, {"label":"k19", "x":9.5, "y":1}, {"label":"k1a", "x":10.5, "y":1}, {"label":"k1b", "x":11.5, "y":1}, {"label":"k1c", "x":12.5, "y":1}, {"label":"k1d", "x":13.5, "y":1, "w":1.5}, {"label":"k20", "x":0, "y":2, "w":1.75}, {"label":"k21", "x":1.75, "y":2}, {"label":"k22", "x":2.75, "y":2}, {"label":"k23", "x":3.75, "y":2}, {"label":"k24", "x":4.75, "y":2}, {"label":"k25", "x":5.75, "y":2}, {"label":"k26", "x":6.75, "y":2}, {"label":"k27", "x":7.75, "y":2}, {"label":"k28", "x":8.75, "y":2}, {"label":"k29", "x":9.75, "y":2}, {"label":"k2a", "x":10.75, "y":2}, {"label":"k2b", "x":11.75, "y":2}, {"label":"k2c", "x":12.75, "y":2}, {"label":"k2d", "x":13.75, "y":2, "w":1.25}, {"label":"k30", "x":0, "y":3, "w":1.25}, {"label":"k31", "x":1.25, "y":3}, {"label":"k32", "x":2.25, "y":3}, {"label":"k33", "x":3.25, "y":3}, {"label":"k34", "x":4.25, "y":3}, {"label":"k35", "x":5.25, "y":3}, {"label":"k36", "x":6.25, "y":3}, {"label":"k37", "x":7.25, "y":3}, {"label":"k38", "x":8.25, "y":3}, {"label":"k39", "x":9.25, "y":3}, {"label":"k3a", "x":10.25, "y":3}, {"label":"k3b", "x":11.25, "y":3}, {"label":"k3d", "x":12.25, "y":3, "w":2.75}, {"label":"k40", "x":0, "y":4, "w":1.25}, {"label":"k41", "x":1.25, "y":4, "w":1.25}, {"label":"k42", "x":2.5, "y":4, "w":1.25}, {"label":"k45", "x":3.75, "y":4, "w":6.25}, {"label":"k4a", "x":10, "y":4, "w":1.25}, {"label":"k4b", "x":11.25, "y":4, "w":1.25}, {"label":"k4c", "x":12.5, "y":4, "w":1.25}, {"label":"k4d", "x":13.75, "y":4, "w":1.25}]
|
{"label":"k08", "x":8, "y":0},
|
||||||
},
|
{"label":"k09", "x":9, "y":0},
|
||||||
"LAYOUT_iso_splitrshift": {
|
{"label":"k0a", "x":10, "y":0},
|
||||||
"layout": [{"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k03", "x":3, "y":0}, {"label":"k04", "x":4, "y":0}, {"label":"k05", "x":5, "y":0}, {"label":"k06", "x":6, "y":0}, {"label":"k07", "x":7, "y":0}, {"label":"k08", "x":8, "y":0}, {"label":"k09", "x":9, "y":0}, {"label":"k0a", "x":10, "y":0}, {"label":"k0b", "x":11, "y":0}, {"label":"k0c", "x":12, "y":0}, {"label":"k0d", "x":13, "y":0, "w":2}, {"label":"k10", "x":0, "y":1, "w":1.5}, {"label":"k11", "x":1.5, "y":1}, {"label":"k12", "x":2.5, "y":1}, {"label":"k13", "x":3.5, "y":1}, {"label":"k14", "x":4.5, "y":1}, {"label":"k15", "x":5.5, "y":1}, {"label":"k16", "x":6.5, "y":1}, {"label":"k17", "x":7.5, "y":1}, {"label":"k18", "x":8.5, "y":1}, {"label":"k19", "x":9.5, "y":1}, {"label":"k1a", "x":10.5, "y":1}, {"label":"k1b", "x":11.5, "y":1}, {"label":"k1c", "x":12.5, "y":1}, {"label":"k1d", "x":13.5, "y":1, "w":1.5}, {"label":"k20", "x":0, "y":2, "w":1.75}, {"label":"k21", "x":1.75, "y":2}, {"label":"k22", "x":2.75, "y":2}, {"label":"k23", "x":3.75, "y":2}, {"label":"k24", "x":4.75, "y":2}, {"label":"k25", "x":5.75, "y":2}, {"label":"k26", "x":6.75, "y":2}, {"label":"k27", "x":7.75, "y":2}, {"label":"k28", "x":8.75, "y":2}, {"label":"k29", "x":9.75, "y":2}, {"label":"k2a", "x":10.75, "y":2}, {"label":"k2b", "x":11.75, "y":2}, {"label":"k2c", "x":12.75, "y":2}, {"label":"k2d", "x":13.75, "y":2, "w":1.25}, {"label":"k30", "x":0, "y":3, "w":1.25}, {"label":"k31", "x":1.25, "y":3}, {"label":"k32", "x":2.25, "y":3}, {"label":"k33", "x":3.25, "y":3}, {"label":"k34", "x":4.25, "y":3}, {"label":"k35", "x":5.25, "y":3}, {"label":"k36", "x":6.25, "y":3}, {"label":"k37", "x":7.25, "y":3}, {"label":"k38", "x":8.25, "y":3}, {"label":"k39", "x":9.25, "y":3}, {"label":"k3a", "x":10.25, "y":3}, {"label":"k3b", "x":11.25, "y":3}, {"label":"k3d", "x":12.25, "y":3, "w":1.75}, {"label":"k3c", "x":14, "y":3}, {"label":"k40", "x":0, "y":4, "w":1.25}, {"label":"k41", "x":1.25, "y":4, "w":1.25}, {"label":"k42", "x":2.5, "y":4, "w":1.25}, {"label":"k45", "x":3.75, "y":4, "w":6.25}, {"label":"k4a", "x":10, "y":4, "w":1.25}, {"label":"k4b", "x":11.25, "y":4, "w":1.25}, {"label":"k4c", "x":12.5, "y":4, "w":1.25}, {"label":"k4d", "x":13.75, "y":4, "w":1.25}]
|
{"label":"k0b", "x":11, "y":0},
|
||||||
},
|
{"label":"k0c", "x":12, "y":0},
|
||||||
"LAYOUT_max": {
|
{"label":"k0d", "x":13, "y":0},
|
||||||
"layout": [{"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k03", "x":3, "y":0}, {"label":"k04", "x":4, "y":0}, {"label":"k05", "x":5, "y":0}, {"label":"k06", "x":6, "y":0}, {"label":"k07", "x":7, "y":0}, {"label":"k08", "x":8, "y":0}, {"label":"k09", "x":9, "y":0}, {"label":"k0a", "x":10, "y":0}, {"label":"k0b", "x":11, "y":0}, {"label":"k0c", "x":12, "y":0}, {"label":"k0d", "x":13, "y":0}, {"label":"k49", "x":14, "y":0}, {"label":"k10", "x":0, "y":1, "w":1.5}, {"label":"k11", "x":1.5, "y":1}, {"label":"k12", "x":2.5, "y":1}, {"label":"k13", "x":3.5, "y":1}, {"label":"k14", "x":4.5, "y":1}, {"label":"k15", "x":5.5, "y":1}, {"label":"k16", "x":6.5, "y":1}, {"label":"k17", "x":7.5, "y":1}, {"label":"k18", "x":8.5, "y":1}, {"label":"k19", "x":9.5, "y":1}, {"label":"k1a", "x":10.5, "y":1}, {"label":"k1b", "x":11.5, "y":1}, {"label":"k1c", "x":12.5, "y":1}, {"label":"k1d", "x":13.5, "y":1, "w":1.5}, {"label":"k20", "x":0, "y":2, "w":1.75}, {"label":"k21", "x":1.75, "y":2}, {"label":"k22", "x":2.75, "y":2}, {"label":"k23", "x":3.75, "y":2}, {"label":"k24", "x":4.75, "y":2}, {"label":"k25", "x":5.75, "y":2}, {"label":"k26", "x":6.75, "y":2}, {"label":"k27", "x":7.75, "y":2}, {"label":"k28", "x":8.75, "y":2}, {"label":"k29", "x":9.75, "y":2}, {"label":"k2a", "x":10.75, "y":2}, {"label":"k2b", "x":11.75, "y":2}, {"label":"k2d", "x":12.75, "y":2, "w":2.25}, {"label":"k30", "x":0, "y":3, "w":1.25}, {"label":"k31", "x":1.25, "y":3}, {"label":"k32", "x":2.25, "y":3}, {"label":"k33", "x":3.25, "y":3}, {"label":"k34", "x":4.25, "y":3}, {"label":"k35", "x":5.25, "y":3}, {"label":"k36", "x":6.25, "y":3}, {"label":"k37", "x":7.25, "y":3}, {"label":"k38", "x":8.25, "y":3}, {"label":"k39", "x":9.25, "y":3}, {"label":"k3a", "x":10.25, "y":3}, {"label":"k3b", "x":11.25, "y":3}, {"label":"k3d", "x":12.25, "y":3, "w":1.75}, {"label":"k3c", "x":14, "y":3}, {"label":"k40", "x":0, "y":4, "w":1.25}, {"label":"k41", "x":1.25, "y":4, "w":1.25}, {"label":"k42", "x":2.5, "y":4, "w":1.25}, {"label":"k45", "x":3.75, "y":4, "w":6.25}, {"label":"k4a", "x":10, "y":4, "w":1.25}, {"label":"k4b", "x":11.25, "y":4, "w":1.25}, {"label":"k4c", "x":12.5, "y":4, "w":1.25}, {"label":"k4d", "x":13.75, "y":4, "w":1.25}]
|
{"label":"k49", "x":14, "y":0},
|
||||||
|
|
||||||
|
{"label":"k10", "x":0, "y":1, "w":1.5},
|
||||||
|
{"label":"k11", "x":1.5, "y":1},
|
||||||
|
{"label":"k12", "x":2.5, "y":1},
|
||||||
|
{"label":"k13", "x":3.5, "y":1},
|
||||||
|
{"label":"k14", "x":4.5, "y":1},
|
||||||
|
{"label":"k15", "x":5.5, "y":1},
|
||||||
|
{"label":"k16", "x":6.5, "y":1},
|
||||||
|
{"label":"k17", "x":7.5, "y":1},
|
||||||
|
{"label":"k18", "x":8.5, "y":1},
|
||||||
|
{"label":"k19", "x":9.5, "y":1},
|
||||||
|
{"label":"k1a", "x":10.5, "y":1},
|
||||||
|
{"label":"k1b", "x":11.5, "y":1},
|
||||||
|
{"label":"k1c", "x":12.5, "y":1},
|
||||||
|
{"label":"k1d", "x":13.5, "y":1, "w":1.5},
|
||||||
|
|
||||||
|
{"label":"k20", "x":0, "y":2, "w":1.75},
|
||||||
|
{"label":"k21", "x":1.75, "y":2},
|
||||||
|
{"label":"k22", "x":2.75, "y":2},
|
||||||
|
{"label":"k23", "x":3.75, "y":2},
|
||||||
|
{"label":"k24", "x":4.75, "y":2},
|
||||||
|
{"label":"k25", "x":5.75, "y":2},
|
||||||
|
{"label":"k26", "x":6.75, "y":2},
|
||||||
|
{"label":"k27", "x":7.75, "y":2},
|
||||||
|
{"label":"k28", "x":8.75, "y":2},
|
||||||
|
{"label":"k29", "x":9.75, "y":2},
|
||||||
|
{"label":"k2a", "x":10.75, "y":2},
|
||||||
|
{"label":"k2b", "x":11.75, "y":2},
|
||||||
|
{"label":"k2c", "x":12.75, "y":2},
|
||||||
|
{"label":"k2d", "x":13.75, "y":2, "w":1.25},
|
||||||
|
|
||||||
|
{"label":"k30", "x":0, "y":3, "w":1.25},
|
||||||
|
{"label":"k31", "x":1.25, "y":3},
|
||||||
|
{"label":"k32", "x":2.25, "y":3},
|
||||||
|
{"label":"k33", "x":3.25, "y":3},
|
||||||
|
{"label":"k34", "x":4.25, "y":3},
|
||||||
|
{"label":"k35", "x":5.25, "y":3},
|
||||||
|
{"label":"k36", "x":6.25, "y":3},
|
||||||
|
{"label":"k37", "x":7.25, "y":3},
|
||||||
|
{"label":"k38", "x":8.25, "y":3},
|
||||||
|
{"label":"k39", "x":9.25, "y":3},
|
||||||
|
{"label":"k3a", "x":10.25, "y":3},
|
||||||
|
{"label":"k3b", "x":11.25, "y":3},
|
||||||
|
{"label":"k3d", "x":12.25, "y":3, "w":1.75},
|
||||||
|
{"label":"k3c", "x":14, "y":3},
|
||||||
|
|
||||||
|
{"label":"k40", "x":0, "y":4, "w":1.25},
|
||||||
|
{"label":"k41", "x":1.25, "y":4, "w":1.25},
|
||||||
|
{"label":"k42", "x":2.5, "y":4, "w":1.25},
|
||||||
|
{"label":"k45", "x":3.75, "y":4, "w":6.25},
|
||||||
|
{"label":"k4a", "x":10, "y":4, "w":1.25},
|
||||||
|
{"label":"k4b", "x":11.25, "y":4, "w":1.25},
|
||||||
|
{"label":"k4c", "x":12.5, "y":4, "w":1.25},
|
||||||
|
{"label":"k4d", "x":13.75, "y":4, "w":1.25}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"LAYOUT_60_ansi": {
|
||||||
|
"layout": [
|
||||||
|
{"label":"k00", "x":0, "y":0},
|
||||||
|
{"label":"k01", "x":1, "y":0},
|
||||||
|
{"label":"k02", "x":2, "y":0},
|
||||||
|
{"label":"k03", "x":3, "y":0},
|
||||||
|
{"label":"k04", "x":4, "y":0},
|
||||||
|
{"label":"k05", "x":5, "y":0},
|
||||||
|
{"label":"k06", "x":6, "y":0},
|
||||||
|
{"label":"k07", "x":7, "y":0},
|
||||||
|
{"label":"k08", "x":8, "y":0},
|
||||||
|
{"label":"k09", "x":9, "y":0},
|
||||||
|
{"label":"k0a", "x":10, "y":0},
|
||||||
|
{"label":"k0b", "x":11, "y":0},
|
||||||
|
{"label":"k0c", "x":12, "y":0},
|
||||||
|
{"label":"k0d", "x":13, "y":0, "w":2},
|
||||||
|
|
||||||
|
{"label":"k10", "x":0, "y":1, "w":1.5},
|
||||||
|
{"label":"k11", "x":1.5, "y":1},
|
||||||
|
{"label":"k12", "x":2.5, "y":1},
|
||||||
|
{"label":"k13", "x":3.5, "y":1},
|
||||||
|
{"label":"k14", "x":4.5, "y":1},
|
||||||
|
{"label":"k15", "x":5.5, "y":1},
|
||||||
|
{"label":"k16", "x":6.5, "y":1},
|
||||||
|
{"label":"k17", "x":7.5, "y":1},
|
||||||
|
{"label":"k18", "x":8.5, "y":1},
|
||||||
|
{"label":"k19", "x":9.5, "y":1},
|
||||||
|
{"label":"k1a", "x":10.5, "y":1},
|
||||||
|
{"label":"k1b", "x":11.5, "y":1},
|
||||||
|
{"label":"k1c", "x":12.5, "y":1},
|
||||||
|
{"label":"k1d", "x":13.5, "y":1, "w":1.5},
|
||||||
|
|
||||||
|
{"label":"k20", "x":0, "y":2, "w":1.75},
|
||||||
|
{"label":"k21", "x":1.75, "y":2},
|
||||||
|
{"label":"k22", "x":2.75, "y":2},
|
||||||
|
{"label":"k23", "x":3.75, "y":2},
|
||||||
|
{"label":"k24", "x":4.75, "y":2},
|
||||||
|
{"label":"k25", "x":5.75, "y":2},
|
||||||
|
{"label":"k26", "x":6.75, "y":2},
|
||||||
|
{"label":"k27", "x":7.75, "y":2},
|
||||||
|
{"label":"k28", "x":8.75, "y":2},
|
||||||
|
{"label":"k29", "x":9.75, "y":2},
|
||||||
|
{"label":"k2a", "x":10.75, "y":2},
|
||||||
|
{"label":"k2b", "x":11.75, "y":2},
|
||||||
|
{"label":"k2d", "x":12.75, "y":2, "w":2.25},
|
||||||
|
|
||||||
|
{"label":"k30", "x":0, "y":3, "w":2.25},
|
||||||
|
{"label":"k32", "x":2.25, "y":3},
|
||||||
|
{"label":"k33", "x":3.25, "y":3},
|
||||||
|
{"label":"k34", "x":4.25, "y":3},
|
||||||
|
{"label":"k35", "x":5.25, "y":3},
|
||||||
|
{"label":"k36", "x":6.25, "y":3},
|
||||||
|
{"label":"k37", "x":7.25, "y":3},
|
||||||
|
{"label":"k38", "x":8.25, "y":3},
|
||||||
|
{"label":"k39", "x":9.25, "y":3},
|
||||||
|
{"label":"k3a", "x":10.25, "y":3},
|
||||||
|
{"label":"k3b", "x":11.25, "y":3},
|
||||||
|
{"label":"k3d", "x":12.25, "y":3, "w":2.75},
|
||||||
|
|
||||||
|
{"label":"k40", "x":0, "y":4, "w":1.25},
|
||||||
|
{"label":"k41", "x":1.25, "y":4, "w":1.25},
|
||||||
|
{"label":"k42", "x":2.5, "y":4, "w":1.25},
|
||||||
|
{"label":"k45", "x":3.75, "y":4, "w":6.25},
|
||||||
|
{"label":"k4a", "x":10, "y":4, "w":1.25},
|
||||||
|
{"label":"k4b", "x":11.25, "y":4, "w":1.25},
|
||||||
|
{"label":"k4c", "x":12.5, "y":4, "w":1.25},
|
||||||
|
{"label":"k4d", "x":13.75, "y":4, "w":1.25}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"LAYOUT_60_hhkb": {
|
||||||
|
"layout": [
|
||||||
|
{"label":"k00", "x":0, "y":0},
|
||||||
|
{"label":"k01", "x":1, "y":0},
|
||||||
|
{"label":"k02", "x":2, "y":0},
|
||||||
|
{"label":"k03", "x":3, "y":0},
|
||||||
|
{"label":"k04", "x":4, "y":0},
|
||||||
|
{"label":"k05", "x":5, "y":0},
|
||||||
|
{"label":"k06", "x":6, "y":0},
|
||||||
|
{"label":"k07", "x":7, "y":0},
|
||||||
|
{"label":"k08", "x":8, "y":0},
|
||||||
|
{"label":"k09", "x":9, "y":0},
|
||||||
|
{"label":"k0a", "x":10, "y":0},
|
||||||
|
{"label":"k0b", "x":11, "y":0},
|
||||||
|
{"label":"k0c", "x":12, "y":0},
|
||||||
|
{"label":"k0d", "x":13, "y":0},
|
||||||
|
{"label":"k49", "x":14, "y":0},
|
||||||
|
|
||||||
|
{"label":"k10", "x":0, "y":1, "w":1.5},
|
||||||
|
{"label":"k11", "x":1.5, "y":1},
|
||||||
|
{"label":"k12", "x":2.5, "y":1},
|
||||||
|
{"label":"k13", "x":3.5, "y":1},
|
||||||
|
{"label":"k14", "x":4.5, "y":1},
|
||||||
|
{"label":"k15", "x":5.5, "y":1},
|
||||||
|
{"label":"k16", "x":6.5, "y":1},
|
||||||
|
{"label":"k17", "x":7.5, "y":1},
|
||||||
|
{"label":"k18", "x":8.5, "y":1},
|
||||||
|
{"label":"k19", "x":9.5, "y":1},
|
||||||
|
{"label":"k1a", "x":10.5, "y":1},
|
||||||
|
{"label":"k1b", "x":11.5, "y":1},
|
||||||
|
{"label":"k1c", "x":12.5, "y":1},
|
||||||
|
{"label":"k1d", "x":13.5, "y":1, "w":1.5},
|
||||||
|
|
||||||
|
{"label":"k20", "x":0, "y":2, "w":1.75},
|
||||||
|
{"label":"k21", "x":1.75, "y":2},
|
||||||
|
{"label":"k22", "x":2.75, "y":2},
|
||||||
|
{"label":"k23", "x":3.75, "y":2},
|
||||||
|
{"label":"k24", "x":4.75, "y":2},
|
||||||
|
{"label":"k25", "x":5.75, "y":2},
|
||||||
|
{"label":"k26", "x":6.75, "y":2},
|
||||||
|
{"label":"k27", "x":7.75, "y":2},
|
||||||
|
{"label":"k28", "x":8.75, "y":2},
|
||||||
|
{"label":"k29", "x":9.75, "y":2},
|
||||||
|
{"label":"k2a", "x":10.75, "y":2},
|
||||||
|
{"label":"k2b", "x":11.75, "y":2},
|
||||||
|
{"label":"k2d", "x":12.75, "y":2, "w":2.25},
|
||||||
|
|
||||||
|
{"label":"k30", "x":0, "y":3, "w":2.25},
|
||||||
|
{"label":"k32", "x":2.25, "y":3},
|
||||||
|
{"label":"k33", "x":3.25, "y":3},
|
||||||
|
{"label":"k34", "x":4.25, "y":3},
|
||||||
|
{"label":"k35", "x":5.25, "y":3},
|
||||||
|
{"label":"k36", "x":6.25, "y":3},
|
||||||
|
{"label":"k37", "x":7.25, "y":3},
|
||||||
|
{"label":"k38", "x":8.25, "y":3},
|
||||||
|
{"label":"k39", "x":9.25, "y":3},
|
||||||
|
{"label":"k3a", "x":10.25, "y":3},
|
||||||
|
{"label":"k3b", "x":11.25, "y":3},
|
||||||
|
{"label":"k3d", "x":12.25, "y":3, "w":1.75},
|
||||||
|
{"label":"k3c", "x":14, "y":3},
|
||||||
|
|
||||||
|
{"label":"k41", "x":1.5, "y":4},
|
||||||
|
{"label":"k42", "x":2.5, "y":4, "w":1.5},
|
||||||
|
{"label":"k45", "x":4, "y":4, "w":7},
|
||||||
|
{"label":"k4b", "x":11, "y":4, "w":1.5},
|
||||||
|
{"label":"k4c", "x":12.5, "y":4}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"LAYOUT_60_iso": {
|
||||||
|
"layout": [
|
||||||
|
{"label":"k00", "x":0, "y":0},
|
||||||
|
{"label":"k01", "x":1, "y":0},
|
||||||
|
{"label":"k02", "x":2, "y":0},
|
||||||
|
{"label":"k03", "x":3, "y":0},
|
||||||
|
{"label":"k04", "x":4, "y":0},
|
||||||
|
{"label":"k05", "x":5, "y":0},
|
||||||
|
{"label":"k06", "x":6, "y":0},
|
||||||
|
{"label":"k07", "x":7, "y":0},
|
||||||
|
{"label":"k08", "x":8, "y":0},
|
||||||
|
{"label":"k09", "x":9, "y":0},
|
||||||
|
{"label":"k0a", "x":10, "y":0},
|
||||||
|
{"label":"k0b", "x":11, "y":0},
|
||||||
|
{"label":"k0c", "x":12, "y":0},
|
||||||
|
{"label":"k0d", "x":13, "y":0, "w":2},
|
||||||
|
|
||||||
|
{"label":"k10", "x":0, "y":1, "w":1.5},
|
||||||
|
{"label":"k11", "x":1.5, "y":1},
|
||||||
|
{"label":"k12", "x":2.5, "y":1},
|
||||||
|
{"label":"k13", "x":3.5, "y":1},
|
||||||
|
{"label":"k14", "x":4.5, "y":1},
|
||||||
|
{"label":"k15", "x":5.5, "y":1},
|
||||||
|
{"label":"k16", "x":6.5, "y":1},
|
||||||
|
{"label":"k17", "x":7.5, "y":1},
|
||||||
|
{"label":"k18", "x":8.5, "y":1},
|
||||||
|
{"label":"k19", "x":9.5, "y":1},
|
||||||
|
{"label":"k1a", "x":10.5, "y":1},
|
||||||
|
{"label":"k1b", "x":11.5, "y":1},
|
||||||
|
{"label":"k1c", "x":12.5, "y":1},
|
||||||
|
|
||||||
|
{"label":"k20", "x":0, "y":2, "w":1.75},
|
||||||
|
{"label":"k21", "x":1.75, "y":2},
|
||||||
|
{"label":"k22", "x":2.75, "y":2},
|
||||||
|
{"label":"k23", "x":3.75, "y":2},
|
||||||
|
{"label":"k24", "x":4.75, "y":2},
|
||||||
|
{"label":"k25", "x":5.75, "y":2},
|
||||||
|
{"label":"k26", "x":6.75, "y":2},
|
||||||
|
{"label":"k27", "x":7.75, "y":2},
|
||||||
|
{"label":"k28", "x":8.75, "y":2},
|
||||||
|
{"label":"k29", "x":9.75, "y":2},
|
||||||
|
{"label":"k2a", "x":10.75, "y":2},
|
||||||
|
{"label":"k2b", "x":11.75, "y":2},
|
||||||
|
{"label":"k2c", "x":12.75, "y":2},
|
||||||
|
{"label":"k2d", "x":13.75, "y":1, "w":1.25, "h":2},
|
||||||
|
|
||||||
|
{"label":"k30", "x":0, "y":3, "w":1.25},
|
||||||
|
{"label":"k31", "x":1.25, "y":3},
|
||||||
|
{"label":"k32", "x":2.25, "y":3},
|
||||||
|
{"label":"k33", "x":3.25, "y":3},
|
||||||
|
{"label":"k34", "x":4.25, "y":3},
|
||||||
|
{"label":"k35", "x":5.25, "y":3},
|
||||||
|
{"label":"k36", "x":6.25, "y":3},
|
||||||
|
{"label":"k37", "x":7.25, "y":3},
|
||||||
|
{"label":"k38", "x":8.25, "y":3},
|
||||||
|
{"label":"k39", "x":9.25, "y":3},
|
||||||
|
{"label":"k3a", "x":10.25, "y":3},
|
||||||
|
{"label":"k3b", "x":11.25, "y":3},
|
||||||
|
{"label":"k3d", "x":12.25, "y":3, "w":2.75},
|
||||||
|
|
||||||
|
{"label":"k40", "x":0, "y":4, "w":1.25},
|
||||||
|
{"label":"k41", "x":1.25, "y":4, "w":1.25},
|
||||||
|
{"label":"k42", "x":2.5, "y":4, "w":1.25},
|
||||||
|
{"label":"k45", "x":3.75, "y":4, "w":6.25},
|
||||||
|
{"label":"k4a", "x":10, "y":4, "w":1.25},
|
||||||
|
{"label":"k4b", "x":11.25, "y":4, "w":1.25},
|
||||||
|
{"label":"k4c", "x":12.5, "y":4, "w":1.25},
|
||||||
|
{"label":"k4d", "x":13.75, "y":4, "w":1.25}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"LAYOUT_60_ansi_split_bs_rshift": {
|
||||||
|
"layout": [
|
||||||
|
{"label":"k00", "x":0, "y":0},
|
||||||
|
{"label":"k01", "x":1, "y":0},
|
||||||
|
{"label":"k02", "x":2, "y":0},
|
||||||
|
{"label":"k03", "x":3, "y":0},
|
||||||
|
{"label":"k04", "x":4, "y":0},
|
||||||
|
{"label":"k05", "x":5, "y":0},
|
||||||
|
{"label":"k06", "x":6, "y":0},
|
||||||
|
{"label":"k07", "x":7, "y":0},
|
||||||
|
{"label":"k08", "x":8, "y":0},
|
||||||
|
{"label":"k09", "x":9, "y":0},
|
||||||
|
{"label":"k0a", "x":10, "y":0},
|
||||||
|
{"label":"k0b", "x":11, "y":0},
|
||||||
|
{"label":"k0c", "x":12, "y":0},
|
||||||
|
{"label":"k0d", "x":13, "y":0},
|
||||||
|
{"label":"k49", "x":14, "y":0},
|
||||||
|
|
||||||
|
{"label":"k10", "x":0, "y":1, "w":1.5},
|
||||||
|
{"label":"k11", "x":1.5, "y":1},
|
||||||
|
{"label":"k12", "x":2.5, "y":1},
|
||||||
|
{"label":"k13", "x":3.5, "y":1},
|
||||||
|
{"label":"k14", "x":4.5, "y":1},
|
||||||
|
{"label":"k15", "x":5.5, "y":1},
|
||||||
|
{"label":"k16", "x":6.5, "y":1},
|
||||||
|
{"label":"k17", "x":7.5, "y":1},
|
||||||
|
{"label":"k18", "x":8.5, "y":1},
|
||||||
|
{"label":"k19", "x":9.5, "y":1},
|
||||||
|
{"label":"k1a", "x":10.5, "y":1},
|
||||||
|
{"label":"k1b", "x":11.5, "y":1},
|
||||||
|
{"label":"k1c", "x":12.5, "y":1},
|
||||||
|
{"label":"k1d", "x":13.5, "y":1, "w":1.5},
|
||||||
|
|
||||||
|
{"label":"k20", "x":0, "y":2, "w":1.75},
|
||||||
|
{"label":"k21", "x":1.75, "y":2},
|
||||||
|
{"label":"k22", "x":2.75, "y":2},
|
||||||
|
{"label":"k23", "x":3.75, "y":2},
|
||||||
|
{"label":"k24", "x":4.75, "y":2},
|
||||||
|
{"label":"k25", "x":5.75, "y":2},
|
||||||
|
{"label":"k26", "x":6.75, "y":2},
|
||||||
|
{"label":"k27", "x":7.75, "y":2},
|
||||||
|
{"label":"k28", "x":8.75, "y":2},
|
||||||
|
{"label":"k29", "x":9.75, "y":2},
|
||||||
|
{"label":"k2a", "x":10.75, "y":2},
|
||||||
|
{"label":"k2b", "x":11.75, "y":2},
|
||||||
|
{"label":"k2d", "x":12.75, "y":2, "w":2.25},
|
||||||
|
|
||||||
|
{"label":"k30", "x":0, "y":3, "w":2.25},
|
||||||
|
{"label":"k32", "x":2.25, "y":3},
|
||||||
|
{"label":"k33", "x":3.25, "y":3},
|
||||||
|
{"label":"k34", "x":4.25, "y":3},
|
||||||
|
{"label":"k35", "x":5.25, "y":3},
|
||||||
|
{"label":"k36", "x":6.25, "y":3},
|
||||||
|
{"label":"k37", "x":7.25, "y":3},
|
||||||
|
{"label":"k38", "x":8.25, "y":3},
|
||||||
|
{"label":"k39", "x":9.25, "y":3},
|
||||||
|
{"label":"k3a", "x":10.25, "y":3},
|
||||||
|
{"label":"k3b", "x":11.25, "y":3},
|
||||||
|
{"label":"k3d", "x":12.25, "y":3, "w":1.75},
|
||||||
|
{"label":"k3c", "x":14, "y":3},
|
||||||
|
|
||||||
|
{"label":"k40", "x":0, "y":4, "w":1.25},
|
||||||
|
{"label":"k41", "x":1.25, "y":4, "w":1.25},
|
||||||
|
{"label":"k42", "x":2.5, "y":4, "w":1.25},
|
||||||
|
{"label":"k45", "x":3.75, "y":4, "w":6.25},
|
||||||
|
{"label":"k4a", "x":10, "y":4, "w":1.25},
|
||||||
|
{"label":"k4b", "x":11.25, "y":4, "w":1.25},
|
||||||
|
{"label":"k4c", "x":12.5, "y":4, "w":1.25},
|
||||||
|
{"label":"k4d", "x":13.75, "y":4, "w":1.25}
|
||||||
|
]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@@ -1,55 +1,72 @@
|
|||||||
|
/* Copyright 2016 Toni (@toneman77)
|
||||||
|
* 2021 James Young for QMK (@noroadsleft)
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
#include QMK_KEYBOARD_H
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
// Each layer gets a name for readability, which is then used in the keymap matrix below.
|
enum layer_names {
|
||||||
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
|
_DEF,
|
||||||
// Layer names don't all need to be of the same length, obviously, and you can also skip them
|
_FN,
|
||||||
// entirely and just use numbers.
|
};
|
||||||
#define _DEF 0
|
|
||||||
#define _SPC 1
|
|
||||||
|
|
||||||
// dual-role shortcuts
|
// dual-role shortcuts
|
||||||
#define SPACEDUAL LT(_SPC, KC_SPACE)
|
#define FN_SPC LT(_FN, KC_SPC)
|
||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
/* Keymap _DEF: Default Layer
|
/* Keymap _DEF: Default Layer
|
||||||
* ,-----------------------------------------------------------.
|
* ,-----------------------------------------------------------.
|
||||||
* |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \ | ~ |
|
* |Esc| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ~ |
|
||||||
* |-----------------------------------------------------------|
|
* |-----------------------------------------------------------|
|
||||||
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| bspc|
|
* |Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Bspc|
|
||||||
* |-----------------------------------------------------------|
|
* |-----------------------------------------------------------|
|
||||||
* |Caps | A| S| D| F| G| H| J| K| L| ;| '| Return |
|
* |Caps | A | S | D | F | G | H | J | K | L | ; | ' | Return |
|
||||||
* |-----------------------------------------------------------|
|
* |-----------------------------------------------------------|
|
||||||
* |Sft | Fn0| Z| X| C| V| B| N| M| ,| .| /| Sft |Fn2|
|
* |Sft | \ | Z | X | C | V | B | N | M | , | . | / |Shift |Fn |
|
||||||
* |-----------------------------------------------------------|
|
* |-----------------------------------------------------------|
|
||||||
* |Ctrl|Win |Alt | Space/Fn0 |Alt |Win |Menu|RCtl|
|
* |Ctrl|GUI |Alt | Space/Fn |Alt |GUI | Fn |RCtl|
|
||||||
* `-----------------------------------------------------------'
|
* `-----------------------------------------------------------'
|
||||||
*/
|
*/
|
||||||
[_DEF] = LAYOUT_max(
|
[_DEF] = LAYOUT_all(
|
||||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, \
|
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV,
|
||||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, \
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
|
||||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \
|
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT,
|
||||||
KC_LSFT, F(0), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, F(1), \
|
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_LCTL, KC_LALT, KC_LGUI, SPACEDUAL, KC_RGUI, KC_RALT, KC_RCTL, F(2)),
|
KC_LCTL, KC_LGUI, KC_LALT, FN_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL
|
||||||
|
),
|
||||||
|
|
||||||
/* Keymap 1: F-and-vim Layer, modified with Space (by holding space)
|
/* Keymap 1: F-and-vim Layer, modified with Space (by holding space)
|
||||||
* ,-----------------------------------------------------------.
|
* ,-----------------------------------------------------------.
|
||||||
* |PrSc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| | |
|
* |PSc|F1 |F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12| | |
|
||||||
* |-----------------------------------------------------------|
|
* |-----------------------------------------------------------|
|
||||||
* | |Paus| Up| [ | ] | | | | ( | ) | | | | Del |
|
* | |Pau| Up| | | | | | ( | ) | | | | Del |
|
||||||
* |-----------------------------------------------------------|
|
* |-----------------------------------------------------------|
|
||||||
* | |Lft|Dwn|Rgt| | |Left|Down|Right|Up| | | PLAY |
|
* | |Lft|Dwn|Rgt| | |Lft|Dwn|Up |Rgh| | | Play |
|
||||||
* |-----------------------------------------------------------|
|
* |-----------------------------------------------------------|
|
||||||
* | | | | | < | > | |M0 | | | | | Vol+ | |
|
* | | | | | | |Spc| | | | | | Vol+ | |
|
||||||
* |-----------------------------------------------------------|
|
* |-----------------------------------------------------------|
|
||||||
* | | | | |Alt |Prev|Vol-|Next|
|
* | | | | | |Prev|Vol-|Next|
|
||||||
* `-----------------------------------------------------------'
|
* `-----------------------------------------------------------'
|
||||||
*/
|
*/
|
||||||
[_SPC] = LAYOUT_max(
|
[_FN] = LAYOUT_all(
|
||||||
KC_PSCR, 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_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______,
|
||||||
_______, KC_PAUS, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, \
|
_______, KC_PAUS, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL,
|
||||||
_______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, KC_MPLY, \
|
_______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, _______, KC_MPLY,
|
||||||
_______, _______, _______, _______, _______, _______, KC_SPACE, M(0), _______, _______, _______, _______, KC_VOLU, _______, \
|
_______, _______, _______, _______, _______, _______, KC_SPC, _______, _______, _______, _______, _______, KC_VOLU, _______,
|
||||||
_______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT),
|
_______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT
|
||||||
|
),
|
||||||
|
|
||||||
};
|
};
|
||||||
@@ -1,42 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
# adjust for cpu
|
|
||||||
# -j 16 gave best result on a hyperthreaded quad core core i7
|
|
||||||
|
|
||||||
LIMIT=10
|
|
||||||
THREADS="-j 16"
|
|
||||||
KMAP=iso_split_rshift
|
|
||||||
|
|
||||||
echo "We need sudo later"
|
|
||||||
sudo ls 2>&1 /dev/null
|
|
||||||
|
|
||||||
function wait_bootloader {
|
|
||||||
echo "Waiting for Bootloader..."
|
|
||||||
local STARTTIME=$(date +"%s")
|
|
||||||
local REMIND=0
|
|
||||||
local EXEC=dfu-programmer
|
|
||||||
local TARGET=atmega32u4
|
|
||||||
while true
|
|
||||||
do
|
|
||||||
sudo $EXEC $TARGET get > /dev/null 2>&1
|
|
||||||
[ $? -eq 0 ] && break
|
|
||||||
ENDTIME=$(date +"%s")
|
|
||||||
DURATION=$(($ENDTIME-$STARTTIME))
|
|
||||||
if [ $REMIND -eq 0 -a $DURATION -gt $LIMIT ]
|
|
||||||
then
|
|
||||||
echo "Did you forget to press the reset button?"
|
|
||||||
REMIND=1
|
|
||||||
fi
|
|
||||||
sleep 1
|
|
||||||
done
|
|
||||||
}
|
|
||||||
make clean
|
|
||||||
make KEYMAP=${KMAP} ${THREADS}
|
|
||||||
if [[ $? -eq 0 ]]
|
|
||||||
then
|
|
||||||
echo "please trigger flashing!"
|
|
||||||
wait_bootloader
|
|
||||||
sudo make KEYMAP=${KMAP} dfu ${THREADS}
|
|
||||||
else
|
|
||||||
echo "make failed"
|
|
||||||
exit 77
|
|
||||||
fi
|
|
||||||
@@ -1,113 +0,0 @@
|
|||||||
|
|
||||||
#include QMK_KEYBOARD_H
|
|
||||||
|
|
||||||
// Each layer gets a name for readability, which is then used in the keymap matrix below.
|
|
||||||
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
|
|
||||||
// Layer names don't all need to be of the same length, obviously, and you can also skip them
|
|
||||||
// entirely and just use numbers.
|
|
||||||
#define _DEF 0
|
|
||||||
#define _SPC 1
|
|
||||||
#define _TAB 2
|
|
||||||
#define _SFX 3
|
|
||||||
|
|
||||||
// dual-role shortcuts
|
|
||||||
#define TABDUAL LT(_TAB, KC_TAB)
|
|
||||||
#define CAPSDUAL CTL_T(KC_ESC)
|
|
||||||
#define SPACEDUAL LT(_SPC, KC_SPACE)
|
|
||||||
#define ENTERDUAL CTL_T(KC_ENT)
|
|
||||||
// arrow cluster duality bottom right corner
|
|
||||||
#define ARRLEFT ALT_T(KC_LEFT)
|
|
||||||
#define ARRDOWN GUI_T(KC_DOWN)
|
|
||||||
#define ARRUP SFT_T(KC_UP)
|
|
||||||
#define ARRRIGHT CTL_T(KC_RIGHT)
|
|
||||||
// german brackets
|
|
||||||
#define GER_CUR_L RALT(KC_7) // [
|
|
||||||
#define GER_CUR_R RALT(KC_0) // ]
|
|
||||||
#define GER_PAR_L LSFT(KC_8) // (
|
|
||||||
#define GER_PAR_R LSFT(KC_9) // )
|
|
||||||
#define GER_ANG_L KC_NUBS // <
|
|
||||||
#define GER_ANG_R LSFT(KC_NUBS) // >
|
|
||||||
#define GER_BRC_L RALT(KC_8) // [
|
|
||||||
#define GER_BRC_R RALT(KC_9) // ]
|
|
||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|
||||||
/* Keymap _DEF: Default Layer
|
|
||||||
* ,-----------------------------------------------------------.
|
|
||||||
* |Grv| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |
|
|
||||||
* |-----------------------------------------------------------|
|
|
||||||
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ | Tab is Fn1
|
|
||||||
* |-----------------------------------------------------------|
|
|
||||||
* |Ctrl | A| S| D| F| G| H| J| K| L| ;| '| Return |
|
|
||||||
* |-----------------------------------------------------------|
|
|
||||||
* |Sft | < | Z| X| C| V| B| N| M| ,| .| /|Shift |Fn2| RShift is UP
|
|
||||||
* |-----------------------------------------------------------|
|
|
||||||
* |Ctrl|Win |Alt | Space/Fn0 |Alt |Win |Menu|RCtl| Gui Menu, RCtrl is
|
|
||||||
* `-----------------------------------------------------------' LEFT DWN RIGHT
|
|
||||||
*/
|
|
||||||
[_DEF] = LAYOUT_iso_splitrshift(
|
|
||||||
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, \
|
|
||||||
TABDUAL, 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, \
|
|
||||||
CAPSDUAL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, ENTERDUAL, \
|
|
||||||
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, ARRUP, TG(_SFX), \
|
|
||||||
KC_LCTL, KC_LGUI, KC_LALT, SPACEDUAL, KC_RALT, ARRLEFT, ARRDOWN, ARRRIGHT),
|
|
||||||
|
|
||||||
/* Keymap 1: F-and-vim Layer, modified with Space (by holding space)
|
|
||||||
* ,-----------------------------------------------------------.
|
|
||||||
* |PrSc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Delete|
|
|
||||||
* |-----------------------------------------------------------|
|
|
||||||
* | |Paus| Up| [ | ] | | | | ( | ) | | | | |
|
|
||||||
* |-----------------------------------------------------------|
|
|
||||||
* | |Lft|Dwn|Rgt| | |Left|Down|Right|Up| | | PLAY |
|
|
||||||
* |-----------------------------------------------------------|
|
|
||||||
* | | | | | < | > | |M0 | | | | | Vol+ | |
|
|
||||||
* |-----------------------------------------------------------|
|
|
||||||
* | | | | |Alt |Prev|Vol-|Next|
|
|
||||||
* `-----------------------------------------------------------'
|
|
||||||
*/
|
|
||||||
[_SPC] = LAYOUT_iso_splitrshift(
|
|
||||||
KC_PSCR, 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_PAUS, KC_UP, GER_BRC_L, GER_BRC_R, _______, _______, GER_PAR_L, GER_PAR_R, _______, _______, _______, _______, _______, \
|
|
||||||
_______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, _______, KC_MPLY, \
|
|
||||||
_______, _______, _______, _______, GER_ANG_L, GER_ANG_R, KC_SPACE, RALT(KC_SPC),_______, _______, _______, _______, KC_VOLU, _______, \
|
|
||||||
_______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT),
|
|
||||||
|
|
||||||
/* Keymap 2: Tab Layer w/ vim pageup, modified with Tab (by holding tab)
|
|
||||||
* ,-----------------------------------------------------------.
|
|
||||||
* |WAKE| | | | | | | | | | | | |Insert| TAB+GRC = WAKE
|
|
||||||
* |-----------------------------------------------------------|
|
|
||||||
* | | | | | | | | | { | } | | | | |
|
|
||||||
* |-----------------------------------------------------------|
|
|
||||||
* | | | | | | |Pos1|PgDn|PgUp|End| | |Retrn |
|
|
||||||
* |-----------------------------------------------------------|
|
|
||||||
* | | | | | | | |AF2| | | | | PgUp | |
|
|
||||||
* |-----------------------------------------------------------|
|
|
||||||
* | | | | |Alt |Pos1|PgDn|End |
|
|
||||||
* `-----------------------------------------------------------'
|
|
||||||
*/
|
|
||||||
[_TAB] = LAYOUT_iso_splitrshift(
|
|
||||||
KC_WAKE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS, \
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, GER_CUR_L, GER_CUR_R, _______, _______, _______, _______, _______, \
|
|
||||||
_______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______, _______, KC_ENT, \
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, A(KC_F2), _______, _______, _______, _______, KC_PGUP, _______, \
|
|
||||||
_______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END),
|
|
||||||
|
|
||||||
/* Keymap 3: Split right shift Numpad toggle Layer (by tapping the split rshift key)
|
|
||||||
* ,-----------------------------------------------------------.
|
|
||||||
* |RSET| | | | | | | 7| 8| 9| | | |Backsp |
|
|
||||||
* |-----------------------------------------------------------|
|
|
||||||
* | | | | | | | | 4 | 5 | 6 | | | | \ |
|
|
||||||
* |-----------------------------------------------------------|
|
|
||||||
* | | L | L | | | | | 1 | 2 | 3 | | | Return |
|
|
||||||
* |-----------------------------------------------------------|
|
|
||||||
* | | | L | L | L | L | L | L | | 0 | | /| Up | | All "L"s represent
|
|
||||||
* |-----------------------------------------------------------| LED controlling
|
|
||||||
* |Ctrl|Win |Alt | |Alt |Left|Down|Right|
|
|
||||||
* `-----------------------------------------------------------'
|
|
||||||
*/
|
|
||||||
[_SFX] = LAYOUT_iso_splitrshift(
|
|
||||||
RESET, _______, _______, _______, _______, _______, _______, KC_7, KC_8, KC_9, _______, _______, _______, KC_BSPC, \
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, KC_4, KC_5, KC_6, _______, _______, _______, KC_BSLS, \
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, KC_1, KC_2, KC_3, _______, _______, XXXXXXX, KC_ENT, \
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_0, _______, KC_SLSH, KC_UP, _______, \
|
|
||||||
_______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT),
|
|
||||||
};
|
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
toneman77's custom spacefn Layout
|
|
||||||
=====================
|
|
||||||
|
|
||||||
##Quantum MK Firmware
|
|
||||||
For the full Quantum feature list, see the parent readme.md.
|
|
||||||
|
|
||||||
# Features
|
|
||||||
* heavily modified ISO (!) layout with split right shift key
|
|
||||||
* spaceFn
|
|
||||||
* Dual-Role keys:
|
|
||||||
*
|
|
||||||
| Original key | when tapped | when held |
|
|
||||||
| ---------------- | ------------- | ------------- |
|
|
||||||
| Space | Space | layer change |
|
|
||||||
| Caps lock | Escape | Control |
|
|
||||||
| Tab | Tab | layer change |
|
|
||||||
| Enter | Enter | Control |
|
|
||||||
|
|
||||||
* vim-style arrow keys on hjkl (spacefn layer)
|
|
||||||
* corresponding Home/PgDn/PgUp/End on hjkl (tab layer)
|
|
||||||
* bonus arrow keys in the bottom right corner on Alt/Win/Menu/rCtrl/Shift
|
|
||||||
* more bonus arrow keys on wasd (spacefn layer)
|
|
||||||
* media keys prev/next/play/vol+/vol- (spacefn layer)
|
|
||||||
* firmware bootloader button
|
|
||||||
* additional brackets that only work in german layout due to horrible placement
|
|
||||||
in the default qwertz layout
|
|
||||||
|
|
||||||
|
|
||||||
### Additional Credits
|
|
||||||
* visualization of the layers [here](http://www.keyboard-layout-editor.com/#/gists/aba4e4396459ede85bc66a22cee88e48) (without the LED keys)
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
# Build Options
|
|
||||||
# change to "no" to disable the options, or define them in the Makefile in
|
|
||||||
# the appropriate keymap folder that will get included automatically
|
|
||||||
#
|
|
||||||
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
|
|
||||||
MOUSEKEY_ENABLE = no # Mouse keys(+4700)
|
|
||||||
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
|
|
||||||
CONSOLE_ENABLE = no # Console for debug(+400)
|
|
||||||
COMMAND_ENABLE = yes # Commands for debug and configuration
|
|
||||||
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
|
||||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
|
||||||
MIDI_ENABLE = no # MIDI controls
|
|
||||||
AUDIO_ENABLE = no # Audio output on port C6
|
|
||||||
UNICODE_ENABLE = no # Unicode
|
|
||||||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
|
||||||
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
|
|
||||||
|
|
||||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
|
||||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
|
||||||
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
git checkout amj60 # gets you on branch amj60
|
|
||||||
git fetch origin # gets you up to date with origin
|
|
||||||
git merge origin/master
|
|
||||||
@@ -1,55 +0,0 @@
|
|||||||
|
|
||||||
#include QMK_KEYBOARD_H
|
|
||||||
|
|
||||||
// Each layer gets a name for readability, which is then used in the keymap matrix below.
|
|
||||||
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
|
|
||||||
// Layer names don't all need to be of the same length, obviously, and you can also skip them
|
|
||||||
// entirely and just use numbers.
|
|
||||||
#define _DEF 0
|
|
||||||
#define _SPC 1
|
|
||||||
|
|
||||||
// dual-role shortcuts
|
|
||||||
#define SPACEDUAL LT(_SPC, KC_SPACE)
|
|
||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|
||||||
/* Keymap _DEF: Default Layer
|
|
||||||
* ,-----------------------------------------------------------.
|
|
||||||
* |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \ | ~ |
|
|
||||||
* |-----------------------------------------------------------|
|
|
||||||
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| bspc|
|
|
||||||
* |-----------------------------------------------------------|
|
|
||||||
* |Caps | A| S| D| F| G| H| J| K| L| ;| '| Return |
|
|
||||||
* |-----------------------------------------------------------|
|
|
||||||
* |Sft | Fn0| Z| X| C| V| B| N| M| ,| .| /| Sft |Fn2|
|
|
||||||
* |-----------------------------------------------------------|
|
|
||||||
* |Ctrl|Win |Alt | Space/Fn0 |Alt |Win |Menu|RCtl|
|
|
||||||
* `-----------------------------------------------------------'
|
|
||||||
*/
|
|
||||||
[_DEF] = LAYOUT_max(
|
|
||||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, \
|
|
||||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, \
|
|
||||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \
|
|
||||||
KC_LSFT, F(0), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, F(1), \
|
|
||||||
KC_LCTL, KC_LALT, KC_LGUI, SPACEDUAL, KC_RGUI, KC_RALT, KC_RCTL, F(2)),
|
|
||||||
|
|
||||||
/* Keymap 1: F-and-vim Layer, modified with Space (by holding space)
|
|
||||||
* ,-----------------------------------------------------------.
|
|
||||||
* |PrSc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| | |
|
|
||||||
* |-----------------------------------------------------------|
|
|
||||||
* | |Paus| Up| [ | ] | | | | ( | ) | | | | Del |
|
|
||||||
* |-----------------------------------------------------------|
|
|
||||||
* | |Lft|Dwn|Rgt| | |Left|Down|Right|Up| | | PLAY |
|
|
||||||
* |-----------------------------------------------------------|
|
|
||||||
* | | | | | < | > | |M0 | | | | | Vol+ | |
|
|
||||||
* |-----------------------------------------------------------|
|
|
||||||
* | | | | |Alt |Prev|Vol-|Next|
|
|
||||||
* `-----------------------------------------------------------'
|
|
||||||
*/
|
|
||||||
[_SPC] = LAYOUT_max(
|
|
||||||
KC_PSCR, 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_PAUS, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, \
|
|
||||||
_______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, KC_MPLY, \
|
|
||||||
_______, _______, _______, _______, _______, _______, KC_SPACE, M(0), _______, _______, _______, _______, KC_VOLU, _______, \
|
|
||||||
_______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT),
|
|
||||||
|
|
||||||
};
|
|
||||||
@@ -1,14 +1,22 @@
|
|||||||
AMJ60
|
# AMJ60
|
||||||
===
|
|
||||||
|

|
||||||
|
|
||||||
A 60% keyboard.
|
A 60% keyboard.
|
||||||
|
|
||||||
Keyboard Maintainer: QMK Community
|
* Keyboard Maintainer: [The QMK Community](https://github.com/qmk)
|
||||||
Hardware Supported: AMJ60
|
* Hardware Supported: AMJ60
|
||||||
Hardware Availability: https://geekhack.org/index.php?topic=77636.0
|
* Hardware Availability: [~~Taobao~~](http://item.taobao.com/item.htm?id=43500549469) (no longer available)
|
||||||
|
* References: [Geekhack](https://geekhack.org/index.php?topic=77636.0)
|
||||||
|
|
||||||
Make example for this keyboard (after setting up your build environment):
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
make amj60:maximized
|
make amj60:default
|
||||||
|
|
||||||
See [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.
|
Flashing example for this keyboard:
|
||||||
|
|
||||||
|
make amj60:default:flash
|
||||||
|
|
||||||
|
To reset the board into bootloader mode, tap the Reset switch mounted on the bottom side of the PCB.
|
||||||
|
|
||||||
|
See 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).
|
||||||
+15
-21
@@ -2,29 +2,23 @@
|
|||||||
MCU = atmega32u4
|
MCU = atmega32u4
|
||||||
|
|
||||||
# Bootloader selection
|
# Bootloader selection
|
||||||
# Teensy halfkay
|
|
||||||
# Pro Micro caterina
|
|
||||||
# Atmel DFU atmel-dfu
|
|
||||||
# LUFA DFU lufa-dfu
|
|
||||||
# QMK DFU qmk-dfu
|
|
||||||
# ATmega32A bootloadHID
|
|
||||||
# ATmega328P USBasp
|
|
||||||
BOOTLOADER = atmel-dfu
|
BOOTLOADER = atmel-dfu
|
||||||
|
|
||||||
# Build Options
|
# Build Options
|
||||||
# comment out to disable the options.
|
# change yes to no to disable
|
||||||
#
|
#
|
||||||
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
|
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
|
||||||
MOUSEKEY_ENABLE = no # Mouse keys
|
MOUSEKEY_ENABLE = no # Mouse keys
|
||||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||||
CONSOLE_ENABLE = yes # Console for debug
|
CONSOLE_ENABLE = yes # Console for debug
|
||||||
COMMAND_ENABLE = yes # Commands for debug and configuration
|
COMMAND_ENABLE = yes # Commands for debug and configuration
|
||||||
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
RGBLIGHT_ENABLE = yes # Enable keyboard underlight functionality
|
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
MIDI_ENABLE = no # MIDI controls
|
NKRO_ENABLE = yes # USB Nkey Rollover
|
||||||
AUDIO_ENABLE = no
|
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
||||||
UNICODE_ENABLE = no # Unicode
|
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
|
||||||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
BLUETOOTH_ENABLE = no # Enable Bluetooth
|
||||||
|
AUDIO_ENABLE = no # Audio output
|
||||||
|
|
||||||
LAYOUTS = 60_ansi
|
LAYOUTS = 60_ansi 60_hhkb 60_iso 60_ansi_split_bs_rshift
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2021 Quentin LEBASTARD <[email protected]>
|
* Copyright 2021 Quentin LEBASTARD <[email protected]>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
@@ -37,3 +37,23 @@
|
|||||||
#define DEBOUNCE 5
|
#define DEBOUNCE 5
|
||||||
#define SOFT_SERIAL_PIN D0
|
#define SOFT_SERIAL_PIN D0
|
||||||
#define MASTER_RIGHT
|
#define MASTER_RIGHT
|
||||||
|
|
||||||
|
#ifdef RGBLIGHT_ENABLE
|
||||||
|
# define RGBLED_NUM 58
|
||||||
|
# define RGBLED_SPLIT { 29, 29 }
|
||||||
|
# define RGBLIGHT_LIMIT_VAL 50
|
||||||
|
# define RGBLIGHT_ANIMATIONS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// RGB matrix support
|
||||||
|
#ifdef RGB_MATRIX_ENABLE
|
||||||
|
# define SPLIT_TRANSPORT_MIRROR
|
||||||
|
# define DRIVER_LED_TOTAL 58 // Number of LEDs
|
||||||
|
# define RGB_MATRIX_SPLIT { 29, 29 }
|
||||||
|
# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 50
|
||||||
|
# define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS
|
||||||
|
# ifndef RGB_DISABLE_WHEN_USB_SUSPENDED
|
||||||
|
# define RGB_DISABLE_WHEN_USB_SUSPENDED true
|
||||||
|
# endif
|
||||||
|
# define RGB_MATRIX_KEYPRESSES
|
||||||
|
#endif
|
||||||
@@ -17,7 +17,9 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
|||||||
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
NKRO_ENABLE = no # USB Nkey Rollover
|
NKRO_ENABLE = no # USB Nkey Rollover
|
||||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||||
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
|
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||||
|
RGB_MATRIX_ENABLE = yes # Enable keyboard RGB matrix (do not use together with RGBLIGHT_ENABLE)
|
||||||
|
RGB_MATRIX_DRIVER = WS2812 # RGB matrix driver support
|
||||||
BLUETOOTH_ENABLE = no # Enable Bluetooth
|
BLUETOOTH_ENABLE = no # Enable Bluetooth
|
||||||
AUDIO_ENABLE = no # Audio output
|
AUDIO_ENABLE = no # Audio output
|
||||||
SPLIT_KEYBOARD = yes
|
SPLIT_KEYBOARD = yes
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2021 Quentin LEBASTARD <[email protected]>
|
* Copyright 2021 Quentin LEBASTARD <[email protected]>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
@@ -16,3 +16,46 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "scylla.h"
|
#include "scylla.h"
|
||||||
|
|
||||||
|
#ifdef RGB_MATRIX_ENABLE
|
||||||
|
led_config_t g_led_config = { {
|
||||||
|
// left
|
||||||
|
{ 0, 7, 8, 15, 16, 20 },
|
||||||
|
{ 1, 6, 9, 14, 17, 21 },
|
||||||
|
{ 2, 5, 10, 13, 18, 22 },
|
||||||
|
{ 3, 4, 11, 12, 19, 23 },
|
||||||
|
{ NO_LED, 28, 24, 26, 27, 25 },
|
||||||
|
// right
|
||||||
|
{ 29, 36, 37, 44, 45, 49 },
|
||||||
|
{ 30, 35, 38, 43, 46, 50 },
|
||||||
|
{ 31, 34, 39, 42, 47, 51 },
|
||||||
|
{ 32, 33, 40, 41, 48, 52 },
|
||||||
|
{ NO_LED, 57, 53, 55, 56, 54 }
|
||||||
|
}, {
|
||||||
|
// left
|
||||||
|
{ 0, 0 }, { 0, 16 }, { 0, 32 }, { 0, 48 }, // col 1
|
||||||
|
{ 20, 48 }, { 20, 32 }, { 20, 16 }, { 20, 0 }, // col 2
|
||||||
|
{ 41, 0 }, { 41, 16 }, { 41, 32 }, { 41, 48 },
|
||||||
|
{ 61, 48 }, { 61, 32 }, { 61, 16 }, { 61, 0 },
|
||||||
|
{ 81, 0 }, { 81, 16 }, { 81, 32 }, { 81, 48 },
|
||||||
|
{ 102, 0 }, { 102, 16 }, { 102, 32 }, { 102, 48 },
|
||||||
|
{ 102, 64 }, { 81, 64 }, { 61, 56 }, { 81, 56 }, { 102, 56 }, // left thumb cluster
|
||||||
|
// right
|
||||||
|
{ 224, 0 }, { 224, 16 }, { 224, 32 }, { 224, 48 }, // col 12
|
||||||
|
{ 204, 48 }, { 204, 32 }, { 204, 16 }, { 204, 0 }, // col 11
|
||||||
|
{ 183, 0 }, { 183, 16 }, { 183, 32 }, { 183, 48 },
|
||||||
|
{ 163, 48 }, { 163, 32 }, { 163, 16 }, { 163, 0 },
|
||||||
|
{ 142, 0 }, { 142, 16 }, { 142, 32 }, { 142, 48 },
|
||||||
|
{ 122, 0 }, { 122, 16 }, { 122, 32 }, { 122, 48 },
|
||||||
|
{ 122, 64 }, { 142, 64 }, { 163, 56 }, { 142, 56 }, { 122, 56 } // right thumb cluster
|
||||||
|
}, {
|
||||||
|
// left
|
||||||
|
2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4,
|
||||||
|
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
|
||||||
|
2, 2, 2, 2, 2,
|
||||||
|
// right
|
||||||
|
2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4,
|
||||||
|
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
|
||||||
|
2, 2, 2, 2, 2
|
||||||
|
} };
|
||||||
|
#endif
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2021 Quentin LEBASTARD <[email protected]>
|
* Copyright 2021 Quentin LEBASTARD <[email protected]>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
@@ -45,3 +45,16 @@
|
|||||||
#define F_SCL 400000L
|
#define F_SCL 400000L
|
||||||
#define USB_POLLING_INTERVAL_MS 1
|
#define USB_POLLING_INTERVAL_MS 1
|
||||||
#define MASTER_RIGHT
|
#define MASTER_RIGHT
|
||||||
|
|
||||||
|
// RGB matrix support
|
||||||
|
#ifdef RGB_MATRIX_ENABLE
|
||||||
|
# define SPLIT_TRANSPORT_MIRROR
|
||||||
|
# define DRIVER_LED_TOTAL 42 // Number of LEDs
|
||||||
|
# define RGB_MATRIX_SPLIT { 21, 21 }
|
||||||
|
# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 50
|
||||||
|
# define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS
|
||||||
|
# ifndef RGB_DISABLE_WHEN_USB_SUSPENDED
|
||||||
|
# define RGB_DISABLE_WHEN_USB_SUSPENDED true
|
||||||
|
# endif
|
||||||
|
# define RGB_MATRIX_KEYPRESSES
|
||||||
|
#endif
|
||||||
@@ -17,7 +17,10 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
|||||||
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
NKRO_ENABLE = yes # USB Nkey Rollover
|
NKRO_ENABLE = yes # USB Nkey Rollover
|
||||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||||
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
|
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||||
|
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||||
|
RGB_MATRIX_ENABLE = yes # Enable keyboard RGB matrix (do not use together with RGBLIGHT_ENABLE)
|
||||||
|
RGB_MATRIX_DRIVER = WS2812 # RGB matrix driver support
|
||||||
BLUETOOTH_ENABLE = no # Enable Bluetooth
|
BLUETOOTH_ENABLE = no # Enable Bluetooth
|
||||||
AUDIO_ENABLE = no # Audio output
|
AUDIO_ENABLE = no # Audio output
|
||||||
SPLIT_KEYBOARD = yes
|
SPLIT_KEYBOARD = yes
|
||||||
@@ -25,7 +28,7 @@ TAP_DANCE_ENABLE = no
|
|||||||
LTO_ENABLE = yes
|
LTO_ENABLE = yes
|
||||||
|
|
||||||
AUDIO_SUPPORTED = no
|
AUDIO_SUPPORTED = no
|
||||||
RGB_MATRIX_SUPPORTED = no
|
RGB_MATRIX_SUPPORTED = yes
|
||||||
RGBLIGHT_SUPPORTED = yes
|
RGBLIGHT_SUPPORTED = yes
|
||||||
|
|
||||||
LAYOUTS = split_3x6_3
|
LAYOUTS = split_3x6_3
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2021 Quentin LEBASTARD <[email protected]>
|
* Copyright 2021 Quentin LEBASTARD <[email protected]>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
@@ -16,3 +16,44 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "tbkmini.h"
|
#include "tbkmini.h"
|
||||||
|
|
||||||
|
#ifdef RGB_MATRIX_ENABLE
|
||||||
|
led_config_t g_led_config = { {
|
||||||
|
// left
|
||||||
|
{ 0, 5, 6, 11, 12, 15 },
|
||||||
|
{ 1, 4, 7, 10, 13, 16 },
|
||||||
|
{ 2, 3, 8, 9, 14, 17 },
|
||||||
|
{ NO_LED, 18, NO_LED, 19, 20, NO_LED },
|
||||||
|
// right
|
||||||
|
{ 21, 26, 27, 32, 33, 36 },
|
||||||
|
{ 22, 25, 28, 31, 34, 37 },
|
||||||
|
{ 23, 24, 29, 30, 35, 38 },
|
||||||
|
{ NO_LED, 39, NO_LED, 40, 41, NO_LED }
|
||||||
|
}, {
|
||||||
|
// left
|
||||||
|
{ 0, 0 }, { 0, 21 }, { 0, 42 }, // col 1
|
||||||
|
{ 20, 42 }, { 20, 21 }, { 20, 0 }, // col 2
|
||||||
|
{ 41, 0 }, { 41, 21 }, { 41, 42 },
|
||||||
|
{ 61, 42 }, { 61, 21 }, { 61, 0 },
|
||||||
|
{ 81, 0 }, { 81, 21 }, { 81, 42 },
|
||||||
|
{ 102, 0 }, { 102, 21 }, { 102, 42 },
|
||||||
|
{ 61, 64 }, { 81, 64 }, { 102, 64 }, // left thumb cluster
|
||||||
|
// right
|
||||||
|
{ 224, 0 }, { 224, 21 }, { 224, 42 }, // col 12
|
||||||
|
{ 204, 42 }, { 204, 21 }, { 204, 0 }, // col 11
|
||||||
|
{ 183, 0 }, { 183, 21 }, { 183, 42 },
|
||||||
|
{ 163, 42 }, { 163, 21 }, { 163, 0 },
|
||||||
|
{ 142, 0 }, { 142, 21 }, { 142, 42 },
|
||||||
|
{ 122, 0 }, { 122, 21 }, { 122, 42 },
|
||||||
|
{ 163, 64 }, { 142, 64 }, { 122, 64 } // right thumb cluster
|
||||||
|
}, {
|
||||||
|
// left
|
||||||
|
2, 2, 2, 4, 4, 4, 4, 4, 4,
|
||||||
|
4, 4, 4, 4, 4, 4, 4, 4, 4,
|
||||||
|
2, 2, 2,
|
||||||
|
// right
|
||||||
|
2, 2, 2, 4, 4, 4, 4, 4, 4,
|
||||||
|
4, 4, 4, 4, 4, 4, 4, 4, 4,
|
||||||
|
2, 2, 2
|
||||||
|
} };
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,59 @@
|
|||||||
|
/* Copyright 2020 ipetepete, 2021 deadolus
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#include "bm65iso.h"
|
||||||
|
|
||||||
|
#ifdef RGB_MATRIX_ENABLE
|
||||||
|
led_config_t g_led_config = { {
|
||||||
|
{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 , 14},
|
||||||
|
{ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29},
|
||||||
|
{ 30, NO_LED, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43},
|
||||||
|
{ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58},
|
||||||
|
{ 59, 60, NO_LED, NO_LED, NO_LED, 61, NO_LED, NO_LED, 62, 63, NO_LED, 64, 65, 66, 67}
|
||||||
|
}, {
|
||||||
|
// Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace
|
||||||
|
{ 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 }, { 202, 0 },{ 224, 0 },
|
||||||
|
// Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], ,
|
||||||
|
{ 7, 16 }, { 22, 16 }, { 37, 16 }, { 52, 16 }, { 67, 16 }, { 82, 16 }, { 97, 16 }, { 112, 16 }, { 127, 16 }, { 142, 16 }, { 157, 16 }, { 172, 16 }, { 187, 16 }, { 206, 16 },{ 224, 16},
|
||||||
|
// Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter
|
||||||
|
{ 11, 32 }, { 26, 32 }, { 41, 32 }, { 56, 32 }, { 71, 32 }, { 86, 32 }, { 101, 32 }, { 116, 32 }, { 131, 32 }, { 146, 32 }, { 161, 32 }, { 176, 32 }, { 198, 32 }, { 224, 32 },
|
||||||
|
// LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up,
|
||||||
|
{ 18, 48 }, { 30, 48 }, { 45, 48 }, { 60, 48 }, { 75, 48 }, { 90, 48 }, { 105, 48 }, { 120, 48 }, { 135, 48 }, { 150, 48 }, { 165, 48 }, { 195, 48 }, { 209, 48 }, { 224, 48 },
|
||||||
|
// Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right
|
||||||
|
{ 3, 64 }, { 22, 64 }, { 33, 64 }, { 101, 64 }, { 135, 64 }, { 153, 64 }, { 194, 64 }, { 209, 64 },{ 224, 64 },
|
||||||
|
// UNDERGLOW
|
||||||
|
{ 216, 32 }, { 180, 32 }, { 144, 32 }, { 108, 32 }, { 72, 32 }, { 36, 32 }
|
||||||
|
}, {
|
||||||
|
// Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace
|
||||||
|
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
|
||||||
|
// Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], ,
|
||||||
|
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
|
||||||
|
// Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter
|
||||||
|
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
|
||||||
|
// LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up,
|
||||||
|
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
|
||||||
|
// Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right
|
||||||
|
1, 1, 1, 4, 1, 1, 1, 1, 1,
|
||||||
|
// UNDERGLOW
|
||||||
|
2, 2, 2, 2, 2, 2
|
||||||
|
} };
|
||||||
|
|
||||||
|
__attribute__ ((weak))
|
||||||
|
void rgb_matrix_indicators_user(void) {
|
||||||
|
if (host_keyboard_led_state().caps_lock) {
|
||||||
|
rgb_matrix_set_color(30, 0xFF, 0xFF, 0xFF);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
/* Copyright 2021 deadolus
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "quantum.h"
|
||||||
|
|
||||||
|
#define LAYOUT( \
|
||||||
|
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
|
||||||
|
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \
|
||||||
|
K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, \
|
||||||
|
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \
|
||||||
|
K40, K41, K42, K46, K49, K4A, K4C, K4D, K4E \
|
||||||
|
) { \
|
||||||
|
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
|
||||||
|
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \
|
||||||
|
{ K20, KC_NO, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E }, \
|
||||||
|
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \
|
||||||
|
{ K40, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, K49, K4A, KC_NO, K4C, K4D, K4E }, \
|
||||||
|
}
|
||||||
|
|
||||||
|
// generated by KBFirmware JSON to QMK Parser
|
||||||
|
// https://noroadsleft.github.io/kbf_qmk_converter/
|
||||||
|
|
||||||
@@ -0,0 +1,72 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2020 ipetepete, 2021 deadolus
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "config_common.h"
|
||||||
|
|
||||||
|
/* USB Device descriptor parameter */
|
||||||
|
#define VENDOR_ID 0x4B50 // "KP"
|
||||||
|
#define PRODUCT_ID 0x0653
|
||||||
|
#define DEVICE_VER 0x0001
|
||||||
|
#define MANUFACTURER KP Republic
|
||||||
|
#define PRODUCT BM65ISO
|
||||||
|
|
||||||
|
/* key matrix size */
|
||||||
|
#define MATRIX_ROWS 5
|
||||||
|
#define MATRIX_COLS 15
|
||||||
|
#define FORCE_NKRO
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Keyboard Matrix Assignments
|
||||||
|
*
|
||||||
|
* Change this to how you wired your keyboard
|
||||||
|
* COLS: AVR pins used for columns, left to right
|
||||||
|
* ROWS: AVR pins used for rows, top to bottom
|
||||||
|
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
|
||||||
|
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#define MATRIX_ROW_PINS { B0, B1, B2, B3, E6 }
|
||||||
|
#define MATRIX_COL_PINS { D0, D1, D2, D3, D5, D4, D6, D7, B4, B5, B6, C6, C7, F7, F6 }
|
||||||
|
|
||||||
|
#define DIODE_DIRECTION COL2ROW
|
||||||
|
|
||||||
|
#define RGB_DI_PIN E2
|
||||||
|
#define DRIVER_LED_TOTAL 74
|
||||||
|
#ifdef RGB_DI_PIN
|
||||||
|
#define RGBLED_NUM 74
|
||||||
|
#define RGB_MATRIX_KEYPRESSES
|
||||||
|
#define RGBLIGHT_HUE_STEP 8
|
||||||
|
#define RGBLIGHT_SAT_STEP 8
|
||||||
|
#define RGBLIGHT_VAL_STEP 8
|
||||||
|
#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 140
|
||||||
|
#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_BAND_SAT
|
||||||
|
#define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
|
||||||
|
/*== all animations enable ==*/
|
||||||
|
#define RGBLIGHT_ANIMATIONS
|
||||||
|
// /*== or choose animations ==*/
|
||||||
|
// #define RGBLIGHT_EFFECT_BREATHING
|
||||||
|
// #define RGBLIGHT_EFFECT_RAINBOW_MOOD
|
||||||
|
// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
|
||||||
|
// #define RGBLIGHT_EFFECT_SNAKE
|
||||||
|
// #define RGBLIGHT_EFFECT_KNIGHT
|
||||||
|
// #define RGBLIGHT_EFFECT_CHRISTMAS
|
||||||
|
// #define RGBLIGHT_EFFECT_STATIC_GRADIENT
|
||||||
|
// #define RGBLIGHT_EFFECT_RGB_TEST
|
||||||
|
// #define RGBLIGHT_EFFECT_ALTERNATING
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,82 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "bm65iso",
|
||||||
|
"url": "",
|
||||||
|
"maintainer": "qmk",
|
||||||
|
"width": 16,
|
||||||
|
"height": 5,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT": {
|
||||||
|
"layout": [
|
||||||
|
{"label":"K00 (B0,D0)", "x":0, "y":0},
|
||||||
|
{"label":"K01 (B0,D1)", "x":1, "y":0},
|
||||||
|
{"label":"K02 (B0,D2)", "x":2, "y":0},
|
||||||
|
{"label":"K03 (B0,D3)", "x":3, "y":0},
|
||||||
|
{"label":"K04 (B0,D5)", "x":4, "y":0},
|
||||||
|
{"label":"K05 (B0,D4)", "x":5, "y":0},
|
||||||
|
{"label":"K06 (B0,D6)", "x":6, "y":0},
|
||||||
|
{"label":"K07 (B0,D7)", "x":7, "y":0},
|
||||||
|
{"label":"K08 (B0,B4)", "x":8, "y":0},
|
||||||
|
{"label":"K09 (B0,B5)", "x":9, "y":0},
|
||||||
|
{"label":"K0A (B0,B6)", "x":10, "y":0},
|
||||||
|
{"label":"K0B (B0,C6)", "x":11, "y":0},
|
||||||
|
{"label":"K0C (B0,C7)", "x":12, "y":0},
|
||||||
|
{"label":"K0D (B0,F7)", "x":13, "y":0, "w":2},
|
||||||
|
{"label":"K0E (B0,F6)", "x":15, "y":0},
|
||||||
|
{"label":"K10 (B1,D0)", "x":0, "y":1, "w":1.5},
|
||||||
|
{"label":"K11 (B1,D1)", "x":1.5, "y":1},
|
||||||
|
{"label":"K12 (B1,D2)", "x":2.5, "y":1},
|
||||||
|
{"label":"K13 (B1,D3)", "x":3.5, "y":1},
|
||||||
|
{"label":"K14 (B1,D5)", "x":4.5, "y":1},
|
||||||
|
{"label":"K15 (B1,D4)", "x":5.5, "y":1},
|
||||||
|
{"label":"K16 (B1,D6)", "x":6.5, "y":1},
|
||||||
|
{"label":"K17 (B1,D7)", "x":7.5, "y":1},
|
||||||
|
{"label":"K18 (B1,B4)", "x":8.5, "y":1},
|
||||||
|
{"label":"K19 (B1,B5)", "x":9.5, "y":1},
|
||||||
|
{"label":"K1A (B1,B6)", "x":10.5, "y":1},
|
||||||
|
{"label":"K1B (B1,C6)", "x":11.5, "y":1},
|
||||||
|
{"label":"K1C (B1,C7)", "x":12.5, "y":1},
|
||||||
|
{"label":"K1D (B1,F7)", "x":13.5, "y":1, "w":1.5},
|
||||||
|
{"label":"K1E (B1,F6)", "x":15, "y":1},
|
||||||
|
{"label":"K20 (B2,D0)", "x":0, "y":2, "w":1.75},
|
||||||
|
{"label":"K22 (B2,D2)", "x":1.75, "y":2},
|
||||||
|
{"label":"K23 (B2,D3)", "x":2.75, "y":2},
|
||||||
|
{"label":"K24 (B2,D5)", "x":3.75, "y":2},
|
||||||
|
{"label":"K25 (B2,D4)", "x":4.75, "y":2},
|
||||||
|
{"label":"K26 (B2,D6)", "x":5.75, "y":2},
|
||||||
|
{"label":"K27 (B2,D7)", "x":6.75, "y":2},
|
||||||
|
{"label":"K28 (B2,B4)", "x":7.75, "y":2},
|
||||||
|
{"label":"K29 (B2,B5)", "x":8.75, "y":2},
|
||||||
|
{"label":"K2A (B2,B6)", "x":9.75, "y":2},
|
||||||
|
{"label":"K2B (B2,C6)", "x":10.75, "y":2},
|
||||||
|
{"label":"K2C (B2,C7)", "x":11.75, "y":2},
|
||||||
|
{"label":"K2D (B2,F7)", "x":12.75, "y":2, "w":2.25},
|
||||||
|
{"label":"K2E (B2,F6)", "x":15, "y":2},
|
||||||
|
{"label":"K30 (B2,D1)", "x":0, "y":3, "w":1.25},
|
||||||
|
{"label":"K31 (B3,D1)", "x":1.25, "y":3, "w":1},
|
||||||
|
{"label":"K32 (B3,D2)", "x":2.25, "y":3},
|
||||||
|
{"label":"K33 (B3,D3)", "x":3.25, "y":3},
|
||||||
|
{"label":"K34 (B3,D5)", "x":4.25, "y":3},
|
||||||
|
{"label":"K35 (B3,D4)", "x":5.25, "y":3},
|
||||||
|
{"label":"K36 (B3,D6)", "x":6.25, "y":3},
|
||||||
|
{"label":"K37 (B3,D7)", "x":7.25, "y":3},
|
||||||
|
{"label":"K38 (B3,B4)", "x":8.25, "y":3},
|
||||||
|
{"label":"K39 (B3,B5)", "x":9.25, "y":3},
|
||||||
|
{"label":"K3A (B3,B6)", "x":10.25, "y":3},
|
||||||
|
{"label":"K3B (B3,C6)", "x":11.25, "y":3},
|
||||||
|
{"label":"K3C (B3,C7)", "x":12.25, "y":3, "w":1.75},
|
||||||
|
{"label":"K3D (B3,F7)", "x":14, "y":3},
|
||||||
|
{"label":"K3E (B3,F6)", "x":15, "y":3},
|
||||||
|
{"label":"K40 (E6,D0)", "x":0, "y":4, "w":1.25},
|
||||||
|
{"label":"K41 (E6,D1)", "x":1.25, "y":4, "w":1.25},
|
||||||
|
{"label":"K42 (E6,D2)", "x":2.5, "y":4, "w":1.25},
|
||||||
|
{"label":"K46 (E6,D6)", "x":3.75, "y":4, "w":6.25},
|
||||||
|
{"label":"K49 (E6,B5)", "x":10, "y":4, "w":1.25},
|
||||||
|
{"label":"K4A (E6,B6)", "x":11.25, "y":4, "w":1.25},
|
||||||
|
{"label":"K4C (E6,C7)", "x":13, "y":4},
|
||||||
|
{"label":"K4D (E6,F7)", "x":14, "y":4},
|
||||||
|
{"label":"K4E (E6,F6)", "x":15, "y":4}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
,"meta": "https://noroadsleft.github.io/kbf_qmk_converter/"
|
||||||
|
}
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
/* Copyright 2021 deadolus
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
// place overrides here
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
#define LSPO_KEYS KC_LSFT, KC_LSFT, KC_8
|
||||||
|
#define RSPC_KEYS KC_RSFT, KC_LSFT, KC_9
|
||||||
|
#define LAPO_KEYS KC_LALT, KC_RALT, KC_QUOT
|
||||||
|
#define RAPC_KEYS KC_RALT, KC_RALT, KC_NUHS
|
||||||
|
|
||||||
|
#define LEADER_TIMEOUT 1000
|
||||||
|
#define LEADER_PER_KEY_TIMING 250
|
||||||
|
|
||||||
@@ -0,0 +1,288 @@
|
|||||||
|
/* Copyright 2019 ashlar 2021 peepeetee, deadolus
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
#include "keymap.h"
|
||||||
|
|
||||||
|
#ifdef TAP_DANCE_ENABLE
|
||||||
|
enum {
|
||||||
|
TD_HOME_END,
|
||||||
|
};
|
||||||
|
|
||||||
|
// Tap Dance definitions
|
||||||
|
qk_tap_dance_action_t tap_dance_actions[] = {
|
||||||
|
//tap once for home, twice for end
|
||||||
|
[TD_HOME_END] = ACTION_TAP_DANCE_DOUBLE(KC_HOME, KC_END)
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
// // Defines names for use in layer keycodes and the keymap
|
||||||
|
enum layers {
|
||||||
|
_BL,
|
||||||
|
_RED_,
|
||||||
|
_GREEN_,
|
||||||
|
_BLUE_,
|
||||||
|
_CYAN_,
|
||||||
|
_MAGENTA_,
|
||||||
|
_YELLOW_
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
/*
|
||||||
|
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐
|
||||||
|
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||||
|
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤
|
||||||
|
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||||
|
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ ├───┤
|
||||||
|
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||||
|
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┼───┤
|
||||||
|
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||||
|
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤
|
||||||
|
* │ │ │ │ │ │ │ │ │ │ │
|
||||||
|
* └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘
|
||||||
|
*/
|
||||||
|
#ifdef TAP_DANCE_ENABLE
|
||||||
|
/* 0: ISO qwerty */
|
||||||
|
[_BL] = LAYOUT(
|
||||||
|
KC_CAPS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL,
|
||||||
|
KC_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_ENT, TD(TD_HOME_END),
|
||||||
|
KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_PGUP,
|
||||||
|
KC_LSPO, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, KC_UP, KC_PGDN,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LAPO, KC_SPC, KC_RAPC, MO(_RED_), KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
|
|
||||||
|
),
|
||||||
|
#else
|
||||||
|
[_BL] = LAYOUT(
|
||||||
|
KC_CAPS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL,
|
||||||
|
KC_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_ENT, KC_HOME,
|
||||||
|
KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_PGUP,
|
||||||
|
KC_LSPO, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, KC_UP, KC_PGDN,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LAPO, KC_SPC, KC_RAPC, MO(_RED_), KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
|
|
||||||
|
),
|
||||||
|
#endif
|
||||||
|
|
||||||
|
[_RED_] = LAYOUT(
|
||||||
|
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, _______, LGUI(KC_END),
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,_______, _______, _______, TO(0), LGUI(KC_PAUSE),
|
||||||
|
_______, TO(_GREEN_), TO(_BLUE_), TO(_CYAN_), TO(_MAGENTA_), TO(_YELLOW_), _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______,_______ ,_______ ,_______ , _______, _______, _______, _______, _______, _______, _______, _______,_______ , KC_VOLU, _______,
|
||||||
|
RESET, _______, _______, KC_LEAD, _______, _______, KC_MPLY, KC_VOLD, KC_MUTE
|
||||||
|
),
|
||||||
|
|
||||||
|
|
||||||
|
[_GREEN_] = LAYOUT(
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______,_______ , _______, _______, _______, KC_PGDN, KC_PGUP, KC_PSCR,_______, _______, _______, TO(0), _______,
|
||||||
|
_______, KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, _______, _______, KC_MS_LEFT, KC_MS_DOWN, KC_MS_UP, KC_MS_RIGHT, KC_MS_BTN1, KC_MS_BTN2, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_END, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
|
||||||
|
|
||||||
|
[_BLUE_] = LAYOUT(
|
||||||
|
_______, DYN_MACRO_PLAY1, DYN_MACRO_PLAY2, _______, _______, _______, _______, _______, KC_NUMLOCK, KC_PSLS, KC_PAST, KC_PMNS, _______, _______, _______,
|
||||||
|
_______, DYN_REC_START1, DYN_REC_START2, _______, _______, _______, _______, _______, _______,KC_P7, KC_P8, KC_P9, KC_PMNS, TO(0), _______,
|
||||||
|
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_PPLS, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, KC_PENT, _______, _______,
|
||||||
|
_______, _______, _______, _______, KC_0, KC_PCMM, _______, _______, _______
|
||||||
|
),
|
||||||
|
[_CYAN_] = LAYOUT(
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,TO(0), _______,
|
||||||
|
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
[_MAGENTA_] = LAYOUT(
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,TO(0), _______,
|
||||||
|
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
[_YELLOW_] = LAYOUT(
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,TO(0), _______,
|
||||||
|
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
|
||||||
|
/*template
|
||||||
|
[_UL] = LAYOUT(
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,TO(0), _______,
|
||||||
|
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
)
|
||||||
|
*/
|
||||||
|
};
|
||||||
|
|
||||||
|
#ifdef _______
|
||||||
|
#undef _______
|
||||||
|
#define _______ {0, 0, 0}
|
||||||
|
|
||||||
|
const uint8_t PROGMEM ledmap[][3] = {
|
||||||
|
[_BL] = _______,
|
||||||
|
[_RED_] = RED,
|
||||||
|
[_GREEN_] = GREEN,
|
||||||
|
[_BLUE_] = BLUE,
|
||||||
|
[_CYAN_] = CYAN,
|
||||||
|
[_MAGENTA_] = MAGENTA,
|
||||||
|
[_YELLOW_] = YELLOW
|
||||||
|
};
|
||||||
|
|
||||||
|
#undef _______
|
||||||
|
#define _______ KC_TRNS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void keyboard_post_init_user(void) {
|
||||||
|
// Call the post init code.
|
||||||
|
#ifdef CONSOLE_ENABLE
|
||||||
|
debug_enable=true;
|
||||||
|
debug_matrix=true;
|
||||||
|
#endif
|
||||||
|
rgb_matrix_set_flags(LED_FLAG_UNDERGLOW);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||||
|
#ifdef CONSOLE_ENABLE
|
||||||
|
//useful for getting matrix right
|
||||||
|
uprintf("KL: kc: 0x%04X, col: %u, row: %u, pressed: %b, time: %u, interrupt: %b, count: %u\n", keycode, record->event.key.col, record->event.key.row, record->event.pressed, record->event.time, record->tap.interrupted, record->tap.count);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
switch (keycode) {
|
||||||
|
case RGB_TOG:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
switch (rgb_matrix_get_flags()) {
|
||||||
|
case LED_FLAG_ALL: {
|
||||||
|
rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR);
|
||||||
|
rgb_matrix_set_color_all(0, 0, 0);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case (LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR): {
|
||||||
|
rgb_matrix_set_flags(LED_FLAG_UNDERGLOW);
|
||||||
|
rgb_matrix_set_color_all(0, 0, 0);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case LED_FLAG_UNDERGLOW: {
|
||||||
|
rgb_matrix_set_flags(LED_FLAG_NONE);
|
||||||
|
rgb_matrix_disable_noeeprom();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default: {
|
||||||
|
rgb_matrix_set_flags(LED_FLAG_ALL);
|
||||||
|
rgb_matrix_enable_noeeprom();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
default:
|
||||||
|
return true; // Process all other keycodes normally
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void setCapsLock(void) {
|
||||||
|
led_t host_leds = host_keyboard_led_state();
|
||||||
|
if (host_leds.caps_lock) {
|
||||||
|
rgb_matrix_set_color(30, 0xFF, 0xFF, 0xFF);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
//if capslock is not pressed don't clear it, it might be used for displaying led pattern
|
||||||
|
if((rgb_matrix_get_flags() != LED_FLAG_ALL)) {
|
||||||
|
rgb_matrix_set_color(30, 0x0, 0x0, 0x0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void set_layer_color(int layer) {
|
||||||
|
int ledkey=0;
|
||||||
|
for(int i=0; i<MATRIX_COLS*MATRIX_ROWS;i++) {
|
||||||
|
uint8_t row = i/MATRIX_COLS;
|
||||||
|
uint8_t col=(i-(i/MATRIX_COLS)*MATRIX_COLS);
|
||||||
|
uint16_t key=pgm_read_word(&keymaps[layer][row][col]);
|
||||||
|
//continue if this is not a valid key
|
||||||
|
if(key==KC_NO) { continue; }
|
||||||
|
//clear key if it is only a transition
|
||||||
|
if ((key == KC_TRNS)) {
|
||||||
|
if(rgb_matrix_get_flags() != LED_FLAG_ALL){
|
||||||
|
rgb_matrix_set_color(ledkey, 0, 0, 0);
|
||||||
|
}
|
||||||
|
}else {
|
||||||
|
//this key does something - light it up
|
||||||
|
HSV hsv = {
|
||||||
|
.h = pgm_read_byte(&ledmap[layer][0]),
|
||||||
|
.s = pgm_read_byte(&ledmap[layer][1]),
|
||||||
|
.v = pgm_read_byte(&ledmap[layer][2]),
|
||||||
|
};
|
||||||
|
|
||||||
|
RGB rgb = hsv_to_rgb(hsv);
|
||||||
|
float f = (float)rgb_matrix_config.hsv.v / UINT8_MAX;
|
||||||
|
if( (layer != 0) || (rgb_matrix_get_flags() != LED_FLAG_ALL))
|
||||||
|
rgb_matrix_set_color(ledkey, f * rgb.r, f * rgb.g, f * rgb.b);
|
||||||
|
}
|
||||||
|
//if we are on layer 0 set capslock to correct status
|
||||||
|
if(layer==0 && i==30) { setCapsLock(); }
|
||||||
|
ledkey++;
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
void rgb_matrix_indicators_user(void) {
|
||||||
|
set_layer_color(get_highest_layer(layer_state));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef LEADER_ENABLE
|
||||||
|
LEADER_EXTERNS();
|
||||||
|
|
||||||
|
//SEND_STRING seems to be local dependent.
|
||||||
|
//For swiss-german layout I have to send "ctrl+." to get ":"
|
||||||
|
void matrix_scan_user(void) {
|
||||||
|
LEADER_DICTIONARY() {
|
||||||
|
leading = false;
|
||||||
|
leader_end();
|
||||||
|
|
||||||
|
SEQ_ONE_KEY(KC_F) {
|
||||||
|
// Anything you can do in a macro.
|
||||||
|
SEND_STRING("QMK is awesome.");
|
||||||
|
}
|
||||||
|
SEQ_TWO_KEYS(KC_D, KC_D) {
|
||||||
|
SEND_STRING(SS_LCTL("a") SS_LCTL("c"));
|
||||||
|
}
|
||||||
|
SEQ_THREE_KEYS(KC_D, KC_D, KC_S) {
|
||||||
|
SEND_STRING("https");
|
||||||
|
register_code(KC_LSFT);
|
||||||
|
SEND_STRING(".77");
|
||||||
|
unregister_code(KC_LSFT);
|
||||||
|
SEND_STRING("start.duckduckgo.com\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,63 @@
|
|||||||
|
/* Copyright 2019 ash0x0 2021 peepeetee, deadolus
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
#include "print.h"
|
||||||
|
#include <string.h>
|
||||||
|
// HID has not yet been implemented for this keyboard
|
||||||
|
// #include "raw_hid.h"
|
||||||
|
|
||||||
|
#define MILLISECONDS_IN_SECOND 1000
|
||||||
|
|
||||||
|
// These are just to make it neater to use builtin HSV values in the keymap
|
||||||
|
#define RED {HSV_RED}
|
||||||
|
#define CORAL {HSV_CORAL}
|
||||||
|
#define ORANGE {HSV_ORANGE}
|
||||||
|
#define GOLDEN {HSV_GOLDENROD}
|
||||||
|
#define GOLD {HSV_GOLD}
|
||||||
|
#define YELLOW {HSV_YELLOW}
|
||||||
|
#define CHART {HSV_CHARTREUSE}
|
||||||
|
#define GREEN {HSV_GREEN}
|
||||||
|
#define SPRING {HSV_SPRINGGREEN}
|
||||||
|
#define TURQ {HSV_TURQUOISE}
|
||||||
|
#define TEAL {HSV_TEAL}
|
||||||
|
#define CYAN {HSV_CYAN}
|
||||||
|
#define AZURE {HSV_AZURE}
|
||||||
|
#define BLUE {HSV_BLUE}
|
||||||
|
#define PURPLE {HSV_PURPLE}
|
||||||
|
#define MAGENTA {HSV_MAGENTA}
|
||||||
|
#define PINK {HSV_PINK}
|
||||||
|
|
||||||
|
//========================================================== CONFIGURABLE DEFAULTS ==========================================================
|
||||||
|
#define RGB_DEFAULT_TIME_OUT 30
|
||||||
|
#define RGB_FAST_MODE_TIME_OUT 3
|
||||||
|
#define RGB_TIME_OUT_MAX 600
|
||||||
|
#define RGB_TIME_OUT_MIN 10
|
||||||
|
#define RGB_TIME_OUT_STEP 10
|
||||||
|
|
||||||
|
extern bool g_suspend_state;
|
||||||
|
bool disable_layer_color;
|
||||||
|
|
||||||
|
uint8_t dfa_state; //state for my language switching DFA
|
||||||
|
|
||||||
|
|
||||||
|
bool rgb_enabled_flag; // Current LED state flag. If false then LED is off.
|
||||||
|
bool rgb_time_out_enable; // Idle LED toggle enable. If false then LED will not turn off after idle timeout.
|
||||||
|
bool rgb_time_out_fast_mode_enabled; // Enable flag for RGB timeout fast mode
|
||||||
|
bool rgb_time_out_user_value; // This holds the toggle value set by user with ROUT_TG. It's necessary as RGB_TOG changes timeout enable.
|
||||||
|
uint16_t rgb_time_out_seconds; // Idle LED timeout value, in seconds not milliseconds
|
||||||
|
uint16_t rgb_time_out_saved_seconds; // The saved user config for RGB timeout period
|
||||||
|
led_flags_t rgb_time_out_saved_flag; // Store LED flag before timeout so it can be restored when LED is turned on again.
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
# Deadolus' keymap for the bm65iso
|
||||||
|
|
||||||
|
* Six layers (even though three are mostly empty)
|
||||||
|
* Different color for each layer (r,g,b,c,m,y)
|
||||||
|
* **Keys with something else defined than KC_TRNS are lit up in the layer color, so you easily can see which keys have some function defined**
|
||||||
|
* Caps-Lock lights up when active and on layer 0
|
||||||
|
* Some leader shortcuts defined - nothing useful yet
|
||||||
|
* Some space cadet keys defined for easier insertion of () and {}
|
||||||
|
* Bootmagic lite enabled via default settings so you can plug in the keyboard while holding esc to land in bootloader mode
|
||||||
|
* Manages all this and still fits in to the program memory
|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make bm65iso:deadolus
|
||||||
|
|
||||||
|
Flashing example for this keyboard:
|
||||||
|
|
||||||
|
make bm65iso:deadolus:flash
|
||||||
|
|
||||||
|
Keyboard Maintainer: **[deadolus](https://github.com/deadolus)**
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
DYNAMIC_MACRO_ENABLE = yes
|
||||||
|
TAP_DANCE_ENABLE = yes
|
||||||
|
LEADER_ENABLE = yes
|
||||||
|
#CONSOLE_ENABLE=yes
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
/* Copyright 2021 deadolus
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[0] = LAYOUT(
|
||||||
|
KC_CAPS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL,
|
||||||
|
KC_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_ENT, KC_HOME,
|
||||||
|
KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_PGUP,
|
||||||
|
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
|
|
||||||
|
),
|
||||||
|
[1] = LAYOUT(
|
||||||
|
RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
|
||||||
|
};
|
||||||
@@ -0,0 +1,48 @@
|
|||||||
|
/* Copyright 2021 deadolus
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[0] = LAYOUT(
|
||||||
|
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_DEL,
|
||||||
|
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_ENT, KC_HOME,
|
||||||
|
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_PGUP,
|
||||||
|
KC_LSFT, KC_BSLS, 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,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
|
),
|
||||||
|
[1] = LAYOUT(
|
||||||
|
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, _______, _______,
|
||||||
|
_______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
[2] = LAYOUT(
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
[3] = LAYOUT(
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
|
||||||
|
};
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
# The VIA default keymap for bm65iso
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
VIA_ENABLE = yes
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
# bm65iso
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
A 65% hotswap in switch RGB keyboard from KPRepublic.
|
||||||
|
|
||||||
|
* Keyboard Maintainer: [deadolus](https://github.com/deadolus)
|
||||||
|
* Hardware Supported: BM65 ISO
|
||||||
|
* Hardware Availability: [KP Republic](https://kprepublic.com/products/bm65rgb-bm65-iso-rgb-65-hot-swappable-custom-mechanical-keyboard-pcb-programmed-qmk-via-firmware-rgb-switch-underglow-type-c)
|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make bm65iso:default
|
||||||
|
|
||||||
|
Flashing example for this keyboard:
|
||||||
|
|
||||||
|
make bm65iso:default:flash
|
||||||
|
|
||||||
|
To reset the board into bootloader mode, do one of the following:
|
||||||
|
|
||||||
|
* Short the two-pad footprint to the left of the spacebar switch while the board is plugged in
|
||||||
|
* Hold the Esc key while connecting the USB cable (also erases persistent settings)
|
||||||
|
|
||||||
|
See 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).
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
# MCU name
|
||||||
|
MCU = atmega32u4
|
||||||
|
|
||||||
|
# Bootloader selection
|
||||||
|
BOOTLOADER = atmel-dfu
|
||||||
|
|
||||||
|
# Build Options
|
||||||
|
# change yes to no to disable
|
||||||
|
#
|
||||||
|
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
|
||||||
|
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||||
|
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||||
|
CONSOLE_ENABLE = no # Console for debug
|
||||||
|
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||||
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
|
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||||
|
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
|
NKRO_ENABLE = yes # USB Nkey Rollover
|
||||||
|
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||||
|
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||||
|
BLUETOOTH_ENABLE = no # Enable Bluetooth
|
||||||
|
AUDIO_ENABLE = no # Audio output
|
||||||
|
RGB_MATRIX_ENABLE = yes
|
||||||
|
RGB_MATRIX_DRIVER = WS2812
|
||||||
|
LTO_ENABLE = yes
|
||||||
@@ -0,0 +1,72 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2021 CapsUnlocked
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "config_common.h"
|
||||||
|
|
||||||
|
/* USB Device descriptor parameter */
|
||||||
|
#define VENDOR_ID 0x4355
|
||||||
|
#define PRODUCT_ID 0x0007
|
||||||
|
#define DEVICE_VER 0x0001
|
||||||
|
#define MANUFACTURER CapsUnlocked
|
||||||
|
#define PRODUCT CU7
|
||||||
|
|
||||||
|
/* key matrix size */
|
||||||
|
#define MATRIX_ROWS 3
|
||||||
|
#define MATRIX_COLS 3
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Keyboard Matrix Assignments
|
||||||
|
*
|
||||||
|
* Change this to how you wired your keyboard
|
||||||
|
* COLS: AVR pins used for columns, left to right
|
||||||
|
* ROWS: AVR pins used for rows, top to bottom
|
||||||
|
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
|
||||||
|
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define ENCODER_RESOLUTION 2
|
||||||
|
|
||||||
|
#define ENCODERS_PAD_A { D6 }
|
||||||
|
#define ENCODERS_PAD_B { D4 }
|
||||||
|
|
||||||
|
#define MATRIX_ROW_PINS { D7, F0, F6 }
|
||||||
|
#define MATRIX_COL_PINS { F5, F7, F4 }
|
||||||
|
#define UNUSED_PINS
|
||||||
|
|
||||||
|
/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */
|
||||||
|
#define DIODE_DIRECTION COL2ROW
|
||||||
|
|
||||||
|
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||||
|
#define DEBOUNCE 5
|
||||||
|
|
||||||
|
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||||
|
#define LOCKING_SUPPORT_ENABLE
|
||||||
|
/* Locking resynchronize hack */
|
||||||
|
#define LOCKING_RESYNC_ENABLE
|
||||||
|
|
||||||
|
#define RGB_DI_PIN F1
|
||||||
|
#ifdef RGB_DI_PIN
|
||||||
|
#define RGBLIGHT_ANIMATIONS
|
||||||
|
// #define RGBLIGHT_EFFECT_BREATHING
|
||||||
|
#define RGBLED_NUM 6
|
||||||
|
#define RGBLIGHT_HUE_STEP 10
|
||||||
|
#define RGBLIGHT_SAT_STEP 17
|
||||||
|
#define RGBLIGHT_VAL_STEP 17
|
||||||
|
#define RGBLIGHT_LIMIT_VAL 50
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2021 CapsUnlocked
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#include "cu7.h"
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2021 CapsUnlocked
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "quantum.h"
|
||||||
|
|
||||||
|
/* This a shortcut to help you visually see your layout.
|
||||||
|
*
|
||||||
|
* The first section contains all of the arguments representing the physical
|
||||||
|
* layout of the board and position of the keys.
|
||||||
|
*
|
||||||
|
* The second converts the arguments into a two-dimensional array which
|
||||||
|
* represents the switch matrix.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define LAYOUT( \
|
||||||
|
K01, \
|
||||||
|
K10, K11, K12, \
|
||||||
|
K20, K21, K22 \
|
||||||
|
) { \
|
||||||
|
{ KC_NO, K01, KC_NO }, \
|
||||||
|
{ K10, K11, K12 }, \
|
||||||
|
{ K20, K21, K22 } \
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "CU7",
|
||||||
|
"url": "https://caps-unlocked.com/cu7/",
|
||||||
|
"maintainer": "rys",
|
||||||
|
"width": 3,
|
||||||
|
"height": 4.5,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT": {
|
||||||
|
"layout": [{"x":0, "y":2.5}, {"x":1, "y":2.5}, {"x":2, "y":2.5}, {"x":0, "y":3.5}, {"x":1, "y":3.5}, {"x":2, "y":3.5}]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2021 CapsUnlocked
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[0] = LAYOUT(
|
||||||
|
MO(1),
|
||||||
|
KC_1, KC_2, KC_3,
|
||||||
|
KC_4, KC_5, KC_6
|
||||||
|
),
|
||||||
|
[1] = LAYOUT(
|
||||||
|
_______,
|
||||||
|
RGB_MOD, KC_UP, RESET,
|
||||||
|
KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
|
),
|
||||||
|
};
|
||||||
|
|
||||||
|
// Volume up/down on the encoder
|
||||||
|
bool encoder_update_user(uint8_t index, bool clockwise) {
|
||||||
|
if (clockwise) {
|
||||||
|
tap_code_delay(KC_VOLU, 10);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
tap_code_delay(KC_VOLD, 10);
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
# The default keymap for CU7
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
# CU7
|
||||||
|
|
||||||
|
The CU7 is a customisable 3x2 key macropad with a clickable rotary encoder.
|
||||||
|
|
||||||
|
To place the keyboard into bootloader mode in order to flash it, use the reset button on the PCB.
|
||||||
|
|
||||||
|
* Keyboard maintainer: [rys](https://github.com/rys)
|
||||||
|
* Hardware supported: CU7
|
||||||
|
* Hardware availability: [CapsUnlocked](https://caps-unlocked.com/cu7/)
|
||||||
|
|
||||||
|
Make and flash example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make capsunlocked/cu7:default:flash
|
||||||
|
|
||||||
|
See 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).
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
# MCU name
|
||||||
|
MCU = atmega32u4
|
||||||
|
|
||||||
|
# Bootloader
|
||||||
|
BOOTLOADER = atmel-dfu
|
||||||
|
|
||||||
|
# Build Options
|
||||||
|
# change yes to no to disable
|
||||||
|
#
|
||||||
|
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
|
||||||
|
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||||
|
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||||
|
CONSOLE_ENABLE = no # Console for debug
|
||||||
|
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||||
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
|
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||||
|
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
|
NKRO_ENABLE = no # USB Nkey Rollover
|
||||||
|
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||||
|
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
|
||||||
|
BLUETOOTH_ENABLE = no # Enable Bluetooth
|
||||||
|
AUDIO_ENABLE = no # Audio output
|
||||||
|
ENCODER_ENABLE = yes
|
||||||
@@ -4,12 +4,152 @@
|
|||||||
"maintainer": "nasp",
|
"maintainer": "nasp",
|
||||||
"width": 15,
|
"width": 15,
|
||||||
"height": 5,
|
"height": 5,
|
||||||
|
"layout_aliases": {
|
||||||
|
"LAYOUT_2x3u": "LAYOUT_60_tsangan_hhkb_split_space",
|
||||||
|
"LAYOUT_7u": "LAYOUT_60_tsangan_hhkb"
|
||||||
|
},
|
||||||
"layouts": {
|
"layouts": {
|
||||||
"LAYOUT": {
|
"LAYOUT_60_tsangan_hhkb_split_space": {
|
||||||
"2x3u": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"~", "x":13, "y":0}, {"label":"Bksp", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Fn", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.5}, {"label":"Win", "x":1.5, "y":4}, {"label":"Alt", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":3}, {"x":7, "y":4}, {"x":8, "y":4, "w":3}, {"label":"Alt", "x":11, "y":4, "w":1.5}, {"label":"Win", "x":12.5, "y":4}, {"label":"Ctrl", "x":13.5, "y":4, "w":1.5}]
|
"layout": [
|
||||||
|
{"label":"Esc", "x":0, "y":0},
|
||||||
|
{"label":"!", "x":1, "y":0},
|
||||||
|
{"label":"@", "x":2, "y":0},
|
||||||
|
{"label":"#", "x":3, "y":0},
|
||||||
|
{"label":"$", "x":4, "y":0},
|
||||||
|
{"label":"%", "x":5, "y":0},
|
||||||
|
{"label":"^", "x":6, "y":0},
|
||||||
|
{"label":"&", "x":7, "y":0},
|
||||||
|
{"label":"*", "x":8, "y":0},
|
||||||
|
{"label":"(", "x":9, "y":0},
|
||||||
|
{"label":")", "x":10, "y":0},
|
||||||
|
{"label":"_", "x":11, "y":0},
|
||||||
|
{"label":"+", "x":12, "y":0},
|
||||||
|
{"label":"~", "x":13, "y":0},
|
||||||
|
{"label":"Bksp", "x":14, "y":0},
|
||||||
|
|
||||||
|
{"label":"Tab", "x":0, "y":1, "w":1.5},
|
||||||
|
{"label":"Q", "x":1.5, "y":1},
|
||||||
|
{"label":"W", "x":2.5, "y":1},
|
||||||
|
{"label":"E", "x":3.5, "y":1},
|
||||||
|
{"label":"R", "x":4.5, "y":1},
|
||||||
|
{"label":"T", "x":5.5, "y":1},
|
||||||
|
{"label":"Y", "x":6.5, "y":1},
|
||||||
|
{"label":"U", "x":7.5, "y":1},
|
||||||
|
{"label":"I", "x":8.5, "y":1},
|
||||||
|
{"label":"O", "x":9.5, "y":1},
|
||||||
|
{"label":"P", "x":10.5, "y":1},
|
||||||
|
{"label":"{", "x":11.5, "y":1},
|
||||||
|
{"label":"}", "x":12.5, "y":1},
|
||||||
|
{"label":"|", "x":13.5, "y":1, "w":1.5},
|
||||||
|
|
||||||
|
{"label":"Caps Lock", "x":0, "y":2, "w":1.75},
|
||||||
|
{"label":"A", "x":1.75, "y":2},
|
||||||
|
{"label":"S", "x":2.75, "y":2},
|
||||||
|
{"label":"D", "x":3.75, "y":2},
|
||||||
|
{"label":"F", "x":4.75, "y":2},
|
||||||
|
{"label":"G", "x":5.75, "y":2},
|
||||||
|
{"label":"H", "x":6.75, "y":2},
|
||||||
|
{"label":"J", "x":7.75, "y":2},
|
||||||
|
{"label":"K", "x":8.75, "y":2},
|
||||||
|
{"label":"L", "x":9.75, "y":2},
|
||||||
|
{"label":":", "x":10.75, "y":2},
|
||||||
|
{"label":"\"", "x":11.75, "y":2},
|
||||||
|
{"label":"Enter", "x":12.75, "y":2, "w":2.25},
|
||||||
|
|
||||||
|
{"label":"Shift", "x":0, "y":3, "w":2.25},
|
||||||
|
{"label":"Z", "x":2.25, "y":3},
|
||||||
|
{"label":"X", "x":3.25, "y":3},
|
||||||
|
{"label":"C", "x":4.25, "y":3},
|
||||||
|
{"label":"V", "x":5.25, "y":3},
|
||||||
|
{"label":"B", "x":6.25, "y":3},
|
||||||
|
{"label":"N", "x":7.25, "y":3},
|
||||||
|
{"label":"M", "x":8.25, "y":3},
|
||||||
|
{"label":"<", "x":9.25, "y":3},
|
||||||
|
{"label":">", "x":10.25, "y":3},
|
||||||
|
{"label":"?", "x":11.25, "y":3},
|
||||||
|
{"label":"Shift", "x":12.25, "y":3, "w":1.75},
|
||||||
|
{"label":"Fn", "x":14, "y":3},
|
||||||
|
|
||||||
|
{"label":"Ctrl", "x":0, "y":4, "w":1.5},
|
||||||
|
{"label":"Win", "x":1.5, "y":4},
|
||||||
|
{"label":"Alt", "x":2.5, "y":4, "w":1.5},
|
||||||
|
{"x":4, "y":4, "w":3},
|
||||||
|
{"x":7, "y":4},
|
||||||
|
{"x":8, "y":4, "w":3},
|
||||||
|
{"label":"Alt", "x":11, "y":4, "w":1.5},
|
||||||
|
{"label":"Win", "x":12.5, "y":4},
|
||||||
|
{"label":"Ctrl", "x":13.5, "y":4, "w":1.5}
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"LAYOUT": {
|
"LAYOUT_60_tsangan_hhkb": {
|
||||||
"7u": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"~", "x":13, "y":0}, {"label":"Bksp", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Fn", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.5}, {"label":"Win", "x":1.5, "y":4}, {"label":"Alt", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"label":"Alt", "x":11, "y":4, "w":1.5}, {"label":"Win", "x":12.5, "y":4}, {"label":"Ctrl", "x":13.5, "y":4, "w":1.5}]
|
"layout": [
|
||||||
|
{"label":"Esc", "x":0, "y":0},
|
||||||
|
{"label":"!", "x":1, "y":0},
|
||||||
|
{"label":"@", "x":2, "y":0},
|
||||||
|
{"label":"#", "x":3, "y":0},
|
||||||
|
{"label":"$", "x":4, "y":0},
|
||||||
|
{"label":"%", "x":5, "y":0},
|
||||||
|
{"label":"^", "x":6, "y":0},
|
||||||
|
{"label":"&", "x":7, "y":0},
|
||||||
|
{"label":"*", "x":8, "y":0},
|
||||||
|
{"label":"(", "x":9, "y":0},
|
||||||
|
{"label":")", "x":10, "y":0},
|
||||||
|
{"label":"_", "x":11, "y":0},
|
||||||
|
{"label":"+", "x":12, "y":0},
|
||||||
|
{"label":"~", "x":13, "y":0},
|
||||||
|
{"label":"Bksp", "x":14, "y":0},
|
||||||
|
|
||||||
|
{"label":"Tab", "x":0, "y":1, "w":1.5},
|
||||||
|
{"label":"Q", "x":1.5, "y":1},
|
||||||
|
{"label":"W", "x":2.5, "y":1},
|
||||||
|
{"label":"E", "x":3.5, "y":1},
|
||||||
|
{"label":"R", "x":4.5, "y":1},
|
||||||
|
{"label":"T", "x":5.5, "y":1},
|
||||||
|
{"label":"Y", "x":6.5, "y":1},
|
||||||
|
{"label":"U", "x":7.5, "y":1},
|
||||||
|
{"label":"I", "x":8.5, "y":1},
|
||||||
|
{"label":"O", "x":9.5, "y":1},
|
||||||
|
{"label":"P", "x":10.5, "y":1},
|
||||||
|
{"label":"{", "x":11.5, "y":1},
|
||||||
|
{"label":"}", "x":12.5, "y":1},
|
||||||
|
{"label":"|", "x":13.5, "y":1, "w":1.5},
|
||||||
|
|
||||||
|
{"label":"Caps Lock", "x":0, "y":2, "w":1.75},
|
||||||
|
{"label":"A", "x":1.75, "y":2},
|
||||||
|
{"label":"S", "x":2.75, "y":2},
|
||||||
|
{"label":"D", "x":3.75, "y":2},
|
||||||
|
{"label":"F", "x":4.75, "y":2},
|
||||||
|
{"label":"G", "x":5.75, "y":2},
|
||||||
|
{"label":"H", "x":6.75, "y":2},
|
||||||
|
{"label":"J", "x":7.75, "y":2},
|
||||||
|
{"label":"K", "x":8.75, "y":2},
|
||||||
|
{"label":"L", "x":9.75, "y":2},
|
||||||
|
{"label":":", "x":10.75, "y":2},
|
||||||
|
{"label":"\"", "x":11.75, "y":2},
|
||||||
|
{"label":"Enter", "x":12.75, "y":2, "w":2.25},
|
||||||
|
|
||||||
|
{"label":"Shift", "x":0, "y":3, "w":2.25},
|
||||||
|
{"label":"Z", "x":2.25, "y":3},
|
||||||
|
{"label":"X", "x":3.25, "y":3},
|
||||||
|
{"label":"C", "x":4.25, "y":3},
|
||||||
|
{"label":"V", "x":5.25, "y":3},
|
||||||
|
{"label":"B", "x":6.25, "y":3},
|
||||||
|
{"label":"N", "x":7.25, "y":3},
|
||||||
|
{"label":"M", "x":8.25, "y":3},
|
||||||
|
{"label":"<", "x":9.25, "y":3},
|
||||||
|
{"label":">", "x":10.25, "y":3},
|
||||||
|
{"label":"?", "x":11.25, "y":3},
|
||||||
|
{"label":"Shift", "x":12.25, "y":3, "w":1.75},
|
||||||
|
{"label":"Fn", "x":14, "y":3},
|
||||||
|
|
||||||
|
{"label":"Ctrl", "x":0, "y":4, "w":1.5},
|
||||||
|
{"label":"Win", "x":1.5, "y":4},
|
||||||
|
{"label":"Alt", "x":2.5, "y":4, "w":1.5},
|
||||||
|
{"x":4, "y":4, "w":7},
|
||||||
|
{"label":"Alt", "x":11, "y":4, "w":1.5},
|
||||||
|
{"label":"Win", "x":12.5, "y":4},
|
||||||
|
{"label":"Ctrl", "x":13.5, "y":4, "w":1.5}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -34,7 +34,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
* |Ctrl |GUI |Alt | Space |Alt |GUI |Ctrl |
|
* |Ctrl |GUI |Alt | Space |Alt |GUI |Ctrl |
|
||||||
* `-------------------------------------------------------------'
|
* `-------------------------------------------------------------'
|
||||||
*/
|
*/
|
||||||
[0] = LAYOUT_7u(
|
[0] = LAYOUT_60_tsangan_hhkb(
|
||||||
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_BSLS, KC_DEL,
|
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_BSLS, KC_DEL,
|
||||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
|
||||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
KC_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,
|
||||||
@@ -54,7 +54,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
* | | | | | | |RESET |
|
* | | | | | | |RESET |
|
||||||
* `------------------------------------------------------------------------------'
|
* `------------------------------------------------------------------------------'
|
||||||
*/
|
*/
|
||||||
[1] = LAYOUT_7u(
|
[1] = LAYOUT_60_tsangan_hhkb(
|
||||||
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_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, _______,
|
||||||
RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
@@ -75,7 +75,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
* | | | | | | |RESET |
|
* | | | | | | |RESET |
|
||||||
* `------------------------------------------------------------------------------'
|
* `------------------------------------------------------------------------------'
|
||||||
*/
|
*/
|
||||||
[2] = LAYOUT_7u(
|
[2] = LAYOUT_60_tsangan_hhkb(
|
||||||
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_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, _______,
|
||||||
RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
|||||||
File renamed without changes.
+3
-3
@@ -32,7 +32,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
* |Ctrl |GUI |Alt |Space |BLTOG |Space |Alt |GUI |Ctrl |
|
* |Ctrl |GUI |Alt |Space |BLTOG |Space |Alt |GUI |Ctrl |
|
||||||
* `-------------------------------------------------------------'
|
* `-------------------------------------------------------------'
|
||||||
*/
|
*/
|
||||||
[0] = LAYOUT_2x3u(
|
[0] = LAYOUT_60_tsangan_hhkb_split_space(
|
||||||
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_BSLS, KC_DEL,
|
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_BSLS, KC_DEL,
|
||||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
|
||||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
KC_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,
|
||||||
@@ -52,7 +52,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
* | | | | | | | | |RESET |
|
* | | | | | | | | |RESET |
|
||||||
* `------------------------------------------------------------------------------'
|
* `------------------------------------------------------------------------------'
|
||||||
*/
|
*/
|
||||||
[1] = LAYOUT_2x3u(
|
[1] = LAYOUT_60_tsangan_hhkb_split_space(
|
||||||
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_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, _______,
|
||||||
RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
@@ -73,7 +73,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
* | | | | | | | | |RESET |
|
* | | | | | | | | |RESET |
|
||||||
* `------------------------------------------------------------------------------'
|
* `------------------------------------------------------------------------------'
|
||||||
*/
|
*/
|
||||||
[2] = LAYOUT_2x3u(
|
[2] = LAYOUT_60_tsangan_hhkb_split_space(
|
||||||
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_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, _______,
|
||||||
RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
@@ -43,7 +43,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
* └────┴───┴────┴──────────┴────────┴────┴────┘ │ ← │ ↓ │ → │
|
* └────┴───┴────┴──────────┴────────┴────┴────┘ │ ← │ ↓ │ → │
|
||||||
* └───┴───┴───┘
|
* └───┴───┴───┘
|
||||||
*/
|
*/
|
||||||
[_BASE] = LAYOUT_2x3u(
|
[_BASE] = LAYOUT_60_tsangan_hhkb_split_space(
|
||||||
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_BSLS, KC_DEL,
|
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_BSLS, KC_DEL,
|
||||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
|
||||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
KC_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,
|
||||||
@@ -62,7 +62,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
* └────┴───┴────┴──────────┴────────┴────┴────┘ │ │ │ │
|
* └────┴───┴────┴──────────┴────────┴────┴────┘ │ │ │ │
|
||||||
* └───┴───┴───┘
|
* └───┴───┴───┘
|
||||||
*/
|
*/
|
||||||
[_FN1] = LAYOUT_2x3u(
|
[_FN1] = LAYOUT_60_tsangan_hhkb_split_space(
|
||||||
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_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, _______,
|
||||||
RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
@@ -82,7 +82,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
* └────┴────┴────┴──────────┴────────┴────┴────┘ │ │ │ │
|
* └────┴────┴────┴──────────┴────────┴────┴────┘ │ │ │ │
|
||||||
* └───┴───┴───┘
|
* └───┴───┴───┘
|
||||||
*/
|
*/
|
||||||
[_FN2] = LAYOUT_2x3u(
|
[_FN2] = LAYOUT_60_tsangan_hhkb_split_space(
|
||||||
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_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, _______,
|
||||||
RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
@@ -90,7 +90,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
_______, _______, _______, _______, _______, _______, _______, _______, RESET
|
_______, _______, _______, _______, _______, _______, _______, _______, RESET
|
||||||
),
|
),
|
||||||
|
|
||||||
[_VIA] = LAYOUT_2x3u(
|
[_VIA] = LAYOUT_60_tsangan_hhkb_split_space(
|
||||||
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_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, _______,
|
||||||
RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
#define xxx KC_NO
|
#define xxx KC_NO
|
||||||
|
|
||||||
#define LAYOUT_2x3u( \
|
#define LAYOUT_60_tsangan_hhkb_split_space( \
|
||||||
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k4D, \
|
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k4D, \
|
||||||
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, \
|
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, \
|
||||||
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, \
|
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, \
|
||||||
@@ -34,7 +34,7 @@
|
|||||||
{ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, xxx, k3D }, \
|
{ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, xxx, k3D }, \
|
||||||
{ k40, k41, k42, xxx, k44, xxx, k46, xxx, k48, xxx, k4A, k4B, k4C, k4D } \
|
{ k40, k41, k42, xxx, k44, xxx, k46, xxx, k48, xxx, k4A, k4B, k4C, k4D } \
|
||||||
}
|
}
|
||||||
#define LAYOUT_7u( \
|
#define LAYOUT_60_tsangan_hhkb( \
|
||||||
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k4D, \
|
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k4D, \
|
||||||
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, \
|
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, \
|
||||||
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, \
|
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, \
|
||||||
|
|||||||
File renamed without changes.
File renamed without changes.
Whitespace-only changes.
@@ -0,0 +1,154 @@
|
|||||||
|
/* Copyright 2017 Zach White <[email protected]>
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "2021.h"
|
||||||
|
#include "max7219.h"
|
||||||
|
#include "font.h"
|
||||||
|
|
||||||
|
#ifndef DRAWING_TOY_MODE
|
||||||
|
static uint16_t led_frame_timer = 0;
|
||||||
|
|
||||||
|
void matrix_scan_kb(void) {
|
||||||
|
if (timer_elapsed(led_frame_timer) > 100) {
|
||||||
|
max7219_message_sign_task(true);
|
||||||
|
led_frame_timer = timer_read();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
void matrix_init_kb(void) {
|
||||||
|
max7219_init();
|
||||||
|
|
||||||
|
#if defined(MAX7219_LED_TEST)
|
||||||
|
while(1) {
|
||||||
|
for (int i=0; i<MAX7219_CONTROLLERS; i++) {
|
||||||
|
max7219_display_test(i, true);
|
||||||
|
wait_ms(500);
|
||||||
|
max7219_display_test(i, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#elif defined(MAX7219_LED_ITERATE)
|
||||||
|
while (1) {
|
||||||
|
for (int row=0; row<8; row++) {
|
||||||
|
for(int col=0;col<8*MAX7219_CONTROLLERS;col++) {
|
||||||
|
max7219_set_led(row, col, true);
|
||||||
|
wait_ms(500);
|
||||||
|
max7219_set_led(row, col, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#elif defined(MAX7219_LED_DANCE)
|
||||||
|
while (1) {
|
||||||
|
for (int col=0; col<8; col++) {
|
||||||
|
for (int device_num=0; device_num<MAX7219_CONTROLLERS; device_num++) {
|
||||||
|
if (col % 2 == 0) {
|
||||||
|
max7219_led_a[col][device_num] = 0b01010101;
|
||||||
|
} else {
|
||||||
|
max7219_led_a[col][device_num] = 0b10101010;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
max7219_write_frame();
|
||||||
|
wait_ms(500);
|
||||||
|
for (int col=0; col<8; col++) {
|
||||||
|
for (int device_num=0; device_num<MAX7219_CONTROLLERS; device_num++) {
|
||||||
|
if (col % 2 == 0) {
|
||||||
|
max7219_led_a[col][device_num] = 0b10101010;
|
||||||
|
} else {
|
||||||
|
max7219_led_a[col][device_num] = 0b01010101;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
max7219_write_frame();
|
||||||
|
wait_ms(500);
|
||||||
|
}
|
||||||
|
#elif defined(MAX7219_LED_FONTTEST)
|
||||||
|
uint8_t message[MSG_FONTTEST_LEN][6] = MSG_FONTTEST;
|
||||||
|
max7219_message_sign(message, MSG_FONTTEST_LEN);
|
||||||
|
#elif defined(MAX7219_LED_CLUEBOARD)
|
||||||
|
uint8_t message[MSG_CLUEBOARD_LEN][6] = MSG_CLUEBOARD;
|
||||||
|
max7219_message_sign(message, MSG_CLUEBOARD_LEN);
|
||||||
|
#elif defined(MAX7219_LED_KONAMI)
|
||||||
|
uint8_t message[MSG_KONAMI_LEN][6] = MSG_KONAMI;
|
||||||
|
max7219_message_sign(message, MSG_KONAMI_LEN);
|
||||||
|
#elif defined(MAX7219_LED_QMK_POWERED)
|
||||||
|
uint8_t message[MSG_QMK_POWERED_LEN][6] = MSG_QMK_POWERED;
|
||||||
|
max7219_message_sign(message, MSG_QMK_POWERED_LEN);
|
||||||
|
#elif defined(DRAWING_TOY_MODE)
|
||||||
|
max7219_set_led(0, 0, true);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
__attribute__ ((weak))
|
||||||
|
bool encoder_update_keymap(int8_t index, bool clockwise) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
#define NUM_COLUMNS 8*MAX7219_CONTROLLERS
|
||||||
|
uint8_t led_position[2] = {0,0}; // The location of the cursor in the matrix
|
||||||
|
|
||||||
|
bool encoder_update_kb(uint8_t index, bool clockwise) {
|
||||||
|
if (!encoder_update_keymap(index, clockwise)) {
|
||||||
|
#if defined(DRAWING_TOY_MODE)
|
||||||
|
// Encoder 1, left
|
||||||
|
if (index == 0 && clockwise) {
|
||||||
|
if (led_position[0] < NUM_COLUMNS-1) { // turned right
|
||||||
|
led_position[0]++;
|
||||||
|
} else {
|
||||||
|
led_position[0]=0;
|
||||||
|
}
|
||||||
|
} else if (index == 0) {
|
||||||
|
if (led_position[0] > 0) { // turned left
|
||||||
|
led_position[0]--;
|
||||||
|
} else {
|
||||||
|
led_position[0]=NUM_COLUMNS-1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Encoder 2, right
|
||||||
|
else if (index == 1 && clockwise) {
|
||||||
|
if (led_position[1] < 7) { // turned right
|
||||||
|
led_position[1]++;
|
||||||
|
} else {
|
||||||
|
led_position[1]=0;
|
||||||
|
}
|
||||||
|
} else if (index == 1) {
|
||||||
|
if (led_position[1] > 0) { // turned left
|
||||||
|
led_position[1]--;
|
||||||
|
} else {
|
||||||
|
led_position[1]=7;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
max7219_set_led(led_position[1], led_position[0], true);
|
||||||
|
#else
|
||||||
|
// Encoder 1, left
|
||||||
|
if (index == 0 && clockwise) {
|
||||||
|
tap_code(KC_MS_R); // turned right
|
||||||
|
} else if (index == 0) {
|
||||||
|
tap_code(KC_MS_L); // turned left
|
||||||
|
}
|
||||||
|
|
||||||
|
// Encoder 2, right
|
||||||
|
else if (index == 1 && clockwise) {
|
||||||
|
tap_code(KC_MS_U); // turned right
|
||||||
|
} else if (index == 1) {
|
||||||
|
tap_code(KC_MS_D); // turned left
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
/* Copyright 2017 Zach White <[email protected]>
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "quantum.h"
|
||||||
@@ -0,0 +1,96 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2017 Zach White <[email protected]>
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "config_common.h"
|
||||||
|
|
||||||
|
/* audio support */
|
||||||
|
#define AUDIO_PIN_ALT B7
|
||||||
|
#define AUDIO_PIN C4
|
||||||
|
#define AUDIO_CLICKY
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Encoder Assignments
|
||||||
|
*/
|
||||||
|
#define ENCODERS_PAD_A { D0, C5 }
|
||||||
|
#define ENCODERS_PAD_B { D1, C6 }
|
||||||
|
#define ENCODER_RESOLUTION 4
|
||||||
|
|
||||||
|
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||||
|
#define LOCKING_SUPPORT_ENABLE
|
||||||
|
|
||||||
|
/* Locking resynchronize hack */
|
||||||
|
#define LOCKING_RESYNC_ENABLE
|
||||||
|
|
||||||
|
// Configure our MAX7219's
|
||||||
|
//#define MAX7219_LOAD B0
|
||||||
|
//#define MAX7219_CONTROLLERS 4
|
||||||
|
//#define MAX7219_LED_INTENSITY 1 // Max: 15
|
||||||
|
|
||||||
|
// Define this to disable the startup test
|
||||||
|
//#define MAX7219_NO_STARTUP_TEST
|
||||||
|
|
||||||
|
/* This controls the speed of the sign, lower is faster. This is the minimal
|
||||||
|
* time between animation frames, in ms. Actual time between frames will
|
||||||
|
* always be slightly longer due to other keyboard tasks.
|
||||||
|
*/
|
||||||
|
//#define MAX7219_SCROLL_TIME 100
|
||||||
|
|
||||||
|
/* This setting controls how big the scrollable area for your message sign
|
||||||
|
* is. If you set it to 0 your display will not work. If you set it to 1
|
||||||
|
* you will have no buffer area, and you will only be able to display a
|
||||||
|
* total of 6 characters. Every number after that increases the buffer area
|
||||||
|
* by 32 columns.
|
||||||
|
*
|
||||||
|
* You can calculate how big to make this for the number of characters you
|
||||||
|
* want to display:
|
||||||
|
*
|
||||||
|
* <number of characters in message> * 6 / 32 + 1
|
||||||
|
*
|
||||||
|
* You do not need to tune this unless you are trying to save ram.
|
||||||
|
*/
|
||||||
|
//#define MAX7219_BUFFER_MULTIPLIER 24
|
||||||
|
|
||||||
|
// You can only define one of these at a time:
|
||||||
|
|
||||||
|
// Define this to test all LEDs. Keyboard functions will not work.
|
||||||
|
//#define MAX7219_LED_TEST
|
||||||
|
|
||||||
|
// Define this to iterate through LEDs 1 by 1. Keyboard functions will not work.
|
||||||
|
//#define MAX7219_LED_ITERATE
|
||||||
|
|
||||||
|
// Define this to show a simple animation. Keyboard functions will not work.
|
||||||
|
//#define MAX7219_LED_DANCE
|
||||||
|
|
||||||
|
// Define this to show all the characters available
|
||||||
|
//#define MAX7219_LED_FONTTEST
|
||||||
|
|
||||||
|
// Define this to show Clueboard on the sign
|
||||||
|
//#define MAX7219_LED_CLUEBOARD
|
||||||
|
|
||||||
|
// Define this to show the Konami code on the sign
|
||||||
|
//#define MAX7219_LED_KONAMI
|
||||||
|
|
||||||
|
// Define this to show QMK on the sign
|
||||||
|
//#define MAX7219_LED_QMK_POWERED
|
||||||
|
|
||||||
|
// Define this to treat the message board like an etch-a-sketch
|
||||||
|
//#define DRAWING_TOY_MODE
|
||||||
|
|
||||||
|
// Define this if you don't want any of the above
|
||||||
|
//#define MAX7219_LED_CUSTOM
|
||||||
@@ -0,0 +1,156 @@
|
|||||||
|
/* 5x8 Font for Clueboard 2x1800.
|
||||||
|
*
|
||||||
|
* Copyright (c) 2021 Zach White <[email protected]>
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person
|
||||||
|
* obtaining a copy of this software and associated documentation
|
||||||
|
* files (the "Software"), to deal in the Software without
|
||||||
|
* restriction, including without limitation the rights to use,
|
||||||
|
* copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the
|
||||||
|
* Software is furnished to do so, subject to the following
|
||||||
|
* conditions:
|
||||||
|
*
|
||||||
|
* This permission notice shall be included in all copies or
|
||||||
|
* substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||||
|
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||||
|
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||||
|
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||||
|
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||||
|
* OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Top row of keyboard, when shift held
|
||||||
|
#define CHR_TILDE {0b00110000, 0b01000000, 0b00110000, 0b00001000, 0b00110000, 0b00000000}
|
||||||
|
#define CHR_BANG {0b00000000, 0b00000000, 0b11111010, 0b10000000, 0b00000000, 0b00000000}
|
||||||
|
#define CHR_AT {0b01001100, 0b10010010, 0b10011110, 0b10000010, 0b01111100, 0b00000000}
|
||||||
|
#define CHR_POUND {0b00101000, 0b11111110, 0b00101000, 0b11111110, 0b00101000, 0b00000000}
|
||||||
|
#define CHR_DOLLAR {0b00100100, 0b01010100, 0b11111110, 0b10101010, 0b01001000, 0b00000000}
|
||||||
|
#define CHR_PERCENT {0b11000010, 0b11000100, 0b00010000, 0b00100110, 0b01000110, 0b00000000}
|
||||||
|
#define CHR_CARET {0b00100000, 0b01000000, 0b10000000, 0b01000000, 0b00100000, 0b00000000}
|
||||||
|
#define CHR_AMPERSAND {0b01101100, 0b10010010, 0b10101010, 0b01000100, 0b00001010, 0b00000000}
|
||||||
|
#define CHR_ASTERISK {0b00101000, 0b00010000, 0b01111100, 0b00010000, 0b00101000, 0b00000000}
|
||||||
|
#define CHR_LPAREN {0b00000000, 0b00111000, 0b01000100, 0b10000010, 0b00000000, 0b00000000}
|
||||||
|
#define CHR_RPAREN {0b00000000, 0b10000010, 0b01000100, 0b00111000, 0b00000000, 0b00000000}
|
||||||
|
#define CHR_UNDERSCORE {0b00000010, 0b00000010, 0b00000010, 0b00000010, 0b00000010, 0b00000000}
|
||||||
|
#define CHR_PLUS {0b00010000, 0b00010000, 0b01111100, 0b00010000, 0b00010000, 0b00000000}
|
||||||
|
|
||||||
|
// Top row of keyboard, without shift
|
||||||
|
#define CHR_BACKTICK {0b00000000, 0b11000000, 0b01100000, 0b10000000, 0b00000000, 0b00000000}
|
||||||
|
#define CHR_1 {0b00100000, 0b01000010, 0b11111110, 0b00000010, 0b00000010, 0b00000000}
|
||||||
|
#define CHR_2 {0b01000010, 0b10000110, 0b10001010, 0b10010010, 0b01100010, 0b00000000}
|
||||||
|
#define CHR_3 {0b10000100, 0b10000010, 0b10100010, 0b11010010, 0b10001100, 0b00000000}
|
||||||
|
#define CHR_4 {0b00011000, 0b00101000, 0b01001000, 0b11111110, 0b00001000, 0b00000000}
|
||||||
|
#define CHR_5 {0b11100100, 0b10100010, 0b10100010, 0b10100010, 0b10011100, 0b00000000}
|
||||||
|
#define CHR_6 {0b00111100, 0b01010010, 0b10010010, 0b10010010, 0b00001100, 0b00000000}
|
||||||
|
#define CHR_7 {0b11000000, 0b10001110, 0b10010000, 0b10100000, 0b11000000, 0b00000000}
|
||||||
|
#define CHR_8 {0b01101100, 0b10010010, 0b10010010, 0b10010010, 0b01101100, 0b00000000}
|
||||||
|
#define CHR_9 {0b01100000, 0b10010010, 0b10010010, 0b10010010, 0b01111000, 0b00000000}
|
||||||
|
#define CHR_0 {0b01111100, 0b10001010, 0b10010010, 0b10100010, 0b01111100, 0b00000000}
|
||||||
|
#define CHR_DASH {0b00000000, 0b00010000, 0b00010000, 0b00010000, 0b00000000, 0b00000000}
|
||||||
|
#define CHR_EQUAL {0b00000000, 0b00101000, 0b00101000, 0b00101000, 0b00000000, 0b00000000}
|
||||||
|
|
||||||
|
// Letters
|
||||||
|
#define CHR_A {0b01111110, 0b10001000, 0b10001000, 0b10001000, 0b01111110, 0b00000000}
|
||||||
|
#define CHR_B {0b11111110, 0b10010010, 0b10010010, 0b10010010, 0b01101100, 0b00000000}
|
||||||
|
#define CHR_C {0b01111100, 0b10000010, 0b10000010, 0b10000010, 0b01000100, 0b00000000}
|
||||||
|
#define CHR_D {0b11111110, 0b10000010, 0b10000010, 0b10000010, 0b01111100, 0b00000000}
|
||||||
|
#define CHR_E {0b11111110, 0b10010010, 0b10010010, 0b10010010, 0b10000010, 0b00000000}
|
||||||
|
#define CHR_F {0b11111110, 0b10010000, 0b10010000, 0b10010000, 0b10000000, 0b00000000}
|
||||||
|
#define CHR_G {0b01111100, 0b10000010, 0b10010010, 0b10010010, 0b01011100, 0b00000000}
|
||||||
|
#define CHR_H {0b11111110, 0b00010000, 0b00010000, 0b00010000, 0b11111110, 0b00000000}
|
||||||
|
#define CHR_I {0b00000000, 0b10000010, 0b11111110, 0b10000010, 0b00000000, 0b00000000}
|
||||||
|
#define CHR_J {0b00000100, 0b00000010, 0b10000010, 0b11111100, 0b10000000, 0b00000000}
|
||||||
|
#define CHR_K {0b11111110, 0b00010000, 0b00101000, 0b01000100, 0b10000010, 0b00000000}
|
||||||
|
#define CHR_L {0b00000000, 0b11111110, 0b00000010, 0b00000010, 0b00000010, 0b00000000}
|
||||||
|
#define CHR_M {0b11111110, 0b01000000, 0b00110000, 0b01000000, 0b11111110, 0b00000000}
|
||||||
|
#define CHR_N {0b11111110, 0b01100000, 0b00010000, 0b00001100, 0b11111110, 0b00000000}
|
||||||
|
#define CHR_O {0b01111100, 0b10000010, 0b10000010, 0b10000010, 0b01111100, 0b00000000}
|
||||||
|
#define CHR_P {0b11111110, 0b10010000, 0b10010000, 0b10010000, 0b01100000, 0b00000000}
|
||||||
|
#define CHR_Q {0b01111100, 0b10000010, 0b10001010, 0b10000100, 0b01111010, 0b00000000}
|
||||||
|
#define CHR_R {0b11111110, 0b10010000, 0b10011000, 0b10010100, 0b01100010, 0b00000000}
|
||||||
|
#define CHR_S {0b01100100, 0b10010010, 0b10010010, 0b10010010, 0b01001100, 0b00000000}
|
||||||
|
#define CHR_T {0b10000000, 0b10000000, 0b11111110, 0b10000000, 0b10000000, 0b00000000}
|
||||||
|
#define CHR_U {0b11111100, 0b00000010, 0b00000010, 0b00000010, 0b11111100, 0b00000000}
|
||||||
|
#define CHR_V {0b11111000, 0b00000100, 0b00000010, 0b00000100, 0b11111000, 0b00000000}
|
||||||
|
#define CHR_W {0b11111100, 0b00000010, 0b00011100, 0b00000010, 0b11111110, 0b00000000}
|
||||||
|
#define CHR_X {0b11000110, 0b00101000, 0b00010000, 0b00101000, 0b11000110, 0b00000000}
|
||||||
|
#define CHR_Y {0b11100000, 0b00010000, 0b00001110, 0b00010000, 0b11100000, 0b00000000}
|
||||||
|
#define CHR_Z {0b10000110, 0b10001010, 0b10010010, 0b10100010, 0b11000010, 0b00000000}
|
||||||
|
|
||||||
|
#define CHR_a {0b00000100, 0b00101010, 0b00101010, 0b00101010, 0b00011110, 0b00000000}
|
||||||
|
#define CHR_b {0b11111110, 0b00010010, 0b00100010, 0b00100010, 0b00011100, 0b00000000}
|
||||||
|
#define CHR_c {0b00011100, 0b00100010, 0b00100010, 0b00100010, 0b00000100, 0b00000000}
|
||||||
|
#define CHR_d {0b00011100, 0b00100010, 0b00100010, 0b00010010, 0b11111110, 0b00000000}
|
||||||
|
#define CHR_e {0b00011100, 0b00101010, 0b00101010, 0b00101010, 0b00011000, 0b00000000}
|
||||||
|
#define CHR_f {0b00000000, 0b00010000, 0b01111110, 0b10010000, 0b10000000, 0b01000000}
|
||||||
|
#define CHR_g {0b00011000, 0b00100101, 0b00100101, 0b00100101, 0b00111110, 0b00000000}
|
||||||
|
#define CHR_h {0b11111110, 0b00010000, 0b00100000, 0b00100000, 0b00011110, 0b00000000}
|
||||||
|
#define CHR_i {0b00000000, 0b00010010, 0b10111110, 0b00000010, 0b00000000, 0b00000000}
|
||||||
|
#define CHR_j {0b00000100, 0b00000010, 0b00100010, 0b10111100, 0b00000000, 0b00000000}
|
||||||
|
#define CHR_k {0b11111110, 0b00001000, 0b00010100, 0b00100010, 0b00000000, 0b00000000}
|
||||||
|
#define CHR_l {0b00000000, 0b10000010, 0b11111110, 0b00000010, 0b00000000, 0b00000000}
|
||||||
|
#define CHR_m {0b00111110, 0b00100000, 0b00111110, 0b00100000, 0b00111110, 0b00000000}
|
||||||
|
#define CHR_n {0b00111110, 0b00010000, 0b00100000, 0b00100000, 0b00011110, 0b00000000}
|
||||||
|
#define CHR_o {0b00011100, 0b00100010, 0b00100010, 0b00100010, 0b00011100, 0b00000000}
|
||||||
|
#define CHR_p {0b00111111, 0b00100100, 0b00100100, 0b00100100, 0b00011000, 0b00000000}
|
||||||
|
#define CHR_q {0b00011000, 0b00100100, 0b00100100, 0b00011000, 0b00111111, 0b00000000}
|
||||||
|
#define CHR_r {0b00111110, 0b00010000, 0b00100000, 0b00100000, 0b00010000, 0b00000000}
|
||||||
|
#define CHR_s {0b00010010, 0b00101010, 0b00101010, 0b00101010, 0b00000100, 0b00000000}
|
||||||
|
#define CHR_t {0b00100000, 0b11111100, 0b00100010, 0b00000010, 0b00000100, 0b00000000}
|
||||||
|
#define CHR_u {0b00111100, 0b00000010, 0b00000010, 0b00000100, 0b00111110, 0b00000000}
|
||||||
|
#define CHR_v {0b00111000, 0b00000100, 0b00000010, 0b00000100, 0b00111000, 0b00000000}
|
||||||
|
#define CHR_w {0b00111100, 0b00000010, 0b00111100, 0b00000010, 0b00111100, 0b00000000}
|
||||||
|
#define CHR_x {0b00100010, 0b00010100, 0b00001000, 0b00010100, 0b00100010, 0b00000000}
|
||||||
|
#define CHR_y {0b00111000, 0b00000101, 0b00000101, 0b00000101, 0b00111110, 0b00000000}
|
||||||
|
#define CHR_z {0b00100010, 0b00100110, 0b00101010, 0b00110010, 0b00100010, 0b00000000}
|
||||||
|
|
||||||
|
// Punctuation
|
||||||
|
#define CHR_LCURLY {0b00000000, 0b00010000, 0b01101100, 0b10000010, 0b00000000, 0b00000000}
|
||||||
|
#define CHR_RCURLY {0b00000000, 0b10000010, 0b01101100, 0b00010000, 0b00000000, 0b00000000}
|
||||||
|
#define CHR_PIPE {0b00000000, 0b00000000, 0b11101110, 0b00000000, 0b00000000, 0b00000000}
|
||||||
|
#define CHR_COLON {0b00000000, 0b00000000, 0b01101100, 0b01101100, 0b00000000, 0b00000000}
|
||||||
|
#define CHR_QUOTE {0b00000000, 0b01110000, 0b00000000, 0b01110000, 0b00000000, 0b00000000}
|
||||||
|
#define CHR_LESSTHAN {0b00010000, 0b00101000, 0b01000100, 0b10000010, 0b00000000, 0b00000000}
|
||||||
|
#define CHR_GREATERTHAN {0b10000010, 0b01000100, 0b00101000, 0b00010000, 0b00000000, 0b00000000}
|
||||||
|
#define CHR_QUESTIONMARK {0b01000000, 0b10000000, 0b10001010, 0b10010000, 0b01100000, 0b00000000}
|
||||||
|
#define CHR_INTERROBANG {0b01100000, 0b10000000, 0b11101010, 0b10010000, 0b01100000, 0b00000000}
|
||||||
|
#define CHR_LBRACKET {0b00000000, 0b11111110, 0b10000010, 0b10000010, 0b00000000, 0b00000000}
|
||||||
|
#define CHR_RBRACKET {0b00000000, 0b10000010, 0b10000010, 0b11111110, 0b00000000, 0b00000000}
|
||||||
|
#define CHR_BACKSLASH {0b01000000, 0b00100000, 0b00010000, 0b00001000, 0b00000100, 0b00000000}
|
||||||
|
#define CHR_SEMICOLON {0b00000000, 0b00000000, 0b01101010, 0b01101100, 0b00000000, 0b00000000}
|
||||||
|
#define CHR_APOSTROPHE {0b00000000, 0b00000000, 0b01110000, 0b00000000, 0b00000000, 0b00000000}
|
||||||
|
#define CHR_COMMA {0b00000000, 0b00000000, 0b00001010, 0b00001100, 0b00000000, 0b00000000}
|
||||||
|
#define CHR_PERIOD {0b00000000, 0b00000000, 0b00000110, 0b00000110, 0b00000000, 0b00000000}
|
||||||
|
#define CHR_SLASH {0b00000100, 0b00001000, 0b00010000, 0b00100000, 0b01000000, 0b00000000}
|
||||||
|
#define CHR_SPACE {0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000}
|
||||||
|
#define CHR_DEGREES {0b11000000, 0b11000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000}
|
||||||
|
|
||||||
|
// Graphics
|
||||||
|
#define CHR_CENT {0b00111000, 0b01000100, 0b11111110, 0b01000100, 0b00101000, 0b00000000}
|
||||||
|
#define CHR_DEGREES_C {0b11000000, 0b11001100, 0b00010010, 0b00010010, 0b00000000, 0b00000000}
|
||||||
|
#define CHR_DEGREES_F {0b11000000, 0b11011110, 0b00010100, 0b00010000, 0b00000000, 0b00000000}
|
||||||
|
#define CHR_DIVISION {0b00010000, 0b00010000, 0b01010100, 0b00010000, 0b00010000, 0b00000000}
|
||||||
|
#define CHR_LEFT_ARROW {0b00010000, 0b00111000, 0b01010100, 0b00010000, 0b00010000, 0b00000000}
|
||||||
|
#define CHR_RIGHT_ARROW {0b00010000, 0b00010000, 0b01010100, 0b00111000, 0b00010000, 0b00000000}
|
||||||
|
#define CHR_UP_ARROW {0b00010000, 0b00100000, 0b01111110, 0b00100000, 0b00010000, 0b00000000}
|
||||||
|
#define CHR_DOWN_ARROW {0b00001000, 0b00000100, 0b01111110, 0b00000100, 0b00001000, 0b00000000}
|
||||||
|
#define CHR_PI {0b00100010, 0b00111100, 0b00100000, 0b00111110, 0b00100010, 0b00000000}
|
||||||
|
#define CHR_PSI {0b01111000, 0b00001000, 0b01111110, 0b00001000, 0b01111000, 0b00000000}
|
||||||
|
|
||||||
|
// Predefined messages
|
||||||
|
#define MSG_FONTTEST {CHR_TILDE, CHR_BANG, CHR_AT, CHR_POUND, CHR_PERCENT, CHR_CARET, CHR_AMPERSAND, CHR_LPAREN, CHR_RPAREN, CHR_UNDERSCORE, CHR_PLUS, CHR_BACKTICK, CHR_1, CHR_2, CHR_3, CHR_4, CHR_5, CHR_6, CHR_7, CHR_8, CHR_9, CHR_0, CHR_DASH, CHR_EQUAL, CHR_A, CHR_B, CHR_C, CHR_D, CHR_E, CHR_F, CHR_G, CHR_H, CHR_I, CHR_J, CHR_K, CHR_L, CHR_M, CHR_N, CHR_O, CHR_P, CHR_Q, CHR_R, CHR_S, CHR_T, CHR_U, CHR_V, CHR_W, CHR_X, CHR_Y, CHR_Z, CHR_a, CHR_b, CHR_c, CHR_d, CHR_e, CHR_f, CHR_g, CHR_h, CHR_i, CHR_j, CHR_k, CHR_l, CHR_m, CHR_n, CHR_o, CHR_p, CHR_q, CHR_r, CHR_s, CHR_t, CHR_u, CHR_v, CHR_w, CHR_x, CHR_y, CHR_z, CHR_LCURLY, CHR_RCURLY, CHR_PIPE, CHR_COLON, CHR_QUOTE, CHR_LESSTHAN, CHR_GREATERTHAN, CHR_QUESTIONMARK, CHR_INTERROBANG, CHR_LBRACKET, CHR_RBRACKET, CHR_BACKSLASH, CHR_SEMICOLON, CHR_APOSTROPHE, CHR_COMMA, CHR_PERIOD, CHR_SLASH, CHR_CENT, CHR_DEGREES, CHR_DEGREES_C, CHR_DEGREES_F, CHR_DIVISION, CHR_LEFT_ARROW, CHR_RIGHT_ARROW, CHR_UP_ARROW, CHR_DOWN_ARROW, CHR_PI, CHR_PSI}
|
||||||
|
#define MSG_FONTTEST_LEN 104
|
||||||
|
|
||||||
|
#define MSG_CLUEBOARD {CHR_INTERROBANG, CHR_C, CHR_l, CHR_u, CHR_e, CHR_b, CHR_o, CHR_a, CHR_r, CHR_d}
|
||||||
|
#define MSG_CLUEBOARD_LEN 10
|
||||||
|
|
||||||
|
#define MSG_KONAMI {CHR_UP_ARROW, CHR_SPACE, CHR_UP_ARROW, CHR_SPACE, CHR_DOWN_ARROW, CHR_SPACE, CHR_DOWN_ARROW, CHR_SPACE, CHR_LEFT_ARROW, CHR_SPACE, CHR_RIGHT_ARROW, CHR_SPACE, CHR_LEFT_ARROW, CHR_SPACE, CHR_RIGHT_ARROW, CHR_SPACE, CHR_B, CHR_SPACE, CHR_A, CHR_SPACE, CHR_LESSTHAN, CHR_S, CHR_E, CHR_L, CHR_E, CHR_C, CHR_T, CHR_GREATERTHAN, CHR_SPACE, CHR_LESSTHAN, CHR_S, CHR_T, CHR_A, CHR_R, CHR_T, CHR_GREATERTHAN}
|
||||||
|
#define MSG_KONAMI_LEN 36
|
||||||
|
|
||||||
|
#define MSG_QMK_POWERED {CHR_PSI, CHR_P, CHR_o, CHR_w, CHR_e, CHR_r, CHR_e, CHR_d, CHR_SPACE, CHR_b, CHR_y, CHR_SPACE, CHR_Q, CHR_M, CHR_K}
|
||||||
|
#define MSG_QMK_POWERED_LEN 15
|
||||||
@@ -0,0 +1,425 @@
|
|||||||
|
{
|
||||||
|
"manufacturer": "Clueboard",
|
||||||
|
"keyboard_name": "Clueboard 2x1800 2021",
|
||||||
|
"maintainer": "skullydazed",
|
||||||
|
"height": 6.5,
|
||||||
|
"width": 24,
|
||||||
|
"bootloader": "halfkay",
|
||||||
|
"debounce": 5,
|
||||||
|
"diode_direction": "ROW2COL",
|
||||||
|
"features": {
|
||||||
|
"audio": true,
|
||||||
|
"bootmagic": false,
|
||||||
|
"console": true,
|
||||||
|
"encoder": true,
|
||||||
|
"extrakey": true,
|
||||||
|
"mousekey": true,
|
||||||
|
"nkro": true
|
||||||
|
},
|
||||||
|
"indicators": {
|
||||||
|
"caps_lock": "B5",
|
||||||
|
"num_lock": "B4",
|
||||||
|
"scroll_lock": "B6"
|
||||||
|
},
|
||||||
|
"matrix_pins": {
|
||||||
|
"cols": ["D2", "D3", "D4", "D5", "D7", "E0", "E1", "F0", "E6", "A0", "E7"],
|
||||||
|
"rows": ["C0", "C1", "C2", "C3", "C7", "F7", "F1", "F2", "F3", "F4", "F5", "F6"]
|
||||||
|
},
|
||||||
|
"processor": "at90usb1286",
|
||||||
|
"usb": {
|
||||||
|
"pid": "0x23A0"
|
||||||
|
},
|
||||||
|
"layout_aliases": {
|
||||||
|
"KEYMAP": "LAYOUT_all",
|
||||||
|
"LAYOUT": "LAYOUT_all"
|
||||||
|
},
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT_4u_space": {
|
||||||
|
"key_count": 124,
|
||||||
|
"layout": [
|
||||||
|
{ "matrix": [0, 0], "w": 1, "x": 0, "y": 0 },
|
||||||
|
{ "matrix": [0, 1], "w": 1, "x": 1, "y": 0 },
|
||||||
|
{ "matrix": [0, 2], "w": 1, "x": 2, "y": 0 },
|
||||||
|
{ "matrix": [0, 3], "w": 1, "x": 3, "y": 0 },
|
||||||
|
{ "matrix": [0, 4], "w": 1, "x": 4.75, "y": 0 },
|
||||||
|
{ "matrix": [0, 6], "w": 1, "x": 6.25, "y": 0 },
|
||||||
|
{ "matrix": [0, 7], "w": 1, "x": 7.25, "y": 0 },
|
||||||
|
{ "matrix": [0, 8], "w": 1, "x": 8.25, "y": 0 },
|
||||||
|
{ "matrix": [0, 9], "w": 1, "x": 9.25, "y": 0 },
|
||||||
|
{ "matrix": [0, 10], "w": 1, "x": 10.75, "y": 0 },
|
||||||
|
{ "matrix": [6, 0], "w": 1, "x": 11.75, "y": 0 },
|
||||||
|
{ "matrix": [6, 1], "w": 1, "x": 12.75, "y": 0 },
|
||||||
|
{ "matrix": [6, 2], "w": 1, "x": 13.75, "y": 0 },
|
||||||
|
{ "matrix": [6, 3], "w": 1, "x": 15.25, "y": 0 },
|
||||||
|
{ "matrix": [6, 4], "w": 1, "x": 16.25, "y": 0 },
|
||||||
|
{ "matrix": [6, 5], "w": 1, "x": 17.25, "y": 0 },
|
||||||
|
{ "matrix": [6, 6], "w": 1, "x": 18.25, "y": 0 },
|
||||||
|
{ "matrix": [6, 7], "w": 1, "x": 20, "y": 0 },
|
||||||
|
{ "matrix": [6, 8], "w": 1, "x": 21, "y": 0 },
|
||||||
|
{ "matrix": [6, 9], "w": 1, "x": 22, "y": 0 },
|
||||||
|
{ "matrix": [6, 10], "w": 1, "x": 23, "y": 0 },
|
||||||
|
{ "matrix": [1, 0], "w": 1, "x": 0, "y": 1.25 },
|
||||||
|
{ "matrix": [1, 1], "w": 1, "x": 1, "y": 1.25 },
|
||||||
|
{ "matrix": [1, 2], "w": 1, "x": 2, "y": 1.25 },
|
||||||
|
{ "matrix": [1, 3], "w": 1, "x": 3, "y": 1.25 },
|
||||||
|
{ "matrix": [1, 4], "w": 1, "x": 4.5, "y": 1.25 },
|
||||||
|
{ "matrix": [1, 5], "w": 1, "x": 5.5, "y": 1.25 },
|
||||||
|
{ "matrix": [1, 6], "w": 1, "x": 6.5, "y": 1.25 },
|
||||||
|
{ "matrix": [1, 7], "w": 1, "x": 7.5, "y": 1.25 },
|
||||||
|
{ "matrix": [1, 8], "w": 1, "x": 8.5, "y": 1.25 },
|
||||||
|
{ "matrix": [1, 9], "w": 1, "x": 9.5, "y": 1.25 },
|
||||||
|
{ "matrix": [1, 10], "w": 1, "x": 10.5, "y": 1.25 },
|
||||||
|
{ "matrix": [7, 0], "w": 1, "x": 11.5, "y": 1.25 },
|
||||||
|
{ "matrix": [7, 1], "w": 1, "x": 12.5, "y": 1.25 },
|
||||||
|
{ "matrix": [7, 2], "w": 1, "x": 13.5, "y": 1.25 },
|
||||||
|
{ "matrix": [7, 3], "w": 1, "x": 14.5, "y": 1.25 },
|
||||||
|
{ "matrix": [7, 4], "w": 1, "x": 15.5, "y": 1.25 },
|
||||||
|
{ "matrix": [7, 5], "w": 1, "x": 16.5, "y": 1.25 },
|
||||||
|
{ "matrix": [7, 6], "w": 2, "x": 17.5, "y": 1.25 },
|
||||||
|
{ "matrix": [7, 7], "w": 1, "x": 20, "y": 1.25 },
|
||||||
|
{ "matrix": [7, 8], "w": 1, "x": 21, "y": 1.25 },
|
||||||
|
{ "matrix": [7, 9], "w": 1, "x": 22, "y": 1.25 },
|
||||||
|
{ "matrix": [7, 10], "w": 1, "x": 23, "y": 1.25 },
|
||||||
|
{ "h": 2, "matrix": [2, 0], "w": 1, "x": 0, "y": 2.25 },
|
||||||
|
{ "matrix": [2, 1], "w": 1, "x": 1, "y": 2.25 },
|
||||||
|
{ "matrix": [2, 2], "w": 1, "x": 2, "y": 2.25 },
|
||||||
|
{ "matrix": [2, 3], "w": 1, "x": 3, "y": 2.25 },
|
||||||
|
{ "matrix": [2, 4], "w": 1.5, "x": 4.5, "y": 2.25 },
|
||||||
|
{ "matrix": [2, 5], "w": 1, "x": 6, "y": 2.25 },
|
||||||
|
{ "matrix": [2, 6], "w": 1, "x": 7, "y": 2.25 },
|
||||||
|
{ "matrix": [2, 7], "w": 1, "x": 8, "y": 2.25 },
|
||||||
|
{ "matrix": [2, 8], "w": 1, "x": 9, "y": 2.25 },
|
||||||
|
{ "matrix": [2, 9], "w": 1, "x": 10, "y": 2.25 },
|
||||||
|
{ "matrix": [2, 10], "w": 1, "x": 11, "y": 2.25 },
|
||||||
|
{ "matrix": [8, 0], "w": 1, "x": 12, "y": 2.25 },
|
||||||
|
{ "matrix": [8, 1], "w": 1, "x": 13, "y": 2.25 },
|
||||||
|
{ "matrix": [8, 2], "w": 1, "x": 14, "y": 2.25 },
|
||||||
|
{ "matrix": [8, 3], "w": 1, "x": 15, "y": 2.25 },
|
||||||
|
{ "matrix": [8, 4], "w": 1, "x": 16, "y": 2.25 },
|
||||||
|
{ "matrix": [8, 5], "w": 1, "x": 17, "y": 2.25 },
|
||||||
|
{ "matrix": [8, 6], "w": 1.5, "x": 18, "y": 2.25 },
|
||||||
|
{ "matrix": [8, 7], "w": 1, "x": 20, "y": 2.25 },
|
||||||
|
{ "matrix": [8, 8], "w": 1, "x": 21, "y": 2.25 },
|
||||||
|
{ "matrix": [8, 9], "w": 1, "x": 22, "y": 2.25 },
|
||||||
|
{ "h": 2, "matrix": [8, 10], "w": 1, "x": 23, "y": 2.25 },
|
||||||
|
{ "matrix": [3, 1], "w": 1, "x": 1, "y": 3.25 },
|
||||||
|
{ "matrix": [3, 2], "w": 1, "x": 2, "y": 3.25 },
|
||||||
|
{ "matrix": [3, 3], "w": 1, "x": 3, "y": 3.25 },
|
||||||
|
{ "matrix": [3, 4], "w": 1.75, "x": 4.5, "y": 3.25 },
|
||||||
|
{ "matrix": [3, 5], "w": 1, "x": 6.25, "y": 3.25 },
|
||||||
|
{ "matrix": [3, 6], "w": 1, "x": 7.25, "y": 3.25 },
|
||||||
|
{ "matrix": [3, 7], "w": 1, "x": 8.25, "y": 3.25 },
|
||||||
|
{ "matrix": [3, 8], "w": 1, "x": 9.25, "y": 3.25 },
|
||||||
|
{ "matrix": [3, 9], "w": 1, "x": 10.25, "y": 3.25 },
|
||||||
|
{ "matrix": [3, 10], "w": 1, "x": 11.25, "y": 3.25 },
|
||||||
|
{ "matrix": [9, 0], "w": 1, "x": 12.25, "y": 3.25 },
|
||||||
|
{ "matrix": [9, 1], "w": 1, "x": 13.25, "y": 3.25 },
|
||||||
|
{ "matrix": [9, 2], "w": 1, "x": 14.25, "y": 3.25 },
|
||||||
|
{ "matrix": [9, 3], "w": 1, "x": 15.25, "y": 3.25 },
|
||||||
|
{ "matrix": [9, 4], "w": 1, "x": 16.25, "y": 3.25 },
|
||||||
|
{ "matrix": [9, 5], "w": 2.25, "x": 17.25, "y": 3.25 },
|
||||||
|
{ "matrix": [9, 7], "w": 1, "x": 20, "y": 3.25 },
|
||||||
|
{ "matrix": [9, 8], "w": 1, "x": 21, "y": 3.25 },
|
||||||
|
{ "matrix": [9, 9], "w": 1, "x": 22, "y": 3.25 },
|
||||||
|
{ "h": 2, "matrix": [4, 0], "w": 1, "x": 0, "y": 4.25 },
|
||||||
|
{ "matrix": [4, 1], "w": 1, "x": 1, "y": 4.25 },
|
||||||
|
{ "matrix": [4, 2], "w": 1, "x": 2, "y": 4.25 },
|
||||||
|
{ "matrix": [4, 3], "w": 1, "x": 3, "y": 4.25 },
|
||||||
|
{ "matrix": [4, 4], "w": 1.25, "x": 5.5, "y": 4.25 },
|
||||||
|
{ "matrix": [4, 5], "w": 1, "x": 6.75, "y": 4.25 },
|
||||||
|
{ "matrix": [4, 6], "w": 1, "x": 7.75, "y": 4.25 },
|
||||||
|
{ "matrix": [4, 7], "w": 1, "x": 8.75, "y": 4.25 },
|
||||||
|
{ "matrix": [4, 8], "w": 1, "x": 9.75, "y": 4.25 },
|
||||||
|
{ "matrix": [4, 9], "w": 1, "x": 10.75, "y": 4.25 },
|
||||||
|
{ "matrix": [4, 10], "w": 1, "x": 11.75, "y": 4.25 },
|
||||||
|
{ "matrix": [10, 0], "w": 1, "x": 12.75, "y": 4.25 },
|
||||||
|
{ "matrix": [10, 1], "w": 1, "x": 13.75, "y": 4.25 },
|
||||||
|
{ "matrix": [10, 2], "w": 1, "x": 14.75, "y": 4.25 },
|
||||||
|
{ "matrix": [10, 3], "w": 1, "x": 15.75, "y": 4.25 },
|
||||||
|
{ "matrix": [10, 4], "w": 1.75, "x": 16.75, "y": 4.25 },
|
||||||
|
{ "matrix": [10, 5], "w": 1, "x": 20, "y": 4.25 },
|
||||||
|
{ "matrix": [9, 6], "w": 1, "x": 21, "y": 4.25 },
|
||||||
|
{ "matrix": [10, 7], "w": 1, "x": 22, "y": 4.25 },
|
||||||
|
{ "h": 2, "matrix": [10, 8], "w": 1, "x": 23, "y": 4.25 },
|
||||||
|
{ "matrix": [10, 9], "w": 1, "x": 4.25, "y": 4.5 },
|
||||||
|
{ "matrix": [10, 10], "w": 1, "x": 18.75, "y": 4.5 },
|
||||||
|
{ "matrix": [5, 1], "w": 1, "x": 1, "y": 5.25 },
|
||||||
|
{ "matrix": [5, 2], "w": 1, "x": 2, "y": 5.25 },
|
||||||
|
{ "matrix": [5, 3], "w": 1, "x": 6.5, "y": 5.25 },
|
||||||
|
{ "matrix": [5, 4], "w": 1, "x": 7.5, "y": 5.25 },
|
||||||
|
{ "matrix": [5, 5], "w": 1, "x": 8.5, "y": 5.25 },
|
||||||
|
{ "matrix": [5, 6], "w": 4, "x": 9.5, "y": 5.25 },
|
||||||
|
{ "matrix": [5, 7], "w": 1, "x": 13.5, "y": 5.25 },
|
||||||
|
{ "matrix": [5, 8], "w": 1, "x": 14.5, "y": 5.25 },
|
||||||
|
{ "matrix": [11, 0], "w": 1, "x": 15.5, "y": 5.25 },
|
||||||
|
{ "matrix": [11, 2], "w": 1, "x": 16.5, "y": 5.25 },
|
||||||
|
{ "matrix": [11, 3], "w": 1, "x": 21, "y": 5.25 },
|
||||||
|
{ "matrix": [11, 4], "w": 1, "x": 22, "y": 5.25 },
|
||||||
|
{ "matrix": [11, 5], "w": 1, "x": 3.25, "y": 5.5 },
|
||||||
|
{ "matrix": [10, 6], "w": 1, "x": 4.25, "y": 5.5 },
|
||||||
|
{ "matrix": [11, 6], "w": 1, "x": 5.25, "y": 5.5 },
|
||||||
|
{ "matrix": [11, 7], "w": 1, "x": 17.75, "y": 5.5 },
|
||||||
|
{ "matrix": [11, 8], "w": 1, "x": 18.75, "y": 5.5 },
|
||||||
|
{ "matrix": [11, 9], "w": 1, "x": 19.75, "y": 5.5 }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"LAYOUT_7u_space": {
|
||||||
|
"key_count": 121,
|
||||||
|
"layout": [
|
||||||
|
{ "matrix": [0, 0], "w": 1, "x": 0, "y": 0 },
|
||||||
|
{ "matrix": [0, 1], "w": 1, "x": 1, "y": 0 },
|
||||||
|
{ "matrix": [0, 2], "w": 1, "x": 2, "y": 0 },
|
||||||
|
{ "matrix": [0, 3], "w": 1, "x": 3, "y": 0 },
|
||||||
|
{ "matrix": [0, 4], "w": 1, "x": 4.75, "y": 0 },
|
||||||
|
{ "matrix": [0, 6], "w": 1, "x": 6.25, "y": 0 },
|
||||||
|
{ "matrix": [0, 7], "w": 1, "x": 7.25, "y": 0 },
|
||||||
|
{ "matrix": [0, 8], "w": 1, "x": 8.25, "y": 0 },
|
||||||
|
{ "matrix": [0, 9], "w": 1, "x": 9.25, "y": 0 },
|
||||||
|
{ "matrix": [0, 10], "w": 1, "x": 10.75, "y": 0 },
|
||||||
|
{ "matrix": [6, 0], "w": 1, "x": 11.75, "y": 0 },
|
||||||
|
{ "matrix": [6, 1], "w": 1, "x": 12.75, "y": 0 },
|
||||||
|
{ "matrix": [6, 2], "w": 1, "x": 13.75, "y": 0 },
|
||||||
|
{ "matrix": [6, 3], "w": 1, "x": 15.25, "y": 0 },
|
||||||
|
{ "matrix": [6, 4], "w": 1, "x": 16.25, "y": 0 },
|
||||||
|
{ "matrix": [6, 5], "w": 1, "x": 17.25, "y": 0 },
|
||||||
|
{ "matrix": [6, 6], "w": 1, "x": 18.25, "y": 0 },
|
||||||
|
{ "matrix": [6, 7], "w": 1, "x": 20, "y": 0 },
|
||||||
|
{ "matrix": [6, 8], "w": 1, "x": 21, "y": 0 },
|
||||||
|
{ "matrix": [6, 9], "w": 1, "x": 22, "y": 0 },
|
||||||
|
{ "matrix": [6, 10], "w": 1, "x": 23, "y": 0 },
|
||||||
|
{ "matrix": [1, 0], "w": 1, "x": 0, "y": 1.25 },
|
||||||
|
{ "matrix": [1, 1], "w": 1, "x": 1, "y": 1.25 },
|
||||||
|
{ "matrix": [1, 2], "w": 1, "x": 2, "y": 1.25 },
|
||||||
|
{ "matrix": [1, 3], "w": 1, "x": 3, "y": 1.25 },
|
||||||
|
{ "matrix": [1, 4], "w": 1, "x": 4.5, "y": 1.25 },
|
||||||
|
{ "matrix": [1, 5], "w": 1, "x": 5.5, "y": 1.25 },
|
||||||
|
{ "matrix": [1, 6], "w": 1, "x": 6.5, "y": 1.25 },
|
||||||
|
{ "matrix": [1, 7], "w": 1, "x": 7.5, "y": 1.25 },
|
||||||
|
{ "matrix": [1, 8], "w": 1, "x": 8.5, "y": 1.25 },
|
||||||
|
{ "matrix": [1, 9], "w": 1, "x": 9.5, "y": 1.25 },
|
||||||
|
{ "matrix": [1, 10], "w": 1, "x": 10.5, "y": 1.25 },
|
||||||
|
{ "matrix": [7, 0], "w": 1, "x": 11.5, "y": 1.25 },
|
||||||
|
{ "matrix": [7, 1], "w": 1, "x": 12.5, "y": 1.25 },
|
||||||
|
{ "matrix": [7, 2], "w": 1, "x": 13.5, "y": 1.25 },
|
||||||
|
{ "matrix": [7, 3], "w": 1, "x": 14.5, "y": 1.25 },
|
||||||
|
{ "matrix": [7, 4], "w": 1, "x": 15.5, "y": 1.25 },
|
||||||
|
{ "matrix": [7, 5], "w": 1, "x": 16.5, "y": 1.25 },
|
||||||
|
{ "matrix": [7, 6], "w": 2, "x": 17.5, "y": 1.25 },
|
||||||
|
{ "matrix": [7, 7], "w": 1, "x": 20, "y": 1.25 },
|
||||||
|
{ "matrix": [7, 8], "w": 1, "x": 21, "y": 1.25 },
|
||||||
|
{ "matrix": [7, 9], "w": 1, "x": 22, "y": 1.25 },
|
||||||
|
{ "matrix": [7, 10], "w": 1, "x": 23, "y": 1.25 },
|
||||||
|
{ "h": 2, "matrix": [2, 0], "w": 1, "x": 0, "y": 2.25 },
|
||||||
|
{ "matrix": [2, 1], "w": 1, "x": 1, "y": 2.25 },
|
||||||
|
{ "matrix": [2, 2], "w": 1, "x": 2, "y": 2.25 },
|
||||||
|
{ "matrix": [2, 3], "w": 1, "x": 3, "y": 2.25 },
|
||||||
|
{ "matrix": [2, 4], "w": 1.5, "x": 4.5, "y": 2.25 },
|
||||||
|
{ "matrix": [2, 5], "w": 1, "x": 6, "y": 2.25 },
|
||||||
|
{ "matrix": [2, 6], "w": 1, "x": 7, "y": 2.25 },
|
||||||
|
{ "matrix": [2, 7], "w": 1, "x": 8, "y": 2.25 },
|
||||||
|
{ "matrix": [2, 8], "w": 1, "x": 9, "y": 2.25 },
|
||||||
|
{ "matrix": [2, 9], "w": 1, "x": 10, "y": 2.25 },
|
||||||
|
{ "matrix": [2, 10], "w": 1, "x": 11, "y": 2.25 },
|
||||||
|
{ "matrix": [8, 0], "w": 1, "x": 12, "y": 2.25 },
|
||||||
|
{ "matrix": [8, 1], "w": 1, "x": 13, "y": 2.25 },
|
||||||
|
{ "matrix": [8, 2], "w": 1, "x": 14, "y": 2.25 },
|
||||||
|
{ "matrix": [8, 3], "w": 1, "x": 15, "y": 2.25 },
|
||||||
|
{ "matrix": [8, 4], "w": 1, "x": 16, "y": 2.25 },
|
||||||
|
{ "matrix": [8, 5], "w": 1, "x": 17, "y": 2.25 },
|
||||||
|
{ "matrix": [8, 6], "w": 1.5, "x": 18, "y": 2.25 },
|
||||||
|
{ "matrix": [8, 7], "w": 1, "x": 20, "y": 2.25 },
|
||||||
|
{ "matrix": [8, 8], "w": 1, "x": 21, "y": 2.25 },
|
||||||
|
{ "matrix": [8, 9], "w": 1, "x": 22, "y": 2.25 },
|
||||||
|
{ "h": 2, "matrix": [8, 10], "w": 1, "x": 23, "y": 2.25 },
|
||||||
|
{ "matrix": [3, 1], "w": 1, "x": 1, "y": 3.25 },
|
||||||
|
{ "matrix": [3, 2], "w": 1, "x": 2, "y": 3.25 },
|
||||||
|
{ "matrix": [3, 3], "w": 1, "x": 3, "y": 3.25 },
|
||||||
|
{ "matrix": [3, 4], "w": 1.75, "x": 4.5, "y": 3.25 },
|
||||||
|
{ "matrix": [3, 5], "w": 1, "x": 6.25, "y": 3.25 },
|
||||||
|
{ "matrix": [3, 6], "w": 1, "x": 7.25, "y": 3.25 },
|
||||||
|
{ "matrix": [3, 7], "w": 1, "x": 8.25, "y": 3.25 },
|
||||||
|
{ "matrix": [3, 8], "w": 1, "x": 9.25, "y": 3.25 },
|
||||||
|
{ "matrix": [3, 9], "w": 1, "x": 10.25, "y": 3.25 },
|
||||||
|
{ "matrix": [3, 10], "w": 1, "x": 11.25, "y": 3.25 },
|
||||||
|
{ "matrix": [9, 0], "w": 1, "x": 12.25, "y": 3.25 },
|
||||||
|
{ "matrix": [9, 1], "w": 1, "x": 13.25, "y": 3.25 },
|
||||||
|
{ "matrix": [9, 2], "w": 1, "x": 14.25, "y": 3.25 },
|
||||||
|
{ "matrix": [9, 3], "w": 1, "x": 15.25, "y": 3.25 },
|
||||||
|
{ "matrix": [9, 4], "w": 1, "x": 16.25, "y": 3.25 },
|
||||||
|
{ "matrix": [9, 5], "w": 2.25, "x": 17.25, "y": 3.25 },
|
||||||
|
{ "matrix": [9, 7], "w": 1, "x": 20, "y": 3.25 },
|
||||||
|
{ "matrix": [9, 8], "w": 1, "x": 21, "y": 3.25 },
|
||||||
|
{ "matrix": [9, 9], "w": 1, "x": 22, "y": 3.25 },
|
||||||
|
{ "h": 2, "matrix": [4, 0], "w": 1, "x": 0, "y": 4.25 },
|
||||||
|
{ "matrix": [4, 1], "w": 1, "x": 1, "y": 4.25 },
|
||||||
|
{ "matrix": [4, 2], "w": 1, "x": 2, "y": 4.25 },
|
||||||
|
{ "matrix": [4, 3], "w": 1, "x": 3, "y": 4.25 },
|
||||||
|
{ "matrix": [4, 4], "w": 1.25, "x": 5.5, "y": 4.25 },
|
||||||
|
{ "matrix": [4, 5], "w": 1, "x": 6.75, "y": 4.25 },
|
||||||
|
{ "matrix": [4, 6], "w": 1, "x": 7.75, "y": 4.25 },
|
||||||
|
{ "matrix": [4, 7], "w": 1, "x": 8.75, "y": 4.25 },
|
||||||
|
{ "matrix": [4, 8], "w": 1, "x": 9.75, "y": 4.25 },
|
||||||
|
{ "matrix": [4, 9], "w": 1, "x": 10.75, "y": 4.25 },
|
||||||
|
{ "matrix": [4, 10], "w": 1, "x": 11.75, "y": 4.25 },
|
||||||
|
{ "matrix": [10, 0], "w": 1, "x": 12.75, "y": 4.25 },
|
||||||
|
{ "matrix": [10, 1], "w": 1, "x": 13.75, "y": 4.25 },
|
||||||
|
{ "matrix": [10, 2], "w": 1, "x": 14.75, "y": 4.25 },
|
||||||
|
{ "matrix": [10, 3], "w": 1, "x": 15.75, "y": 4.25 },
|
||||||
|
{ "matrix": [10, 4], "w": 1.75, "x": 16.75, "y": 4.25 },
|
||||||
|
{ "matrix": [10, 5], "w": 1, "x": 20, "y": 4.25 },
|
||||||
|
{ "matrix": [9, 6], "w": 1, "x": 21, "y": 4.25 },
|
||||||
|
{ "matrix": [10, 7], "w": 1, "x": 22, "y": 4.25 },
|
||||||
|
{ "h": 2, "matrix": [10, 8], "w": 1, "x": 23, "y": 4.25 },
|
||||||
|
{ "matrix": [10, 9], "w": 1, "x": 4.25, "y": 4.5 },
|
||||||
|
{ "matrix": [10, 10], "w": 1, "x": 18.75, "y": 4.5 },
|
||||||
|
{ "matrix": [5, 1], "w": 1, "x": 1, "y": 5.25 },
|
||||||
|
{ "matrix": [5, 2], "w": 1, "x": 2, "y": 5.25 },
|
||||||
|
{ "matrix": [5, 3], "w": 1, "x": 6.5, "y": 5.25 },
|
||||||
|
{ "matrix": [5, 4], "w": 1, "x": 7.5, "y": 5.25 },
|
||||||
|
{ "matrix": [5, 5], "w": 7, "x": 8.5, "y": 5.25 },
|
||||||
|
{ "matrix": [5, 6], "w": 1, "x": 15.5, "y": 5.25 },
|
||||||
|
{ "matrix": [5, 7], "w": 1, "x": 16.5, "y": 5.25 },
|
||||||
|
{ "matrix": [11, 0], "w": 1, "x": 21, "y": 5.25 },
|
||||||
|
{ "matrix": [11, 4], "w": 1, "x": 22, "y": 5.25 },
|
||||||
|
{ "matrix": [11, 5], "w": 1, "x": 3.25, "y": 5.5 },
|
||||||
|
{ "matrix": [10, 6], "w": 1, "x": 4.25, "y": 5.5 },
|
||||||
|
{ "matrix": [11, 6], "w": 1, "x": 5.25, "y": 5.5 },
|
||||||
|
{ "matrix": [11, 7], "w": 1, "x": 17.75, "y": 5.5 },
|
||||||
|
{ "matrix": [11, 8], "w": 1, "x": 18.75, "y": 5.5 },
|
||||||
|
{ "matrix": [11, 9], "w": 1, "x": 19.75, "y": 5.5 }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"LAYOUT_all": {
|
||||||
|
"key_count": 127,
|
||||||
|
"layout": [
|
||||||
|
{ "label": "Home", "matrix": [0, 0], "w": 1, "x": 0, "y": 0 },
|
||||||
|
{ "label": "End", "matrix": [0, 1], "w": 1, "x": 1, "y": 0 },
|
||||||
|
{ "label": "PgUp", "matrix": [0, 2], "w": 1, "x": 2, "y": 0 },
|
||||||
|
{ "label": "PgDn", "matrix": [0, 3], "w": 1, "x": 3, "y": 0 },
|
||||||
|
{ "label": "Esc", "matrix": [0, 4], "w": 1, "x": 4.75, "y": 0 },
|
||||||
|
{ "label": "F1", "matrix": [0, 6], "w": 1, "x": 6.25, "y": 0 },
|
||||||
|
{ "label": "F2", "matrix": [0, 7], "w": 1, "x": 7.25, "y": 0 },
|
||||||
|
{ "label": "F3", "matrix": [0, 8], "w": 1, "x": 8.25, "y": 0 },
|
||||||
|
{ "label": "F4", "matrix": [0, 9], "w": 1, "x": 9.25, "y": 0 },
|
||||||
|
{ "label": "F5", "matrix": [0, 10], "w": 1, "x": 10.75, "y": 0 },
|
||||||
|
{ "label": "F6", "matrix": [6, 0], "w": 1, "x": 11.75, "y": 0 },
|
||||||
|
{ "label": "F7", "matrix": [6, 1], "w": 1, "x": 12.75, "y": 0 },
|
||||||
|
{ "label": "F8", "matrix": [6, 2], "w": 1, "x": 13.75, "y": 0 },
|
||||||
|
{ "label": "F9", "matrix": [6, 3], "w": 1, "x": 15.25, "y": 0 },
|
||||||
|
{ "label": "F10", "matrix": [6, 4], "w": 1, "x": 16.25, "y": 0 },
|
||||||
|
{ "label": "F11", "matrix": [6, 5], "w": 1, "x": 17.25, "y": 0 },
|
||||||
|
{ "label": "F12", "matrix": [6, 6], "w": 1, "x": 18.25, "y": 0 },
|
||||||
|
{ "label": "PrtSc", "matrix": [6, 7], "w": 1, "x": 20, "y": 0 },
|
||||||
|
{ "label": "Scroll Lock", "matrix": [6, 8], "w": 1, "x": 21, "y": 0 },
|
||||||
|
{ "label": "Pause", "matrix": [6, 9], "w": 1, "x": 22, "y": 0 },
|
||||||
|
{ "label": "Insert", "matrix": [6, 10], "w": 1, "x": 23, "y": 0 },
|
||||||
|
{ "label": "-", "matrix": [1, 0], "w": 1, "x": 0, "y": 1.25 },
|
||||||
|
{ "label": "Num Lock", "matrix": [1, 1], "w": 1, "x": 1, "y": 1.25 },
|
||||||
|
{ "label": "/", "matrix": [1, 2], "w": 1, "x": 2, "y": 1.25 },
|
||||||
|
{ "label": "*", "matrix": [1, 3], "w": 1, "x": 3, "y": 1.25 },
|
||||||
|
{ "label": "~", "matrix": [1, 4], "w": 1, "x": 4.5, "y": 1.25 },
|
||||||
|
{ "label": "!", "matrix": [1, 5], "w": 1, "x": 5.5, "y": 1.25 },
|
||||||
|
{ "label": "@", "matrix": [1, 6], "w": 1, "x": 6.5, "y": 1.25 },
|
||||||
|
{ "label": "#", "matrix": [1, 7], "w": 1, "x": 7.5, "y": 1.25 },
|
||||||
|
{ "label": "$", "matrix": [1, 8], "w": 1, "x": 8.5, "y": 1.25 },
|
||||||
|
{ "label": "%", "matrix": [1, 9], "w": 1, "x": 9.5, "y": 1.25 },
|
||||||
|
{ "label": "^", "matrix": [1, 10], "w": 1, "x": 10.5, "y": 1.25 },
|
||||||
|
{ "label": "&", "matrix": [7, 0], "w": 1, "x": 11.5, "y": 1.25 },
|
||||||
|
{ "label": "*", "matrix": [7, 1], "w": 1, "x": 12.5, "y": 1.25 },
|
||||||
|
{ "label": "(", "matrix": [7, 2], "w": 1, "x": 13.5, "y": 1.25 },
|
||||||
|
{ "label": ")", "matrix": [7, 3], "w": 1, "x": 14.5, "y": 1.25 },
|
||||||
|
{ "label": "_", "matrix": [7, 4], "w": 1, "x": 15.5, "y": 1.25 },
|
||||||
|
{ "label": "+", "matrix": [7, 5], "w": 1, "x": 16.5, "y": 1.25 },
|
||||||
|
{ "label": "Backspace", "matrix": [7, 6], "w": 2, "x": 17.5, "y": 1.25 },
|
||||||
|
{ "label": "Num Lock", "matrix": [7, 7], "w": 1, "x": 20, "y": 1.25 },
|
||||||
|
{ "label": "/", "matrix": [7, 8], "w": 1, "x": 21, "y": 1.25 },
|
||||||
|
{ "label": "*", "matrix": [7, 9], "w": 1, "x": 22, "y": 1.25 },
|
||||||
|
{ "label": "-", "matrix": [7, 10], "w": 1, "x": 23, "y": 1.25 },
|
||||||
|
{ "h": 2, "label": "+", "matrix": [2, 0], "w": 1, "x": 0, "y": 2.25 },
|
||||||
|
{ "label": "7", "matrix": [2, 1], "w": 1, "x": 1, "y": 2.25 },
|
||||||
|
{ "label": "8", "matrix": [2, 2], "w": 1, "x": 2, "y": 2.25 },
|
||||||
|
{ "label": "9", "matrix": [2, 3], "w": 1, "x": 3, "y": 2.25 },
|
||||||
|
{ "label": "Tab", "matrix": [2, 4], "w": 1.5, "x": 4.5, "y": 2.25 },
|
||||||
|
{ "label": "Q", "matrix": [2, 5], "w": 1, "x": 6, "y": 2.25 },
|
||||||
|
{ "label": "W", "matrix": [2, 6], "w": 1, "x": 7, "y": 2.25 },
|
||||||
|
{ "label": "E", "matrix": [2, 7], "w": 1, "x": 8, "y": 2.25 },
|
||||||
|
{ "label": "R", "matrix": [2, 8], "w": 1, "x": 9, "y": 2.25 },
|
||||||
|
{ "label": "T", "matrix": [2, 9], "w": 1, "x": 10, "y": 2.25 },
|
||||||
|
{ "label": "Y", "matrix": [2, 10], "w": 1, "x": 11, "y": 2.25 },
|
||||||
|
{ "label": "U", "matrix": [8, 0], "w": 1, "x": 12, "y": 2.25 },
|
||||||
|
{ "label": "I", "matrix": [8, 1], "w": 1, "x": 13, "y": 2.25 },
|
||||||
|
{ "label": "O", "matrix": [8, 2], "w": 1, "x": 14, "y": 2.25 },
|
||||||
|
{ "label": "P", "matrix": [8, 3], "w": 1, "x": 15, "y": 2.25 },
|
||||||
|
{ "label": "{", "matrix": [8, 4], "w": 1, "x": 16, "y": 2.25 },
|
||||||
|
{ "label": "}", "matrix": [8, 5], "w": 1, "x": 17, "y": 2.25 },
|
||||||
|
{ "label": "|", "matrix": [8, 6], "w": 1.5, "x": 18, "y": 2.25 },
|
||||||
|
{ "label": "7", "matrix": [8, 7], "w": 1, "x": 20, "y": 2.25 },
|
||||||
|
{ "label": "8", "matrix": [8, 8], "w": 1, "x": 21, "y": 2.25 },
|
||||||
|
{ "label": "9", "matrix": [8, 9], "w": 1, "x": 22, "y": 2.25 },
|
||||||
|
{ "h": 2, "label": "+", "matrix": [8, 10], "w": 1, "x": 23, "y": 2.25 },
|
||||||
|
{ "label": "4", "matrix": [3, 1], "w": 1, "x": 1, "y": 3.25 },
|
||||||
|
{ "label": "5", "matrix": [3, 2], "w": 1, "x": 2, "y": 3.25 },
|
||||||
|
{ "label": "6", "matrix": [3, 3], "w": 1, "x": 3, "y": 3.25 },
|
||||||
|
{ "label": "Caps Lock", "matrix": [3, 4], "w": 1.75, "x": 4.5, "y": 3.25 },
|
||||||
|
{ "label": "A", "matrix": [3, 5], "w": 1, "x": 6.25, "y": 3.25 },
|
||||||
|
{ "label": "S", "matrix": [3, 6], "w": 1, "x": 7.25, "y": 3.25 },
|
||||||
|
{ "label": "D", "matrix": [3, 7], "w": 1, "x": 8.25, "y": 3.25 },
|
||||||
|
{ "label": "F", "matrix": [3, 8], "w": 1, "x": 9.25, "y": 3.25 },
|
||||||
|
{ "label": "G", "matrix": [3, 9], "w": 1, "x": 10.25, "y": 3.25 },
|
||||||
|
{ "label": "H", "matrix": [3, 10], "w": 1, "x": 11.25, "y": 3.25 },
|
||||||
|
{ "label": "J", "matrix": [9, 0], "w": 1, "x": 12.25, "y": 3.25 },
|
||||||
|
{ "label": "K", "matrix": [9, 1], "w": 1, "x": 13.25, "y": 3.25 },
|
||||||
|
{ "label": "L", "matrix": [9, 2], "w": 1, "x": 14.25, "y": 3.25 },
|
||||||
|
{ "label": ":", "matrix": [9, 3], "w": 1, "x": 15.25, "y": 3.25 },
|
||||||
|
{ "label": "\"", "matrix": [9, 4], "w": 1, "x": 16.25, "y": 3.25 },
|
||||||
|
{ "label": "Enter", "matrix": [9, 5], "w": 2.25, "x": 17.25, "y": 3.25 },
|
||||||
|
{ "label": "4", "matrix": [9, 7], "w": 1, "x": 20, "y": 3.25 },
|
||||||
|
{ "label": "5", "matrix": [9, 8], "w": 1, "x": 21, "y": 3.25 },
|
||||||
|
{ "label": "6", "matrix": [9, 9], "w": 1, "x": 22, "y": 3.25 },
|
||||||
|
{ "h": 2, "label": "Enter", "matrix": [4, 0], "w": 1, "x": 0, "y": 4.25 },
|
||||||
|
{ "label": "1", "matrix": [4, 1], "w": 1, "x": 1, "y": 4.25 },
|
||||||
|
{ "label": "2", "matrix": [4, 2], "w": 1, "x": 2, "y": 4.25 },
|
||||||
|
{ "label": "3", "matrix": [4, 3], "w": 1, "x": 3, "y": 4.25 },
|
||||||
|
{ "label": "\\u2191", "matrix": [4, 4], "w": 1, "x": 4.25, "y": 4.5 },
|
||||||
|
{ "label": "Shift", "matrix": [4, 5], "w": 1.25, "x": 5.5, "y": 4.25 },
|
||||||
|
{ "label": "Z", "matrix": [4, 6], "w": 1, "x": 6.75, "y": 4.25 },
|
||||||
|
{ "label": "X", "matrix": [4, 7], "w": 1, "x": 7.75, "y": 4.25 },
|
||||||
|
{ "label": "C", "matrix": [4, 8], "w": 1, "x": 8.75, "y": 4.25 },
|
||||||
|
{ "label": "V", "matrix": [4, 9], "w": 1, "x": 9.75, "y": 4.25 },
|
||||||
|
{ "label": "B", "matrix": [4, 10], "w": 1, "x": 10.75, "y": 4.25 },
|
||||||
|
{ "label": "N", "matrix": [10, 0], "w": 1, "x": 11.75, "y": 4.25 },
|
||||||
|
{ "label": "M", "matrix": [10, 1], "w": 1, "x": 12.75, "y": 4.25 },
|
||||||
|
{ "label": "<", "matrix": [10, 2], "w": 1, "x": 13.75, "y": 4.25 },
|
||||||
|
{ "label": ">", "matrix": [10, 3], "w": 1, "x": 14.75, "y": 4.25 },
|
||||||
|
{ "label": "?", "matrix": [10, 4], "w": 1, "x": 15.75, "y": 4.25 },
|
||||||
|
{ "label": "Shift", "matrix": [10, 5], "w": 1.75, "x": 16.75, "y": 4.25 },
|
||||||
|
{ "label": "\\u2191", "matrix": [9, 6], "w": 1, "x": 18.75, "y": 4.5 },
|
||||||
|
{ "label": "1", "matrix": [10, 7], "w": 1, "x": 20, "y": 4.25 },
|
||||||
|
{ "label": "2", "matrix": [10, 8], "w": 1, "x": 21, "y": 4.25 },
|
||||||
|
{ "label": "3", "matrix": [10, 9], "w": 1, "x": 22, "y": 4.25 },
|
||||||
|
{ "h": 2, "label": "Enter", "matrix": [10, 10], "w": 1, "x": 23, "y": 4.25 },
|
||||||
|
{ "label": "0", "matrix": [5, 1], "w": 1, "x": 1, "y": 5.25 },
|
||||||
|
{ "label": ".", "matrix": [5, 2], "w": 1, "x": 2, "y": 5.25 },
|
||||||
|
{ "label": "\\u2190", "matrix": [5, 3], "w": 1, "x": 3.25, "y": 5.5 },
|
||||||
|
{ "label": "\\u2193", "matrix": [5, 4], "w": 1, "x": 4.25, "y": 5.5 },
|
||||||
|
{ "label": "\\u2192", "matrix": [5, 5], "w": 1, "x": 5.25, "y": 5.5 },
|
||||||
|
{ "label": "Ctrl", "matrix": [5, 6], "w": 1, "x": 6.5, "y": 5.25 },
|
||||||
|
{ "label": "Win", "matrix": [5, 7], "w": 1, "x": 7.5, "y": 5.25 },
|
||||||
|
{ "label": "Alt", "matrix": [5, 8], "w": 1, "x": 8.5, "y": 5.25 },
|
||||||
|
{ "label": "1u", "matrix": [5, 9], "w": 1, "x": 9.5, "y": 5.25 },
|
||||||
|
{ "label": "1u", "matrix": [5, 10], "w": 1, "x": 10.5, "y": 5.25 },
|
||||||
|
{ "label": "1u", "matrix": [11, 0], "w": 1, "x": 11.5, "y": 5.25 },
|
||||||
|
{ "label": "1u", "matrix": [11, 1], "w": 1, "x": 12.5, "y": 5.25 },
|
||||||
|
{ "label": "Alt", "matrix": [11, 2], "w": 1, "x": 13.5, "y": 5.25 },
|
||||||
|
{ "label": "Win", "matrix": [11, 3], "w": 1, "x": 14.5, "y": 5.25 },
|
||||||
|
{ "label": "Menu", "matrix": [11, 4], "w": 1, "x": 15.5, "y": 5.25 },
|
||||||
|
{ "label": "Ctrl", "matrix": [11, 5], "w": 1, "x": 16.5, "y": 5.25 },
|
||||||
|
{ "label": "\\u2190", "matrix": [10, 6], "w": 1, "x": 17.75, "y": 5.5 },
|
||||||
|
{ "label": "\\u2193", "matrix": [11, 6], "w": 1, "x": 18.75, "y": 5.5 },
|
||||||
|
{ "label": "\\u2192", "matrix": [11, 7], "w": 1, "x": 19.75, "y": 5.5 },
|
||||||
|
{ "label": "0", "matrix": [11, 8], "w": 1, "x": 21, "y": 5.25 },
|
||||||
|
{ "label": ".", "matrix": [11, 9], "w": 1, "x": 22, "y": 5.25 }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
"version": 1,
|
||||||
|
"author": "skullydazed",
|
||||||
|
"notes": "",
|
||||||
|
"keyboard": "clueboard/2x1800/2018",
|
||||||
|
"keymap": "default",
|
||||||
|
"layout": "LAYOUT_all",
|
||||||
|
"layers": [
|
||||||
|
[
|
||||||
|
"KC_HOME", "KC_END", "KC_PGUP", "KC_PGDN", "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", "KC_INS",
|
||||||
|
"KC_PMNS", "KC_NLCK", "KC_PSLS", "KC_PAST", "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_NLCK", "KC_PSLS", "KC_PAST", "KC_PMNS",
|
||||||
|
"KC_PPLS", "KC_P7", "KC_P8", "KC_P9", "KC_TAB", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_LBRC", "KC_RBRC", "KC_BSLS", "KC_P7", "KC_P8", "KC_P9", "KC_PPLS",
|
||||||
|
"KC_P4", "KC_P5", "KC_P6", "KC_CAPS", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCLN", "KC_QUOT", "KC_ENT", "KC_P4", "KC_P5", "KC_P6",
|
||||||
|
"KC_PENT", "KC_P1", "KC_P2", "KC_P3", "KC_UP", "KC_LSFT", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_RSFT", "KC_UP", "KC_P1", "KC_P2", "KC_P3", "KC_PENT",
|
||||||
|
"KC_P0", "KC_PDOT", "KC_LEFT", "KC_DOWN", "KC_RGHT", "KC_LCTL", "KC_LGUI", "KC_LALT", "KC_SPC", "KC_SPC", "KC_SPC", "KC_SPC", "KC_RALT", "KC_RGUI", "KC_APP", "KC_RCTL", "KC_LEFT", "KC_DOWN", "KC_RGHT", "KC_P0", "KC_PDOT"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
/* Copyright 2017 Zach White <[email protected]>
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[0] = LAYOUT_4u_space(
|
||||||
|
KC_HOME, KC_END, KC_PGUP, KC_PGDN, 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, KC_INS, \
|
||||||
|
\
|
||||||
|
KC_PMNS, KC_NLCK, KC_PSLS, KC_PAST, 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_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \
|
||||||
|
KC_PPLS, KC_P7, KC_P8, KC_P9, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, KC_PPLS, \
|
||||||
|
KC_P4, KC_P5, KC_P6, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, \
|
||||||
|
KC_PENT, KC_P1, KC_P2, KC_P3, KC_UP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, \
|
||||||
|
KC_P0, KC_PDOT, KC_LEFT, KC_DOWN, KC_RGHT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT \
|
||||||
|
)
|
||||||
|
};
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
# The default keymap for 2x1800 with 4u Spacebar
|
||||||
@@ -0,0 +1,49 @@
|
|||||||
|
/* Copyright 2017 Zach White <[email protected]>
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[0] = LAYOUT_7u_space(
|
||||||
|
KC_HOME, KC_END, KC_PGUP, KC_PGDN, 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, KC_DEL, \
|
||||||
|
\
|
||||||
|
KC_PMNS, KC_NLCK, KC_PSLS, KC_PAST, 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_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \
|
||||||
|
KC_PPLS, KC_P7, KC_P8, KC_P9, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, KC_PPLS, \
|
||||||
|
KC_P4, KC_P5, KC_P6, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, \
|
||||||
|
KC_PENT, KC_P1, KC_P2, KC_P3, KC_UP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, \
|
||||||
|
KC_P0, KC_PDOT, KC_LEFT, KC_DOWN, KC_RGHT, KC_LCTL, KC_LALT, KC_SPC, KC_LGUI, KC_APP, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT \
|
||||||
|
)
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef AUDIO_ENABLE
|
||||||
|
float song_one_up[][2] = SONG(ONE_UP_SOUND);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
volatile uint8_t runonce = true;
|
||||||
|
static uint16_t my_timer;
|
||||||
|
|
||||||
|
void matrix_init_user(void) {
|
||||||
|
my_timer = timer_read();
|
||||||
|
}
|
||||||
|
|
||||||
|
void matrix_scan_user(void) {
|
||||||
|
if (runonce && timer_elapsed(my_timer) > 500) {
|
||||||
|
runonce = false;
|
||||||
|
#ifdef AUDIO_ENABLE
|
||||||
|
PLAY_SONG(song_one_up);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
# The default keymap for 2x1800 with 7u spacebar
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
/* Copyright 2017 Zach White <[email protected]>
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
#define MAX7219_LED_FONTTEST
|
||||||
|
|
||||||
|
// place overrides here
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
#include "font.h"
|
||||||
|
#include "max7219.h"
|
||||||
|
|
||||||
|
enum custom_keycodes {
|
||||||
|
MSG_CB = SAFE_RANGE,
|
||||||
|
MSG_CS,
|
||||||
|
MSG_KMI,
|
||||||
|
MSG_QMK,
|
||||||
|
};
|
||||||
|
|
||||||
|
uint8_t custom_message[5][6] = {CHR_M, CHR_y, CHR_SPACE, CHR_2, CHR_CENT};
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[0] = LAYOUT_all(
|
||||||
|
MSG_CB, MSG_QMK, MSG_KMI, MSG_CS, 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, KC_INS,
|
||||||
|
KC_PMNS, KC_NLCK, KC_PSLS, KC_PAST, 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_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
|
||||||
|
KC_PPLS, KC_P7, KC_P8, KC_P9, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, KC_PPLS,
|
||||||
|
KC_P4, KC_P5, KC_P6, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6,
|
||||||
|
KC_PENT, KC_P1, KC_P2, KC_P3, KC_UP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT,
|
||||||
|
KC_P0, KC_PDOT, KC_LEFT, KC_DOWN, KC_RGHT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT
|
||||||
|
)
|
||||||
|
};
|
||||||
|
|
||||||
|
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||||
|
if (record->event.pressed) {
|
||||||
|
switch (keycode) {
|
||||||
|
case MSG_CB:
|
||||||
|
max7219_led_scrolling=true;
|
||||||
|
uint8_t cb_msg[MSG_CLUEBOARD_LEN][6] = MSG_CLUEBOARD;
|
||||||
|
max7219_message_sign(cb_msg, MSG_CLUEBOARD_LEN);
|
||||||
|
return true;
|
||||||
|
case MSG_CS:
|
||||||
|
max7219_led_scrolling=false;
|
||||||
|
max7219_message_sign(custom_message, 5);
|
||||||
|
return true;
|
||||||
|
case MSG_KMI:
|
||||||
|
max7219_led_scrolling=true;
|
||||||
|
uint8_t kmi_msg[MSG_KONAMI_LEN][6] = MSG_KONAMI;
|
||||||
|
max7219_message_sign(kmi_msg, MSG_KONAMI_LEN);
|
||||||
|
return true;
|
||||||
|
case MSG_QMK:
|
||||||
|
max7219_led_scrolling=true;
|
||||||
|
uint8_t qmk_msg[MSG_QMK_POWERED_LEN][6] = MSG_QMK_POWERED;
|
||||||
|
max7219_message_sign(qmk_msg, MSG_QMK_POWERED_LEN);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
};
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
# The default keymap for 2x1800
|
||||||
@@ -0,0 +1,318 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2021 Zach White <[email protected]>
|
||||||
|
* Copyright (c) 2007 Eberhard Fahle
|
||||||
|
*
|
||||||
|
* max7219.c - A library for controling Leds with a MAX7219/MAX7221
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person
|
||||||
|
* obtaining a copy of this software and associated documentation
|
||||||
|
* files (the "Software"), to deal in the Software without
|
||||||
|
* restriction, including without limitation the rights to use,
|
||||||
|
* copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the
|
||||||
|
* Software is furnished to do so, subject to the following
|
||||||
|
* conditions:
|
||||||
|
*
|
||||||
|
* This permission notice shall be included in all copies or
|
||||||
|
* substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||||
|
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||||
|
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||||
|
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||||
|
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||||
|
* OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This driver started as a port of Arduino's LedControl to QMK. The
|
||||||
|
* original Arduino code can be found here:
|
||||||
|
*
|
||||||
|
* https://github.com/wayoda/LedControl
|
||||||
|
*
|
||||||
|
* Unlike LedControl we are using the native SPI support, you will need to
|
||||||
|
* use the native SPI pins for your MCU. You can set the CS pin with
|
||||||
|
* `#define MAX7219_LOAD <pin>`.
|
||||||
|
*
|
||||||
|
* This has only been tested on AVR, specifically a Teensy 2.0++.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "max7219.h"
|
||||||
|
#include "font.h"
|
||||||
|
|
||||||
|
// Datastructures
|
||||||
|
bool max7219_led_scrolling = true;
|
||||||
|
uint16_t max7219_buffer_end = 0;
|
||||||
|
uint8_t max7219_spidata[MAX_BYTES];
|
||||||
|
uint8_t max7219_led_a[8][MAX7219_BUFFER_SIZE];
|
||||||
|
|
||||||
|
/* Write max7219_spidata to all the max7219's
|
||||||
|
*/
|
||||||
|
void max7219_write_all(void) {
|
||||||
|
dprintf("max7219_write_all()\n");
|
||||||
|
if (spi_start(MAX7219_LOAD, false, 0, 8)) {
|
||||||
|
for(int i = MAX_BYTES; i>0; i--) {
|
||||||
|
dprintf("spi_write(%d)\n", max7219_spidata[i-1]);
|
||||||
|
spi_write(max7219_spidata[i-1]);
|
||||||
|
}
|
||||||
|
spi_stop();
|
||||||
|
} else {
|
||||||
|
xprintf("Could not spi_start!\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Write the current frame in max7219_led_a to all the max7219's
|
||||||
|
*/
|
||||||
|
void max7219_write_frame(void) {
|
||||||
|
dprintf("max7219_write_frame()\n");
|
||||||
|
|
||||||
|
// Set our opcode and data
|
||||||
|
for (int col=0; col<8; col++) {
|
||||||
|
for (int device_num=0; device_num<MAX7219_CONTROLLERS; device_num++) {
|
||||||
|
int offset=device_num*2;
|
||||||
|
max7219_spidata[offset] = max7219_led_a[col][device_num];
|
||||||
|
max7219_spidata[offset+1] = col+1;
|
||||||
|
}
|
||||||
|
max7219_write_all();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Stores a message in the sign buffer.
|
||||||
|
*
|
||||||
|
* message should be a 2d array with the outer array having a length of your
|
||||||
|
* message and the inner array having a length of 6. Use the CHR_<letter>
|
||||||
|
* macros from font.h to populate your array.
|
||||||
|
*
|
||||||
|
* Example:
|
||||||
|
*
|
||||||
|
* uint8_t message[10][6] = {CHR_INTERROBANG, CHR_C, CHR_l, CHR_u, CHR_e, CHR_b, CHR_o, CHR_a, CHR_r, CHR_d};
|
||||||
|
* max7219_message(message, 10);
|
||||||
|
*/
|
||||||
|
void max7219_message_sign(uint8_t message[][6], size_t message_len) {
|
||||||
|
uint8_t letter_num = 0;
|
||||||
|
uint8_t letter_col = 0;
|
||||||
|
max7219_buffer_end = message_len * 6 + 32;
|
||||||
|
|
||||||
|
for (int device_num=0; device_num<MAX7219_BUFFER_SIZE; device_num++) {
|
||||||
|
for (int col=0; col<8; col++) {
|
||||||
|
if (letter_num >= message_len) {
|
||||||
|
max7219_led_a[col][device_num] = 0b00000000;
|
||||||
|
} else {
|
||||||
|
max7219_led_a[col][device_num] = message[letter_num][letter_col];
|
||||||
|
if (letter_col == 5) {
|
||||||
|
letter_num++;
|
||||||
|
letter_col = 0;
|
||||||
|
} else {
|
||||||
|
letter_col++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
max7219_write_frame();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Scroll the content on the sign left by 1 column.
|
||||||
|
*
|
||||||
|
* When loop_message is true columns that slide off the left will be added
|
||||||
|
* to the right to be displayed again.
|
||||||
|
*/
|
||||||
|
void max7219_message_sign_task(bool loop_message) {
|
||||||
|
uint8_t left_col = 0b00000000;
|
||||||
|
|
||||||
|
if (!max7219_led_scrolling) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (loop_message) {
|
||||||
|
left_col = max7219_led_a[0][0];
|
||||||
|
}
|
||||||
|
|
||||||
|
int i=0;
|
||||||
|
|
||||||
|
for (int device_num=0; device_num<MAX7219_BUFFER_SIZE; device_num++) {
|
||||||
|
for (int col=0; col<8; col++) {
|
||||||
|
i++;
|
||||||
|
|
||||||
|
if (i == max7219_buffer_end) {
|
||||||
|
max7219_led_a[col][device_num] = left_col;
|
||||||
|
device_num=MAX7219_BUFFER_SIZE;
|
||||||
|
break;
|
||||||
|
} else if (col < 7) {
|
||||||
|
max7219_led_a[col][device_num] = max7219_led_a[col+1][device_num];
|
||||||
|
} else if (device_num == MAX7219_BUFFER_SIZE-1) {
|
||||||
|
max7219_led_a[col][device_num] = left_col;
|
||||||
|
} else {
|
||||||
|
max7219_led_a[col][device_num] = max7219_led_a[0][device_num+1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
max7219_write_frame();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Write data to a single max7219
|
||||||
|
*/
|
||||||
|
void max7219_write(int device_num, volatile uint8_t opcode, volatile uint8_t data) {
|
||||||
|
dprintf("max7219_write(%d, %d, %d)\n", device_num, opcode, data);
|
||||||
|
|
||||||
|
// Clear the data array
|
||||||
|
for(int i = MAX_BYTES; i>0; i--) {
|
||||||
|
max7219_spidata[i-1]=0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set our opcode and data
|
||||||
|
uint8_t offset = device_num*2;
|
||||||
|
max7219_spidata[offset] = data;
|
||||||
|
max7219_spidata[offset+1] = opcode;
|
||||||
|
|
||||||
|
// Write the data
|
||||||
|
max7219_write_all();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Turn off all the LEDs
|
||||||
|
*/
|
||||||
|
void max7219_clear_display(void) {
|
||||||
|
dprintf("max7219_clear_display();\n");
|
||||||
|
|
||||||
|
for (int col=0; col<8; col++) {
|
||||||
|
for (int device_num=0; device_num<MAX7219_BUFFER_SIZE; device_num++) {
|
||||||
|
max7219_led_a[col][device_num] = 0b00000000;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
max7219_write_frame();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Enable the display test (IE turn on all 64 LEDs)
|
||||||
|
*/
|
||||||
|
void max7219_display_test(int device_num, bool enabled) {
|
||||||
|
dprintf("max7219_display_test(%d, %d);\n", device_num, enabled);
|
||||||
|
|
||||||
|
if (device_num<0 || device_num >= MAX7219_CONTROLLERS) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
max7219_write(device_num, OP_DISPLAYTEST, enabled);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Initialize the max7219 system and set the controller(s) to a default state.
|
||||||
|
*/
|
||||||
|
void max7219_init(void) {
|
||||||
|
wait_ms(1500);
|
||||||
|
dprintf("max7219_init()\n");
|
||||||
|
|
||||||
|
setPinOutput(MAX7219_LOAD);
|
||||||
|
writePinHigh(MAX7219_LOAD);
|
||||||
|
spi_init();
|
||||||
|
|
||||||
|
for (int i=0; i<MAX7219_CONTROLLERS; i++) {
|
||||||
|
max7219_shutdown(i, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i=0; i<MAX7219_CONTROLLERS; i++) {
|
||||||
|
// Reset everything to defaults and enable the display
|
||||||
|
max7219_display_test(i, false);
|
||||||
|
max7219_set_scan_limit(i, 7);
|
||||||
|
max7219_set_decode_mode(i, 0);
|
||||||
|
max7219_set_intensity(i, MAX7219_LED_INTENSITY);
|
||||||
|
}
|
||||||
|
|
||||||
|
max7219_clear_display();
|
||||||
|
|
||||||
|
#ifndef MAX7219_NO_STARTUP_TEST
|
||||||
|
for (int i=0; i<MAX7219_CONTROLLERS; i++) {
|
||||||
|
// Test this display
|
||||||
|
max7219_display_test(i, true);
|
||||||
|
wait_ms(75);
|
||||||
|
max7219_display_test(i, false);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
for (int i=0; i<MAX7219_CONTROLLERS; i++) {
|
||||||
|
max7219_shutdown(i, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Set the decode mode of the controller. You probably don't want to change this.
|
||||||
|
*/
|
||||||
|
void max7219_set_decode_mode(int device_num, int mode) {
|
||||||
|
dprintf("max7219_set_decode_mode(%d, %d);\n", device_num, mode);
|
||||||
|
|
||||||
|
if (device_num<0 || device_num >= MAX7219_CONTROLLERS) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
max7219_write(device_num, OP_DECODEMODE, mode);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Set the intensity (brightness) for the LEDs.
|
||||||
|
*/
|
||||||
|
void max7219_set_intensity(int device_num, int intensity) {
|
||||||
|
dprintf("max7219_set_intensity(%d, %d);\n", device_num, intensity);
|
||||||
|
|
||||||
|
if (device_num<0 || device_num >= MAX7219_CONTROLLERS) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (intensity >= 0 && intensity<16) {
|
||||||
|
max7219_write(device_num, OP_INTENSITY, intensity);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Control a single LED.
|
||||||
|
*/
|
||||||
|
void max7219_set_led(int row, int column, bool state) {
|
||||||
|
dprintf("max7219_set_led(%d, %d, %d);\n", row, column, state);
|
||||||
|
|
||||||
|
if (column<0 || column>8*MAX7219_CONTROLLERS) {
|
||||||
|
xprintf("max7219_set_led: column (%d) out of bounds\n", column);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (row<0 || row>7) {
|
||||||
|
xprintf("max7219_set_led: row (%d) out of bounds\n", row);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* At this point we reverse the sense of row and column to match the
|
||||||
|
* physical layout of my LEDs.
|
||||||
|
*/
|
||||||
|
uint8_t device_num = column / 8;
|
||||||
|
uint8_t col = column % 8;
|
||||||
|
uint8_t val = 0b10000000 >> row;
|
||||||
|
|
||||||
|
if (state) {
|
||||||
|
max7219_led_a[col][device_num] = max7219_led_a[col][device_num]|val;
|
||||||
|
} else {
|
||||||
|
val = ~val;
|
||||||
|
max7219_led_a[col][device_num] = max7219_led_a[col][device_num]&val;
|
||||||
|
}
|
||||||
|
max7219_write(device_num, col+1, max7219_led_a[col][device_num]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Set the number of digits (rows) to be scanned.
|
||||||
|
*/
|
||||||
|
void max7219_set_scan_limit(int device_num, int limit) {
|
||||||
|
dprintf("max7219_set_scan_limit(%d, %d);\n", device_num, limit);
|
||||||
|
|
||||||
|
if (device_num<0 || device_num >= MAX7219_CONTROLLERS) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (limit >= 0 && limit < 8) {
|
||||||
|
max7219_write(device_num, OP_SCANLIMIT, limit);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Enable (true) or disable (false) the controller.
|
||||||
|
*/
|
||||||
|
void max7219_shutdown(int device_num, bool shutdown) {
|
||||||
|
dprintf("max7219_shutdown(%d, %d);\n", device_num, shutdown);
|
||||||
|
|
||||||
|
if (device_num<0 || device_num >= MAX7219_CONTROLLERS) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
max7219_write(device_num, OP_SHUTDOWN, !shutdown);
|
||||||
|
}
|
||||||
@@ -0,0 +1,87 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2021 Zach White <[email protected]>
|
||||||
|
* Copyright (c) 2007 Eberhard Fahle
|
||||||
|
*
|
||||||
|
* max7219.h - A library for controling Leds with a MAX7219/MAX7221
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person
|
||||||
|
* obtaining a copy of this software and associated documentation
|
||||||
|
* files (the "Software"), to deal in the Software without
|
||||||
|
* restriction, including without limitation the rights to use,
|
||||||
|
* copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the
|
||||||
|
* Software is furnished to do so, subject to the following
|
||||||
|
* conditions:
|
||||||
|
*
|
||||||
|
* This permission notice shall be included in all copies or
|
||||||
|
* substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||||
|
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||||
|
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||||
|
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||||
|
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||||
|
* OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
#pragma once
|
||||||
|
#include "quantum.h"
|
||||||
|
#include "spi_master.h"
|
||||||
|
|
||||||
|
// Set defaults if they're not set
|
||||||
|
#ifndef MAX7219_LOAD
|
||||||
|
# define MAX7219_LOAD B0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef MAX7219_CONTROLLERS
|
||||||
|
# define MAX7219_CONTROLLERS 4
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef MAX7219_LED_INTENSITY
|
||||||
|
# define MAX7219_LED_INTENSITY 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef MAX7219_SCROLL_TIME
|
||||||
|
# define MAX7219_SCROLL_TIME 100
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef MAX7219_BUFFER_MULTIPLIER
|
||||||
|
# define MAX7219_BUFFER_MULTIPLIER 24
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !defined(MAX7219_LED_TEST) && !defined(MAX7219_LED_ITERATE) && !defined(MAX7219_LED_DANCE) && !defined(MAX7219_LED_FONTTEST) && !defined(MAX7219_LED_CLUEBOARD) && !defined(MAX7219_LED_KONAMI) && !defined(MAX7219_LED_QMK_POWERED) && !defined(MAX7219_DRAWING_TOY_MODE) && !defined(MAX7219_LED_CUSTOM)
|
||||||
|
# define MAX7219_QMK_POWERED
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Configure our MAX7219's
|
||||||
|
#define MAX_BYTES MAX7219_CONTROLLERS * 2
|
||||||
|
#define LED_COUNT MAX7219_CONTROLLERS * 64
|
||||||
|
#define MAX7219_BUFFER_SIZE MAX7219_CONTROLLERS*MAX7219_BUFFER_MULTIPLIER
|
||||||
|
|
||||||
|
// Opcodes for the MAX7219
|
||||||
|
#define OP_DECODEMODE 9
|
||||||
|
#define OP_INTENSITY 10
|
||||||
|
#define OP_SCANLIMIT 11
|
||||||
|
#define OP_SHUTDOWN 12
|
||||||
|
#define OP_DISPLAYTEST 15
|
||||||
|
|
||||||
|
// Datastructures
|
||||||
|
extern uint8_t max7219_led_a[8][MAX7219_BUFFER_SIZE];
|
||||||
|
extern bool max7219_led_scrolling;
|
||||||
|
|
||||||
|
// Functions
|
||||||
|
void max7219_write(int device_num, volatile uint8_t opcode, volatile uint8_t data);
|
||||||
|
void max7219_write_all(void);
|
||||||
|
void max7219_write_frame(void);
|
||||||
|
void max7219_clear_display(void);
|
||||||
|
void max7219_display_test(int device_num, bool enabled);
|
||||||
|
void max7219_init(void);
|
||||||
|
void max7219_message_sign(uint8_t message[][6], size_t message_len);
|
||||||
|
void max7219_message_sign_task(bool loop_message);
|
||||||
|
void max7219_set_decode_mode(int device_num, int mode);
|
||||||
|
void max7219_set_intensity(int device_num, int intensity);
|
||||||
|
void max7219_set_led(int row, int column, bool state);
|
||||||
|
void max7219_set_all_leds(uint8_t led_matrix[LED_COUNT]);
|
||||||
|
void max7219_set_scan_limit(int device_num, int limit);
|
||||||
|
void max7219_shutdown(int device_num, bool is_in_shutdown);
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
# Clueboard 2x1800
|
||||||
|
|
||||||
|
Clueboard 2x1800 LED Sign Edition
|
||||||
|
|
||||||
|
* Keyboard Maintainer: [Zach White](https://github.com/skullydazed)
|
||||||
|
* Hardware Supported: Clueboard 2x1800 PCB
|
||||||
|
* Hardware Availability: 2021 Apr 1 Group Buy
|
||||||
|
|
||||||
|
Make example for this keyboard:
|
||||||
|
|
||||||
|
make clueboard/2x1800/2021:default
|
||||||
|
|
||||||
|
Flashing example for this keyboard:
|
||||||
|
|
||||||
|
make clueboard/2x1800/2021:default:flash
|
||||||
|
|
||||||
|
See 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).
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
QUANTUM_LIB_SRC += max7219.c spi_master.c
|
||||||
+11
-10
@@ -21,20 +21,22 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
#include "config_common.h"
|
#include "config_common.h"
|
||||||
|
|
||||||
/* USB Device descriptor parameter */
|
/* USB Device descriptor parameter */
|
||||||
#define VENDOR_ID 0x4653
|
#define VENDOR_ID 0x4653
|
||||||
#define PRODUCT_ID 0x0001
|
#define PRODUCT_ID 0x0001
|
||||||
#define DEVICE_VER 0x0001
|
#define DEVICE_VER 0x0001
|
||||||
#define MANUFACTURER foostan
|
#define MANUFACTURER foostan
|
||||||
#define PRODUCT Corne
|
#define PRODUCT Corne
|
||||||
|
|
||||||
/* key matrix size */
|
/* key matrix size */
|
||||||
// Rows are doubled-up
|
// Rows are doubled-up
|
||||||
#define MATRIX_ROWS 8
|
#define MATRIX_ROWS 8
|
||||||
#define MATRIX_COLS 6
|
#define MATRIX_COLS 6
|
||||||
#define MATRIX_ROW_PINS { D4, C6, D7, E6 }
|
#define MATRIX_ROW_PINS \
|
||||||
|
{ D4, C6, D7, E6 }
|
||||||
|
|
||||||
// wiring of each half
|
// wiring of each half
|
||||||
#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3 }
|
#define MATRIX_COL_PINS \
|
||||||
|
{ F4, F5, F6, F7, B1, B3 }
|
||||||
// #define MATRIX_COL_PINS { B2, B3, B1, F7, F6, F5, F4 } //uncomment this line and comment line above if you need to reverse left-to-right key order
|
// #define MATRIX_COL_PINS { B2, B3, B1, F7, F6, F5, F4 } //uncomment this line and comment line above if you need to reverse left-to-right key order
|
||||||
|
|
||||||
/* define if matrix has ghost */
|
/* define if matrix has ghost */
|
||||||
@@ -51,7 +53,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
/* Locking resynchronize hack */
|
/* Locking resynchronize hack */
|
||||||
//#define LOCKING_RESYNC_ENABLE
|
//#define LOCKING_RESYNC_ENABLE
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Feature disable options
|
* Feature disable options
|
||||||
* These options are also useful to firmware size reduction.
|
* These options are also useful to firmware size reduction.
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ void keyboard_post_init_user(void) {
|
|||||||
// Set RGB to known state
|
// Set RGB to known state
|
||||||
rgb_matrix_enable_noeeprom();
|
rgb_matrix_enable_noeeprom();
|
||||||
rgb_matrix_set_color_all(RGB_GREEN);
|
rgb_matrix_set_color_all(RGB_GREEN);
|
||||||
rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
|
rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_COLOR);
|
||||||
user_led_enabled = true;
|
user_led_enabled = true;
|
||||||
}
|
}
|
||||||
// [Process User Input] ------------------------------------------------------//
|
// [Process User Input] ------------------------------------------------------//
|
||||||
|
|||||||
@@ -16,31 +16,25 @@ You should have received a copy of the GNU General Public License
|
|||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
//#define USE_MATRIX_I2C
|
|
||||||
#ifdef KEYBOARD_crkbd_rev1_legacy
|
|
||||||
# undef USE_I2C
|
|
||||||
# define USE_SERIAL
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Select hand configuration */
|
/* Select hand configuration */
|
||||||
|
|
||||||
#define MASTER_LEFT
|
#define MASTER_LEFT
|
||||||
// #define MASTER_RIGHT
|
// #define MASTER_RIGHT
|
||||||
// #define EE_HANDS
|
// #define EE_HANDS
|
||||||
|
|
||||||
#define USE_SERIAL_PD2
|
#ifdef RGBLIGHT_ENABLE
|
||||||
|
# undef RGBLED_NUM
|
||||||
|
# define RGBLIGHT_ANIMATIONS
|
||||||
#undef RGBLED_NUM
|
# define RGBLED_NUM 54
|
||||||
#define RGBLIGHT_ANIMATIONS
|
# undef RGBLED_SPLIT
|
||||||
#define RGBLED_NUM 27
|
# define RGBLED_SPLIT \
|
||||||
#define RGBLIGHT_LIMIT_VAL 120
|
{ 27, 27 }
|
||||||
#define RGBLIGHT_HUE_STEP 10
|
# define RGBLIGHT_LIMIT_VAL 120
|
||||||
#define RGBLIGHT_SAT_STEP 17
|
# define RGBLIGHT_HUE_STEP 10
|
||||||
#define RGBLIGHT_VAL_STEP 17
|
# define RGBLIGHT_SAT_STEP 17
|
||||||
|
# define RGBLIGHT_VAL_STEP 17
|
||||||
|
#endif
|
||||||
|
|
||||||
#define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c"
|
#define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c"
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <[email protected]>
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#ifndef BOOTMAGIC_LITE_ROW
|
||||||
|
# define BOOTMAGIC_LITE_ROW 0
|
||||||
|
#endif
|
||||||
|
#ifndef BOOTMAGIC_LITE_COLUMN
|
||||||
|
# define BOOTMAGIC_LITE_COLUMN 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef BOOTMAGIC_LITE_ROW_RIGHT
|
||||||
|
# define BOOTMAGIC_LITE_ROW_RIGHT 4
|
||||||
|
#endif
|
||||||
|
#ifndef BOOTMAGIC_LITE_COLUMN_RIGHT
|
||||||
|
# define BOOTMAGIC_LITE_COLUMN_RIGHT 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef RGBLIGHT_ENABLE
|
||||||
|
# ifndef RGBLIGHT_LIMIT_VAL
|
||||||
|
# define RGBLIGHT_LIMIT_VAL 120
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef RGB_MATRIX_ENABLE
|
||||||
|
# ifndef RGB_MATRIX_MAXIMUM_BRIGHTNESS
|
||||||
|
# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 120
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
@@ -20,6 +20,12 @@ make crkbd:default
|
|||||||
|
|
||||||
See 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).
|
See 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).
|
||||||
|
|
||||||
|
## Bootloader
|
||||||
|
|
||||||
|
The Corne PCBs have a reset button next to the TRRS jack to enter in to the bootloader.
|
||||||
|
|
||||||
|
Additionally, if you hold down the "Q" or "P" buttons when plugging in that half of the keyboard (per the default QWERTY layout), this will jump to the bootloader and reset the EEPROM (persistent storage). This would normally be the very top corner-most position, but due to the breakaway column, it's left at Q and P for compatibility.
|
||||||
|
|
||||||
## RGB Matrix
|
## RGB Matrix
|
||||||
The Corne Keyboard also supports using the RGB Matrix feature, in place of RGB Light. This provids a better experience when using the keyboard, as it supports a number of per key effects properly. If you're not using the in switch LEDs, then you may want to pass on doing this.
|
The Corne Keyboard also supports using the RGB Matrix feature, in place of RGB Light. This provids a better experience when using the keyboard, as it supports a number of per key effects properly. If you're not using the in switch LEDs, then you may want to pass on doing this.
|
||||||
|
|
||||||
|
|||||||
@@ -22,17 +22,20 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
#define SOFT_SERIAL_PIN D2
|
#define SOFT_SERIAL_PIN D2
|
||||||
|
|
||||||
/* ws2812 RGB LED */
|
/* ws2812 RGB LED */
|
||||||
#define RGB_DI_PIN D3
|
#define RGB_DI_PIN D3
|
||||||
|
|
||||||
#ifdef RGBLIGHT_ENABLE
|
#ifdef RGBLIGHT_ENABLE
|
||||||
# define RGBLED_NUM 12 // Number of LEDs
|
# define RGBLED_NUM 12 // Number of LEDs
|
||||||
|
# define RGBLED_SPLIT \
|
||||||
|
{ 6, 6 }
|
||||||
# define RGBLIGHT_SPLIT
|
# define RGBLIGHT_SPLIT
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef RGB_MATRIX_ENABLE
|
#ifdef RGB_MATRIX_ENABLE
|
||||||
# define RGBLED_NUM 54 // Number of LEDs
|
# define RGBLED_NUM 54 // Number of LEDs
|
||||||
# define DRIVER_LED_TOTAL RGBLED_NUM
|
# define DRIVER_LED_TOTAL RGBLED_NUM
|
||||||
# define RGB_MATRIX_SPLIT { 27, 27 }
|
# define RGB_MATRIX_SPLIT \
|
||||||
|
{ 27, 27 }
|
||||||
# define SPLIT_TRANSPORT_MIRROR
|
# define SPLIT_TRANSPORT_MIRROR
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
+17
-23
@@ -2,39 +2,33 @@
|
|||||||
MCU = atmega32u4
|
MCU = atmega32u4
|
||||||
|
|
||||||
# Bootloader selection
|
# Bootloader selection
|
||||||
# Teensy halfkay
|
|
||||||
# Pro Micro caterina
|
|
||||||
# Atmel DFU atmel-dfu
|
|
||||||
# LUFA DFU lufa-dfu
|
|
||||||
# QMK DFU qmk-dfu
|
|
||||||
# ATmega32A bootloadHID
|
|
||||||
# ATmega328P USBasp
|
|
||||||
BOOTLOADER = caterina
|
BOOTLOADER = caterina
|
||||||
|
|
||||||
# Build Options
|
# Build Options
|
||||||
# change to "no" to disable the options, or define them in the Makefile in
|
# change yes to no to disable
|
||||||
# the appropriate keymap folder that will get included automatically
|
|
||||||
#
|
#
|
||||||
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
|
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
|
||||||
MOUSEKEY_ENABLE = yes # Mouse keys
|
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||||
EXTRAKEY_ENABLE = no # Audio control and System control
|
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||||
CONSOLE_ENABLE = no # Console for debug
|
CONSOLE_ENABLE = no # Console for debug
|
||||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||||
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||||
MIDI_ENABLE = no # MIDI controls
|
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
AUDIO_ENABLE = no # Audio output on port C6
|
NKRO_ENABLE = yes # USB Nkey Rollover
|
||||||
UNICODE_ENABLE = no # Unicode
|
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||||
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
|
BLUETOOTH_ENABLE = no # Enable Bluetooth
|
||||||
|
AUDIO_ENABLE = no # Audio output
|
||||||
RGB_MATRIX_ENABLE = no
|
RGB_MATRIX_ENABLE = no
|
||||||
RGB_MATRIX_DRIVER = WS2812
|
RGB_MATRIX_DRIVER = WS2812
|
||||||
|
|
||||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
|
||||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
|
||||||
|
|
||||||
# if firmware size over limit, try this option
|
# if firmware size over limit, try this option
|
||||||
# LTO_ENABLE = yes
|
# LTO_ENABLE = yes
|
||||||
LAYOUTS = split_3x5_3 split_3x6_3
|
|
||||||
|
|
||||||
DEFAULT_FOLDER = crkbd/rev1
|
DEFAULT_FOLDER = crkbd/rev1
|
||||||
|
|
||||||
|
RGBLIGHT_SUPPORTED = yes
|
||||||
|
RGB_MATRIX_SUPPORTED = yes
|
||||||
|
|
||||||
|
LAYOUTS = split_3x5_3 split_3x6_3
|
||||||
@@ -0,0 +1,70 @@
|
|||||||
|
/*Copyright 2021 Blake Drayson / Draytronics
|
||||||
|
|
||||||
|
Contact [email protected]
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "config_common.h"
|
||||||
|
|
||||||
|
/* USB Device descriptor parameter */
|
||||||
|
#define VENDOR_ID 0x4454 //DT for DrayTronics
|
||||||
|
#define PRODUCT_ID 0x454C //EL for Elise
|
||||||
|
#define DEVICE_VER 0x0100 //Version 1
|
||||||
|
#define MANUFACTURER Draytronics
|
||||||
|
#define PRODUCT ELISE
|
||||||
|
|
||||||
|
/* key matrix size */
|
||||||
|
#define MATRIX_ROWS 5
|
||||||
|
#define MATRIX_COLS 15
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Keyboard Matrix Assignments
|
||||||
|
*
|
||||||
|
* Change this to how you wired your keyboard
|
||||||
|
* COLS: AVR pins used for columns, left to right
|
||||||
|
* ROWS: AVR pins used for rows, top to bottom
|
||||||
|
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
|
||||||
|
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#define MATRIX_ROW_PINS { B2,B3, B1, F0, F1}
|
||||||
|
#define MATRIX_COL_PINS { F4, F5, F6, F7, C7, C6, B6, B5, B4, D7, D6, D4, D2, D3, D5}
|
||||||
|
#define UNUSED_PINS
|
||||||
|
|
||||||
|
/* COL2ROW, ROW2COL*/
|
||||||
|
#define DIODE_DIRECTION COL2ROW
|
||||||
|
|
||||||
|
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||||
|
#define DEBOUNCE 5
|
||||||
|
|
||||||
|
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||||
|
#define LOCKING_SUPPORT_ENABLE
|
||||||
|
/* Locking resynchronize hack */
|
||||||
|
#define LOCKING_RESYNC_ENABLE
|
||||||
|
|
||||||
|
// ws2812 options
|
||||||
|
#define RGB_DI_PIN D1 // pin the DI on the ws2812 is hooked-up to
|
||||||
|
#ifdef RGB_DI_PIN
|
||||||
|
#define RGBLED_NUM 7
|
||||||
|
#define RGBLIGHT_HUE_STEP 8
|
||||||
|
#define RGBLIGHT_SAT_STEP 8
|
||||||
|
#define RGBLIGHT_VAL_STEP 8
|
||||||
|
#define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
|
||||||
|
#define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
|
||||||
|
/*== all animations enable ==*/
|
||||||
|
#define RGBLIGHT_ANIMATIONS
|
||||||
|
#endif
|
||||||
Executable
+18
@@ -0,0 +1,18 @@
|
|||||||
|
/*Copyright 2021 Blake Drayson / Draytronics
|
||||||
|
|
||||||
|
Contact [email protected]
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#include "elise.h"
|
||||||
Executable
+135
@@ -0,0 +1,135 @@
|
|||||||
|
/*Copyright 2021 Blake Drayson / Draytronics
|
||||||
|
|
||||||
|
Contact [email protected]
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#define _x_ KC_NO
|
||||||
|
|
||||||
|
#include "quantum.h"
|
||||||
|
|
||||||
|
#define LAYOUT_65_ansi( \
|
||||||
|
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
|
||||||
|
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \
|
||||||
|
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, \
|
||||||
|
K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \
|
||||||
|
K40, K41, K42, K45, K49, K4A, K4B, K4C, K4D, K4E \
|
||||||
|
) { \
|
||||||
|
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
|
||||||
|
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \
|
||||||
|
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, _x_, K2D, K2E }, \
|
||||||
|
{ K30, _x_, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \
|
||||||
|
{ K40, K41, K42, _x_, _x_, K45, _x_, _x_, _x_, K49, K4A, K4B, K4C, K4D, K4E} \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define LAYOUT_65_ansi_right_lrg( \
|
||||||
|
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
|
||||||
|
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \
|
||||||
|
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, \
|
||||||
|
K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \
|
||||||
|
K40, K41, K42, K45, K49, K4B, K4C, K4D, K4E \
|
||||||
|
) { \
|
||||||
|
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
|
||||||
|
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \
|
||||||
|
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, _x_, K2D, K2E }, \
|
||||||
|
{ K30, _x_, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \
|
||||||
|
{ K40, K41, K42, _x_, _x_, K45, _x_, _x_, _x_, K49, _x_, K4B, K4C, K4D, K4E} \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define LAYOUT_65_ansi_left_lrg( \
|
||||||
|
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
|
||||||
|
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \
|
||||||
|
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, \
|
||||||
|
K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \
|
||||||
|
K40, K42, K45, K49, K4A, K4B, K4C, K4D, K4E \
|
||||||
|
) { \
|
||||||
|
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
|
||||||
|
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \
|
||||||
|
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, _x_, K2D, K2E }, \
|
||||||
|
{ K30, _x_, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \
|
||||||
|
{ K40, _x_, K42, _x_, _x_, K45, _x_, _x_, _x_, K49, K4A, K4B, K4C, K4D, K4E} \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define LAYOUT_65_ansi_lrg( \
|
||||||
|
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
|
||||||
|
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \
|
||||||
|
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, \
|
||||||
|
K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \
|
||||||
|
K40, K42, K45, K49, K4B, K4C, K4D, K4E \
|
||||||
|
) { \
|
||||||
|
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
|
||||||
|
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \
|
||||||
|
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, _x_, K2D, K2E }, \
|
||||||
|
{ K30, _x_, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \
|
||||||
|
{ K40, _x_, K42, _x_, _x_, K45, _x_, _x_, _x_, K49, _x_, K4B, K4C, K4D, K4E} \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define LAYOUT_65_iso( \
|
||||||
|
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
|
||||||
|
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, \
|
||||||
|
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K1D, K2E, \
|
||||||
|
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \
|
||||||
|
K40, K41, K42, K45, K49, K4A, K4B, K4C, K4D, K4E \
|
||||||
|
) { \
|
||||||
|
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
|
||||||
|
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \
|
||||||
|
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, _x_, K2D, K2E }, \
|
||||||
|
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \
|
||||||
|
{ K40, K41, K42, _x_, _x_, K45, _x_, _x_, _x_, K49, K4A, K4B, K4C, K4D, K4E} \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define LAYOUT_65_iso_right_lrg( \
|
||||||
|
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
|
||||||
|
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, \
|
||||||
|
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K1D, K2E, \
|
||||||
|
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \
|
||||||
|
K40, K41, K42, K45, K49, K4B, K4C, K4D, K4E \
|
||||||
|
) { \
|
||||||
|
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
|
||||||
|
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \
|
||||||
|
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, _x_, K2D, K2E }, \
|
||||||
|
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \
|
||||||
|
{ K40, K41, K42, _x_, _x_, K45, _x_, _x_, _x_, K49, _x_, K4B, K4C, K4D, K4E} \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define LAYOUT_65_iso_left_lrg( \
|
||||||
|
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
|
||||||
|
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, \
|
||||||
|
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K1D, K2E, \
|
||||||
|
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \
|
||||||
|
K40, K42, K45, K49, K4A, K4B, K4C, K4D, K4E \
|
||||||
|
) { \
|
||||||
|
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
|
||||||
|
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \
|
||||||
|
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, _x_, K2D, K2E }, \
|
||||||
|
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \
|
||||||
|
{ K40, _x_, K42, _x_, _x_, K45, _x_, _x_, _x_, K49, K4A, K4B, K4C, K4D, K4E} \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define LAYOUT_65_iso_lrg( \
|
||||||
|
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
|
||||||
|
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, \
|
||||||
|
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K1D, K2E, \
|
||||||
|
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \
|
||||||
|
K40, K42, K45, K49, K4B, K4C, K4D, K4E \
|
||||||
|
) { \
|
||||||
|
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
|
||||||
|
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \
|
||||||
|
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, _x_, K2D, K2E }, \
|
||||||
|
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \
|
||||||
|
{ K40, _x_, K42, _x_, _x_, K45, _x_, _x_, _x_, K49, _x_, K4B, K4C, K4D, K4E} \
|
||||||
|
}
|
||||||
Loaded 100 of 407 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user