Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9331c22620 | ||
|
|
cc84831cae | ||
|
|
f490777502 | ||
|
|
6e79767f5a | ||
|
|
3bc7f46412 | ||
|
|
8a2d3a8861 | ||
|
|
538194344a | ||
|
|
23765332fa | ||
|
|
163e9b02bf | ||
|
|
90f95de5c9 | ||
|
|
ffc4380b30 | ||
|
|
314ef9df03 | ||
|
|
563be8ca2a | ||
|
|
e527b375e8 | ||
|
|
4e8a218d17 | ||
|
|
57de02c9f2 | ||
|
|
3c4972a53f | ||
|
|
6af387ec6f | ||
|
|
554b73643d | ||
|
|
e941ae3811 | ||
|
|
f75420c209 | ||
|
|
d99806cc27 | ||
|
|
cd8497b9fb | ||
|
|
469b4b21d2 | ||
|
|
926389f3a7 | ||
|
|
52b7ebd6be | ||
|
|
2e50b34c67 | ||
|
|
a18e1305b3 | ||
|
|
0779c34db8 | ||
|
|
9e1d04fea7 | ||
|
|
b44bffe954 | ||
|
|
739925c902 | ||
|
|
45e6bb7add | ||
|
|
7b7689d307 | ||
|
|
aa73411c14 | ||
|
|
b96c18c952 | ||
|
|
225bff226f | ||
|
|
5d7ad69cd8 | ||
|
|
b8ad5f4249 | ||
|
|
63f9e7ee86 | ||
|
|
88dce24375 | ||
|
|
ea2a7c5ea4 | ||
|
|
0ad7833ca4 | ||
|
|
790f94533c | ||
|
|
9089244db7 | ||
|
|
aed8bace97 | ||
|
|
4f5e0dd325 | ||
|
|
6d8d20774f | ||
|
|
2aa38f5bd3 | ||
|
|
75fd6bd269 | ||
|
|
86e6be342c | ||
|
|
8556068534 | ||
|
|
0763269ec5 | ||
|
|
01b8ef39f5 | ||
|
|
08e512a273 | ||
|
|
1cbf1c681a | ||
|
|
9b85b1b638 | ||
|
|
788b1854b4 | ||
|
|
86e28b4db8 | ||
|
|
9c94de070a | ||
|
|
23d6ca9942 | ||
|
|
b16bfac107 | ||
|
|
09dfc08207 | ||
|
|
07fce7ba13 | ||
|
|
52d8cbf092 | ||
|
|
73b8f85816 | ||
|
|
aadea5ab97 | ||
|
|
54f7708eaa | ||
|
|
d7aa245c33 | ||
|
|
2cb0b41ce7 | ||
|
|
e25f05224f | ||
|
|
7639b5aa3e | ||
|
|
4d41645598 | ||
|
|
b1a8fafa62 | ||
|
|
6461087c86 | ||
|
|
7aa74c227b |
No files matched your search
@@ -25,18 +25,13 @@ jobs:
|
|||||||
- name: Generate API Data
|
- name: Generate API Data
|
||||||
run: qmk generate-api
|
run: qmk generate-api
|
||||||
|
|
||||||
- name: Install rsync
|
|
||||||
run: |
|
|
||||||
apt-get update && apt-get install -y rsync
|
|
||||||
|
|
||||||
- name: Upload API Data
|
- name: Upload API Data
|
||||||
uses: JamesIves/github-pages-deploy-action@3.7.1
|
uses: jakejarvis/s3-sync-action@master
|
||||||
with:
|
with:
|
||||||
ACCESS_TOKEN: ${{ secrets.API_TOKEN_GITHUB }}
|
args: --acl public-read --follow-symlinks --delete
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
env:
|
||||||
BRANCH: main
|
AWS_S3_BUCKET: ${{ secrets.API_SPACE_MASTER }}
|
||||||
FOLDER: api_data/v1
|
AWS_ACCESS_KEY_ID: ${{ secrets.SPACES_ACCESS_KEY }}
|
||||||
CLEAN: true
|
AWS_SECRET_ACCESS_KEY: ${{ secrets.SPACES_SECRET_KEY }}
|
||||||
GIT_CONFIG_EMAIL: h[email protected]m
|
AWS_S3_ENDPOINT: https://nyc3.digitaloceanspaces.com
|
||||||
REPOSITORY_NAME: qmk/qmk_keyboards
|
SOURCE_DIR: 'api_data'
|
||||||
TARGET_FOLDER: v1
|
|
||||||
@@ -25,18 +25,13 @@ jobs:
|
|||||||
- name: Generate API Data
|
- name: Generate API Data
|
||||||
run: qmk generate-api
|
run: qmk generate-api
|
||||||
|
|
||||||
- name: Install rsync
|
|
||||||
run: |
|
|
||||||
apt-get update && apt-get install -y rsync
|
|
||||||
|
|
||||||
- name: Upload API Data
|
- name: Upload API Data
|
||||||
uses: JamesIves/github-pages-deploy-action@3.7.1
|
uses: jakejarvis/s3-sync-action@master
|
||||||
with:
|
with:
|
||||||
ACCESS_TOKEN: ${{ secrets.API_TOKEN_GITHUB }}
|
args: --acl public-read --follow-symlinks --delete
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
env:
|
||||||
BRANCH: main
|
AWS_S3_BUCKET: ${{ secrets.API_SPACE_DEVELOP }}
|
||||||
FOLDER: api_data/v1
|
AWS_ACCESS_KEY_ID: ${{ secrets.SPACES_ACCESS_KEY }}
|
||||||
CLEAN: true
|
AWS_SECRET_ACCESS_KEY: ${{ secrets.SPACES_SECRET_KEY }}
|
||||||
GIT_CONFIG_EMAIL: h[email protected]m
|
AWS_S3_ENDPOINT: https://nyc3.digitaloceanspaces.com
|
||||||
REPOSITORY_NAME: qmk/qmk_keyboards_devel
|
SOURCE_DIR: 'api_data'
|
||||||
TARGET_FOLDER: v1
|
|
||||||
+1
-1
@@ -97,7 +97,7 @@ MAIN_KEYMAP_PATH_4 := $(KEYBOARD_PATH_4)/keymaps/$(KEYMAP)
|
|||||||
MAIN_KEYMAP_PATH_5 := $(KEYBOARD_PATH_5)/keymaps/$(KEYMAP)
|
MAIN_KEYMAP_PATH_5 := $(KEYBOARD_PATH_5)/keymaps/$(KEYMAP)
|
||||||
|
|
||||||
# Pull in rules from info.json
|
# Pull in rules from info.json
|
||||||
INFO_RULES_MK = $(shell bin/qmk generate-rules-mk --quiet --keyboard $(KEYBOARD) --output $(KEYBOARD_OUTPUT)/src/rules.mk)
|
INFO_RULES_MK = $(shell bin/qmk generate-rules-mk --quiet --escape --keyboard $(KEYBOARD) --output $(KEYBOARD_OUTPUT)/src/rules.mk)
|
||||||
include $(INFO_RULES_MK)
|
include $(INFO_RULES_MK)
|
||||||
|
|
||||||
# Check for keymap.json first, so we can regenerate keymap.c
|
# Check for keymap.json first, so we can regenerate keymap.c
|
||||||
|
|||||||
@@ -281,8 +281,10 @@ You can disable a single effect by defining `DISABLE_[EFFECT_NAME]` in your `con
|
|||||||
|
|
||||||
|Define |Description |
|
|Define |Description |
|
||||||
|-------------------------------------------------------|-----------------------------------------------|
|
|-------------------------------------------------------|-----------------------------------------------|
|
||||||
|
|`#define DISABLE_RGB_MATRIX_SOLID_COLOR` |Disables `RGB_MATRIX_SOLID_COLOR` |
|
||||||
|`#define DISABLE_RGB_MATRIX_ALPHAS_MODS` |Disables `RGB_MATRIX_ALPHAS_MODS` |
|
|`#define DISABLE_RGB_MATRIX_ALPHAS_MODS` |Disables `RGB_MATRIX_ALPHAS_MODS` |
|
||||||
|`#define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN` |Disables `RGB_MATRIX_GRADIENT_UP_DOWN` |
|
|`#define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN` |Disables `RGB_MATRIX_GRADIENT_UP_DOWN` |
|
||||||
|
|`#define DISABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT` |Disables `MATRIX_GRADIENT_LEFT_RIGHT` |
|
||||||
|`#define DISABLE_RGB_MATRIX_BREATHING` |Disables `RGB_MATRIX_BREATHING` |
|
|`#define DISABLE_RGB_MATRIX_BREATHING` |Disables `RGB_MATRIX_BREATHING` |
|
||||||
|`#define DISABLE_RGB_MATRIX_BAND_SAT` |Disables `RGB_MATRIX_BAND_SAT` |
|
|`#define DISABLE_RGB_MATRIX_BAND_SAT` |Disables `RGB_MATRIX_BAND_SAT` |
|
||||||
|`#define DISABLE_RGB_MATRIX_BAND_VAL` |Disables `RGB_MATRIX_BAND_VAL` |
|
|`#define DISABLE_RGB_MATRIX_BAND_VAL` |Disables `RGB_MATRIX_BAND_VAL` |
|
||||||
@@ -293,20 +295,20 @@ You can disable a single effect by defining `DISABLE_[EFFECT_NAME]` in your `con
|
|||||||
|`#define DISABLE_RGB_MATRIX_CYCLE_ALL` |Disables `RGB_MATRIX_CYCLE_ALL` |
|
|`#define DISABLE_RGB_MATRIX_CYCLE_ALL` |Disables `RGB_MATRIX_CYCLE_ALL` |
|
||||||
|`#define DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT` |Disables `RGB_MATRIX_CYCLE_LEFT_RIGHT` |
|
|`#define DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT` |Disables `RGB_MATRIX_CYCLE_LEFT_RIGHT` |
|
||||||
|`#define DISABLE_RGB_MATRIX_CYCLE_UP_DOWN` |Disables `RGB_MATRIX_CYCLE_UP_DOWN` |
|
|`#define DISABLE_RGB_MATRIX_CYCLE_UP_DOWN` |Disables `RGB_MATRIX_CYCLE_UP_DOWN` |
|
||||||
|
|`#define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON` |Disables `RGB_MATRIX_RAINBOW_MOVING_CHEVRON` |
|
||||||
|`#define DISABLE_RGB_MATRIX_CYCLE_OUT_IN` |Disables `RGB_MATRIX_CYCLE_OUT_IN` |
|
|`#define DISABLE_RGB_MATRIX_CYCLE_OUT_IN` |Disables `RGB_MATRIX_CYCLE_OUT_IN` |
|
||||||
|`#define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL` |Disables `RGB_MATRIX_CYCLE_OUT_IN_DUAL` |
|
|`#define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL` |Disables `RGB_MATRIX_CYCLE_OUT_IN_DUAL` |
|
||||||
|`#define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON` |Disables `RGB_MATRIX_RAINBOW_MOVING_CHEVRON` |
|
|
||||||
|`#define DISABLE_RGB_MATRIX_DUAL_BEACON` |Disables `RGB_MATRIX_DUAL_BEACON` |
|
|
||||||
|`#define DISABLE_RGB_MATRIX_CYCLE_PINWHEEL` |Disables `RGB_MATRIX_CYCLE_PINWHEEL` |
|
|`#define DISABLE_RGB_MATRIX_CYCLE_PINWHEEL` |Disables `RGB_MATRIX_CYCLE_PINWHEEL` |
|
||||||
|`#define DISABLE_RGB_MATRIX_CYCLE_SPIRAL` |Disables `RGB_MATRIX_CYCLE_SPIRAL` |
|
|`#define DISABLE_RGB_MATRIX_CYCLE_SPIRAL` |Disables `RGB_MATRIX_CYCLE_SPIRAL` |
|
||||||
|
|`#define DISABLE_RGB_MATRIX_DUAL_BEACON` |Disables `RGB_MATRIX_DUAL_BEACON` |
|
||||||
|`#define DISABLE_RGB_MATRIX_RAINBOW_BEACON` |Disables `RGB_MATRIX_RAINBOW_BEACON` |
|
|`#define DISABLE_RGB_MATRIX_RAINBOW_BEACON` |Disables `RGB_MATRIX_RAINBOW_BEACON` |
|
||||||
|`#define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS` |Disables `RGB_MATRIX_RAINBOW_PINWHEELS` |
|
|`#define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS` |Disables `RGB_MATRIX_RAINBOW_PINWHEELS` |
|
||||||
|`#define DISABLE_RGB_MATRIX_RAINDROPS` |Disables `RGB_MATRIX_RAINDROPS` |
|
|`#define DISABLE_RGB_MATRIX_RAINDROPS` |Disables `RGB_MATRIX_RAINDROPS` |
|
||||||
|`#define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS` |Disables `RGB_MATRIX_JELLYBEAN_RAINDROPS` |
|
|`#define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS` |Disables `RGB_MATRIX_JELLYBEAN_RAINDROPS` |
|
||||||
|`#define DISABLE_RGB_MATRIX_TYPING_HEATMAP` |Disables `RGB_MATRIX_TYPING_HEATMAP` |
|
|`#define DISABLE_RGB_MATRIX_TYPING_HEATMAP` |Disables `RGB_MATRIX_TYPING_HEATMAP` |
|
||||||
|`#define DISABLE_RGB_MATRIX_DIGITAL_RAIN` |Disables `RGB_MATRIX_DIGITAL_RAIN` |
|
|`#define DISABLE_RGB_MATRIX_DIGITAL_RAIN` |Disables `RGB_MATRIX_DIGITAL_RAIN` |
|
||||||
|`#define DISABLE_RGB_MATRIX_SOLID_REACTIVE` |Disables `RGB_MATRIX_SOLID_REACTIVE` |
|
|
||||||
|`#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE` |Disables `RGB_MATRIX_SOLID_REACTIVE_SIMPLE` |
|
|`#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE` |Disables `RGB_MATRIX_SOLID_REACTIVE_SIMPLE` |
|
||||||
|
|`#define DISABLE_RGB_MATRIX_SOLID_REACTIVE` |Disables `RGB_MATRIX_SOLID_REACTIVE` |
|
||||||
|`#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE` |Disables `RGB_MATRIX_SOLID_REACTIVE_WIDE` |
|
|`#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE` |Disables `RGB_MATRIX_SOLID_REACTIVE_WIDE` |
|
||||||
|`#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE` |Disables `RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE` |
|
|`#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE` |Disables `RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE` |
|
||||||
|`#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS` |Disables `RGB_MATRIX_SOLID_REACTIVE_CROSS` |
|
|`#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS` |Disables `RGB_MATRIX_SOLID_REACTIVE_CROSS` |
|
||||||
|
|||||||
@@ -0,0 +1,574 @@
|
|||||||
|
# キーコードの概要
|
||||||
|
|
||||||
|
<!---
|
||||||
|
original document: 0.11.64:docs/keycodes.md
|
||||||
|
git diff 0.11.64 HEAD -- docs/keycodes.md | cat
|
||||||
|
-->
|
||||||
|
|
||||||
|
[キーマップ](ja/keymap.md) を定義するときは、それぞれのキーに有効な定義が必要です。このページは、QMK で使えるキーコードに相当するシンボルについて記述しています。
|
||||||
|
|
||||||
|
このページは参照のみです。それぞれのキーの種類毎のリンク先のページに、それぞれのキーの機能についてもっと詳細に記載しています。
|
||||||
|
|
||||||
|
## 基本的なキーコード :id=basic-keycodes
|
||||||
|
|
||||||
|
[基本的なキーコード](ja/keycodes_basic.md) も見てください。
|
||||||
|
|
||||||
|
?> 訳注: 以下の説明は、OS のキーボード配列の設定が「US」の場合のものです。OS のキーボード配列の設定が「JIS」の場合、一部のキーは下の表と異なる文字が入力されます。例えば、`KC_LBRC` は、OS のキーボード配列の設定が US であれば「`[` または `{`」が入力されますが、JIS の場合「`@` または <code>`</code>」が入力されます。
|
||||||
|
?> これは、OS がキーボードから送信されたキーコードを解釈する際に、キーボード配列の設定によって対応する文字を変えるためです。もし、OS のキーボード配列の設定を JIS にする場合、`#include "keymap_jp.h"` を `keymap.c` に追加すると`JP_AT` のような JIS キーボードのキーキャップに対応したキーを指定できます。
|
||||||
|
|
||||||
|
|キー |エイリアス |説明 |Windows |macOS |Linux<sup>1</sup>|
|
||||||
|
|-----------------------|------------------------------|-----------------------------------------|-------------|-------------|-----------------|
|
||||||
|
|`KC_NO` |`XXXXXXX` |このキーを無視します (何もしません) 。 |*N/A* |*N/A* |*N/A* |
|
||||||
|
|`KC_TRANSPARENT` |`KC_TRNS`, `_______` | 次に低いレイヤーの非透過キーを使う |*N/A* |*N/A* |*N/A* |
|
||||||
|
|`KC_A` | |`a` と `A` |✔ |✔ |✔ |
|
||||||
|
|`KC_B` | |`b` と `B` |✔ |✔ |✔ |
|
||||||
|
|`KC_C` | |`c` と `C` |✔ |✔ |✔ |
|
||||||
|
|`KC_D` | |`d` と `D` |✔ |✔ |✔ |
|
||||||
|
|`KC_E` | |`e` と `E` |✔ |✔ |✔ |
|
||||||
|
|`KC_F` | |`f` と `F` |✔ |✔ |✔ |
|
||||||
|
|`KC_G` | |`g` と `G` |✔ |✔ |✔ |
|
||||||
|
|`KC_H` | |`h` と `H` |✔ |✔ |✔ |
|
||||||
|
|`KC_I` | |`i` と `I` |✔ |✔ |✔ |
|
||||||
|
|`KC_J` | |`j` と `J` |✔ |✔ |✔ |
|
||||||
|
|`KC_K` | |`k` と `K` |✔ |✔ |✔ |
|
||||||
|
|`KC_L` | |`l` と `L` |✔ |✔ |✔ |
|
||||||
|
|`KC_M` | |`m` と `M` |✔ |✔ |✔ |
|
||||||
|
|`KC_N` | |`n` と `N` |✔ |✔ |✔ |
|
||||||
|
|`KC_O` | |`o` と `O` |✔ |✔ |✔ |
|
||||||
|
|`KC_P` | |`p` と `P` |✔ |✔ |✔ |
|
||||||
|
|`KC_Q` | |`q` と `Q` |✔ |✔ |✔ |
|
||||||
|
|`KC_R` | |`r` と `R` |✔ |✔ |✔ |
|
||||||
|
|`KC_S` | |`s` と `S` |✔ |✔ |✔ |
|
||||||
|
|`KC_T` | |`t` と `T` |✔ |✔ |✔ |
|
||||||
|
|`KC_U` | |`u` と `U` |✔ |✔ |✔ |
|
||||||
|
|`KC_V` | |`v` と `V` |✔ |✔ |✔ |
|
||||||
|
|`KC_W` | |`w` と `W` |✔ |✔ |✔ |
|
||||||
|
|`KC_X` | |`x` と `X` |✔ |✔ |✔ |
|
||||||
|
|`KC_Y` | |`y` と `Y` |✔ |✔ |✔ |
|
||||||
|
|`KC_Z` | |`z` と `Z` |✔ |✔ |✔ |
|
||||||
|
|`KC_1` | |`1` と `!` |✔ |✔ |✔ |
|
||||||
|
|`KC_2` | |`2` と `@` |✔ |✔ |✔ |
|
||||||
|
|`KC_3` | |`3` と `#` |✔ |✔ |✔ |
|
||||||
|
|`KC_4` | |`4` と `$` |✔ |✔ |✔ |
|
||||||
|
|`KC_5` | |`5` と `%` |✔ |✔ |✔ |
|
||||||
|
|`KC_6` | |`6` と `^` |✔ |✔ |✔ |
|
||||||
|
|`KC_7` | |`7` と `&` |✔ |✔ |✔ |
|
||||||
|
|`KC_8` | |`8` と `*` |✔ |✔ |✔ |
|
||||||
|
|`KC_9` | |`9` と `(` |✔ |✔ |✔ |
|
||||||
|
|`KC_0` | |`0` と `)` |✔ |✔ |✔ |
|
||||||
|
|`KC_ENTER` |`KC_ENT` |Return (Enter) |✔ |✔ |✔ |
|
||||||
|
|`KC_ESCAPE` |`KC_ESC` |Escape |✔ |✔ |✔ |
|
||||||
|
|`KC_BSPACE` |`KC_BSPC` |Delete (Backspace) |✔ |✔ |✔ |
|
||||||
|
|`KC_TAB` | |Tab |✔ |✔ |✔ |
|
||||||
|
|`KC_SPACE` |`KC_SPC` |Spacebar |✔ |✔ |✔ |
|
||||||
|
|`KC_MINUS` |`KC_MINS` |`-` と `_` |✔ |✔ |✔ |
|
||||||
|
|`KC_EQUAL` |`KC_EQL` |`=` と `+` |✔ |✔ |✔ |
|
||||||
|
|`KC_LBRACKET` |`KC_LBRC` |`[` と `{` |✔ |✔ |✔ |
|
||||||
|
|`KC_RBRACKET` |`KC_RBRC` |`]` と `}` |✔ |✔ |✔ |
|
||||||
|
|`KC_BSLASH` |`KC_BSLS` |`\` と `\|` |✔ |✔ |✔ |
|
||||||
|
|`KC_NONUS_HASH` |`KC_NUHS` |Non-US `#` と `~` |✔ |✔ |✔ |
|
||||||
|
|`KC_SCOLON` |`KC_SCLN` |`;` と `:` |✔ |✔ |✔ |
|
||||||
|
|`KC_QUOTE` |`KC_QUOT` |`'` と `"` |✔ |✔ |✔ |
|
||||||
|
|`KC_GRAVE` |`KC_GRV`, `KC_ZKHK` |<code>`</code> と `~`, JIS 全角/半角 |✔ |✔ |✔ |
|
||||||
|
|`KC_COMMA` |`KC_COMM` |`,` と `<` |✔ |✔ |✔ |
|
||||||
|
|`KC_DOT` | |`.` と `>` |✔ |✔ |✔ |
|
||||||
|
|`KC_SLASH` |`KC_SLSH` |`/` と `?` |✔ |✔ |✔ |
|
||||||
|
|`KC_CAPSLOCK` |`KC_CLCK`, `KC_CAPS` |Caps Lock |✔ |✔ |✔ |
|
||||||
|
|`KC_F1` | |F1 |✔ |✔ |✔ |
|
||||||
|
|`KC_F2` | |F2 |✔ |✔ |✔ |
|
||||||
|
|`KC_F3` | |F3 |✔ |✔ |✔ |
|
||||||
|
|`KC_F4` | |F4 |✔ |✔ |✔ |
|
||||||
|
|`KC_F5` | |F5 |✔ |✔ |✔ |
|
||||||
|
|`KC_F6` | |F6 |✔ |✔ |✔ |
|
||||||
|
|`KC_F7` | |F7 |✔ |✔ |✔ |
|
||||||
|
|`KC_F8` | |F8 |✔ |✔ |✔ |
|
||||||
|
|`KC_F9` | |F9 |✔ |✔ |✔ |
|
||||||
|
|`KC_F10` | |F10 |✔ |✔ |✔ |
|
||||||
|
|`KC_F11` | |F11 |✔ |✔ |✔ |
|
||||||
|
|`KC_F12` | |F12 |✔ |✔ |✔ |
|
||||||
|
|`KC_PSCREEN` |`KC_PSCR` |Print Screen |✔ |✔<sup>2</sup>|✔ |
|
||||||
|
|`KC_SCROLLLOCK` |`KC_SLCK`, `KC_BRMD` |Scroll Lock, 画面の明るさダウン (macOS) |✔ |✔<sup>2</sup>|✔ |
|
||||||
|
|`KC_PAUSE` |`KC_PAUS`, `KC_BRK`, `KC_BRMU`|Pause, 画面の明るさアップ (macOS) |✔ |✔<sup>2</sup>|✔ |
|
||||||
|
|`KC_INSERT` |`KC_INS` |Insert |✔ | |✔ |
|
||||||
|
|`KC_HOME` | |Home |✔ |✔ |✔ |
|
||||||
|
|`KC_PGUP` | |Page Up |✔ |✔ |✔ |
|
||||||
|
|`KC_DELETE` |`KC_DEL` |Forward Delete |✔ |✔ |✔ |
|
||||||
|
|`KC_END` | |End |✔ |✔ |✔ |
|
||||||
|
|`KC_PGDOWN` |`KC_PGDN` |Page Down |✔ |✔ |✔ |
|
||||||
|
|`KC_RIGHT` |`KC_RGHT` |右矢印 |✔ |✔ |✔ |
|
||||||
|
|`KC_LEFT` | |左矢印 |✔ |✔ |✔ |
|
||||||
|
|`KC_DOWN` | |下矢印 |✔ |✔ |✔ |
|
||||||
|
|`KC_UP` | |上矢印 |✔ |✔ |✔ |
|
||||||
|
|`KC_NUMLOCK` |`KC_NLCK` |テンキー Num Lock と Clear |✔ |✔ |✔ |
|
||||||
|
|`KC_KP_SLASH` |`KC_PSLS` |テンキー `/` |✔ |✔ |✔ |
|
||||||
|
|`KC_KP_ASTERISK` |`KC_PAST` |テンキー `*` |✔ |✔ |✔ |
|
||||||
|
|`KC_KP_MINUS` |`KC_PMNS` |テンキー `-` |✔ |✔ |✔ |
|
||||||
|
|`KC_KP_PLUS` |`KC_PPLS` |テンキー `+` |✔ |✔ |✔ |
|
||||||
|
|`KC_KP_ENTER` |`KC_PENT` |テンキー Enter |✔ |✔ |✔ |
|
||||||
|
|`KC_KP_1` |`KC_P1` |テンキー `1` と End |✔ |✔ |✔ |
|
||||||
|
|`KC_KP_2` |`KC_P2` |テンキー `2` と下矢印 |✔ |✔ |✔ |
|
||||||
|
|`KC_KP_3` |`KC_P3` |テンキー `3` と Page Down |✔ |✔ |✔ |
|
||||||
|
|`KC_KP_4` |`KC_P4` |テンキー `4` と左矢印 |✔ |✔ |✔ |
|
||||||
|
|`KC_KP_5` |`KC_P5` |テンキー `5` |✔ |✔ |✔ |
|
||||||
|
|`KC_KP_6` |`KC_P6` |テンキー `6` と右矢印 |✔ |✔ |✔ |
|
||||||
|
|`KC_KP_7` |`KC_P7` |テンキー `7` と Home |✔ |✔ |✔ |
|
||||||
|
|`KC_KP_8` |`KC_P8` |テンキー `8` と上矢印 |✔ |✔ |✔ |
|
||||||
|
|`KC_KP_9` |`KC_P9` |テンキー `9` と Page Up |✔ |✔ |✔ |
|
||||||
|
|`KC_KP_0` |`KC_P0` |テンキー `0` と Insert |✔ |✔ |✔ |
|
||||||
|
|`KC_KP_DOT` |`KC_PDOT` |テンキー `.` と Delete |✔ |✔ |✔ |
|
||||||
|
|`KC_NONUS_BSLASH` |`KC_NUBS` |Non-US `\` と `\|` |✔ |✔ |✔ |
|
||||||
|
|`KC_APPLICATION` |`KC_APP` |アプリケーションキー (Windows コンテキストメニューキー) |✔ | |✔ |
|
||||||
|
|`KC_POWER` | |システム電源 | |✔<sup>3</sup>|✔ |
|
||||||
|
|`KC_KP_EQUAL` |`KC_PEQL` |テンキー `=` |✔ |✔ |✔ |
|
||||||
|
|`KC_F13` | |F13 |✔ |✔ |✔ |
|
||||||
|
|`KC_F14` | |F14 |✔ |✔ |✔ |
|
||||||
|
|`KC_F15` | |F15 |✔ |✔ |✔ |
|
||||||
|
|`KC_F16` | |F16 |✔ |✔ |✔ |
|
||||||
|
|`KC_F17` | |F17 |✔ |✔ |✔ |
|
||||||
|
|`KC_F18` | |F18 |✔ |✔ |✔ |
|
||||||
|
|`KC_F19` | |F19 |✔ |✔ |✔ |
|
||||||
|
|`KC_F20` | |F20 |✔ | |✔ |
|
||||||
|
|`KC_F21` | |F21 |✔ | |✔ |
|
||||||
|
|`KC_F22` | |F22 |✔ | |✔ |
|
||||||
|
|`KC_F23` | |F23 |✔ | |✔ |
|
||||||
|
|`KC_F24` | |F24 |✔ | |✔ |
|
||||||
|
|`KC_EXECUTE` |`KC_EXEC` |Execute | | |✔ |
|
||||||
|
|`KC_HELP` | |Help | | |✔ |
|
||||||
|
|`KC_MENU` | |Menu | | |✔ |
|
||||||
|
|`KC_SELECT` |`KC_SLCT` |Select | | |✔ |
|
||||||
|
|`KC_STOP` | |Stop | | |✔ |
|
||||||
|
|`KC_AGAIN` |`KC_AGIN` |Again | | |✔ |
|
||||||
|
|`KC_UNDO` | |アンドゥ | | |✔ |
|
||||||
|
|`KC_CUT` | |カット | | |✔ |
|
||||||
|
|`KC_COPY` | |コピー | | |✔ |
|
||||||
|
|`KC_PASTE` |`KC_PSTE` |ペースト | | |✔ |
|
||||||
|
|`KC_FIND` | |検索 | | |✔ |
|
||||||
|
|`KC__MUTE` | |ミュート | |✔ |✔ |
|
||||||
|
|`KC__VOLUP` | |音量アップ | |✔ |✔ |
|
||||||
|
|`KC__VOLDOWN` | |音量ダウン | |✔ |✔ |
|
||||||
|
|`KC_LOCKING_CAPS` |`KC_LCAP` |Caps Lock のロック |✔ |✔ | |
|
||||||
|
|`KC_LOCKING_NUM` |`KC_LNUM` |Num Lock のロック |✔ |✔ | |
|
||||||
|
|`KC_LOCKING_SCROLL` |`KC_LSCR` |Scroll Lock のロック |✔ |✔ | |
|
||||||
|
|`KC_KP_COMMA` |`KC_PCMM` |テンキー `,` | | |✔ |
|
||||||
|
|`KC_KP_EQUAL_AS400` | |AS/400 キーボードのテンキー `=` | | | |
|
||||||
|
|`KC_INT1` |`KC_RO` |JIS `\` と `_` |✔ | |✔ |
|
||||||
|
|`KC_INT2` |`KC_KANA` |JIS カタカナ/ひらがな |✔ | |✔ |
|
||||||
|
|`KC_INT3` |`KC_JYEN` |JIS `¥` と `\|` |✔ | |✔ |
|
||||||
|
|`KC_INT4` |`KC_HENK` |JIS 変換 |✔ | |✔ |
|
||||||
|
|`KC_INT5` |`KC_MHEN` |JIS 無変換 |✔ | |✔ |
|
||||||
|
|`KC_INT6` | |JIS テンキー `,` | | |✔ |
|
||||||
|
|`KC_INT7` | |International 7 | | | |
|
||||||
|
|`KC_INT8` | |International 8 | | | |
|
||||||
|
|`KC_INT9` | |International 9 | | | |
|
||||||
|
|`KC_LANG1` |`KC_HAEN` |ハングル/英語 | | |✔ |
|
||||||
|
|`KC_LANG2` |`KC_HANJ` |韓文漢字 | | |✔ |
|
||||||
|
|`KC_LANG3` | |JIS カタカナ | | |✔ |
|
||||||
|
|`KC_LANG4` | |JIS ひらがな | | |✔ |
|
||||||
|
|`KC_LANG5` | |JIS 全角/半角 | | |✔ |
|
||||||
|
|`KC_LANG6` | |Language 6 | | | |
|
||||||
|
|`KC_LANG7` | |Language 7 | | | |
|
||||||
|
|`KC_LANG8` | |Language 8 | | | |
|
||||||
|
|`KC_LANG9` | |Language 9 | | | |
|
||||||
|
|`KC_ALT_ERASE` |`KC_ERAS` |Alternate Erase | | | |
|
||||||
|
|`KC_SYSREQ` | |SysReq/Attention | | | |
|
||||||
|
|`KC_CANCEL` | |Cancel | | | |
|
||||||
|
|`KC_CLEAR` |`KC_CLR` |Clear | | |✔ |
|
||||||
|
|`KC_PRIOR` | |Prior | | | |
|
||||||
|
|`KC_RETURN` | |Return | | | |
|
||||||
|
|`KC_SEPARATOR` | |Separator | | | |
|
||||||
|
|`KC_OUT` | |Out | | | |
|
||||||
|
|`KC_OPER` | |Oper | | | |
|
||||||
|
|`KC_CLEAR_AGAIN` | |Clear/Again | | | |
|
||||||
|
|`KC_CRSEL` | |CrSel/Props | | | |
|
||||||
|
|`KC_EXSEL` | |ExSel | | | |
|
||||||
|
|`KC_LCTRL` |`KC_LCTL` |左 Control |✔ |✔ |✔ |
|
||||||
|
|`KC_LSHIFT` |`KC_LSFT` |左 Shift |✔ |✔ |✔ |
|
||||||
|
|`KC_LALT` |`KC_LOPT` |左 Alt (Option) |✔ |✔ |✔ |
|
||||||
|
|`KC_LGUI` |`KC_LCMD`, `KC_LWIN` |左 GUI (Windows/Command/Meta key) |✔ |✔ |✔ |
|
||||||
|
|`KC_RCTRL` |`KC_RCTL` |右 Control |✔ |✔ |✔ |
|
||||||
|
|`KC_RSHIFT` |`KC_RSFT` |右 Shift |✔ |✔ |✔ |
|
||||||
|
|`KC_RALT` |`KC_ROPT`, `KC_ALGR` |右 Alt (Option/AltGr) |✔ |✔ |✔ |
|
||||||
|
|`KC_RGUI` |`KC_RCMD`, `KC_RWIN` |右 GUI (Windows/Command/Meta key) |✔ |✔ |✔ |
|
||||||
|
|`KC_SYSTEM_POWER` |`KC_PWR` |システム電源オフ |✔ |✔<sup>3</sup>|✔ |
|
||||||
|
|`KC_SYSTEM_SLEEP` |`KC_SLEP` |システムスリープ |✔ |✔<sup>3</sup>|✔ |
|
||||||
|
|`KC_SYSTEM_WAKE` |`KC_WAKE` |システムスリープ解除 | |✔<sup>3</sup>|✔ |
|
||||||
|
|`KC_AUDIO_MUTE` |`KC_MUTE` |ミュート |✔ |✔ |✔ |
|
||||||
|
|`KC_AUDIO_VOL_UP` |`KC_VOLU` |音量アップ |✔ |✔<sup>4</sup>|✔ |
|
||||||
|
|`KC_AUDIO_VOL_DOWN` |`KC_VOLD` |音量ダウン |✔ |✔<sup>4</sup>|✔ |
|
||||||
|
|`KC_MEDIA_NEXT_TRACK` |`KC_MNXT` |次の曲へ |✔ |✔<sup>5</sup>|✔ |
|
||||||
|
|`KC_MEDIA_PREV_TRACK` |`KC_MPRV` |前の曲へ |✔ |✔<sup>5</sup>|✔ |
|
||||||
|
|`KC_MEDIA_STOP` |`KC_MSTP` |再生停止 |✔ | |✔ |
|
||||||
|
|`KC_MEDIA_PLAY_PAUSE` |`KC_MPLY` |再生/一時停止 |✔ |✔ |✔ |
|
||||||
|
|`KC_MEDIA_SELECT` |`KC_MSEL` |Media Player 起動 |✔ | |✔ |
|
||||||
|
|`KC_MEDIA_EJECT` |`KC_EJCT` |イジェクト | |✔ |✔ |
|
||||||
|
|`KC_MAIL` | |メール起動 |✔ | |✔ |
|
||||||
|
|`KC_CALCULATOR` |`KC_CALC` |電卓起動 |✔ | |✔ |
|
||||||
|
|`KC_MY_COMPUTER` |`KC_MYCM` |マイコンピュータを開く |✔ | |✔ |
|
||||||
|
|`KC_WWW_SEARCH` |`KC_WSCH` |ブラウザ検索 |✔ | |✔ |
|
||||||
|
|`KC_WWW_HOME` |`KC_WHOM` |ブラウザホーム画面 |✔ | |✔ |
|
||||||
|
|`KC_WWW_BACK` |`KC_WBAK` |ブラウザ戻る |✔ | |✔ |
|
||||||
|
|`KC_WWW_FORWARD` |`KC_WFWD` |ブラウザ進む |✔ | |✔ |
|
||||||
|
|`KC_WWW_STOP` |`KC_WSTP` |ブラウザ読み込み中止 |✔ | |✔ |
|
||||||
|
|`KC_WWW_REFRESH` |`KC_WREF` |ブラウザ再読み込み |✔ | |✔ |
|
||||||
|
|`KC_WWW_FAVORITES` |`KC_WFAV` |ブラウザお気に入り |✔ | |✔ |
|
||||||
|
|`KC_MEDIA_FAST_FORWARD`|`KC_MFFD` |次の曲へ |✔ |✔<sup>5</sup>|✔ |
|
||||||
|
|`KC_MEDIA_REWIND` |`KC_MRWD` |前の曲へ |✔<sup>6</sup>|✔<sup>5</sup>|✔ |
|
||||||
|
|`KC_BRIGHTNESS_UP` |`KC_BRIU` |画面の明るさアップ |✔ |✔ |✔ |
|
||||||
|
|`KC_BRIGHTNESS_DOWN` |`KC_BRID` |画面の明るさダウン |✔ |✔ |✔ |
|
||||||
|
|
||||||
|
<sup>1. Linux カーネル HID ドライバは [ほぼ全てのキーコード](https://github.com/torvalds/linux/blob/master/drivers/hid/hid-input.c) を識別しますが、デフォルトの関連付けは デスクトップ環境/ウィンドウマネージャによって決まります。</sup><br/>
|
||||||
|
<sup>2. F13-F15 として取り扱われます。</sup><br/>
|
||||||
|
<sup>3. 約3秒間押していると、プロンプトが表示されます。</sup><br/>
|
||||||
|
<sup>4. Shift と Option を押していると、ボリュームレベルの細かいコントロールが可能になります。</sup><br/>
|
||||||
|
<sup>5. iTunes では、タップすると1曲全体がスキップされます。押していると曲の中で早送り/巻き戻しになります。</sup><br/>
|
||||||
|
<sup>6. Windows Media Player は巻き戻しキーを識別しませんが、VLC では早送り/巻き戻しキーで再生速度が変更されます。</sup>
|
||||||
|
|
||||||
|
## Quantum キーコード :id=quantum-keycodes
|
||||||
|
|
||||||
|
[Quantum キーコード](ja/quantum_keycodes.md#qmk-keycodes) も見てください。
|
||||||
|
|
||||||
|
|キー |エイリアス |説明 |
|
||||||
|
|--------------|-----------|---------------------------------------------------------|
|
||||||
|
|`RESET` | |ファームウエア書き込みのためにキーボードをブートローダーモードにします |
|
||||||
|
|`DEBUG` | |デバッグモードを切り替えます |
|
||||||
|
|`EEPROM_RESET`|`EEP_RST` |キーボードの EEPROM (不揮発メモリ) を再初期化します |
|
||||||
|
|
||||||
|
## オーディオキー :id=audio-keys
|
||||||
|
|
||||||
|
[オーディオ](ja/feature_audio.md) も見てください。
|
||||||
|
|
||||||
|
|キー |エイリアス |説明 |
|
||||||
|
|----------------|------------|---------------------------------------|
|
||||||
|
|`AU_ON` | |オーディオモードオン |
|
||||||
|
|`AU_OFF` | |オーディオモードオフ |
|
||||||
|
|`AU_TOG` | |オーディオモードを切り替えます |
|
||||||
|
|`CLICKY_TOGGLE` |`CK_TOGG` |オーディオクリックモードを切り替えます |
|
||||||
|
|`CLICKY_UP` |`CK_UP` |クリック音の周波数を増やします |
|
||||||
|
|`CLICKY_DOWN` |`CK_DOWN` |クリック音の周波数を減らします |
|
||||||
|
|`CLICKY_RESET` |`CK_RST` |周波数をデフォルトに再設定します |
|
||||||
|
|`MU_ON` | |音楽モードをオンにします |
|
||||||
|
|`MU_OFF` | |音楽モードをオフにします |
|
||||||
|
|`MU_TOG` | |音楽モードを切り替えます |
|
||||||
|
|`MU_MOD` | |音楽モードを循環します |
|
||||||
|
|
||||||
|
## バックライト :id=backlighting
|
||||||
|
|
||||||
|
[バックライト](ja/feature_backlight.md) も見てください。
|
||||||
|
|
||||||
|
|キー |説明 |
|
||||||
|
|---------|-------------------------------------|
|
||||||
|
|`BL_TOGG`|バックライトをオンあるいはオフにする |
|
||||||
|
|`BL_STEP`|バックライトレベルを循環する |
|
||||||
|
|`BL_ON` |バックライトを最大輝度にセットする |
|
||||||
|
|`BL_OFF` |バックライトをオフにする |
|
||||||
|
|`BL_INC` |バックライトのレベルを上げる |
|
||||||
|
|`BL_DEC` |バックライトのレベルを下げる |
|
||||||
|
|`BL_BRTG`|バックライトの明滅動作を切り替える |
|
||||||
|
|
||||||
|
## ブートマジック :id=bootmagic
|
||||||
|
|
||||||
|
[ブートマジック](ja/feature_bootmagic.md) も見てください。
|
||||||
|
|
||||||
|
| キー | エイリアス| 説明 |
|
||||||
|
|------------------------------------|-----------|-------------------------------------------------------|
|
||||||
|
| `MAGIC_SWAP_CONTROL_CAPSLOCK` | `CL_SWAP` | Caps Lock と左 Control の入れ替え |
|
||||||
|
| `MAGIC_UNSWAP_CONTROL_CAPSLOCK` | `CL_NORM` | Caps Lock と左 Control の入れ替えの解除 |
|
||||||
|
| `MAGIC_CAPSLOCK_TO_CONTROL` | `CL_CTRL` | Caps Lock を Control として扱う |
|
||||||
|
| `MAGIC_UNCAPSLOCK_TO_CONTROL` | `CL_CAPS` | Caps Lock を Control として扱うことを止める |
|
||||||
|
| `MAGIC_SWAP_LCTL_LGUI` | `LCG_SWP` | 左 Control と GUI の入れ替え |
|
||||||
|
| `MAGIC_UNSWAP_LCTL_LGUI` | `LCG_NRM` | 左 Control と GUI の入れ替えを解除 |
|
||||||
|
| `MAGIC_SWAP_RCTL_RGUI` | `RCG_SWP` | 右 Control と GUI の入れ替え |
|
||||||
|
| `MAGIC_UNSWAP_RCTL_RGUI` | `RCG_NRM` | 右 Control と GUI の入れ替えを解除 |
|
||||||
|
| `MAGIC_SWAP_CTL_GUI` | `CG_SWAP` | 両側の Control と GUI の入れ替え |
|
||||||
|
| `MAGIC_UNSWAP_CTL_GUI` | `CG_NORM` | 両側の Control と GUI の入れ替えを解除 |
|
||||||
|
| `MAGIC_TOGGLE_CTL_GUI` | `CG_TOGG` | 両側の Control と GUI の入れ替えの切り替え |
|
||||||
|
| `MAGIC_SWAP_LALT_LGUI` | `LAG_SWP` | 左 Alt と GUI の入れ替え |
|
||||||
|
| `MAGIC_UNSWAP_LALT_LGUI` | `LAG_NRM` | 左 Alt と GUI の入れ替えを解除 |
|
||||||
|
| `MAGIC_SWAP_RALT_RGUI` | `RAG_SWP` | 右 Alt と GUI の入れ替え |
|
||||||
|
| `MAGIC_UNSWAP_RALT_RGUI` | `RAG_NRM` | 右 Alt と GUI の入れ替えを解除 |
|
||||||
|
| `MAGIC_SWAP_ALT_GUI` | `AG_SWAP` | 両側の Alt と GUI の入れ替え |
|
||||||
|
| `MAGIC_UNSWAP_ALT_GUI` | `AG_NORM` | 両側の Alt と GUI の入れ替えを解除 |
|
||||||
|
| `MAGIC_TOGGLE_ALT_GUI` | `AG_TOGG` | 両側の Alt と GUI の入れ替えの切り替え |
|
||||||
|
| `MAGIC_NO_GUI` | `GUI_OFF` | GUI キーを無効にする |
|
||||||
|
| `MAGIC_UNNO_GUI` | `GUI_ON` | GUI キーを有効にする |
|
||||||
|
| `MAGIC_SWAP_GRAVE_ESC` | `GE_SWAP` | <code>`</code> とエスケープの入れ替え |
|
||||||
|
| `MAGIC_UNSWAP_GRAVE_ESC` | `GE_NORM` | <code>`</code> とエスケープの入れ替えを解除 |
|
||||||
|
| `MAGIC_SWAP_BACKSLASH_BACKSPACE` | `BS_SWAP` | `\` と Backspace を入れ替え |
|
||||||
|
| `MAGIC_UNSWAP_BACKSLASH_BACKSPACE` | `BS_NORM` | `\` と Backspace の入れ替えを解除する |
|
||||||
|
| `MAGIC_HOST_NKRO` | `NK_ON` | N キーロールオーバーを有効にする |
|
||||||
|
| `MAGIC_UNHOST_NKRO` | `NK_OFF` | N キーロールオーバーを無効にする |
|
||||||
|
| `MAGIC_TOGGLE_NKRO` | `NK_TOGG` | N キーロールオーバーの有効・無効を切り替え |
|
||||||
|
| `MAGIC_EE_HANDS_LEFT` | `EH_LEFT` | 分割キーボードのマスター側を左手に設定(`EE_HANDS` 用) |
|
||||||
|
| `MAGIC_EE_HANDS_RIGHT` | `EH_RGHT` | 分割キーボードのマスター側を右手に設定(`EE_HANDS` 用) |
|
||||||
|
|
||||||
|
## Bluetooth :id=bluetooth
|
||||||
|
|
||||||
|
[Bluetooth](ja/feature_bluetooth.md) も見てください。
|
||||||
|
|
||||||
|
|
||||||
|
|キー |説明 |
|
||||||
|
|----------|--------------------------------------|
|
||||||
|
|`OUT_AUTO`|USB と Bluetooth を自動的に切り替える |
|
||||||
|
|`OUT_USB` |USB のみ |
|
||||||
|
|`OUT_BT` |Bluetooth のみ |
|
||||||
|
|
||||||
|
## 動的マクロ :id=dynamic-macros
|
||||||
|
|
||||||
|
[動的マクロ](ja/feature_dynamic_macros.md) も見てください。
|
||||||
|
|
||||||
|
|キー |エイリアス |説明 |
|
||||||
|
|-----------------|---------|-------------------------------------|
|
||||||
|
|`DYN_REC_START1` |`DM_REC1`|マクロ 1 の記録を開始します |
|
||||||
|
|`DYN_REC_START2` |`DM_REC2`|マクロ 2 の記録を開始します |
|
||||||
|
|`DYN_MACRO_PLAY1`|`DM_PLY1`|マクロ 1 を再生します |
|
||||||
|
|`DYN_MACRO_PLAY2`|`DM_PLY2`|マクロ 2 を再生します |
|
||||||
|
|`DYN_REC_STOP` |`DM_RSTP`|現在記録中のマクロの記録を終了します |
|
||||||
|
|
||||||
|
## グレイブエスケープ :id=grave-escape
|
||||||
|
|
||||||
|
[グレイブエスケープ](ja/feature_grave_esc.md) も見てください。
|
||||||
|
|
||||||
|
|キー |エイリアス |説明 |
|
||||||
|
|-----------|---------|------------------------------------------------------------------|
|
||||||
|
|`GRAVE_ESC`|`KC_GESC`|押された場合に Escape。Shift あるいは GUI が押されたままの場合は <code>`</code>|
|
||||||
|
|
||||||
|
## キーロック :id=key-lock
|
||||||
|
|
||||||
|
[キーロック](ja/feature_key_lock.md) も見てください。
|
||||||
|
|
||||||
|
|キー |説明 |
|
||||||
|
|---------|--------------------------------------------------|
|
||||||
|
|`KC_LOCK`|キーが再び押されるまで次のキーを押したままにします |
|
||||||
|
|
||||||
|
## レイヤー切り替え :id=layer-switching
|
||||||
|
|
||||||
|
[レイヤー切り替え](ja/feature_layers.md#switching-and-toggling-layers) も見てください。
|
||||||
|
|
||||||
|
|キー |説明 |
|
||||||
|
|----------------|--------------------------------------------------------------------------------------------------------------------------------------|
|
||||||
|
|`DF(layer)` |指定されたレイヤーを基本 (デフォルト) レイヤーに設定する |
|
||||||
|
|`MO(layer)` |キーを押したら一時的に `layer` を切り替える。(切り替え先のレイヤーには `KC_TRNS` が必要です) |
|
||||||
|
|`OSL(layer)` |次のキーが押されるまで、一時的にレイヤーをアクティブにします。詳細は [ワンショットキー](ja/one_shot_keys.md) のとおり。 |
|
||||||
|
|`LM(layer, mod)`|`mod` がアクティブな状態で (MO のように) 一時的にレイヤーをアクティブにします。ここでは、`mod` は mods_bit のことです。Mod については [こちら](ja/mod_tap.md) で見ることができます。実装例: `LM(LAYER_1, MOD_LALT)` |
|
||||||
|
|`LT(layer, kc)` |押していると `layer` をオンにし、タップすると `kc` になります。 |
|
||||||
|
|`TG(layer)` |`layer` のオン・オフを切り替え |
|
||||||
|
|`TO(layer)` |`layer` をオンにして、デフォルトレイヤーを除く他のレイヤーをオフにします。 |
|
||||||
|
|`TT(layer)` |複数回タップしない限り `MO` のように動作し、複数回タップすると `layer` をオンにトグルします。 |
|
||||||
|
|
||||||
|
## リーダーキー :id=leader-key
|
||||||
|
|
||||||
|
[リーダーキー](ja/feature_leader_key.md) も見てください。
|
||||||
|
|
||||||
|
|キー |説明 |
|
||||||
|
|---------|-------------------------------|
|
||||||
|
|`KC_LEAD`|リーダーキーのシーケンスを開始 |
|
||||||
|
|
||||||
|
## マウスキー :id=mouse-keys
|
||||||
|
|
||||||
|
[マウスキー](ja/feature_mouse_keys.md) も見てください。
|
||||||
|
|
||||||
|
|キー |エイリアス |説明 |
|
||||||
|
|----------------|---------|-------------------------|
|
||||||
|
|`KC_MS_UP` |`KC_MS_U`|マウスカーソルを上に移動 |
|
||||||
|
|`KC_MS_DOWN` |`KC_MS_D`|マウスカーソルを下に移動 |
|
||||||
|
|`KC_MS_LEFT` |`KC_MS_L`|マウスカーソルを左に移動 |
|
||||||
|
|`KC_MS_RIGHT` |`KC_MS_R`|マウスカーソルを右に移動 |
|
||||||
|
|`KC_MS_BTN1` |`KC_BTN1`|ボタン1を押す |
|
||||||
|
|`KC_MS_BTN2` |`KC_BTN2`|ボタン2を押す |
|
||||||
|
|`KC_MS_BTN3` |`KC_BTN3`|ボタン3を押す |
|
||||||
|
|`KC_MS_BTN4` |`KC_BTN4`|ボタン4を押す |
|
||||||
|
|`KC_MS_BTN5` |`KC_BTN5`|ボタン5を押す |
|
||||||
|
|`KC_MS_WH_UP` |`KC_WH_U`|ホイールを向こう側に回転 |
|
||||||
|
|`KC_MS_WH_DOWN` |`KC_WH_D`|ホイールを手前側に回転 |
|
||||||
|
|`KC_MS_WH_LEFT` |`KC_WH_L`|ホイールを左に倒す |
|
||||||
|
|`KC_MS_WH_RIGHT`|`KC_WH_R`|ホイールを右に倒す |
|
||||||
|
|`KC_MS_ACCEL0` |`KC_ACL0`|速度を0に設定 |
|
||||||
|
|`KC_MS_ACCEL1` |`KC_ACL1`|速度を1に設定 |
|
||||||
|
|`KC_MS_ACCEL2` |`KC_ACL2`|速度を2に設定 |
|
||||||
|
|
||||||
|
## 修飾キー :id=modifiers
|
||||||
|
|
||||||
|
[修飾キー](ja/feature_advanced_keycodes.md#modifier-keys) も見てください。
|
||||||
|
|
||||||
|
| キー | エイリアス | 説明 |
|
||||||
|
|------------|---------------------------------|---------------------------------------------------------------|
|
||||||
|
| `LCTL(kc)` | `C(kc)` | 左 Control を押しながら `kc` を押します。 |
|
||||||
|
| `LSFT(kc)` | `S(kc)` | 左 Shift を押しながら `kc` を押します。 |
|
||||||
|
| `LALT(kc)` | `A(kc)`, `LOPT(kc)` | 左 Alt を押しながら `kc`を押します。 |
|
||||||
|
| `LGUI(kc)` | `G(kc)`, `LCMD(kc)`, `LWIN(kc)` | 左 GUI を押しながら `kc` を押します。 |
|
||||||
|
| `RCTL(kc)` | | 右 Control を押しながら `kc` を押します。 |
|
||||||
|
| `RSFT(kc)` | | 右 Shift を押しながら `kc` を押します。 |
|
||||||
|
| `RALT(kc)` | `ROPT(kc)`, `ALGR(kc)` | 右 Alt (AltGr) を押しながら `kc` を押します。 |
|
||||||
|
| `RGUI(kc)` | `RCMD(kc)`, `LWIN(kc)` | 右 GUI を押しながら `kc` を押します。 |
|
||||||
|
| `SGUI(kc)` | `SCMD(kc)`, `SWIN(kc)` | 左 Shift と GUI を押しながら `kc` を押します。 |
|
||||||
|
| `LCA(kc)` | | 左 Control と Alt を押しながら `kc` を押します。 |
|
||||||
|
| `LSA(kc)` | | 左 Shift と Alt を押しながら `kc` を押します。 |
|
||||||
|
| `RSA(kc)` |`SAGR(kc)` | 右 Shift と Alt (AltGr) を押しながら `kc` を押します。 |
|
||||||
|
| `RCS(kc)` | | 右 Control と Shift を押しながら `kc` を押します。 |
|
||||||
|
| `LCAG(kc)` | | 左 Control、Alt、GUI を押しながら `kc` を押します。 |
|
||||||
|
| `MEH(kc)` | | 左 Control、Shift、Alt を押しながら `kc` を押します。 |
|
||||||
|
| `HYPR(kc)` | | 左 Control、Shift、Alt、GUI を押しながら `kc` を押します。 |
|
||||||
|
| `KC_MEH` | | 左 Control、Shift、Alt |
|
||||||
|
| `KC_HYPR` | | 左 Control、Shift、Alt、GUI |
|
||||||
|
|
||||||
|
|
||||||
|
## モッドタップキー :id=mod-tap-keys
|
||||||
|
|
||||||
|
[モッドタップキー](ja/mod_tap.md) も見てください。
|
||||||
|
|
||||||
|
|キー |エイリアス | 説明 |
|
||||||
|
|--------------|-------------------------------------------------------------------|------------------------------------------------------------------------|
|
||||||
|
| `MT(mod, kc)`| |押したままの場合は `mod` 、タップした場合は `kc` |
|
||||||
|
| `LCTL_T(kc)` | `CTL_T(kc)` | 押したままの場合は左 Control、タップした場合は `kc` |
|
||||||
|
| `LSFT_T(kc)` | `SFT_T(kc)` | 押したままの場合は左 Shift、タップした場合は `kc` |
|
||||||
|
| `LALT_T(kc)` | `LOPT_T(kc)`, `ALT_T(kc)`, `OPT_T(kc)` | 押したままの場合は左 Alt、タップした場合は `kc` |
|
||||||
|
| `LGUI_T(kc)` | `LCMD_T(kc)`, `LWIN_T(kc)`, `GUI_T(kc)`, `CMD_T(kc)`, `WIN_T(kc)` | 押したままの場合は左 GUI、タップした場合は `kc` |
|
||||||
|
| `RCTL_T(kc)` | | 押したままの場合は右 Control、タップした場合は `kc` |
|
||||||
|
| `RSFT_T(kc)` | | 押したままの場合は右 Shift、タップした場合は `kc` |
|
||||||
|
| `RALT_T(kc)` | `ROPT_T(kc)`, `ALGR_T(kc)` | 押したままの場合は右 Alt (AltGr) 、タップした場合は `kc` |
|
||||||
|
| `RGUI_T(kc)` | `RCMD_T(kc)`, `RWIN_T(kc)` | 押したままの場合は右 GUI、タップした場合は `kc` |
|
||||||
|
| `SGUI_T(kc)` | `SCMD_T(kc)`, `SWIN_T(kc)` | 押したままの場合は左 Shift と GUI、タップした場合は `kc` |
|
||||||
|
| `LCA_T(kc)` | | 押したままの場合は左 Control と Alt、タップした場合は `kc` |
|
||||||
|
| `LSA_T(kc)` | | 押したままの場合は左 Shift と Alt、タップした場合は `kc` |
|
||||||
|
| `RSA_T(kc)` |`SAGR_T(kc)` | 押したままの場合は右 Shift と Alt (AltGr) 、タップした場合は `kc` |
|
||||||
|
| `RCS_T(kc)` | | 押したままの場合は右 Control と Shift、タップした場合は `kc` |
|
||||||
|
| `LCAG_T(kc)` | | 押したままの場合は左 Control、Alt、GUI、タップした場合は `kc` |
|
||||||
|
| `RCAG_T(kc)` | | 押したままの場合は右 Control、Alt、GUI、タップした場合は `kc` |
|
||||||
|
| `C_S_T(kc)` | | 押したままの場合は左 Control と Shift、タップした場合は `kc` |
|
||||||
|
| `MEH_T(kc)` | | 押したままの場合は左 Control、Shift、Alt、タップした場合は `kc` |
|
||||||
|
| `HYPR_T(kc)` | `ALL_T(kc)` | 押したままの場合は左 Control、Shift、Alt、GUI、タップした場合は `kc` - より詳しくは[ここ](https://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/)を見てください |
|
||||||
|
|
||||||
|
## RGB ライト :id=rgb-lighting
|
||||||
|
|
||||||
|
[RGB ライト](ja/feature_rgblight.md) も見てください。
|
||||||
|
|
||||||
|
|キー |エイリアス|説明 |
|
||||||
|
|-------------------|----------|---------------------------------------------------------------------|
|
||||||
|
|`RGB_TOG` | |RGB ライトのオン・オフを切り替え |
|
||||||
|
|`RGB_MODE_FORWARD` |`RGB_MOD` |RGB モードを順送りで変更し、Shift を押していると逆順で変更します。 |
|
||||||
|
|`RGB_MODE_REVERSE` |`RGB_RMOD`|RGB モードを逆順で変更し、Shift を押していると順送りで変更します。 |
|
||||||
|
|`RGB_HUI` | |色相 (HUE) を増加させ、Shift を押していると減少させます。 |
|
||||||
|
|`RGB_HUD` | |色相 (HUE) を減少させ、Shift を押していると増加させます。 |
|
||||||
|
|`RGB_SAI` | |彩度 (SAT) を増加させ、Shift を押していると減少させます。 |
|
||||||
|
|`RGB_SAD` | |彩度 (SAT) を減少させ、Shift を押していると増加させます。 |
|
||||||
|
|`RGB_VAI` | |明度 (VAL/brightness) を増加させ、Shift を押していると減少させます。 |
|
||||||
|
|`RGB_VAD` | |明度 (VAL/brightness) を減少させ、Shift を押していると増加させます。 |
|
||||||
|
|`RGB_MODE_PLAIN` |`RGB_M_P `|静止(動き無し) モードに固定します |
|
||||||
|
|`RGB_MODE_BREATHE` |`RGB_M_B` |明滅アニメーションモード |
|
||||||
|
|`RGB_MODE_RAINBOW` |`RGB_M_R` |レインボーアニメーションモード |
|
||||||
|
|`RGB_MODE_SWIRL` |`RGB_M_SW`|渦巻アニメーションモード |
|
||||||
|
|`RGB_MODE_SNAKE` |`RGB_M_SN`|スネークアニメーションモード |
|
||||||
|
|`RGB_MODE_KNIGHT` |`RGB_M_K` |「ナイトライダー」アニメーションモード |
|
||||||
|
|`RGB_MODE_XMAS` |`RGB_M_X` |クリスマスアニメーションモード |
|
||||||
|
|`RGB_MODE_GRADIENT`|`RGB_M_G` |固定階調アニメーションモード |
|
||||||
|
|`RGB_MODE_RGBTEST` |`RGB_M_T` |赤、緑、青のテストアニメーションモード |
|
||||||
|
|
||||||
|
## RGB マトリックスライト :id=rgb-matrix-lighting
|
||||||
|
|
||||||
|
[RGB マトリックスライト](ja/feature_rgb_matrix.md) も見てください。
|
||||||
|
|
||||||
|
|キー |エイリアス|説明 |
|
||||||
|
|-------------------|----------|--------------------------------------------------------------------------------------------------------|
|
||||||
|
|`RGB_TOG` | |RGB ライトのオン・オフを切り替え |
|
||||||
|
|`RGB_MODE_FORWARD` |`RGB_MOD` |RGB モードを順送りで変更し、Shift を押していると逆順で変更します。 |
|
||||||
|
|`RGB_MODE_REVERSE` |`RGB_RMOD`|RGB モードを逆順で変更し、Shift を押していると順送りで変更します。 |
|
||||||
|
|`RGB_HUI` | |色相 (HUE) を増加させ、Shift を押していると減少させます。 |
|
||||||
|
|`RGB_HUD` | |色相 (HUE) を減少させ、Shift を押していると増加させます。 |
|
||||||
|
|`RGB_SAI` | |彩度 (SAT) を増加させ、Shift を押していると減少させます。 |
|
||||||
|
|`RGB_SAD` | |彩度 (SAT) を減少させ、Shift を押していると増加させます。 |
|
||||||
|
|`RGB_VAI` | |明度 (VAL/brightness) を増加させ、Shift を押していると減少させます。 |
|
||||||
|
|`RGB_VAD` | |明度 (VAL/brightness) を減少させ、Shift を押していると増加させます。 |
|
||||||
|
|`RGB_SPI` | |エフェクトのスピード (EEPROM はまだサポートしていません) を増加させ、Shift を押していると減少させます。 |
|
||||||
|
|`RGB_SPD` | |エフェクトのスピード (EEPROM はまだサポートしていません) を減少させ、Shift を押していると増加させます。 |
|
||||||
|
|
||||||
|
## 感熱式プリンタ :id=thermal-printer
|
||||||
|
|
||||||
|
[感熱式プリンタ](ja/feature_thermal_printer.md) も見てください。
|
||||||
|
|
||||||
|
|キー |説明 |
|
||||||
|
|-----------|---------------------------------|
|
||||||
|
|`PRINT_ON` |ユーザが入力した全ての印刷を開始 |
|
||||||
|
|`PRINT_OFF`|ユーザが入力した全ての印刷を停止 |
|
||||||
|
|
||||||
|
## US ANSI シフト済シンボル :id=us-ansi-shifted-symbols
|
||||||
|
|
||||||
|
[US ANSI シフト済シンボル](ja/keycodes_us_ansi_shifted.md) も見てください。
|
||||||
|
|
||||||
|
|キー |エイリアス |説明|
|
||||||
|
|------------------------|-------------------|-----------|
|
||||||
|
|`KC_TILDE` |`KC_TILD` |`~` |
|
||||||
|
|`KC_EXCLAIM` |`KC_EXLM` |`!` |
|
||||||
|
|`KC_AT` | |`@` |
|
||||||
|
|`KC_HASH` | |`#` |
|
||||||
|
|`KC_DOLLAR` |`KC_DLR` |`$` |
|
||||||
|
|`KC_PERCENT` |`KC_PERC` |`%` |
|
||||||
|
|`KC_CIRCUMFLEX` |`KC_CIRC` |`^` |
|
||||||
|
|`KC_AMPERSAND` |`KC_AMPR` |`&` |
|
||||||
|
|`KC_ASTERISK` |`KC_ASTR` |`*` |
|
||||||
|
|`KC_LEFT_PAREN` |`KC_LPRN` |`(` |
|
||||||
|
|`KC_RIGHT_PAREN` |`KC_RPRN` |`)` |
|
||||||
|
|`KC_UNDERSCORE` |`KC_UNDS` |`_` |
|
||||||
|
|`KC_PLUS` | |`+` |
|
||||||
|
|`KC_LEFT_CURLY_BRACE` |`KC_LCBR` |`{` |
|
||||||
|
|`KC_RIGHT_CURLY_BRACE` |`KC_RCBR` |`}` |
|
||||||
|
|`KC_PIPE` | |`\|` |
|
||||||
|
|`KC_COLON` |`KC_COLN` |`:` |
|
||||||
|
|`KC_DOUBLE_QUOTE` |`KC_DQUO`, `KC_DQT`|`"` |
|
||||||
|
|`KC_LEFT_ANGLE_BRACKET` |`KC_LABK`, `KC_LT` |`<` |
|
||||||
|
|`KC_RIGHT_ANGLE_BRACKET`|`KC_RABK`, `KC_GT` |`>` |
|
||||||
|
|`KC_QUESTION` |`KC_QUES` |`?` |
|
||||||
|
|
||||||
|
## ワンショットキー :id=one-shot-keys
|
||||||
|
|
||||||
|
[ワンショットキー](ja/one_shot_keys.md) も見てください。
|
||||||
|
|
||||||
|
|キー |説明 |
|
||||||
|
|------------|--------------------------------|
|
||||||
|
|`OSM(mod)` | 次のキーが押されるまで、`mod` を押したままにします |
|
||||||
|
|`OSL(layer)`| 次のキーが押されるまで、一時的にレイヤーをアクティブにします |
|
||||||
|
|
||||||
|
## Space Cadet :id=space-cadet
|
||||||
|
|
||||||
|
[Space Cadet](ja/feature_space_cadet.md) も見てください。
|
||||||
|
|
||||||
|
|キー |説明 |
|
||||||
|
|-----------|-------------------------------------------|
|
||||||
|
|`KC_LCPO` |押したままの場合は左 Control、タップした場合は `(` |
|
||||||
|
|`KC_RCPC` |押したままの場合は右 Control、タップした場合は `)` |
|
||||||
|
|`KC_LSPO` |押したままの場合は左 Shift、タップした場合は `(`、 |
|
||||||
|
|`KC_RSPC` |押したままの場合は右 Shift、タップした場合は `)`、 |
|
||||||
|
|`KC_LAPO` |押したままの場合は左 Alt、タップした場合は `(`、 |
|
||||||
|
|`KC_RAPC` |押したままの場合は右 Alt、タップした場合は `)`、 |
|
||||||
|
|`KC_SFTENT`|押したままの場合は右 Shift、タップした場合は Enter |
|
||||||
|
|
||||||
|
## スワップハンド :id=swap-hands
|
||||||
|
|
||||||
|
[スワップハンド](ja/feature_swap_hands.md) も見てください。
|
||||||
|
|
||||||
|
|キー |説明 |
|
||||||
|
|-------------|----------------------------------------------------------------------------------|
|
||||||
|
| `SH_T(key)` | タップで `key` を送信する。押している時に一時的に入れ替え。 |
|
||||||
|
| `SH_ON` | 入れ替えをオンにして、そのままにする。 |
|
||||||
|
| `SH_OFF` | 入れ替えをオフにして、そのままにする。既知の状態に戻るのに適しています。 |
|
||||||
|
| `SH_MON` | 押すとスワップハンドし、放すと通常に戻る (一時的)。 |
|
||||||
|
| `SH_MOFF` | 一時的に入れ替えをオフする。 |
|
||||||
|
| `SH_TG` | キーを押すたびにオンとオフを切り替える。 |
|
||||||
|
| `SH_TT` | タップで切り替える。押している時に一時的に切り替える。 |
|
||||||
|
| `SH_OS` | ワンショットスワップハンド: 押している時あるいは次のキーを押すまで切り替える。 |
|
||||||
|
|
||||||
|
## ユニコードサポート :id=unicode-support
|
||||||
|
|
||||||
|
[ユニコードサポート](ja/feature_unicode.md) も見てください。
|
||||||
|
|
||||||
|
|キー |エイリアス |説明 |
|
||||||
|
|----------------------|-----------|----------------------------------------------------------------------|
|
||||||
|
|`UC(c)` | |コードポイント `c` のユニコードを送信 |
|
||||||
|
|`X(i)` | |`unicode_map` のインデックス `i` のユニコードを送信 |
|
||||||
|
|`XP(i, j)` | |Shift/Capsが有効なら、インデックス `i` または `j` のユニコードを送信 |
|
||||||
|
|`UNICODE_MODE_FORWARD`|`UC_MOD` |ユニコード入力方式を順送りで選択 |
|
||||||
|
|`UNICODE_MODE_REVERSE`|`UC_RMOD` |ユニコード入力方式を逆順で選択 |
|
||||||
|
|`UNICODE_MODE_OSX` |`UC_M_OS` |ユニコード入力方式を macOS 方式に切り替え |
|
||||||
|
|`UNICODE_MODE_LNX` |`UC_M_LN` |ユニコード入力方式を Linux 方式に切り替え |
|
||||||
|
|`UNICODE_MODE_WIN` |`UC_M_WI` |ユニコード入力方式を Windows 方式に切り替え |
|
||||||
|
|`UNICODE_MODE_BSD` |`UC_M_BS` |ユニコード入力方式を BSD 方式に切り替え (実装されていません) |
|
||||||
|
|`UNICODE_MODE_WINC` |`UC_M_WC` |ユニコード入力方式を WinCompose を使う Windows 方式に切り替え |
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2021 0xCB - Conor Burns
|
||||||
|
|
||||||
|
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 "1337.h"
|
||||||
|
|
||||||
|
void eeconfig_init_kb(void) {
|
||||||
|
#ifdef BACKLIGHT_ENABLE
|
||||||
|
backlight_enable();
|
||||||
|
backlight_level(5);
|
||||||
|
#endif
|
||||||
|
#ifdef RGBLIGHT_ENABLE
|
||||||
|
rgblight_enable();
|
||||||
|
rgblight_sethsv(0, 255, 255);
|
||||||
|
#ifdef RGBLIGHT_ANIMATIONS
|
||||||
|
rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 2);
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
eeconfig_update_kb(0);
|
||||||
|
eeconfig_init_user();
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2021 0xCB - Conor Burns
|
||||||
|
|
||||||
|
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( \
|
||||||
|
KA1, KA2, KA3, \
|
||||||
|
KB1, KB2, KB3, \
|
||||||
|
KC1, KC2, KC3 \
|
||||||
|
) \
|
||||||
|
{ \
|
||||||
|
{ KA1, KA2, KA3 }, \
|
||||||
|
{ KB1, KB2, KB3 }, \
|
||||||
|
{ KC1, KC2, KC3 } \
|
||||||
|
}
|
||||||
@@ -0,0 +1,70 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2021 0xCB - Conor Burns
|
||||||
|
|
||||||
|
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 0xCB00
|
||||||
|
#define PRODUCT_ID 0x1337
|
||||||
|
#define DEVICE_VER 0x0001
|
||||||
|
#define MANUFACTURER 0xCB
|
||||||
|
#define PRODUCT 1337
|
||||||
|
|
||||||
|
/* key matrix size */
|
||||||
|
#define MATRIX_ROWS 3
|
||||||
|
#define MATRIX_COLS 3
|
||||||
|
|
||||||
|
/* Keyboard Matrix Assignments */
|
||||||
|
#define DIRECT_PINS { \
|
||||||
|
{ D2, D4, F4 }, \
|
||||||
|
{ D7, B1, B3 }, \
|
||||||
|
{ E6, B4, B2 } \
|
||||||
|
}
|
||||||
|
#define TAP_CODE_DELAY 10
|
||||||
|
#define ENCODER_RESOLUTION 4
|
||||||
|
#define ENCODERS_PAD_A { F5 }
|
||||||
|
#define ENCODERS_PAD_B { F6 }
|
||||||
|
|
||||||
|
#define BACKLIGHT_PIN B5
|
||||||
|
// #define BACKLIGHT_BREATHING
|
||||||
|
#define BACKLIGHT_LEVELS 7
|
||||||
|
|
||||||
|
#define RGB_DI_PIN D3
|
||||||
|
#ifdef RGB_DI_PIN
|
||||||
|
#define RGBLED_NUM 5
|
||||||
|
#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
|
||||||
|
|
||||||
|
/* 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
|
||||||
|
/* Oled Size */
|
||||||
|
#define OLED_DISPLAY_128X64
|
||||||
|
|
||||||
|
/* QMK DFU */
|
||||||
|
#define QMK_LED B0
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "0xCB 1337",
|
||||||
|
"url": "https://0xCB.dev",
|
||||||
|
"maintainer": "Conor-Burns",
|
||||||
|
"width": 3,
|
||||||
|
"height": 3,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT": {
|
||||||
|
"layout": [
|
||||||
|
{"x":0, "y":0},
|
||||||
|
{"x":1, "y":0},
|
||||||
|
{"x":2, "y":0},
|
||||||
|
{"x":0, "y":1},
|
||||||
|
{"x":1, "y":1},
|
||||||
|
{"x":2, "y":1},
|
||||||
|
{"x":0, "y":2},
|
||||||
|
{"x":1, "y":2},
|
||||||
|
{"x":2, "y":2}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,189 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2021 0xCB - Conor Burns
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
enum layer_names {
|
||||||
|
_HOME,
|
||||||
|
_MISC,
|
||||||
|
_RGB,
|
||||||
|
_BLED
|
||||||
|
};
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[_HOME] = LAYOUT(
|
||||||
|
KC_MPRV, KC_MNXT, KC_MPLY,
|
||||||
|
KC_PGUP, KC_PGDN, TO(3),
|
||||||
|
KC_HOME, KC_END, TO(1)
|
||||||
|
),
|
||||||
|
[_MISC] = LAYOUT(
|
||||||
|
_______, _______, _______,
|
||||||
|
_______, _______, TO(0),
|
||||||
|
_______, _______, TO(2)
|
||||||
|
),
|
||||||
|
[_RGB] = LAYOUT(
|
||||||
|
RGB_HUI, RGB_HUD, RGB_MOD,
|
||||||
|
RGB_SAI, RGB_SAD, TO(1),
|
||||||
|
RGB_SPI, RGB_SPD, TO(3)
|
||||||
|
),
|
||||||
|
[_BLED] = LAYOUT(
|
||||||
|
BL_STEP, BL_BRTG, BL_TOGG,
|
||||||
|
BL_ON, BL_OFF, TO(2),
|
||||||
|
BL_INC, BL_DEC, TO(0)
|
||||||
|
)
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/* rotary encoder (SW3) - add more else if blocks for more granular layer control */
|
||||||
|
#ifdef ENCODER_ENABLE
|
||||||
|
void encoder_update_user(uint8_t index, bool clockwise) {
|
||||||
|
if (IS_LAYER_ON(_RGB)) {
|
||||||
|
if (clockwise) {
|
||||||
|
rgblight_increase_val();
|
||||||
|
} else {
|
||||||
|
rgblight_decrease_val();
|
||||||
|
}
|
||||||
|
} else if (IS_LAYER_ON(_BLED)) {
|
||||||
|
if (clockwise) {
|
||||||
|
backlight_increase();
|
||||||
|
} else {
|
||||||
|
backlight_decrease();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (clockwise) {
|
||||||
|
tap_code(KC_VOLU);
|
||||||
|
} else {
|
||||||
|
tap_code(KC_VOLD);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* oled stuff :) */
|
||||||
|
#ifdef OLED_DRIVER_ENABLE
|
||||||
|
uint16_t startup_timer;
|
||||||
|
|
||||||
|
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
|
||||||
|
startup_timer = timer_read();
|
||||||
|
return rotation;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void render_logo(void) {
|
||||||
|
static const char PROGMEM logo[] = {
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x80, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||||
|
0x01, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x01, 0x01, 0x01, 0x01,
|
||||||
|
0x01, 0x01, 0x02, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x05,
|
||||||
|
0xf8, 0x05, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0xe0, 0xe0, 0x70, 0x78,
|
||||||
|
0x38, 0x3f, 0x1c, 0x0e, 0x0e, 0x0e, 0xfe, 0x0e, 0x0e, 0x1e, 0x1c, 0x3f, 0x38, 0x78, 0x70, 0xe0,
|
||||||
|
0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x05, 0xf8, 0x05, 0x02, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xa0,
|
||||||
|
0x13, 0xa2, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xfc,
|
||||||
|
0xfe, 0xfe, 0xc0, 0xc0, 0xc0, 0xc0, 0xff, 0x00, 0x00, 0x00, 0x3e, 0x3e, 0x3c, 0x3c, 0x00, 0x00,
|
||||||
|
0x01, 0xff, 0xff, 0xff, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0xa2, 0x13, 0xa0, 0x40, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x80, 0xc0, 0x40, 0x40, 0xc0, 0x80, 0x00, 0x00, 0xc0, 0x40, 0x40, 0xc0, 0x80,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x40, 0xc0,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x40, 0x40, 0xc0, 0x80, 0x00, 0x00, 0x80, 0xc0, 0x40,
|
||||||
|
0x40, 0xc0, 0x80, 0x00, 0x00, 0x40, 0x40, 0x40, 0x40, 0x40, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0xf9, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x7f, 0xff, 0xff, 0xc0, 0x80, 0x80, 0x0f,
|
||||||
|
0x1f, 0x1f, 0x01, 0x01, 0x01, 0x01, 0xff, 0x00, 0x00, 0x00, 0x1e, 0x1e, 0x0e, 0x0e, 0x80, 0xc0,
|
||||||
|
0xc0, 0xff, 0xff, 0x7f, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0xf9, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x1f, 0x31, 0x40, 0x4e, 0x40, 0x31, 0x1f, 0x00, 0x00, 0x61, 0x16, 0x08, 0x16, 0x61,
|
||||||
|
0x00, 0x00, 0x1f, 0x31, 0x60, 0x40, 0x40, 0x60, 0x20, 0x00, 0x00, 0x7f, 0x44, 0x44, 0x64, 0x3b,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x7f,
|
||||||
|
0x40, 0x40, 0x00, 0x00, 0x00, 0x20, 0x64, 0x44, 0x44, 0x6e, 0x3b, 0x00, 0x00, 0x20, 0x64, 0x44,
|
||||||
|
0x44, 0x6e, 0x3b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x03, 0x01, 0x00, 0x00, 0x00, 0x08, 0x14,
|
||||||
|
0x23, 0x14, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x07, 0x07,
|
||||||
|
0x0f, 0xfe, 0x1e, 0x1c, 0x1c, 0x1c, 0xff, 0x1c, 0x1c, 0x1c, 0x1e, 0xfe, 0x0f, 0x07, 0x03, 0x03,
|
||||||
|
0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x0a, 0x11, 0x0a, 0x04, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x28, 0x44, 0x28, 0x10, 0x10, 0x10, 0x10, 0x10,
|
||||||
|
0x10, 0x1f, 0x00, 0x00, 0x10, 0x28, 0x47, 0x28, 0x10, 0x00, 0x00, 0x1f, 0x10, 0x10, 0x10, 0x10,
|
||||||
|
0x10, 0x10, 0x28, 0x44, 0x28, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||||
|
};
|
||||||
|
|
||||||
|
oled_write_raw_P(logo, sizeof(logo));
|
||||||
|
}
|
||||||
|
/* Shows the name of the current layer and locks for the host (CAPS etc.) */
|
||||||
|
static void render_info(void) {
|
||||||
|
oled_write_P(PSTR("Layer: "), false);
|
||||||
|
|
||||||
|
switch (get_highest_layer(layer_state)) {
|
||||||
|
case _HOME:
|
||||||
|
oled_write_ln_P(PSTR("HOME"), false);
|
||||||
|
break;
|
||||||
|
case _MISC:
|
||||||
|
oled_write_ln_P(PSTR("MISC"), false);
|
||||||
|
break;
|
||||||
|
case _RGB:
|
||||||
|
oled_write_ln_P(PSTR("RGB"), false);
|
||||||
|
break;
|
||||||
|
case _BLED:
|
||||||
|
oled_write_ln_P(PSTR("Backlight"), false);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
oled_write_ln_P(PSTR("Undefined"), false);
|
||||||
|
}
|
||||||
|
led_t led_state = host_keyboard_led_state();
|
||||||
|
oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false);
|
||||||
|
oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false);
|
||||||
|
oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false);
|
||||||
|
}
|
||||||
|
|
||||||
|
void oled_task_user(void) {
|
||||||
|
static bool finished_timer = false;
|
||||||
|
if ((timer_elapsed(startup_timer) < 3000) && !finished_timer) {
|
||||||
|
render_logo();
|
||||||
|
} else {
|
||||||
|
finished_timer = true;
|
||||||
|
render_info();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,189 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2021 0xCB - Conor Burns
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
enum layer_names {
|
||||||
|
_HOME,
|
||||||
|
_MISC,
|
||||||
|
_RGB,
|
||||||
|
_BLED
|
||||||
|
};
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[_HOME] = LAYOUT(
|
||||||
|
KC_MPRV, KC_MNXT, KC_MPLY,
|
||||||
|
KC_PGUP, KC_PGDN, TO(3),
|
||||||
|
KC_HOME, KC_END, TO(1)
|
||||||
|
),
|
||||||
|
[_MISC] = LAYOUT(
|
||||||
|
_______, _______, _______,
|
||||||
|
_______, _______, TO(0),
|
||||||
|
_______, _______, TO(2)
|
||||||
|
),
|
||||||
|
[_RGB] = LAYOUT(
|
||||||
|
RGB_HUI, RGB_HUD, RGB_MOD,
|
||||||
|
RGB_SAI, RGB_SAD, TO(1),
|
||||||
|
RGB_SPI, RGB_SPD, TO(3)
|
||||||
|
),
|
||||||
|
[_BLED] = LAYOUT(
|
||||||
|
BL_STEP, BL_BRTG, BL_TOGG,
|
||||||
|
BL_ON, BL_OFF, TO(2),
|
||||||
|
BL_INC, BL_DEC, TO(0)
|
||||||
|
)
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/* rotary encoder (SW3) - add more else if blocks for more granular layer control */
|
||||||
|
#ifdef ENCODER_ENABLE
|
||||||
|
void encoder_update_user(uint8_t index, bool clockwise) {
|
||||||
|
if (IS_LAYER_ON(_RGB)) {
|
||||||
|
if (clockwise) {
|
||||||
|
rgblight_increase_val();
|
||||||
|
} else {
|
||||||
|
rgblight_decrease_val();
|
||||||
|
}
|
||||||
|
} else if (IS_LAYER_ON(_BLED)) {
|
||||||
|
if (clockwise) {
|
||||||
|
backlight_increase();
|
||||||
|
} else {
|
||||||
|
backlight_decrease();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (clockwise) {
|
||||||
|
tap_code(KC_VOLU);
|
||||||
|
} else {
|
||||||
|
tap_code(KC_VOLD);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* oled stuff :) */
|
||||||
|
#ifdef OLED_DRIVER_ENABLE
|
||||||
|
uint16_t startup_timer;
|
||||||
|
|
||||||
|
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
|
||||||
|
startup_timer = timer_read();
|
||||||
|
return rotation;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void render_logo(void) {
|
||||||
|
static const char PROGMEM logo[] = {
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x80, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||||
|
0x01, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x01, 0x01, 0x01, 0x01,
|
||||||
|
0x01, 0x01, 0x02, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x05,
|
||||||
|
0xf8, 0x05, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0xe0, 0xe0, 0x70, 0x78,
|
||||||
|
0x38, 0x3f, 0x1c, 0x0e, 0x0e, 0x0e, 0xfe, 0x0e, 0x0e, 0x1e, 0x1c, 0x3f, 0x38, 0x78, 0x70, 0xe0,
|
||||||
|
0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x05, 0xf8, 0x05, 0x02, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xa0,
|
||||||
|
0x13, 0xa2, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xfc,
|
||||||
|
0xfe, 0xfe, 0xc0, 0xc0, 0xc0, 0xc0, 0xff, 0x00, 0x00, 0x00, 0x3e, 0x3e, 0x3c, 0x3c, 0x00, 0x00,
|
||||||
|
0x01, 0xff, 0xff, 0xff, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0xa2, 0x13, 0xa0, 0x40, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x80, 0xc0, 0x40, 0x40, 0xc0, 0x80, 0x00, 0x00, 0xc0, 0x40, 0x40, 0xc0, 0x80,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x40, 0xc0,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x40, 0x40, 0xc0, 0x80, 0x00, 0x00, 0x80, 0xc0, 0x40,
|
||||||
|
0x40, 0xc0, 0x80, 0x00, 0x00, 0x40, 0x40, 0x40, 0x40, 0x40, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0xf9, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x7f, 0xff, 0xff, 0xc0, 0x80, 0x80, 0x0f,
|
||||||
|
0x1f, 0x1f, 0x01, 0x01, 0x01, 0x01, 0xff, 0x00, 0x00, 0x00, 0x1e, 0x1e, 0x0e, 0x0e, 0x80, 0xc0,
|
||||||
|
0xc0, 0xff, 0xff, 0x7f, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0xf9, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x1f, 0x31, 0x40, 0x4e, 0x40, 0x31, 0x1f, 0x00, 0x00, 0x61, 0x16, 0x08, 0x16, 0x61,
|
||||||
|
0x00, 0x00, 0x1f, 0x31, 0x60, 0x40, 0x40, 0x60, 0x20, 0x00, 0x00, 0x7f, 0x44, 0x44, 0x64, 0x3b,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x7f,
|
||||||
|
0x40, 0x40, 0x00, 0x00, 0x00, 0x20, 0x64, 0x44, 0x44, 0x6e, 0x3b, 0x00, 0x00, 0x20, 0x64, 0x44,
|
||||||
|
0x44, 0x6e, 0x3b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x03, 0x01, 0x00, 0x00, 0x00, 0x08, 0x14,
|
||||||
|
0x23, 0x14, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x07, 0x07,
|
||||||
|
0x0f, 0xfe, 0x1e, 0x1c, 0x1c, 0x1c, 0xff, 0x1c, 0x1c, 0x1c, 0x1e, 0xfe, 0x0f, 0x07, 0x03, 0x03,
|
||||||
|
0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x0a, 0x11, 0x0a, 0x04, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x28, 0x44, 0x28, 0x10, 0x10, 0x10, 0x10, 0x10,
|
||||||
|
0x10, 0x1f, 0x00, 0x00, 0x10, 0x28, 0x47, 0x28, 0x10, 0x00, 0x00, 0x1f, 0x10, 0x10, 0x10, 0x10,
|
||||||
|
0x10, 0x10, 0x28, 0x44, 0x28, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||||
|
};
|
||||||
|
|
||||||
|
oled_write_raw_P(logo, sizeof(logo));
|
||||||
|
}
|
||||||
|
/* Shows the name of the current layer and locks for the host (CAPS etc.) */
|
||||||
|
static void render_info(void) {
|
||||||
|
oled_write_P(PSTR("Layer: "), false);
|
||||||
|
|
||||||
|
switch (get_highest_layer(layer_state)) {
|
||||||
|
case _HOME:
|
||||||
|
oled_write_ln_P(PSTR("HOME"), false);
|
||||||
|
break;
|
||||||
|
case _MISC:
|
||||||
|
oled_write_ln_P(PSTR("MISC"), false);
|
||||||
|
break;
|
||||||
|
case _RGB:
|
||||||
|
oled_write_ln_P(PSTR("RGB"), false);
|
||||||
|
break;
|
||||||
|
case _BLED:
|
||||||
|
oled_write_ln_P(PSTR("Backlight"), false);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
oled_write_ln_P(PSTR("Undefined"), false);
|
||||||
|
}
|
||||||
|
led_t led_state = host_keyboard_led_state();
|
||||||
|
oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false);
|
||||||
|
oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false);
|
||||||
|
oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false);
|
||||||
|
}
|
||||||
|
|
||||||
|
void oled_task_user(void) {
|
||||||
|
static bool finished_timer = false;
|
||||||
|
if ((timer_elapsed(startup_timer) < 3000) && !finished_timer) {
|
||||||
|
render_logo();
|
||||||
|
} else {
|
||||||
|
finished_timer = true;
|
||||||
|
render_info();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
VIA_ENABLE = yes
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
# 0xCB 1337
|
||||||
|
|
||||||
|
Macro keypad
|
||||||
|
|
||||||
|
* Keyboard Maintainer: [Conor Burns](https://github.com/conor-burns)
|
||||||
|
* Hardware Supported: https://github.com/conor-burns/0xcb-1337
|
||||||
|
* Hardware Availability: Soon on tindie or order your own parts - the hardware in the repo is Open Source :D
|
||||||
|
* PCB renders :)
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
|
To go to bootloader press row 0 col 0 key (top left) while plugging in the board.
|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make 0xcb/1337:default
|
||||||
|
|
||||||
|
Flashing example for this keyboard:
|
||||||
|
|
||||||
|
make 0xcb/1337: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,27 @@
|
|||||||
|
# MCU name
|
||||||
|
MCU = atmega32u4
|
||||||
|
|
||||||
|
# Bootloader selection
|
||||||
|
BOOTLOADER = qmk-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 = yes # Enable keyboard backlight functionality on B7 by default
|
||||||
|
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
|
||||||
|
UNICODE_ENABLE = no # Unicode
|
||||||
|
BLUETOOTH_ENABLE = no # Enable Bluetooth
|
||||||
|
AUDIO_ENABLE = no # Audio output
|
||||||
|
|
||||||
|
ENCODER_ENABLE = yes
|
||||||
|
LTO_ENABLE = yes
|
||||||
|
OLED_DRIVER_ENABLE = yes
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "2Key2CrawlPad",
|
||||||
|
"url": "",
|
||||||
|
"maintainer": "qmk",
|
||||||
|
"width": 6.5,
|
||||||
|
"height": 2,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT": {
|
||||||
|
"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":"K15", "x":4, "y":0},
|
||||||
|
|
||||||
|
{"label":"K10", "x":0, "y":1},
|
||||||
|
{"label":"K11", "x":1, "y":1},
|
||||||
|
{"label":"K12", "x":2, "y":1},
|
||||||
|
{"label":"K13", "x":3, "y":1},
|
||||||
|
{"label":"K14", "x":4, "y":1},
|
||||||
|
{"label":"K16", "x":5.5, "y":0.5}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,197 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "40percent.club 4x4",
|
||||||
|
"url": "",
|
||||||
|
"maintainer": "qmk",
|
||||||
|
"height": 4,
|
||||||
|
"width": 4,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT_ortho_4x4": {
|
||||||
|
"layout": [
|
||||||
|
{"x":0, "y":0},
|
||||||
|
{"x":1, "y":0},
|
||||||
|
{"x":2, "y":0},
|
||||||
|
{"x":3, "y":0},
|
||||||
|
|
||||||
|
{"x":0, "y":1},
|
||||||
|
{"x":1, "y":1},
|
||||||
|
{"x":2, "y":1},
|
||||||
|
{"x":3, "y":1},
|
||||||
|
|
||||||
|
{"x":0, "y":2},
|
||||||
|
{"x":1, "y":2},
|
||||||
|
{"x":2, "y":2},
|
||||||
|
{"x":3, "y":2},
|
||||||
|
|
||||||
|
{"x":0, "y":3},
|
||||||
|
{"x":1, "y":3},
|
||||||
|
{"x":2, "y":3},
|
||||||
|
{"x":3, "y":3}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"LAYOUT_ortho_4x8": {
|
||||||
|
"layout": [
|
||||||
|
{"x":0, "y":0},
|
||||||
|
{"x":1, "y":0},
|
||||||
|
{"x":2, "y":0},
|
||||||
|
{"x":3, "y":0},
|
||||||
|
{"x":4, "y":0},
|
||||||
|
{"x":5, "y":0},
|
||||||
|
{"x":6, "y":0},
|
||||||
|
{"x":7, "y":0},
|
||||||
|
|
||||||
|
{"x":0, "y":1},
|
||||||
|
{"x":1, "y":1},
|
||||||
|
{"x":2, "y":1},
|
||||||
|
{"x":3, "y":1},
|
||||||
|
{"x":4, "y":1},
|
||||||
|
{"x":5, "y":1},
|
||||||
|
{"x":6, "y":1},
|
||||||
|
{"x":7, "y":1},
|
||||||
|
|
||||||
|
{"x":0, "y":2},
|
||||||
|
{"x":1, "y":2},
|
||||||
|
{"x":2, "y":2},
|
||||||
|
{"x":3, "y":2},
|
||||||
|
{"x":4, "y":2},
|
||||||
|
{"x":5, "y":2},
|
||||||
|
{"x":6, "y":2},
|
||||||
|
{"x":7, "y":2},
|
||||||
|
|
||||||
|
{"x":0, "y":3},
|
||||||
|
{"x":1, "y":3},
|
||||||
|
{"x":2, "y":3},
|
||||||
|
{"x":3, "y":3},
|
||||||
|
{"x":4, "y":3},
|
||||||
|
{"x":5, "y":3},
|
||||||
|
{"x":6, "y":3},
|
||||||
|
{"x":7, "y":3}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"LAYOUT_ortho_4x12": {
|
||||||
|
"layout": [
|
||||||
|
{"x":0, "y":0},
|
||||||
|
{"x":1, "y":0},
|
||||||
|
{"x":2, "y":0},
|
||||||
|
{"x":3, "y":0},
|
||||||
|
{"x":4, "y":0},
|
||||||
|
{"x":5, "y":0},
|
||||||
|
{"x":6, "y":0},
|
||||||
|
{"x":7, "y":0},
|
||||||
|
{"x":8, "y":0},
|
||||||
|
{"x":9, "y":0},
|
||||||
|
{"x":10, "y":0},
|
||||||
|
{"x":11, "y":0},
|
||||||
|
|
||||||
|
{"x":0, "y":1},
|
||||||
|
{"x":1, "y":1},
|
||||||
|
{"x":2, "y":1},
|
||||||
|
{"x":3, "y":1},
|
||||||
|
{"x":4, "y":1},
|
||||||
|
{"x":5, "y":1},
|
||||||
|
{"x":6, "y":1},
|
||||||
|
{"x":7, "y":1},
|
||||||
|
{"x":8, "y":1},
|
||||||
|
{"x":9, "y":1},
|
||||||
|
{"x":10, "y":1},
|
||||||
|
{"x":11, "y":1},
|
||||||
|
|
||||||
|
{"x":0, "y":2},
|
||||||
|
{"x":1, "y":2},
|
||||||
|
{"x":2, "y":2},
|
||||||
|
{"x":3, "y":2},
|
||||||
|
{"x":4, "y":2},
|
||||||
|
{"x":5, "y":2},
|
||||||
|
{"x":6, "y":2},
|
||||||
|
{"x":7, "y":2},
|
||||||
|
{"x":8, "y":2},
|
||||||
|
{"x":9, "y":2},
|
||||||
|
{"x":10, "y":2},
|
||||||
|
{"x":11, "y":2},
|
||||||
|
|
||||||
|
{"x":0, "y":3},
|
||||||
|
{"x":1, "y":3},
|
||||||
|
{"x":2, "y":3},
|
||||||
|
{"x":3, "y":3},
|
||||||
|
{"x":4, "y":3},
|
||||||
|
{"x":5, "y":3},
|
||||||
|
{"x":6, "y":3},
|
||||||
|
{"x":7, "y":3},
|
||||||
|
{"x":8, "y":3},
|
||||||
|
{"x":9, "y":3},
|
||||||
|
{"x":10, "y":3},
|
||||||
|
{"x":11, "y":3}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"LAYOUT_ortho_4x16": {
|
||||||
|
"layout": [
|
||||||
|
{"x":0, "y":0},
|
||||||
|
{"x":1, "y":0},
|
||||||
|
{"x":2, "y":0},
|
||||||
|
{"x":3, "y":0},
|
||||||
|
{"x":4, "y":0},
|
||||||
|
{"x":5, "y":0},
|
||||||
|
{"x":6, "y":0},
|
||||||
|
{"x":7, "y":0},
|
||||||
|
{"x":8, "y":0},
|
||||||
|
{"x":9, "y":0},
|
||||||
|
{"x":10, "y":0},
|
||||||
|
{"x":11, "y":0},
|
||||||
|
{"x":12, "y":0},
|
||||||
|
{"x":13, "y":0},
|
||||||
|
{"x":14, "y":0},
|
||||||
|
{"x":15, "y":0},
|
||||||
|
|
||||||
|
{"x":0, "y":1},
|
||||||
|
{"x":1, "y":1},
|
||||||
|
{"x":2, "y":1},
|
||||||
|
{"x":3, "y":1},
|
||||||
|
{"x":4, "y":1},
|
||||||
|
{"x":5, "y":1},
|
||||||
|
{"x":6, "y":1},
|
||||||
|
{"x":7, "y":1},
|
||||||
|
{"x":8, "y":1},
|
||||||
|
{"x":9, "y":1},
|
||||||
|
{"x":10, "y":1},
|
||||||
|
{"x":11, "y":1},
|
||||||
|
{"x":12, "y":1},
|
||||||
|
{"x":13, "y":1},
|
||||||
|
{"x":14, "y":1},
|
||||||
|
{"x":15, "y":1},
|
||||||
|
|
||||||
|
{"x":0, "y":2},
|
||||||
|
{"x":1, "y":2},
|
||||||
|
{"x":2, "y":2},
|
||||||
|
{"x":3, "y":2},
|
||||||
|
{"x":4, "y":2},
|
||||||
|
{"x":5, "y":2},
|
||||||
|
{"x":6, "y":2},
|
||||||
|
{"x":7, "y":2},
|
||||||
|
{"x":8, "y":2},
|
||||||
|
{"x":9, "y":2},
|
||||||
|
{"x":10, "y":2},
|
||||||
|
{"x":11, "y":2},
|
||||||
|
{"x":12, "y":2},
|
||||||
|
{"x":13, "y":2},
|
||||||
|
{"x":14, "y":2},
|
||||||
|
{"x":15, "y":2},
|
||||||
|
|
||||||
|
{"x":0, "y":3},
|
||||||
|
{"x":1, "y":3},
|
||||||
|
{"x":2, "y":3},
|
||||||
|
{"x":3, "y":3},
|
||||||
|
{"x":4, "y":3},
|
||||||
|
{"x":5, "y":3},
|
||||||
|
{"x":6, "y":3},
|
||||||
|
{"x":7, "y":3},
|
||||||
|
{"x":8, "y":3},
|
||||||
|
{"x":9, "y":3},
|
||||||
|
{"x":10, "y":3},
|
||||||
|
{"x":11, "y":3},
|
||||||
|
{"x":12, "y":3},
|
||||||
|
{"x":13, "y":3},
|
||||||
|
{"x":14, "y":3},
|
||||||
|
{"x":15, "y":3}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,183 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "40percent.club 4x4",
|
||||||
|
"url": "",
|
||||||
|
"maintainer": "qmk",
|
||||||
|
"height": 4,
|
||||||
|
"width": 4,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT_ortho_5x5": {
|
||||||
|
"layout": [
|
||||||
|
{"x":0, "y":0},
|
||||||
|
{"x":1, "y":0},
|
||||||
|
{"x":2, "y":0},
|
||||||
|
{"x":3, "y":0},
|
||||||
|
{"x":4, "y":0},
|
||||||
|
|
||||||
|
{"x":0, "y":1},
|
||||||
|
{"x":1, "y":1},
|
||||||
|
{"x":2, "y":1},
|
||||||
|
{"x":3, "y":1},
|
||||||
|
{"x":4, "y":1},
|
||||||
|
|
||||||
|
{"x":0, "y":2},
|
||||||
|
{"x":1, "y":2},
|
||||||
|
{"x":2, "y":2},
|
||||||
|
{"x":3, "y":2},
|
||||||
|
{"x":4, "y":2},
|
||||||
|
|
||||||
|
{"x":0, "y":3},
|
||||||
|
{"x":1, "y":3},
|
||||||
|
{"x":2, "y":3},
|
||||||
|
{"x":3, "y":3},
|
||||||
|
{"x":4, "y":3},
|
||||||
|
|
||||||
|
{"x":0, "y":4},
|
||||||
|
{"x":1, "y":4},
|
||||||
|
{"x":2, "y":4},
|
||||||
|
{"x":3, "y":4},
|
||||||
|
{"x":4, "y":4}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"LAYOUT_ortho_5x10": {
|
||||||
|
"layout": [
|
||||||
|
{"x":0, "y":0},
|
||||||
|
{"x":1, "y":0},
|
||||||
|
{"x":2, "y":0},
|
||||||
|
{"x":3, "y":0},
|
||||||
|
{"x":4, "y":0},
|
||||||
|
{"x":5, "y":0},
|
||||||
|
{"x":6, "y":0},
|
||||||
|
{"x":7, "y":0},
|
||||||
|
{"x":8, "y":0},
|
||||||
|
{"x":9, "y":0},
|
||||||
|
|
||||||
|
{"x":0, "y":1},
|
||||||
|
{"x":1, "y":1},
|
||||||
|
{"x":2, "y":1},
|
||||||
|
{"x":3, "y":1},
|
||||||
|
{"x":4, "y":1},
|
||||||
|
{"x":5, "y":1},
|
||||||
|
{"x":6, "y":1},
|
||||||
|
{"x":7, "y":1},
|
||||||
|
{"x":8, "y":1},
|
||||||
|
{"x":9, "y":1},
|
||||||
|
|
||||||
|
{"x":0, "y":2},
|
||||||
|
{"x":1, "y":2},
|
||||||
|
{"x":2, "y":2},
|
||||||
|
{"x":3, "y":2},
|
||||||
|
{"x":4, "y":2},
|
||||||
|
{"x":5, "y":2},
|
||||||
|
{"x":6, "y":2},
|
||||||
|
{"x":7, "y":2},
|
||||||
|
{"x":8, "y":2},
|
||||||
|
{"x":9, "y":2},
|
||||||
|
|
||||||
|
{"x":0, "y":3},
|
||||||
|
{"x":1, "y":3},
|
||||||
|
{"x":2, "y":3},
|
||||||
|
{"x":3, "y":3},
|
||||||
|
{"x":4, "y":3},
|
||||||
|
{"x":5, "y":3},
|
||||||
|
{"x":6, "y":3},
|
||||||
|
{"x":7, "y":3},
|
||||||
|
{"x":8, "y":3},
|
||||||
|
{"x":9, "y":3},
|
||||||
|
|
||||||
|
{"x":0, "y":4},
|
||||||
|
{"x":1, "y":4},
|
||||||
|
{"x":2, "y":4},
|
||||||
|
{"x":3, "y":4},
|
||||||
|
{"x":4, "y":4},
|
||||||
|
{"x":5, "y":4},
|
||||||
|
{"x":6, "y":4},
|
||||||
|
{"x":7, "y":4},
|
||||||
|
{"x":8, "y":4},
|
||||||
|
{"x":9, "y":4}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"LAYOUT_ortho_5x15": {
|
||||||
|
"layout": [
|
||||||
|
{"x":0, "y":0},
|
||||||
|
{"x":1, "y":0},
|
||||||
|
{"x":2, "y":0},
|
||||||
|
{"x":3, "y":0},
|
||||||
|
{"x":4, "y":0},
|
||||||
|
{"x":5, "y":0},
|
||||||
|
{"x":6, "y":0},
|
||||||
|
{"x":7, "y":0},
|
||||||
|
{"x":8, "y":0},
|
||||||
|
{"x":9, "y":0},
|
||||||
|
{"x":10, "y":0},
|
||||||
|
{"x":11, "y":0},
|
||||||
|
{"x":12, "y":0},
|
||||||
|
{"x":13, "y":0},
|
||||||
|
{"x":14, "y":0},
|
||||||
|
|
||||||
|
{"x":0, "y":1},
|
||||||
|
{"x":1, "y":1},
|
||||||
|
{"x":2, "y":1},
|
||||||
|
{"x":3, "y":1},
|
||||||
|
{"x":4, "y":1},
|
||||||
|
{"x":5, "y":1},
|
||||||
|
{"x":6, "y":1},
|
||||||
|
{"x":7, "y":1},
|
||||||
|
{"x":8, "y":1},
|
||||||
|
{"x":9, "y":1},
|
||||||
|
{"x":10, "y":1},
|
||||||
|
{"x":11, "y":1},
|
||||||
|
{"x":12, "y":1},
|
||||||
|
{"x":13, "y":1},
|
||||||
|
{"x":14, "y":1},
|
||||||
|
|
||||||
|
{"x":0, "y":2},
|
||||||
|
{"x":1, "y":2},
|
||||||
|
{"x":2, "y":2},
|
||||||
|
{"x":3, "y":2},
|
||||||
|
{"x":4, "y":2},
|
||||||
|
{"x":5, "y":2},
|
||||||
|
{"x":6, "y":2},
|
||||||
|
{"x":7, "y":2},
|
||||||
|
{"x":8, "y":2},
|
||||||
|
{"x":9, "y":2},
|
||||||
|
{"x":10, "y":2},
|
||||||
|
{"x":11, "y":2},
|
||||||
|
{"x":12, "y":2},
|
||||||
|
{"x":13, "y":2},
|
||||||
|
{"x":14, "y":2},
|
||||||
|
|
||||||
|
{"x":0, "y":3},
|
||||||
|
{"x":1, "y":3},
|
||||||
|
{"x":2, "y":3},
|
||||||
|
{"x":3, "y":3},
|
||||||
|
{"x":4, "y":3},
|
||||||
|
{"x":5, "y":3},
|
||||||
|
{"x":6, "y":3},
|
||||||
|
{"x":7, "y":3},
|
||||||
|
{"x":8, "y":3},
|
||||||
|
{"x":9, "y":3},
|
||||||
|
{"x":10, "y":3},
|
||||||
|
{"x":11, "y":3},
|
||||||
|
{"x":12, "y":3},
|
||||||
|
{"x":13, "y":3},
|
||||||
|
{"x":14, "y":3},
|
||||||
|
|
||||||
|
{"x":0, "y":4},
|
||||||
|
{"x":1, "y":4},
|
||||||
|
{"x":2, "y":4},
|
||||||
|
{"x":3, "y":4},
|
||||||
|
{"x":4, "y":4},
|
||||||
|
{"x":5, "y":4},
|
||||||
|
{"x":6, "y":4},
|
||||||
|
{"x":7, "y":4},
|
||||||
|
{"x":8, "y":4},
|
||||||
|
{"x":9, "y":4},
|
||||||
|
{"x":10, "y":4},
|
||||||
|
{"x":11, "y":4},
|
||||||
|
{"x":12, "y":4},
|
||||||
|
{"x":13, "y":4},
|
||||||
|
{"x":14, "y":4}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,81 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "AEKISO60 Rev A",
|
||||||
|
"url": "",
|
||||||
|
"maintainer": "4pplet",
|
||||||
|
"width": 15,
|
||||||
|
"height": 5,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT_all": {
|
||||||
|
"layout": [
|
||||||
|
{"x":0, "y":0, "w":1.25},
|
||||||
|
{"x":1.25, "y":0},
|
||||||
|
{"x":2.25, "y":0},
|
||||||
|
{"x":3.25, "y":0},
|
||||||
|
{"x":4.25, "y":0},
|
||||||
|
{"x":5.25, "y":0},
|
||||||
|
{"x":6.25, "y":0},
|
||||||
|
{"x":7.25, "y":0},
|
||||||
|
{"x":8.25, "y":0},
|
||||||
|
{"x":9.25, "y":0},
|
||||||
|
{"x":10.25, "y":0},
|
||||||
|
{"x":11.25, "y":0},
|
||||||
|
{"x":12.25, "y":0},
|
||||||
|
{"x":13.25, "y":0, "w":1.75},
|
||||||
|
|
||||||
|
{"x":0, "y":1, "w":1.75},
|
||||||
|
{"x":1.75, "y":1},
|
||||||
|
{"x":2.75, "y":1},
|
||||||
|
{"x":3.75, "y":1},
|
||||||
|
{"x":4.75, "y":1},
|
||||||
|
{"x":5.75, "y":1},
|
||||||
|
{"x":6.75, "y":1},
|
||||||
|
{"x":7.75, "y":1},
|
||||||
|
{"x":8.75, "y":1},
|
||||||
|
{"x":9.75, "y":1},
|
||||||
|
{"x":10.75, "y":1},
|
||||||
|
{"x":11.75, "y":1},
|
||||||
|
{"x":12.75, "y":1},
|
||||||
|
|
||||||
|
{"x":0, "y":2, "w":2},
|
||||||
|
{"x":2, "y":2},
|
||||||
|
{"x":3, "y":2},
|
||||||
|
{"x":4, "y":2},
|
||||||
|
{"x":5, "y":2},
|
||||||
|
{"x":6, "y":2},
|
||||||
|
{"x":7, "y":2},
|
||||||
|
{"x":8, "y":2},
|
||||||
|
{"x":9, "y":2},
|
||||||
|
{"x":10, "y":2},
|
||||||
|
{"x":11, "y":2},
|
||||||
|
{"x":12, "y":2},
|
||||||
|
{"x":13, "y":2},
|
||||||
|
{"x":14, "y":1, "h":2},
|
||||||
|
|
||||||
|
{"x":0, "y":3, "w":1.5},
|
||||||
|
{"x":1.5, "y":3},
|
||||||
|
{"x":2.5, "y":3},
|
||||||
|
{"x":3.5, "y":3},
|
||||||
|
{"x":4.5, "y":3},
|
||||||
|
{"x":5.5, "y":3},
|
||||||
|
{"x":6.5, "y":3},
|
||||||
|
{"x":7.5, "y":3},
|
||||||
|
{"x":8.5, "y":3},
|
||||||
|
{"x":9.5, "y":3},
|
||||||
|
{"x":10.5, "y":3},
|
||||||
|
{"x":11.5, "y":3},
|
||||||
|
{"x":12.5, "y":3, "w":1.5},
|
||||||
|
{"x":14, "y":3},
|
||||||
|
|
||||||
|
{"x":0, "y":4, "w":1.5},
|
||||||
|
{"x":1.5, "y":4, "w":1.25},
|
||||||
|
{"x":2.75, "y":4, "w":1.5},
|
||||||
|
{"x":4.25, "y":4, "w":2.75},
|
||||||
|
{"x":7, "y":4},
|
||||||
|
{"x":8, "y":4, "w":2.75},
|
||||||
|
{"x":10.75, "y":4, "w":1.5},
|
||||||
|
{"x":12.25, "y":4, "w":1.25},
|
||||||
|
{"x":13.5, "y":4, "w":1.5}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,87 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "Steezy60 Rev A",
|
||||||
|
"url": "",
|
||||||
|
"maintainer": "4pplet",
|
||||||
|
"width": 15,
|
||||||
|
"height": 5,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT_all": {
|
||||||
|
"layout": [
|
||||||
|
{"x":0, "y":0},
|
||||||
|
{"x":1, "y":0},
|
||||||
|
{"x":2, "y":0},
|
||||||
|
{"x":3, "y":0},
|
||||||
|
{"x":4, "y":0},
|
||||||
|
{"x":5, "y":0},
|
||||||
|
{"x":6, "y":0},
|
||||||
|
{"x":7, "y":0},
|
||||||
|
{"x":8, "y":0},
|
||||||
|
{"x":9, "y":0},
|
||||||
|
{"x":10, "y":0},
|
||||||
|
{"x":11, "y":0},
|
||||||
|
{"x":12, "y":0},
|
||||||
|
{"x":13, "y":0},
|
||||||
|
{"x":14, "y":0},
|
||||||
|
|
||||||
|
{"x":0, "y":1, "w":1.5},
|
||||||
|
{"x":1.5, "y":1},
|
||||||
|
{"x":2.5, "y":1},
|
||||||
|
{"x":3.5, "y":1},
|
||||||
|
{"x":4.5, "y":1},
|
||||||
|
{"x":5.5, "y":1},
|
||||||
|
{"x":6.5, "y":1},
|
||||||
|
{"x":7.5, "y":1},
|
||||||
|
{"x":8.5, "y":1},
|
||||||
|
{"x":9.5, "y":1},
|
||||||
|
{"x":10.5, "y":1},
|
||||||
|
{"x":11.5, "y":1},
|
||||||
|
{"x":12.5, "y":1},
|
||||||
|
{"x":13.5, "y":1, "w":1.5},
|
||||||
|
|
||||||
|
{"x":0, "y":2, "w":1.75},
|
||||||
|
{"x":1.75, "y":2},
|
||||||
|
{"x":2.75, "y":2},
|
||||||
|
{"x":3.75, "y":2},
|
||||||
|
{"x":4.75, "y":2},
|
||||||
|
{"x":5.75, "y":2},
|
||||||
|
{"x":6.75, "y":2},
|
||||||
|
{"x":7.75, "y":2},
|
||||||
|
{"x":8.75, "y":2},
|
||||||
|
{"x":9.75, "y":2},
|
||||||
|
{"x":10.75, "y":2},
|
||||||
|
{"x":11.75, "y":2},
|
||||||
|
{"x":12.75, "y":2},
|
||||||
|
{"x":13.75, "y":2, "w":1.25},
|
||||||
|
|
||||||
|
{"x":0, "y":3},
|
||||||
|
{"x":1, "y":3},
|
||||||
|
{"x":2, "y":3},
|
||||||
|
{"x":3, "y":3},
|
||||||
|
{"x":4, "y":3},
|
||||||
|
{"x":5, "y":3},
|
||||||
|
{"x":6, "y":3},
|
||||||
|
{"x":7, "y":3},
|
||||||
|
{"x":8, "y":3},
|
||||||
|
{"x":9, "y":3},
|
||||||
|
{"x":10, "y":3},
|
||||||
|
{"x":11, "y":3},
|
||||||
|
{"x":12, "y":3},
|
||||||
|
{"x":13, "y":3},
|
||||||
|
{"x":14, "y":3},
|
||||||
|
|
||||||
|
{"x":0, "y":4},
|
||||||
|
{"x":1, "y":4},
|
||||||
|
{"x":2, "y":4},
|
||||||
|
{"x":3, "y":4},
|
||||||
|
{"x":4, "y":4, "w":2.25},
|
||||||
|
{"x":6.25, "y":4, "w":1.5},
|
||||||
|
{"x":7.75, "y":4, "w":2.25},
|
||||||
|
{"x":10, "y":4},
|
||||||
|
{"x":11, "y":4},
|
||||||
|
{"x":12, "y":4},
|
||||||
|
{"x":13, "y":4},
|
||||||
|
{"x":14, "y":4}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "6-Ball",
|
||||||
|
"url": "",
|
||||||
|
"maintainer": "qmk",
|
||||||
|
"width": 3,
|
||||||
|
"height": 3,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT": {
|
||||||
|
"layout": [
|
||||||
|
{"x":0, "y":0.5},
|
||||||
|
{"x":1, "y":0},
|
||||||
|
{"x":2, "y":0.5},
|
||||||
|
|
||||||
|
{"x":0, "y":1.5},
|
||||||
|
{"x":1, "y":2},
|
||||||
|
{"x":2, "y":1.5}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,210 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "Framework",
|
||||||
|
"url": "",
|
||||||
|
"maintainer": "stevennguyen",
|
||||||
|
"width": 12,
|
||||||
|
"height": 5,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT_ortho_5x12": {
|
||||||
|
"layout": [
|
||||||
|
{"x": 0, "y": 0},
|
||||||
|
{"x": 1, "y": 0},
|
||||||
|
{"x": 2, "y": 0},
|
||||||
|
{"x": 3, "y": 0},
|
||||||
|
{"x": 4, "y": 0},
|
||||||
|
{"x": 5, "y": 0},
|
||||||
|
{"x": 6, "y": 0},
|
||||||
|
{"x": 7, "y": 0},
|
||||||
|
{"x": 8, "y": 0},
|
||||||
|
{"x": 9, "y": 0},
|
||||||
|
{"x": 10, "y": 0},
|
||||||
|
{"x": 11, "y": 0},
|
||||||
|
|
||||||
|
{"x": 0, "y": 1},
|
||||||
|
{"x": 1, "y": 1},
|
||||||
|
{"x": 2, "y": 1},
|
||||||
|
{"x": 3, "y": 1},
|
||||||
|
{"x": 4, "y": 1},
|
||||||
|
{"x": 5, "y": 1},
|
||||||
|
{"x": 6, "y": 1},
|
||||||
|
{"x": 7, "y": 1},
|
||||||
|
{"x": 8, "y": 1},
|
||||||
|
{"x": 9, "y": 1},
|
||||||
|
{"x": 10, "y": 1},
|
||||||
|
{"x": 11, "y": 1},
|
||||||
|
|
||||||
|
{"x": 0, "y": 2},
|
||||||
|
{"x": 1, "y": 2},
|
||||||
|
{"x": 2, "y": 2},
|
||||||
|
{"x": 3, "y": 2},
|
||||||
|
{"x": 4, "y": 2},
|
||||||
|
{"x": 5, "y": 2},
|
||||||
|
{"x": 6, "y": 2},
|
||||||
|
{"x": 7, "y": 2},
|
||||||
|
{"x": 8, "y": 2},
|
||||||
|
{"x": 9, "y": 2},
|
||||||
|
{"x": 10, "y": 2},
|
||||||
|
{"x": 11, "y": 2},
|
||||||
|
|
||||||
|
{"x": 0, "y": 3},
|
||||||
|
{"x": 1, "y": 3},
|
||||||
|
{"x": 2, "y": 3},
|
||||||
|
{"x": 3, "y": 3},
|
||||||
|
{"x": 4, "y": 3},
|
||||||
|
{"x": 5, "y": 3},
|
||||||
|
{"x": 6, "y": 3},
|
||||||
|
{"x": 7, "y": 3},
|
||||||
|
{"x": 8, "y": 3},
|
||||||
|
{"x": 9, "y": 3},
|
||||||
|
{"x": 10, "y": 3},
|
||||||
|
{"x": 11, "y": 3},
|
||||||
|
|
||||||
|
{"x": 0, "y": 4},
|
||||||
|
{"x": 1, "y": 4},
|
||||||
|
{"x": 2, "y": 4},
|
||||||
|
{"x": 3, "y": 4},
|
||||||
|
{"x": 4, "y": 4},
|
||||||
|
{"x": 5, "y": 4},
|
||||||
|
{"x": 6, "y": 4},
|
||||||
|
{"x": 7, "y": 4},
|
||||||
|
{"x": 8, "y": 4},
|
||||||
|
{"x": 9, "y": 4},
|
||||||
|
{"x": 10, "y": 4},
|
||||||
|
{"x": 11, "y": 4}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"LAYOUT_ortho_5x12_1x2uC": {
|
||||||
|
"layout": [
|
||||||
|
{"x": 0, "y": 0},
|
||||||
|
{"x": 1, "y": 0},
|
||||||
|
{"x": 2, "y": 0},
|
||||||
|
{"x": 3, "y": 0},
|
||||||
|
{"x": 4, "y": 0},
|
||||||
|
{"x": 5, "y": 0},
|
||||||
|
{"x": 6, "y": 0},
|
||||||
|
{"x": 7, "y": 0},
|
||||||
|
{"x": 8, "y": 0},
|
||||||
|
{"x": 9, "y": 0},
|
||||||
|
{"x": 10, "y": 0},
|
||||||
|
{"x": 11, "y": 0},
|
||||||
|
|
||||||
|
{"x": 0, "y": 1},
|
||||||
|
{"x": 1, "y": 1},
|
||||||
|
{"x": 2, "y": 1},
|
||||||
|
{"x": 3, "y": 1},
|
||||||
|
{"x": 4, "y": 1},
|
||||||
|
{"x": 5, "y": 1},
|
||||||
|
{"x": 6, "y": 1},
|
||||||
|
{"x": 7, "y": 1},
|
||||||
|
{"x": 8, "y": 1},
|
||||||
|
{"x": 9, "y": 1},
|
||||||
|
{"x": 10, "y": 1},
|
||||||
|
{"x": 11, "y": 1},
|
||||||
|
|
||||||
|
{"x": 0, "y": 2},
|
||||||
|
{"x": 1, "y": 2},
|
||||||
|
{"x": 2, "y": 2},
|
||||||
|
{"x": 3, "y": 2},
|
||||||
|
{"x": 4, "y": 2},
|
||||||
|
{"x": 5, "y": 2},
|
||||||
|
{"x": 6, "y": 2},
|
||||||
|
{"x": 7, "y": 2},
|
||||||
|
{"x": 8, "y": 2},
|
||||||
|
{"x": 9, "y": 2},
|
||||||
|
{"x": 10, "y": 2},
|
||||||
|
{"x": 11, "y": 2},
|
||||||
|
|
||||||
|
{"x": 0, "y": 3},
|
||||||
|
{"x": 1, "y": 3},
|
||||||
|
{"x": 2, "y": 3},
|
||||||
|
{"x": 3, "y": 3},
|
||||||
|
{"x": 4, "y": 3},
|
||||||
|
{"x": 5, "y": 3},
|
||||||
|
{"x": 6, "y": 3},
|
||||||
|
{"x": 7, "y": 3},
|
||||||
|
{"x": 8, "y": 3},
|
||||||
|
{"x": 9, "y": 3},
|
||||||
|
{"x": 10, "y": 3},
|
||||||
|
{"x": 11, "y": 3},
|
||||||
|
|
||||||
|
{"x": 0, "y": 4},
|
||||||
|
{"x": 1, "y": 4},
|
||||||
|
{"x": 2, "y": 4},
|
||||||
|
{"x": 3, "y": 4},
|
||||||
|
{"x": 4, "y": 4},
|
||||||
|
{"x": 5, "y": 4, "w": 2},
|
||||||
|
{"x": 7, "y": 4},
|
||||||
|
{"x": 8, "y": 4},
|
||||||
|
{"x": 9, "y": 4},
|
||||||
|
{"x": 10, "y": 4},
|
||||||
|
{"x": 11, "y": 4}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"LAYOUT_preonic_2x2u": {
|
||||||
|
"layout": [
|
||||||
|
{"x": 0, "y": 0},
|
||||||
|
{"x": 1, "y": 0},
|
||||||
|
{"x": 2, "y": 0},
|
||||||
|
{"x": 3, "y": 0},
|
||||||
|
{"x": 4, "y": 0},
|
||||||
|
{"x": 5, "y": 0},
|
||||||
|
{"x": 6, "y": 0},
|
||||||
|
{"x": 7, "y": 0},
|
||||||
|
{"x": 8, "y": 0},
|
||||||
|
{"x": 9, "y": 0},
|
||||||
|
{"x": 10, "y": 0},
|
||||||
|
{"x": 11, "y": 0},
|
||||||
|
|
||||||
|
{"x": 0, "y": 1},
|
||||||
|
{"x": 1, "y": 1},
|
||||||
|
{"x": 2, "y": 1},
|
||||||
|
{"x": 3, "y": 1},
|
||||||
|
{"x": 4, "y": 1},
|
||||||
|
{"x": 5, "y": 1},
|
||||||
|
{"x": 6, "y": 1},
|
||||||
|
{"x": 7, "y": 1},
|
||||||
|
{"x": 8, "y": 1},
|
||||||
|
{"x": 9, "y": 1},
|
||||||
|
{"x": 10, "y": 1},
|
||||||
|
{"x": 11, "y": 1},
|
||||||
|
|
||||||
|
{"x": 0, "y": 2},
|
||||||
|
{"x": 1, "y": 2},
|
||||||
|
{"x": 2, "y": 2},
|
||||||
|
{"x": 3, "y": 2},
|
||||||
|
{"x": 4, "y": 2},
|
||||||
|
{"x": 5, "y": 2},
|
||||||
|
{"x": 6, "y": 2},
|
||||||
|
{"x": 7, "y": 2},
|
||||||
|
{"x": 8, "y": 2},
|
||||||
|
{"x": 9, "y": 2},
|
||||||
|
{"x": 10, "y": 2},
|
||||||
|
{"x": 11, "y": 2},
|
||||||
|
|
||||||
|
{"x": 0, "y": 3},
|
||||||
|
{"x": 1, "y": 3},
|
||||||
|
{"x": 2, "y": 3},
|
||||||
|
{"x": 3, "y": 3},
|
||||||
|
{"x": 4, "y": 3},
|
||||||
|
{"x": 5, "y": 3},
|
||||||
|
{"x": 6, "y": 3},
|
||||||
|
{"x": 7, "y": 3},
|
||||||
|
{"x": 8, "y": 3},
|
||||||
|
{"x": 9, "y": 3},
|
||||||
|
{"x": 10, "y": 3},
|
||||||
|
{"x": 11, "y": 3},
|
||||||
|
|
||||||
|
{"x": 0, "y": 4},
|
||||||
|
{"x": 1, "y": 4},
|
||||||
|
{"x": 2, "y": 4},
|
||||||
|
{"x": 3, "y": 4},
|
||||||
|
{"x": 4, "y": 4, "w": 2},
|
||||||
|
{"x": 6, "y": 4, "w": 2},
|
||||||
|
{"x": 8, "y": 4},
|
||||||
|
{"x": 9, "y": 4},
|
||||||
|
{"x": 10, "y": 4},
|
||||||
|
{"x": 11, "y": 4}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1 +1,2 @@
|
|||||||
VIA_ENABLE = yes
|
VIA_ENABLE = yes
|
||||||
|
LEADER_ENABLE = no
|
||||||
@@ -0,0 +1,85 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "Constellation",
|
||||||
|
"url": "",
|
||||||
|
"maintainer": "Xelus22",
|
||||||
|
"width": 16,
|
||||||
|
"height": 5,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT_all": {
|
||||||
|
"layout": [
|
||||||
|
{"x":0, "y":0},
|
||||||
|
{"x":1, "y":0},
|
||||||
|
{"x":2, "y":0},
|
||||||
|
{"x":3, "y":0},
|
||||||
|
{"x":4, "y":0},
|
||||||
|
{"x":5, "y":0},
|
||||||
|
{"x":6, "y":0},
|
||||||
|
{"x":7, "y":0},
|
||||||
|
{"x":8, "y":0},
|
||||||
|
{"x":9, "y":0},
|
||||||
|
{"x":10, "y":0},
|
||||||
|
{"x":11, "y":0},
|
||||||
|
{"x":12, "y":0},
|
||||||
|
{"x":13, "y":0},
|
||||||
|
{"x":14, "y":0},
|
||||||
|
{"x":15, "y":0},
|
||||||
|
|
||||||
|
{"x":0, "y":1, "w":1.5},
|
||||||
|
{"x":1.5, "y":1},
|
||||||
|
{"x":2.5, "y":1},
|
||||||
|
{"x":3.5, "y":1},
|
||||||
|
{"x":4.5, "y":1},
|
||||||
|
{"x":5.5, "y":1},
|
||||||
|
{"x":6.5, "y":1},
|
||||||
|
{"x":7.5, "y":1},
|
||||||
|
{"x":8.5, "y":1},
|
||||||
|
{"x":9.5, "y":1},
|
||||||
|
{"x":10.5, "y":1},
|
||||||
|
{"x":11.5, "y":1},
|
||||||
|
{"x":12.5, "y":1},
|
||||||
|
{"x":13.5, "y":1, "w":1.5},
|
||||||
|
{"x":15, "y":1},
|
||||||
|
|
||||||
|
{"x":0, "y":2, "w":1.75},
|
||||||
|
{"x":1.75, "y":2},
|
||||||
|
{"x":2.75, "y":2},
|
||||||
|
{"x":3.75, "y":2},
|
||||||
|
{"x":4.75, "y":2},
|
||||||
|
{"x":5.75, "y":2},
|
||||||
|
{"x":6.75, "y":2},
|
||||||
|
{"x":7.75, "y":2},
|
||||||
|
{"x":8.75, "y":2},
|
||||||
|
{"x":9.75, "y":2},
|
||||||
|
{"x":10.75, "y":2},
|
||||||
|
{"label":"\"", "x":11.75, "y":2},
|
||||||
|
{"x":12.75, "y":2, "w":2.25},
|
||||||
|
{"x":15, "y":2},
|
||||||
|
|
||||||
|
{"x":0, "y":3, "w":2.25},
|
||||||
|
{"x":2.25, "y":3},
|
||||||
|
{"x":3.25, "y":3},
|
||||||
|
{"x":4.25, "y":3},
|
||||||
|
{"x":5.25, "y":3},
|
||||||
|
{"x":6.25, "y":3},
|
||||||
|
{"x":7.25, "y":3},
|
||||||
|
{"x":8.25, "y":3},
|
||||||
|
{"x":9.25, "y":3},
|
||||||
|
{"x":10.25, "y":3},
|
||||||
|
{"x":11.25, "y":3},
|
||||||
|
{"x":12.25, "y":3, "w":1.75},
|
||||||
|
{"x":14, "y":3},
|
||||||
|
{"x":15, "y":3},
|
||||||
|
|
||||||
|
{"x":0, "y":4, "w":1.25},
|
||||||
|
{"x":1.25, "y":4, "w":1.25},
|
||||||
|
{"x":2.5, "y":4, "w":1.25},
|
||||||
|
{"x":3.75, "y":4, "w":6.25},
|
||||||
|
{"x":10, "y":4, "w":1.5},
|
||||||
|
{"x":11.5, "y":4, "w":1.5},
|
||||||
|
{"x":13, "y":4},
|
||||||
|
{"x":14, "y":4},
|
||||||
|
{"x":15, "y":4}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,87 @@
|
|||||||
|
/* Copyright 2021 eithanshavit
|
||||||
|
*
|
||||||
|
* 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
|
||||||
|
|
||||||
|
enum layer_names {
|
||||||
|
_MAIN,
|
||||||
|
_LOWER,
|
||||||
|
_RAISE,
|
||||||
|
};
|
||||||
|
|
||||||
|
#define LOWER MO(_LOWER)
|
||||||
|
#define RAISE MO(_RAISE)
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
[_MAIN] = LAYOUT(
|
||||||
|
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐┌────────┬────────┬────────┐
|
||||||
|
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_MINS, KC_EQL, 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_DEL, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||||
|
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
|
||||||
|
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_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_LEFT, KC_DOWN, KC_RIGHT,
|
||||||
|
//└────────┴────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┴────────┴────────┴────────┘└────────┴────────┴────────┘
|
||||||
|
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_ENT, RAISE, LOWER, XXXXXXX
|
||||||
|
// └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘
|
||||||
|
),
|
||||||
|
|
||||||
|
[_LOWER] = LAYOUT(
|
||||||
|
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐┌────────┬────────┬────────┐
|
||||||
|
RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU,
|
||||||
|
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
//└────────┴────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┴────────┴────────┴────────┘└────────┴────────┴────────┘
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
// └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘
|
||||||
|
),
|
||||||
|
|
||||||
|
[_RAISE] = LAYOUT(
|
||||||
|
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐┌────────┬────────┬────────┐
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, KC_PEQL, KC_PSLS, KC_PAST, KC_PMNS, _______, _______, _______, _______,
|
||||||
|
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_PPLS, _______, _______, _______, _______,
|
||||||
|
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, _______, _______, _______,
|
||||||
|
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, _______, _______, _______, _______,
|
||||||
|
//└────────┴────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┴────────┴────────┴────────┘└────────┴────────┴────────┘
|
||||||
|
_______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT
|
||||||
|
// └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘
|
||||||
|
),
|
||||||
|
|
||||||
|
[3] = LAYOUT(
|
||||||
|
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐┌────────┬────────┬────────┐
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
//└────────┴────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┴────────┴────────┴────────┘└────────┴────────┴────────┘
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
// └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
};
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
# Default Breeze Layout + VIA support
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
This is the default suggested layout for Breeze Split Keyboard, with VIA support.
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
VIA_ENABLE = yes
|
||||||
|
# LTO: link time optimization makes the build take slightly longer
|
||||||
|
# but makes the resulting .hex file smaller, which allows you to
|
||||||
|
# fit more features into smaller MCUs:
|
||||||
|
LTO_ENABLE = yes
|
||||||
|
# Support for these features make the hex file larger, but we want 'em:
|
||||||
|
MOUSEKEY_ENABLE = yes # Allow mapping of mouse control keys
|
||||||
|
EXTRAKEY_ENABLE = yes # Allow audio & system control keys
|
||||||
|
COMMAND_ENABLE = yes # Commands for debug and configuration
|
||||||
|
NKRO_ENABLE = yes # Support USB N-key roll over.
|
||||||
@@ -0,0 +1,75 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2021 Spencer Deven <[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 3 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 0xF901
|
||||||
|
#define PRODUCT_ID 0xF902
|
||||||
|
#define DEVICE_VER 0x0001
|
||||||
|
#define MANUFACTURER Aleblazer
|
||||||
|
#define PRODUCT Zodiark
|
||||||
|
|
||||||
|
#define NO_ACTION_MACRO
|
||||||
|
|
||||||
|
#define SOFT_SERIAL_PIN D3
|
||||||
|
#define SERIAL_USE_MULTI_TRANSACTION
|
||||||
|
#define SELECT_SOFT_SERIAL_SPEED 1
|
||||||
|
|
||||||
|
/* key matrix size */
|
||||||
|
#define MATRIX_ROWS 10
|
||||||
|
#define MATRIX_COLS 7
|
||||||
|
#define DIODE_DIRECTION COL2ROW
|
||||||
|
|
||||||
|
#define ENCODERS_PAD_A { D2 }
|
||||||
|
#define ENCODERS_PAD_B { D4 }
|
||||||
|
#define ENCODERS_PAD_A_RIGHT { D4 }
|
||||||
|
#define ENCODERS_PAD_B_RIGHT { D2 }
|
||||||
|
#define ENCODER_RESOLUTION 3
|
||||||
|
|
||||||
|
/* key matrix pins */
|
||||||
|
#define MATRIX_ROW_PINS { C6, D7, E6, B4, F4 }
|
||||||
|
#define MATRIX_COL_PINS { F5, F6, F7, B1, B3, B2, B6 }
|
||||||
|
|
||||||
|
/* Set 0 if debouncing isn't needed */
|
||||||
|
#define DEBOUNCE 5
|
||||||
|
|
||||||
|
#define RGB_DI_PIN B5
|
||||||
|
|
||||||
|
#ifdef RGBLIGHT_ENABLE
|
||||||
|
#define RGBLED_NUM 68
|
||||||
|
#define RGBLIGHT_SPLIT
|
||||||
|
#define RGBLED_SPLIT { 34, 34 }
|
||||||
|
#define RGBLIGHT_LIMIT_VAL 170
|
||||||
|
#define RGBLIGHT_ANIMATIONS
|
||||||
|
#define RGBLIGHT_HUE_STEP 8
|
||||||
|
#define RGBLIGHT_SAT_STEP 8
|
||||||
|
#define RGBLIGHT_VAL_STEP 8
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef RGB_MATRIX_ENABLE
|
||||||
|
#define DRIVER_LED_TOTAL 68
|
||||||
|
#define RGB_MATRIX_SPLIT { 34, 34 }
|
||||||
|
#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash.
|
||||||
|
#define RGB_MATRIX_KEYPRESSES
|
||||||
|
#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
|
||||||
|
#define RGB_MATRIX_HUE_STEP 8
|
||||||
|
#define RGB_MATRIX_SAT_STEP 8
|
||||||
|
#define RGB_MATRIX_VAL_STEP 8
|
||||||
|
#define RGB_MATRIX_SPD_STEP 10
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "zodiark",
|
||||||
|
"url": "https://github.com/Aleblazer/qmk_firmware/tree/master/keyboards/zodiark",
|
||||||
|
"maintainer": "Aleblazer",
|
||||||
|
"width": 19,
|
||||||
|
"height": 8.48,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT": {
|
||||||
|
"layout": [{"label":"L03", "x":3, "y":0}, {"label":"R03", "x":15, "y":0}, {"label":"L02", "x":2, "y":0.125}, {"label":"L04", "x":4, "y":0.125}, {"label":"R02", "x":14, "y":0.125}, {"label":"R04", "x":16, "y":0.125}, {"label":"L05", "x":5, "y":0.25}, {"label":"R01", "x":13, "y":0.25}, {"label":"L00", "x":0, "y":0.53}, {"label":"L01", "x":1, "y":0.53}, {"label":"R05", "x":17, "y":0.53}, {"label":"R06", "x":18, "y":0.53}, {"label":"L13", "x":3, "y":1}, {"label":"R13", "x":15, "y":1}, {"label":"L12", "x":2, "y":1.125}, {"label":"L14", "x":4, "y":1.125}, {"label":"R12", "x":14, "y":1.125}, {"label":"R14", "x":16, "y":1.125}, {"label":"L15", "x":5, "y":1.25}, {"label":"R11", "x":13, "y":1.25}, {"label":"L10", "x":0, "y":1.53}, {"label":"L11", "x":1, "y":1.53}, {"label":"R15", "x":17, "y":1.53}, {"label":"R16", "x":18, "y":1.53}, {"label":"L06", "x":6, "y":1.7000000000000002}, {"label":"R00", "x":12, "y":1.7000000000000002}, {"label":"L23", "x":3, "y":2.0}, {"label":"R23", "x":15, "y":2.0}, {"label":"L22", "x":2, "y":2.125}, {"label":"L24", "x":4, "y":2.125}, {"label":"R22", "x":14, "y":2.125}, {"label":"R24", "x":16, "y":2.125}, {"label":"L25", "x":5, "y":2.25}, {"label":"R21", "x":13, "y":2.25}, {"label":"L20", "x":0, "y":2.5300000000000002}, {"label":"L21", "x":1, "y":2.5300000000000002}, {"label":"R25", "x":17, "y":2.5300000000000002}, {"label":"R26", "x":18, "y":2.5300000000000002}, {"label":"L16", "x":6, "y":2.7}, {"label":"R10", "x":12, "y":2.7}, {"label":"L33", "x":3, "y":3.0000000000000004}, {"label":"R33", "x":15, "y":3.0000000000000004}, {"label":"L32", "x":2, "y":3.1250000000000004}, {"label":"L34", "x":4, "y":3.1250000000000004}, {"label":"R32", "x":14, "y":3.1250000000000004}, {"label":"R34", "x":16, "y":3.1250000000000004}, {"label":"L35", "x":5, "y":3.2500000000000004}, {"label":"R31", "x":13, "y":3.2500000000000004}, {"label":"L30", "x":0, "y":3.5300000000000002}, {"label":"L31", "x":1, "y":3.5300000000000002}, {"label":"R35", "x":17, "y":3.5300000000000002}, {"label":"R36", "x":18, "y":3.5300000000000002}, {"label":"L43", "x":3, "y":4.0}, {"label":"R43", "x":15, "y":4.0}, {"label":"L42", "x":2, "y":4.125}, {"label":"R44", "x":16, "y":4.125}, {"label":"L44", "x":4, "y":4.13}, {"label":"R42", "x":14, "y":4.13}, {"label":"L40", "x":0, "y":4.53}, {"label":"L41", "x":1, "y":4.53}, {"label":"R45", "x":17, "y":4.53}, {"label":"R46", "x":18, "y":4.53}, {"label":"L26", "x":-0.33, "y":5.13}, {"label":"L36", "x":0.6699999999999999, "y":5.13}, {"label":"L45", "x":-0.83, "y":6.13, "w":1.5}, {"label":"L46", "x":0.67, "y":6.13}, {"label":"R30", "x":-2.1, "y":6.48}, {"label":"R20", "x":-1.1, "y":6.48}, {"label":"R40", "x":-2.1, "y":7.48}, {"label":"R41", "x":-1.1, "y":7.48, "w":1.5}]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2021 Spencer Deven <[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 3 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
|
||||||
|
|
||||||
|
#ifdef OLED_DRIVER_ENABLE
|
||||||
|
#define OLED_DISPLAY_128X64
|
||||||
|
#define OLED_TIMEOUT 400000
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,327 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2021 Spencer Deven <[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 3 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
|
||||||
|
|
||||||
|
enum sofle_layers {
|
||||||
|
/* _M_XYZ = Mac Os, _W_XYZ = Win/Linux */
|
||||||
|
_QWERTY,
|
||||||
|
_COLEMAK,
|
||||||
|
_LOWER,
|
||||||
|
_RAISE,
|
||||||
|
_ADJUST,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum custom_keycodes {
|
||||||
|
KC_QWERTY = SAFE_RANGE,
|
||||||
|
KC_COLEMAK,
|
||||||
|
KC_LOWER,
|
||||||
|
KC_RAISE,
|
||||||
|
KC_ADJUST,
|
||||||
|
KC_PRVWD,
|
||||||
|
KC_NXTWD,
|
||||||
|
KC_LSTRT,
|
||||||
|
KC_LEND,
|
||||||
|
KC_DLINE
|
||||||
|
};
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
[_QWERTY] = LAYOUT(
|
||||||
|
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
|
||||||
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
|
||||||
|
KC_ADJUST, KC_A, KC_S, KC_D, KC_F, KC_G, KC_MINS, KC_EQL, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
|
||||||
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_GRV, KC_MUTE, RGB_TOG, KC_DEL,KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT ,
|
||||||
|
KC_LCTL, KC_LALT, KC_LGUI, LALT(KC_TAB), KC_LOWER, KC_SPC, KC_ENT, KC_ENT, KC_SPC, KC_RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
|
||||||
|
),
|
||||||
|
|
||||||
|
[_LOWER] = LAYOUT(
|
||||||
|
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
|
||||||
|
KC_PSLS, KC_P7, KC_P8, KC_P9, KC_NLCK, _______, _______, _______, _______, KC_PSLS, KC_P7, KC_P8, KC_P9, KC_F12,
|
||||||
|
KC_CAPS, KC_P4, KC_P5, KC_P6, KC_NLCK, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_NLCK,
|
||||||
|
_______, KC_P1, KC_P2, KC_P3, _______, _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______,
|
||||||
|
_______, KC_P0, KC_PDOT, KC_PENT, _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_PENT, _______
|
||||||
|
),
|
||||||
|
|
||||||
|
[_RAISE] = LAYOUT(
|
||||||
|
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
|
||||||
|
KC_PSLS, KC_P7, KC_P8, KC_P9, KC_NLCK, _______, _______, _______, _______, KC_PSLS, KC_P7, KC_P8, KC_P9, KC_F12,
|
||||||
|
KC_CAPS, KC_P4, KC_P5, KC_P6, KC_NLCK, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_NLCK,
|
||||||
|
_______, KC_P1, KC_P2, KC_P3, _______, _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______,
|
||||||
|
_______, KC_P0, KC_PDOT, KC_PENT, _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_PENT, _______
|
||||||
|
),
|
||||||
|
|
||||||
|
[_ADJUST] = LAYOUT(
|
||||||
|
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, EEP_RST, _______, _______, _______, KC_F12,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, RGB_SPI, RGB_HUI, RGB_SAI, RGB_VAI,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_SPD, RGB_HUD, RGB_SAD, RGB_VAD
|
||||||
|
)
|
||||||
|
|
||||||
|
};
|
||||||
|
#ifdef OLED_DRIVER_ENABLE
|
||||||
|
|
||||||
|
static void render_logo(void) {
|
||||||
|
static const char PROGMEM qmk_logo[] = {
|
||||||
|
0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,
|
||||||
|
0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4,
|
||||||
|
0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0
|
||||||
|
};
|
||||||
|
|
||||||
|
oled_write_P(qmk_logo, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void print_status_narrow(void) {
|
||||||
|
// Print current mode
|
||||||
|
oled_write_P(PSTR("\n\n"), false);
|
||||||
|
oled_write_ln_P(PSTR("MODE"), false);
|
||||||
|
oled_write_ln_P(PSTR(""), false);
|
||||||
|
if (keymap_config.swap_lctl_lgui) {
|
||||||
|
oled_write_ln_P(PSTR("MAC"), false);
|
||||||
|
} else {
|
||||||
|
oled_write_ln_P(PSTR("WIN"), false);
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (get_highest_layer(default_layer_state)) {
|
||||||
|
case _QWERTY:
|
||||||
|
oled_write_ln_P(PSTR("Qwrt"), false);
|
||||||
|
break;
|
||||||
|
case _COLEMAK:
|
||||||
|
oled_write_ln_P(PSTR("Clmk"), false);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
oled_write_P(PSTR("Undef"), false);
|
||||||
|
}
|
||||||
|
oled_write_P(PSTR("\n\n"), false);
|
||||||
|
// Print current layer
|
||||||
|
oled_write_ln_P(PSTR("LAYER"), false);
|
||||||
|
switch (get_highest_layer(layer_state)) {
|
||||||
|
case _COLEMAK:
|
||||||
|
case _QWERTY:
|
||||||
|
oled_write_P(PSTR("Base\n"), false);
|
||||||
|
break;
|
||||||
|
case _RAISE:
|
||||||
|
oled_write_P(PSTR("Raise"), false);
|
||||||
|
break;
|
||||||
|
case _LOWER:
|
||||||
|
oled_write_P(PSTR("Lower"), false);
|
||||||
|
break;
|
||||||
|
case _ADJUST:
|
||||||
|
oled_write_P(PSTR("Adj\n"), false);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
oled_write_ln_P(PSTR("Undef"), false);
|
||||||
|
}
|
||||||
|
oled_write_P(PSTR("\n\n"), false);
|
||||||
|
led_t led_usb_state = host_keyboard_led_state();
|
||||||
|
oled_write_ln_P(PSTR("CPSLK"), led_usb_state.caps_lock);
|
||||||
|
}
|
||||||
|
|
||||||
|
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
|
||||||
|
if (is_keyboard_master()) {
|
||||||
|
return OLED_ROTATION_90;
|
||||||
|
}
|
||||||
|
return rotation;
|
||||||
|
}
|
||||||
|
|
||||||
|
void oled_task_user(void) {
|
||||||
|
if (is_keyboard_master()) {
|
||||||
|
print_status_narrow();
|
||||||
|
} else {
|
||||||
|
render_logo();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||||
|
switch (keycode) {
|
||||||
|
case KC_QWERTY:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
set_single_persistent_default_layer(_QWERTY);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
case KC_COLEMAK:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
set_single_persistent_default_layer(_COLEMAK);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
case KC_LOWER:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
layer_on(_LOWER);
|
||||||
|
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||||
|
} else {
|
||||||
|
layer_off(_LOWER);
|
||||||
|
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
case KC_RAISE:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
layer_on(_RAISE);
|
||||||
|
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||||
|
} else {
|
||||||
|
layer_off(_RAISE);
|
||||||
|
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
case KC_ADJUST:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
layer_on(_ADJUST);
|
||||||
|
} else {
|
||||||
|
layer_off(_ADJUST);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
case KC_PRVWD:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
if (keymap_config.swap_lctl_lgui) {
|
||||||
|
register_mods(mod_config(MOD_LALT));
|
||||||
|
register_code(KC_LEFT);
|
||||||
|
} else {
|
||||||
|
register_mods(mod_config(MOD_LCTL));
|
||||||
|
register_code(KC_LEFT);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (keymap_config.swap_lctl_lgui) {
|
||||||
|
unregister_mods(mod_config(MOD_LALT));
|
||||||
|
unregister_code(KC_LEFT);
|
||||||
|
} else {
|
||||||
|
unregister_mods(mod_config(MOD_LCTL));
|
||||||
|
unregister_code(KC_LEFT);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case KC_NXTWD:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
if (keymap_config.swap_lctl_lgui) {
|
||||||
|
register_mods(mod_config(MOD_LALT));
|
||||||
|
register_code(KC_RIGHT);
|
||||||
|
} else {
|
||||||
|
register_mods(mod_config(MOD_LCTL));
|
||||||
|
register_code(KC_RIGHT);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (keymap_config.swap_lctl_lgui) {
|
||||||
|
unregister_mods(mod_config(MOD_LALT));
|
||||||
|
unregister_code(KC_RIGHT);
|
||||||
|
} else {
|
||||||
|
unregister_mods(mod_config(MOD_LCTL));
|
||||||
|
unregister_code(KC_RIGHT);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case KC_LSTRT:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
if (keymap_config.swap_lctl_lgui) {
|
||||||
|
//CMD-arrow on Mac, but we have CTL and GUI swapped
|
||||||
|
register_mods(mod_config(MOD_LCTL));
|
||||||
|
register_code(KC_LEFT);
|
||||||
|
} else {
|
||||||
|
register_code(KC_HOME);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (keymap_config.swap_lctl_lgui) {
|
||||||
|
unregister_mods(mod_config(MOD_LCTL));
|
||||||
|
unregister_code(KC_LEFT);
|
||||||
|
} else {
|
||||||
|
unregister_code(KC_HOME);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case KC_LEND:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
if (keymap_config.swap_lctl_lgui) {
|
||||||
|
//CMD-arrow on Mac, but we have CTL and GUI swapped
|
||||||
|
register_mods(mod_config(MOD_LCTL));
|
||||||
|
register_code(KC_RIGHT);
|
||||||
|
} else {
|
||||||
|
register_code(KC_END);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (keymap_config.swap_lctl_lgui) {
|
||||||
|
unregister_mods(mod_config(MOD_LCTL));
|
||||||
|
unregister_code(KC_RIGHT);
|
||||||
|
} else {
|
||||||
|
unregister_code(KC_END);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case KC_DLINE:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
register_mods(mod_config(MOD_LCTL));
|
||||||
|
register_code(KC_BSPC);
|
||||||
|
} else {
|
||||||
|
unregister_mods(mod_config(MOD_LCTL));
|
||||||
|
unregister_code(KC_BSPC);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case KC_COPY:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
register_mods(mod_config(MOD_LCTL));
|
||||||
|
register_code(KC_C);
|
||||||
|
} else {
|
||||||
|
unregister_mods(mod_config(MOD_LCTL));
|
||||||
|
unregister_code(KC_C);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
case KC_PASTE:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
register_mods(mod_config(MOD_LCTL));
|
||||||
|
register_code(KC_V);
|
||||||
|
} else {
|
||||||
|
unregister_mods(mod_config(MOD_LCTL));
|
||||||
|
unregister_code(KC_V);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
case KC_CUT:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
register_mods(mod_config(MOD_LCTL));
|
||||||
|
register_code(KC_X);
|
||||||
|
} else {
|
||||||
|
unregister_mods(mod_config(MOD_LCTL));
|
||||||
|
unregister_code(KC_X);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
break;
|
||||||
|
case KC_UNDO:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
register_mods(mod_config(MOD_LCTL));
|
||||||
|
register_code(KC_Z);
|
||||||
|
} else {
|
||||||
|
unregister_mods(mod_config(MOD_LCTL));
|
||||||
|
unregister_code(KC_Z);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef ENCODER_ENABLE
|
||||||
|
|
||||||
|
void encoder_update_user(uint8_t index, bool clockwise) {
|
||||||
|
if (index == 0) {
|
||||||
|
if (clockwise) {
|
||||||
|
tap_code(KC_VOLU);
|
||||||
|
} else {
|
||||||
|
tap_code(KC_VOLD);
|
||||||
|
}
|
||||||
|
} else if (index == 1) {
|
||||||
|
if (clockwise) {
|
||||||
|
rgblight_step();
|
||||||
|
} else {
|
||||||
|
rgblight_step_reverse();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
RGBLIGHT_ENABLE = yes
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2021 Spencer Deven <[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 3 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
|
||||||
|
|
||||||
|
#ifdef OLED_DRIVER_ENABLE
|
||||||
|
#define OLED_DISPLAY_128X32
|
||||||
|
#define OLED_TIMEOUT 400000
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,330 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2021 Spencer Deven <[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 3 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
|
||||||
|
|
||||||
|
enum sofle_layers {
|
||||||
|
/* _M_XYZ = Mac Os, _W_XYZ = Win/Linux */
|
||||||
|
_QWERTY,
|
||||||
|
_COLEMAK,
|
||||||
|
_LOWER,
|
||||||
|
_RAISE,
|
||||||
|
_ADJUST,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum custom_keycodes {
|
||||||
|
KC_QWERTY = SAFE_RANGE,
|
||||||
|
KC_COLEMAK,
|
||||||
|
KC_LOWER,
|
||||||
|
KC_RAISE,
|
||||||
|
KC_ADJUST,
|
||||||
|
KC_PRVWD,
|
||||||
|
KC_NXTWD,
|
||||||
|
KC_LSTRT,
|
||||||
|
KC_LEND,
|
||||||
|
KC_DLINE
|
||||||
|
};
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
[_QWERTY] = LAYOUT(
|
||||||
|
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
|
||||||
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
|
||||||
|
KC_ADJUST, KC_A, KC_S, KC_D, KC_F, KC_G, KC_MINS, KC_EQL, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
|
||||||
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_GRV, KC_MUTE, RGB_TOG, KC_DEL,KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT ,
|
||||||
|
KC_LCTL, KC_LALT, KC_LGUI, LALT(KC_TAB), KC_LOWER, KC_SPC, KC_ENT, KC_ENT, KC_SPC, KC_RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
|
||||||
|
),
|
||||||
|
|
||||||
|
[_LOWER] = LAYOUT(
|
||||||
|
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
|
||||||
|
KC_PSLS, KC_P7, KC_P8, KC_P9, KC_NLCK, _______, _______, _______, _______, KC_PSLS, KC_P7, KC_P8, KC_P9, KC_F12,
|
||||||
|
KC_CAPS, KC_P4, KC_P5, KC_P6, KC_NLCK, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_NLCK,
|
||||||
|
_______, KC_P1, KC_P2, KC_P3, _______, _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______,
|
||||||
|
_______, KC_P0, KC_PDOT, KC_PENT, _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_PENT, _______
|
||||||
|
),
|
||||||
|
|
||||||
|
[_RAISE] = LAYOUT(
|
||||||
|
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
|
||||||
|
KC_PSLS, KC_P7, KC_P8, KC_P9, KC_NLCK, _______, _______, _______, _______, KC_PSLS, KC_P7, KC_P8, KC_P9, KC_F12,
|
||||||
|
KC_CAPS, KC_P4, KC_P5, KC_P6, KC_NLCK, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_NLCK,
|
||||||
|
_______, KC_P1, KC_P2, KC_P3, _______, _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______,
|
||||||
|
_______, KC_P0, KC_PDOT, KC_PENT, _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_PENT, _______
|
||||||
|
),
|
||||||
|
|
||||||
|
[_ADJUST] = LAYOUT(
|
||||||
|
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, EEP_RST, _______, _______, _______, KC_F12,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, RGB_SPI, RGB_HUI, RGB_SAI, RGB_VAI,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_SPD, RGB_HUD, RGB_SAD, RGB_VAD
|
||||||
|
)
|
||||||
|
|
||||||
|
};
|
||||||
|
#ifdef OLED_DRIVER_ENABLE
|
||||||
|
|
||||||
|
static void render_logo(void) {
|
||||||
|
static const char PROGMEM qmk_logo[] = {
|
||||||
|
0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,
|
||||||
|
0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4,
|
||||||
|
0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0
|
||||||
|
};
|
||||||
|
|
||||||
|
oled_write_P(qmk_logo, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void print_status_narrow(void) {
|
||||||
|
// Print current mode
|
||||||
|
oled_write_P(PSTR("\n\n"), false);
|
||||||
|
oled_write_ln_P(PSTR("MODE"), false);
|
||||||
|
oled_write_ln_P(PSTR(""), false);
|
||||||
|
if (keymap_config.swap_lctl_lgui) {
|
||||||
|
oled_write_ln_P(PSTR("MAC"), false);
|
||||||
|
} else {
|
||||||
|
oled_write_ln_P(PSTR("WIN"), false);
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (get_highest_layer(default_layer_state)) {
|
||||||
|
case _QWERTY:
|
||||||
|
oled_write_ln_P(PSTR("Qwrt"), false);
|
||||||
|
break;
|
||||||
|
case _COLEMAK:
|
||||||
|
oled_write_ln_P(PSTR("Clmk"), false);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
oled_write_P(PSTR("Undef"), false);
|
||||||
|
}
|
||||||
|
oled_write_P(PSTR("\n\n"), false);
|
||||||
|
// Print current layer
|
||||||
|
oled_write_ln_P(PSTR("LAYER"), false);
|
||||||
|
switch (get_highest_layer(layer_state)) {
|
||||||
|
case _COLEMAK:
|
||||||
|
case _QWERTY:
|
||||||
|
oled_write_P(PSTR("Base\n"), false);
|
||||||
|
break;
|
||||||
|
case _RAISE:
|
||||||
|
oled_write_P(PSTR("Raise"), false);
|
||||||
|
break;
|
||||||
|
case _LOWER:
|
||||||
|
oled_write_P(PSTR("Lower"), false);
|
||||||
|
break;
|
||||||
|
case _ADJUST:
|
||||||
|
oled_write_P(PSTR("Adj\n"), false);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
oled_write_ln_P(PSTR("Undef"), false);
|
||||||
|
}
|
||||||
|
oled_write_P(PSTR("\n\n"), false);
|
||||||
|
led_t led_usb_state = host_keyboard_led_state();
|
||||||
|
oled_write_ln_P(PSTR("CPSLK"), led_usb_state.caps_lock);
|
||||||
|
}
|
||||||
|
|
||||||
|
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
|
||||||
|
if (is_keyboard_master()) {
|
||||||
|
return OLED_ROTATION_90;
|
||||||
|
}
|
||||||
|
return rotation;
|
||||||
|
}
|
||||||
|
|
||||||
|
void oled_task_user(void) {
|
||||||
|
if (is_keyboard_master()) {
|
||||||
|
print_status_narrow();
|
||||||
|
} else {
|
||||||
|
render_logo();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||||
|
switch (keycode) {
|
||||||
|
case KC_QWERTY:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
set_single_persistent_default_layer(_QWERTY);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
case KC_COLEMAK:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
set_single_persistent_default_layer(_COLEMAK);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
case KC_LOWER:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
layer_on(_LOWER);
|
||||||
|
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||||
|
} else {
|
||||||
|
layer_off(_LOWER);
|
||||||
|
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
case KC_RAISE:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
layer_on(_RAISE);
|
||||||
|
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||||
|
} else {
|
||||||
|
layer_off(_RAISE);
|
||||||
|
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
case KC_ADJUST:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
layer_on(_ADJUST);
|
||||||
|
} else {
|
||||||
|
layer_off(_ADJUST);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
case KC_PRVWD:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
if (keymap_config.swap_lctl_lgui) {
|
||||||
|
register_mods(mod_config(MOD_LALT));
|
||||||
|
register_code(KC_LEFT);
|
||||||
|
} else {
|
||||||
|
register_mods(mod_config(MOD_LCTL));
|
||||||
|
register_code(KC_LEFT);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (keymap_config.swap_lctl_lgui) {
|
||||||
|
unregister_mods(mod_config(MOD_LALT));
|
||||||
|
unregister_code(KC_LEFT);
|
||||||
|
} else {
|
||||||
|
unregister_mods(mod_config(MOD_LCTL));
|
||||||
|
unregister_code(KC_LEFT);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case KC_NXTWD:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
if (keymap_config.swap_lctl_lgui) {
|
||||||
|
register_mods(mod_config(MOD_LALT));
|
||||||
|
register_code(KC_RIGHT);
|
||||||
|
} else {
|
||||||
|
register_mods(mod_config(MOD_LCTL));
|
||||||
|
register_code(KC_RIGHT);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (keymap_config.swap_lctl_lgui) {
|
||||||
|
unregister_mods(mod_config(MOD_LALT));
|
||||||
|
unregister_code(KC_RIGHT);
|
||||||
|
} else {
|
||||||
|
unregister_mods(mod_config(MOD_LCTL));
|
||||||
|
unregister_code(KC_RIGHT);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case KC_LSTRT:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
if (keymap_config.swap_lctl_lgui) {
|
||||||
|
//CMD-arrow on Mac, but we have CTL and GUI swapped
|
||||||
|
register_mods(mod_config(MOD_LCTL));
|
||||||
|
register_code(KC_LEFT);
|
||||||
|
} else {
|
||||||
|
register_code(KC_HOME);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (keymap_config.swap_lctl_lgui) {
|
||||||
|
unregister_mods(mod_config(MOD_LCTL));
|
||||||
|
unregister_code(KC_LEFT);
|
||||||
|
} else {
|
||||||
|
unregister_code(KC_HOME);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case KC_LEND:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
if (keymap_config.swap_lctl_lgui) {
|
||||||
|
//CMD-arrow on Mac, but we have CTL and GUI swapped
|
||||||
|
register_mods(mod_config(MOD_LCTL));
|
||||||
|
register_code(KC_RIGHT);
|
||||||
|
} else {
|
||||||
|
register_code(KC_END);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (keymap_config.swap_lctl_lgui) {
|
||||||
|
unregister_mods(mod_config(MOD_LCTL));
|
||||||
|
unregister_code(KC_RIGHT);
|
||||||
|
} else {
|
||||||
|
unregister_code(KC_END);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case KC_DLINE:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
register_mods(mod_config(MOD_LCTL));
|
||||||
|
register_code(KC_BSPC);
|
||||||
|
} else {
|
||||||
|
unregister_mods(mod_config(MOD_LCTL));
|
||||||
|
unregister_code(KC_BSPC);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case KC_COPY:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
register_mods(mod_config(MOD_LCTL));
|
||||||
|
register_code(KC_C);
|
||||||
|
} else {
|
||||||
|
unregister_mods(mod_config(MOD_LCTL));
|
||||||
|
unregister_code(KC_C);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
case KC_PASTE:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
register_mods(mod_config(MOD_LCTL));
|
||||||
|
register_code(KC_V);
|
||||||
|
} else {
|
||||||
|
unregister_mods(mod_config(MOD_LCTL));
|
||||||
|
unregister_code(KC_V);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
case KC_CUT:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
register_mods(mod_config(MOD_LCTL));
|
||||||
|
register_code(KC_X);
|
||||||
|
} else {
|
||||||
|
unregister_mods(mod_config(MOD_LCTL));
|
||||||
|
unregister_code(KC_X);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
break;
|
||||||
|
case KC_UNDO:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
register_mods(mod_config(MOD_LCTL));
|
||||||
|
register_code(KC_Z);
|
||||||
|
} else {
|
||||||
|
unregister_mods(mod_config(MOD_LCTL));
|
||||||
|
unregister_code(KC_Z);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef ENCODER_ENABLE
|
||||||
|
|
||||||
|
void encoder_update_user(uint8_t index, bool clockwise) {
|
||||||
|
if (index == 0) {
|
||||||
|
if (clockwise) {
|
||||||
|
tap_code(KC_VOLU);
|
||||||
|
} else {
|
||||||
|
tap_code(KC_VOLD);
|
||||||
|
}
|
||||||
|
} else if (index == 1) {
|
||||||
|
if (clockwise) {
|
||||||
|
rgblight_step();
|
||||||
|
} else {
|
||||||
|
rgblight_step_reverse();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
RGBLIGHT_ENABLE = yes
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2021 Spencer Deven <[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 3 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
|
||||||
|
|
||||||
|
#ifdef OLED_DRIVER_ENABLE
|
||||||
|
#define OLED_DISPLAY_128X64
|
||||||
|
#define OLED_TIMEOUT 400000
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2021 Spencer Deven <[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 3 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/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
//Setting up what encoder rotation does. If your encoder can be pressed as a button, that function can be set in Via.
|
||||||
|
|
||||||
|
#ifdef ENCODER_ENABLE
|
||||||
|
|
||||||
|
void encoder_update_user(uint8_t index, bool clockwise) {
|
||||||
|
if (index == 0) {
|
||||||
|
if (clockwise) {
|
||||||
|
tap_code(KC_VOLU);
|
||||||
|
} else {
|
||||||
|
tap_code(KC_VOLD);
|
||||||
|
}
|
||||||
|
} else if (index == 1) {
|
||||||
|
if (clockwise) {
|
||||||
|
tap_code(KC_PGDOWN);
|
||||||
|
} else {
|
||||||
|
tap_code(KC_PGUP);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2021 Spencer Deven <[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 3 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 "oled.c"
|
||||||
|
#include "encoder.c"
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
[0] = LAYOUT(
|
||||||
|
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
|
||||||
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
|
||||||
|
MO(3), KC_A, KC_S, KC_D, KC_F, KC_G, KC_MINS, KC_EQL, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
|
||||||
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_GRV, KC_MUTE, RGB_TOG, KC_DEL,KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT ,
|
||||||
|
KC_LCTL, KC_LALT, KC_LGUI, KC_APP, MO(1), KC_SPC, KC_ENT, KC_ENT, KC_SPC, MO(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
|
||||||
|
),
|
||||||
|
|
||||||
|
[1] = LAYOUT(
|
||||||
|
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
|
||||||
|
KC_PSLS, KC_P7, KC_P8, KC_P9, KC_NLCK, _______, _______, _______, _______, KC_PSLS, KC_P7, KC_P8, KC_P9, KC_F12,
|
||||||
|
KC_CAPS, KC_P4, KC_P5, KC_P6, KC_NLCK, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_NLCK,
|
||||||
|
_______, KC_P1, KC_P2, KC_P3, _______, _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______,
|
||||||
|
_______, KC_P0, KC_PDOT, KC_PENT, _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_PENT, _______
|
||||||
|
),
|
||||||
|
|
||||||
|
[2] = LAYOUT(
|
||||||
|
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
|
||||||
|
KC_PSLS, KC_P7, KC_P8, KC_P9, KC_NLCK, _______, _______, _______, _______, KC_PSLS, KC_P7, KC_P8, KC_P9, KC_F12,
|
||||||
|
KC_CAPS, KC_P4, KC_P5, KC_P6, KC_NLCK, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_NLCK,
|
||||||
|
_______, KC_P1, KC_P2, KC_P3, _______, _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______,
|
||||||
|
_______, KC_P0, KC_PDOT, KC_PENT, _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_PENT, _______
|
||||||
|
),
|
||||||
|
|
||||||
|
[3] = LAYOUT(
|
||||||
|
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, EEP_RST, _______, _______, _______, KC_F12,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, RGB_SPI, RGB_HUI, RGB_SAI, RGB_VAI,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_SPD, RGB_HUD, RGB_SAD, RGB_VAD
|
||||||
|
)
|
||||||
|
|
||||||
|
};
|
||||||
@@ -0,0 +1,78 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2021 Spencer Deven <[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 3 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/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef OLED_DRIVER_ENABLE
|
||||||
|
|
||||||
|
static void render_logo(void) {
|
||||||
|
static const char PROGMEM qmk_logo[] = {
|
||||||
|
0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,
|
||||||
|
0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4,
|
||||||
|
0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0
|
||||||
|
};
|
||||||
|
|
||||||
|
oled_write_P(qmk_logo, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void print_status_narrow(void) {
|
||||||
|
// Print current mode
|
||||||
|
oled_write_P(PSTR("\n\n"), false);
|
||||||
|
|
||||||
|
switch (get_highest_layer(layer_state)) {
|
||||||
|
case 0:
|
||||||
|
oled_write_ln_P(PSTR("Qwrt"), false);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
oled_write_P(PSTR("Mod\n"), false);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
oled_write_P(PSTR("\n\n"), false);
|
||||||
|
// Print current layer
|
||||||
|
oled_write_ln_P(PSTR("LAYER"), false);
|
||||||
|
switch (get_highest_layer(layer_state)) {
|
||||||
|
case 0:
|
||||||
|
oled_write_P(PSTR("Base\n"), false);
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
oled_write_P(PSTR("Raise"), false);
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
oled_write_P(PSTR("Lower"), false);
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
oled_write_P(PSTR("Adjust"), false);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
oled_write_ln_P(PSTR("Undef"), false);
|
||||||
|
}
|
||||||
|
oled_write_P(PSTR("\n\n"), false);
|
||||||
|
led_t led_usb_state = host_keyboard_led_state();
|
||||||
|
oled_write_ln_P(PSTR("CPSLK"), led_usb_state.caps_lock);
|
||||||
|
}
|
||||||
|
|
||||||
|
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
|
||||||
|
if (is_keyboard_master()) {
|
||||||
|
return OLED_ROTATION_90;
|
||||||
|
}
|
||||||
|
return rotation;
|
||||||
|
}
|
||||||
|
|
||||||
|
void oled_task_user(void) {
|
||||||
|
if (is_keyboard_master()) {
|
||||||
|
print_status_narrow();
|
||||||
|
} else {
|
||||||
|
render_logo();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
RGBLIGHT_ENABLE = yes
|
||||||
|
VIA_ENABLE = yes
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
# Zodiark Keyboard
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
A split keyboard with 5x7 including a thumbcluster, encoders on each side, per key RGB, and 2x I2C headers per side, supporiting 1.3"/.96" 128x64 OLEDs (the 1.3" is an SSH1106 OLED, refer to QMK documentation for limitations), .91" 128x32 OLEDs.
|
||||||
|
|
||||||
|
* Keyboard Maintainer: [Aleblazer](https://github.com/Aleblazer/), [Discord Link](https://discord.gg/BCSbXwskVt)
|
||||||
|
* Hardware Supported: Pro Micro and derivatives
|
||||||
|
* Hardware Availability: Pending Group Buy - [Discord Link](https://discord.gg/BCSbXwskVt)
|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make zodiark:default
|
||||||
|
|
||||||
|
Flashing example for this keyboard:
|
||||||
|
|
||||||
|
make zodiark:default:flash
|
||||||
|
|
||||||
|
Remove TRRS cable from halves, plug into one side, press reset button when asked. Repeat process on the other side.
|
||||||
|
|
||||||
|
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).
|
||||||
|
|
||||||
|
Credit to Sofle and Josef Adamcik <josef.adamcik@gmail.com> for OLED and layer code.
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
# MCU name
|
||||||
|
MCU = atmega32u4
|
||||||
|
|
||||||
|
# Bootloader selection
|
||||||
|
BOOTLOADER = caterina
|
||||||
|
|
||||||
|
# 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 = no # Enable keyboard RGB underglow
|
||||||
|
BLUETOOTH_ENABLE = no # Enable Bluetooth
|
||||||
|
AUDIO_ENABLE = no # Audio output
|
||||||
|
OLED_DRIVER_ENABLE = yes # Enable Support for SSD1306 or SH1106 OLED Displays; Communicating over I2C
|
||||||
|
ENCODER_ENABLE = yes
|
||||||
|
SPLIT_KEYBOARD = yes
|
||||||
|
LTO_ENABLE = yes
|
||||||
|
RGB_MATRIX_DRIVER = WS2812
|
||||||
@@ -0,0 +1,54 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2021 Spencer Deven <[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 3 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 "zodiark.h"
|
||||||
|
|
||||||
|
#ifdef RGB_MATRIX_ENABLE
|
||||||
|
led_config_t g_led_config = { {
|
||||||
|
// Key Matrix to LED Index
|
||||||
|
// Left Hand
|
||||||
|
{ 5, 4, 3, 2, 1, 0, 12 },
|
||||||
|
{ 6, 7, 8, 9, 10, 11, 13 },
|
||||||
|
{ 19, 18, 17, 16, 15, 14, 26 },
|
||||||
|
{ 20, 21, 22, 23, 24, 25, NO_LED },
|
||||||
|
{ 33, 32, 31, 30, 29, 28, 27},
|
||||||
|
// Right Hand
|
||||||
|
{ 39, 38, 37, 36, 35, 34, 46 },
|
||||||
|
{ 40, 41, 42, 43, 44, 45, 47 },
|
||||||
|
{ 53, 52, 51, 50, 49, 48, 60 },
|
||||||
|
{ 54, 55, 56, 57, 58, 59, NO_LED },
|
||||||
|
{ 67, 66, 65, 64, 63, 62, 61 },
|
||||||
|
|
||||||
|
|
||||||
|
}, {
|
||||||
|
// LED Index to Physical Position
|
||||||
|
// Left Hand
|
||||||
|
{ 93, 0 }, { 74, 0 }, { 56, 0 }, { 37, 0 }, { 19, 0 }, { 0, 0 }, { 0, 16 },
|
||||||
|
{ 19, 16 }, { 37, 16 }, { 56, 16 }, { 74, 16 }, { 93, 16 }, { 112, 24 }, { 112, 40 },
|
||||||
|
{ 93, 32 }, { 74, 32 }, { 56, 32 }, { 37, 32 }, { 19, 32 }, { 0, 32 }, { 0, 48 },
|
||||||
|
{ 19, 48 }, { 37, 48 }, { 56, 48 }, { 74, 48 }, { 93, 48 }, { 112, 52 },
|
||||||
|
{ 112, 64 }, { 93, 64 }, { 74, 64 }, { 56, 64 }, { 37, 64 }, { 19, 64 }, { 0, 64 },
|
||||||
|
// Right Hand
|
||||||
|
{ 132, 0 }, { 150, 0 }, { 169, 0 }, { 187, 0 }, { 206, 0 }, { 224, 0 }, { 224, 16 },
|
||||||
|
{ 206, 16 }, { 187, 16 }, { 169, 16 }, { 150, 16 }, { 132, 16 }, { 113, 24 }, { 113, 40 },
|
||||||
|
{ 132, 32 }, { 150, 32 }, { 169, 32 }, { 187, 32 }, { 206, 32 }, { 224, 32 }, { 224, 48 },
|
||||||
|
{ 206, 48 }, { 187, 48 }, { 169, 48 }, { 150, 48 }, { 132, 48 }, { 113, 52 },
|
||||||
|
{ 113, 64 }, { 132, 64 }, { 150, 64 }, { 169, 64 }, { 187, 64 }, { 206, 64 }, { 224, 64 },
|
||||||
|
}, {
|
||||||
|
// LED Index to Flag
|
||||||
|
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4
|
||||||
|
} };
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2021 Spencer Deven <[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 3 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( \
|
||||||
|
L00, L01, L02, L03, L04, L05, R01, R02, R03, R04, R05, R06, \
|
||||||
|
L10, L11, L12, L13, L14, L15, L06, R00, R11, R12, R13, R14, R15, R16, \
|
||||||
|
L20, L21, L22, L23, L24, L25, L16, R10, R21, R22, R23, R24, R25, R26, \
|
||||||
|
L30, L31, L32, L33, L34, L35, L26, L36, R30, R20, R31, R32, R33, R34, R35, R36, \
|
||||||
|
L40, L41, L42, L43, L44, L45, L46, R40, R41, R42, R43, R44, R45, R46 \
|
||||||
|
) \
|
||||||
|
{ \
|
||||||
|
{ L00, L01, L02, L03, L04, L05, L06 }, \
|
||||||
|
{ L10, L11, L12, L13, L14, L15, L16 }, \
|
||||||
|
{ L20, L21, L22, L23, L24, L25, L26 }, \
|
||||||
|
{ L30, L31, L32, L33, L34, L35, L36 }, \
|
||||||
|
{ L40, L41, L42, L43, L44, L45, L46 }, \
|
||||||
|
{ R06, R05, R04, R03, R02, R01, R00 }, \
|
||||||
|
{ R16, R15, R14, R13, R12, R11, R10 }, \
|
||||||
|
{ R26, R25, R24, R23, R22, R21, R20 }, \
|
||||||
|
{ R36, R35, R34, R33, R32, R31, R30 }, \
|
||||||
|
{ R46, R45, R44, R43, R42, R41, R40 } \
|
||||||
|
}
|
||||||
@@ -0,0 +1,84 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "Alpine65",
|
||||||
|
"url": "",
|
||||||
|
"maintainer": "Gondolindrim",
|
||||||
|
"width": 16.25,
|
||||||
|
"height": 5.25,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT": {
|
||||||
|
"layout": [
|
||||||
|
{"x":0, "y":0},
|
||||||
|
{"x":1, "y":0},
|
||||||
|
{"x":2, "y":0},
|
||||||
|
{"x":3, "y":0},
|
||||||
|
{"x":4, "y":0},
|
||||||
|
{"x":5, "y":0},
|
||||||
|
{"x":6, "y":0},
|
||||||
|
{"x":7, "y":0},
|
||||||
|
{"x":8, "y":0},
|
||||||
|
{"x":9, "y":0},
|
||||||
|
{"x":10, "y":0},
|
||||||
|
{"x":11, "y":0},
|
||||||
|
{"x":12, "y":0},
|
||||||
|
{"x":13, "y":0, "w":2},
|
||||||
|
|
||||||
|
{"x":0, "y":1, "w":1.5},
|
||||||
|
{"x":1.5, "y":1},
|
||||||
|
{"x":2.5, "y":1},
|
||||||
|
{"x":3.5, "y":1},
|
||||||
|
{"x":4.5, "y":1},
|
||||||
|
{"x":5.5, "y":1},
|
||||||
|
{"x":6.5, "y":1},
|
||||||
|
{"x":7.5, "y":1},
|
||||||
|
{"x":8.5, "y":1},
|
||||||
|
{"x":9.5, "y":1},
|
||||||
|
{"x":10.5, "y":1},
|
||||||
|
{"x":11.5, "y":1},
|
||||||
|
{"x":12.5, "y":1},
|
||||||
|
{"x":13.5, "y":1, "w":1.5},
|
||||||
|
{"x":15.25, "y":1.25},
|
||||||
|
|
||||||
|
{"x":0, "y":2, "w":1.75},
|
||||||
|
{"x":1.75, "y":2},
|
||||||
|
{"x":2.75, "y":2},
|
||||||
|
{"x":3.75, "y":2},
|
||||||
|
{"x":4.75, "y":2},
|
||||||
|
{"x":5.75, "y":2},
|
||||||
|
{"x":6.75, "y":2},
|
||||||
|
{"x":7.75, "y":2},
|
||||||
|
{"x":8.75, "y":2},
|
||||||
|
{"x":9.75, "y":2},
|
||||||
|
{"x":10.75, "y":2},
|
||||||
|
{"x":11.75, "y":2},
|
||||||
|
{"x":12.75, "y":2, "w":2.25},
|
||||||
|
{"x":15.25, "y":2.25},
|
||||||
|
|
||||||
|
{"x":0, "y":3, "w":2.25},
|
||||||
|
{"x":2.25, "y":3},
|
||||||
|
{"x":3.25, "y":3},
|
||||||
|
{"x":4.25, "y":3},
|
||||||
|
{"x":5.25, "y":3},
|
||||||
|
{"x":6.25, "y":3},
|
||||||
|
{"x":7.25, "y":3},
|
||||||
|
{"x":8.25, "y":3},
|
||||||
|
{"x":9.25, "y":3},
|
||||||
|
{"x":10.25, "y":3},
|
||||||
|
{"x":11.25, "y":3},
|
||||||
|
{"x":12.25, "y":3, "w":1.75},
|
||||||
|
{"x":14.25, "y":3.25},
|
||||||
|
{"x":15.25, "y":3.25},
|
||||||
|
|
||||||
|
{"x":0, "y":4, "w":1.25},
|
||||||
|
{"x":1.25, "y":4, "w":1.25},
|
||||||
|
{"x":2.5, "y":4, "w":1.25},
|
||||||
|
{"x":3.75, "y":4, "w":6.25},
|
||||||
|
{"x":10, "y":4},
|
||||||
|
{"x":11, "y":4},
|
||||||
|
{"x":12, "y":4},
|
||||||
|
{"x":13.25, "y":4.25},
|
||||||
|
{"x":14.25, "y":4.25},
|
||||||
|
{"x":15.25, "y":4.25}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "Aplx6",
|
||||||
|
"url": "",
|
||||||
|
"maintainer": "Aplyard",
|
||||||
|
"width": 3,
|
||||||
|
"height": 2,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT": {
|
||||||
|
"layout": [
|
||||||
|
{"x":0, "y":0},
|
||||||
|
{"x":1, "y":0},
|
||||||
|
{"x":2, "y":0},
|
||||||
|
|
||||||
|
{"x":0, "y":1},
|
||||||
|
{"x":1, "y":1},
|
||||||
|
{"x":2, "y":1}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "Arch-36",
|
||||||
|
"url": "",
|
||||||
|
"maintainer": "obosob",
|
||||||
|
"width": 14,
|
||||||
|
"height": 5.1,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT_split_3x5_3": {
|
||||||
|
"layout": [
|
||||||
|
{"x":0, "y":1},
|
||||||
|
{"x":1, "y":0.25},
|
||||||
|
{"x":2, "y":0},
|
||||||
|
{"x":3, "y":0.375},
|
||||||
|
{"x":4, "y":0.5},
|
||||||
|
{"x":9, "y":0.5},
|
||||||
|
{"x":10, "y":0.375},
|
||||||
|
{"x":11, "y":0},
|
||||||
|
{"x":12, "y":0.25},
|
||||||
|
{"x":13, "y":1},
|
||||||
|
|
||||||
|
{"x":0, "y":2},
|
||||||
|
{"x":1, "y":1.25},
|
||||||
|
{"x":2, "y":1},
|
||||||
|
{"x":3, "y":1.375},
|
||||||
|
{"x":4, "y":1.5},
|
||||||
|
{"x":9, "y":1.5},
|
||||||
|
{"x":10, "y":1.375},
|
||||||
|
{"x":11, "y":1},
|
||||||
|
{"x":12, "y":1.25},
|
||||||
|
{"x":13, "y":2},
|
||||||
|
|
||||||
|
{"x":0, "y":3},
|
||||||
|
{"x":1, "y":2.25},
|
||||||
|
{"x":2, "y":2},
|
||||||
|
{"x":3, "y":2.375},
|
||||||
|
{"x":4, "y":2.5},
|
||||||
|
{"x":9, "y":2.5},
|
||||||
|
{"x":10, "y":2.375},
|
||||||
|
{"x":11, "y":2},
|
||||||
|
{"x":12, "y":2.25},
|
||||||
|
{"x":13, "y":3},
|
||||||
|
|
||||||
|
{"x":3.5, "y":3.5},
|
||||||
|
{"x":4.5, "y":3.7},
|
||||||
|
{"x":5.5, "y":4.1},
|
||||||
|
{"x":7.5, "y":4.1},
|
||||||
|
{"x":8.5, "y":3.7},
|
||||||
|
{"x":9.5, "y":3.5}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -16,19 +16,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "ares.h"
|
#include "ares.h"
|
||||||
|
|
||||||
void keyboard_pre_init_kb(void) {
|
|
||||||
led_init_ports();
|
|
||||||
keyboard_pre_init_user();
|
|
||||||
}
|
|
||||||
|
|
||||||
void led_init_ports(void) {
|
|
||||||
setPinOutput(D1);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool led_update_kb(led_t led_state) {
|
|
||||||
if (led_update_user(led_state)) {
|
|
||||||
writePin(D1, led_state.caps_lock);
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
@@ -37,6 +37,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
#define DIODE_DIRECTION COL2ROW
|
#define DIODE_DIRECTION COL2ROW
|
||||||
#define DEBOUNCE 5
|
#define DEBOUNCE 5
|
||||||
|
|
||||||
|
#define LED_CAPS_LOCK_PIN D1
|
||||||
|
|
||||||
#define BACKLIGHT_PIN D4
|
#define BACKLIGHT_PIN D4
|
||||||
#define BACKLIGHT_LEVELS 3
|
#define BACKLIGHT_LEVELS 3
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,84 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "Arisu",
|
||||||
|
"url": "https://github.com/FateNozomi/arisu-pcb",
|
||||||
|
"maintainer": "FateNozomi",
|
||||||
|
"width": 18.3,
|
||||||
|
"height": 5.25,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT": {
|
||||||
|
"layout": [
|
||||||
|
{"x":0, "y":0},
|
||||||
|
{"x":1, "y":0},
|
||||||
|
{"x":2, "y":0},
|
||||||
|
{"x":3, "y":0},
|
||||||
|
{"x":4, "y":0},
|
||||||
|
{"x":5, "y":0},
|
||||||
|
{"x":6, "y":0},
|
||||||
|
{"x":9, "y":0},
|
||||||
|
{"x":10, "y":0},
|
||||||
|
{"x":11, "y":0},
|
||||||
|
{"x":12, "y":0},
|
||||||
|
{"x":13, "y":0},
|
||||||
|
{"x":14, "y":0},
|
||||||
|
{"x":15, "y":0},
|
||||||
|
{"x":16, "y":0},
|
||||||
|
{"x":17.3, "y":0},
|
||||||
|
|
||||||
|
{"x":0, "y":1, "w":1.5},
|
||||||
|
{"x":1.5, "y":1},
|
||||||
|
{"x":2.5, "y":1},
|
||||||
|
{"x":3.5, "y":1},
|
||||||
|
{"x":4.5, "y":1},
|
||||||
|
{"x":5.5, "y":1},
|
||||||
|
{"x":8.5, "y":1},
|
||||||
|
{"x":9.5, "y":1},
|
||||||
|
{"x":10.5, "y":1},
|
||||||
|
{"x":11.5, "y":1},
|
||||||
|
{"x":12.5, "y":1},
|
||||||
|
{"x":13.5, "y":1},
|
||||||
|
{"x":14.5, "y":1},
|
||||||
|
{"x":15.5, "y":1, "w":1.5},
|
||||||
|
{"x":17.3, "y":1},
|
||||||
|
|
||||||
|
{"x":0, "y":2, "w":1.75},
|
||||||
|
{"x":1.75, "y":2},
|
||||||
|
{"x":2.75, "y":2},
|
||||||
|
{"x":3.75, "y":2},
|
||||||
|
{"x":4.75, "y":2},
|
||||||
|
{"x":5.75, "y":2},
|
||||||
|
{"x":8.75, "y":2},
|
||||||
|
{"x":9.75, "y":2},
|
||||||
|
{"x":10.75, "y":2},
|
||||||
|
{"x":11.75, "y":2},
|
||||||
|
{"x":12.75, "y":2},
|
||||||
|
{"x":13.75, "y":2},
|
||||||
|
{"x":14.75, "y":2, "w":2.25},
|
||||||
|
{"x":17.3, "y":2},
|
||||||
|
|
||||||
|
{"x":0, "y":3, "w":2.25},
|
||||||
|
{"x":2.25, "y":3},
|
||||||
|
{"x":3.25, "y":3},
|
||||||
|
{"x":4.25, "y":3},
|
||||||
|
{"x":5.25, "y":3},
|
||||||
|
{"x":6.25, "y":3},
|
||||||
|
{"x":9.25, "y":3},
|
||||||
|
{"x":10.25, "y":3},
|
||||||
|
{"x":11.25, "y":3},
|
||||||
|
{"x":12.25, "y":3},
|
||||||
|
{"x":13.25, "y":3},
|
||||||
|
{"x":14.25, "y":3, "w":1.75},
|
||||||
|
{"x":16.3, "y":3.25},
|
||||||
|
|
||||||
|
{"x":0, "y":4, "w":1.5},
|
||||||
|
{"x":3.25, "y":4, "w":1.5},
|
||||||
|
{"x":4.75, "y":4, "w":2},
|
||||||
|
{"x":6.75, "y":4, "w":1.25},
|
||||||
|
{"x":8.75, "y":4, "w":2.75},
|
||||||
|
{"x":11.5, "y":4, "w":1.5},
|
||||||
|
{"x":15.3, "y":4.25},
|
||||||
|
{"x":16.3, "y":4.25},
|
||||||
|
{"x":17.3, "y":4.25}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
/* Copyright 2021 Matthew Dias
|
||||||
|
*
|
||||||
|
* 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 "barleycorn_smd.h"
|
||||||
@@ -0,0 +1,63 @@
|
|||||||
|
/* Copyright 2021 Matthew Dias
|
||||||
|
*
|
||||||
|
* 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 XXX KC_NO
|
||||||
|
|
||||||
|
#include "quantum.h"
|
||||||
|
|
||||||
|
#define LAYOUT_all( \
|
||||||
|
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K1D, K0E, K0F, K0G, K0H, \
|
||||||
|
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K2C, K1E, K1F, K1G, K1H, \
|
||||||
|
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, K2F, K2G, K2H, \
|
||||||
|
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H, \
|
||||||
|
K40, K41, K42, K46, K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H \
|
||||||
|
) { \
|
||||||
|
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H }, \
|
||||||
|
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H }, \
|
||||||
|
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H }, \
|
||||||
|
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H }, \
|
||||||
|
{ K40, K41, K42, XXX, XXX, XXX, K46, XXX, XXX, XXX, K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H } \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define LAYOUT_ansi( \
|
||||||
|
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K1D, K0E, K0F, K0G, K0H, \
|
||||||
|
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K2C, K1E, K1F, K1G, K1H, \
|
||||||
|
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, K2F, K2G, K2H, \
|
||||||
|
K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H, \
|
||||||
|
K40, K41, K42, K46, K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H \
|
||||||
|
) { \
|
||||||
|
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H }, \
|
||||||
|
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H }, \
|
||||||
|
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H }, \
|
||||||
|
{ K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H }, \
|
||||||
|
{ K40, K41, K42, XXX, XXX, XXX, K46, XXX, XXX, XXX, K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H } \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define LAYOUT_iso( \
|
||||||
|
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K1D, K0E, K0F, K0G, K0H, \
|
||||||
|
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K1F, K1G, K1H, \
|
||||||
|
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H, \
|
||||||
|
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H, \
|
||||||
|
K40, K41, K42, K46, K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H \
|
||||||
|
) { \
|
||||||
|
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H }, \
|
||||||
|
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H }, \
|
||||||
|
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H }, \
|
||||||
|
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H }, \
|
||||||
|
{ K40, K41, K42, XXX, XXX, XXX, K46, XXX, XXX, XXX, K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H } \
|
||||||
|
}
|
||||||
@@ -0,0 +1,111 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2021 Matthew Dias
|
||||||
|
|
||||||
|
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"
|
||||||
|
|
||||||
|
#define VENDOR_ID 0x7033
|
||||||
|
#define PRODUCT_ID 0x4749
|
||||||
|
#define DEVICE_VER 0x0001
|
||||||
|
#define MANUFACTURER P3D Store
|
||||||
|
#define PRODUCT Barleycorn SMD
|
||||||
|
|
||||||
|
/* key matrix size */
|
||||||
|
#define MATRIX_ROWS 5
|
||||||
|
#define MATRIX_COLS 18
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 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)
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* A Custom matrix.c is used to poll the port expander C6 shows that the pins are hardwired there */
|
||||||
|
#define MATRIX_ROW_PINS { F5, F4, F1, F0, F6 }
|
||||||
|
#define MATRIX_COL_PINS { D4, D6, D7, B4, B5, B6, C6, C7, D5, D5, D5, D5, D5, D5, D5, D5, D5, D5 }
|
||||||
|
#define UNUSED_PINS
|
||||||
|
#define PORT_EXPANDER_ADDRESS 0x20
|
||||||
|
|
||||||
|
#define RGB_DI_PIN E6
|
||||||
|
#define RGBLED_NUM 15
|
||||||
|
#define RGBLIGHT_ANIMATIONS
|
||||||
|
#define RGBLIGHT_LED_MAP { 0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 5 }
|
||||||
|
|
||||||
|
#define LED_CAPS_LOCK_PIN B2
|
||||||
|
#define LED_NUM_LOCK_PIN B3
|
||||||
|
|
||||||
|
/* COL2ROW, ROW2COL*/
|
||||||
|
#define DIODE_DIRECTION COL2ROW
|
||||||
|
|
||||||
|
#define USB_MAX_POWER_CONSUMPTION 400
|
||||||
|
|
||||||
|
|
||||||
|
/* 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
|
||||||
|
|
||||||
|
/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
|
||||||
|
* This is userful for the Windows task manager shortcut (ctrl+shift+esc).
|
||||||
|
*/
|
||||||
|
// #define GRAVE_ESC_CTRL_OVERRIDE
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Force NKRO
|
||||||
|
*
|
||||||
|
* Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
|
||||||
|
* state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
|
||||||
|
* makefile for this to work.)
|
||||||
|
*
|
||||||
|
* If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
|
||||||
|
* until the next keyboard reset.
|
||||||
|
*
|
||||||
|
* NKRO may prevent your keystrokes from being detected in the BIOS, but it is
|
||||||
|
* fully operational during normal computer usage.
|
||||||
|
*
|
||||||
|
* For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
|
||||||
|
* or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
|
||||||
|
* bootmagic, NKRO mode will always be enabled until it is toggled again during a
|
||||||
|
* power-up.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
//#define FORCE_NKRO
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Feature disable options
|
||||||
|
* These options are also useful to firmware size reduction.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* disable debug print */
|
||||||
|
//#define NO_DEBUG
|
||||||
|
|
||||||
|
/* disable print */
|
||||||
|
//#define NO_PRINT
|
||||||
|
|
||||||
|
/* disable action features */
|
||||||
|
//#define NO_ACTION_LAYER
|
||||||
|
//#define NO_ACTION_TAPPING
|
||||||
|
//#define NO_ACTION_ONESHOT
|
||||||
|
//#define NO_ACTION_MACRO
|
||||||
|
//#define NO_ACTION_FUNCTION
|
||||||
@@ -0,0 +1,283 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "Barleycorn SMD",
|
||||||
|
"maintainer": "matthewdias",
|
||||||
|
"width": 19.5,
|
||||||
|
"height": 5,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT_all": {
|
||||||
|
"layout": [
|
||||||
|
{ "label": "0,0", "x": 0, "y": 0 },
|
||||||
|
{ "label": "0,1", "x": 1, "y": 0 },
|
||||||
|
{ "label": "0,2", "x": 2, "y": 0 },
|
||||||
|
{ "label": "0,3", "x": 3, "y": 0 },
|
||||||
|
{ "label": "0,4", "x": 4, "y": 0 },
|
||||||
|
{ "label": "0,5", "x": 5, "y": 0 },
|
||||||
|
{ "label": "0,6", "x": 6, "y": 0 },
|
||||||
|
{ "label": "0,7", "x": 7, "y": 0 },
|
||||||
|
{ "label": "0,8", "x": 8, "y": 0 },
|
||||||
|
{ "label": "0,9", "x": 9, "y": 0 },
|
||||||
|
{ "label": "0,10", "x": 10, "y": 0 },
|
||||||
|
{ "label": "0,11", "x": 11, "y": 0 },
|
||||||
|
{ "label": "0,12", "x": 12, "y": 0 },
|
||||||
|
{ "label": "0,13", "x": 13, "y": 0 },
|
||||||
|
{ "label": "1,13", "x": 14, "y": 0 },
|
||||||
|
{ "label": "0,14", "x": 15.5, "y": 0 },
|
||||||
|
{ "label": "0,15", "x": 16.5, "y": 0 },
|
||||||
|
{ "label": "0,16", "x": 17.5, "y": 0 },
|
||||||
|
{ "label": "0,17", "x": 18.5, "y": 0 },
|
||||||
|
|
||||||
|
{ "label": "1,0", "x": 0, "y": 1, "w": 1.5 },
|
||||||
|
{ "label": "1,1", "x": 1.5, "y": 1 },
|
||||||
|
{ "label": "1,2", "x": 2.5, "y": 1 },
|
||||||
|
{ "label": "1,3", "x": 3.5, "y": 1 },
|
||||||
|
{ "label": "1,4", "x": 4.5, "y": 1 },
|
||||||
|
{ "label": "1,5", "x": 5.5, "y": 1 },
|
||||||
|
{ "label": "1,6", "x": 6.5, "y": 1 },
|
||||||
|
{ "label": "1,7", "x": 7.5, "y": 1 },
|
||||||
|
{ "label": "1,8", "x": 8.5, "y": 1 },
|
||||||
|
{ "label": "1,9", "x": 9.5, "y": 1 },
|
||||||
|
{ "label": "1,10", "x": 10.5, "y": 1 },
|
||||||
|
{ "label": "1,11", "x": 11.5, "y": 1 },
|
||||||
|
{ "label": "1,12", "x": 12.5, "y": 1 },
|
||||||
|
{ "label": "2,12", "x": 13.5, "y": 1, "w": 1.5 },
|
||||||
|
{ "label": "1,14", "x": 15.5, "y": 1 },
|
||||||
|
{ "label": "1,15", "x": 16.5, "y": 1 },
|
||||||
|
{ "label": "1,16", "x": 17.5, "y": 1 },
|
||||||
|
{ "label": "1,17", "x": 18.5, "y": 1 },
|
||||||
|
|
||||||
|
{ "label": "2,0", "x": 0, "y": 2, "w": 1.75 },
|
||||||
|
{ "label": "2,1", "x": 1.75, "y": 2 },
|
||||||
|
{ "label": "2,2", "x": 2.75, "y": 2 },
|
||||||
|
{ "label": "2,3", "x": 3.75, "y": 2 },
|
||||||
|
{ "label": "2,4", "x": 4.75, "y": 2 },
|
||||||
|
{ "label": "2,5", "x": 5.75, "y": 2 },
|
||||||
|
{ "label": "2,6", "x": 6.75, "y": 2 },
|
||||||
|
{ "label": "2,7", "x": 7.75, "y": 2 },
|
||||||
|
{ "label": "2,8", "x": 8.75, "y": 2 },
|
||||||
|
{ "label": "2,9", "x": 9.75, "y": 2 },
|
||||||
|
{ "label": "2,10", "x": 10.75, "y": 2 },
|
||||||
|
{ "label": "2,11", "x": 11.75, "y": 2 },
|
||||||
|
{ "label": "2,13", "x": 12.75, "y": 2, "w": 2.25 },
|
||||||
|
{ "label": "2,14", "x": 15.5, "y": 2 },
|
||||||
|
{ "label": "2,15", "x": 16.5, "y": 2 },
|
||||||
|
{ "label": "2,16", "x": 17.5, "y": 2 },
|
||||||
|
{ "label": "2,17", "x": 18.5, "y": 2 },
|
||||||
|
|
||||||
|
{ "label": "3,0", "x": 0, "y": 3, "w": 1.25 },
|
||||||
|
{ "label": "3,1", "x": 1.25, "y": 3 },
|
||||||
|
{ "label": "3,2", "x": 2.25, "y": 3 },
|
||||||
|
{ "label": "3,3", "x": 3.25, "y": 3 },
|
||||||
|
{ "label": "3,4", "x": 4.25, "y": 3 },
|
||||||
|
{ "label": "3,5", "x": 5.25, "y": 3 },
|
||||||
|
{ "label": "3,6", "x": 6.25, "y": 3 },
|
||||||
|
{ "label": "3,7", "x": 7.25, "y": 3 },
|
||||||
|
{ "label": "3,8", "x": 8.25, "y": 3 },
|
||||||
|
{ "label": "3,9", "x": 9.25, "y": 3 },
|
||||||
|
{ "label": "3,10", "x": 10.25, "y": 3 },
|
||||||
|
{ "label": "3,11", "x": 11.25, "y": 3 },
|
||||||
|
{ "label": "3,12", "x": 12.25, "y": 3, "w": 1.75 },
|
||||||
|
{ "label": "3,13", "x": 14.25, "y": 3.25 },
|
||||||
|
{ "label": "3,14", "x": 15.5, "y": 3 },
|
||||||
|
{ "label": "3,15", "x": 16.5, "y": 3 },
|
||||||
|
{ "label": "3,16", "x": 17.5, "y": 3 },
|
||||||
|
{ "label": "3,17", "x": 18.5, "y": 3 },
|
||||||
|
|
||||||
|
{ "label": "4,0", "x": 0, "y": 4, "w": 1.25 },
|
||||||
|
{ "label": "4,1", "x": 1.25, "y": 4, "w": 1.25 },
|
||||||
|
{ "label": "4,2", "x": 2.5, "y": 4, "w": 1.25 },
|
||||||
|
{ "label": "4,6", "x": 3.75, "y": 4, "w": 6.25 },
|
||||||
|
{ "label": "4,10", "x": 10, "y": 4, "w": 1.5 },
|
||||||
|
{ "label": "4,11", "x": 11.5, "y": 4, "w": 1.5 },
|
||||||
|
{ "label": "4,12", "x": 13.25, "y": 4.25 },
|
||||||
|
{ "label": "4,13", "x": 14.25, "y": 4.25 },
|
||||||
|
{ "label": "4,14", "x": 15.25, "y": 4.25 },
|
||||||
|
{ "label": "4,15", "x": 16.5, "y": 4 },
|
||||||
|
{ "label": "4,16", "x": 17.5, "y": 4 },
|
||||||
|
{ "label": "4,17", "x": 18.5, "y": 4 }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"LAYOUT_ansi": {
|
||||||
|
"layout": [
|
||||||
|
{ "label": "0,0", "x": 0, "y": 0 },
|
||||||
|
{ "label": "0,1", "x": 1, "y": 0 },
|
||||||
|
{ "label": "0,2", "x": 2, "y": 0 },
|
||||||
|
{ "label": "0,3", "x": 3, "y": 0 },
|
||||||
|
{ "label": "0,4", "x": 4, "y": 0 },
|
||||||
|
{ "label": "0,5", "x": 5, "y": 0 },
|
||||||
|
{ "label": "0,6", "x": 6, "y": 0 },
|
||||||
|
{ "label": "0,7", "x": 7, "y": 0 },
|
||||||
|
{ "label": "0,8", "x": 8, "y": 0 },
|
||||||
|
{ "label": "0,9", "x": 9, "y": 0 },
|
||||||
|
{ "label": "0,10", "x": 10, "y": 0 },
|
||||||
|
{ "label": "0,11", "x": 11, "y": 0 },
|
||||||
|
{ "label": "0,12", "x": 12, "y": 0 },
|
||||||
|
{ "label": "0,13", "x": 13, "y": 0 },
|
||||||
|
{ "label": "1,13", "x": 14, "y": 0 },
|
||||||
|
{ "label": "0,14", "x": 15.5, "y": 0 },
|
||||||
|
{ "label": "0,15", "x": 16.5, "y": 0 },
|
||||||
|
{ "label": "0,16", "x": 17.5, "y": 0 },
|
||||||
|
{ "label": "0,17", "x": 18.5, "y": 0 },
|
||||||
|
|
||||||
|
{ "label": "1,0", "x": 0, "y": 1, "w": 1.5 },
|
||||||
|
{ "label": "1,1", "x": 1.5, "y": 1 },
|
||||||
|
{ "label": "1,2", "x": 2.5, "y": 1 },
|
||||||
|
{ "label": "1,3", "x": 3.5, "y": 1 },
|
||||||
|
{ "label": "1,4", "x": 4.5, "y": 1 },
|
||||||
|
{ "label": "1,5", "x": 5.5, "y": 1 },
|
||||||
|
{ "label": "1,6", "x": 6.5, "y": 1 },
|
||||||
|
{ "label": "1,7", "x": 7.5, "y": 1 },
|
||||||
|
{ "label": "1,8", "x": 8.5, "y": 1 },
|
||||||
|
{ "label": "1,9", "x": 9.5, "y": 1 },
|
||||||
|
{ "label": "1,10", "x": 10.5, "y": 1 },
|
||||||
|
{ "label": "1,11", "x": 11.5, "y": 1 },
|
||||||
|
{ "label": "1,12", "x": 12.5, "y": 1 },
|
||||||
|
{ "label": "2,12", "x": 13.5, "y": 1, "w": 1.5 },
|
||||||
|
{ "label": "1,14", "x": 15.5, "y": 1 },
|
||||||
|
{ "label": "1,15", "x": 16.5, "y": 1 },
|
||||||
|
{ "label": "1,16", "x": 17.5, "y": 1 },
|
||||||
|
{ "label": "1,17", "x": 18.5, "y": 1 },
|
||||||
|
|
||||||
|
{ "label": "2,0", "x": 0, "y": 2, "w": 1.75 },
|
||||||
|
{ "label": "2,1", "x": 1.75, "y": 2 },
|
||||||
|
{ "label": "2,2", "x": 2.75, "y": 2 },
|
||||||
|
{ "label": "2,3", "x": 3.75, "y": 2 },
|
||||||
|
{ "label": "2,4", "x": 4.75, "y": 2 },
|
||||||
|
{ "label": "2,5", "x": 5.75, "y": 2 },
|
||||||
|
{ "label": "2,6", "x": 6.75, "y": 2 },
|
||||||
|
{ "label": "2,7", "x": 7.75, "y": 2 },
|
||||||
|
{ "label": "2,8", "x": 8.75, "y": 2 },
|
||||||
|
{ "label": "2,9", "x": 9.75, "y": 2 },
|
||||||
|
{ "label": "2,10", "x": 10.75, "y": 2 },
|
||||||
|
{ "label": "2,11", "x": 11.75, "y": 2 },
|
||||||
|
{ "label": "2,13", "x": 12.75, "y": 2, "w": 2.25 },
|
||||||
|
{ "label": "2,14", "x": 15.5, "y": 2 },
|
||||||
|
{ "label": "2,15", "x": 16.5, "y": 2 },
|
||||||
|
{ "label": "2,16", "x": 17.5, "y": 2 },
|
||||||
|
{ "label": "2,17", "x": 18.5, "y": 2 },
|
||||||
|
|
||||||
|
{ "label": "3,0", "x": 0, "y": 3, "w": 2.25 },
|
||||||
|
{ "label": "3,2", "x": 2.25, "y": 3 },
|
||||||
|
{ "label": "3,3", "x": 3.25, "y": 3 },
|
||||||
|
{ "label": "3,4", "x": 4.25, "y": 3 },
|
||||||
|
{ "label": "3,5", "x": 5.25, "y": 3 },
|
||||||
|
{ "label": "3,6", "x": 6.25, "y": 3 },
|
||||||
|
{ "label": "3,7", "x": 7.25, "y": 3 },
|
||||||
|
{ "label": "3,8", "x": 8.25, "y": 3 },
|
||||||
|
{ "label": "3,9", "x": 9.25, "y": 3 },
|
||||||
|
{ "label": "3,10", "x": 10.25, "y": 3 },
|
||||||
|
{ "label": "3,11", "x": 11.25, "y": 3 },
|
||||||
|
{ "label": "3,12", "x": 12.25, "y": 3, "w": 1.75 },
|
||||||
|
{ "label": "3,13", "x": 14.25, "y": 3.25 },
|
||||||
|
{ "label": "3,14", "x": 15.5, "y": 3 },
|
||||||
|
{ "label": "3,15", "x": 16.5, "y": 3 },
|
||||||
|
{ "label": "3,16", "x": 17.5, "y": 3 },
|
||||||
|
{ "label": "3,17", "x": 18.5, "y": 3 },
|
||||||
|
|
||||||
|
{ "label": "4,0", "x": 0, "y": 4, "w": 1.25 },
|
||||||
|
{ "label": "4,1", "x": 1.25, "y": 4, "w": 1.25 },
|
||||||
|
{ "label": "4,2", "x": 2.5, "y": 4, "w": 1.25 },
|
||||||
|
{ "label": "4,6", "x": 3.75, "y": 4, "w": 6.25 },
|
||||||
|
{ "label": "4,10", "x": 10, "y": 4, "w": 1.5 },
|
||||||
|
{ "label": "4,11", "x": 11.5, "y": 4, "w": 1.5 },
|
||||||
|
{ "label": "4,12", "x": 13.25, "y": 4.25 },
|
||||||
|
{ "label": "4,13", "x": 14.25, "y": 4.25 },
|
||||||
|
{ "label": "4,14", "x": 15.25, "y": 4.25 },
|
||||||
|
{ "label": "4,15", "x": 16.5, "y": 4 },
|
||||||
|
{ "label": "4,16", "x": 17.5, "y": 4 },
|
||||||
|
{ "label": "4,17", "x": 18.5, "y": 4 }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"LAYOUT_iso": {
|
||||||
|
"layout": [
|
||||||
|
{ "label": "0,0", "x": 0, "y": 0 },
|
||||||
|
{ "label": "0,1", "x": 1, "y": 0 },
|
||||||
|
{ "label": "0,2", "x": 2, "y": 0 },
|
||||||
|
{ "label": "0,3", "x": 3, "y": 0 },
|
||||||
|
{ "label": "0,4", "x": 4, "y": 0 },
|
||||||
|
{ "label": "0,5", "x": 5, "y": 0 },
|
||||||
|
{ "label": "0,6", "x": 6, "y": 0 },
|
||||||
|
{ "label": "0,7", "x": 7, "y": 0 },
|
||||||
|
{ "label": "0,8", "x": 8, "y": 0 },
|
||||||
|
{ "label": "0,9", "x": 9, "y": 0 },
|
||||||
|
{ "label": "0,10", "x": 10, "y": 0 },
|
||||||
|
{ "label": "0,11", "x": 11, "y": 0 },
|
||||||
|
{ "label": "0,12", "x": 12, "y": 0 },
|
||||||
|
{ "label": "0,13", "x": 13, "y": 0 },
|
||||||
|
{ "label": "1,13", "x": 14, "y": 0 },
|
||||||
|
{ "label": "0,14", "x": 15.5, "y": 0 },
|
||||||
|
{ "label": "0,15", "x": 16.5, "y": 0 },
|
||||||
|
{ "label": "0,16", "x": 17.5, "y": 0 },
|
||||||
|
{ "label": "0,17", "x": 18.5, "y": 0 },
|
||||||
|
|
||||||
|
{ "label": "1,0", "x": 0, "y": 1, "w": 1.5 },
|
||||||
|
{ "label": "1,1", "x": 1.5, "y": 1 },
|
||||||
|
{ "label": "1,2", "x": 2.5, "y": 1 },
|
||||||
|
{ "label": "1,3", "x": 3.5, "y": 1 },
|
||||||
|
{ "label": "1,4", "x": 4.5, "y": 1 },
|
||||||
|
{ "label": "1,5", "x": 5.5, "y": 1 },
|
||||||
|
{ "label": "1,6", "x": 6.5, "y": 1 },
|
||||||
|
{ "label": "1,7", "x": 7.5, "y": 1 },
|
||||||
|
{ "label": "1,8", "x": 8.5, "y": 1 },
|
||||||
|
{ "label": "1,9", "x": 9.5, "y": 1 },
|
||||||
|
{ "label": "1,10", "x": 10.5, "y": 1 },
|
||||||
|
{ "label": "1,11", "x": 11.5, "y": 1 },
|
||||||
|
{ "label": "1,12", "x": 12.5, "y": 1 },
|
||||||
|
{ "label": "1,14", "x": 15.5, "y": 1 },
|
||||||
|
{ "label": "1,15", "x": 16.5, "y": 1 },
|
||||||
|
{ "label": "1,16", "x": 17.5, "y": 1 },
|
||||||
|
{ "label": "1,17", "x": 18.5, "y": 1 },
|
||||||
|
|
||||||
|
{ "label": "2,0", "x": 0, "y": 2, "w": 1.75 },
|
||||||
|
{ "label": "2,1", "x": 1.75, "y": 2 },
|
||||||
|
{ "label": "2,2", "x": 2.75, "y": 2 },
|
||||||
|
{ "label": "2,3", "x": 3.75, "y": 2 },
|
||||||
|
{ "label": "2,4", "x": 4.75, "y": 2 },
|
||||||
|
{ "label": "2,5", "x": 5.75, "y": 2 },
|
||||||
|
{ "label": "2,6", "x": 6.75, "y": 2 },
|
||||||
|
{ "label": "2,7", "x": 7.75, "y": 2 },
|
||||||
|
{ "label": "2,8", "x": 8.75, "y": 2 },
|
||||||
|
{ "label": "2,9", "x": 9.75, "y": 2 },
|
||||||
|
{ "label": "2,10", "x": 10.75, "y": 2 },
|
||||||
|
{ "label": "2,11", "x": 11.75, "y": 2 },
|
||||||
|
{ "label": "2,12", "x": 12.75, "y": 2 },
|
||||||
|
{ "label": "2,13", "x": 13.75, "y": 1, "w": 1.25, "h": 2 },
|
||||||
|
{ "label": "2,14", "x": 15.5, "y": 2 },
|
||||||
|
{ "label": "2,15", "x": 16.5, "y": 2 },
|
||||||
|
{ "label": "2,16", "x": 17.5, "y": 2 },
|
||||||
|
{ "label": "2,17", "x": 18.5, "y": 2 },
|
||||||
|
|
||||||
|
{ "label": "3,0", "x": 0, "y": 3, "w": 1.25 },
|
||||||
|
{ "label": "3,1", "x": 1.25, "y": 3 },
|
||||||
|
{ "label": "3,2", "x": 2.25, "y": 3 },
|
||||||
|
{ "label": "3,3", "x": 3.25, "y": 3 },
|
||||||
|
{ "label": "3,4", "x": 4.25, "y": 3 },
|
||||||
|
{ "label": "3,5", "x": 5.25, "y": 3 },
|
||||||
|
{ "label": "3,6", "x": 6.25, "y": 3 },
|
||||||
|
{ "label": "3,7", "x": 7.25, "y": 3 },
|
||||||
|
{ "label": "3,8", "x": 8.25, "y": 3 },
|
||||||
|
{ "label": "3,9", "x": 9.25, "y": 3 },
|
||||||
|
{ "label": "3,10", "x": 10.25, "y": 3 },
|
||||||
|
{ "label": "3,11", "x": 11.25, "y": 3 },
|
||||||
|
{ "label": "3,12", "x": 12.25, "y": 3, "w": 1.75 },
|
||||||
|
{ "label": "3,13", "x": 14.25, "y": 3.25 },
|
||||||
|
{ "label": "3,14", "x": 15.5, "y": 3 },
|
||||||
|
{ "label": "3,15", "x": 16.5, "y": 3 },
|
||||||
|
{ "label": "3,16", "x": 17.5, "y": 3 },
|
||||||
|
{ "label": "3,17", "x": 18.5, "y": 3 },
|
||||||
|
|
||||||
|
{ "label": "4,0", "x": 0, "y": 4, "w": 1.25 },
|
||||||
|
{ "label": "4,1", "x": 1.25, "y": 4, "w": 1.25 },
|
||||||
|
{ "label": "4,2", "x": 2.5, "y": 4, "w": 1.25 },
|
||||||
|
{ "label": "4,6", "x": 3.75, "y": 4, "w": 6.25 },
|
||||||
|
{ "label": "4,10", "x": 10, "y": 4, "w": 1.5 },
|
||||||
|
{ "label": "4,11", "x": 11.5, "y": 4, "w": 1.5 },
|
||||||
|
{ "label": "4,12", "x": 13.25, "y": 4.25 },
|
||||||
|
{ "label": "4,13", "x": 14.25, "y": 4.25 },
|
||||||
|
{ "label": "4,14", "x": 15.25, "y": 4.25 },
|
||||||
|
{ "label": "4,15", "x": 16.5, "y": 4 },
|
||||||
|
{ "label": "4,16", "x": 17.5, "y": 4 },
|
||||||
|
{ "label": "4,17", "x": 18.5, "y": 4 }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
/* Copyright 2021 Matthew Dias
|
||||||
|
*
|
||||||
|
* 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
|
||||||
|
|
||||||
|
//This is the ANSI version of the PCB
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[0] = LAYOUT_ansi( /* Base */
|
||||||
|
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_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
|
||||||
|
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_PEQL,
|
||||||
|
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS,
|
||||||
|
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_BSPC,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT),
|
||||||
|
|
||||||
|
[1] = LAYOUT_ansi( /* FN */
|
||||||
|
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||||
|
};
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
# The default keymap for Barleycorn
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Default layer is normal ANSI and Fn layer is used for Volume control and arrow cluster.
|
||||||
|
|
||||||
|
Alternative ANSI layouts:
|
||||||
|
|
||||||
|

|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
/* Copyright 2021 Matthew Dias
|
||||||
|
*
|
||||||
|
* 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
|
||||||
|
|
||||||
|
//This is the ISO version of the PCB
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[0] = LAYOUT_iso( /* Base */
|
||||||
|
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_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
|
||||||
|
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_P7, KC_P8, KC_P9, KC_PEQL,
|
||||||
|
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_P4, KC_P5, KC_P6, KC_PPLS,
|
||||||
|
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_BSPC,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT),
|
||||||
|
|
||||||
|
[1] = LAYOUT_iso( /* FN */
|
||||||
|
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||||
|
};
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
# The default keymap for ISO Barleycorn
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Default layer is normal ISO and Fn layer is used for Volume control and arrow cluster
|
||||||
|
|
||||||
|
Alternative ISO layouts:
|
||||||
|
|
||||||
|

|
||||||
@@ -0,0 +1,48 @@
|
|||||||
|
/* Copyright 2021 Matthew Dias
|
||||||
|
*
|
||||||
|
* 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
|
||||||
|
|
||||||
|
// This keymaps is used for VIA, it reflects the default keymap.
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[0] = LAYOUT_all( /* Base */
|
||||||
|
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_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
|
||||||
|
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_PEQL,
|
||||||
|
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS,
|
||||||
|
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_BSPC,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT),
|
||||||
|
|
||||||
|
[1] = LAYOUT_all( /* FN */
|
||||||
|
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||||
|
|
||||||
|
[2] = LAYOUT_all( /* Empty for dynamic keymaps */
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
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_all( /* Empty for dynamic keymaps */
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||||
|
};
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
# Compile with this keymap to use VIA
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
VIA_ENABLE = yes
|
||||||
@@ -0,0 +1,138 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2021 Matthew Dias
|
||||||
|
|
||||||
|
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 <stdint.h>
|
||||||
|
#include <stdbool.h>
|
||||||
|
#include "wait.h"
|
||||||
|
#include "quantum.h"
|
||||||
|
#include "i2c_master.h"
|
||||||
|
|
||||||
|
static const pin_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS;
|
||||||
|
static const pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS;
|
||||||
|
|
||||||
|
static void unselect_rows(void) {
|
||||||
|
for(uint8_t x = 0; x < MATRIX_ROWS; x++) {
|
||||||
|
setPinInputHigh(row_pins[x]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void select_row(uint8_t row) {
|
||||||
|
setPinOutput(row_pins[row]);
|
||||||
|
writePinLow(row_pins[row]);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void unselect_row(uint8_t row) {
|
||||||
|
setPinInputHigh(row_pins[row]);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void init_pins(void) {
|
||||||
|
unselect_rows();
|
||||||
|
// Set I/O
|
||||||
|
uint8_t send_data[2] = { 0xFF, 0x03};
|
||||||
|
i2c_writeReg((PORT_EXPANDER_ADDRESS << 1), 0x00, &send_data[0], 2, 20);
|
||||||
|
// Set Pull-up
|
||||||
|
i2c_writeReg((PORT_EXPANDER_ADDRESS << 1), 0x0C, &send_data[0], 2, 20);
|
||||||
|
|
||||||
|
for (uint8_t x = 0; x < MATRIX_COLS; x++) {
|
||||||
|
if ( x < 8 ) {
|
||||||
|
setPinInputHigh(col_pins[x]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void matrix_init_custom(void) {
|
||||||
|
// TODO: initialize hardware here
|
||||||
|
// Initialize I2C
|
||||||
|
i2c_init();
|
||||||
|
|
||||||
|
// initialize key pins
|
||||||
|
init_pins();
|
||||||
|
wait_ms(50);
|
||||||
|
}
|
||||||
|
|
||||||
|
static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) {
|
||||||
|
// Store last value of row prior to reading
|
||||||
|
matrix_row_t last_row_value = current_matrix[current_row];
|
||||||
|
|
||||||
|
// Clear data in matrix row
|
||||||
|
current_matrix[current_row] = 0;
|
||||||
|
|
||||||
|
// Select row and wait for row selecton to stabilize
|
||||||
|
select_row(current_row);
|
||||||
|
matrix_io_delay();
|
||||||
|
|
||||||
|
uint8_t port_expander_col_buffer[2];
|
||||||
|
i2c_readReg((PORT_EXPANDER_ADDRESS << 1), 0x12, &port_expander_col_buffer[0], 2, 20);
|
||||||
|
|
||||||
|
// For each col...
|
||||||
|
for(uint8_t col_index = 0; col_index < MATRIX_COLS; col_index++) {
|
||||||
|
uint8_t pin_state;
|
||||||
|
// Select the col pin to read (active low)
|
||||||
|
switch (col_index) {
|
||||||
|
case 8 :
|
||||||
|
pin_state = port_expander_col_buffer[0] & (1 << 0);
|
||||||
|
break;
|
||||||
|
case 9 :
|
||||||
|
pin_state = port_expander_col_buffer[0] & (1 << 1);
|
||||||
|
break;
|
||||||
|
case 10 :
|
||||||
|
pin_state = port_expander_col_buffer[0] & (1 << 2);
|
||||||
|
break;
|
||||||
|
case 11 :
|
||||||
|
pin_state = port_expander_col_buffer[0] & (1 << 3);
|
||||||
|
break;
|
||||||
|
case 12 :
|
||||||
|
pin_state = port_expander_col_buffer[0] & (1 << 4);
|
||||||
|
break;
|
||||||
|
case 13 :
|
||||||
|
pin_state = port_expander_col_buffer[0] & (1 << 5);
|
||||||
|
break;
|
||||||
|
case 14 :
|
||||||
|
pin_state = port_expander_col_buffer[0] & (1 << 6);
|
||||||
|
break;
|
||||||
|
case 15 :
|
||||||
|
pin_state = port_expander_col_buffer[0] & (1 << 7);
|
||||||
|
break;
|
||||||
|
case 16 :
|
||||||
|
pin_state = port_expander_col_buffer[1] & (1 << 0);
|
||||||
|
break;
|
||||||
|
case 17 :
|
||||||
|
pin_state = port_expander_col_buffer[1] & (1 << 1);
|
||||||
|
break;
|
||||||
|
default :
|
||||||
|
pin_state = readPin(col_pins[col_index]);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Populate the matrix row with the state of the col pin
|
||||||
|
current_matrix[current_row] |= pin_state ? 0 : (MATRIX_ROW_SHIFTER << col_index);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Unselect row
|
||||||
|
unselect_row(current_row);
|
||||||
|
|
||||||
|
return (last_row_value != current_matrix[current_row]);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool matrix_scan_custom(matrix_row_t current_matrix[]) {
|
||||||
|
bool matrix_has_changed = false;
|
||||||
|
|
||||||
|
// Set row, read cols
|
||||||
|
for (uint8_t current_row = 0; current_row < MATRIX_ROWS; current_row++) {
|
||||||
|
matrix_has_changed |= read_cols_on_row(current_matrix, current_row);
|
||||||
|
}
|
||||||
|
|
||||||
|
return matrix_has_changed;
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
# Barleycorn SMD
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
An f-row less compact 1800 keyboard with SMD components. Based on Barleycorn by Yiancar.
|
||||||
|
|
||||||
|
- Keyboard Maintainer: matthewdias
|
||||||
|
- Hardware Supported: Barleycorn SMD
|
||||||
|
- Hardware Availability: https://p3dstore.com
|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make barleycorn_smd:default
|
||||||
|
|
||||||
|
Flashing example for this keyboard:
|
||||||
|
|
||||||
|
make barleycorn_smd: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,27 @@
|
|||||||
|
# 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 = 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
|
||||||
|
|
||||||
|
CUSTOM_MATRIX = lite
|
||||||
|
|
||||||
|
SRC += matrix.c
|
||||||
|
QUANTUM_LIB_SRC += i2c_master.c
|
||||||
@@ -29,3 +29,5 @@ NKRO_ENABLE = no # USB Nkey Rollover
|
|||||||
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
|
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
|
||||||
OLED_DRIVER_ENABLE = yes # Disable OLED driver.
|
OLED_DRIVER_ENABLE = yes # Disable OLED driver.
|
||||||
UNICODE_ENABLE = no # Unicode
|
UNICODE_ENABLE = no # Unicode
|
||||||
|
|
||||||
|
LTO_ENABLE = yes
|
||||||
@@ -5,7 +5,7 @@
|
|||||||
"width": 17,
|
"width": 17,
|
||||||
"height": 8,
|
"height": 8,
|
||||||
"layouts": {
|
"layouts": {
|
||||||
"LAYOUT": {
|
"LAYOUT_split_4x6_5": {
|
||||||
"layout": [
|
"layout": [
|
||||||
{"label":"L00", "x":0, "y":0},
|
{"label":"L00", "x":0, "y":0},
|
||||||
{"label":"L01", "x":1, "y":0},
|
{"label":"L01", "x":1, "y":0},
|
||||||
|
|||||||
@@ -16,19 +16,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "bfake.h"
|
#include "bfake.h"
|
||||||
|
|
||||||
void keyboard_pre_init_kb(void) {
|
|
||||||
led_init_ports();
|
|
||||||
keyboard_pre_init_user();
|
|
||||||
}
|
|
||||||
|
|
||||||
void led_init_ports(void) {
|
|
||||||
setPinOutput(D1);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool led_update_kb(led_t led_state) {
|
|
||||||
if (led_update_user(led_state)) {
|
|
||||||
writePin(D1, led_state.caps_lock);
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
@@ -37,6 +37,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
#define DIODE_DIRECTION COL2ROW
|
#define DIODE_DIRECTION COL2ROW
|
||||||
#define DEBOUNCE 5
|
#define DEBOUNCE 5
|
||||||
|
|
||||||
|
#define LED_CAPS_LOCK_PIN D1
|
||||||
|
|
||||||
#define BACKLIGHT_PIN D4
|
#define BACKLIGHT_PIN D4
|
||||||
#define BACKLIGHT_LEVELS 3
|
#define BACKLIGHT_LEVELS 3
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,59 @@
|
|||||||
|
/* Copyright 2021 peepeetee
|
||||||
|
*
|
||||||
|
* 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 "bm68rgb.h"
|
||||||
|
|
||||||
|
#ifdef RGB_MATRIX_ENABLE
|
||||||
|
led_config_t g_led_config = { {
|
||||||
|
// Key Matrix to LED Index
|
||||||
|
{ 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 },
|
||||||
|
{ NO_LED, 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, 64, 65, 66, 67 }
|
||||||
|
}, {
|
||||||
|
// LED Index to Physical Position
|
||||||
|
//I have no idea how to calculate this based on a templete, nor do have a good enough ruler to measure this.
|
||||||
|
// Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace, Delete
|
||||||
|
{ 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 }, { 225, 0 },
|
||||||
|
// Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], backslash , Home
|
||||||
|
{ 4, 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 }, { 225, 16 },
|
||||||
|
// Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter, Page up
|
||||||
|
{ 6, 32 }, { 26, 32 }, { 41, 32 }, { 56, 32 }, { 71, 32 }, { 86, 32 }, { 101, 32 }, { 116, 32 }, { 131, 32 }, { 146, 32 }, { 161, 32 }, { 176, 32 }, { 201, 32 }, { 225, 32 },
|
||||||
|
// LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, Page Down
|
||||||
|
{ 9, 48 }, { 34, 48 }, { 49, 48 }, { 64, 48 }, { 79, 48 }, { 94, 48 }, { 109, 48 }, { 124, 48 }, { 139, 48 }, { 154, 48 }, { 169, 48 }, { 189, 48 }, { 210, 48 }, { 225, 48 },
|
||||||
|
// Ctrl, GUI, Alt, Space, RAlt, FN, Ctrl, Left, Down, Right
|
||||||
|
{ 2, 64 }, { 21, 64 }, { 39, 64 }, { 94, 64 }, { 148, 64 }, { 163, 64 }, { 178, 64 }, { 193, 64 }, { 208, 64 }, { 225, 64 },
|
||||||
|
// UNDERGLOW
|
||||||
|
{ 185, 45 }, { 160, 45 }, { 125, 45 }, { 95, 45 }, { 60, 45 }, { 25, 45 }
|
||||||
|
}, {
|
||||||
|
// LED Index to Flag
|
||||||
|
//need to recheck what should be a modifier
|
||||||
|
|
||||||
|
// Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace, Delete
|
||||||
|
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
|
||||||
|
// Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], backslash , Home
|
||||||
|
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, Page up
|
||||||
|
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
|
||||||
|
// LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, Page Down
|
||||||
|
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1,
|
||||||
|
// Ctrl, GUI, Alt, Space, RAlt, FN, Ctrl, Left, Down, Right
|
||||||
|
1, 1, 1, 4, 1, 1, 1, 1, 1, 1,
|
||||||
|
// UNDERGLOW
|
||||||
|
2, 2, 2, 2, 2, 2
|
||||||
|
} };
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
/* Copyright 2021 peepeetee
|
||||||
|
*
|
||||||
|
* 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 is 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_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, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E,\
|
||||||
|
k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E,\
|
||||||
|
k40, k41, k42, k46, 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, KC_NO, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E }, \
|
||||||
|
{ KC_NO, 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, k4B, k4C, k4D, k4E }, \
|
||||||
|
}
|
||||||
@@ -0,0 +1,144 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2021 peepeetee
|
||||||
|
|
||||||
|
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 0xEF6F
|
||||||
|
#define DEVICE_VER 0x0001
|
||||||
|
#define MANUFACTURER KPRepublic
|
||||||
|
#define PRODUCT bm68rgb
|
||||||
|
|
||||||
|
/* 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 { 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 UNUSED_PINS
|
||||||
|
|
||||||
|
/* COL2ROW, ROW2COL */
|
||||||
|
#define DIODE_DIRECTION COL2ROW
|
||||||
|
|
||||||
|
// The pin connected to the data pin of the LEDs
|
||||||
|
#define RGB_DI_PIN E2
|
||||||
|
// The number of LEDs connected
|
||||||
|
#define DRIVER_LED_TOTAL 74
|
||||||
|
#ifdef RGB_DI_PIN
|
||||||
|
#define RGBLED_NUM 74
|
||||||
|
//# 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
|
||||||
|
/*== 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
|
||||||
|
|
||||||
|
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||||
|
#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 */
|
||||||
|
#define LOCKING_SUPPORT_ENABLE
|
||||||
|
/* Locking resynchronize hack */
|
||||||
|
#define LOCKING_RESYNC_ENABLE
|
||||||
|
|
||||||
|
/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
|
||||||
|
* This is useful for the Windows task manager shortcut (ctrl+shift+esc).
|
||||||
|
*/
|
||||||
|
//#define GRAVE_ESC_CTRL_OVERRIDE
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Force NKRO
|
||||||
|
*
|
||||||
|
* Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
|
||||||
|
* state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
|
||||||
|
* makefile for this to work.)
|
||||||
|
*
|
||||||
|
* If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
|
||||||
|
* until the next keyboard reset.
|
||||||
|
*
|
||||||
|
* NKRO may prevent your keystrokes from being detected in the BIOS, but it is
|
||||||
|
* fully operational during normal computer usage.
|
||||||
|
*
|
||||||
|
* For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
|
||||||
|
* or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
|
||||||
|
* bootmagic, NKRO mode will always be enabled until it is toggled again during a
|
||||||
|
* power-up.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
//#define FORCE_NKRO
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Feature disable options
|
||||||
|
* These options are also useful to firmware size reduction.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* disable debug print */
|
||||||
|
//#define NO_DEBUG
|
||||||
|
|
||||||
|
/* disable print */
|
||||||
|
//#define NO_PRINT
|
||||||
|
|
||||||
|
/* disable action features */
|
||||||
|
//#define NO_ACTION_LAYER
|
||||||
|
//#define NO_ACTION_TAPPING
|
||||||
|
//#define NO_ACTION_ONESHOT
|
||||||
|
|
||||||
|
/* 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
|
||||||
@@ -0,0 +1,81 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "bm68rgb",
|
||||||
|
"url": "",
|
||||||
|
"maintainer": "peepeetee",
|
||||||
|
"width": 15,
|
||||||
|
"height": 5,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT_65_ansi": {
|
||||||
|
"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":"K31 (B3,D1)", "x":0, "y":3, "w":2.25},
|
||||||
|
{"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},
|
||||||
|
{"label":"K4A (E6,B6)", "x":11, "y":4},
|
||||||
|
{"label":"K4B (E6,C6)", "x":12, "y":4},
|
||||||
|
{"label":"K4C (E6,C7)", "x":13, "y":4},
|
||||||
|
{"label":"K4D (E6,F7)", "x":14, "y":4},
|
||||||
|
{"label":"K4E (E6,F6)", "x":15, "y":4}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
/* Copyright 2021 peepeetee
|
||||||
|
*
|
||||||
|
* 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
|
||||||
|
|
||||||
|
// // Defines names for use in layer keycodes and the keymap
|
||||||
|
// enum layer_names {
|
||||||
|
// _BASE,
|
||||||
|
// _FN
|
||||||
|
// };
|
||||||
|
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[0] = LAYOUT_65_ansi(
|
||||||
|
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL,
|
||||||
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_HOME,
|
||||||
|
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,
|
||||||
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1),KC_RCTRL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
|
),
|
||||||
|
[1] = LAYOUT_65_ansi(
|
||||||
|
KC_GRAVE, 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, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
Templete
|
||||||
|
[ ] = LAYOUT_65_ansi(
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
*/
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
# The default keymap for bm68rgb
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
# bm68rgb
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
A 65% hotswap in switch RGB keyboard from KPRepublic.
|
||||||
|
|
||||||
|
* Keyboard Maintainer: [peepeetee](https://github.com/peepeetee)
|
||||||
|
* Hardware Supported: BM68 RGB
|
||||||
|
* Hardware Availability: [KP Republic](https://kprepublic.com/products/bm68rgb-bm68-rgb-65-hot-swappable-custom-mechanical-keyboard-pcb-programmed-qmk-via-firmware-full-rgb-switch-underglow-type-c)
|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make bm68rgb:default
|
||||||
|
|
||||||
|
Flashing example for this keyboard:
|
||||||
|
|
||||||
|
make bm68rgb: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,27 @@
|
|||||||
|
# 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
|
||||||
|
|
||||||
|
LAYOUTS = 65_ansi
|
||||||
@@ -5,7 +5,7 @@
|
|||||||
"width": 12,
|
"width": 12,
|
||||||
"height": 5,
|
"height": 5,
|
||||||
"layouts": {
|
"layouts": {
|
||||||
"LAYOUT": {
|
"LAYOUT_ortho_5x12": {
|
||||||
"layout": [
|
"layout": [
|
||||||
{ "label": "K01", "x": 0, "y": 0 },
|
{ "label": "K01", "x": 0, "y": 0 },
|
||||||
{ "label": "K02", "x": 1, "y": 0 },
|
{ "label": "K02", "x": 1, "y": 0 },
|
||||||
|
|||||||
@@ -2,3 +2,4 @@ OLED_DRIVER_ENABLE = yes
|
|||||||
VIA_ENABLE = yes
|
VIA_ENABLE = yes
|
||||||
EXTRAKEY_ENABLE = yes
|
EXTRAKEY_ENABLE = yes
|
||||||
RGBLIGHT_ENABLE = yes
|
RGBLIGHT_ENABLE = yes
|
||||||
|
LTO_ENABLE = yes
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
/* Copyright 2020 Pylon
|
||||||
|
*
|
||||||
|
* 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 3 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 "boston.h"
|
||||||
|
|
||||||
|
void keyboard_post_init_kb(void) {
|
||||||
|
/* this is to set an LED color at startup so it's not some random color*/
|
||||||
|
rgblight_enable_noeeprom();
|
||||||
|
rgblight_sethsv_noeeprom(0, 0, 128);
|
||||||
|
keyboard_post_init_user();
|
||||||
|
}
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
/* Copyright 2020 Pylon
|
||||||
|
*
|
||||||
|
* 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 3 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 ___ KC_NO
|
||||||
|
|
||||||
|
#define LAYOUT_all( \
|
||||||
|
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H, K0I, \
|
||||||
|
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H, K1I, \
|
||||||
|
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K5E, K2E, K2F, K2G, K2H, K2I, \
|
||||||
|
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H, K3I, \
|
||||||
|
K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H, K4I, \
|
||||||
|
K50, K51, K52, K53, K54, K55, K56, K57, K58, K59, K5A, K5B, K5C, K5D, K5F, K5G, K5H, K5I, \
|
||||||
|
K60, K61, K62, K64, K65, K67, K69, K6A, K6B, K6C, K6D, K6E, K6F, K6G, K6H \
|
||||||
|
) \
|
||||||
|
{ \
|
||||||
|
{K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H, K0I}, \
|
||||||
|
{K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H, K1I}, \
|
||||||
|
{K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H, K2I}, \
|
||||||
|
{K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H, K3I}, \
|
||||||
|
{K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H, K4I}, \
|
||||||
|
{K50, K51, K52, K53, K54, K55, K56, K57, K58, K59, K5A, K5B, K5C, K5D, K5E, K5F, K5G, K5H, K5I}, \
|
||||||
|
{K60, K61, K62, ___, K64, K65, ___, K67, ___, K69, K6A, K6B, K6C, K6D, K6E, K6F, K6G, K6H, ___ } \
|
||||||
|
}
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
/* Copyright 2020 QMK
|
||||||
|
*
|
||||||
|
* 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/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file was auto-generated by:
|
||||||
|
* `qmk chibios-confmigrate -i keyboards/boston/chconf.h -r platforms/chibios/common/configs/chconf.h`
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#define CH_CFG_ST_FREQUENCY 10000
|
||||||
|
|
||||||
|
#include_next <chconf.h>
|
||||||
|
|
||||||
@@ -0,0 +1,92 @@
|
|||||||
|
/* Copyright 2020 Pylon
|
||||||
|
*
|
||||||
|
* 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 3 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
|
||||||
|
|
||||||
|
/* USB Device descriptor parameter */
|
||||||
|
#define VENDOR_ID 0xAC11
|
||||||
|
#define PRODUCT_ID 0x4175
|
||||||
|
#define DEVICE_VER 0x0001
|
||||||
|
#define MANUFACTURER Pylon
|
||||||
|
#define PRODUCT Boston
|
||||||
|
/* key matrix size */
|
||||||
|
#define MATRIX_ROWS 7
|
||||||
|
#define MATRIX_COLS 19
|
||||||
|
|
||||||
|
#define MATRIX_COL_PINS \
|
||||||
|
{ B10, B11, B12, B13, B14, B15, A8, A9, A10, A15, B3, B4, B7, B8, B9, C14, C15, F0, A3 }
|
||||||
|
#define MATRIX_ROW_PINS \
|
||||||
|
{ B5, B6, A7, B0, B1, B2, A4 }
|
||||||
|
#define DIODE_DIRECTION COL2ROW
|
||||||
|
|
||||||
|
#define BACKLIGHT_PIN A6
|
||||||
|
#define BACKLIGHT_PWM_DRIVER PWMD3
|
||||||
|
#define BACKLIGHT_PWM_CHANNEL 1
|
||||||
|
#define BACKLIGHT_PAL_MODE 1
|
||||||
|
#define BACKLIGHT_LEVELS 6
|
||||||
|
#define BACKLIGHT_BREATHING
|
||||||
|
#define BREATHING_PERIOD 6
|
||||||
|
|
||||||
|
/* define if matrix has ghost */
|
||||||
|
//#define MATRIX_HAS_GHOST
|
||||||
|
|
||||||
|
/* Set 0 if debouncing isn't 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 RGBLED */
|
||||||
|
#define RGB_DI_PIN A5
|
||||||
|
#define RGBLED_NUM 1
|
||||||
|
#define RGBLIGHT_ANIMATIONS
|
||||||
|
#define RGBLIGHT_LAYERS
|
||||||
|
|
||||||
|
//The 3D-printed version of Boston uses APA106 LEDs, which are reversed
|
||||||
|
#define WS2812_BYTE_ORDER WS2812_BYTE_ORDER_RGB
|
||||||
|
|
||||||
|
/* Define encoder */
|
||||||
|
#define ENCODERS_PAD_A \
|
||||||
|
{ C13 }
|
||||||
|
#define ENCODERS_PAD_B \
|
||||||
|
{ F1 }
|
||||||
|
#define ENCODER_RESOLUTION 2
|
||||||
|
#define TAP_CODE_DELAY 15
|
||||||
|
|
||||||
|
/* Lock LEDs */
|
||||||
|
#define LED_NUM_LOCK_PIN A0
|
||||||
|
#define LED_CAPS_LOCK_PIN A1
|
||||||
|
#define LED_SCROLL_LOCK_PIN A2
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Feature disable options
|
||||||
|
* These options are also useful to firmware size reduction.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* disable debug print */
|
||||||
|
//#define NO_DEBUG
|
||||||
|
|
||||||
|
/* disable print */
|
||||||
|
//#define NO_PRINT
|
||||||
|
|
||||||
|
/* disable action features */
|
||||||
|
//#define NO_ACTION_LAYER
|
||||||
|
//#define NO_ACTION_TAPPING
|
||||||
|
//#define NO_ACTION_ONESHOT
|
||||||
|
//#define NO_ACTION_MACRO
|
||||||
|
//#define NO_ACTION_FUNCTION
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
/* Copyright 2020 QMK
|
||||||
|
*
|
||||||
|
* 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/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file was auto-generated by:
|
||||||
|
* `qmk chibios-confmigrate -i keyboards/boston/halconf.h -r platforms/chibios/common/configs/halconf.h`
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#define HAL_USE_I2C TRUE
|
||||||
|
|
||||||
|
#define HAL_USE_PWM TRUE
|
||||||
|
|
||||||
|
#define HAL_USE_SPI TRUE
|
||||||
|
|
||||||
|
#include_next <halconf.h>
|
||||||
|
|
||||||
@@ -0,0 +1,147 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "boston",
|
||||||
|
"url": "https://github.com/bluepylons/Boston",
|
||||||
|
"maintainer": "Pylon",
|
||||||
|
"width": 20.5,
|
||||||
|
"height": 7.75,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT": {
|
||||||
|
"layout": [
|
||||||
|
{"label":"P1", "x":1.5, "y":0},
|
||||||
|
{"label":"P2", "x":2.5, "y":0},
|
||||||
|
{"label":"P3", "x":3.5, "y":0},
|
||||||
|
{"label":"P4", "x":4.5, "y":0},
|
||||||
|
{"label":"P5", "x":5.75, "y":0},
|
||||||
|
{"label":"P6", "x":6.75, "y":0},
|
||||||
|
{"label":"P7", "x":7.75, "y":0},
|
||||||
|
{"label":"P8", "x":8.75, "y":0},
|
||||||
|
{"label":"P9", "x":10, "y":0},
|
||||||
|
{"label":"P10", "x":11, "y":0},
|
||||||
|
{"label":"P11", "x":12, "y":0},
|
||||||
|
{"label":"P12", "x":13, "y":0},
|
||||||
|
{"label":"P13", "x":14.25, "y":0},
|
||||||
|
{"label":"P14", "x":15.25, "y":0},
|
||||||
|
{"label":"P15", "x":16.25, "y":0},
|
||||||
|
{"label":"Insert", "x":17.5, "y":0},
|
||||||
|
{"label":"Home", "x":18.5, "y":0},
|
||||||
|
{"label":"PgUp", "x":19.5, "y":0},
|
||||||
|
{"label":"Esc", "x":0, "y":1},
|
||||||
|
{"label":"F1", "x":1.5, "y":1},
|
||||||
|
{"label":"F2", "x":2.5, "y":1},
|
||||||
|
{"label":"F3", "x":3.5, "y":1},
|
||||||
|
{"label":"F4", "x":4.5, "y":1},
|
||||||
|
{"label":"F5", "x":5.75, "y":1},
|
||||||
|
{"label":"F6", "x":6.75, "y":1},
|
||||||
|
{"label":"F7", "x":7.75, "y":1},
|
||||||
|
{"label":"F8", "x":8.75, "y":1},
|
||||||
|
{"label":"F9", "x":10, "y":1},
|
||||||
|
{"label":"F10", "x":11, "y":1},
|
||||||
|
{"label":"F11", "x":12, "y":1},
|
||||||
|
{"label":"F12", "x":13, "y":1},
|
||||||
|
{"label":"Print Screen", "x":14.25, "y":1},
|
||||||
|
{"label":"Scroll Lock", "x":15.25, "y":1},
|
||||||
|
{"label":"Pause", "x":16.25, "y":1},
|
||||||
|
{"label":"Delete", "x":17.5, "y":1},
|
||||||
|
{"label":"End", "x":18.5, "y":1},
|
||||||
|
{"label":"PgDn", "x":19.5, "y":1},
|
||||||
|
|
||||||
|
{"label":"~", "x":0, "y":2.5},
|
||||||
|
{"label":"!", "x":1, "y":2.5},
|
||||||
|
{"label":"@", "x":2, "y":2.5},
|
||||||
|
{"label":"#", "x":3, "y":2.5},
|
||||||
|
{"label":"$", "x":4, "y":2.5},
|
||||||
|
{"label":"%", "x":5, "y":2.5},
|
||||||
|
{"label":"^", "x":6, "y":2.5},
|
||||||
|
{"label":"&", "x":7, "y":2.5},
|
||||||
|
{"label":"*", "x":8, "y":2.5},
|
||||||
|
{"label":"(", "x":9, "y":2.5},
|
||||||
|
{"label":")", "x":10, "y":2.5},
|
||||||
|
{"label":"_", "x":11, "y":2.5},
|
||||||
|
{"label":"+", "x":12, "y":2.5},
|
||||||
|
{"label":"Backspace", "x":13, "y":2.5},
|
||||||
|
{"label":"Backspace", "x":14, "y":2.5},
|
||||||
|
{"label":"P16", "x":15.25, "y":2.5},
|
||||||
|
{"label":"Num Lock", "x":16.5, "y":2.5},
|
||||||
|
{"label":"/", "x":17.5, "y":2.5},
|
||||||
|
{"label":"*", "x":18.5, "y":2.5},
|
||||||
|
{"label":"-", "x":19.5, "y":2.5},
|
||||||
|
|
||||||
|
{"label":"Tab", "x":0, "y":3.5, "w":1.5},
|
||||||
|
{"label":"Q", "x":1.5, "y":3.5},
|
||||||
|
{"label":"W", "x":2.5, "y":3.5},
|
||||||
|
{"label":"E", "x":3.5, "y":3.5},
|
||||||
|
{"label":"R", "x":4.5, "y":3.5},
|
||||||
|
{"label":"T", "x":5.5, "y":3.5},
|
||||||
|
{"label":"Y", "x":6.5, "y":3.5},
|
||||||
|
{"label":"U", "x":7.5, "y":3.5},
|
||||||
|
{"label":"I", "x":8.5, "y":3.5},
|
||||||
|
{"label":"O", "x":9.5, "y":3.5},
|
||||||
|
{"label":"P", "x":10.5, "y":3.5},
|
||||||
|
{"label":"{", "x":11.5, "y":3.5},
|
||||||
|
{"label":"}", "x":12.5, "y":3.5},
|
||||||
|
{"label":"|", "x":13.5, "y":3.5, "w":1.5},
|
||||||
|
{"label":"P17", "x":15.25, "y":3.5},
|
||||||
|
{"label":"7", "x":16.5, "y":3.5},
|
||||||
|
{"label":"8", "x":17.5, "y":3.5},
|
||||||
|
{"label":"9", "x":18.5, "y":3.5},
|
||||||
|
{"label":"-", "x":19.5, "y":3.5},
|
||||||
|
|
||||||
|
{"label":"Caps Lock", "x":0, "y":4.5, "w":1.75},
|
||||||
|
{"label":"A", "x":1.75, "y":4.5},
|
||||||
|
{"label":"S", "x":2.75, "y":4.5},
|
||||||
|
{"label":"D", "x":3.75, "y":4.5},
|
||||||
|
{"label":"F", "x":4.75, "y":4.5},
|
||||||
|
{"label":"G", "x":5.75, "y":4.5},
|
||||||
|
{"label":"H", "x":6.75, "y":4.5},
|
||||||
|
{"label":"J", "x":7.75, "y":4.5},
|
||||||
|
{"label":"K", "x":8.75, "y":4.5},
|
||||||
|
{"label":"L", "x":9.75, "y":4.5},
|
||||||
|
{"label":"'", "x":10.75, "y":4.5},
|
||||||
|
{"label":"'", "x":11.75, "y":4.5},
|
||||||
|
{"label":"~", "x":12.75, "y":4.5},
|
||||||
|
{"label":"Enter", "x":13.75, "y":4.5, "w":1.25},
|
||||||
|
{"label":"P18", "x":15.25, "y":4.5},
|
||||||
|
{"label":"4", "x":16.5, "y":4.5},
|
||||||
|
{"label":"5", "x":17.5, "y":4.5},
|
||||||
|
{"label":"6", "x":18.5, "y":4.5},
|
||||||
|
{"label":"+", "x":19.5, "y":4.5},
|
||||||
|
|
||||||
|
{"label":"Left Shift", "x":0, "y":5.5, "w":1.25},
|
||||||
|
{"label":"Left Shift", "x":1.25, "y":5.5},
|
||||||
|
{"label":"Z", "x":2.25, "y":5.5},
|
||||||
|
{"label":"X", "x":3.25, "y":5.5},
|
||||||
|
{"label":"C", "x":4.25, "y":5.5},
|
||||||
|
{"label":"V", "x":5.25, "y":5.5},
|
||||||
|
{"label":"B", "x":6.25, "y":5.5},
|
||||||
|
{"label":"N", "x":7.25, "y":5.5},
|
||||||
|
{"label":"M", "x":8.25, "y":5.5},
|
||||||
|
{"label":"<", "x":9.25, "y":5.5},
|
||||||
|
{"label":">", "x":10.25, "y":5.5},
|
||||||
|
{"label":"?", "x":11.25, "y":5.5},
|
||||||
|
{"label":"Right Shift", "x":12.25, "y":5.5, "w":1.75},
|
||||||
|
{"label":"Up", "x":14.25, "y":5.75},
|
||||||
|
{"label":"1", "x":16.5, "y":5.5},
|
||||||
|
{"label":"2", "x":17.5, "y":5.5},
|
||||||
|
{"label":"3", "x":18.5, "y":5.5},
|
||||||
|
{"label":"Enter", "x":19.5, "y":5.5, "h":2},
|
||||||
|
|
||||||
|
|
||||||
|
{"label":"Ctrl", "x":0, "y":6.5, "w":1.25},
|
||||||
|
{"label":"OS", "x":1.25, "y":6.5, "w":1.25},
|
||||||
|
{"label":"Alt", "x":2.5, "y":6.5, "w":1.25},
|
||||||
|
{"label":"Space", "x":3.75, "y":6.5, "w":2.25},
|
||||||
|
{"label":"Space", "x":6, "y":6.5, "w":1.25},
|
||||||
|
{"label":"Space", "x":7.25, "y":6.5, "w":2.75},
|
||||||
|
{"label":"Alt", "x":10, "y":6.5},
|
||||||
|
{"label":"Menu", "x":11, "y":6.5},
|
||||||
|
{"label":"Ctrl", "x":12, "y":6.5},
|
||||||
|
{"label":"Left", "x":13.25, "y":6.75},
|
||||||
|
{"label":"Down", "x":14.25, "y":6.75},
|
||||||
|
{"label":"Right", "x":15.25, "y":6.75},
|
||||||
|
{"label":"0", "x":16.5, "y":6.5},
|
||||||
|
{"label":"0", "x":17.5, "y":6.5},
|
||||||
|
{"label":".", "x":18.5, "y":6.5}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
/* Copyright 2020 Pylon
|
||||||
|
*
|
||||||
|
* 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 3 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
|
||||||
|
|
||||||
|
/* Due to how the matrix is setup - the right split backspace key is, for firmware purposes the key to the right of up arrow, which on the actual keyboard is a blocker*/
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[0] = LAYOUT_all(
|
||||||
|
KC_MUTE, KC_F13 , KC_F14 , KC_F15 , KC_F16 , KC_F17 , KC_F18 , KC_F19 , KC_F20 , KC_F21 , KC_F22 , KC_F23 , KC_F24 , KC_MPRV, KC_MPLY, KC_MNXT , KC_INS , KC_HOME, KC_PGUP,
|
||||||
|
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_PAUSE, KC_DEL , KC_END , KC_PGDN,
|
||||||
|
KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, KC_BSPC, KC_CALC, KC_NLCK , KC_PSLS, KC_PAST, KC_PMNS,
|
||||||
|
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, RGB_TOG, KC_P7 , KC_P8 , KC_P9 , KC_PEQL,
|
||||||
|
KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT , KC_ENT , KC_MSEL, KC_P4 , KC_P5 , KC_P6 , KC_PPLS,
|
||||||
|
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_P1 , KC_P2 , KC_P3 , KC_PENT,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_SPC , KC_SPC , KC_RALT, KC_APP , KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0 , KC_P0 , KC_PDOT
|
||||||
|
),
|
||||||
|
|
||||||
|
[1] = LAYOUT_all(
|
||||||
|
|
||||||
|
_______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______ , _______, _______, _______,
|
||||||
|
_______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______ , _______, _______, _______,
|
||||||
|
_______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______, _______ , _______, _______, _______,
|
||||||
|
_______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______ , _______, _______, _______,
|
||||||
|
_______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______ , _______, _______, _______,
|
||||||
|
_______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______ , _______, _______, _______,
|
||||||
|
_______,_______,_______ , _______ ,_______ ,_______ , _______ ,_______ ,_______ , _______, _______, _______, _______ , _______, _______
|
||||||
|
),
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
void encoder_update_user(uint8_t index, bool clockwise) {
|
||||||
|
if (clockwise) {
|
||||||
|
tap_code(KC_VOLU);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
tap_code(KC_VOLD);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,223 @@
|
|||||||
|
/* Copyright 2020 Pylon
|
||||||
|
*
|
||||||
|
* 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 3 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
|
||||||
|
|
||||||
|
/* Due to how the matrix is setup - the right split backspace key is, for firmware purposes the key to the right of up arrow, which on the actual keyboard is a blocker*/
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[0] = LAYOUT_all(
|
||||||
|
KC_MUTE, KC_F13 , KC_F14 , KC_F15 , KC_F16 , KC_F17 , KC_F18 , KC_F19 , KC_F20 , KC_F21 , KC_F22 , KC_F23 , KC_F24 , KC_MPRV, KC_MPLY, KC_MNXT , KC_INS , KC_HOME, KC_PGUP,
|
||||||
|
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_PAUSE, KC_DEL , KC_END , KC_PGDN,
|
||||||
|
KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, KC_BSPC, KC_CALC, KC_NLCK , KC_PSLS, KC_PAST, KC_PMNS,
|
||||||
|
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, RGB_TOG, KC_P7 , KC_P8 , KC_P9 , KC_PEQL,
|
||||||
|
KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT , KC_ENT , KC_MSEL, KC_P4 , KC_P5 , KC_P6 , KC_PPLS,
|
||||||
|
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_P1 , KC_P2 , KC_P3 , KC_PENT,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_SPC , KC_SPC , KC_RALT, KC_APP , KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0 , KC_P0 , KC_PDOT
|
||||||
|
),
|
||||||
|
|
||||||
|
[1] = LAYOUT_all(
|
||||||
|
|
||||||
|
_______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______ , _______, _______, _______,
|
||||||
|
_______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______ , _______, _______, _______,
|
||||||
|
_______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______, _______ , _______, _______, _______,
|
||||||
|
_______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______ , _______, _______, _______,
|
||||||
|
_______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______ , _______, _______, _______,
|
||||||
|
_______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______ , _______, _______, _______,
|
||||||
|
_______,_______,_______ , _______ ,_______ ,_______ , _______ ,_______ ,_______ , _______, _______, _______, _______ , _______, _______
|
||||||
|
),
|
||||||
|
|
||||||
|
[2] = LAYOUT_all(
|
||||||
|
|
||||||
|
_______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______ , _______, _______, _______,
|
||||||
|
_______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______ , _______, _______, _______,
|
||||||
|
_______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______, _______ , _______, _______, _______,
|
||||||
|
_______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______ , _______, _______, _______,
|
||||||
|
_______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______ , _______, _______, _______,
|
||||||
|
_______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______ , _______, _______, _______,
|
||||||
|
_______,_______,_______ , _______ ,_______ ,_______ , _______ ,_______ ,_______ , _______, _______, _______, _______ , _______, _______
|
||||||
|
),
|
||||||
|
|
||||||
|
[3] = LAYOUT_all(
|
||||||
|
|
||||||
|
_______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______ , _______, _______, _______,
|
||||||
|
_______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______ , _______, _______, _______,
|
||||||
|
_______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______, _______ , _______, _______, _______,
|
||||||
|
_______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______ , _______, _______, _______,
|
||||||
|
_______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______ , _______, _______, _______,
|
||||||
|
_______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______ , _______, _______, _______,
|
||||||
|
_______,_______,_______ , _______ ,_______ ,_______ , _______ ,_______ ,_______ , _______, _______, _______, _______ , _______, _______
|
||||||
|
),
|
||||||
|
|
||||||
|
[4] = LAYOUT_all(
|
||||||
|
|
||||||
|
_______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______ , _______, _______, _______,
|
||||||
|
_______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______ , _______, _______, _______,
|
||||||
|
_______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______, _______ , _______, _______, _______,
|
||||||
|
_______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______ , _______, _______, _______,
|
||||||
|
_______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______ , _______, _______, _______,
|
||||||
|
_______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______ , _______, _______, _______,
|
||||||
|
_______,_______,_______ , _______ ,_______ ,_______ , _______ ,_______ ,_______ , _______, _______, _______, _______ , _______, _______
|
||||||
|
),
|
||||||
|
|
||||||
|
[5] = LAYOUT_all(
|
||||||
|
|
||||||
|
_______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______ , _______, _______, _______,
|
||||||
|
_______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______ , _______, _______, _______,
|
||||||
|
_______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______, _______ , _______, _______, _______,
|
||||||
|
_______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______ , _______, _______, _______,
|
||||||
|
_______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______ , _______, _______, _______,
|
||||||
|
_______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______ , _______, _______, _______,
|
||||||
|
_______,_______,_______ , _______ ,_______ ,_______ , _______ ,_______ ,_______ , _______, _______, _______, _______ , _______, _______
|
||||||
|
),
|
||||||
|
|
||||||
|
[6] = LAYOUT_all(
|
||||||
|
|
||||||
|
_______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______ , _______, _______, _______,
|
||||||
|
_______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______ , _______, _______, _______,
|
||||||
|
_______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______, _______ , _______, _______, _______,
|
||||||
|
_______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______ , _______, _______, _______,
|
||||||
|
_______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______ , _______, _______, _______,
|
||||||
|
_______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______ , _______, _______, _______,
|
||||||
|
_______,_______,_______ , _______ ,_______ ,_______ , _______ ,_______ ,_______ , _______, _______, _______, _______ , _______, _______
|
||||||
|
),
|
||||||
|
|
||||||
|
[7] = LAYOUT_all(
|
||||||
|
|
||||||
|
_______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______ , _______, _______, _______,
|
||||||
|
_______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______ , _______, _______, _______,
|
||||||
|
_______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______, _______ , _______, _______, _______,
|
||||||
|
_______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______ , _______, _______, _______,
|
||||||
|
_______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______ , _______, _______, _______,
|
||||||
|
_______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______ , _______, _______, _______,
|
||||||
|
_______,_______,_______ , _______ ,_______ ,_______ , _______ ,_______ ,_______ , _______, _______, _______, _______ , _______, _______
|
||||||
|
),
|
||||||
|
};
|
||||||
|
|
||||||
|
uint8_t go_to_layer = 0; /* Used for the layer changing code for the encoder below */
|
||||||
|
|
||||||
|
void encoder_update_user(uint8_t index, bool clockwise) {
|
||||||
|
if (matrix_is_on(6, 10)) { /* Use the knob to change layers when holding down Menu key. Unfortunately using layers to initiate this behavior is not possible. */
|
||||||
|
if (clockwise) {
|
||||||
|
|
||||||
|
layer_off(go_to_layer);
|
||||||
|
|
||||||
|
if(go_to_layer<7) {
|
||||||
|
go_to_layer++;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
go_to_layer=0;
|
||||||
|
}
|
||||||
|
|
||||||
|
layer_on(go_to_layer);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
else {
|
||||||
|
|
||||||
|
layer_off(go_to_layer);
|
||||||
|
|
||||||
|
/* update go_to_layer*/
|
||||||
|
if(go_to_layer>0) {
|
||||||
|
go_to_layer--;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
go_to_layer=7;
|
||||||
|
}
|
||||||
|
|
||||||
|
layer_on(go_to_layer);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
else { /* normal operation as volume knob */
|
||||||
|
if (clockwise) {
|
||||||
|
tap_code(KC_VOLU);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
tap_code(KC_VOLD);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*Default layer is white.*/
|
||||||
|
/*Remember to also change the color in keyboard_post_init_kb in boston.c to make the startup color match the layer 0 color */
|
||||||
|
const rgblight_segment_t PROGMEM layer_0[] = RGBLIGHT_LAYER_SEGMENTS(
|
||||||
|
{0, 4, 0, 0, 128} /*White*/
|
||||||
|
);
|
||||||
|
|
||||||
|
const rgblight_segment_t PROGMEM layer_1[] = RGBLIGHT_LAYER_SEGMENTS(
|
||||||
|
{0, 4, 0, 255, 128} /*Red*/
|
||||||
|
);
|
||||||
|
|
||||||
|
const rgblight_segment_t PROGMEM layer_2[] = RGBLIGHT_LAYER_SEGMENTS(
|
||||||
|
{0, 4, 21, 255, 128} /*Orange*/
|
||||||
|
);
|
||||||
|
|
||||||
|
const rgblight_segment_t PROGMEM layer_3[] = RGBLIGHT_LAYER_SEGMENTS(
|
||||||
|
{0, 4, 43, 255, 128} /*Yellow*/
|
||||||
|
);
|
||||||
|
|
||||||
|
const rgblight_segment_t PROGMEM layer_4[] = RGBLIGHT_LAYER_SEGMENTS(
|
||||||
|
{0, 4, 75, 255, 128} /*Green*/
|
||||||
|
);
|
||||||
|
|
||||||
|
const rgblight_segment_t PROGMEM layer_5[] = RGBLIGHT_LAYER_SEGMENTS(
|
||||||
|
{0, 4, 135, 255, 128} /*Teal*/
|
||||||
|
);
|
||||||
|
|
||||||
|
const rgblight_segment_t PROGMEM layer_6[] = RGBLIGHT_LAYER_SEGMENTS(
|
||||||
|
{0, 4, 160, 255, 128} /*Blue*/
|
||||||
|
);
|
||||||
|
|
||||||
|
const rgblight_segment_t PROGMEM layer_7[] = RGBLIGHT_LAYER_SEGMENTS(
|
||||||
|
{0, 4, 190, 255, 128} /*Magenta*/
|
||||||
|
);
|
||||||
|
|
||||||
|
const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST(
|
||||||
|
layer_0,
|
||||||
|
layer_1,
|
||||||
|
layer_2,
|
||||||
|
layer_3,
|
||||||
|
layer_4,
|
||||||
|
layer_5,
|
||||||
|
layer_6,
|
||||||
|
layer_7
|
||||||
|
);
|
||||||
|
|
||||||
|
void keyboard_post_init_user(void) {
|
||||||
|
// Enable the LED layers
|
||||||
|
rgblight_layers = my_rgb_layers;
|
||||||
|
}
|
||||||
|
|
||||||
|
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||||
|
// Both layers will light up if both kb layers are active
|
||||||
|
rgblight_set_layer_state(0, layer_state_cmp(state, 0));
|
||||||
|
rgblight_set_layer_state(1, layer_state_cmp(state, 1));
|
||||||
|
rgblight_set_layer_state(2, layer_state_cmp(state, 2));
|
||||||
|
rgblight_set_layer_state(3, layer_state_cmp(state, 3));
|
||||||
|
rgblight_set_layer_state(4, layer_state_cmp(state, 4));
|
||||||
|
rgblight_set_layer_state(5, layer_state_cmp(state, 5));
|
||||||
|
rgblight_set_layer_state(6, layer_state_cmp(state, 6));
|
||||||
|
rgblight_set_layer_state(7, layer_state_cmp(state, 7));
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool led_update_user(led_t led_state) {
|
||||||
|
rgblight_set_layer_state(0, true);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
/* Copyright 2020 QMK
|
||||||
|
*
|
||||||
|
* 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/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file was auto-generated by:
|
||||||
|
* `qmk chibios-confmigrate -i keyboards/boston/mcuconf.h -r platforms/chibios/GENERIC_STM32_F072XB/configs/mcuconf.h`
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include_next <mcuconf.h>
|
||||||
|
|
||||||
|
#undef STM32_I2C_USE_I2C1
|
||||||
|
#define STM32_I2C_USE_I2C1 TRUE
|
||||||
|
|
||||||
|
#undef STM32_PWM_USE_TIM3
|
||||||
|
#define STM32_PWM_USE_TIM3 TRUE
|
||||||
|
|
||||||
|
#undef STM32_SPI_USE_SPI2
|
||||||
|
#define STM32_SPI_USE_SPI2 TRUE
|
||||||
|
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
# Boston
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
A compact 120% keyboard.
|
||||||
|
|
||||||
|
This keyboard is currently in IC - [Geekhack IC thread is here](https://geekhack.org/index.php?topic=106501.0). Group buy details will be posted once it is ready.
|
||||||
|
|
||||||
|
* Keyboard Maintainer: [Bluepylons](https://github.com/bluepylons)
|
||||||
|
* Hardware Supported: Boston PCB (STM32F072)
|
||||||
|
* Hardware Availability: PCB and 3D-printing files are available on [Github](https://github.com/bluepylons/Boston).
|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make boston:default
|
||||||
|
|
||||||
|
Flashing example for this keyboard:
|
||||||
|
|
||||||
|
make boston:default:flash
|
||||||
|
|
||||||
|
To reset the board, use a pin to press the reset button on the underside of the keyboard, above the numlock key.
|
||||||
|
|
||||||
|
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,26 @@
|
|||||||
|
# MCU name
|
||||||
|
MCU = STM32F072
|
||||||
|
|
||||||
|
# Build Options
|
||||||
|
# change yes to no to disable
|
||||||
|
#
|
||||||
|
BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
|
||||||
|
MOUSEKEY_ENABLE = no # 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 = yes # Enable keyboard backlight functionality
|
||||||
|
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
|
||||||
|
BLUETOOTH_ENABLE = no # Enable Bluetooth
|
||||||
|
AUDIO_ENABLE = no # Audio output
|
||||||
|
ENCODER_ENABLE = yes
|
||||||
|
|
||||||
|
# Enter lower-power sleep mode when on the ChibiOS idle thread
|
||||||
|
OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
|
||||||
|
|
||||||
|
# RGB setting
|
||||||
|
WS2812_DRIVER = bitbang
|
||||||
@@ -0,0 +1,102 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "BOX75",
|
||||||
|
"url": "",
|
||||||
|
"maintainer": "Gondolindrim",
|
||||||
|
"width": 16.25,
|
||||||
|
"height": 6.375,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT": {
|
||||||
|
"layout": [
|
||||||
|
{"x":0, "y":0},
|
||||||
|
{"x":1.25, "y":0},
|
||||||
|
{"x":2.25, "y":0},
|
||||||
|
{"x":3.25, "y":0},
|
||||||
|
{"x":4.25, "y":0},
|
||||||
|
{"x":5.5, "y":0},
|
||||||
|
{"x":6.5, "y":0},
|
||||||
|
{"x":7.5, "y":0},
|
||||||
|
{"x":8.5, "y":0},
|
||||||
|
{"x":9.75, "y":0},
|
||||||
|
{"x":10.75, "y":0},
|
||||||
|
{"x":11.75, "y":0},
|
||||||
|
{"x":12.75, "y":0},
|
||||||
|
{"x":14, "y":0},
|
||||||
|
{"x":15.25, "y":0},
|
||||||
|
|
||||||
|
{"x":0, "y":1.25},
|
||||||
|
{"x":1, "y":1.25},
|
||||||
|
{"x":2, "y":1.25},
|
||||||
|
{"x":3, "y":1.25},
|
||||||
|
{"x":4, "y":1.25},
|
||||||
|
{"x":5, "y":1.25},
|
||||||
|
{"x":6, "y":1.25},
|
||||||
|
{"x":7, "y":1.25},
|
||||||
|
{"x":8, "y":1.25},
|
||||||
|
{"x":9, "y":1.25},
|
||||||
|
{"x":10, "y":1.25},
|
||||||
|
{"x":11, "y":1.25},
|
||||||
|
{"x":12, "y":1.25},
|
||||||
|
{"x":13, "y":1.25},
|
||||||
|
{"x":14, "y":1.25},
|
||||||
|
{"x":15.25, "y":1.25},
|
||||||
|
|
||||||
|
{"x":0, "y":2.25, "w":1.5},
|
||||||
|
{"x":1.5, "y":2.25},
|
||||||
|
{"x":2.5, "y":2.25},
|
||||||
|
{"x":3.5, "y":2.25},
|
||||||
|
{"x":4.5, "y":2.25},
|
||||||
|
{"x":5.5, "y":2.25},
|
||||||
|
{"x":6.5, "y":2.25},
|
||||||
|
{"x":7.5, "y":2.25},
|
||||||
|
{"x":8.5, "y":2.25},
|
||||||
|
{"x":9.5, "y":2.25},
|
||||||
|
{"x":10.5, "y":2.25},
|
||||||
|
{"x":11.5, "y":2.25},
|
||||||
|
{"x":12.5, "y":2.25},
|
||||||
|
{"x":13.5, "y":2.25, "w":1.5},
|
||||||
|
{"x":15.25, "y":2.25},
|
||||||
|
|
||||||
|
{"x":0, "y":3.25, "w":1.75},
|
||||||
|
{"x":1.75, "y":3.25},
|
||||||
|
{"x":2.75, "y":3.25},
|
||||||
|
{"x":3.75, "y":3.25},
|
||||||
|
{"x":4.75, "y":3.25},
|
||||||
|
{"x":5.75, "y":3.25},
|
||||||
|
{"x":6.75, "y":3.25},
|
||||||
|
{"x":7.75, "y":3.25},
|
||||||
|
{"x":8.75, "y":3.25},
|
||||||
|
{"x":9.75, "y":3.25},
|
||||||
|
{"x":10.75, "y":3.25},
|
||||||
|
{"x":11.75, "y":3.25},
|
||||||
|
{"x":12.75, "y":3.25, "w":2.25},
|
||||||
|
{"x":15.25, "y":3.25},
|
||||||
|
|
||||||
|
{"x":0, "y":4.25, "w":1.25},
|
||||||
|
{"x":1.25, "y":4.25},
|
||||||
|
{"x":2.25, "y":4.25},
|
||||||
|
{"x":3.25, "y":4.25},
|
||||||
|
{"x":4.25, "y":4.25},
|
||||||
|
{"x":5.25, "y":4.25},
|
||||||
|
{"x":6.25, "y":4.25},
|
||||||
|
{"x":7.25, "y":4.25},
|
||||||
|
{"x":8.25, "y":4.25},
|
||||||
|
{"x":9.25, "y":4.25},
|
||||||
|
{"x":10.25, "y":4.25},
|
||||||
|
{"x":11.25, "y":4.25},
|
||||||
|
{"x":12.25, "y":4.25, "w":1.75},
|
||||||
|
{"x":14.125, "y":4.375},
|
||||||
|
{"x":15.25, "y":4.25},
|
||||||
|
|
||||||
|
{"x":0, "y":5.25, "w":1.25},
|
||||||
|
{"x":1.25, "y":5.25, "w":1.25},
|
||||||
|
{"x":2.5, "y":5.25, "w":1.25},
|
||||||
|
{"x":3.75, "y":5.25, "w":6.25},
|
||||||
|
{"x":10, "y":5.25, "w":1.5},
|
||||||
|
{"x":11.5, "y":5.25, "w":1.5},
|
||||||
|
{"x":13.125, "y":5.375},
|
||||||
|
{"x":14.125, "y":5.375},
|
||||||
|
{"x":15.125, "y":5.375}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "Butter Stick",
|
||||||
|
"url": "",
|
||||||
|
"maintainer": "germ",
|
||||||
|
"width": 10,
|
||||||
|
"height": 2,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT_butter": {
|
||||||
|
"layout": [
|
||||||
|
{"x":0, "y":0},
|
||||||
|
{"x":1, "y":0},
|
||||||
|
{"x":2, "y":0},
|
||||||
|
{"x":3, "y":0},
|
||||||
|
{"x":4, "y":0},
|
||||||
|
{"x":5, "y":0},
|
||||||
|
{"x":6, "y":0},
|
||||||
|
{"x":7, "y":0},
|
||||||
|
{"x":8, "y":0},
|
||||||
|
{"x":9, "y":0},
|
||||||
|
|
||||||
|
{"x":0, "y":1},
|
||||||
|
{"x":1, "y":1},
|
||||||
|
{"x":2, "y":1},
|
||||||
|
{"x":3, "y":1},
|
||||||
|
{"x":4, "y":1},
|
||||||
|
{"x":5, "y":1},
|
||||||
|
{"x":6, "y":1},
|
||||||
|
{"x":7, "y":1},
|
||||||
|
{"x":8, "y":1},
|
||||||
|
{"x":9, "y":1}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -6,13 +6,13 @@
|
|||||||
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
|
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
|
||||||
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
|
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
|
||||||
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
|
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
|
||||||
k30, k31, k32, k33, k34, k35 , k37, k38, k39, k3a, k3b \
|
k30, k31, k32, k33, k34, k36 , k37, k38, k39, k3a, k3b \
|
||||||
) \
|
) \
|
||||||
{ \
|
{ \
|
||||||
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
|
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
|
||||||
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
|
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
|
||||||
{ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
|
{ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
|
||||||
{ k30, k31, k32, k33, k34, k35, KC_NO, k37, k38, k39, k3a, k3b } \
|
{ k30, k31, k32, k33, k34, KC_NO, k36, k37, k38, k39, k3a, k3b } \
|
||||||
}
|
}
|
||||||
|
|
||||||
#define LAYOUT_ortho_4x12( \
|
#define LAYOUT_ortho_4x12( \
|
||||||
|
|||||||
@@ -7,14 +7,14 @@
|
|||||||
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
|
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
|
||||||
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
|
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
|
||||||
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, \
|
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, \
|
||||||
k40, k41, k42, k43, k44, k45 , k47, k48, k49, k4a, k4b \
|
k40, k41, k42, k43, k44, k46 , k47, k48, k49, k4a, k4b \
|
||||||
) \
|
) \
|
||||||
{ \
|
{ \
|
||||||
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
|
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
|
||||||
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
|
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
|
||||||
{ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
|
{ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
|
||||||
{ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b }, \
|
{ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b }, \
|
||||||
{ k40, k41, k42, k43, k44, k45, KC_NO, k47, k48, k49, k4a, k4b }, \
|
{ k40, k41, k42, k43, k44, KC_NO, k46, k47, k48, k49, k4a, k4b }, \
|
||||||
}
|
}
|
||||||
|
|
||||||
#define LAYOUT_ortho_5x12( \
|
#define LAYOUT_ortho_5x12( \
|
||||||
|
|||||||
@@ -0,0 +1,55 @@
|
|||||||
|
/*
|
||||||
|
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 0x0082
|
||||||
|
#define DEVICE_VER 0x0001
|
||||||
|
#define MANUFACTURER CapsUnlocked
|
||||||
|
#define PRODUCT CU80 v2 ANSI RGB
|
||||||
|
|
||||||
|
/* key matrix size */
|
||||||
|
#define MATRIX_ROWS 6
|
||||||
|
#define MATRIX_COLS 17
|
||||||
|
|
||||||
|
#define MATRIX_ROW_PINS { D3, D2, B7, F1, C7, D5 }
|
||||||
|
#define MATRIX_COL_PINS { B0, B1, B2, B3, F4, F5, F6, F7, B6, B5, D7, B4, D6, F0, D1, C6, D4 }
|
||||||
|
#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
|
||||||
|
|
||||||
|
#define LOCKING_SUPPORT_ENABLE
|
||||||
|
/* Locking resynchronize hack */
|
||||||
|
#define LOCKING_RESYNC_ENABLE
|
||||||
|
|
||||||
|
|
||||||
|
/* Define RGB */
|
||||||
|
#define RGB_DI_PIN E6
|
||||||
|
#define RGB_MATRIX_KEYPRESSES
|
||||||
|
#define DRIVER_LED_TOTAL 87
|
||||||
|
#define RGBLED_NUM 87
|
||||||
|
#define RGBLIGHT_LIMIT_VAL 50
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,100 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "CapsUnlocked CU80 v2 ANSI RGB",
|
||||||
|
"maintainer": "rys",
|
||||||
|
"url": "https://caps-unlocked.com/cu80-round-2/",
|
||||||
|
"width": 18.25,
|
||||||
|
"height": 6.5,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT_tkl_ansi": {
|
||||||
|
"layout": [
|
||||||
|
{"label":"Esc", "x":0, "y":0},
|
||||||
|
{"label":"F1", "x":2, "y":0},
|
||||||
|
{"label":"F2", "x":3, "y":0},
|
||||||
|
{"label":"F3", "x":4, "y":0},
|
||||||
|
{"label":"F4", "x":5, "y":0},
|
||||||
|
{"label":"F5", "x":6.5, "y":0},
|
||||||
|
{"label":"F6", "x":7.5, "y":0},
|
||||||
|
{"label":"F7", "x":8.5, "y":0},
|
||||||
|
{"label":"F8", "x":9.5, "y":0},
|
||||||
|
{"label":"F9", "x":11, "y":0},
|
||||||
|
{"label":"F10", "x":12, "y":0},
|
||||||
|
{"label":"F11", "x":13, "y":0},
|
||||||
|
{"label":"F12", "x":14, "y":0},
|
||||||
|
{"label":"PrtSc", "x":15.25, "y":0},
|
||||||
|
{"label":"Scroll Lock", "x":16.25, "y":0},
|
||||||
|
{"label":"Pause", "x":17.25, "y":0},
|
||||||
|
{"label":"\u00ac", "x":0, "y":1.5},
|
||||||
|
{"label":"!", "x":1, "y":1.5},
|
||||||
|
{"label":"@", "x":2, "y":1.5},
|
||||||
|
{"label":"£", "x":3, "y":1.5},
|
||||||
|
{"label":"$", "x":4, "y":1.5},
|
||||||
|
{"label":"%", "x":5, "y":1.5},
|
||||||
|
{"label":"^", "x":6, "y":1.5},
|
||||||
|
{"label":"&", "x":7, "y":1.5},
|
||||||
|
{"label":"*", "x":8, "y":1.5},
|
||||||
|
{"label":"(", "x":9, "y":1.5},
|
||||||
|
{"label":")", "x":10, "y":1.5},
|
||||||
|
{"label":"_", "x":11, "y":1.5},
|
||||||
|
{"label":"+", "x":12, "y":1.5},
|
||||||
|
{"label":"Backspace", "x":13, "y":1.5, "w":2},
|
||||||
|
{"label":"Insert", "x":15.25, "y":1.5},
|
||||||
|
{"label":"Home", "x":16.25, "y":1.5},
|
||||||
|
{"label":"PgUp", "x":17.25, "y":1.5},
|
||||||
|
{"label":"Tab", "x":0, "y":2.5, "w":1.5},
|
||||||
|
{"label":"Q", "x":1.5, "y":2.5},
|
||||||
|
{"label":"W", "x":2.5, "y":2.5},
|
||||||
|
{"label":"E", "x":3.5, "y":2.5},
|
||||||
|
{"label":"R", "x":4.5, "y":2.5},
|
||||||
|
{"label":"T", "x":5.5, "y":2.5},
|
||||||
|
{"label":"Y", "x":6.5, "y":2.5},
|
||||||
|
{"label":"U", "x":7.5, "y":2.5},
|
||||||
|
{"label":"I", "x":8.5, "y":2.5},
|
||||||
|
{"label":"O", "x":9.5, "y":2.5},
|
||||||
|
{"label":"P", "x":10.5, "y":2.5},
|
||||||
|
{"label":"{", "x":11.5, "y":2.5},
|
||||||
|
{"label":"}", "x":12.5, "y":2.5},
|
||||||
|
{"label":"|", "x":13.5, "y":2.5, "w":1.5},
|
||||||
|
{"label":"Delete", "x":15.25, "y":2.5},
|
||||||
|
{"label":"End", "x":16.25, "y":2.5},
|
||||||
|
{"label":"PgDn", "x":17.25, "y":2.5},
|
||||||
|
{"label":"Caps Lock", "x":0, "y":3.5, "w":1.75},
|
||||||
|
{"label":"A", "x":1.75, "y":3.5},
|
||||||
|
{"label":"S", "x":2.75, "y":3.5},
|
||||||
|
{"label":"D", "x":3.75, "y":3.5},
|
||||||
|
{"label":"F", "x":4.75, "y":3.5},
|
||||||
|
{"label":"G", "x":5.75, "y":3.5},
|
||||||
|
{"label":"H", "x":6.75, "y":3.5},
|
||||||
|
{"label":"J", "x":7.75, "y":3.5},
|
||||||
|
{"label":"K", "x":8.75, "y":3.5},
|
||||||
|
{"label":"L", "x":9.75, "y":3.5},
|
||||||
|
{"label":":", "x":10.75, "y":3.5},
|
||||||
|
{"label":"\"", "x":11.75, "y":3.5},
|
||||||
|
{"label":"Enter", "x":12.75, "y":3.5, "w":2.25},
|
||||||
|
{"label":"Shift", "x":0, "y":4.5, "w":2.25},
|
||||||
|
{"label":"Z", "x":2.25, "y":4.5},
|
||||||
|
{"label":"X", "x":3.25, "y":4.5},
|
||||||
|
{"label":"C", "x":4.25, "y":4.5},
|
||||||
|
{"label":"V", "x":5.25, "y":4.5},
|
||||||
|
{"label":"B", "x":6.25, "y":4.5},
|
||||||
|
{"label":"N", "x":7.25, "y":4.5},
|
||||||
|
{"label":"M", "x":8.25, "y":4.5},
|
||||||
|
{"label":"<", "x":9.25, "y":4.5},
|
||||||
|
{"label":">", "x":10.25, "y":4.5},
|
||||||
|
{"label":"?", "x":11.25, "y":4.5},
|
||||||
|
{"label":"Shift", "x":12.25, "y":4.5, "w":2.75},
|
||||||
|
{"label":"Up", "x":16.25, "y":4.5},
|
||||||
|
{"label":"Ctrl", "x":0, "y":5.5, "w":1.25},
|
||||||
|
{"label":"Alt", "x":1.25, "y":5.5, "w":1.25},
|
||||||
|
{"label":"Win", "x":2.5, "y":5.5, "w":1.25},
|
||||||
|
{"label":"Space", "x":3.75, "y":5.5, "w":6.25},
|
||||||
|
{"label":"Win", "x":10, "y":5.5, "w":1.25},
|
||||||
|
{"label":"AltGr", "x":11.25, "y":5.5, "w":1.25},
|
||||||
|
{"label":"Ctrl", "x":12.5, "y":5.5, "w":1.25},
|
||||||
|
{"label":"Fn", "x":13.75, "y":5.5, "w":1.25},
|
||||||
|
{"label":"Left", "x":15.25, "y":5.5},
|
||||||
|
{"label":"Down", "x":16.25, "y":5.5},
|
||||||
|
{"label":"Right", "x":17.25, "y":5.5}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
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_tkl_ansi(
|
||||||
|
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_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
|
||||||
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
|
||||||
|
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, 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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
|
),
|
||||||
|
[1] = LAYOUT_tkl_ansi(
|
||||||
|
RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_M_P, RGB_M_B, RGB_M_R,
|
||||||
|
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, RGB_SAI, RGB_VAI,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_VAD,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD,RGB_TOG, RGB_MOD
|
||||||
|
),
|
||||||
|
};
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
# The default ANSI keymap for the CU80
|
||||||
|
|
||||||
|
This CU80 is keymap is for the fixed ANSI variant with fully populated bottom row.
|
||||||
@@ -0,0 +1,55 @@
|
|||||||
|
/* 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_tkl_ansi(
|
||||||
|
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_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
|
||||||
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
|
||||||
|
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, 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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
|
),
|
||||||
|
[1] = LAYOUT_tkl_ansi(
|
||||||
|
RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_M_P, RGB_M_B, RGB_M_R,
|
||||||
|
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, RGB_SAI, RGB_VAI,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_VAD,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD,RGB_TOG, RGB_MOD
|
||||||
|
),
|
||||||
|
[2] = LAYOUT_tkl_ansi(
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
[3] = LAYOUT_tkl_ansi(
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
};
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
VIA_ENABLE = yes
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
# CU80 v2 ANSI RGB
|
||||||
|
|
||||||
|
The CU80 v2 ANSI is the PCB for round 2 of the CU80 TKL keyboard, with matrix RGB lighting, fixed ANSI layout and VIA support.
|
||||||
|
|
||||||
|
This firmware adds RGB matrix support.
|
||||||
|
|
||||||
|
To place the keyboard into bootloader mode in order to flash it, hold the ESC key while plugging the board in.
|
||||||
|
|
||||||
|
* Keyboard maintainer: [rys](https://github.com/rys)
|
||||||
|
* Hardware supported: CU80 v2 ANSI
|
||||||
|
* Hardware availability: [CapsUnlocked](https://caps-unlocked.com/cu80-round-2/)
|
||||||
|
|
||||||
|
Make and flash example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make capsunlocked/cu80/v2_ansi_rgb:default:flash
|
||||||
|
make capsunlocked/cu80/v2_ansi_rgb:via: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,28 @@
|
|||||||
|
# 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 = no # 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 # Enable RGB matrix
|
||||||
|
RGB_MATRIX_DRIVER = WS2812 # Set Driver to WS2812
|
||||||
|
NO_USB_STARTUP_CHECK = yes # resolve possible sleep issue
|
||||||
|
|
||||||
|
|
||||||
|
LAYOUTS = tkl_ansi
|
||||||
Loaded 100 of 726 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user