aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/ja/feature_advanced_keycodes.md85
-rw-r--r--docs/ja/feature_audio.md328
-rw-r--r--docs/ja/feature_auto_shift.md135
-rw-r--r--docs/ja/feature_backlight.md253
-rw-r--r--docs/ja/feature_bluetooth.md52
-rw-r--r--docs/ja/feature_bootmagic.md171
-rw-r--r--docs/ja/hardware_avr.md189
-rw-r--r--docs/ja/hardware_drivers.md45
-rw-r--r--docs/ja/hardware_keyboard_guidelines.md155
-rw-r--r--docs/ja/i2c_driver.md58
-rw-r--r--drivers/avr/ws2812.c35
-rw-r--r--drivers/avr/ws2812.h4
-rw-r--r--keyboards/1upkeyboards/sweet16/config.h2
-rw-r--r--keyboards/1upkeyboards/sweet16/keymaps/via/keymap.c37
-rw-r--r--keyboards/1upkeyboards/sweet16/keymaps/via/rules.mk2
-rw-r--r--keyboards/1upkeyboards/sweet16/v1/config.h2
-rw-r--r--keyboards/1upkeyboards/sweet16/v2/promicro/config.h2
-rw-r--r--keyboards/1upkeyboards/sweet16/v2/proton_c/config.h2
-rw-r--r--keyboards/ai03/orbit_x/config.h175
-rw-r--r--keyboards/ai03/orbit_x/info.json61
-rw-r--r--keyboards/ai03/orbit_x/keymaps/default/keymap.c59
-rw-r--r--keyboards/ai03/orbit_x/keymaps/default/readme.md3
-rw-r--r--keyboards/ai03/orbit_x/keymaps/via/keymap.c59
-rw-r--r--keyboards/ai03/orbit_x/keymaps/via/readme.md2
-rw-r--r--keyboards/ai03/orbit_x/keymaps/via/rules.mk1
-rw-r--r--keyboards/ai03/orbit_x/orbit_x.c18
-rw-r--r--keyboards/ai03/orbit_x/orbit_x.h44
-rw-r--r--keyboards/ai03/orbit_x/readme.md15
-rw-r--r--keyboards/ai03/orbit_x/rules.mk33
-rw-r--r--keyboards/basekeys/slice/rev1/info.json2
-rw-r--r--keyboards/basekeys/slice/rev1_rgb/info.json2
-rw-r--r--keyboards/bat43/bat43.c17
-rw-r--r--keyboards/bat43/bat43.h46
-rw-r--r--keyboards/bat43/config.h252
-rw-r--r--keyboards/bat43/keymaps/default/keymap.c50
-rw-r--r--keyboards/bat43/keymaps/default/readme.md1
-rw-r--r--keyboards/bat43/readme.md15
-rw-r--r--keyboards/bat43/rules.mk32
-rw-r--r--keyboards/bear_face/info.json11
-rw-r--r--keyboards/centromere/keymaps/mini/keymap.c118
-rw-r--r--keyboards/coseyfannitutti/discipline/config.h2
-rw-r--r--keyboards/coseyfannitutti/discipline/discipline.h55
-rw-r--r--keyboards/coseyfannitutti/discipline/info.json12
-rw-r--r--keyboards/coseyfannitutti/discipline/keymaps/67_ansi/keymap.c68
-rw-r--r--keyboards/coseyfannitutti/discipline/keymaps/coseyfannitutti/keymap.c69
-rw-r--r--keyboards/coseyfannitutti/discipline/keymaps/default/keymap.c37
-rw-r--r--keyboards/coseyfannitutti/discipline/keymaps/iso/keymap.c37
-rw-r--r--keyboards/coseyfannitutti/discipline/keymaps/via/keymap.c61
-rw-r--r--keyboards/coseyfannitutti/discipline/keymaps/via/rules.mk4
-rw-r--r--keyboards/coseyfannitutti/discipline/keymaps/wkl_ansi_2_right_mods/keymap.c68
-rw-r--r--keyboards/coseyfannitutti/discipline/keymaps/wkl_ansi_3_right_mods/keymap.c68
-rw-r--r--keyboards/coseyfannitutti/discipline/rules.mk2
-rw-r--r--keyboards/coseyfannitutti/romeo/config.h4
-rw-r--r--keyboards/coseyfannitutti/romeo/keymaps/via/keymap.c43
-rw-r--r--keyboards/coseyfannitutti/romeo/keymaps/via/rules.mk4
-rw-r--r--keyboards/dz60/rules.mk2
-rw-r--r--keyboards/ergodox_ez/led_i2c.c13
-rw-r--r--keyboards/gh60/revc/revc.h14
-rw-r--r--keyboards/gh60/revc/rules.mk2
-rw-r--r--keyboards/gingham/config.h7
-rw-r--r--keyboards/gingham/keymaps/default/keymap.c14
-rw-r--r--keyboards/gingham/keymaps/iso/keymap.c22
-rw-r--r--keyboards/gingham/keymaps/via/keymap.c48
-rw-r--r--keyboards/gingham/keymaps/via/readme.md3
-rw-r--r--keyboards/gingham/keymaps/via/rules.mk3
-rw-r--r--keyboards/hhkb/hhkb.h1
-rw-r--r--keyboards/hhkb/rules.mk2
-rw-r--r--keyboards/lattice60/config.h105
-rw-r--r--keyboards/lattice60/info.json19
-rw-r--r--keyboards/lattice60/keymaps/default/config.h20
-rw-r--r--keyboards/lattice60/keymaps/default/keymap.c40
-rw-r--r--keyboards/lattice60/keymaps/default/readme.md5
-rw-r--r--keyboards/lattice60/keymaps/default_hhkb/config.h20
-rw-r--r--keyboards/lattice60/keymaps/default_hhkb/keymap.c40
-rw-r--r--keyboards/lattice60/keymaps/default_hhkb/readme.md5
-rw-r--r--keyboards/lattice60/keymaps/emdarcher/config.h20
-rw-r--r--keyboards/lattice60/keymaps/emdarcher/keymap.c48
-rw-r--r--keyboards/lattice60/keymaps/emdarcher/readme.md5
-rw-r--r--keyboards/lattice60/lattice60.c37
-rw-r--r--keyboards/lattice60/lattice60.h64
-rw-r--r--keyboards/lattice60/readme.md21
-rw-r--r--keyboards/lattice60/rules.mk40
-rw-r--r--keyboards/plaid/keymaps/via/config.h6
-rw-r--r--keyboards/plaid/keymaps/via/keymap.c101
-rw-r--r--keyboards/plaid/keymaps/via/readme.md8
-rw-r--r--keyboards/plaid/keymaps/via/rules.mk3
-rw-r--r--keyboards/planck/keymaps/sigul/keymap.c43
-rw-r--r--keyboards/planck/keymaps/sigul/readme.md32
-rw-r--r--keyboards/reversestudio/decadepad/config.h81
-rw-r--r--keyboards/reversestudio/decadepad/decadepad.c7
-rw-r--r--keyboards/reversestudio/decadepad/decadepad.h19
-rw-r--r--keyboards/reversestudio/decadepad/info.json40
-rw-r--r--keyboards/reversestudio/decadepad/keymaps/default/keymap.c12
-rw-r--r--keyboards/reversestudio/decadepad/keymaps/via/keymap.c36
-rw-r--r--keyboards/reversestudio/decadepad/keymaps/via/rules.mk2
-rw-r--r--keyboards/reversestudio/decadepad/readme.md12
-rw-r--r--keyboards/reversestudio/decadepad/rules.mk38
-rw-r--r--layouts/community/ergodox/xyverz/keymap.c257
-rw-r--r--layouts/community/ergodox/xyverz/readme.md173
-rw-r--r--layouts/community/ortho_4x12/xyverz/keymap.c13
-rw-r--r--layouts/community/ortho_4x12/xyverz/readme.md15
-rwxr-xr-xlib/python/qmk/cli/doctor.py21
-rw-r--r--quantum/config_common.h5
-rw-r--r--quantum/keymap_common.c14
-rw-r--r--quantum/keymap_extras/keymap_korean.h128
-rw-r--r--quantum/mcu_selection.mk15
-rw-r--r--quantum/quantum.c6
-rw-r--r--tmk_core/avr.mk8
-rw-r--r--tmk_core/chibios.mk4
-rw-r--r--tmk_core/common/action.c3
-rw-r--r--tmk_core/common/action_layer.h14
-rw-r--r--tmk_core/common/avr/bootloader.c10
-rw-r--r--tmk_core/common/avr/timer.c19
-rw-r--r--tmk_core/common/progmem.h2
-rw-r--r--tmk_core/common/util.c6
-rw-r--r--tmk_core/protocol/lufa/lufa.h6
-rw-r--r--tmk_core/protocol/vusb/usbconfig.h2
-rw-r--r--tmk_core/protocol/vusb/vusb.c4
-rw-r--r--users/sigul/sigul.h1
-rwxr-xr-xutil/activate_msys2.sh5
-rwxr-xr-xutil/activate_wsl.sh4
121 files changed, 4128 insertions, 774 deletions
diff --git a/docs/ja/feature_advanced_keycodes.md b/docs/ja/feature_advanced_keycodes.md
new file mode 100644
index 000000000..d208d7f92
--- /dev/null
+++ b/docs/ja/feature_advanced_keycodes.md
@@ -0,0 +1,85 @@
1# レイヤーの切り替えとトグル :id=switching-and-toggling-layers
2
3<!---
4 original document: 5d5ff80:docs/feature_advanced_keycodes.md
5 git diff 5d5ff80 HEAD -- docs/feature_advanced_keycodes.md | cat
6-->
7
8これらの機能により、様々な方法でレイヤーをアクティブ化することができます。レイヤーは一般的に独立したレイアウトでは無いことに注意してください -- 複数のレイヤーを一度にアクティブ化することができ、レイヤーが `KC_TRNS` を使ってキーの押下を下のレイヤーに渡すことが一般的です。レイヤーの詳細については、[キーマップの概要](ja/keymap.md#keymap-and-layers)を見てください。MO()、LM()、TT() あるいは LT() を使って一時的なレイヤーの切り替えを使う場合、上のレイヤーのキーを透過にするようにしてください。さもないと意図したように動作しないかもしれません。
9
10* `DF(layer)` - デフォルトレイヤーを切り替えます。デフォルトレイヤーは、他のレイヤーがその上に積み重なっている、常にアクティブな基本レイヤーです。デフォルトレイヤーの詳細については以下を見てください。これは QWERTY から Dvorak レイアウトに切り替えるために使うことができます。(これは一時的な切り替えであり、キーボードの電源が切れるまでしか持続しないことに注意してください。デフォルトレイヤーを永続的に変更するには、[process_record_user](ja/custom_quantum_functions.md#programming-the-behavior-of-any-keycode) 内で `set_single_persistent_default_layer` 関数を呼び出すなど、より深いカスタマイズが必要です。)
11* `MO(layer)` - 一時的に*レイヤー*をアクティブにします。キーを放すとすぐに、レイヤーは非アクティブになります。
12* `LM(layer, mod)` - (`MO` のように)一時的に*レイヤー*をアクティブにしますが、モディファイア *mod* がアクティブな状態です。layer 0-15 と、左モディファイアのみをサポートします: `MOD_LCTL`、`MOD_LSFT`、`MOD_LALT`、`MOD_LGUI` (`KC_` の代わりに `MOD_` 定数を使うことに注意してください)。これらのモディファイアは、例えば `LM(_RAISE, MOD_LCTL | MOD_LALT)` のように、ビット単位の OR を使って組み合わせることができます。
13* `LT(layer, kc)` - ホールドされた時に*レイヤー*を一時的にアクティブにし、タップされた時に *kc* を送信します。layer 0-15 のみをサポートします。
14* `OSL(layer)` - 次のキーが押されるまで、一時的に*レイヤー*をアクティブにします。詳細と追加機能については、[ワンショットキー](ja/one_shot_keys.md)を見てください。
15* `TG(layer)` - *レイヤー*を切り替えます。非アクティブな場合はアクティブにし、逆も同様です。
16* `TO(layer)` - *レイヤー*をアクティブにし、他の全てのレイヤー(デフォルトレイヤーを除く)を非アクティブにします。この関数は特別です。1つのレイヤーをアクティブなレイヤースタックに追加/削除する代わりに、現在のアクティブなレイヤーを完全に置き換え、唯一上位のレイヤーを下位のレイヤーで置き換えることができるからです。これはキーダウンで(キーが押されるとすぐに)アクティブになります。
17* `TT(layer)` - レイヤーのタップ切り替え。キーを押したままにすると*レイヤー*がアクティブにされ、放すと非アクティブになります (`MO` 風)。繰り返しタップすると、レイヤーはオンあるいはオフを切り替えます (`TG` 風)。デフォルトでは5回のタップが必要ですが、`TAPPING_TOGGLE` を定義することで変更することができます -- 例えば、2回のタップだけで切り替えるには、`#define TAPPING_TOGGLE 2` を定義します。
18
19## 注意事項
20
21現在のところ、`LT()` と `MT()` は[基本的なキーコードセット](ja/keycodes_basic.md)に制限されています。つまり、`LCTL()`、`KC_TILD` あるいは `0xFF` より大きなキーコードを使うことができません。レイヤータップあるいはモッドタップのキーコードの一部として指定されたモディファイアは無視されます。タップしたキーコードにモディファイアを適用する必要がある場合は、[タップダンス](ja/feature_tap_dance.md#example-5-using-tap-dance-for-advanced-mod-tap-and-layer-tap-keys)を使うことができます。
22
23さらに、モッドタップあるいはレイヤータップで少なくとも1つの右手用のモディファイアが指定された場合、指定された全てのモディファイアが右手用になるため、2つをうまく組み合わせて一致させることはできません。
24
25# レイヤーの使用
26
27レイヤーを切り替える時は注意してください。(キーボードを取り外さずに)そのレイヤーを非アクティブにすることができずレイヤーから移動できなくなる可能性があります。最も一般的な問題を避けるためのガイドラインを作成しました。
28
29## 初心者
30
31QMK を使い始めたばかりの場合は、全てを単純にしたいでしょう。レイヤーをセットアップする時は、これらのガイドラインに従ってください:
32
33* デフォルトの "base" レイヤーとして、layer 0 をセットアップします。これは通常の入力レイヤーであり、任意のレイアウト (qwerty、dvorak、colemak など)にすることができます。通常はキーボードのキーのほとんどまたは全てが定義されているため、これを最下位のレイヤーとして設定することが重要です。そうすることで、もしそれが他のレイヤーの上 (つまりレイヤー番号が大きい)にある場合の影響を防ぎます。
34* layer 0 をルートとして、レイヤーを "ツリー" レイアウトに配置します。他の複数のレイヤーから同じレイヤーに行こうとしないでください。
35* 各レイヤーのキーマップでは、より高い番号のレイヤーのみを参照します。レイヤーは最大の番号(最上位)のアクティブレイヤーから処理されるため、下位レイヤーの状態を変更するのは難しくエラーが発生しやすくなります。
36
37## 中級ユーザ
38
39複数の基本レイヤーが必要な場合があります。例えば、QWERTY と Dvorak を切り替える場合、国ごとに異なるレイアウトを切り替える場合、あるいは異なるビデオゲームごとにレイアウトを切り替える場合などです。基本レイヤーは常に最小の番号のレイヤーである必要があります。複数の基本レイヤーがある場合、常にそれらを相互排他的に扱う必要があります。1つの基本レイヤーがオンの場合、他をオフにします。
40
41## 上級ユーザ
42
43レイヤーがどのように動作し、何ができるかを理解したら、より創造的になります。初心者のセクションで列挙されている規則は、幾つかの巧妙な詳細を回避するのに役立ちますが、特に超コンパクトなキーボードのユーザにとって制約になる場合があります。レイヤーの仕組みを理解することで、レイヤーをより高度な方法で使うことができます。
44
45レイヤーは番号順に上に積み重なっています。キーの押下の動作を決定する時に、QMK は上から順にレイヤーを走査し、`KC_TRNS` に設定されていない最初のアクティブなレイヤーに到達すると停止します。結果として、現在のレイヤーよりも数値的に低いレイヤーをアクティブにし、現在のレイヤー(あるいはアクティブでターゲットレイヤーよりも高い別のレイヤー)に `KC_TRNS` 以外のものがある場合、それが送信されるキーであり、アクティブ化したばかりのレイヤー上のキーではありません。これが、ほとんどの人の "なぜレイヤーが切り替わらないのか" 問題の原因です。
46
47場合によっては、マクロ内あるいはタップダンスルーチンの一部としてレイヤーを切り替えほうが良いかもしれません。`layer_on` はレイヤーをアクティブにし、`layer_off` はそれを非アクティブにします。もっと多くのレイヤーに関する関数は、[action_layer.h](https://github.com/qmk/qmk_firmware/blob/master/tmk_core/common/action_layer.h) で見つけることができます。
48
49# 修飾キー :id=modifier-keys
50
51以下のようにキーコードとモディファイアを組み合わせることができます。押すと、モディファイアのキーダウンイベントが送信され、次に `kc` のキーダウンイベントが送信されます。放すと、`kc` のキーアップイベントが送信され、次にモディファイアのキーアップイベントが送信されます。
52
53| キー | エイリアス | 説明 |
54|----------|-------------------------------|----------------------------------------------------|
55| `LCTL(kc)` | `C(kc)` | 左 Control を押しながら `kc` を押します。 |
56| `LSFT(kc)` | `S(kc)` | 左 Shift を押しながら `kc` を押します。 |
57| `LALT(kc)` | `A(kc)` | 左 Alt を押しながら `kc`を押します。 |
58| `LGUI(kc)` | `G(kc)`, `LCMD(kc)`, `LWIN(kc)` | 左 GUI を押しながら `kc` を押します。 |
59| `RCTL(kc)` | | 右 Control を押しながら `kc` を押します。 |
60| `RSFT(kc)` | | 右 Shift を押しながら `kc` を押します。 |
61| `RALT(kc)` | `ALGR(kc)` | 右 Alt を押しながら `kc` を押します。 |
62| `RGUI(kc)` | `RCMD(kc)`, `LWIN(kc)` | 右 GUI を押しながら `kc` を押します。 |
63| `SGUI(kc)` | `SCMD(kc)`, `SWIN(kc)` | 左 Shift と左 GUI を押しながら `kc` を押します。 |
64| `LCA(kc)` | | 左 Control と左 Alt を押しながら `kc` を押します。 |
65| `LCAG(kc)` | | 左 Control、左 Alt、左 GUI を押しながら `kc` を押します。 |
66| `MEH(kc)` | | 左 Control、左 Shift、左 Alt を押しながら `kc` を押します。 |
67| `HYPR(kc)` | | 左 Control、左 Shift、左 Alt、左 GUI を押しながら `kc` を押します。 |
68
69また、それらを繋げることができます。例えば、`LCTL(LALT(KC_DEL))` は1回のキー押下で Control+Alt+Delete を送信するキーを作成します。
70
71# 過去の内容
72
73このページには多くの機能が含まれていました。このページを構成していた多くのセクションをそれぞれのページに移動しました。これより下は全て単なるリダイレクトであるため、web上で古いリンクをたどっている人は探しているものを見つけることができます。
74
75## モッドタップ :id=mod-tap
76
77* [モッドタップ](ja/mod_tap.md)
78
79## ワンショットキー :id=one-shot-keys
80
81* [ワンショットキー](ja/one_shot_keys.md)
82
83## タップホールド設定オプション :id=tap-hold-configuration-options
84
85* [タップホールド設定オプション](ja/tap_hold.md)
diff --git a/docs/ja/feature_audio.md b/docs/ja/feature_audio.md
new file mode 100644
index 000000000..0f845161e
--- /dev/null
+++ b/docs/ja/feature_audio.md
@@ -0,0 +1,328 @@
1# オーディオ
2
3<!---
4 original document: 5d5ff80:docs/feature_audio.md
5 git diff 5d5ff80 HEAD -- docs/feature_audio.md | cat
6-->
7
8キーボードは音を出すことができます!Planck、Preonic あるいは特定の PWM 対応ピンにアクセスできる AVR キーボードがある場合は、単純なスピーカーを接続してビープ音を鳴らすことができます。これらのビープ音を使ってレイヤーの変化、モディファイア、特殊キーを示したり、あるいは単にイカした8ビットの曲を鳴らすことができます。
9
10最大2つの同時オーディオ音声がサポートされ、1つはタイマー1によってもう一つはタイマー3によって駆動されます。以下のピンは config.h の中でオーディオ出力として定義することができます:
11
12Timer 1:
13`#define B5_AUDIO`
14`#define B6_AUDIO`
15`#define B7_AUDIO`
16
17Timer 3:
18`#define C4_AUDIO`
19`#define C5_AUDIO`
20`#define C6_AUDIO`
21
22`rules.mk` に `AUDIO_ENABLE = yes` を追加すると、他の設定無しで自動的に有効になる幾つかの異なるサウンドがあります:
23
24```
25STARTUP_SONG // キーボードの起動時に再生 (audio.c)
26GOODBYE_SONG // RESET キーを押すと再生 (quantum.c)
27AG_NORM_SONG // AG_NORM キーを押すと再生 (quantum.c)
28AG_SWAP_SONG // AG_SWAP キーを押すと再生 (quantum.c)
29CG_NORM_SONG // CG_NORM キーを押すと再生 (quantum.c)
30CG_SWAP_SONG // CG_SWAP キーを押すと再生 (quantum.c)
31MUSIC_ON_SONG // 音楽モードがアクティブになると再生 (process_music.c)
32MUSIC_OFF_SONG // 音楽モードが非アクティブになると再生 (process_music.c)
33CHROMATIC_SONG // 半音階音楽モードが選択された時に再生 (process_music.c)
34GUITAR_SONG // ギター音楽モードが選択された時に再生 (process_music.c)
35VIOLIN_SONG // バイオリン音楽モードが選択された時に再生 (process_music.c)
36MAJOR_SONG // メジャー音楽モードが選択された時に再生 (process_music.c)
37```
38
39`config.h` の中で以下のような操作を行うことで、デフォルトの曲を上書きすることができます:
40
41```c
42#ifdef AUDIO_ENABLE
43 #define STARTUP_SONG SONG(STARTUP_SOUND)
44#endif
45```
46
47サウンドの完全なリストは、[quantum/audio/song_list.h](https://github.com/qmk/qmk_firmware/blob/master/quantum/audio/song_list.h) で見つかります - このリストに自由に追加してください!利用可能な音は [quantum/audio/musical_notes.h](https://github.com/qmk/qmk_firmware/blob/master/quantum/audio/musical_notes.h) で見つかります。
48
49特定の時にカスタムサウンドを再生するために、以下のように曲を定義することができます(ファイルの上部付近に):
50
51```c
52float my_song[][2] = SONG(QWERTY_SOUND);
53```
54
55以下のように曲を再生します:
56
57```c
58PLAY_SONG(my_song);
59```
60
61または、以下のようにループで再生することができます:
62
63```c
64PLAY_LOOP(my_song);
65```
66
67オーディオがキーボードに組み込まれていない時に問題が起きる事を避けるために、`#ifdef AUDIO_ENABLE` / `#endif` で全てのオーディオ機能をくるむことをお勧めします。
68
69オーディオで利用可能なキーコードは以下の通りです:
70
71* `AU_ON` - オーディオ機能をオン
72* `AU_OFF` - オーディオ機能をオフ
73* `AU_TOG` - オーディオ機能を切り替え
74
75!> これらのキーコードは全てのオーディオ機能をオンおよびオフにします。オフにするとオーディオフィードバック、オーディオクリック、音楽モードなどが完全に無効になります。
76
77## ARM オーディオボリューム
78
79ARM デバイスの場合、DAC サンプル値を調整できます。キーボードがあなたやあなたの同僚にとって騒々しい場合、`config.h` 内の `DAC_SAMPLE_MAX` を使って最大量を設定することができます:
80
81```c
82#define DAC_SAMPLE_MAX 65535U
83```
84
85## 音楽モード
86
87音楽モードは列を半音階に、行をオクターブにマップします。これは格子配列キーボードで最適に動作しますが、他のものでも動作させることができます。`0xFF` 未満の全てのキーコードはブロックされるため、音の演奏中は入力できません - 特別なキー/mod があればそれらは引き続き動作します。これを回避するには、音楽モードを有効にする前(あるいは後)で、KC_NO を使って別のレイヤーにジャンプします。
88
89メモリの問題により、録音は実験的です - 奇妙な動作が発生した場合は、キーボードの取り外しと再接続で問題が解決するでしょう。
90
91利用可能なキーコード:
92
93* `MU_ON` - 音楽モードをオン
94* `MU_OFF` - 音楽モードをオフ
95* `MU_TOG` - 音楽モードの切り替え
96* `MU_MOD` - 音楽モードの循環
97 * `CHROMATIC_MODE` - 半音階。行はオクターブを変更します
98 * `GUITAR_MODE` - 半音階、ただし行は弦を変更します (+5 階)
99 * `VIOLIN_MODE` - 半音階。ただし行は弦を変換します (+7 階)
100 * `MAJOR_MODE` - メージャースケール
101
102音楽モードでは、以下のキーコードは動作が異なり、通過しません:
103
104* `LCTL` - 録音を開始
105* `LALT` - 録音を停止/演奏を停止
106* `LGUI` - 録音を再生
107* `KC_UP` - 再生をスピードアップ
108* `KC_DOWN` - 再生をスローダウン
109
110ピッチ標準 (`PITCH_STANDARD_A`) はデフォルトで 440.0f です - これを変更するには、`config.h` に以下のようなものを追加します:
111
112 #define PITCH_STANDARD_A 432.0f
113
114音楽モードも完全に無効にすることができます。コントローラの容量が足りなくて困っている場合に役に立ちます。無効にするには、これを `config.h` に追加します:
115
116 #define NO_MUSIC_MODE
117
118### 音楽マスク
119
120デフォルトで、`MUSIC_MASK` は `keycode < 0xFF` に設定されます。これは、`0xFF` 未満のキーコードが音に変換され、何も出力しないことを意味します。`config.h` の中で以下のものを定義することで、これを変更することができます:
121
122 #define MUSIC_MASK keycode != KC_NO
123
124これは全てのキーコードを捕捉します - これは、キーボードを再起動するまで、音楽モードで動けなくなることに注意してください!
125
126どのキーコードを引き続き処理するかを制御する、より高度な方法については、`<keyboard>.c` の中の `music_mask_kb(keycode)` および `keymap.c` の中の `music_mask_user(keycode)` を使うことができます:
127
128 bool music_mask_user(uint16_t keycode) {
129 switch (keycode) {
130 case RAISE:
131 case LOWER:
132 return false;
133 default:
134 return true;
135 }
136 }
137
138false を返すものはマスクの一部では無く、常に処理されます。
139
140### 音楽マップ
141
142デフォルトでは、音楽モードはキーのスケールを決定するために列と行を使います。キーボードレイアウトに一致する長方形のマトリックスを使うキーボードの場合、これで十分です。しかし、(Planck Rev6 あるいは多くの分割キーボードなどのように)より複雑なマトリックスを使うキーボードの場合、非常に歪んだ感じを受けることになります。
143
144しかしながら、音楽マップオプションにより、音楽モードのためにスケーリングを再マップすることができるため、レイアウトに一致し、より自然になります。
145
146この機能を使うには、`#define MUSIC_MAP` を `config.h` ファイルに追加します。そして、`キーボードの名前.c` または `keymap.c` に `uint8_t music_map` を追加します。
147
148```c
149const uint8_t music_map[MATRIX_ROWS][MATRIX_COLS] = LAYOUT_ortho_4x12(
150 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
151 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
152 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
153 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11
154);
155```
156
157キーボードが使用する `LAYOUT` マクロも使用したいでしょう。これは正しいキーの位置にマップします。キーボードレイアウトの左下から開始し、右に移動してさらに上に移動します。完全なマトリックスができるまで、全てのエントリを入力します。
158
159これを実装する方法の例として、[Planck Keyboard](https://github.com/qmk/qmk_firmware/blob/e9ace1487887c1f8b4a7e8e6d87c322988bec9ce/keyboards/planck/planck.c#L24-L29) を見ることができます。
160
161## オーディオクリック
162
163これは、ボタンを押すたびにクリック音を追加し、キーボードからのクリック音をシミュレートします。キーを押すたびにわずかに音が異なるため、すばやく入力しても長い単一の音のようには聞こえません。
164
165* `CK_TOGG` - ステータスを切り替えます (有効にされた場合、音を再生します)
166* `CK_ON` - オーディオクリックをオンにします (音を再生します)
167* `CK_OFF` - オーディオクリックをオフにします (音を再生しません)
168* `CK_RST` - 周波数をデフォルトの状態に再設定します (デフォルトの周波数で音を再生します)
169* `CK_UP` - クリック音の周波数を増やします (新しい周波数で音を再生します)
170* `CK_DOWN` - クリック音の周波数を減らします (新しい周波数で音を再生します)
171
172
173容量を節約するためにデフォルトではこの機能は無効です。有効にするには、`config.h` に以下を追加します:
174
175 #define AUDIO_CLICKY
176
177
178これらの値を定義することで、デフォルト、最小および最大周波数、ステッピングおよび組み込みのランダム性を設定することができます:
179
180| オプション | デフォルト値 | 説明 |
181|--------|---------------|-------------|
182| `AUDIO_CLICKY_FREQ_DEFAULT` | 440.0f | クリック音のデフォルト/開始音の周波数を設定します。 |
183| `AUDIO_CLICKY_FREQ_MIN` | 65.0f | 最小周波数を設定します (60f 未満は少しバグがあります)。 |
184| `AUDIO_CLICKY_FREQ_MAX` | 1500.0f | 最大周波数を設定します。高すぎると同僚があなたを攻撃する可能性があります。 |
185| `AUDIO_CLICKY_FREQ_FACTOR` | 1.18921f | UP/DOWN キーコードのステップを設定します。これは掛け算の係数です。デフォルトでは、音楽のマイナーの1/3ずつ、周波数を上げ/下げします。 |
186| `AUDIO_CLICKY_FREQ_RANDOMNESS` | 0.05f | クリックのランダム性の係数を設定します。これを `0f` に設定すると各クリックが同一になり、`1.0f` に設定するとこの音は90年代のコンピュータ画面のスクロール/タイピングの効果があります。 |
187| `AUDIO_CLICKY_DELAY_DURATION` | 1 | 1がテンポの 1/16、または64分音符である整数音符の長さ (実装の詳細については、`quantum/audio/musical_notes.h` を見てください)。メインのクリック効果は、この時間だけ遅れます。これらを6-12前後の値に調整すると、うるさいスイッチの補正に役立ちます。 |
188
189
190
191
192## MIDI 機能
193
194これはまだ WIP ですが、何が起きているかを見るために、`quantum/process_keycode/process_midi.c` を調べてください。Makefile から有効にします。
195
196
197## オーディオキーコード
198
199| キー | エイリアス | 説明 |
200|----------------|---------|----------------------------------|
201| `AU_ON` | | オーディオモードオン |
202| `AU_OFF` | | オーディオモードオフ |
203| `AU_TOG` | | オーディオモードを切り替えます |
204| `CLICKY_TOGGLE` | `CK_TOGG` | オーディオクリックモードを切り替えます |
205| `CLICKY_UP` | `CK_UP` | クリック音の周波数を増やします |
206| `CLICKY_DOWN` | `CK_DOWN` | クリック音の周波数を減らします |
207| `CLICKY_RESET` | `CK_RST` | 周波数をデフォルトに再設定します |
208| `MU_ON` | | 音楽モードをオンにします |
209| `MU_OFF` | | 音楽モードをオフにします |
210| `MU_TOG` | | 音楽モードを切り替えます |
211| `MU_MOD` | | 音楽モードを循環します |
212
213<!-- FIXME: this formatting needs work
214
215## Audio
216
217```c
218#ifdef AUDIO_ENABLE
219 AU_ON,
220 AU_OFF,
221 AU_TOG,
222
223 #ifdef FAUXCLICKY_ENABLE
224 FC_ON,
225 FC_OFF,
226 FC_TOG,
227 #endif
228
229 // Music mode on/off/toggle
230 MU_ON,
231 MU_OFF,
232 MU_TOG,
233
234 // Music voice iterate
235 MUV_IN,
236 MUV_DE,
237#endif
238```
239
240### Midi
241
242#if !MIDI_ENABLE_STRICT || (defined(MIDI_ENABLE) && defined(MIDI_BASIC))
243 MI_ON, // send midi notes when music mode is enabled
244 MI_OFF, // don't send midi notes when music mode is enabled
245#endif
246
247MIDI_TONE_MIN,
248MIDI_TONE_MAX
249
250MI_C = MIDI_TONE_MIN,
251MI_Cs,
252MI_Db = MI_Cs,
253MI_D,
254MI_Ds,
255MI_Eb = MI_Ds,
256MI_E,
257MI_F,
258MI_Fs,
259MI_Gb = MI_Fs,
260MI_G,
261MI_Gs,
262MI_Ab = MI_Gs,
263MI_A,
264MI_As,
265MI_Bb = MI_As,
266MI_B,
267
268MIDI_TONE_KEYCODE_OCTAVES > 1
269
270where x = 1-5:
271MI_C_x,
272MI_Cs_x,
273MI_Db_x = MI_Cs_x,
274MI_D_x,
275MI_Ds_x,
276MI_Eb_x = MI_Ds_x,
277MI_E_x,
278MI_F_x,
279MI_Fs_x,
280MI_Gb_x = MI_Fs_x,
281MI_G_x,
282MI_Gs_x,
283MI_Ab_x = MI_Gs_x,
284MI_A_x,
285MI_As_x,
286MI_Bb_x = MI_As_x,
287MI_B_x,
288
289MI_OCT_Nx 1-2
290MI_OCT_x 0-7
291MIDI_OCTAVE_MIN = MI_OCT_N2,
292MIDI_OCTAVE_MAX = MI_OCT_7,
293MI_OCTD, // octave down
294MI_OCTU, // octave up
295
296MI_TRNS_Nx 1-6
297MI_TRNS_x 0-6
298MIDI_TRANSPOSE_MIN = MI_TRNS_N6,
299MIDI_TRANSPOSE_MAX = MI_TRNS_6,
300MI_TRNSD, // transpose down
301MI_TRNSU, // transpose up
302
303MI_VEL_x 1-10
304MIDI_VELOCITY_MIN = MI_VEL_1,
305MIDI_VELOCITY_MAX = MI_VEL_9,
306MI_VELD, // velocity down
307MI_VELU, // velocity up
308
309MI_CHx 1-16
310MIDI_CHANNEL_MIN = MI_CH1
311MIDI_CHANNEL_MAX = MI_CH16,
312MI_CHD, // previous channel
313MI_CHU, // next channel
314
315MI_ALLOFF, // all notes off
316
317MI_SUS, // sustain
318MI_PORT, // portamento
319MI_SOST, // sostenuto
320MI_SOFT, // soft pedal
321MI_LEG, // legato
322
323MI_MOD, // modulation
324MI_MODSD, // decrease modulation speed
325MI_MODSU, // increase modulation speed
326#endif // MIDI_ADVANCED
327
328-->
diff --git a/docs/ja/feature_auto_shift.md b/docs/ja/feature_auto_shift.md
new file mode 100644
index 000000000..c230f9381
--- /dev/null
+++ b/docs/ja/feature_auto_shift.md
@@ -0,0 +1,135 @@
1# 自動シフト: なぜシフトキーが必要ですか?
2
3<!---
4 original document: 5d5ff80:docs/feature_auto_shift.md
5 git diff 5d5ff80 HEAD -- docs/feature_auto_shift.md | cat
6-->
7
8キーをタップすると、その文字を取得します。キーをタップするが、*わずかに*長く押し続けると、シフト状態になります。ほら!シフトキーは必要ありません!
9
10## なぜ自動シフトなのですか?
11
12多くの人が腱鞘炎などの症状に苦しんでいます。一般的な原因は、指を繰り返し長い距離を伸ばすことです。私たちはキーボード上でシフトキーに手を伸ばすためにあまりにも頻繁に小指を伸ばします。自動シフトキーはそれを軽減しようとしています。
13
14## どのように動作しますか?
15
16キーをタップする時に、キーを放す前にほんの短い間押したままにします。この押したままにする時間は全ての人にとって異なる長さです。自動シフトは、定数 `AUTO_SHIFT_TIMEOUT` を定義し、これは普段の押された状態の時間の2倍に通常は設定されます。タイマーは、キーを押す時に開始され、キーを放す時に止まります。押された時間が `AUTO_SHIFT_TIMEOUT` 以上の場合に、キーのシフトバージョンが発行されます。時間が `AUTO_SHIFT_TIMEOUT` 時間よりも短い場合は、通常の状態が発行されます。
17
18## 自動シフトには制限がありますか?
19
20残念ながらあります。
21
221. キーリピートが動作しなくなります。例えば、20個の 'a' 文字が必要な場合、'a' キーを1、2秒押し続けるかもしれません。オペレーティングシステムに押されたキーの状態を発行する代わりに押された時間を計るので、自動シフトでは動作しません。
232. シフトをするつもりがない時にシフトされた文字を取得し、シフトしたい時にそうではない他の文字を取得するでしょう。これは結局は練習になります。急いでいる時は、シフトされたバージョンのために十分長くキーを押したと思うかもしれませんが、そうではありませんでした。一方、キーをタップしていると思うかもしれませんが、実際には予想よりも少し長い間押していました。
24
25## どうやって自動シフトを有効にしますか?
26
27キーマップフォルダの `rules.mk` に追加します:
28
29 AUTO_SHIFT_ENABLE = yes
30
31`rules.mk` が存在しない場合、それを作成することができます。
32
33そして自動シフトキーを有効にした新しいファームウェアをコンパイルしてインストールします!以上です!
34
35## モディファイア
36
37デフォルトで、1つ以上のモディファイアと一緒にキーが押されると自動シフトは無効になります。従って、本当に長い間 Ctrl+A を保持しても、Ctrl+Shift+A と同じではありません。
38
39`config.h` に定義を追加することで、モディファイアの自動シフトを再度有効にすることができます
40
41```c
42#define AUTO_SHIFT_MODIFIERS
43```
44
45この場合、`AUTO_SHIFT_TIMEOUT` を超えて押された Ctrl+A は Ctrl+Shift+A として送信されます
46
47
48## 自動シフトの設定
49
50必要に応じて、自動シフトの挙動を変更することができる幾つかの設定があります。キーマップフォルダにある `config.h` に様々な変数を設定することで行われます。`config.h` ファイルが存在しない場合、それを作成することができます。
51
52
53
54```c
55#pragma once
56
57#define AUTO_SHIFT_TIMEOUT 150
58#define NO_AUTO_SHIFT_SPECIAL
59```
60
61### AUTO_SHIFT_TIMEOUT (単位: ミリ秒)
62
63これは、シフトされた状態を取得するためにどれだけ長くキーを押し続けなければならないかを制御します。
64明らかにこれは人によって異なります。一般的な人にとって、135 から 150 の設定がうまく機能します。ただし、少なくとも 175 の値から開始する必要があります。これはデフォルト値です。その後、ここから下げていきます。間違って検出することなくシフトされた状態を取得するのに必要な、最も短い時間を得るという考え方です。
65
66完璧に動作するまで、いろいろな値を試してみます。多くの人は、全てが所定の値で適切に動作するものの、時々、1つあるいは2つのキーがシフト状態を発行することが分かるでしょう。これは単に習慣と、幾つかのキーを他のキーよりも少し長く押し続けることによるものです。この値を見つけたら、問題のキーを通常よりも少し早くタップするとともに、その値を設定します。
67
68?> 自動シフトには、この値を素早く取得するのに役立つ3つの特別なキーがあります。詳細は「自動シフトのセットアップ」を見てください!
69
70### NO_AUTO_SHIFT_SPECIAL (単純にこのように定義します)
71
72-\_, =+, [{, ]}, ;:, '", ,<, .> および /? を含む特殊キーを自動シフトしません
73
74### NO_AUTO_SHIFT_NUMERIC (単純にこのように定義します)
75
760から9までの数字キーを自動シフトしません。
77
78### NO_AUTO_SHIFT_ALPHA (単純にこのように定義します)
79
80AからZを含むアルファベット文字を自動シフトしません。
81
82## 自動シフトセットアップの使用
83
84これにより、`AUTO_SHIFT_TIMEOUT` で設定している時間を一時的に増減させたり報告するために、3つのキーを定義することができます。
85
86### セットアップ
87
883つのキーを一時的にキーマップにマップします:
89
90| キー名 | 説明 |
91|----------|-----------------------------------------------------|
92| KC_ASDN | 自動シフトタイムアウト変数を下げる |
93| KC_ASUP | 自動シフトタイムアウト変数を上げる |
94| KC_ASRP | 現在の自動シフトタイムアウト値を報告する |
95| KC_ASON | 自動シフト機能をオンにする |
96| KC_ASOFF | 自動シフト機能をオフにする |
97| KC_ASTG | 自動シフト機能の状態を切り替える |
98
99新しいファームウェアをコンパイルしてアップロードします。
100
101### 使い方
102
103これらのテスト中は、完全に普段通り入力する必要があり、意図的にシフトされたキーを使わずに入力するように注意する必要があります。
104
1051. アルファベットの複数の文を入力します。
1062. 大文字に注意してください。
1073. 大文字が存在しない場合は、自動シフトタイムアウト値を減らすために `KC_ASDN` にマップしたキーを押し、ステップ1に戻ります。
1084. 大文字が幾つかある場合は、押す時間を短くしてこれらのキーをタップする必要があるか、あるいはタイムアウトを増やす必要があるかを決定します。
1095. タイムアウトを増やすことに決めた場合は、`KC_ASUP` にマップしたキーを押し、ステップ1に戻ります。
1106. 結果に満足したら、`KC_ASRP` にマップしたキーを押します。キーボードは `AUTO_SHIFT_TIMEOUT` の値を自動的に入力します。
1117. 報告された値で `config.h` の `AUTO_SHIFT_TIMEOUT` を更新します。
1128. `config.h` から `AUTO_SHIFT_SETUP` を削除します。
1139. `KC_ASDN`、`KC_ASUP` および `KC_ASRP` のキーバインディングを削除します。
11410. 新しいファームウェアをコンパイルしてアップロードします。
115
116#### 実行例
117
118 hello world. my name is john doe. i am a computer programmer playing with
119 keyboards right now.
120
121 [KC_ASDN を何度か押します]
122
123 heLLo woRLd. mY nAMe is JOHn dOE. i AM A compUTeR proGRaMMER PlAYiNG witH
124 KEYboArDS RiGHT NOw.
125
126 [KC_ASUP を数回押します]
127
128 hello world. my name is john Doe. i am a computer programmer playing with
129 keyboarDs right now.
130
131 [KC_ASRPを押します]
132
133 115
134
135キーボードは現在の `AUTO_SHIFT_TIMEOUT` 値を表す `115` を入力しました。これで設定が完了しました!テスト中に現れる *D* キーを少し練習してください。それで完璧です。
diff --git a/docs/ja/feature_backlight.md b/docs/ja/feature_backlight.md
new file mode 100644
index 000000000..e722656b7
--- /dev/null
+++ b/docs/ja/feature_backlight.md
@@ -0,0 +1,253 @@
1# バックライト
2
3<!---
4 original document: 5d5ff80:docs/feature_backlight.md
5 git diff 5d5ff80 HEAD -- docs/feature_backlight.md | cat
6-->
7
8多くのキーボードは、キースイッチを貫通して配置されたり、キースイッチの下に配置された個々の LED によって、バックライトキーをサポートします。この機能は通常スイッチごとに単一の色しか使用できないため、[RGB アンダーグロー](ja/feature_rgblight.md)および [RGB マトリックス](ja/feature_rgb_matrix.md)機能のどちらとも異なりますが、キーボードに複数の異なる単一色の LED を取り付けることは当然可能です。
9
10QMK は *パルス幅変調*(*Pulse Width Modulation*) すなわち PWM として知られている技術で急速にオンおよびオフを切り替えることで、これらの LED の輝度を制御できます。PWM 信号のデューティサイクルを変えることで、調光の錯覚を起こすことができます。
11
12MCU は、GPIO ピンにはそんなに電流を供給できません。MCU から直接バックライトに給電せずに、バックライトピンは LED への電力を切り替えるトランジスタあるいは MOSFET に接続されます。
13
14## 機能の設定
15
16ほとんどのキーボードではバックライトをサポートしている場合にデフォルトで有効になっていますが、もし機能しない場合は `rules.mk` が以下を含んでいることを確認してください:
17
18```makefile
19BACKLIGHT_ENABLE = yes
20```
21
22## キーコード
23有効にすると、以下のキーコードを使ってバックライトレベルを変更することができます。
24
25| キー | 説明 |
26|---------|------------------------------------------|
27| `BL_TOGG` | バックライトをオンあるいはオフにする |
28| `BL_STEP` | バックライトレベルを循環する |
29| `BL_ON` | バックライトを最大輝度に設定する |
30| `BL_OFF` | バックライトをオフにする |
31| `BL_INC` | バックライトレベルを上げる |
32| `BL_DEC` | バックライトレベルを下げる |
33| `BL_BRTG` | バックライトの明滅動作を切り替える |
34
35## バックライト関数群
36
37| 関数 | 説明 |
38|----------|-----------------------------------------------------------|
39| `backlight_toggle()` | バックライトをオンあるいはオフにする |
40| `backlight_enable()` | バックライトをオンにする |
41| `backlight_disable()` | バックライトをオフにする |
42| `backlight_step()` | バックライトレベルを循環する |
43| `backlight_increase()` | バックライトレベルを上げる |
44| `backlight_decrease()` | バックライトレベルを下げる |
45| `backlight_level(x)` | バックライトのレベルを特定のレベルに設定する |
46| `get_backlight_level()` | 現在のバックライトレベルを返す |
47| `is_backlight_enabled()` | バックライトが現在オンかどうかを返す |
48
49### バックライトの明滅動作の関数群
50
51| 関数 | 説明 |
52|----------|---------------------------------------------------|
53| `breathing_toggle()` | バックライトの明滅動作をオンまたはオフにする |
54| `breathing_enable()` | バックライトの明滅動作をオンにする |
55| `breathing_disable()` | バックライトの明滅動作をオフにする |
56
57## ドライバの設定
58
59どのドライバを使うかを選択するには、以下を使って `rules.mk` を設定します:
60
61```makefile
62BACKLIGHT_DRIVER = software # 有効なドライバの値は 'pwm,software,no' です
63```
64
65各ドライバについてのヘルプは以下を見てください。
66
67## 共通のドライバ設定
68
69バックライトの挙動を変更するには、`config.h` の中で以下の `#define` をします:
70
71| 定義 | デフォルト | 説明 |
72|---------------------|-------------|--------------------------------------------------------------------------------------|
73| `BACKLIGHT_LEVELS` | `3` | 輝度のレベルの数 (オフを除いて最大 31) |
74| `BACKLIGHT_CAPS_LOCK` | *定義なし* | バックライトを使って Caps Lock のインジケータを有効にする (専用 LED の無いキーボードのため) |
75| `BACKLIGHT_BREATHING` | *定義なし* | サポートされる場合は、バックライトの明滅動作を有効にする |
76| `BREATHING_PERIOD` | `6` | 各バックライトの "明滅" の長さ(秒) |
77| `BACKLIGHT_ON_STATE` | `0` | バックライトが "オン" の時のバックライトピンの状態 - high の場合は `1`、low の場合は `0` |
78
79### バックライトオン状態
80
81ほとんどのバックライトの回路は N チャンネルの MOSFET あるいは NPN トランジスタによって駆動されます。これは、トランジスタを*オン*にして LED を点灯させるには、ゲートまたはベースに接続されているバックライトピンを *high* に駆動する必要があることを意味します。
82ただし、P チャンネルの MOSFET あるいは PNP トランジスタが使われる場合があります。この場合、トランジスタがオンの時、ピンは代わりに *low* で駆動されます。
83
84この機能は `BACKLIGHT_ON_STATE` 定義することでキーボードレベルで設定されます。
85
86## AVR ドライバ
87
88AVR ボードでは、デフォルトのドライバは現在のところ最善のシナリオを選択するために構成を探っています。ドライバはデフォルトで設定されますが、rules.mk 内の同等の設定は以下の通りです:
89```makefile
90BACKLIGHT_DRIVER = pwm
91```
92
93### 注意事項
94
95ハードウェア PWM は以下の表に従ってサポートされます:
96
97| バックライトピン | AT90USB64/128 | ATmega16/32U4 | ATmega16/32U2 | ATmega32A | ATmega328P |
98|-------------|-------------|-------------|-------------|---------|----------|
99| `B1` | | | | | Timer 1 |
100| `B2` | | | | | Timer 1 |
101| `B5` | Timer 1 | Timer 1 | | | |
102| `B6` | Timer 1 | Timer 1 | | | |
103| `B7` | Timer 1 | Timer 1 | Timer 1 | | |
104| `C4` | Timer 3 | | | | |
105| `C5` | Timer 3 | | Timer 1 | | |
106| `C6` | Timer 3 | Timer 3 | Timer 1 | | |
107| `D4` | | | | Timer 1 | |
108| `D5` | | | | Timer 1 | |
109
110他の全てのピンはソフトウェア PWM を使います。[オーディオ](ja/feature_audio.md)機能が無効あるいは1つのタイマだけを使っている場合は、ハードウェアタイマによってバックライト PWM を引き起こすことができます:
111
112| オーディオピン | オーディオタイマ | ソフトウェア PWM タイマ |
113|---------|-----------|------------------|
114| `C4` | Timer 3 | Timer 1 |
115| `C5` | Timer 3 | Timer 1 |
116| `C6` | Timer 3 | Timer 1 |
117| `B5` | Timer 1 | Timer 3 |
118| `B6` | Timer 1 | Timer 3 |
119| `B7` | Timer 1 | Timer 3 |
120
121両方のタイマーがオーディオのために使われている場合、バックライト PWM はハードウェアタイマを使いませんが、代わりにマトリックススキャンの間に引き起こされます。この場合、PWM の計算は十分なタイミングの精度で呼ばれないかもしれないため、バックライトの明滅はサポートされず、バックライトもちらつくかもしれません。
122
123### AVR 設定
124
125バックライトの挙動を変更するには、`config.h` の中で以下の `#define` をします:
126
127| 定義 | デフォルト | 説明 |
128|---------------------|-------------|--------------------------------------------------------------------------------------------------------------|
129| `BACKLIGHT_PIN` | `B7` | LED を制御するピン。自身のキーボードを設計している場合を除き、これを変更する必要はないはずです |
130| `BACKLIGHT_PINS` | *定義なし* | 実験的: 詳細は以下を見てください |
131| `BACKLIGHT_LEVELS` | `3` | 輝度のレベルの数 (オフを除いて最大 31) |
132| `BACKLIGHT_CAPS_LOCK` | *定義なし* | バックライトを使って Caps Lock のインジケータを有効にする (専用 LED の無いキーボードのため) |
133| `BACKLIGHT_BREATHING` | *定義なし* | サポートされる場合は、バックライトの明滅動作を有効にする |
134| `BREATHING_PERIOD` | `6` | 各バックライトの "明滅" の長さ(秒) |
135| `BACKLIGHT_ON_STATE` | `1` | バックライトが "オン" の時のバックライトピンの状態 - high の場合は `1`、low の場合は `0` |
136
137### バックライトオン状態
138
139ほとんどのバックライトの回路は N チャンネルの MOSFET あるいは NPN トランジスタによって駆動されます。これは、トランジスタを*オン*にして LED を点灯させるには、ゲートまたはベースに接続されているバックライトピンを *high* に駆動する必要があることを意味します。
140ただし、P チャンネルの MOSFET あるいは PNP トランジスタが使われる場合があります。この場合、トランジスタがオンの時、ピンは代わりに *low* で駆動されます。
141
142この機能は `BACKLIGHT_ON_STATE` 定義することでキーボードレベルで設定されます。
143
144### 複数のバックライトピン
145
146ほとんどのキーボードは、全てのバックライト LED を制御するたった1つのバックライトピンを持ちます (特にバックライトがハードウェア PWM ピンに接続されている場合)。
147ソフトウェア PWM では、複数のバックライトピンを定義することができます。これらすべてのピンは PWM デューティサイクル時に同時にオンおよびオフになります。
148この機能により、例えば Caps Lock LED (またはその他の制御可能な LED) の輝度を、バックライトの他の LED と同じレベルに設定することができます。Caps Lock の代わりに LCTRL をマップしていて、Caps Lock がオンの時に Caps Lock LED をアクティブにする代わりにバックライトの一部にする必要がある場合に便利です。
149
150複数のバックライトピンをアクティブにするには、`config.h` に次のようなものを追加する必要があります:
151
152```c
153#define BACKLIGHT_LED_COUNT 2
154#undef BACKLIGHT_PIN
155#define BACKLIGHT_PINS { F5, B2 }
156```
157
158### ハードウェア PWM 実装
159
160バックライト用にサポートされているピンを使う場合、QMK は PWM 信号を出力するように設定されたハードウェアタイマを使います。タイマーは 0 にリセットする前に `ICRx` (デフォルトでは `0xFFFF`) までカウントします。
161希望の輝度が計算され、`OCRxx` レジスタ内に格納されます。カウンタがこの値まで達すると、バックライトピンは low になり、カウンタがリセットされると再び high になります。
162このように `OCRxx` は基本的に LED のデューティサイクル、従って輝度を制御します。`0x0000` は完全にオフで、 `0xFFFF` は完全にオンです。
163
164明滅動作の効果はカウンタがリセットされる(秒間あたりおよそ244回)たびに呼び出される `TIMER1_OVF_vect` の割り込みハンドラを登録することで可能になります。
165このハンドラ内で、増分カウンタの値が事前に計算された輝度曲線にマップされます。明滅動作をオフにするには、割り込みを単純に禁止し、輝度を EEPROM に格納されているレベルに再設定します。
166
167### タイマーにアシストされた PWM 実装
168
169`BACKLIGHT_PIN` がハードウェアバックライトピンに設定されていない場合、QMK はソフトウェア割り込みを引き起こすように設定されているハードウェアタイマを使います。タイマーは 0 にリセットする前に `ICRx` (デフォルトでは `0xFFFF`) までカウントします。
1700 に再設定すると、CPU は LED をオンにする OVF (オーバーフロー)割り込みを発火し、デューティサイクルを開始します。
171希望の輝度が計算され、`OCRxx` レジスタ内に格納されます。カウンタがこの値に達すると、CPU は比較出力一致割り込みを発火し、LED をオフにします。
172このように `OCRxx` は基本的に LED のデューティサイクル、従って輝度を制御します。 `0x0000` は完全にオフで、 `0xFFFF` は完全にオンです。
173
174明滅の効果はハードウェア PWM 実装と同じです。
175
176## ARM ドライバ
177
178まだ初期段階ですが、ARM バックライトサポートは最終的に AVR と同等の機能を持つことを目指しています。ドライバはデフォルトで設定されますが、rules.mk 内の同等の設定は以下の通りです:
179```makefile
180BACKLIGHT_DRIVER = pwm
181```
182
183### 注意事項
184
185現在のところ、ハードウェア PWM のみがサポートされ、タイマーはアシストされず、自動設定は提供されません。
186
187?> STMF072 のバックライトサポートのテストは制限されています。人によって違うかもしれません。不明な場合は、rules.mk で `BACKLIGHT_ENABLE = no` を設定します。
188
189### ARM 設定
190
191バックライトの挙動を変更するには、`config.h` の中で以下の `#define` をします:
192
193| 定義 | デフォルト | 説明 |
194|------------------------|-------------|-------------------------------------------------------------------------------------------------------------|
195| `BACKLIGHT_PIN` | `B7` | LED を制御するピン。自身のキーボードを設計している場合を除き、これを変更する必要はないはずです |
196| `BACKLIGHT_PWM_DRIVER` | `PWMD4` | 使用する PWM ドライバ。ピンから PWM タイマへのマッピングについては、ST データシートを見てください。自身のキーボードを設計している場合を除き、これを変更する必要はないはずです |
197| `BACKLIGHT_PWM_CHANNEL` | `3` | 使用する PWM チャンネル。ピンから PWM チャンネルへのマッピングについては、ST データシートを見てください。自身のキーボードを設計している場合を除き、これを変更する必要はないはずです |
198| `BACKLIGHT_PAL_MODE` | `2` | 使用するピンの代替機能。ピンの AF マッピングについては ST データシートを見てください。自身のキーボードを設計している場合を除き、これを変更する必要はないはずです |
199
200## Software PWM Driver :id=software-pwm-driver
201
202他のキーボードのタスクを実行中に PWM をエミュレートすることにより、追加のプラットフォーム設定なしで最大のハードウェア互換性を提供します。トレードオフは、キーボードが忙しい時にバックライトが揺れる可能性があることです。有効にするには、rules.mk に以下を追加します:
203```makefile
204BACKLIGHT_DRIVER = software
205```
206
207### ソフトウェア PWM 設定
208
209バックライトの挙動を変更するには、`config.h` の中で以下の `#define` をします:
210
211| 定義 | デフォルト | 説明 |
212|-----------------|-------------|-------------------------------------------------------------------------------------------------------------|
213| `BACKLIGHT_PIN` | `B7` | LED を制御するピン。自身のキーボードを設計している場合を除き、これを変更する必要はないはずです |
214| `BACKLIGHT_PINS` | *定義なし* | 実験的: 詳細は以下を見てください |
215
216### 複数のバックライトピン
217
218ほとんどのキーボードは、全てのバックライト LED を制御するたった1つのバックライトピンを持ちます (特にバックライトがハードウェア PWM ピンに接続されている場合)。
219ソフトウェア PWM では、複数のバックライトピンを定義することができます。これらすべてのピンは PWM デューティサイクル時に同時にオンおよびオフになります。
220この機能により、例えば Caps Lock LED (またはその他の制御可能な LED) の輝度を、バックライトの他の LED と同じレベルに設定することができます。Caps Lock の代わりに LCTRL をマップしていて、Caps Lock がオンの時に Caps Lock LED をアクティブにする代わりにバックライトの一部にする必要がある場合に便利です。
221
222複数のバックライトピンをアクティブにするには、`config.h` に次のようなものを追加する必要があります:
223
224```c
225#undef BACKLIGHT_PIN
226#define BACKLIGHT_PINS { F5, B2 }
227```
228
229## カスタムドライバ
230
231有効にするには、rules.mk に以下を追加します:
232
233```makefile
234BACKLIGHT_DRIVER = custom
235```
236
237カスタムドライバ API を実装する場合、提供されるキーボードフックは以下の通りです:
238
239```c
240void backlight_init_ports(void) {
241 // オプション - 起動時に実行されます
242 // - 通常、ここでピンを設定します
243}
244void backlight_set(uint8_t level) {
245 // オプション - レベルの変更時に実行されます
246 // - 通常、ここで新しい値に応答します
247}
248
249void backlight_task(void) {
250 // オプション - 定期的に実行されます
251 // - ここで長時間実行されるアクションはパフォーマンスの問題を引き起こします
252}
253```
diff --git a/docs/ja/feature_bluetooth.md b/docs/ja/feature_bluetooth.md
new file mode 100644
index 000000000..90b88bd7c
--- /dev/null
+++ b/docs/ja/feature_bluetooth.md
@@ -0,0 +1,52 @@
1# Bluetooth
2
3<!---
4 original document: 5d5ff80:docs/feature_bluetooth.md
5 git diff 5d5ff80 HEAD -- docs/feature_bluetooth.md | cat
6-->
7
8## Bluetooth の既知のサポートハードウェア
9
10現在のところ Bluetooth のサポートは AVR ベースのチップに限られます。Bluetooth 2.1 については、QMK は RN-42 モジュールと、Bluefruit EZ-Key をサポートしますが、後者はもう生産されていません。より最近の BLE プロトコルについては、現在のところ Adafruit Bluefruit SPI Friend のみが直接サポートされています。iOS デバイスに接続するには、BLE が必要です。iOS はマウス入力をサポートしないことに注意してください。
11
12| ボード | Bluetooth プロトコル | 接続タイプ | rules.mk | Bluetooth チップ |
13|----------------------------------------------------------------|----------------------------|----------------|---------------------------|--------------|
14| [Adafruit EZ-Key HID](https://www.adafruit.com/product/1535) | Bluetooth Classic | UART | `BLUETOOTH = AdafruitEZKey` | |
15| Roving Networks RN-42 (Sparkfun Bluesmirf) | Bluetooth Classic | UART | `BLUETOOTH = RN42` | RN-42 |
16| [Bluefruit LE SPI Friend](https://www.adafruit.com/product/2633) | Bluetooth Low Energy | SPI | `BLUETOOTH = AdafruitBLE` | nRF51822 |
17
18まだサポートされていませんが、可能性のあるもの:
19* [Bluefruit LE UART Friend](https://www.adafruit.com/product/2479)。[tmk 実装がおそらく見つかります](https://github.com/tmk/tmk_keyboard/issues/514)
20* RN-42 ファームウェアが書き込まれた HC-05 ボード。どちらも明らかに CSR BC417 チップを使っています。RN-42 ファームウェアを使って書き込むと、HID 機能が提供されます。
21* Sparkfun Bluetooth Mate
22* HM-13 ベースのボード
23
24### Adafruit BLE SPI Friend
25現在のところ QMK によってサポートされている唯一の bluetooth チップセットは、Adafruit Bluefruit SPI Friend です。Adafruit のカスタムファームウェアを実行する Nordic nRF5182 ベースのチップです。データは Hardware SPI を介した Adafruit の SDEP を使って転送されます。[Feather 32u4 Bluefruit LE](https://www.adafruit.com/product/2829) は Adafruit ファームウェアを搭載した Nordic BLE チップに SPI 経由で接続された AVR mcu であるため、サポートされます。SPI friend を使ってカスタムボードを構築する場合、32u4 feather が使用するピン選択を使うのが最も簡単ですが、以下の定義で config.h オプションでピンを変更することができます:
26* #define AdafruitBleResetPin D4
27* #define AdafruitBleCSPin B4
28* #define AdafruitBleIRQPin E6
29
30Bluefruit UART friend は SPI friend に変換することができますが、これにはMDBT40 チップへの直接の再書き込みとはんだ付けが[必要です](https://github.com/qmk/qmk_firmware/issues/2274)。
31
32## Adafruit EZ-Key hid
33これには[ハードウェアの変更](https://www.reddit.com/r/MechanicalKeyboards/comments/3psx0q/the_planck_keyboard_with_bluetooth_guide_and/?ref=search_posts)が必要ですが、Makefile を使って有効にすることができます。ファームウェアは引き続き USB 経由で文字を出力するため、コンピュータ経由で充電する場合は注意してください。任意にオフにするために Bluefruit 上にスイッチを持つことは理にかなっています。
34
35
36<!-- FIXME: Document bluetooth support more completely. -->
37## Bluetooth の Rules.mk オプション
38これらのうちの1つだけを使ってください
39* BLUETOOTH_ENABLE = yes (レガシーオプション)
40* BLUETOOTH = RN42
41* BLUETOOTH = AdafruitEZKey
42* BLUETOOTH = AdafruitBLE
43
44## Bluetooth キーコード
45
46これは複数のキーボードの出力が選択できる場合に使われます。現在のところ、これは USB と Bluetooth の両方をサポートするキーボードで、それらの間の切り替えのみが可能です。
47
48| 名前 | 説明 |
49|----------|----------------------------------------------|
50| `OUT_AUTO` | USB と Bluetooth を自動的に切り替える |
51| `OUT_USB` | USB のみ |
52| `OUT_BT` | Bluetooth のみ |
diff --git a/docs/ja/feature_bootmagic.md b/docs/ja/feature_bootmagic.md
new file mode 100644
index 000000000..1f38914ed
--- /dev/null
+++ b/docs/ja/feature_bootmagic.md
@@ -0,0 +1,171 @@
1# ブートマジック
2
3<!---
4 original document: 5d5ff80:docs/feature_bootmagic.md
5 git diff 5d5ff80 HEAD -- docs/feature_bootmagic.md | cat
6-->
7
8再書き込みせずにキーボードの挙動を変更することができる、3つの独立した関連する機能があります。それぞれは似たような機能を持ちますが、キーボードがどのように設定されているかによって異なる方法でアクセスされます。
9
10**ブートマジック**は初期化の間にキーボードを設定するためのシステムです。ブートマジックコマンドを起動するには、ブートマジックキーと1つ以上のコマンドキーを押し続けます。
11
12**ブートマジックキーコード** は前に `MAGIC_` が付いており、キーボードが初期化された*後で*ブートマジックの機能にアクセスすることができます。キーコードを使うには、他のキーコードと同じようにそれらをキーマップに割り当てます。
13
14以前は**マジック**として知られていた**コマンド**は、キーボードの異なる側面を制御することができる別の機能です。ブートマジックと一部の機能を共有しますが、コンソールにバージョン情報を出力するような、ブートマジックにはできないこともできます。詳細は、[コマンド](ja/feature_command.md)を見てください。
15
16一部のキーボードでは、ブートマジックはデフォルトで無効になっています。その場合、`rules.mk` 内で以下のように明示的に有効にする必要があります:
17
18```make
19BOOTMAGIC_ENABLE = full
20```
21
22?> `full` の代わりに `yes` が使われていることがあるかもしれませんが、これは問題ありません。ただし、`yes` は非推奨で、理想的には `full` (あるいは`lite`) が使われるべきです。
23
24さらに、以下を `rules.mk` ファイルに追加することで、[ブートマジックライト](#bootmagic-lite) (スケールダウンした、とても基本的なバージョンのブートマジック)を使うことができます:
25
26```make
27BOOTMAGIC_ENABLE = lite
28```
29
30## ホットキー
31
32キーボードを接続しながら、ブートマジックキー(デフォルトはスペース)と目的のホットキーを押します。例えば、スペースと `B` を押したままにすると、ブートローダに入ります。
33
34| ホットキー | 説明 |
35|------------------|---------------------------------------------|
36| エスケープ | EEPROM のブートマジック設定を無視する |
37| `B` | ブートローダに入る |
38| `D` | シリアルを介するデバッグ出力の切り替え |
39| `X` | キーマトリックスのデバッグ出力の切り替え |
40| `K` | キーボードのデバッグの切り替え |
41| `M` | マウスのデバッグの切り替え |
42| `L` | EE_HANDS 左右設定に、"左手"を設定 |
43| `R` | EE_HANDS 左右設定に、"右手"を設定 |
44| Backspace | EEPROM をクリア |
45| Caps Lock | Caps Lock を左コントロールとして扱うかを切り替え |
46| 左 Control | Caps Lock と左コントロールの入れ替えを切り替え |
47| 左 Alt | 左 Alt と左 GUI の入れ替えを切り替え |
48| 右 Alt | 右 Alt と右 GUI の入れ替えを切り替え |
49| 左 GUI | GUI キーの有効・無効を切り替え (ゲームの時に便利です) |
50| <code>&#96;</code> | <code>&#96;</code> とエスケープの入れ替えを切り替え |
51| `\` | `\` とバックスペースの入れ替えを切り替え |
52| `N` | N キーロールオーバー (NKRO) の有効・無効を切り替え |
53| `0` | レイヤー 0 をデフォルトレイヤーにする |
54| `1` | レイヤー 1 をデフォルトレイヤーにする |
55| `2` | レイヤー 2 をデフォルトレイヤーにする |
56| `3` | レイヤー 3 をデフォルトレイヤーにする |
57| `4` | レイヤー 4 をデフォルトレイヤーにする |
58| `5` | レイヤー 5 をデフォルトレイヤーにする |
59| `6` | レイヤー 6 をデフォルトレイヤーにする |
60| `7` | レイヤー 7 をデフォルトレイヤーにする |
61
62## キーコード :id=keycodes
63
64| キー | エイリアス | 説明 |
65|----------------------------------|---------|--------------------------------------------------------------------------|
66| `MAGIC_SWAP_CONTROL_CAPSLOCK` | `CL_SWAP` | Caps Lock と左コントロールの入れ替え |
67| `MAGIC_UNSWAP_CONTROL_CAPSLOCK` | `CL_NORM` | Caps Lock と左コントロールの入れ替えの解除 |
68| `MAGIC_CAPSLOCK_TO_CONTROL` | `CL_CTRL` | Caps Lock をコントロールとして扱う |
69| `MAGIC_UNCAPSLOCK_TO_CONTROL` | `CL_CAPS` | Caps Lock をコントロールとして扱うことを止める |
70| `MAGIC_SWAP_LCTL_LGUI` | `LCG_SWP` | 左コントロールと GUI の入れ替え |
71| `MAGIC_UNSWAP_LCTL_LGUI` | `LCG_NRM` | 左コントロールと GUI の入れ替えを解除 |
72| `MAGIC_SWAP_RCTL_RGUI` | `RCG_SWP` | 右コントロールと GUI の入れ替え |
73| `MAGIC_UNSWAP_RCTL_RGUI` | `RCG_NRM` | 右コントロールと GUI の入れ替えを解除 |
74| `MAGIC_SWAP_CTL_GUI` | `CG_SWAP` | 両側のコントロールと GUI の入れ替え |
75| `MAGIC_UNSWAP_CTL_GUI` | `CG_NORM` | 両側のコントロールと GUI の入れ替えを解除 |
76| `MAGIC_TOGGLE_CTL_GUI` | `CG_TOGG` | 両側のコントロールと GUI の入れ替えの切り替え |
77| `MAGIC_SWAP_LALT_LGUI` | `LAG_SWP` | 左 Alt と GUI の入れ替え |
78| `MAGIC_UNSWAP_LALT_LGUI` | `LAG_NRM` | 左 Alt と GUI の入れ替えを解除 |
79| `MAGIC_SWAP_RALT_RGUI` | `RAG_SWP` | 右 Alt と GUI の入れ替え |
80| `MAGIC_UNSWAP_RALT_RGUI` | `RAG_NRM` | 右 Alt と GUI の入れ替えを解除 |
81| `MAGIC_SWAP_ALT_GUI` | `AG_SWAP` | 両側の Alt と GUI の入れ替え |
82| `MAGIC_UNSWAP_ALT_GUI` | `AG_NORM` | 両側の Alt と GUI の入れ替えを解除 |
83| `MAGIC_TOGGLE_ALT_GUI` | `AG_TOGG` | 両側の Alt と GUI の入れ替えの切り替え |
84| `MAGIC_NO_GUI` | `GUI_OFF` | GUI キーを無効にする |
85| `MAGIC_UNNO_GUI` | `GUI_ON` | GUI キーを有効にする |
86| `MAGIC_SWAP_GRAVE_ESC` | `GE_SWAP` | <code>&#96;</code> とエスケープの入れ替え |
87| `MAGIC_UNSWAP_GRAVE_ESC` | `GE_NORM` | <code>&#96;</code> とエスケープの入れ替えを解除 |
88| `MAGIC_SWAP_BACKSLASH_BACKSPACE` | `BS_SWAP` | `\` とバックスペースを入れ替え |
89| `MAGIC_UNSWAP_BACKSLASH_BACKSPACE` | `BS_NORM` | `\` とバックスペースの入れ替えを解除する |
90| `MAGIC_HOST_NKRO` | `NK_ON` | N キーロールオーバーを有効にする |
91| `MAGIC_UNHOST_NKRO` | `NK_OFF` | N キーロールオーバーを無効にする |
92| `MAGIC_TOGGLE_NKRO` | `NK_TOGG` | N キーロールオーバーの有効・無効を切り替え |
93| `MAGIC_EE_HANDS_LEFT` | `EH_LEFT` | 分割キーボードのマスター側を左手に設定(`EE_HANDS` 用) |
94| `MAGIC_EE_HANDS_RIGHT` | `EH_RGHT` | 分割キーボードのマスター側を右手に設定(`EE_HANDS` 用) |
95
96## 設定
97
98ブートマジックのためのホットキーの割り当てを変更したい場合は、キーボードあるいはキーマップレベルのどちらかで、`config.h` にこれらを `#define` します。
99
100| 定義 | デフォルト | 説明 |
101|----------------------------------------|-------------|---------------------------------------------------|
102| `BOOTMAGIC_KEY_SALT` | `KC_SPACE` | ブートマジックキー |
103| `BOOTMAGIC_KEY_SKIP` | `KC_ESC` | EEPROM のブートマジック設定を無視する |
104| `BOOTMAGIC_KEY_EEPROM_CLEAR` | `KC_BSPACE` | EEPROM 設定をクリアする |
105| `BOOTMAGIC_KEY_BOOTLOADER` | `KC_B` | ブートローダに入る |
106| `BOOTMAGIC_KEY_DEBUG_ENABLE` | `KC_D` | シリアルを介するデバッグ出力の切り替え |
107| `BOOTMAGIC_KEY_DEBUG_MATRIX` | `KC_X` | マトリックスのデバッグを切り替え |
108| `BOOTMAGIC_KEY_DEBUG_KEYBOARD` | `KC_K` | キーボードのデバッグの切り替え |
109| `BOOTMAGIC_KEY_DEBUG_MOUSE` | `KC_M` | マウスのデバッグの切り替え |
110| `BOOTMAGIC_KEY_EE_HANDS_LEFT` | `KC_L` | EE_HANDS 左右設定に、"左手"を設定 |
111| `BOOTMAGIC_KEY_EE_HANDS_RIGHT` | `KC_R` | EE_HANDS 左右設定に、"右手"を設定 |
112| `BOOTMAGIC_KEY_SWAP_CONTROL_CAPSLOCK` | `KC_LCTRL` | 左コントロールと Caps Lock の入れ替え |
113| `BOOTMAGIC_KEY_CAPSLOCK_TO_CONTROL` | `KC_CAPSLOCK` | Caps Lock を左コントロールとして扱うかを切り替え |
114| `BOOTMAGIC_KEY_SWAP_LALT_LGUI` | `KC_LALT` | 左 Alt と左 GUI の入れ替えを切り替え (macOS 用) |
115| `BOOTMAGIC_KEY_SWAP_RALT_RGUI` | `KC_RALT` | 右 Alt と右 GUI の入れ替えを切り替え (macOS 用) |
116| `BOOTMAGIC_KEY_NO_GUI` | `KC_LGUI` | GUI キーの有効・無効を切り替え (ゲームの時に便利です) |
117| `BOOTMAGIC_KEY_SWAP_GRAVE_ESC` | `KC_GRAVE` | <code>&#96;</code> とエスケープの入れ替えを切り替え |
118| `BOOTMAGIC_KEY_SWAP_BACKSLASH_BACKSPACE` | `KC_BSLASH` | `\` とバックスペースの入れ替えを切り替え |
119| `BOOTMAGIC_HOST_NKRO` | `KC_N` | N キーロールオーバー (NKRO) の有効・無効を切り替え |
120| `BOOTMAGIC_KEY_DEFAULT_LAYER_0` | `KC_0` | レイヤー 0 をデフォルトレイヤーにする |
121| `BOOTMAGIC_KEY_DEFAULT_LAYER_1` | `KC_1` | レイヤー 1 をデフォルトレイヤーにする |
122| `BOOTMAGIC_KEY_DEFAULT_LAYER_2` | `KC_2` | レイヤー 2 をデフォルトレイヤーにする |
123| `BOOTMAGIC_KEY_DEFAULT_LAYER_3` | `KC_3` | レイヤー 3 をデフォルトレイヤーにする |
124| `BOOTMAGIC_KEY_DEFAULT_LAYER_4` | `KC_4` | レイヤー 4 をデフォルトレイヤーにする |
125| `BOOTMAGIC_KEY_DEFAULT_LAYER_5` | `KC_5` | レイヤー 5 をデフォルトレイヤーにする |
126| `BOOTMAGIC_KEY_DEFAULT_LAYER_6` | `KC_6` | レイヤー 6 をデフォルトレイヤーにする |
127| `BOOTMAGIC_KEY_DEFAULT_LAYER_7` | `KC_7` | レイヤー 7 をデフォルトレイヤーにする |
128
129# ブートマジックライト :id=bootmagic-lite
130
131本格的なブートマジック機能の他に、ブートローダへのジャンプのみを処理するブートマジックライトがあります。これは、物理的なリセットボタンが無くブートローダにジャンプする方法が必要だが、ブートマジックが引き起こす問題を扱いたくないキーボードに適しています。
132
133ブートマジックのこのバージョンを有効にするには、以下を使って `rules.mk` で有効にする必要があります:
134
135```make
136BOOTMAGIC_ENABLE = lite
137```
138
139さらに、どのキーを使うかを指定したほうが良いかもしれません。これは普通ではないマトリックスを持つキーボードで特に便利です。そのためには、使いたいキーの行と列を指定する必要があります。`config.h` ファイルにこれらのエントリを追加します:
140
141```c
142#define BOOTMAGIC_LITE_ROW 0
143#define BOOTMAGIC_LITE_COLUMN 1
144```
145
146デフォルトでは、これらは 0 と 0 に設定されます。これは通常はほとんどのキーボードで "ESC" キーです。
147
148ブートローダを起動するには、キーボードを接続する時にこのキーを押し続けます。たった1つのキーです。
149
150!> ブートマジックライトを使用すると、EEPROM を**常にリセットします**。つまり保存された全ての設定は失われます。
151
152## 高度なブートマジックライト
153
154`bootmagic_lite` 関数は必要に応じてコード内で置き換えることができるように、弱く定義されています。これの良い例は Zeal60 キーボードで、追加の処理が必要です。
155
156関数を置き換えるには、以下のようなものをコードに追加するだけです:
157
158```c
159void bootmagic_lite(void) {
160 matrix_scan();
161 wait_ms(DEBOUNCE * 2);
162 matrix_scan();
163
164 if (matrix_get_row(BOOTMAGIC_LITE_ROW) & (1 << BOOTMAGIC_LITE_COLUMN)) {
165 // ブートローダにジャンプする。
166 bootloader_jump();
167 }
168}
169```
170
171追加の機能をここに追加することができます。例えば、eeprom のリセットやブートマジックを起動するために押す必要がある追加のキーです。`bootmagic_lite` はファームウェア内で大部分の機能が初期化される前に呼ばれることに注意してください。
diff --git a/docs/ja/hardware_avr.md b/docs/ja/hardware_avr.md
new file mode 100644
index 000000000..6eb86a378
--- /dev/null
+++ b/docs/ja/hardware_avr.md
@@ -0,0 +1,189 @@
1# AVR マイコンを使ったキーボード
2
3<!---
4 grep --no-filename "^[ ]*git diff" docs/ja/*.md | sh
5 original document: c9e3fa6f7:docs/hardware_avr.md
6 git diff c9e3fa6f7 HEAD -- docs/hardware_avr.md | cat
7-->
8
9このページでは QMK における AVR マイコンのサポートについて説明します。AVR マイコンには、Atmel 社製の atmega32u4、atmega32u2、at90usb1286 やその他のマイコンを含みます。AVR マイコンは、簡単に動かせるよう設計された8ビットの MCU です。キーボードでよく使用される AVR マイコンには USB 機能や大きなキーボードマトリックスのためのたくさんの GPIO を搭載しています。これらは、現在、キーボードで使われる最も一般的な MCU です。
10
11まだ読んでない場合は、[キーボードガイドライン](ja/hardware_keyboard_guidelines.md) を読んで、キーボードを QMK にどのように適合させるかを把握する必要があります。
12
13## AVR を使用したキーボードを QMK に追加する
14
15QMK には AVR を使ったキーボードでの作業を簡略化するための機能が多数あります。大体のキーボードでは1行もコードを書く必要がありません。まずはじめに、`util/new_keyboard.sh` スクリプトを実行します。
16
17```
18$ ./util/new_keyboard.sh
19Generating a new QMK keyboard directory
20
21Keyboard Name: mycoolkb
22Keyboard Type [avr]:
23Your Name [John Smith]:
24
25Copying base template files... done
26Copying avr template files... done
27Renaming keyboard files... done
28Replacing %KEYBOARD% with mycoolkb... done
29Replacing %YOUR_NAME% with John Smith... done
30
31Created a new keyboard called mycoolkb.
32
33To start working on things, cd into keyboards/mycoolkb,
34or open the directory in your favourite text editor.
35```
36
37これにより、新しいキーボードをサポートするために必要なすべてのファイルが作成され、デフォルト値で設定が入力されます。あとはあなたのキーボード用にカスタマイズするだけです。
38
39## `readme.md`
40
41このファイルではキーボードに関する説明を記述します。[キーボード Readme テンプレート](ja/documentation_templates.md#keyboard-readmemd-template)に従って `readme.md` を記入して下さい。`readme.md` の上部に画像を配置することをお勧めします。画像は [Imgur](http://imgur.com) のような外部サービスを利用してください。
42
43## `<keyboard>.c`
44
45このファイルではキーボード上で実行される全てのカスタマイズされたロジックを記述します。多くのキーボードの場合、何も書く必要はありません。
46[機能のカスタマイズ](ja/custom_quantum_functions.md)で、カスタマイズされたロジックの記述方法を詳しく学ぶことが出来ます。
47
48## `<keyboard>.h`
49
50このファイルでは、[レイアウト](ja/feature_layouts.md)を定義します。最低限、以下のような `#define LAYOUT` を記述する必要があります。
51
52```c
53#define LAYOUT( \
54 k00, k01, k02, \
55 k10, k11 \
56) { \
57 { k00, k01, k02 }, \
58 { k10, KC_NO, k11 }, \
59}
60```
61
62`LAYOUT` マクロの前半部ではキーの物理的な配置を定義します。後半部ではスイッチが接続されるマトリックスを定義します。これによってマトリックス配線の順とは異なるキーを物理的に配置できます。
63
64それぞれの `k__` 変数はユニークでなければいけません。通常は `k<row><col>` というフォーマットに従って記述されます。
65
66物理マトリックス(後半部)では、`MATRIX_ROWS` に等しい行数が必要であり、各行には正確に `MATRIX_COLS` と等しい数の要素が含まれていなければいけません。物理キーが存在しない場合は、`KC_NO` を使用して空白を埋める事ができます。
67
68## `config.h`
69
70`config.h` ファイルには、ハードウェアや機能の設定を記述します。このファイルで設定できるオプションは列挙しきれないほどたくさんあります。利用できるオプションの概要は[設定オプション](ja/config_options.md)を参照して下さい。
71
72### ハードウェアの設定
73
74`config.h` の先頭には USB に関する設定があります。これらはキーボードが OS からどのように見えるかを制御しています。変更する理由がない場合は、`VENDOR_ID` を `0xFEED` のままにしておく必要があります。`PRODUCT_ID` にはまだ使用されていない番号を選ばなければいけません。
75
76`MANUFACTURER`、 `PRODUCT`、 `DESCRIPTION` をキーボードにあった設定に変更します。
77
78```c
79#define VENDOR_ID 0xFEED
80#define PRODUCT_ID 0x6060
81#define DEVICE_VER 0x0001
82#define MANUFACTURER You
83#define PRODUCT my_awesome_keyboard
84#define DESCRIPTION A custom keyboard
85```
86
87?> Windows や macOS では、`MANUFACTURER` と `PRODUCT` が USBデバイスのリストに表示されます。Linux 上の `lsusb` では、代わりにデフォルトで [USB ID Repository](http://www.linux-usb.org/usb-ids.html) によって維持されているリストからこれらを取得します。`lsusb -v` を使用するとデバイスから示された値を表示します。また、接続したときのカーネルログにも表示されます。
88
89### キーボードマトリックスの設定
90
91`config.h` ファイルの次のセクションではキーボードのマトリックスを扱います。最初に設定するのはマトリックスのサイズです。これは通常、常にではありませんが、物理キー配置と同じ数の行・列になります。
92
93```c
94#define MATRIX_ROWS 2
95#define MATRIX_COLS 3
96```
97
98マトリックスのサイズを定義したら、MCU のどのピンを行と列に接続するかを定義します。そのためにはピンの名前を指定するだけです。
99
100```c
101#define MATRIX_ROW_PINS { D0, D5 }
102#define MATRIX_COL_PINS { F1, F0, B0 }
103#define UNUSED_PINS
104```
105
106
107`MATRIX_ROW_PINS` の要素の数は `MATRIX_ROWS` に定義した数と同じでなければいけません。同様に `MATRIX_COL_PINS` の要素の数も `MATRIX_COLS` と等しい必要があります。`UNUSED_PINS` は定義しなくても問題ありませんがどのピンが空いているのか記録しておきたい場合は定義できます。
108
109最後にダイオードの方向を定義します。これには `COL2ROW` か `ROW2COL` を設定します。
110
111```c
112#define DIODE_DIRECTION COL2ROW
113```
114
115#### ダイレクトピンマトリックス
116
117各スイッチが、列と行のピンを共有する代わりに、それぞれ個別のピンとグランドに接続されているキーボードを定義するには、`DIRECT_PINS` を使用します。マッピング定義では、列と行の各スイッチのピンを左から右の順に定義します。`MATRIX_ROWS` と `MATRIX_COLS` 内のサイズに準拠する必要があり、空白を埋めるには `NO_PIN` を使用します。これによって `DIODE_DIRECTION`、`MATRIX_ROW_PINS`、`MATRIX_COL_PINS` の動作を上書きします。
118
119```c
120// #define MATRIX_ROW_PINS { D0, D5 }
121// #define MATRIX_COL_PINS { F1, F0, B0 }
122#define DIRECT_PINS { \
123 { F1, E6, B0, B2, B3 }, \
124 { F5, F0, B1, B7, D2 }, \
125 { F6, F7, C7, D5, D3 }, \
126 { B5, C6, B6, NO_PIN, NO_PIN } \
127}
128#define UNUSED_PINS
129
130/* COL2ROW, ROW2COL */
131//#define DIODE_DIRECTION
132```
133
134### バックライトの設定
135
136QMK では GPIO ピンでのバックライト制御をサポートしています。これらの設定を選択して MCU から制御できます。詳しくは[バックライト](ja/feature_backlight.md)を参照して下さい。
137
138```c
139#define BACKLIGHT_PIN B7
140#define BACKLIGHT_LEVELS 3
141#define BACKLIGHT_BREATHING
142#define BREATHING_PERIOD 6
143```
144
145### その他の設定オプション
146
147`config.h` で設定・調整できる機能はたくさんあります。詳しくは[設定オプション](ja/config_options.md)を参照して下さい。
148
149## `rules.mk`
150
151`rules.mk` ファイルを使用して、ビルドするファイルや有効にする機能をQMKへ指示します。atmega32u4 を使っている場合、これらのオプションはデフォルトのままにしておくことが出来ます。他の MCU を使用している場合はいくつかのパラメータを調整する必要があります。
152
153### MCU オプション
154
155このオプションではビルドする CPU をビルドシステムに指示します。これらの設定を変更する場合は非常に注意して下さい。キーボードを操作不能にしてしまう可能性があります。
156
157```make
158MCU = atmega32u4
159F_CPU = 16000000
160ARCH = AVR8
161F_USB = $(F_CPU)
162OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
163```
164
165### ブートローダー
166
167ブートローダーは MCU に保存されているプログラムをアップグレードするための特別なセクションです。キーボードのレスキューパーティションのようなものだと考えて下さい。
168
169#### Teensy Bootloader の例
170
171```make
172BOOTLOADER = halfkay
173```
174
175#### Atmel DFU Loader の例
176
177```make
178BOOTLOADER = atmel-dfu
179```
180
181#### Pro Micro Bootloader の例
182
183```make
184BOOTLOADER = caterina
185```
186
187### ビルドオプション
188
189`rules.mk` にはオン・オフできるたくさんの機能があります。詳細なリストと説明は[設定オプション](ja/config_options.md#feature-options)を参照して下さい。
diff --git a/docs/ja/hardware_drivers.md b/docs/ja/hardware_drivers.md
new file mode 100644
index 000000000..cc85589e7
--- /dev/null
+++ b/docs/ja/hardware_drivers.md
@@ -0,0 +1,45 @@
1# QMK ハードウェアドライバー
2
3<!---
4 grep --no-filename "^[ ]*git diff" docs/ja/*.md | sh
5 original document: c9e3fa6f7:docs/hardware_drivers.md
6 git diff c9e3fa6f7 HEAD -- docs/hardware_drivers.md | cat
7-->
8
9QMK はたくさんの異なるハードウェアで使われています。最も一般的な MCU とマトリックス構成をサポートしていますが、キーボードへ他のハードウェアを追加し制御するためのドライバーもいくつか用意されています。例えば、マウスやポインティングデバイス、分割キーボード用の IO エキスパンダ、Bluetooth モジュール、LCD、OLED、TFT 液晶などがあります。
10
11<!-- FIXME: This should talk about how drivers are integrated into QMK and how you can add your own driver.
12
13# Driver System Overview
14
15-->
16
17# 使用できるドライバー
18
19## ProMicro (AVR のみ)
20
21ProMicro のピンを AVR の名前ではなく、Arduino の名前で指定できます。この部分はより詳しく文書化される必要があります。もしこれを使用したい場合にコードを読んでも分からない場合、[issue を開く](https://github.com/qmk/qmk_firmware/issues/new)を通して助けることができるかもしれません。
22
23## SSD1306 OLED ドライバー
24
25SSD1306 ベースの OLED ディスプレイのサポート。詳しくは[OLED ドライバ](ja/feature_oled_driver.md)を参照して下さい。
26
27## uGFX
28
29QMK 内で uGFX を使用して、キャラクタ LCD やグラフィック LCD、LED アレイ、OLED ディスプレイ、TFT 液晶や他のディスプレイを制御できます。この部分はより詳しく文書化される必要があります。もしこれを使用したい場合にコードを読んでも分からない場合、[issue を開く](https://github.com/qmk/qmk_firmware/issues/new)を通して助けることができるかもしれません。
30
31## WS2812
32
33WS2811/WS2812{a,b,c} LED のサポート。 詳しくは [RGB ライト](ja/feature_rgblight.md)を参照して下さい。
34
35## IS31FL3731
36
37最大2つの LED ドライバーのサポート。各ドライバーは、I2C を使って個別に LED を制御する2つのチャーリープレクスマトリックスを実装しています。最大144個の単色 LED か32個の RGB LED を使用できます。ドライバーの設定方法の詳細は[RGB マトリックス](ja/feature_rgb_matrix.md)を参照して下さい。
38
39## IS31FL3733
40
41拡張の余地がある最大1つの LED ドライバーのサポート。各ドライバーは192個の単色 LED か64個の RGB LED を制御できます。ドライバーの設定方法の詳細は [RGB マトリックス](ja/feature_rgb_matrix.md)を参照して下さい。
42
43## 24xx シリーズ 外部 I2C EEPROM
44
45オンチップ EEPROM の代わりに使用する I2C ベースの外部 EEPROM のサポート。ドライバーの設定方法の詳細は [EEPROM ドライバー](ja/eeprom_driver.md)を参照して下さい。
diff --git a/docs/ja/hardware_keyboard_guidelines.md b/docs/ja/hardware_keyboard_guidelines.md
new file mode 100644
index 000000000..5a9de52ef
--- /dev/null
+++ b/docs/ja/hardware_keyboard_guidelines.md
@@ -0,0 +1,155 @@
1# QMK キーボードガイドライン
2
3<!---
4 grep --no-filename "^[ ]*git diff" docs/ja/*.md | sh
5 original document: c9e3fa6f7:docs/hardware_keyboard_guidelines.md
6 git diff c9e3fa6f7 HEAD -- docs/hardware_keyboard_guidelines.md | cat
7-->
8
9QMK は開始以来、コミュニティにおけるキーボードの作成や保守に貢献しているあなたのような人たちのおかげで飛躍的に成長しました。私たちが成長するにつれて、うまくやるためのいくつかのパターンを発見しました。他の人たちがあなたの苦労の恩恵を受けやすくするため、それにあわせてもらえるようお願いします。
10
11## あなたのキーボード/プロジェクトの名前を決める
12
13キーボードの名前は全て小文字で、アルファベット、数字、アンダースコア(`_`)のみで構成されています。アンダースコア(`_`)で始めてはいけません。スラッシュ(`/`)はサブフォルダの区切り文字として使用されます。
14
15`test`、`keyboard`、`all` はmakeコマンド用に予約されており、キーボードまたはサブフォルダ名として使用することは出来ません。
16
17正しい例:
18
19* `412_64`
20* `chimera_ortho`
21* `clueboard/66/rev3`
22* `planck`
23* `v60_type_r`
24
25## サブフォルダ
26
27QMK では、まとめるためや同じキーボードのリビジョン間でコードを共有するためにサブフォルダを使用します。フォルダは最大4階層までネストできます。
28
29 qmk_firmware/keyboards/top_folder/sub_1/sub_2/sub_3/sub_4
30
31サブフォルダ内に `rules.mk` ファイルが存在するとコンパイル可能なキーボードとして見なされます。QMK Configurator から使用できるようになり、`make all` でテストされます。同じメーカーのキーボードをまとめるためにフォルダを使用している場合は `rules.mk` ファイルを置いてはいけません。
32
33例:
34
35Clueboard は、サブフォルダをまとめるためとキーボードのリビジョン管理の両方のために使用しています。
36
37* [`qmk_firmware`](https://github.com/qmk/qmk_firmware/tree/master)
38 * [`keyboards`](https://github.com/qmk/qmk_firmware/tree/master/keyboards)
39 * [`clueboard`](https://github.com/qmk/qmk_firmware/tree/master/keyboards/clueboard) &larr; これはまとめるためのフォルダです。 `rules.mk` ファイルはありません。
40 * [`60`](https://github.com/qmk/qmk_firmware/tree/master/keyboards/clueboard/60) &larr; これはコンパイルできるキーボードです。`rules.mk` が存在します。
41 * [`66`](https://github.com/qmk/qmk_firmware/tree/master/keyboards/clueboard/66) &larr; これもコンパイルできるキーボードです。 デフォルトのリビジョンとして `DEFAULT_FOLDER` に `rev3` を指定しています。
42 * [`rev1`](https://github.com/qmk/qmk_firmware/tree/master/keyboards/clueboard/66/rev1) &larr; コンパイル可能: `make clueboard/66/rev1`
43 * [`rev2`](https://github.com/qmk/qmk_firmware/tree/master/keyboards/clueboard/66/rev2) &larr; コンパイル可能: `make clueboard/66/rev2`
44 * [`rev3`](https://github.com/qmk/qmk_firmware/tree/master/keyboards/clueboard/66/rev3) &larr; コンパイル可能: `make clueboard/66/rev3` もしくは `make clueboard/66`
45
46## キーボードのフォルダ構成
47
48キーボードは `qmk_firmware/keyboards/` 内にあり、前のセクションで説明したようにフォルダ名はキーボードの名前にする必要があります。このフォルダ内にはいくつかのファイルがあります。
49
50* `readme.md`
51* `info.json`
52* `config.h`
53* `rules.mk`
54* `<keyboard_name>.c`
55* `<keyboard_name>.h`
56
57### `readme.md`
58
59全てのプロジェクトにはどのようなキーボードなのか、誰が設計したか、どこで入手できるかを説明する `readme.md` ファイルが必要です。もしあれば、メーカーの Web サイトなどの詳しい情報へのリンクも含める必要があります。[キーボード readme テンプレート](ja/documentation_templates.md#keyboard-readmemd-template)を参考にして下さい。
60
61### `info.json`
62
63このファイルは [QMK API](https://github.com/qmk/qmk_api) から使用されます。[QMK Configurator](https://config.qmk.fm/) が必要とするキーボードの情報が含まれています。ここでメタデータを設定することもできます。詳しくは [info.json 形式](ja/reference_info_json.md) を参照して下さい。
64
65### `config.h`
66
67全てのプロジェクトには、マトリックスサイズ、製品名、USB VID/PID、説明、その他の設定などが含まれた `config.h` ファイルが必要です。一般に、このファイルを使用して常に機能するキーボードの重要な情報やデフォルトを設定します。
68
69### `rules.mk`
70
71このファイルが存在するということは、フォルダがキーボードであり、`make` コマンドで使用できることを意味します。ここでキーボードのビルド環境を構築し、デフォルトの機能を設定します。
72
73### `<keyboard_name.c>`
74
75ここではキーボードのカスタマイズされたコードを記述します。通常、初期化してキーボードのハードウェアを制御するコードを記述します。キーボードが LED やスピーカー、その他付属ハードウェアのないキーマトリックスのみで構成されている場合は空にできます。
76
77通常、以下の関数がこのファイルで定義されます。
78
79* `void matrix_init_kb(void)`
80* `void matrix_scan_kb(void)`
81* `bool process_record_kb(uint16_t keycode, keyrecord_t *record)`
82* `void led_set_kb(uint8_t usb_led)`
83
84### `<keyboard_name.h>`
85
86このファイルはキーボードのマトリックスを定義するために使用されます。配列をキーボードの物理的なスイッチマトリックスに変換する C マクロを最低限1つ定義する必要があります。複数のレイアウトでキーボードを構築出来る場合は、追加のマクロを定義しなければいけません。
87
88レイアウトが1つしかない場合は、このマクロは `LAYOUT` とします。
89
90複数のレイアウトを定義する場合、物理的に構成することが出来なくとも、マトリックス上で全てのスイッチ位置をサポートする `LAYOUT_all` という名前の基本となるレイアウトが必要です。これは `default` キーマップで使用すべきマクロです。次に、他のレイアウトマクロを使用する `default_<layout>` といった追加のキーマップを用意します。これによって、他の人が定義されたレイアウトを使いやすくなります。
91
92レイアウトマクロの名前は全て小文字で、先頭の `LAYOUT` だけ大文字です。
93
94例として、ANSI と ISO をサポートする 60% PCB がある場合、以下のようにレイアウトとキーマップを定義出来ます。
95
96| レイアウト名 | キーマップ名 | 説明 |
97|-------------|-------------|-------------|
98| LAYOUT_all | default | ISO と ANSI のどちらもサポートしたレイアウト |
99| LAYOUT_ansi | default_ansi | ANSI レイアウト |
100| LAYOUT_iso | default_iso | ISO レイアウト |
101
102## 画像/ハードウェアのファイル
103
104リポジトリのサイズを小さく保つために、いくつかの例外を除いて、どの形式のバイナリファイルも受け入れないようになりました。外部の場所(<https://imgur.com>など)でホストして、`readme.md` でリンクすることをおすすめします。
105
106ハードウェアのファイル(プレートやケース、PCB など)は [qmk.fm リポジトリ](https://github.com/qmk/qmk.fm)に提供でき、[qmk.fm](http://qmk.fm) で利用可能になります。ダウンロード出来るファイルは `/<keyboard>/`(名前は上記と同じ形式)に保存され、`http://qmk.fm/<keyboard>/` で提供されます。ページは `/_pages/<keyboard>/` から生成されて、同じ場所で提供されます( .mdファイルはJekyllを通して .htmlファイル変換されます)。`lets_split` ファイルを参照して下さい。
107
108## キーボードのデフォルト設定
109
110QMK が提供する機能の量を考えれば、新しいユーザーが混乱するのは当たり前です。キーボードのデフォルトファームウェアをまとめるなら、有効にする機能とオプションをハードウェアのサポートに必要な最低限のセットにすることをおすすめします。特定の機能に関するおすすめは以下の通りです。
111
112### ブートマジックとコマンド
113
114[ブートマジック](ja/feature_bootmagic.md) と[コマンド](ja/feature_command.md)は、ユーザーがキーボードを明白でない方法で制御出来るようにする2つの関連機能です。いずれかの機能を有効にする場合、この機能をどのように提供するかについて、よく考えることをおすすめします。この機能が必要なユーザーは、あなたのキーボードを最初のプログラムできるキーボードとして使用している初心者に影響を与えることなく、個人的なキーマップ内で有効に出来ることを覚えておきましょう。
115
116新規ユーザーが遭遇する最も多い問題は、キーボードを接続している間に間違えてブートマジックをトリガーしてしまうことです。キーボードの下を持っているとき、知らない間に Alt とスペースバーを押して、これらのキーが交換されてしまったことに気づきます。デフォルトではこの機能を無効にすることをおすすめしますが、有効にする場合は、キーボードを接続している間に押し間違えないキーへ `BOOTMAGIC_KEY_SALT` を設定することを検討して下さい。
117
118キーボードに2つの Shift キーがない場合は、`COMMAND_ENABLE = no` を指定していても `IS_COMMAND` が動作するデフォルトを設定しておくべきです。ユーザーがコマンドを有効化したときに使用するデフォルトが与えられます。
119
120## カスタムキーボードプログラミング
121
122[機能のカスタマイズ](ja/custom_quantum_functions.md)にあるようにキーボードのカスタム関数を定義できます。ユーザーも同様にその動作をカスタマイズしたいかもしれないということと、ユーザーにそれを可能にすることを忘れないで下さい。 `process_record_kb()`のようなカスタム関数を提供している場合、関数がその関数の `_user()` 版を呼び出すことを確認して下さい。また、その関数の`_user()` 版の戻り値を確認して、user が `true` を返した場合のみカスタムコードを実行しなければいけません。
123
124## 生産しない/手配線 プロジェクト
125
126プロトタイプや手配線によるものなど QMK を使用するどんなプロジェクトも受け入れますが、`/keyboards/` フォルダが乱雑になるのを防ぐために、`/keyboards/handwired/` を用意しています。いつかプロトタイプのプロジェクトが製品のプロジェクトになった時点でメインの `/keyboards/` フォルダへ移動します!
127
128## エラーとしての警告
129
130キーボードを開発するときは、全ての警告がエラーとして扱われることに注意して下さい。小さな警告が蓄積されて、将来大きなエラーを引き起こす可能性があります。(そして、警告を放っておくのは良くない習慣です)
131
132## 著作権表示
133
134別のプロジェクトを元にしてキーボードの設定をするものの同じコードを使用しない場合は、ファイル上部にある著作権表示を次の形式に従って自分の名前を表示するよう、更新して下さい。
135
136 Copyright 2017 Your Name <your@email.com>
137
138
139他の人のコードを修正し、その変更が些細な部分のみであれば、著作権表示の名前をそのままにしておかないといけません。ファイルに対して重要な作業を行った場合、以下のようにあなたの名前を追加します。
140
141 Copyright 2017 Their Name <original_author@example.com> Your Name <you@example.com>
142
143年はファイルが作成された最初の年にします。後年にそのファイルに対して作業が行われた場合、次のように2つ目の年を追加して反映することが出来ます。
144
145 Copyright 2015-2017 Your Name <you@example.com>
146
147## ライセンス
148
149QMK のコア部分は [GNU General Public License](https://www.gnu.org/licenses/licenses.en.html) でライセンスされます。AVR マイコン用のバイナリを提供する場合は、[GPLv2](https://www.gnu.org/licenses/old-licenses/gpl-2.0.html) か、[GPLv3](https://www.gnu.org/licenses/gpl.html) のどちらかから選択出来ます。ARM マイコン用のバイナリを提供する場合は、 [ChibiOS](http://www.chibios.org) の GPLv3 ライセンスに準拠するため、[GPL Version 3](https://www.gnu.org/licenses/gpl.html) を選択しなければいけません。
150
151[uGFX](https://ugfx.io) を使用している場合は、[uGFX License](https://ugfx.io/license.html) に準拠する必要があります。uGFX を利用したデバイスを販売するには個別に商用ライセンスを取得しなければいけません。
152
153## 技術的な詳細
154
155キーボードを QMK で動作させるための詳細は[ハードウェア](ja/hardware.md)を参照して下さい!
diff --git a/docs/ja/i2c_driver.md b/docs/ja/i2c_driver.md
index 4030da631..56425a2fd 100644
--- a/docs/ja/i2c_driver.md
+++ b/docs/ja/i2c_driver.md
@@ -1,38 +1,48 @@
1# I2C マスタドライバ 1# I2C マスタドライバ :id=i2c-master-driver
2 2
3<!--- 3<!---
4 grep --no-filename "^[ ]*git diff" docs/ja/*.md | sh 4 grep --no-filename "^[ ]*git diff" docs/ja/*.md | sh
5 original document: 85041ff05:docs/i2c_driver.md 5 original document: 0.8.62:docs/i2c_driver.md
6 git diff 85041ff05 HEAD -- docs/i2c_driver.md | cat 6 git diff 0.8.62 HEAD -- docs/i2c_driver.md | cat
7--> 7-->
8 8
9QMK で使われる I2C マスタドライバには、MCU 間のポータビリティを提供するための一連の関数が用意されています。 9QMK で使われる I2C マスタドライバには、MCU 間のポータビリティを提供するための一連の関数が用意されています。
10 10
11## 使用できる関数 11## I2C アドレスについての重要なメモ :id=note-on-i2c-addresses
12
13このドライバが期待する全てのアドレスは、アドレスバイトの上位7ビットにプッシュする必要があります。最下位ビットの設定(読み込み/書き込みを示す)は、それぞれの関数によって行われます。データシートやインターネットで列挙されているほとんど全ての I2C アドレスは、下位7ビットを占める7ビットとして表され、1ビット左(より上位)にシフトする必要があります。これは、ビット単位のシフト演算子 `<< 1` を使用して簡単に実行できます。
14
15これは、呼び出しごとに以下の関数を実行するか、アドレスの定義で1度だけ実行するかどちらかで行うことができます。例えば、デバイスのアドレスが `0x18` の場合:
16
17`#define MY_I2C_ADDRESS (0x18 << 1)`
18
19I2C アドレスと他の技術詳細について、さらなる情報を得るためには https://www.robot-electronics.co.uk/i2c-tutorial を見てください。
20
21## 使用できる関数 :id=available-functions
12 22
13| 関数 | 説明 | 23| 関数 | 説明 |
14|-------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| 24|-------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
15| `void i2c_init(void);` | I2C ドライバを初期化します。他のあらゆるトランザクションを開始する前に、この関数を一度だけ呼ぶ必要があります。 | 25| `void i2c_init(void);` | I2C ドライバを初期化します。他のあらゆるトランザクションを開始する前に、この関数を一度だけ呼ぶ必要があります。 |
16| `uint8_t i2c_start(uint8_t address, uint16_t timeout);` | I2C トランザクションを開始します。アドレスは方向ビットのない7ビットスレーブアドレスです。 | 26| `i2c_status_t i2c_start(uint8_t address, uint16_t timeout);` | I2C トランザクションを開始します。アドレスは方向ビットのない7ビットスレーブアドレスです。 |
17| `uint8_t i2c_transmit(uint8_t address, uint8_t* data, uint16_t length, uint16_t timeout);` | I2C 経由でデータを送信します。アドレスは方向ビットのない7ビットスレーブアドレスです。トランザクションのステータスを返します。 | 27| `i2c_status_t i2c_transmit(uint8_t address, uint8_t* data, uint16_t length, uint16_t timeout);` | I2C 経由でデータを送信します。アドレスは方向ビットのない7ビットスレーブアドレスです。トランザクションのステータスを返します。 |
18| `uint8_t i2c_receive(uint8_t address, uint8_t* data, uint16_t length, uint16_t timeout);` | I2C 経由でデータを受信します。アドレスは方向ビットのない7ビットスレーブアドレスです。 `length` で指定した長さのバイト列を `data` に保存し、トランザクションのステータスを返します。 | 28| `i2c_status_t i2c_receive(uint8_t address, uint8_t* data, uint16_t length, uint16_t timeout);` | I2C 経由でデータを受信します。アドレスは方向ビットのない7ビットスレーブアドレスです。 `length` で指定した長さのバイト列を `data` に保存し、トランザクションのステータスを返します。 |
19| `uint8_t i2c_writeReg(uint8_t devaddr, uint8_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout);` | `i2c_transmit` と同様ですが、 `regaddr` でスレーブのデータ書き込み先のレジスタを指定します。 | 29| `i2c_status_t i2c_writeReg(uint8_t devaddr, uint8_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout);` | `i2c_transmit` と同様ですが、 `regaddr` でスレーブのデータ書き込み先のレジスタを指定します。 |
20| `uint8_t i2c_readReg(uint8_t devaddr, uint8_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout);` | `i2c_receive` と同様ですが、 `regaddr` でスレーブのデータ読み込み先のレジスタを指定します。 | 30| `i2c_status_t i2c_readReg(uint8_t devaddr, uint8_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout);` | `i2c_receive` と同様ですが、 `regaddr` でスレーブのデータ読み込み先のレジスタを指定します。 |
21| `uint8_t i2c_stop(void);` | I2C トランザクションを終了します。 | 31| `i2c_status_t i2c_stop(void);` | I2C トランザクションを終了します。 |
22 32
23### 関数の戻り値 33### 関数の戻り値 :id=function-return
24 34
25`void i2c_init(void)` を除く上にあるすべての関数は、次の真理値表にある値を返します。 35`void i2c_init(void)` を除く上にあるすべての関数は、次の真理値表にある値を返します。
26 36
27| 戻り値 | 説明 | 37|戻り値の定数 | |説明 |
28|--------|------------------------------| 38|--------------------|---|----------------------------|
29| 0 | 処理が正常に実行されました。 | 39|`I2C_STATUS_SUCCESS`|0 |処理が正常に実行されました。|
30| -1 | 処理に失敗しました。 | 40|`I2C_STATUS_ERROR` |-1 |処理に失敗しました。 |
31| -2 | 処理がタイムアウトしました。 | 41|`I2C_STATUS_TIMEOUT`|-2 |処理がタイムアウトしました。|
32 42
33## AVR 43## AVR :id=avr
34 44
35### 設定 45### 設定 :id=avr-configuration
36 46
37I2Cマスタドライバを設定するために、次の定義が使えます。 47I2Cマスタドライバを設定するために、次の定義が使えます。
38 48
@@ -43,11 +53,11 @@ I2Cマスタドライバを設定するために、次の定義が使えます
43 53
44AVR は通常 I2C ピンとして使う GPIO が設定されているので、これ以上の設定は必要ありません。 54AVR は通常 I2C ピンとして使う GPIO が設定されているので、これ以上の設定は必要ありません。
45 55
46## ARM 56## ARM :id=arm
47 57
48ARM の場合は、内部に ChibiOS I2C HAL ドライバがあります。この節では STM32 MCU を使用していると仮定します。 58ARM の場合は、内部に ChibiOS I2C HAL ドライバがあります。この節では STM32 MCU を使用していると仮定します。
49 59
50### 設定 60### 設定 :id=arm-configuration
51 61
52ARM MCU 用の設定はしばしば非常に複雑です。これは、多くの場合複数の I2C ドライバをさまざまなポートに対して割り当てられるためです。 62ARM MCU 用の設定はしばしば非常に複雑です。これは、多くの場合複数の I2C ドライバをさまざまなポートに対して割り当てられるためです。
53 63
@@ -82,7 +92,7 @@ ChibiOS I2C ドライバの設定項目は STM32 MCU の種類に依存します
82 STM32F1xx, STM32F2xx, STM32F4xx, STM32L0xx, STM32L1xx では I2Cv1 が使われます。 92 STM32F1xx, STM32F2xx, STM32F4xx, STM32L0xx, STM32L1xx では I2Cv1 が使われます。
83 STM32F0xx, STM32F3xx, STM32F7xx, STM32L4xx では I2Cv2 が使われます。 93 STM32F0xx, STM32F3xx, STM32F7xx, STM32L4xx では I2Cv2 が使われます。
84 94
85#### I2Cv1 95#### I2Cv1 :id=i2cv1
86 96
87STM32 MCU の I2Cv1 では、クロック周波数とデューティ比を次の変数で変更できます。詳しくは <https://www.playembedded.org/blog/stm32-i2c-chibios/#I2Cv1_configuration_structure> を参照してください。 97STM32 MCU の I2Cv1 では、クロック周波数とデューティ比を次の変数で変更できます。詳しくは <https://www.playembedded.org/blog/stm32-i2c-chibios/#I2Cv1_configuration_structure> を参照してください。
88 98
@@ -92,7 +102,7 @@ STM32 MCU の I2Cv1 では、クロック周波数とデューティ比を次の
92| `I2C1_CLOCK_SPEED` | `100000` | 102| `I2C1_CLOCK_SPEED` | `100000` |
93| `I2C1_DUTY_CYCLE` | `STD_DUTY_CYCLE` | 103| `I2C1_DUTY_CYCLE` | `STD_DUTY_CYCLE` |
94 104
95#### I2Cv2 105#### I2Cv2 :id=i2cv2
96 106
97STM32 MCU の I2Cv2 では、信号のタイミングパラメータを次の変数で変更できます。詳しくは <https://www.st.com/en/embedded-software/stsw-stm32126.html> を参照してください。 107STM32 MCU の I2Cv2 では、信号のタイミングパラメータを次の変数で変更できます。詳しくは <https://www.st.com/en/embedded-software/stsw-stm32126.html> を参照してください。
98 108
@@ -111,11 +121,11 @@ STM32 MCU では GPIO ピンを設定するとき、別の「代替機能」モ
111| `I2C1_SCL_PAL_MODE` | `4` | 121| `I2C1_SCL_PAL_MODE` | `4` |
112| `I2C1_SDA_PAL_MODE` | `4` | 122| `I2C1_SDA_PAL_MODE` | `4` |
113 123
114#### その他 124#### その他 :id=other
115 125
116`void i2c_init(void)` 関数は `weak` 属性が付いており、オーバーロードすることができます。この場合、上記で設定した変数は使用されません。可能な GPIO の設定については、 MCU のデータシートを参照してください。次に示すのは初期化関数の例です: 126`void i2c_init(void)` 関数は `weak` 属性が付いており、オーバーロードすることができます。この場合、上記で設定した変数は使用されません。可能な GPIO の設定については、 MCU のデータシートを参照してください。次に示すのは初期化関数の例です:
117 127
118```C 128```c
119void i2c_init(void) 129void i2c_init(void)
120{ 130{
121 setPinInput(B6); // Try releasing special pins for a short time 131 setPinInput(B6); // Try releasing special pins for a short time
diff --git a/drivers/avr/ws2812.c b/drivers/avr/ws2812.c
index 82d985c20..5c3d72dcb 100644
--- a/drivers/avr/ws2812.c
+++ b/drivers/avr/ws2812.c
@@ -20,12 +20,13 @@
20 * You should have received a copy of the GNU General Public License 20 * You should have received a copy of the GNU General Public License
21 * along with this program. If not, see <http://www.gnu.org/licenses/>. 21 * along with this program. If not, see <http://www.gnu.org/licenses/>.
22 */ 22 */
23
24#include "ws2812.h" 23#include "ws2812.h"
25#include <avr/interrupt.h> 24#include <avr/interrupt.h>
26#include <avr/io.h> 25#include <avr/io.h>
27#include <util/delay.h> 26#include <util/delay.h>
28 27
28#define pinmask(pin) (_BV((pin)&0xF))
29
29/* 30/*
30 * Forward declare internal functions 31 * Forward declare internal functions
31 * 32 *
@@ -33,20 +34,21 @@
33 * The length is the number of bytes to send - three per LED. 34 * The length is the number of bytes to send - three per LED.
34 */ 35 */
35 36
36void ws2812_sendarray(uint8_t *array, uint16_t length); 37static inline void ws2812_sendarray_mask(uint8_t *data, uint16_t datlen, uint8_t masklo, uint8_t maskhi);
37void ws2812_sendarray_mask(uint8_t *array, uint16_t length, uint8_t pinmask);
38 38
39// Setleds for standard RGB 39// Setleds for standard RGB
40void inline ws2812_setleds(LED_TYPE *ledarray, uint16_t leds) { 40void inline ws2812_setleds(LED_TYPE *ledarray, uint16_t number_of_leds) {
41 // ws2812_setleds_pin(ledarray,leds, _BV(ws2812_pin)); 41 // wrap up usage of RGB_DI_PIN
42 ws2812_setleds_pin(ledarray, leds, _BV(RGB_DI_PIN & 0xF)); 42 ws2812_setleds_pin(ledarray, number_of_leds, RGB_DI_PIN);
43} 43}
44 44
45void inline ws2812_setleds_pin(LED_TYPE *ledarray, uint16_t leds, uint8_t pinmask) { 45void ws2812_setleds_pin(LED_TYPE *ledarray, uint16_t number_of_leds, uint8_t pin) {
46 // new universal format (DDR) 46 DDRx_ADDRESS(RGB_DI_PIN) |= pinmask(pin);
47 _SFR_IO8((RGB_DI_PIN >> 4) + 1) |= pinmask;
48 47
49 ws2812_sendarray_mask((uint8_t *)ledarray, leds * sizeof(LED_TYPE), pinmask); 48 uint8_t masklo = ~(pinmask(pin)) & PORTx_ADDRESS(pin);
49 uint8_t maskhi = pinmask(pin) | PORTx_ADDRESS(pin);
50
51 ws2812_sendarray_mask((uint8_t *)ledarray, number_of_leds * sizeof(LED_TYPE), masklo, maskhi);
50 52
51#ifdef RGBW 53#ifdef RGBW
52 _delay_us(80); 54 _delay_us(80);
@@ -55,8 +57,6 @@ void inline ws2812_setleds_pin(LED_TYPE *ledarray, uint16_t leds, uint8_t pinmas
55#endif 57#endif
56} 58}
57 59
58void ws2812_sendarray(uint8_t *data, uint16_t datlen) { ws2812_sendarray_mask(data, datlen, _BV(RGB_DI_PIN & 0xF)); }
59
60/* 60/*
61 This routine writes an array of bytes with RGB values to the Dataout pin 61 This routine writes an array of bytes with RGB values to the Dataout pin
62 using the fast 800kHz clockless WS2811/2812 protocol. 62 using the fast 800kHz clockless WS2811/2812 protocol.
@@ -118,14 +118,9 @@ void ws2812_sendarray(uint8_t *data, uint16_t datlen) { ws2812_sendarray_mask(da
118#define w_nop8 w_nop4 w_nop4 118#define w_nop8 w_nop4 w_nop4
119#define w_nop16 w_nop8 w_nop8 119#define w_nop16 w_nop8 w_nop8
120 120
121void inline ws2812_sendarray_mask(uint8_t *data, uint16_t datlen, uint8_t maskhi) { 121static inline void ws2812_sendarray_mask(uint8_t *data, uint16_t datlen, uint8_t masklo, uint8_t maskhi) {
122 uint8_t curbyte, ctr, masklo; 122 uint8_t curbyte, ctr, sreg_prev;
123 uint8_t sreg_prev;
124 123
125 // masklo =~maskhi&ws2812_PORTREG;
126 // maskhi |= ws2812_PORTREG;
127 masklo = ~maskhi & _SFR_IO8((RGB_DI_PIN >> 4) + 2);
128 maskhi |= _SFR_IO8((RGB_DI_PIN >> 4) + 2);
129 sreg_prev = SREG; 124 sreg_prev = SREG;
130 cli(); 125 cli();
131 126
@@ -188,7 +183,7 @@ void inline ws2812_sendarray_mask(uint8_t *data, uint16_t datlen, uint8_t maskhi
188 " dec %0 \n\t" // '1' [+2] '0' [+2] 183 " dec %0 \n\t" // '1' [+2] '0' [+2]
189 " brne loop%=\n\t" // '1' [+3] '0' [+4] 184 " brne loop%=\n\t" // '1' [+3] '0' [+4]
190 : "=&d"(ctr) 185 : "=&d"(ctr)
191 : "r"(curbyte), "I"(_SFR_IO_ADDR(_SFR_IO8((RGB_DI_PIN >> 4) + 2))), "r"(maskhi), "r"(masklo)); 186 : "r"(curbyte), "I"(_SFR_IO_ADDR(PORTx_ADDRESS(RGB_DI_PIN))), "r"(maskhi), "r"(masklo));
192 } 187 }
193 188
194 SREG = sreg_prev; 189 SREG = sreg_prev;
diff --git a/drivers/avr/ws2812.h b/drivers/avr/ws2812.h
index b869fb28c..88eb08189 100644
--- a/drivers/avr/ws2812.h
+++ b/drivers/avr/ws2812.h
@@ -29,7 +29,7 @@
29 * Input: 29 * Input:
30 * ledarray: An array of GRB data describing the LED colors 30 * ledarray: An array of GRB data describing the LED colors
31 * number_of_leds: The number of LEDs to write 31 * number_of_leds: The number of LEDs to write
32 * pinmask (optional): Bitmask describing the output bin. e.g. _BV(PB0) 32 * pin (optional): A pin_t definition for the line to drive
33 * 33 *
34 * The functions will perform the following actions: 34 * The functions will perform the following actions:
35 * - Set the data-out pin as output 35 * - Set the data-out pin as output
@@ -37,4 +37,4 @@
37 * - Wait 50us to reset the LEDs 37 * - Wait 50us to reset the LEDs
38 */ 38 */
39void ws2812_setleds(LED_TYPE *ledarray, uint16_t number_of_leds); 39void ws2812_setleds(LED_TYPE *ledarray, uint16_t number_of_leds);
40void ws2812_setleds_pin(LED_TYPE *ledarray, uint16_t number_of_leds, uint8_t pinmask); 40void ws2812_setleds_pin(LED_TYPE *ledarray, uint16_t number_of_leds, uint8_t pin);
diff --git a/keyboards/1upkeyboards/sweet16/config.h b/keyboards/1upkeyboards/sweet16/config.h
index 803d9f115..0fc117c5a 100644
--- a/keyboards/1upkeyboards/sweet16/config.h
+++ b/keyboards/1upkeyboards/sweet16/config.h
@@ -3,7 +3,7 @@
3#include "config_common.h" 3#include "config_common.h"
4 4
5/* USB Device descriptor parameter */ 5/* USB Device descriptor parameter */
6#define VENDOR_ID 0xFEED 6#define VENDOR_ID 0x6F75 // OU
7#define MANUFACTURER 1up Keyboards 7#define MANUFACTURER 1up Keyboards
8#define PRODUCT Sweet16 8#define PRODUCT Sweet16
9#define DESCRIPTION 4x4 grid 9#define DESCRIPTION 4x4 grid
diff --git a/keyboards/1upkeyboards/sweet16/keymaps/via/keymap.c b/keyboards/1upkeyboards/sweet16/keymaps/via/keymap.c
new file mode 100644
index 000000000..bd3466814
--- /dev/null
+++ b/keyboards/1upkeyboards/sweet16/keymaps/via/keymap.c
@@ -0,0 +1,37 @@
1#include QMK_KEYBOARD_H
2
3
4const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
5 [0] = LAYOUT_ortho_4x4(
6 KC_7, KC_8, KC_9, KC_ASTR,
7 KC_4, KC_5, KC_6, KC_SLSH,
8 KC_1, KC_2, KC_3, KC_MINS,
9 KC_0, KC_ENT, KC_DOT, MO(1)
10 ),
11
12 [1] = LAYOUT_ortho_4x4(
13 RESET, KC_TRNS, KC_TRNS, KC_TRNS,
14 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
15 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
16 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
17 ),
18
19 [2] = LAYOUT_ortho_4x4(
20 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
21 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
22 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
23 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
24 ),
25
26 [3] = LAYOUT_ortho_4x4(
27 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
28 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
29 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
30 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
31 ),
32
33};
34
35
36
37
diff --git a/keyboards/1upkeyboards/sweet16/keymaps/via/rules.mk b/keyboards/1upkeyboards/sweet16/keymaps/via/rules.mk
new file mode 100644
index 000000000..36b7ba9cb
--- /dev/null
+++ b/keyboards/1upkeyboards/sweet16/keymaps/via/rules.mk
@@ -0,0 +1,2 @@
1VIA_ENABLE = yes
2LTO_ENABLE = yes
diff --git a/keyboards/1upkeyboards/sweet16/v1/config.h b/keyboards/1upkeyboards/sweet16/v1/config.h
index 56fd16650..5264ef698 100644
--- a/keyboards/1upkeyboards/sweet16/v1/config.h
+++ b/keyboards/1upkeyboards/sweet16/v1/config.h
@@ -3,7 +3,7 @@
3#include "config_common.h" 3#include "config_common.h"
4 4
5/* USB Device descriptor parameter */ 5/* USB Device descriptor parameter */
6#define PRODUCT_ID 0x2010 6#define PRODUCT_ID 0x0161
7#define DEVICE_VER 0x0001 7#define DEVICE_VER 0x0001
8 8
9/* key matrix pins */ 9/* key matrix pins */
diff --git a/keyboards/1upkeyboards/sweet16/v2/promicro/config.h b/keyboards/1upkeyboards/sweet16/v2/promicro/config.h
index bd50b6960..d344b0750 100644
--- a/keyboards/1upkeyboards/sweet16/v2/promicro/config.h
+++ b/keyboards/1upkeyboards/sweet16/v2/promicro/config.h
@@ -3,7 +3,7 @@
3#include "config_common.h" 3#include "config_common.h"
4 4
5/* USB Device descriptor parameter */ 5/* USB Device descriptor parameter */
6#define PRODUCT_ID 0x2011 6#define PRODUCT_ID 0x0162
7#define DEVICE_VER 0x0001 7#define DEVICE_VER 0x0001
8 8
9/* key matrix pins */ 9/* key matrix pins */
diff --git a/keyboards/1upkeyboards/sweet16/v2/proton_c/config.h b/keyboards/1upkeyboards/sweet16/v2/proton_c/config.h
index 6f27f0b62..30abf28ee 100644
--- a/keyboards/1upkeyboards/sweet16/v2/proton_c/config.h
+++ b/keyboards/1upkeyboards/sweet16/v2/proton_c/config.h
@@ -3,7 +3,7 @@
3#include "config_common.h" 3#include "config_common.h"
4 4
5/* USB Device descriptor parameter */ 5/* USB Device descriptor parameter */
6#define PRODUCT_ID 0x2011 6#define PRODUCT_ID 0x0162
7#define DEVICE_VER 0x0001 7#define DEVICE_VER 0x0001
8 8
9/* key matrix pins */ 9/* key matrix pins */
diff --git a/keyboards/ai03/orbit_x/config.h b/keyboards/ai03/orbit_x/config.h
new file mode 100644
index 000000000..fb2ebe44f
--- /dev/null
+++ b/keyboards/ai03/orbit_x/config.h
@@ -0,0 +1,175 @@
1/*
2Copyright 2019 Ryota Goto
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#pragma once
19
20#include "config_common.h"
21
22/* USB Device descriptor parameter */
23#define VENDOR_ID 0xA103
24#define PRODUCT_ID 0x0014
25#define DEVICE_VER 0x0001
26#define MANUFACTURER ai03 Design Studio
27#define PRODUCT OrbitX
28#define DESCRIPTION High-end compact ergonomic keyboard
29
30/* key matrix size */
31#define MATRIX_ROWS 8 // Double the rows for split
32#define MATRIX_COLS 6
33
34/*
35 * Keyboard Matrix Assignments
36 *
37 * Change this to how you wired your keyboard
38 * COLS: AVR pins used for columns, left to right
39 * ROWS: AVR pins used for rows, top to bottom
40 * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
41 * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
42 *
43 */
44#define MATRIX_ROW_PINS { D7, D6, D4, F0 }
45#define MATRIX_COL_PINS { E6, F6, B1, B0, C7, C6 }
46#define MATRIX_ROW_PINS_RIGHT { B5, D7, B4, D4 }
47#define MATRIX_COL_PINS_RIGHT { D6, B6, B1, B0, B3, B2 }
48#define UNUSED_PINS
49
50/* COL2ROW, ROW2COL*/
51#define DIODE_DIRECTION COL2ROW
52
53/*
54 * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
55 */
56#define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6
57#define SPLIT_HAND_PIN D5
58#define SPLIT_USB_DETECT
59#define SPLIT_USB_TIMEOUT 2500
60
61/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
62#define DEBOUNCE 5
63
64/* define if matrix has ghost (lacks anti-ghosting diodes) */
65//#define MATRIX_HAS_GHOST
66
67/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
68#define LOCKING_SUPPORT_ENABLE
69/* Locking resynchronize hack */
70#define LOCKING_RESYNC_ENABLE
71
72/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
73 * This is userful for the Windows task manager shortcut (ctrl+shift+esc).
74 */
75// #define GRAVE_ESC_CTRL_OVERRIDE
76
77/*
78 * Force NKRO
79 *
80 * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
81 * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
82 * makefile for this to work.)
83 *
84 * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
85 * until the next keyboard reset.
86 *
87 * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
88 * fully operational during normal computer usage.
89 *
90 * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
91 * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
92 * bootmagic, NKRO mode will always be enabled until it is toggled again during a
93 * power-up.
94 *
95 */
96//#define FORCE_NKRO
97
98/*
99 * Magic Key Options
100 *
101 * Magic keys are hotkey commands that allow control over firmware functions of
102 * the keyboard. They are best used in combination with the HID Listen program,
103 * found here: https://www.pjrc.com/teensy/hid_listen.html
104 *
105 * The options below allow the magic key functionality to be changed. This is
106 * useful if your keyboard/keypad is missing keys and you want magic key support.
107 *
108 */
109
110/* key combination for magic key command */
111/* defined by default; to change, uncomment and set to the combination you want */
112// #define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT)
113
114/* control how magic key switches layers */
115//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
116//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
117//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
118
119/* override magic key keymap */
120//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
121//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
122//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
123//#define MAGIC_KEY_HELP H
124//#define MAGIC_KEY_HELP_ALT SLASH
125//#define MAGIC_KEY_DEBUG D
126//#define MAGIC_KEY_DEBUG_MATRIX X
127//#define MAGIC_KEY_DEBUG_KBD K
128//#define MAGIC_KEY_DEBUG_MOUSE M
129//#define MAGIC_KEY_VERSION V
130//#define MAGIC_KEY_STATUS S
131//#define MAGIC_KEY_CONSOLE C
132//#define MAGIC_KEY_LAYER0 0
133//#define MAGIC_KEY_LAYER0_ALT GRAVE
134//#define MAGIC_KEY_LAYER1 1
135//#define MAGIC_KEY_LAYER2 2
136//#define MAGIC_KEY_LAYER3 3
137//#define MAGIC_KEY_LAYER4 4
138//#define MAGIC_KEY_LAYER5 5
139//#define MAGIC_KEY_LAYER6 6
140//#define MAGIC_KEY_LAYER7 7
141//#define MAGIC_KEY_LAYER8 8
142//#define MAGIC_KEY_LAYER9 9
143//#define MAGIC_KEY_BOOTLOADER B
144//#define MAGIC_KEY_BOOTLOADER_ALT ESC
145//#define MAGIC_KEY_LOCK CAPS
146//#define MAGIC_KEY_EEPROM E
147//#define MAGIC_KEY_EEPROM_CLEAR BSPACE
148//#define MAGIC_KEY_NKRO N
149//#define MAGIC_KEY_SLEEP_LED Z
150
151/*
152 * Feature disable options
153 * These options are also useful to firmware size reduction.
154 */
155
156/* disable debug print */
157//#define NO_DEBUG
158
159/* disable print */
160//#define NO_PRINT
161
162/* disable action features */
163//#define NO_ACTION_LAYER
164//#define NO_ACTION_TAPPING
165//#define NO_ACTION_ONESHOT
166
167/* disable these deprecated features by default */
168#ifndef LINK_TIME_OPTIMIZATION_ENABLE
169 #define NO_ACTION_MACRO
170 #define NO_ACTION_FUNCTION
171#endif
172
173/* Bootmagic Lite key configuration */
174// #define BOOTMAGIC_LITE_ROW 0
175// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/ai03/orbit_x/info.json b/keyboards/ai03/orbit_x/info.json
new file mode 100644
index 000000000..638ffec4d
--- /dev/null
+++ b/keyboards/ai03/orbit_x/info.json
@@ -0,0 +1,61 @@
1{
2 "keyboard_name": "Orbit-X",
3 "url": "",
4 "maintainer": "ai03",
5 "width": 13.5,
6 "height": 4.38,
7 "layouts": {
8 "LAYOUT": {
9 "layout": [
10 {"x":0, "y":0.38},
11 {"x":1, "y":0.38},
12 {"x":2, "y":0.13},
13 {"x":3, "y":0},
14 {"x":4, "y":0.13},
15 {"x":5, "y":0.25},
16 {"x":7.5, "y":0.25},
17 {"x":8.5, "y":0.13},
18 {"x":9.5, "y":0},
19 {"x":10.5, "y":0.13},
20 {"x":11.5, "y":0.38},
21 {"x":12.5, "y":0.38},
22 {"x":0, "y":1.38},
23 {"x":1, "y":1.38},
24 {"x":2, "y":1.13},
25 {"x":3, "y":1.0},
26 {"x":4, "y":1.13},
27 {"x":5, "y":1.25},
28 {"x":7.5, "y":1.25},
29 {"x":8.5, "y":1.13},
30 {"x":9.5, "y":1.0},
31 {"x":10.5, "y":1.13},
32 {"x":11.5, "y":1.38},
33 {"x":12.5, "y":1.38},
34 {"x":0, "y":2.38},
35 {"x":1, "y":2.38},
36 {"x":2, "y":2.13},
37 {"x":3, "y":2},
38 {"x":4, "y":2.13},
39 {"x":5, "y":2.25},
40 {"x":7.5, "y":2.25},
41 {"x":8.5, "y":2.13},
42 {"x":9.5, "y":2},
43 {"x":10.5, "y":2.13},
44 {"x":11.5, "y":2.38},
45 {"x":12.5, "y":2.38},
46 {"x":0, "y":3.38},
47 {"x":1, "y":3.38},
48 {"x":2, "y":3.13},
49 {"x":3, "y":3},
50 {"x":4.25, "y":3.38},
51 {"x":5.25, "y":3.25, "h":1.5},
52 {"x":7.25, "y":3.25, "h":1.5},
53 {"x":8.25, "y":3.38},
54 {"x":9.5, "y":3},
55 {"x":10.5, "y":3.13},
56 {"x":11.5, "y":3.38},
57 {"x":12.5, "y":3.38}
58 ]
59 }
60 }
61}
diff --git a/keyboards/ai03/orbit_x/keymaps/default/keymap.c b/keyboards/ai03/orbit_x/keymaps/default/keymap.c
new file mode 100644
index 000000000..6b62d2a74
--- /dev/null
+++ b/keyboards/ai03/orbit_x/keymaps/default/keymap.c
@@ -0,0 +1,59 @@
1/* Copyright 2019 Ryota Goto
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16#include QMK_KEYBOARD_H
17
18// Defines names for use in layer keycodes and the keymap
19enum layer_names {
20 _BASE,
21 _NUM,
22 _NAV,
23 _FN
24};
25
26/*
27 L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \
28 L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \
29 L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \
30 L30, L31, L32, L33, L34, L35, R30, R31, R32, R33, R34, R35 \
31*/
32
33const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
34 /* Base */
35 [_BASE] = LAYOUT(
36 KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
37 KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
38 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
39 MO(3), KC_TAB, KC_LGUI, KC_LALT, MO(2), KC_SPC, KC_SPC, MO(1), KC_TAB, KC_DEL, KC_PSCR, MO(3)
40 ),
41 [_NUM] = LAYOUT(
42 _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
43 _______, KC_GRV, KC_SLSH, KC_LBRC, KC_LPRN, KC_MINS, KC_EQL, KC_RPRN, KC_RBRC, KC_BSLS, XXXXXXX, _______,
44 _______, KC_TILD, KC_QUES, KC_LCBR, XXXXXXX, KC_UNDS, KC_PLUS, XXXXXXX, KC_RCBR, KC_PIPE, _______, _______,
45 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
46 ),
47 [_NAV] = LAYOUT(
48 _______, XXXXXXX, XXXXXXX, KC_PGUP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_UP, XXXXXXX, XXXXXXX, _______,
49 _______, XXXXXXX, KC_HOME, KC_PGDN, KC_END, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX, _______,
50 _______, XXXXXXX, C(G(KC_LEFT)), XXXXXXX, C(G(KC_RGHT)), XXXXXXX, XXXXXXX, C(S(KC_TAB)), XXXXXXX, C(KC_TAB), XXXXXXX, _______,
51 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
52 ),
53 [_FN] = LAYOUT(
54 RESET, XXXXXXX, KC_F1, KC_F2, KC_F3, XXXXXXX, XXXXXXX, KC_F7, KC_F8, KC_F9, XXXXXXX, RESET,
55 _______, XXXXXXX, KC_F4, KC_F5, KC_F6, XXXXXXX, XXXXXXX, KC_F10, KC_F11, KC_F12, XXXXXXX, _______,
56 _______, XXXXXXX, KC_VOLD, XXXXXXX, KC_VOLU, XXXXXXX, XXXXXXX, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, _______,
57 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
58 )
59};
diff --git a/keyboards/ai03/orbit_x/keymaps/default/readme.md b/keyboards/ai03/orbit_x/keymaps/default/readme.md
new file mode 100644
index 000000000..b106c969e
--- /dev/null
+++ b/keyboards/ai03/orbit_x/keymaps/default/readme.md
@@ -0,0 +1,3 @@
1# The default keymap for orbit_x
2
3Basic keymap that works well in most cases. \ No newline at end of file
diff --git a/keyboards/ai03/orbit_x/keymaps/via/keymap.c b/keyboards/ai03/orbit_x/keymaps/via/keymap.c
new file mode 100644
index 000000000..90a8ef766
--- /dev/null
+++ b/keyboards/ai03/orbit_x/keymaps/via/keymap.c
@@ -0,0 +1,59 @@
1/* Copyright 2020 Ryota Goto
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16#include QMK_KEYBOARD_H
17
18// Defines names for use in layer keycodes and the keymap
19enum layer_names {
20 _BASE,
21 _NUM,
22 _NAV,
23 _FN
24};
25
26/*
27 L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \
28 L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \
29 L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \
30 L30, L31, L32, L33, L34, L35, R30, R31, R32, R33, R34, R35 \
31*/
32
33const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
34 /* Base */
35 [_BASE] = LAYOUT(
36 KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
37 KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
38 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
39 MO(3), KC_TAB, KC_LGUI, KC_LALT, MO(2), KC_SPC, KC_SPC, MO(1), KC_TAB, KC_DEL, KC_PSCR, MO(3)
40 ),
41 [_NUM] = LAYOUT(
42 _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
43 _______, KC_GRV, KC_SLSH, KC_LBRC, KC_LPRN, KC_MINS, KC_EQL, KC_RPRN, KC_RBRC, KC_BSLS, XXXXXXX, _______,
44 _______, KC_TILD, KC_QUES, KC_LCBR, XXXXXXX, KC_UNDS, KC_PLUS, XXXXXXX, KC_RCBR, KC_PIPE, _______, _______,
45 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
46 ),
47 [_NAV] = LAYOUT(
48 _______, XXXXXXX, XXXXXXX, KC_PGUP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_UP, XXXXXXX, XXXXXXX, _______,
49 _______, XXXXXXX, KC_HOME, KC_PGDN, KC_END, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX, _______,
50 _______, XXXXXXX, C(G(KC_LEFT)), XXXXXXX, C(G(KC_RGHT)), XXXXXXX, XXXXXXX, C(S(KC_TAB)), XXXXXXX, C(KC_TAB), XXXXXXX, _______,
51 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
52 ),
53 [_FN] = LAYOUT(
54 RESET, XXXXXXX, KC_F1, KC_F2, KC_F3, XXXXXXX, XXXXXXX, KC_F7, KC_F8, KC_F9, XXXXXXX, RESET,
55 _______, XXXXXXX, KC_F4, KC_F5, KC_F6, XXXXXXX, XXXXXXX, KC_F10, KC_F11, KC_F12, XXXXXXX, _______,
56 _______, XXXXXXX, KC_VOLD, XXXXXXX, KC_VOLU, XXXXXXX, XXXXXXX, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, _______,
57 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
58 )
59};
diff --git a/keyboards/ai03/orbit_x/keymaps/via/readme.md b/keyboards/ai03/orbit_x/keymaps/via/readme.md
new file mode 100644
index 000000000..ec31b557d
--- /dev/null
+++ b/keyboards/ai03/orbit_x/keymaps/via/readme.md
@@ -0,0 +1,2 @@
1# The via keymap for orbit_x
2For use with VIA configurator only
diff --git a/keyboards/ai03/orbit_x/keymaps/via/rules.mk b/keyboards/ai03/orbit_x/keymaps/via/rules.mk
new file mode 100644
index 000000000..036bd6d1c
--- /dev/null
+++ b/keyboards/ai03/orbit_x/keymaps/via/rules.mk
@@ -0,0 +1 @@
VIA_ENABLE = yes \ No newline at end of file
diff --git a/keyboards/ai03/orbit_x/orbit_x.c b/keyboards/ai03/orbit_x/orbit_x.c
new file mode 100644
index 000000000..3327261ad
--- /dev/null
+++ b/keyboards/ai03/orbit_x/orbit_x.c
@@ -0,0 +1,18 @@
1/* Copyright 2019 Ryota Goto
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include "orbit_x.h"
18
diff --git a/keyboards/ai03/orbit_x/orbit_x.h b/keyboards/ai03/orbit_x/orbit_x.h
new file mode 100644
index 000000000..a1ae8304b
--- /dev/null
+++ b/keyboards/ai03/orbit_x/orbit_x.h
@@ -0,0 +1,44 @@
1/* Copyright 2019 Ryota Goto
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#include "quantum.h"
20
21/* This is a shortcut to help you visually see your layout.
22 *
23 * The first section contains all of the arguments representing the physical
24 * layout of the board and position of the keys.
25 *
26 * The second converts the arguments into a two-dimensional array which
27 * represents the switch matrix.
28 */
29#define LAYOUT( \
30 L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \
31 L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \
32 L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \
33 L30, L31, L32, L33, L34, L35, R30, R31, R32, R33, R34, R35 \
34) \
35{ \
36 { L00, L01, L02, L03, L04, L05 }, \
37 { L10, L11, L12, L13, L14, L15 }, \
38 { L20, L21, L22, L23, L24, L25 }, \
39 { L30, L31, L32, L33, L34, L35 }, \
40 { R00, R01, R02, R03, R04, R05 }, \
41 { R10, R11, R12, R13, R14, R15 }, \
42 { R20, R21, R22, R23, R24, R25 }, \
43 { R30, R31, R32, R33, R34, R35 }, \
44}
diff --git a/keyboards/ai03/orbit_x/readme.md b/keyboards/ai03/orbit_x/readme.md
new file mode 100644
index 000000000..80bc6bbab
--- /dev/null
+++ b/keyboards/ai03/orbit_x/readme.md
@@ -0,0 +1,15 @@
1# Orbit-X
2
3![orbit_x](https://i.imgur.com/4z2wgsV.png)
4
5A compact high-end split keyboard
6
7* Keyboard Maintainer: [ai03](https://github.com/ai03-2725)
8* Hardware Supported: The Orbit-X keyboard PCB
9* Hardware Availability: Deskeys for official kit; open-source PCB [here](https://github.com/ai03-2725/Orbit/tree/master/OrbitX-PCB)
10
11Make example for this keyboard (after setting up your build environment):
12
13 make ai03/orbit_x:via
14
15See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/ai03/orbit_x/rules.mk b/keyboards/ai03/orbit_x/rules.mk
new file mode 100644
index 000000000..111ca910a
--- /dev/null
+++ b/keyboards/ai03/orbit_x/rules.mk
@@ -0,0 +1,33 @@
1# MCU name
2MCU = atmega32u4
3
4# Bootloader selection
5# Teensy halfkay
6# Pro Micro caterina
7# Atmel DFU atmel-dfu
8# LUFA DFU lufa-dfu
9# QMK DFU qmk-dfu
10# ATmega32A bootloadHID
11# ATmega328P USBasp
12BOOTLOADER = atmel-dfu
13
14# Build Options
15# change yes to no to disable
16#
17BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
18MOUSEKEY_ENABLE = yes # Mouse keys
19EXTRAKEY_ENABLE = yes # Audio control and System control
20CONSOLE_ENABLE = yes # Console for debug
21COMMAND_ENABLE = yes # Commands for debug and configuration
22# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
23SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
24# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
25NKRO_ENABLE = no # USB Nkey Rollover
26BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
27RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
28MIDI_ENABLE = no # MIDI support
29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
30AUDIO_ENABLE = no # Audio output on port C6
31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
32HD44780_ENABLE = no # Enable support for HD44780 based LCDs
33SPLIT_KEYBOARD = yes # Split keyboard \ No newline at end of file
diff --git a/keyboards/basekeys/slice/rev1/info.json b/keyboards/basekeys/slice/rev1/info.json
index 705b8c386..7f9fbe4c2 100644
--- a/keyboards/basekeys/slice/rev1/info.json
+++ b/keyboards/basekeys/slice/rev1/info.json
@@ -12,7 +12,7 @@
12 "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"~", "x":1.6600000000000001, "y":0}, {"label":"!", "x":2.66, "y":0}, {"label":"@", "x":3.66, "y":0}, {"label":"#", "x":4.66, "y":0}, {"label":"$", "x":5.66, "y":0}, {"label":"%", "x":6.66, "y":0}, {"label":"^", "x":7.66, "y":0}, {"label":"&", "x":9.32, "y":0}, {"label":"*", "x":10.32, "y":0}, {"label":"(", "x":11.32, "y":0}, {"label":")", "x":12.32, "y":0}, {"label":"_", "x":13.32, "y":0}, {"label":"+", "x":14.32, "y":0}, {"label":"BS", "x":15.32, "y":0}, {"label":"BS", "x":16.32, "y":0}, {"x":0, "y":1}, {"label":"Tab", "x":1.53, "y":1, "w":1.5}, {"label":"Q", "x":3.03, "y":1}, {"label":"W", "x":4.03, "y":1}, {"label":"E", "x":5.03, "y":1}, {"label":"R", "x":6.03, "y":1}, {"label":"T", "x":7.03, "y":1}, {"label":"Y", "x":9, "y":1}, {"label":"U", "x":10, "y":1}, {"label":"I", "x":11, "y":1}, {"label":"O", "x":12, "y":1}, {"label":"P", "x":13, "y":1}, {"label":"{", "x":14, "y":1}, {"label":"}", "x":15.05, "y":1}, {"label":"|", "x":16.1, "y":1, "w":1.5}, {"x":0, "y":2}, {"label":"Caps Lock", "x":1.3900000000000001, "y":2, "w":1.75}, {"label":"A", "x":3.14, "y":2}, {"label":"S", "x":4.14, "y":2}, {"label":"D", "x":5.14, "y":2}, {"label":"F", "x":6.14, "y":2}, {"label":"G", "x":7.14, "y":2}, {"label":"H", "x":9.34, "y":2}, {"label":"J", "x":10.34, "y":2}, {"label":"K", "x":11.34, "y":2}, {"label":"L", "x":12.34, "y":2}, {"label":":", "x":13.34, "y":2}, {"label":"\"", "x":14.34, "y":2}, {"label":"Enter", "x":15.34, "y":2, "w":2.25}, {"x":0, "y":3}, {"label":"Shift", "x":1.25, "y":3, "w":2.25}, {"label":"Z", "x":3.5, "y":3}, {"label":"X", "x":4.5, "y":3}, {"label":"C", "x":5.5, "y":3}, {"label":"V", "x":6.5, "y":3}, {"label":"B", "x":7.5, "y":3}, {"label":"B", "x":8.97, "y":3}, {"label":"N", "x":9.97, "y":3}, {"label":"M", "x":10.97, "y":3}, {"label":"<", "x":11.97, "y":3}, {"label":">", "x":12.97, "y":3}, {"label":"?", "x":13.97, "y":3}, {"label":"Shift", "x":14.97, "y":3, "w":1.75}, {"label":"Shift", "x":16.72, "y":3}, {"x":0, "y":4}, {"label":"Ctrl", "x":1.5, "y":4, "w":1.25}, {"label":"Alt", "x":2.75, "y":4, "w":1.25}, {"label":"\u21d3", "x":4.75, "y":4}, {"x":5.75, "y":4, "w":2.75}, {"x":8.97, "y":4, "w":2.25}, {"label":"\u21d1", "x":11.22, "y":4}, {"label":"Alt", "x":13.98, "y":4, "w":1.25}, {"label":"Ctrl", "x":15.23, "y":4, "w":1.25}, {"label":"Fn", "x":16.48, "y":4}] 12 "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"~", "x":1.6600000000000001, "y":0}, {"label":"!", "x":2.66, "y":0}, {"label":"@", "x":3.66, "y":0}, {"label":"#", "x":4.66, "y":0}, {"label":"$", "x":5.66, "y":0}, {"label":"%", "x":6.66, "y":0}, {"label":"^", "x":7.66, "y":0}, {"label":"&", "x":9.32, "y":0}, {"label":"*", "x":10.32, "y":0}, {"label":"(", "x":11.32, "y":0}, {"label":")", "x":12.32, "y":0}, {"label":"_", "x":13.32, "y":0}, {"label":"+", "x":14.32, "y":0}, {"label":"BS", "x":15.32, "y":0}, {"label":"BS", "x":16.32, "y":0}, {"x":0, "y":1}, {"label":"Tab", "x":1.53, "y":1, "w":1.5}, {"label":"Q", "x":3.03, "y":1}, {"label":"W", "x":4.03, "y":1}, {"label":"E", "x":5.03, "y":1}, {"label":"R", "x":6.03, "y":1}, {"label":"T", "x":7.03, "y":1}, {"label":"Y", "x":9, "y":1}, {"label":"U", "x":10, "y":1}, {"label":"I", "x":11, "y":1}, {"label":"O", "x":12, "y":1}, {"label":"P", "x":13, "y":1}, {"label":"{", "x":14, "y":1}, {"label":"}", "x":15.05, "y":1}, {"label":"|", "x":16.1, "y":1, "w":1.5}, {"x":0, "y":2}, {"label":"Caps Lock", "x":1.3900000000000001, "y":2, "w":1.75}, {"label":"A", "x":3.14, "y":2}, {"label":"S", "x":4.14, "y":2}, {"label":"D", "x":5.14, "y":2}, {"label":"F", "x":6.14, "y":2}, {"label":"G", "x":7.14, "y":2}, {"label":"H", "x":9.34, "y":2}, {"label":"J", "x":10.34, "y":2}, {"label":"K", "x":11.34, "y":2}, {"label":"L", "x":12.34, "y":2}, {"label":":", "x":13.34, "y":2}, {"label":"\"", "x":14.34, "y":2}, {"label":"Enter", "x":15.34, "y":2, "w":2.25}, {"x":0, "y":3}, {"label":"Shift", "x":1.25, "y":3, "w":2.25}, {"label":"Z", "x":3.5, "y":3}, {"label":"X", "x":4.5, "y":3}, {"label":"C", "x":5.5, "y":3}, {"label":"V", "x":6.5, "y":3}, {"label":"B", "x":7.5, "y":3}, {"label":"B", "x":8.97, "y":3}, {"label":"N", "x":9.97, "y":3}, {"label":"M", "x":10.97, "y":3}, {"label":"<", "x":11.97, "y":3}, {"label":">", "x":12.97, "y":3}, {"label":"?", "x":13.97, "y":3}, {"label":"Shift", "x":14.97, "y":3, "w":1.75}, {"label":"Shift", "x":16.72, "y":3}, {"x":0, "y":4}, {"label":"Ctrl", "x":1.5, "y":4, "w":1.25}, {"label":"Alt", "x":2.75, "y":4, "w":1.25}, {"label":"\u21d3", "x":4.75, "y":4}, {"x":5.75, "y":4, "w":2.75}, {"x":8.97, "y":4, "w":2.25}, {"label":"\u21d1", "x":11.22, "y":4}, {"label":"Alt", "x":13.98, "y":4, "w":1.25}, {"label":"Ctrl", "x":15.23, "y":4, "w":1.25}, {"label":"Fn", "x":16.48, "y":4}]
13 }, 13 },
14 "LAYOUT_split_left_space": { 14 "LAYOUT_split_left_space": {
15 "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"~", "x":1.6600000000000001, "y":0}, {"label":"!", "x":2.66, "y":0}, {"label":"@", "x":3.66, "y":0}, {"label":"#", "x":4.66, "y":0}, {"label":"$", "x":5.66, "y":0}, {"label":"%", "x":6.66, "y":0}, {"label":"^", "x":7.66, "y":0}, {"label":"&", "x":9.32, "y":0}, {"label":"*", "x":10.32, "y":0}, {"label":"(", "x":11.32, "y":0}, {"label":")", "x":12.32, "y":0}, {"label":"_", "x":13.32, "y":0}, {"label":"+", "x":14.32, "y":0}, {"label":"Backspace", "x":15.32, "y":0, "w":2}, {"x":0, "y":1}, {"label":"Tab", "x":1.53, "y":1, "w":1.5}, {"label":"Q", "x":3.03, "y":1}, {"label":"W", "x":4.03, "y":1}, {"label":"E", "x":5.03, "y":1}, {"label":"R", "x":6.03, "y":1}, {"label":"T", "x":7.03, "y":1}, {"label":"Y", "x":9, "y":1}, {"label":"U", "x":10, "y":1}, {"label":"I", "x":11, "y":1}, {"label":"O", "x":12, "y":1}, {"label":"P", "x":13, "y":1}, {"label":"{", "x":14, "y":1}, {"label":"}", "x":15.05, "y":1}, {"label":"|", "x":16.1, "y":1, "w":1.5}, {"x":0, "y":2}, {"label":"Caps Lock", "x":1.3900000000000001, "y":2, "w":1.75}, {"label":"A", "x":3.14, "y":2}, {"label":"S", "x":4.14, "y":2}, {"label":"D", "x":5.14, "y":2}, {"label":"F", "x":6.14, "y":2}, {"label":"G", "x":7.14, "y":2}, {"label":"H", "x":9.34, "y":2}, {"label":"J", "x":10.34, "y":2}, {"label":"K", "x":11.34, "y":2}, {"label":"L", "x":12.34, "y":2}, {"label":":", "x":13.34, "y":2}, {"label":"\"", "x":14.34, "y":2}, {"label":"Enter", "x":15.34, "y":2, "w":2.25}, {"x":0, "y":3}, {"label":"Shift", "x":1.25, "y":3, "w":2.25}, {"label":"Z", "x":3.5, "y":3}, {"label":"X", "x":4.5, "y":3}, {"label":"C", "x":5.5, "y":3}, {"label":"V", "x":6.5, "y":3}, {"label":"B", "x":7.5, "y":3}, {"label":"B", "x":8.97, "y":3}, {"label":"N", "x":9.97, "y":3}, {"label":"M", "x":10.97, "y":3}, {"label":"<", "x":11.97, "y":3}, {"label":">", "x":12.97, "y":3}, {"label":"?", "x":13.97, "y":3}, {"label":"Shift", "x":14.97, "y":3, "w":1.75}, {"label":"Shift", "x":16.72, "y":3}, {"x":0, "y":4}, {"label":"Ctrl", "x":1.5, "y":4, "w":1.25}, {"label":"Alt", "x":2.75, "y":4, "w":1.25}, {"label":"\u21d3", "x":4.75, "y":4}, {"x":5.75, "y":4}, {"x":6.75, "y":4}, {"x":7.75, "y":4}, {"x":8.97, "y":4, "w":2.25}, {"label":"\u21d1", "x":11.22, "y":4}, {"label":"Alt", "x":13.98, "y":4, "w":1.25}, {"label":"Ctrl", "x":15.23, "y":4, "w":1.25}, {"label":"Fn", "x":16.48, "y":4}] 15 "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"~", "x":1.6600000000000001, "y":0}, {"label":"!", "x":2.66, "y":0}, {"label":"@", "x":3.66, "y":0}, {"label":"#", "x":4.66, "y":0}, {"label":"$", "x":5.66, "y":0}, {"label":"%", "x":6.66, "y":0}, {"label":"^", "x":7.66, "y":0}, {"label":"&", "x":9.32, "y":0}, {"label":"*", "x":10.32, "y":0}, {"label":"(", "x":11.32, "y":0}, {"label":")", "x":12.32, "y":0}, {"label":"_", "x":13.32, "y":0}, {"label":"+", "x":14.32, "y":0}, {"label":"Backspace", "x":15.32, "y":0, "w":2}, {"x":0, "y":1}, {"label":"Tab", "x":1.53, "y":1, "w":1.5}, {"label":"Q", "x":3.03, "y":1}, {"label":"W", "x":4.03, "y":1}, {"label":"E", "x":5.03, "y":1}, {"label":"R", "x":6.03, "y":1}, {"label":"T", "x":7.03, "y":1}, {"label":"Y", "x":9, "y":1}, {"label":"U", "x":10, "y":1}, {"label":"I", "x":11, "y":1}, {"label":"O", "x":12, "y":1}, {"label":"P", "x":13, "y":1}, {"label":"{", "x":14, "y":1}, {"label":"}", "x":15.05, "y":1}, {"label":"|", "x":16.1, "y":1, "w":1.5}, {"x":0, "y":2}, {"label":"Caps Lock", "x":1.3900000000000001, "y":2, "w":1.75}, {"label":"A", "x":3.14, "y":2}, {"label":"S", "x":4.14, "y":2}, {"label":"D", "x":5.14, "y":2}, {"label":"F", "x":6.14, "y":2}, {"label":"G", "x":7.14, "y":2}, {"label":"H", "x":9.34, "y":2}, {"label":"J", "x":10.34, "y":2}, {"label":"K", "x":11.34, "y":2}, {"label":"L", "x":12.34, "y":2}, {"label":":", "x":13.34, "y":2}, {"label":"\"", "x":14.34, "y":2}, {"label":"Enter", "x":15.34, "y":2, "w":2.25}, {"x":0, "y":3}, {"label":"Shift", "x":1.25, "y":3, "w":2.25}, {"label":"Z", "x":3.5, "y":3}, {"label":"X", "x":4.5, "y":3}, {"label":"C", "x":5.5, "y":3}, {"label":"V", "x":6.5, "y":3}, {"label":"B", "x":7.5, "y":3}, {"label":"B", "x":8.97, "y":3}, {"label":"N", "x":9.97, "y":3}, {"label":"M", "x":10.97, "y":3}, {"label":"<", "x":11.97, "y":3}, {"label":">", "x":12.97, "y":3}, {"label":"?", "x":13.97, "y":3}, {"label":"Shift", "x":14.97, "y":3, "w":1.75}, {"label":"Shift", "x":16.72, "y":3}, {"x":0, "y":4}, {"label":"Ctrl", "x":1.5, "y":4, "w":1.25}, {"label":"Alt", "x":2.75, "y":4, "w":1.25}, {"label":"\u21d3", "x":4.75, "y":4}, {"x":5.75, "y":4, "w":1.75}, {"x":7.5, "y":4}, {"x":8.97, "y":4, "w":2.25}, {"label":"\u21d1", "x":11.22, "y":4}, {"label":"Alt", "x":13.98, "y":4, "w":1.25}, {"label":"Ctrl", "x":15.23, "y":4, "w":1.25}, {"label":"Fn", "x":16.48, "y":4}]
16 }, 16 },
17 "LAYOUT_all": { 17 "LAYOUT_all": {
18 "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"~", "x":1.6600000000000001, "y":0}, {"label":"!", "x":2.66, "y":0}, {"label":"@", "x":3.66, "y":0}, {"label":"#", "x":4.66, "y":0}, {"label":"$", "x":5.66, "y":0}, {"label":"%", "x":6.66, "y":0}, {"label":"^", "x":7.66, "y":0}, {"label":"&", "x":9.32, "y":0}, {"label":"*", "x":10.32, "y":0}, {"label":"(", "x":11.32, "y":0}, {"label":")", "x":12.32, "y":0}, {"label":"_", "x":13.32, "y":0}, {"label":"+", "x":14.32, "y":0}, {"label":"BS", "x":15.32, "y":0}, {"label":"BS", "x":16.32, "y":0}, {"label":"BS", "x":17.32, "y":0}, {"x":0, "y":1}, {"label":"Tab", "x":1.53, "y":1, "w":1.5}, {"label":"Q", "x":3.03, "y":1}, {"label":"W", "x":4.03, "y":1}, {"label":"E", "x":5.03, "y":1}, {"label":"R", "x":6.03, "y":1}, {"label":"T", "x":7.03, "y":1}, {"label":"Y", "x":9, "y":1}, {"label":"U", "x":10, "y":1}, {"label":"I", "x":11, "y":1}, {"label":"O", "x":12, "y":1}, {"label":"P", "x":13, "y":1}, {"label":"{", "x":14, "y":1}, {"label":"}", "x":15.05, "y":1}, {"label":"|", "x":16.1, "y":1, "w":1.5}, {"x":0, "y":2}, {"label":"Caps Lock", "x":1.3900000000000001, "y":2, "w":1.75}, {"label":"A", "x":3.14, "y":2}, {"label":"S", "x":4.14, "y":2}, {"label":"D", "x":5.14, "y":2}, {"label":"F", "x":6.14, "y":2}, {"label":"G", "x":7.14, "y":2}, {"label":"H", "x":9.34, "y":2}, {"label":"J", "x":10.34, "y":2}, {"label":"K", "x":11.34, "y":2}, {"label":"L", "x":12.34, "y":2}, {"label":":", "x":13.34, "y":2}, {"label":"\"", "x":14.34, "y":2}, {"label":"Enter", "x":15.34, "y":2, "w":2.25}, {"x":0, "y":3}, {"label":"Shift", "x":1.25, "y":3, "w":2.25}, {"label":"Z", "x":3.5, "y":3}, {"label":"X", "x":4.5, "y":3}, {"label":"C", "x":5.5, "y":3}, {"label":"V", "x":6.5, "y":3}, {"label":"B", "x":7.5, "y":3}, {"label":"B", "x":8.97, "y":3}, {"label":"N", "x":9.97, "y":3}, {"label":"M", "x":10.97, "y":3}, {"label":"<", "x":11.97, "y":3}, {"label":">", "x":12.97, "y":3}, {"label":"?", "x":13.97, "y":3}, {"label":"Shift", "x":14.97, "y":3}, {"label":"Shift", "x":15.97, "y":3}, {"label":"Shift", "x":16.97, "y":3}, {"x":0, "y":4}, {"label":"Ctrl", "x":1.5, "y":4, "w":1.25}, {"label":"Alt", "x":2.75, "y":4, "w":1.25}, {"label":"\u21d3", "x":4.75, "y":4}, {"x":5.75, "y":4}, {"x":6.75, "y":4}, {"x":7.75, "y":4}, {"x":8.97, "y":4, "w":2.25}, {"label":"\u21d1", "x":11.22, "y":4}, {"label":"Alt", "x":13.98, "y":4, "w":1.25}, {"label":"Ctrl", "x":15.23, "y":4, "w":1.25}, {"label":"Fn", "x":16.48, "y":4}] 18 "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"~", "x":1.6600000000000001, "y":0}, {"label":"!", "x":2.66, "y":0}, {"label":"@", "x":3.66, "y":0}, {"label":"#", "x":4.66, "y":0}, {"label":"$", "x":5.66, "y":0}, {"label":"%", "x":6.66, "y":0}, {"label":"^", "x":7.66, "y":0}, {"label":"&", "x":9.32, "y":0}, {"label":"*", "x":10.32, "y":0}, {"label":"(", "x":11.32, "y":0}, {"label":")", "x":12.32, "y":0}, {"label":"_", "x":13.32, "y":0}, {"label":"+", "x":14.32, "y":0}, {"label":"BS", "x":15.32, "y":0}, {"label":"BS", "x":16.32, "y":0}, {"label":"BS", "x":17.32, "y":0}, {"x":0, "y":1}, {"label":"Tab", "x":1.53, "y":1, "w":1.5}, {"label":"Q", "x":3.03, "y":1}, {"label":"W", "x":4.03, "y":1}, {"label":"E", "x":5.03, "y":1}, {"label":"R", "x":6.03, "y":1}, {"label":"T", "x":7.03, "y":1}, {"label":"Y", "x":9, "y":1}, {"label":"U", "x":10, "y":1}, {"label":"I", "x":11, "y":1}, {"label":"O", "x":12, "y":1}, {"label":"P", "x":13, "y":1}, {"label":"{", "x":14, "y":1}, {"label":"}", "x":15.05, "y":1}, {"label":"|", "x":16.1, "y":1, "w":1.5}, {"x":0, "y":2}, {"label":"Caps Lock", "x":1.3900000000000001, "y":2, "w":1.75}, {"label":"A", "x":3.14, "y":2}, {"label":"S", "x":4.14, "y":2}, {"label":"D", "x":5.14, "y":2}, {"label":"F", "x":6.14, "y":2}, {"label":"G", "x":7.14, "y":2}, {"label":"H", "x":9.34, "y":2}, {"label":"J", "x":10.34, "y":2}, {"label":"K", "x":11.34, "y":2}, {"label":"L", "x":12.34, "y":2}, {"label":":", "x":13.34, "y":2}, {"label":"\"", "x":14.34, "y":2}, {"label":"Enter", "x":15.34, "y":2, "w":2.25}, {"x":0, "y":3}, {"label":"Shift", "x":1.25, "y":3, "w":2.25}, {"label":"Z", "x":3.5, "y":3}, {"label":"X", "x":4.5, "y":3}, {"label":"C", "x":5.5, "y":3}, {"label":"V", "x":6.5, "y":3}, {"label":"B", "x":7.5, "y":3}, {"label":"B", "x":8.97, "y":3}, {"label":"N", "x":9.97, "y":3}, {"label":"M", "x":10.97, "y":3}, {"label":"<", "x":11.97, "y":3}, {"label":">", "x":12.97, "y":3}, {"label":"?", "x":13.97, "y":3}, {"label":"Shift", "x":14.97, "y":3}, {"label":"Shift", "x":15.97, "y":3}, {"label":"Shift", "x":16.97, "y":3}, {"x":0, "y":4}, {"label":"Ctrl", "x":1.5, "y":4, "w":1.25}, {"label":"Alt", "x":2.75, "y":4, "w":1.25}, {"label":"\u21d3", "x":4.75, "y":4}, {"x":5.75, "y":4}, {"x":6.75, "y":4}, {"x":7.75, "y":4}, {"x":8.97, "y":4, "w":2.25}, {"label":"\u21d1", "x":11.22, "y":4}, {"label":"Alt", "x":13.98, "y":4, "w":1.25}, {"label":"Ctrl", "x":15.23, "y":4, "w":1.25}, {"label":"Fn", "x":16.48, "y":4}]
diff --git a/keyboards/basekeys/slice/rev1_rgb/info.json b/keyboards/basekeys/slice/rev1_rgb/info.json
index 47128eb76..101da9758 100644
--- a/keyboards/basekeys/slice/rev1_rgb/info.json
+++ b/keyboards/basekeys/slice/rev1_rgb/info.json
@@ -9,7 +9,7 @@
9 "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"~", "x":1.6600000000000001, "y":0}, {"label":"!", "x":2.66, "y":0}, {"label":"@", "x":3.66, "y":0}, {"label":"#", "x":4.66, "y":0}, {"label":"$", "x":5.66, "y":0}, {"label":"%", "x":6.66, "y":0}, {"label":"^", "x":7.66, "y":0}, {"label":"&", "x":9.32, "y":0}, {"label":"*", "x":10.32, "y":0}, {"label":"(", "x":11.32, "y":0}, {"label":")", "x":12.32, "y":0}, {"label":"_", "x":13.32, "y":0}, {"label":"+", "x":14.32, "y":0}, {"label":"Backspace", "x":15.32, "y":0, "w":2}, {"x":0, "y":1}, {"label":"Tab", "x":1.53, "y":1, "w":1.5}, {"label":"Q", "x":3.03, "y":1}, {"label":"W", "x":4.03, "y":1}, {"label":"E", "x":5.03, "y":1}, {"label":"R", "x":6.03, "y":1}, {"label":"T", "x":7.03, "y":1}, {"label":"Y", "x":9, "y":1}, {"label":"U", "x":10, "y":1}, {"label":"I", "x":11, "y":1}, {"label":"O", "x":12, "y":1}, {"label":"P", "x":13, "y":1}, {"label":"{", "x":14, "y":1}, {"label":"}", "x":15.05, "y":1}, {"label":"|", "x":16.1, "y":1, "w":1.5}, {"x":0, "y":2}, {"label":"Caps Lock", "x":1.3900000000000001, "y":2, "w":1.75}, {"label":"A", "x":3.14, "y":2}, {"label":"S", "x":4.14, "y":2}, {"label":"D", "x":5.14, "y":2}, {"label":"F", "x":6.14, "y":2}, {"label":"G", "x":7.14, "y":2}, {"label":"H", "x":9.34, "y":2}, {"label":"J", "x":10.34, "y":2}, {"label":"K", "x":11.34, "y":2}, {"label":"L", "x":12.34, "y":2}, {"label":":", "x":13.34, "y":2}, {"label":"\"", "x":14.34, "y":2}, {"label":"Enter", "x":15.34, "y":2, "w":2.25}, {"x":0, "y":3}, {"label":"Shift", "x":1.25, "y":3, "w":2.25}, {"label":"Z", "x":3.5, "y":3}, {"label":"X", "x":4.5, "y":3}, {"label":"C", "x":5.5, "y":3}, {"label":"V", "x":6.5, "y":3}, {"label":"B", "x":7.5, "y":3}, {"label":"B", "x":8.97, "y":3}, {"label":"N", "x":9.97, "y":3}, {"label":"M", "x":10.97, "y":3}, {"label":"<", "x":11.97, "y":3}, {"label":">", "x":12.97, "y":3}, {"label":"?", "x":13.97, "y":3}, {"label":"Shift", "x":14.97, "y":3, "w":1.75}, {"label":"Shift", "x":16.72, "y":3}, {"x":0, "y":4}, {"label":"Ctrl", "x":1.5, "y":4, "w":1.25}, {"label":"Alt", "x":2.75, "y":4, "w":1.25}, {"label":"\u21d3", "x":4.75, "y":4}, {"x":5.75, "y":4, "w":2.75}, {"x":8.97, "y":4, "w":2.25}, {"label":"\u21d1", "x":11.22, "y":4}, {"label":"Alt", "x":13.98, "y":4, "w":1.25}, {"label":"Ctrl", "x":15.23, "y":4, "w":1.25}, {"label":"Fn", "x":16.48, "y":4}] 9 "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"~", "x":1.6600000000000001, "y":0}, {"label":"!", "x":2.66, "y":0}, {"label":"@", "x":3.66, "y":0}, {"label":"#", "x":4.66, "y":0}, {"label":"$", "x":5.66, "y":0}, {"label":"%", "x":6.66, "y":0}, {"label":"^", "x":7.66, "y":0}, {"label":"&", "x":9.32, "y":0}, {"label":"*", "x":10.32, "y":0}, {"label":"(", "x":11.32, "y":0}, {"label":")", "x":12.32, "y":0}, {"label":"_", "x":13.32, "y":0}, {"label":"+", "x":14.32, "y":0}, {"label":"Backspace", "x":15.32, "y":0, "w":2}, {"x":0, "y":1}, {"label":"Tab", "x":1.53, "y":1, "w":1.5}, {"label":"Q", "x":3.03, "y":1}, {"label":"W", "x":4.03, "y":1}, {"label":"E", "x":5.03, "y":1}, {"label":"R", "x":6.03, "y":1}, {"label":"T", "x":7.03, "y":1}, {"label":"Y", "x":9, "y":1}, {"label":"U", "x":10, "y":1}, {"label":"I", "x":11, "y":1}, {"label":"O", "x":12, "y":1}, {"label":"P", "x":13, "y":1}, {"label":"{", "x":14, "y":1}, {"label":"}", "x":15.05, "y":1}, {"label":"|", "x":16.1, "y":1, "w":1.5}, {"x":0, "y":2}, {"label":"Caps Lock", "x":1.3900000000000001, "y":2, "w":1.75}, {"label":"A", "x":3.14, "y":2}, {"label":"S", "x":4.14, "y":2}, {"label":"D", "x":5.14, "y":2}, {"label":"F", "x":6.14, "y":2}, {"label":"G", "x":7.14, "y":2}, {"label":"H", "x":9.34, "y":2}, {"label":"J", "x":10.34, "y":2}, {"label":"K", "x":11.34, "y":2}, {"label":"L", "x":12.34, "y":2}, {"label":":", "x":13.34, "y":2}, {"label":"\"", "x":14.34, "y":2}, {"label":"Enter", "x":15.34, "y":2, "w":2.25}, {"x":0, "y":3}, {"label":"Shift", "x":1.25, "y":3, "w":2.25}, {"label":"Z", "x":3.5, "y":3}, {"label":"X", "x":4.5, "y":3}, {"label":"C", "x":5.5, "y":3}, {"label":"V", "x":6.5, "y":3}, {"label":"B", "x":7.5, "y":3}, {"label":"B", "x":8.97, "y":3}, {"label":"N", "x":9.97, "y":3}, {"label":"M", "x":10.97, "y":3}, {"label":"<", "x":11.97, "y":3}, {"label":">", "x":12.97, "y":3}, {"label":"?", "x":13.97, "y":3}, {"label":"Shift", "x":14.97, "y":3, "w":1.75}, {"label":"Shift", "x":16.72, "y":3}, {"x":0, "y":4}, {"label":"Ctrl", "x":1.5, "y":4, "w":1.25}, {"label":"Alt", "x":2.75, "y":4, "w":1.25}, {"label":"\u21d3", "x":4.75, "y":4}, {"x":5.75, "y":4, "w":2.75}, {"x":8.97, "y":4, "w":2.25}, {"label":"\u21d1", "x":11.22, "y":4}, {"label":"Alt", "x":13.98, "y":4, "w":1.25}, {"label":"Ctrl", "x":15.23, "y":4, "w":1.25}, {"label":"Fn", "x":16.48, "y":4}]
10 }, 10 },
11 "LAYOUT_split_left_space": { 11 "LAYOUT_split_left_space": {
12 "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"~", "x":1.6600000000000001, "y":0}, {"label":"!", "x":2.66, "y":0}, {"label":"@", "x":3.66, "y":0}, {"label":"#", "x":4.66, "y":0}, {"label":"$", "x":5.66, "y":0}, {"label":"%", "x":6.66, "y":0}, {"label":"^", "x":7.66, "y":0}, {"label":"&", "x":9.32, "y":0}, {"label":"*", "x":10.32, "y":0}, {"label":"(", "x":11.32, "y":0}, {"label":")", "x":12.32, "y":0}, {"label":"_", "x":13.32, "y":0}, {"label":"+", "x":14.32, "y":0}, {"label":"Backspace", "x":15.32, "y":0, "w":2}, {"x":0, "y":1}, {"label":"Tab", "x":1.53, "y":1, "w":1.5}, {"label":"Q", "x":3.03, "y":1}, {"label":"W", "x":4.03, "y":1}, {"label":"E", "x":5.03, "y":1}, {"label":"R", "x":6.03, "y":1}, {"label":"T", "x":7.03, "y":1}, {"label":"Y", "x":9, "y":1}, {"label":"U", "x":10, "y":1}, {"label":"I", "x":11, "y":1}, {"label":"O", "x":12, "y":1}, {"label":"P", "x":13, "y":1}, {"label":"{", "x":14, "y":1}, {"label":"}", "x":15.05, "y":1}, {"label":"|", "x":16.1, "y":1, "w":1.5}, {"x":0, "y":2}, {"label":"Caps Lock", "x":1.3900000000000001, "y":2, "w":1.75}, {"label":"A", "x":3.14, "y":2}, {"label":"S", "x":4.14, "y":2}, {"label":"D", "x":5.14, "y":2}, {"label":"F", "x":6.14, "y":2}, {"label":"G", "x":7.14, "y":2}, {"label":"H", "x":9.34, "y":2}, {"label":"J", "x":10.34, "y":2}, {"label":"K", "x":11.34, "y":2}, {"label":"L", "x":12.34, "y":2}, {"label":":", "x":13.34, "y":2}, {"label":"\"", "x":14.34, "y":2}, {"label":"Enter", "x":15.34, "y":2, "w":2.25}, {"x":0, "y":3}, {"label":"Shift", "x":1.25, "y":3, "w":2.25}, {"label":"Z", "x":3.5, "y":3}, {"label":"X", "x":4.5, "y":3}, {"label":"C", "x":5.5, "y":3}, {"label":"V", "x":6.5, "y":3}, {"label":"B", "x":7.5, "y":3}, {"label":"B", "x":8.97, "y":3}, {"label":"N", "x":9.97, "y":3}, {"label":"M", "x":10.97, "y":3}, {"label":"<", "x":11.97, "y":3}, {"label":">", "x":12.97, "y":3}, {"label":"?", "x":13.97, "y":3}, {"label":"Shift", "x":14.97, "y":3, "w":1.75}, {"label":"Shift", "x":16.72, "y":3}, {"x":0, "y":4}, {"label":"Ctrl", "x":1.5, "y":4, "w":1.25}, {"label":"Alt", "x":2.75, "y":4, "w":1.25}, {"label":"\u21d3", "x":4.75, "y":4}, {"x":5.75, "y":4}, {"x":6.75, "y":4}, {"x":7.75, "y":4}, {"x":8.97, "y":4, "w":2.25}, {"label":"\u21d1", "x":11.22, "y":4}, {"label":"Alt", "x":13.98, "y":4, "w":1.25}, {"label":"Ctrl", "x":15.23, "y":4, "w":1.25}, {"label":"Fn", "x":16.48, "y":4}] 12 "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"~", "x":1.6600000000000001, "y":0}, {"label":"!", "x":2.66, "y":0}, {"label":"@", "x":3.66, "y":0}, {"label":"#", "x":4.66, "y":0}, {"label":"$", "x":5.66, "y":0}, {"label":"%", "x":6.66, "y":0}, {"label":"^", "x":7.66, "y":0}, {"label":"&", "x":9.32, "y":0}, {"label":"*", "x":10.32, "y":0}, {"label":"(", "x":11.32, "y":0}, {"label":")", "x":12.32, "y":0}, {"label":"_", "x":13.32, "y":0}, {"label":"+", "x":14.32, "y":0}, {"label":"Backspace", "x":15.32, "y":0, "w":2}, {"x":0, "y":1}, {"label":"Tab", "x":1.53, "y":1, "w":1.5}, {"label":"Q", "x":3.03, "y":1}, {"label":"W", "x":4.03, "y":1}, {"label":"E", "x":5.03, "y":1}, {"label":"R", "x":6.03, "y":1}, {"label":"T", "x":7.03, "y":1}, {"label":"Y", "x":9, "y":1}, {"label":"U", "x":10, "y":1}, {"label":"I", "x":11, "y":1}, {"label":"O", "x":12, "y":1}, {"label":"P", "x":13, "y":1}, {"label":"{", "x":14, "y":1}, {"label":"}", "x":15.05, "y":1}, {"label":"|", "x":16.1, "y":1, "w":1.5}, {"x":0, "y":2}, {"label":"Caps Lock", "x":1.3900000000000001, "y":2, "w":1.75}, {"label":"A", "x":3.14, "y":2}, {"label":"S", "x":4.14, "y":2}, {"label":"D", "x":5.14, "y":2}, {"label":"F", "x":6.14, "y":2}, {"label":"G", "x":7.14, "y":2}, {"label":"H", "x":9.34, "y":2}, {"label":"J", "x":10.34, "y":2}, {"label":"K", "x":11.34, "y":2}, {"label":"L", "x":12.34, "y":2}, {"label":":", "x":13.34, "y":2}, {"label":"\"", "x":14.34, "y":2}, {"label":"Enter", "x":15.34, "y":2, "w":2.25}, {"x":0, "y":3}, {"label":"Shift", "x":1.25, "y":3, "w":2.25}, {"label":"Z", "x":3.5, "y":3}, {"label":"X", "x":4.5, "y":3}, {"label":"C", "x":5.5, "y":3}, {"label":"V", "x":6.5, "y":3}, {"label":"B", "x":7.5, "y":3}, {"label":"B", "x":8.97, "y":3}, {"label":"N", "x":9.97, "y":3}, {"label":"M", "x":10.97, "y":3}, {"label":"<", "x":11.97, "y":3}, {"label":">", "x":12.97, "y":3}, {"label":"?", "x":13.97, "y":3}, {"label":"Shift", "x":14.97, "y":3, "w":1.75}, {"label":"Shift", "x":16.72, "y":3}, {"x":0, "y":4}, {"label":"Ctrl", "x":1.5, "y":4, "w":1.25}, {"label":"Alt", "x":2.75, "y":4, "w":1.25}, {"label":"\u21d3", "x":4.75, "y":4}, {"x":5.75, "y":4, "w":1.75}, {"x":7.5, "y":4}, {"x":8.97, "y":4, "w":2.25}, {"label":"\u21d1", "x":11.22, "y":4}, {"label":"Alt", "x":13.98, "y":4, "w":1.25}, {"label":"Ctrl", "x":15.23, "y":4, "w":1.25}, {"label":"Fn", "x":16.48, "y":4}]
13 } 13 }
14 } 14 }
15} \ No newline at end of file 15} \ No newline at end of file
diff --git a/keyboards/bat43/bat43.c b/keyboards/bat43/bat43.c
new file mode 100644
index 000000000..5d52c672b
--- /dev/null
+++ b/keyboards/bat43/bat43.c
@@ -0,0 +1,17 @@
1/* Copyright 2020 yfuku
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include "bat43.h"
diff --git a/keyboards/bat43/bat43.h b/keyboards/bat43/bat43.h
new file mode 100644
index 000000000..cf21486a9
--- /dev/null
+++ b/keyboards/bat43/bat43.h
@@ -0,0 +1,46 @@
1/* Copyright 2020 yfuku
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#include "quantum.h"
20
21/* This is a shortcut to help you visually see your layout.
22 *
23 * The first section contains all of the arguments representing the physical
24 * layout of the board and position of the keys.
25 *
26 * The second converts the arguments into a two-dimensional array which
27 * represents the switch matrix.
28 */
29
30
31#define LAYOUT( \
32 k00, k01, k02, k03, k04, k05, k40, k41, k42, k43, k44, k45, \
33 k10, k11, k12, k13, k14, k15, k30, k50, k51, k52, k53, k54, k55, \
34 k20, k21, k22, k23, k24, k25, k60, k61, k62, k63, k64, k65, \
35 k33, k34, k35, k70, k71, k72, \
36 k74, k75, k73, k31, k32 \
37) { \
38 { k00, k01, k02, k03, k04, k05 }, \
39 { k10, k11, k12, k13, k14, k15 }, \
40 { k20, k21, k22, k23, k24, k25 }, \
41 { k30, k31, k32, k33, k34, k35 }, \
42 { k40, k41, k42, k43, k44, k45 }, \
43 { k50, k51, k52, k53, k54, k55 }, \
44 { k60, k61, k62, k63, k64, k65 }, \
45 { k70, k71, k72, k73, k74, k75 }, \
46}
diff --git a/keyboards/bat43/config.h b/keyboards/bat43/config.h
new file mode 100644
index 000000000..57d65233c
--- /dev/null
+++ b/keyboards/bat43/config.h
@@ -0,0 +1,252 @@
1/*
2Copyright 2020 yfuku
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#pragma once
19
20#include "config_common.h"
21
22/* USB Device descriptor parameter */
23#define VENDOR_ID 0xFEED
24#define PRODUCT_ID 0x1070
25#define DEVICE_VER 0x0001
26#define MANUFACTURER yfuku
27#define PRODUCT bat43
28#define DESCRIPTION 43key keyboard
29
30/* key matrix size */
31#define MATRIX_ROWS 8
32#define MATRIX_COLS 6
33
34/*
35 * Keyboard Matrix Assignments
36 *
37 * Change this to how you wired your keyboard
38 * COLS: AVR pins used for columns, left to right
39 * ROWS: AVR pins used for rows, top to bottom
40 * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
41 * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
42 *
43 */
44#define MATRIX_ROW_PINS { E6, D7, C6, D4, F7, F6, F5, F4 }
45#define MATRIX_COL_PINS { B6, B2, B3, B1, B5, B4 }
46// #define UNUSED_PINS
47
48/* COL2ROW, ROW2COL*/
49#define DIODE_DIRECTION COL2ROW
50
51/*
52 * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
53 */
54// #define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6
55
56// #define BACKLIGHT_PIN B7
57// #define BACKLIGHT_BREATHING
58// #define BACKLIGHT_LEVELS 3
59
60// #define RGB_DI_PIN E2
61// #ifdef RGB_DI_PIN
62// #define RGBLED_NUM 16
63// #define RGBLIGHT_HUE_STEP 8
64// #define RGBLIGHT_SAT_STEP 8
65// #define RGBLIGHT_VAL_STEP 8
66// #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
67// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
68// /*== all animations enable ==*/
69// #define RGBLIGHT_ANIMATIONS
70// /*== or choose animations ==*/
71// #define RGBLIGHT_EFFECT_BREATHING
72// #define RGBLIGHT_EFFECT_RAINBOW_MOOD
73// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
74// #define RGBLIGHT_EFFECT_SNAKE
75// #define RGBLIGHT_EFFECT_KNIGHT
76// #define RGBLIGHT_EFFECT_CHRISTMAS
77// #define RGBLIGHT_EFFECT_STATIC_GRADIENT
78// #define RGBLIGHT_EFFECT_RGB_TEST
79// #define RGBLIGHT_EFFECT_ALTERNATING
80// /*== customize breathing effect ==*/
81// /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
82// #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
83// /*==== use exp() and sin() ====*/
84// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
85// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
86// #endif
87
88/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
89#define DEBOUNCE 5
90
91/* define if matrix has ghost (lacks anti-ghosting diodes) */
92//#define MATRIX_HAS_GHOST
93
94/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
95// #define LOCKING_SUPPORT_ENABLE
96/* Locking resynchronize hack */
97// #define LOCKING_RESYNC_ENABLE
98
99/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
100 * This is userful for the Windows task manager shortcut (ctrl+shift+esc).
101 */
102// #define GRAVE_ESC_CTRL_OVERRIDE
103
104/*
105 * Force NKRO
106 *
107 * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
108 * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
109 * makefile for this to work.)
110 *
111 * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
112 * until the next keyboard reset.
113 *
114 * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
115 * fully operational during normal computer usage.
116 *
117 * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
118 * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
119 * bootmagic, NKRO mode will always be enabled until it is toggled again during a
120 * power-up.
121 *
122 */
123//#define FORCE_NKRO
124
125/*
126 * Magic Key Options
127 *
128 * Magic keys are hotkey commands that allow control over firmware functions of
129 * the keyboard. They are best used in combination with the HID Listen program,
130 * found here: https://www.pjrc.com/teensy/hid_listen.html
131 *
132 * The options below allow the magic key functionality to be changed. This is
133 * useful if your keyboard/keypad is missing keys and you want magic key support.
134 *
135 */
136
137/* key combination for magic key command */
138/* defined by default; to change, uncomment and set to the combination you want */
139// #define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT)
140
141/* control how magic key switches layers */
142//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
143//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
144//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
145
146/* override magic key keymap */
147//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
148//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
149//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
150//#define MAGIC_KEY_HELP H
151//#define MAGIC_KEY_HELP_ALT SLASH
152//#define MAGIC_KEY_DEBUG D
153//#define MAGIC_KEY_DEBUG_MATRIX X
154//#define MAGIC_KEY_DEBUG_KBD K
155//#define MAGIC_KEY_DEBUG_MOUSE M
156//#define MAGIC_KEY_VERSION V
157//#define MAGIC_KEY_STATUS S
158//#define MAGIC_KEY_CONSOLE C
159//#define MAGIC_KEY_LAYER0 0
160//#define MAGIC_KEY_LAYER0_ALT GRAVE
161//#define MAGIC_KEY_LAYER1 1
162//#define MAGIC_KEY_LAYER2 2
163//#define MAGIC_KEY_LAYER3 3
164//#define MAGIC_KEY_LAYER4 4
165//#define MAGIC_KEY_LAYER5 5
166//#define MAGIC_KEY_LAYER6 6
167//#define MAGIC_KEY_LAYER7 7
168//#define MAGIC_KEY_LAYER8 8
169//#define MAGIC_KEY_LAYER9 9
170//#define MAGIC_KEY_BOOTLOADER B
171//#define MAGIC_KEY_BOOTLOADER_ALT ESC
172//#define MAGIC_KEY_LOCK CAPS
173//#define MAGIC_KEY_EEPROM E
174//#define MAGIC_KEY_EEPROM_CLEAR BSPACE
175//#define MAGIC_KEY_NKRO N
176//#define MAGIC_KEY_SLEEP_LED Z
177
178/*
179 * Feature disable options
180 * These options are also useful to firmware size reduction.
181 */
182
183/* disable debug print */
184//#define NO_DEBUG
185
186/* disable print */
187//#define NO_PRINT
188
189/* disable action features */
190//#define NO_ACTION_LAYER
191//#define NO_ACTION_TAPPING
192//#define NO_ACTION_ONESHOT
193
194/* disable these deprecated features by default */
195#ifndef LINK_TIME_OPTIMIZATION_ENABLE
196 #define NO_ACTION_MACRO
197 #define NO_ACTION_FUNCTION
198#endif
199/*
200 * MIDI options
201 */
202
203/* Prevent use of disabled MIDI features in the keymap */
204//#define MIDI_ENABLE_STRICT 1
205
206/* enable basic MIDI features:
207 - MIDI notes can be sent when in Music mode is on
208*/
209//#define MIDI_BASIC
210
211/* enable advanced MIDI features:
212 - MIDI notes can be added to the keymap
213 - Octave shift and transpose
214 - Virtual sustain, portamento, and modulation wheel
215 - etc.
216*/
217//#define MIDI_ADVANCED
218
219/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
220//#define MIDI_TONE_KEYCODE_OCTAVES 1
221
222/*
223 * HD44780 LCD Display Configuration
224 */
225/*
226#define LCD_LINES 2 //< number of visible lines of the display
227#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
228
229#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
230
231#if LCD_IO_MODE
232#define LCD_PORT PORTB //< port for the LCD lines
233#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
234#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
235#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
236#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
237#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
238#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
239#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
240#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
241#define LCD_RS_PORT LCD_PORT //< port for RS line
242#define LCD_RS_PIN 3 //< pin for RS line
243#define LCD_RW_PORT LCD_PORT //< port for RW line
244#define LCD_RW_PIN 2 //< pin for RW line
245#define LCD_E_PORT LCD_PORT //< port for Enable line
246#define LCD_E_PIN 1 //< pin for Enable line
247#endif
248*/
249
250/* Bootmagic Lite key configuration */
251// #define BOOTMAGIC_LITE_ROW 0
252// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/bat43/keymaps/default/keymap.c b/keyboards/bat43/keymaps/default/keymap.c
new file mode 100644
index 000000000..5e4faccf9
--- /dev/null
+++ b/keyboards/bat43/keymaps/default/keymap.c
@@ -0,0 +1,50 @@
1/* Copyright 2020 yfuku
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16#include QMK_KEYBOARD_H
17
18// Defines names for use in layer keycodes and the keymap
19enum layer_names {
20 _BASE,
21 _LOWER,
22 _RAISE
23};
24
25#define L_SPC LT(_LOWER, KC_SPC)
26#define R_ENT LT(_RAISE, KC_ENT)
27
28const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
29 [_BASE] = LAYOUT(
30 KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS,
31 KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_BSPC, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_RSFT,
32 KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RCTL,
33 KC_LGUI, KC_LANG2,L_SPC, R_ENT, KC_LANG1,KC_RALT,
34 KC_A, KC_B, KC_C, KC_D, KC_E
35 ),
36 [_LOWER] = LAYOUT(
37 _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_EQL, KC_PLUS, KC_ASTR, KC_PERC, _______,
38 _______, KC_1, KC_2, KC_3, KC_4, KC_5, _______, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
39 _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, _______, _______,
40 _______, _______, _______, KC_DEL, _______, _______,
41 _______, _______, _______, _______, _______
42 ),
43 [_RAISE] = LAYOUT(
44 _______, KC_BSLS, KC_EXLM, KC_AMPR, KC_PIPE, XXXXXXX, XXXXXXX, KC_EQL, KC_PLUS, KC_ASTR, KC_PERC, _______,
45 _______, KC_HASH, KC_GRV, KC_DQT, KC_QUOT, KC_TILD, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_DLR, _______,
46 _______, XXXXXXX, XXXXXXX, KC_LCBR, KC_LBRC, KC_LPRN, KC_RPRN, KC_RBRC, KC_RCBR, KC_AT, KC_CIRC, _______,
47 _______, _______, KC_BSPC, _______, _______, _______,
48 _______, _______, _______, _______, _______
49 ),
50};
diff --git a/keyboards/bat43/keymaps/default/readme.md b/keyboards/bat43/keymaps/default/readme.md
new file mode 100644
index 000000000..f72376d89
--- /dev/null
+++ b/keyboards/bat43/keymaps/default/readme.md
@@ -0,0 +1 @@
# The default keymap for bat43
diff --git a/keyboards/bat43/readme.md b/keyboards/bat43/readme.md
new file mode 100644
index 000000000..7097aa7af
--- /dev/null
+++ b/keyboards/bat43/readme.md
@@ -0,0 +1,15 @@
1# bat43
2
3![bat43](https://user-images.githubusercontent.com/30647434/78112239-e9ef8300-7438-11ea-810b-994a75ffa24e.jpg)
4
5A 43-key keyboard.
6
7* Keyboard Maintainer: [yfuku](https://github.com/yfuku)
8* Hardware Supported: bat43 PCB, Pro Micro
9* Hardware Availability: https://yfuku.booth.pm/
10
11Make example for this keyboard (after setting up your build environment):
12
13 make bat43:default
14
15See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/bat43/rules.mk b/keyboards/bat43/rules.mk
new file mode 100644
index 000000000..70400b5d0
--- /dev/null
+++ b/keyboards/bat43/rules.mk
@@ -0,0 +1,32 @@
1# MCU name
2MCU = atmega32u4
3
4# Bootloader selection
5# Teensy halfkay
6# Pro Micro caterina
7# Atmel DFU atmel-dfu
8# LUFA DFU lufa-dfu
9# QMK DFU qmk-dfu
10# ATmega32A bootloadHID
11# ATmega328P USBasp
12BOOTLOADER = caterina
13
14# Build Options
15# change yes to no to disable
16#
17BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
18MOUSEKEY_ENABLE = yes # Mouse keys
19EXTRAKEY_ENABLE = no # Audio control and System control
20CONSOLE_ENABLE = no # Console for debug
21COMMAND_ENABLE = no # Commands for debug and configuration
22# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
23SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
24# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
25NKRO_ENABLE = no # USB Nkey Rollover
26BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
27RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
28MIDI_ENABLE = no # MIDI support
29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
30AUDIO_ENABLE = no # Audio output on port C6
31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
32HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/bear_face/info.json b/keyboards/bear_face/info.json
index ef327b8df..61cab52cf 100644
--- a/keyboards/bear_face/info.json
+++ b/keyboards/bear_face/info.json
@@ -3,10 +3,17 @@
3 "url": "https://github.com/chemicalwill/bear_face_pcb", 3 "url": "https://github.com/chemicalwill/bear_face_pcb",
4 "maintainer": "chemicalwill", 4 "maintainer": "chemicalwill",
5 "width": 16, 5 "width": 16,
6 "height": 28, 6 "height": 5,
7 "layouts": { 7 "layouts": {
8 "LAYOUT_83_ansi": { 8 "LAYOUT_83_ansi": {
9 "layout": [{"label":"Esc", "x":0, "y":1, "w":1.5}, {"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.5, "y":1}, {"label":"F6", "x":6.5, "y":1}, {"label":"F7", "x":7.5, "y":1}, {"label":"F8", "x":8.5, "y":1}, {"label":"F9", "x":9.5, "y":1}, {"label":"F10", "x":10.5, "y":1}, {"label":"F11", "x":11.5, "y":1}, {"label":"F12", "x":12.5, "y":1}, {"x":13.5, "y":1}, {"label":"Delete", "x":14.5, "y":1, "w":1.5}, {"label":"~", "x":0, "y":2}, {"label":"!", "x":1, "y":2}, {"label":"@", "x":2, "y":2}, {"label":"#", "x":3, "y":2}, {"label":"$", "x":4, "y":2}, {"label":"%", "x":5, "y":2}, {"label":"^", "x":6, "y":2}, {"label":"&", "x":7, "y":2}, {"label":"*", "x":8, "y":2}, {"label":"(", "x":9, "y":2}, {"label":")", "x":10, "y":2}, {"label":"{", "x":11, "y":2}, {"label":"}", "x":12, "y":2}, {"label":"Backspace", "x":13, "y":2, "w":2}, {"label":"Home", "x":15, "y":2}, {"label":"Tab", "x":0, "y":3, "w":1.5}, {"label":"Q", "x":1.5, "y":3}, {"label":"W", "x":2.5, "y":3}, {"label":"E", "x":3.5, "y":3}, {"label":"R", "x":4.5, "y":3}, {"label":"T", "x":5.5, "y":3}, {"label":"Y", "x":6.5, "y":3}, {"label":"U", "x":7.5, "y":3}, {"label":"I", "x":8.5, "y":3}, {"label":"O", "x":9.5, "y":3}, {"label":"P", "x":10.5, "y":3}, {"label":"{", "x":11.5, "y":3}, {"label":"}", "x":12.5, "y":3}, {"label":"|", "x":13.5, "y":3, "w":1.5}, {"label":"Pg Up", "x":15, "y":3}, {"label":"Caps Lock", "x":0, "y":4, "w":1.75}, {"label":"A", "x":1.75, "y":4}, {"label":"S", "x":2.75, "y":4}, {"label":"D", "x":3.75, "y":4}, {"label":"F", "x":4.75, "y":4}, {"label":"G", "x":5.75, "y":4}, {"label":"H", "x":6.75, "y":4}, {"label":"J", "x":7.75, "y":4}, {"label":"K", "x":8.75, "y":4}, {"label":"L", "x":9.75, "y":4}, {"label":":", "x":10.75, "y":4}, {"label":"\"", "x":11.75, "y":4}, {"label":"Enter", "x":12.75, "y":4, "w":2.25}, {"label":"Pg Dn", "x":15, "y":4}, {"label":"Shift", "x":0, "y":5, "w":2.25}, {"label":"Z", "x":2.25, "y":5}, {"label":"X", "x":3.25, "y":5}, {"label":"C", "x":4.25, "y":5}, {"label":"V", "x":5.25, "y":5}, {"label":"B", "x":6.25, "y":5}, {"label":"N", "x":7.25, "y":5}, {"label":"M", "x":8.25, "y":5}, {"label":"<", "x":9.25, "y":5}, {"label":">", "x":10.25, "y":5}, {"label":"?", "x":11.25, "y":5}, {"label":"Shift", "x":12.25, "y":5, "w":1.75}, {"label":"\u2191", "x":14, "y":5}, {"label":"End", "x":15, "y":5}, {"label":"Ctrl", "x":0, "y":6, "w":1.25}, {"label":"Win", "x":1.25, "y":6, "w":1.25}, {"label":"Alt", "x":2.5, "y":6, "w":1.25}, {"x":3.75, "y":6, "w":6.25}, {"label":"Alt", "x":10, "y":6}, {"label":"Fn", "x":11, "y":6}, {"label":"Ctrl", "x":12, "y":6}, {"label":"\u2190", "x":13, "y":6}, {"label":"\u2193", "x":14, "y":6}, {"label":"\u2192", "x":15, "y":6}, {"label":"Esc", "x":0, "y":8, "w":1.5}, {"label":"F1", "x":1.5, "y":8}, {"label":"F2", "x":2.5, "y":8}, {"label":"F3", "x":3.5, "y":8}, {"label":"F4", "x":4.5, "y":8}, {"label":"F5", "x":5.5, "y":8}, {"label":"F6", "x":6.5, "y":8}, {"label":"F7", "x":7.5, "y":8}, {"label":"F8", "x":8.5, "y":8}, {"label":"F9", "x":9.5, "y":8}, {"label":"F10", "x":10.5, "y":8}, {"label":"F11", "x":11.5, "y":8}, {"label":"F12", "x":12.5, "y":8}, {"x":13.5, "y":8}, {"label":"Delete", "x":14.5, "y":8, "w":1.5}, {"label":"~", "x":0, "y":9}, {"label":"!", "x":1, "y":9}, {"label":"@", "x":2, "y":9}, {"label":"#", "x":3, "y":9}, {"label":"$", "x":4, "y":9}, {"label":"%", "x":5, "y":9}, {"label":"^", "x":6, "y":9}, {"label":"&", "x":7, "y":9}, {"label":"*", "x":8, "y":9}, {"label":"(", "x":9, "y":9}, {"label":")", "x":10, "y":9}, {"label":"_", "x":11, "y":9}, {"label":"+", "x":12, "y":9}, {"label":"Backspace", "x":13, "y":9, "w":2}, {"label":"Home", "x":15, "y":9}, {"label":"Tab", "x":0, "y":10, "w":1.5}, {"label":"Q", "x":1.5, "y":10}, {"label":"W", "x":2.5, "y":10}, {"label":"F", "x":3.5, "y":10}, {"label":"P", "x":4.5, "y":10}, {"label":"G", "x":5.5, "y":10}, {"label":"J", "x":6.5, "y":10}, {"label":"L", "x":7.5, "y":10}, {"label":"U", "x":8.5, "y":10}, {"label":"Y", "x":9.5, "y":10}, {"label":":", "x":10.5, "y":10}, {"label":"{", "x":11.5, "y":10}, {"label":"}", "x":12.5, "y":10}, {"label":"|", "x":13.5, "y":10, "w":1.5}, {"label":"Pg Up", "x":15, "y":10}, {"label":"Backspace", "x":0, "y":11, "w":1.75}, {"label":"A", "x":1.75, "y":11}, {"label":"R", "x":2.75, "y":11}, {"label":"S", "x":3.75, "y":11}, {"label":"T", "x":4.75, "y":11}, {"label":"D", "x":5.75, "y":11}, {"label":"H", "x":6.75, "y":11}, {"label":"N", "x":7.75, "y":11}, {"label":"E", "x":8.75, "y":11}, {"label":"I", "x":9.75, "y":11}, {"label":"O", "x":10.75, "y":11}, {"label":"\"", "x":11.75, "y":11}, {"label":"Enter", "x":12.75, "y":11, "w":2.25}, {"label":"Pg Dn", "x":15, "y":11}, {"label":"Shift", "x":0, "y":12, "w":2.25}, {"label":"Z", "x":2.25, "y":12}, {"label":"X", "x":3.25, "y":12}, {"label":"C", "x":4.25, "y":12}, {"label":"V", "x":5.25, "y":12}, {"label":"B", "x":6.25, "y":12}, {"label":"K", "x":7.25, "y":12}, {"label":"M", "x":8.25, "y":12}, {"label":"<", "x":9.25, "y":12}, {"label":">", "x":10.25, "y":12}, {"label":"?", "x":11.25, "y":12}, {"label":"Shift", "x":12.25, "y":12, "w":1.75}, {"label":"\u2191", "x":14, "y":12}, {"label":"End", "x":15, "y":12}, {"label":"Ctrl", "x":0, "y":13, "w":1.25}, {"label":"Win", "x":1.25, "y":13, "w":1.25}, {"label":"Alt", "x":2.5, "y":13, "w":1.25}, {"x":3.75, "y":13, "w":6.25}, {"label":"Alt", "x":10, "y":13}, {"label":"Fn", "x":11, "y":13}, {"label":"Ctrl", "x":12, "y":13}, {"label":"\u2190", "x":13, "y":13}, {"label":"\u2193", "x":14, "y":13}, {"label":"\u2192", "x":15, "y":13}, {"label":"Esc", "x":0, "y":15, "w":1.5}, {"label":"F1", "x":1.5, "y":15}, {"label":"F2", "x":2.5, "y":15}, {"label":"F3", "x":3.5, "y":15}, {"label":"F4", "x":4.5, "y":15}, {"label":"F5", "x":5.5, "y":15}, {"label":"F6", "x":6.5, "y":15}, {"label":"F7", "x":7.5, "y":15}, {"label":"F8", "x":8.5, "y":15}, {"label":"F9", "x":9.5, "y":15}, {"label":"F10", "x":10.5, "y":15}, {"label":"F11", "x":11.5, "y":15}, {"label":"F12", "x":12.5, "y":15}, {"x":13.5, "y":15}, {"label":"Delete", "x":14.5, "y":15, "w":1.5}, {"label":"~", "x":0, "y":16}, {"label":"!", "x":1, "y":16}, {"label":"@", "x":2, "y":16}, {"label":"#", "x":3, "y":16}, {"label":"$", "x":4, "y":16}, {"label":"%", "x":5, "y":16}, {"label":"^", "x":6, "y":16}, {"label":"&", "x":7, "y":16}, {"label":"*", "x":8, "y":16}, {"label":"(", "x":9, "y":16}, {"label":")", "x":10, "y":16}, {"label":"{", "x":11, "y":16}, {"label":"}", "x":12, "y":16}, {"label":"Backspace", "x":13, "y":16, "w":2}, {"label":"Home", "x":15, "y":16}, {"label":"Tab", "x":0, "y":17, "w":1.5}, {"label":"\"", "x":1.5, "y":17}, {"label":"<", "x":2.5, "y":17}, {"label":">", "x":3.5, "y":17}, {"label":"P", "x":4.5, "y":17}, {"label":"Y", "x":5.5, "y":17}, {"label":"F", "x":6.5, "y":17}, {"label":"G", "x":7.5, "y":17}, {"label":"C", "x":8.5, "y":17}, {"label":"R", "x":9.5, "y":17}, {"label":"L", "x":10.5, "y":17}, {"label":"?", "x":11.5, "y":17}, {"label":"+", "x":12.5, "y":17}, {"label":"|", "x":13.5, "y":17, "w":1.5}, {"label":"Pg Up", "x":15, "y":17}, {"label":"Caps Lock", "x":0, "y":18, "w":1.75}, {"label":"A", "x":1.75, "y":18}, {"label":"O", "x":2.75, "y":18}, {"label":"E", "x":3.75, "y":18}, {"label":"U", "x":4.75, "y":18}, {"label":"I", "x":5.75, "y":18}, {"label":"D", "x":6.75, "y":18}, {"label":"H", "x":7.75, "y":18}, {"label":"T", "x":8.75, "y":18}, {"label":"N", "x":9.75, "y":18}, {"label":"S", "x":10.75, "y":18}, {"label":"_", "x":11.75, "y":18}, {"label":"Enter", "x":12.75, "y":18, "w":2.25}, {"label":"Pg Dn", "x":15, "y":18}, {"label":"Shift", "x":0, "y":19, "w":2.25}, {"label":":", "x":2.25, "y":19}, {"label":"Q", "x":3.25, "y":19}, {"label":"J", "x":4.25, "y":19}, {"label":"K", "x":5.25, "y":19}, {"label":"X", "x":6.25, "y":19}, {"label":"B", "x":7.25, "y":19}, {"label":"M", "x":8.25, "y":19}, {"label":"W", "x":9.25, "y":19}, {"label":"V", "x":10.25, "y":19}, {"label":"Z", "x":11.25, "y":19}, {"label":"Shift", "x":12.25, "y":19, "w":1.75}, {"label":"\u2191", "x":14, "y":19}, {"label":"End", "x":15, "y":19}, {"label":"Ctrl", "x":0, "y":20, "w":1.25}, {"label":"Win", "x":1.25, "y":20, "w":1.25}, {"label":"Alt", "x":2.5, "y":20, "w":1.25}, {"x":3.75, "y":20, "w":6.25}, {"label":"Alt", "x":10, "y":20}, {"label":"Fn", "x":11, "y":20}, {"label":"Ctrl", "x":12, "y":20}, {"label":"\u2190", "x":13, "y":20}, {"label":"\u2193", "x":14, "y":20}, {"label":"\u2192", "x":15, "y":20}, {"x":0, "y":22, "w":1.5}, {"label":"Mute", "x":1.5, "y":22}, {"label":"Vol Dn", "x":2.5, "y":22}, {"label":"Vol Up", "x":3.5, "y":22}, {"label":"Prev", "x":4.5, "y":22}, {"label":"Play", "x":5.5, "y":22}, {"label":"Next", "x":6.5, "y":22}, {"x":7.5, "y":22}, {"x":8.5, "y":22}, {"label":"Print Screen", "x":9.5, "y":22}, {"label":"Scroll Lock", "x":10.5, "y":22}, {"label":"Pause", "x":11.5, "y":22}, {"x":12.5, "y":22}, {"x":13.5, "y":22}, {"label":"Insert", "x":14.5, "y":22, "w":1.5}, {"x":0, "y":23}, {"x":1, "y":23}, {"x":2, "y":23}, {"x":3, "y":23}, {"x":4, "y":23}, {"x":5, "y":23}, {"x":6, "y":23}, {"x":7, "y":23}, {"x":8, "y":23}, {"x":9, "y":23}, {"x":10, "y":23}, {"x":11, "y":23}, {"x":12, "y":23}, {"label":"Calculator", "x":13, "y":23, "w":2}, {"label":"Qwer", "x":15, "y":23}, {"x":0, "y":24, "w":1.5}, {"x":1.5, "y":24}, {"x":2.5, "y":24}, {"x":3.5, "y":24}, {"label":"Reset", "x":4.5, "y":24}, {"x":5.5, "y":24}, {"x":6.5, "y":24}, {"x":7.5, "y":24}, {"x":8.5, "y":24}, {"label":"Reset", "x":9.5, "y":24}, {"x":10.5, "y":24}, {"x":11.5, "y":24}, {"x":12.5, "y":24}, {"x":13.5, "y":24, "w":1.5}, {"label":"Cole", "x":15, "y":24}, {"x":0, "y":25, "w":1.75}, {"x":1.75, "y":25}, {"label":"Reset", "x":2.75, "y":25}, {"x":3.75, "y":25}, {"x":4.75, "y":25}, {"x":5.75, "y":25}, {"x":6.75, "y":25}, {"x":7.75, "y":25}, {"x":8.75, "y":25}, {"x":9.75, "y":25}, {"x":10.75, "y":25}, {"x":11.75, "y":25}, {"x":12.75, "y":25, "w":2.25}, {"label":"Dvor", "x":15, "y":25}, {"x":0, "y":26, "w":2.25}, {"label":"App", "x":2.25, "y":26}, {"x":3.25, "y":26}, {"x":4.25, "y":26}, {"x":5.25, "y":26}, {"x":6.25, "y":26}, {"x":7.25, "y":26}, {"x":8.25, "y":26}, {"x":9.25, "y":26}, {"x":10.25, "y":26}, {"label":"App", "x":11.25, "y":26}, {"x":12.25, "y":26, "w":1.75}, {"x":14, "y":26}, {"x":15, "y":26}, {"x":0, "y":27, "w":1.25}, {"x":1.25, "y":27, "w":1.25}, {"x":2.5, "y":27, "w":1.25}, {"x":3.75, "y":27, "w":6.25}, {"x":10, "y":27}, {"x":11, "y":27}, {"x":12, "y":27}, {"x":13, "y":27}, {"x":14, "y":27}, {"x":15, "y":27}] 9 "layout": [
10 {"label":"Esc", "x":0, "y":0, "w":1.5}, {"label":"F1", "x":1.5, "y":0}, {"label":"F2", "x":2.5, "y":0}, {"label":"F3", "x":3.5, "y":0}, {"label":"F4", "x":4.5, "y":0}, {"label":"F5", "x":5.5, "y":0}, {"label":"F6", "x":6.5, "y":0}, {"label":"F7", "x":7.5, "y":0}, {"label":"F8", "x":8.5, "y":0}, {"label":"F9", "x":9.5, "y":0}, {"label":"F10", "x":10.5, "y":0}, {"label":"F11", "x":11.5, "y":0}, {"label":"F12", "x":12.5, "y":0}, {"label":"Pn", "x":13.5, "y":0}, {"label":"Delete", "x":14.5, "y":0, "w":1.5},
11 {"label":"~", "x":0, "y":1}, {"label":"!", "x":1, "y":1}, {"label":"@", "x":2, "y":1}, {"label":"#", "x":3, "y":1}, {"label":"$", "x":4, "y":1}, {"label":"%", "x":5, "y":1}, {"label":"^", "x":6, "y":1}, {"label":"&", "x":7, "y":1}, {"label":"*", "x":8, "y":1}, {"label":"(", "x":9, "y":1}, {"label":")", "x":10, "y":1}, {"label":"{", "x":11, "y":1}, {"label":"}", "x":12, "y":1}, {"label":"Backspace", "x":13, "y":1, "w":2}, {"label":"Home", "x":15, "y":1},
12 {"label":"Tab", "x":0, "y":2, "w":1.5}, {"label":"Q", "x":1.5, "y":2}, {"label":"W", "x":2.5, "y":2}, {"label":"E", "x":3.5, "y":2}, {"label":"R", "x":4.5, "y":2}, {"label":"T", "x":5.5, "y":2}, {"label":"Y", "x":6.5, "y":2}, {"label":"U", "x":7.5, "y":2}, {"label":"I", "x":8.5, "y":2}, {"label":"O", "x":9.5, "y":2}, {"label":"P", "x":10.5, "y":2}, {"label":"{", "x":11.5, "y":2}, {"label":"}", "x":12.5, "y":2}, {"label":"|", "x":13.5, "y":2, "w":1.5}, {"label":"Pg Up", "x":15, "y":2},
13 {"label":"Caps Lock", "x":0, "y":3, "w":1.75}, {"label":"A", "x":1.75, "y":3}, {"label":"S", "x":2.75, "y":3}, {"label":"D", "x":3.75, "y":3}, {"label":"F", "x":4.75, "y":3}, {"label":"G", "x":5.75, "y":3}, {"label":"H", "x":6.75, "y":3}, {"label":"J", "x":7.75, "y":3}, {"label":"K", "x":8.75, "y":3}, {"label":"L", "x":9.75, "y":3}, {"label":":", "x":10.75, "y":3}, {"label":"\"", "x":11.75, "y":3}, {"label":"Enter", "x":12.75, "y":3, "w":2.25}, {"label":"Pg Dn", "x":15, "y":3},
14 {"label":"Shift", "x":0, "y":4, "w":2.25}, {"label":"Z", "x":2.25, "y":4}, {"label":"X", "x":3.25, "y":4}, {"label":"C", "x":4.25, "y":4}, {"label":"V", "x":5.25, "y":4}, {"label":"B", "x":6.25, "y":4}, {"label":"N", "x":7.25, "y":4}, {"label":"M", "x":8.25, "y":4}, {"label":"<", "x":9.25, "y":4}, {"label":">", "x":10.25, "y":4}, {"label":"?", "x":11.25, "y":4}, {"label":"Shift", "x":12.25, "y":4, "w":1.75}, {"label":"Up", "x":14, "y":4}, {"label":"End", "x":15, "y":4},
15 {"label":"Ctrl", "x":0, "y":5, "w":1.25}, {"label":"Win", "x":1.25, "y":5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5, "w":1.25}, {"x":3.75, "y":5, "w":6.25}, {"label":"Alt", "x":10, "y":5}, {"label":"Fn", "x":11, "y":5}, {"label":"Ctrl", "x":12, "y":5}, {"label":"Left", "x":13, "y":5}, {"label":"Down", "x":14, "y":5}, {"label":"Right", "x":15, "y":5}
16 ]
10 } 17 }
11 } 18 }
12} 19}
diff --git a/keyboards/centromere/keymaps/mini/keymap.c b/keyboards/centromere/keymaps/mini/keymap.c
new file mode 100644
index 000000000..3d6de56f2
--- /dev/null
+++ b/keyboards/centromere/keymaps/mini/keymap.c
@@ -0,0 +1,118 @@
1#include QMK_KEYBOARD_H
2
3
4// Each layer gets a name for readability, which is then used in the keymap matrix below.
5// The underscores don't mean anything - you can have a layer called STUFF or any other name.
6// Layer names don't all need to be of the same length, obviously, and you can also skip them
7// entirely and just use numbers.
8enum centromere_layers
9{
10 _QWERTY,
11 _LOWER,
12 _RAISE,
13 _ADJUST
14};
15
16// Defines for layer movement
17#define LOWER MO(_LOWER)
18#define RAISE MO(_RAISE)
19
20// Defines for task manager
21#define CALTDEL LCTL(LALT(KC_DEL))
22#define TSKMGR LCTL(LSFT(KC_ESC))
23
24const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
25
26/* Qwerty
27 *
28 * ,----------------------------------. ,----------------------------------.
29 * | Q | W | E | R | T | | Y | U | I | O | P |
30 * |------+------+------+------+------| |------+------+------+------+------|
31 * | A | S | D | F | G | | H | J | K | L | ; |
32 * |------+------+------+------+------| |------+------+------+------+------|
33 * | Z | X | C | V | B | | N | M | , | . | / |
34 * `----------------------------------' `----------------------------------'
35 * ,--------------------. ,------,-------------.
36 * | Ctrl | LOWER| | | | RAISE| Shift|
37 * `-------------| Space| |BckSpc|------+------.
38 * | | | |
39 * `------' `------'
40 */
41[_QWERTY] = LAYOUT(
42 KC_NO, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_NO,
43 KC_NO, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_NO,
44 KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO,
45 KC_LCTL, LOWER, KC_SPC, KC_BSPC, RAISE, OSM(MOD_LSFT)
46),
47
48/* Raise
49 *
50 * ,----------------------------------. ,----------------------------------.
51 * | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 |
52 * |------+------+------+------+------| |------+------+------+------+------|
53 * | Tab | Left | Down | Up | Right| | | - | = | [ | ] |
54 * |------+------+------+------+------| |------+------+------+------+------|
55 * | Ctrl| ` | GUI | Alt | | | | | | \ | ' |
56 * `----------------------------------' `----------------------------------'
57 * ,--------------------. ,------,-------------.
58 * | | LOWER| | | | RAISE| |
59 * `-------------| | | |------+------.
60 * | | | |
61 * `------' `------'
62 */
63[_RAISE] = LAYOUT(
64 KC_NO, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_NO,
65 KC_NO, KC_TAB, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_NO,
66 KC_NO, KC_LCTL, KC_GRV, KC_LGUI, KC_LALT, _______, _______, _______, _______, KC_BSLS, KC_QUOT, KC_NO,
67 _______, _______, _______, _______, _______, _______
68),
69
70/* Lower
71 *
72 * ,----------------------------------. ,----------------------------------.
73 * | ! | @ | # | $ | % | | ^ | & | * | ( | ) |
74 * |------+------+------+------+------| |------+------+------+------+------|
75 * | Esc | | | | | | | _ | + | { | } |
76 * |------+------+------+------+------| |------+------+------+------+------|
77 * | Caps| ~ | | | | | | | | | | " |
78 * `----------------------------------' `----------------------------------'
79 * ,--------------------. ,------,-------------.
80 * | | LOWER| | | | RAISE| Del |
81 * `-------------| | | Enter|------+------.
82 * | | | |
83 * `------' `------'
84 */
85[_LOWER] = LAYOUT(
86 KC_NO, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_NO,
87 KC_NO, KC_ESC, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_NO,
88 KC_NO, KC_CAPS, KC_TILD, _______, _______, _______, _______, _______, _______, KC_PIPE, KC_DQT, KC_NO,
89 _______, _______, _______, KC_ENT, _______, KC_DEL
90),
91
92/* Adjust (Lower + Raise)
93 *
94 * ,----------------------------------. ,----------------------------------.
95 * | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 |
96 * |------+------+------+------+------| |------+------+------+------+------|
97 * | F11 | F12 | | | | | | | |Taskmg|caltde|
98 * |------+------+------+------+------| |------+------+------+------+------|
99 * | Reset| | | | | | | | | | |
100 * `----------------------------------' `----------------------------------'
101 * ,--------------------. ,------,-------------.
102 * | | LOWER| | | | RAISE| |
103 * `-------------| | | |------+------.
104 * | | | |
105 * `------' `------'
106 */
107[_ADJUST] = LAYOUT(
108 KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_NO,
109 KC_NO, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, TSKMGR, CALTDEL, KC_NO,
110 KC_NO, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_NO,
111 _______, _______, _______, _______, _______, _______
112)
113};
114
115
116layer_state_t layer_state_set_user(layer_state_t state) {
117 return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
118}
diff --git a/keyboards/coseyfannitutti/discipline/config.h b/keyboards/coseyfannitutti/discipline/config.h
index 0a005ab0d..5d2430908 100644
--- a/keyboards/coseyfannitutti/discipline/config.h
+++ b/keyboards/coseyfannitutti/discipline/config.h
@@ -18,7 +18,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
18 18
19#include "config_common.h" 19#include "config_common.h"
20 20
21#define VENDOR_ID 0xFEED 21#define VENDOR_ID 0x6B62
22#define PRODUCT_ID 0x6869 22#define PRODUCT_ID 0x6869
23#define DEVICE_VER 0x0001 23#define DEVICE_VER 0x0001
24#define MANUFACTURER coseyfannitutti 24#define MANUFACTURER coseyfannitutti
diff --git a/keyboards/coseyfannitutti/discipline/discipline.h b/keyboards/coseyfannitutti/discipline/discipline.h
index 1703a6128..3369d7efb 100644
--- a/keyboards/coseyfannitutti/discipline/discipline.h
+++ b/keyboards/coseyfannitutti/discipline/discipline.h
@@ -76,3 +76,58 @@
76{ K40, _x_, K42, _x_, _x_, _x_, K46, _x_, _x_, K49, K4A, K4B, K4C, K4D, K4E} \ 76{ K40, _x_, K42, _x_, _x_, _x_, K46, _x_, _x_, K49, K4A, K4B, K4C, K4D, K4E} \
77} 77}
78 78
79#define LAYOUT_65_iso( \
80 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
81 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, \
82 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K1D, K2E, \
83 K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \
84 K40, K41, K42, K46, K49, K4A, K4B, K4C, K4D, K4E \
85) { \
86{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
87{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \
88{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, _x_, K2D, K2E }, \
89{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \
90{ K40, K41, K42, _x_, _x_, _x_, K46, _x_, _x_, K49, K4A, K4B, K4C, K4D, K4E} \
91}
92
93#define LAYOUT_65_iso_2_right_mods( \
94 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
95 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, \
96 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K1D, K2E, \
97 K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \
98 K40, K41, K42, K46, K49, K4A, K4C, K4D, K4E \
99) { \
100{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
101{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \
102{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, _x_, K2D, K2E }, \
103{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \
104{ K40, K41, K42, _x_, _x_, _x_, K46, _x_, _x_, K49, K4A, _x_, K4C, K4D, K4E} \
105}
106
107#define LAYOUT_wkl_iso_2_right_mods( \
108 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
109 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, \
110 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K1D, K2E, \
111 K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \
112 K40, K42, K46, K49, K4A, K4C, K4D, K4E \
113) { \
114{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
115{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \
116{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, _x_, K2D, K2E }, \
117{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \
118{ K40, _x_, K42, _x_, _x_, _x_, K46, _x_, _x_, K49, K4A, _x_, K4C, K4D, K4E} \
119}
120
121#define LAYOUT_wkl_iso_3_right_mods( \
122 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
123 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, \
124 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K1D, K2E, \
125 K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \
126 K40, K42, K46, K49, K4A, K4B, K4C, K4D, K4E \
127) { \
128{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
129{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \
130{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, _x_, K2D, K2E }, \
131{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \
132{ K40, _x_, K42, _x_, _x_, _x_, K46, _x_, _x_, K49, K4A, K4B, K4C, K4D, K4E} \
133}
diff --git a/keyboards/coseyfannitutti/discipline/info.json b/keyboards/coseyfannitutti/discipline/info.json
index 522e80067..808289824 100644
--- a/keyboards/coseyfannitutti/discipline/info.json
+++ b/keyboards/coseyfannitutti/discipline/info.json
@@ -16,6 +16,18 @@
16 }, 16 },
17 "LAYOUT_wkl_ansi_3_right_mods": { 17 "LAYOUT_wkl_ansi_3_right_mods": {
18 "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"~", "x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Delete", "x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"PgUp", "x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"\u2191", "x":14, "y":3}, {"label":"PgDn", "x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.5}, {"label":"Alt", "x":1.5, "y":4, "w":1.5}, {"x":3, "y":4, "w":7}, {"label":"Alt", "x":10, "y":4}, {"label":"Fn", "x":11, "y":4}, {"label":"Ctrl", "x":12, "y":4}, {"label":"\u2190", "x":13, "y":4}, {"label":"\u2193", "x":14, "y":4}, {"label":"\u2192", "x":15, "y":4}] 18 "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"~", "x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Delete", "x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"PgUp", "x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"\u2191", "x":14, "y":3}, {"label":"PgDn", "x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.5}, {"label":"Alt", "x":1.5, "y":4, "w":1.5}, {"x":3, "y":4, "w":7}, {"label":"Alt", "x":10, "y":4}, {"label":"Fn", "x":11, "y":4}, {"label":"Ctrl", "x":12, "y":4}, {"label":"\u2190", "x":13, "y":4}, {"label":"\u2193", "x":14, "y":4}, {"label":"\u2192", "x":15, "y":4}]
19 },
20 "LAYOUT_65_iso": {
21 "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":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":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}, {"x":11.75, "y":2}, {"x":12.75, "y":2}, {"x":13.75, "y":1, "w":1.25, "h":2}, {"x":15, "y":2}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"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}, {"x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}]
22 },
23 "LAYOUT_65_iso_2_right_mods": {
24 "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":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":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}, {"x":11.75, "y":2}, {"x":12.75, "y":2}, {"x":13.75, "y":1, "w":1.25, "h":2}, {"x":15, "y":2}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"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}]
25 },
26 "LAYOUT_wkl_iso_2_right_mods": {
27 "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":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":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}, {"x":11.75, "y":2}, {"x":12.75, "y":2}, {"x":13.75, "y":1, "w":1.25, "h":2}, {"x":15, "y":2}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"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.5}, {"x":1.5, "y":4, "w":1.5}, {"x":3, "y":4, "w":7}, {"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}]
28 },
29 "LAYOUT_wkl_iso_3_right_mods": {
30 "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":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":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}, {"x":11.75, "y":2}, {"x":12.75, "y":2}, {"x":13.75, "y":1, "w":1.25, "h":2}, {"x":15, "y":2}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"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.5}, {"x":1.5, "y":4, "w":1.5}, {"x":3, "y":4, "w":7}, {"x":10, "y":4}, {"x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}]
19 } 31 }
20 } 32 }
21} 33}
diff --git a/keyboards/coseyfannitutti/discipline/keymaps/67_ansi/keymap.c b/keyboards/coseyfannitutti/discipline/keymaps/67_ansi/keymap.c
deleted file mode 100644
index 34410d54a..000000000
--- a/keyboards/coseyfannitutti/discipline/keymaps/67_ansi/keymap.c
+++ /dev/null
@@ -1,68 +0,0 @@
1/* Copyright 2019 COSEYFANNITUTTI
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16#include QMK_KEYBOARD_H
17
18#define _BL 0
19#define _FL 1
20
21 /* Qwerty
22 * .---------------------------------------------------------------------------------------------.
23 * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Bkspc | Ins |
24 * |---------------------------------------------------------------------------------------------+
25 * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | Del |
26 * |---------------------------------------------------------------------------------------------+
27 * | Caps | A | S | D | F | G | H | J | K | L | ; | ' | Enter | PgUp|
28 * |---------------------------------------------------------------------------------------------+
29 * | Shift | Z | X | C | V | B | N | M | , | . | / | Shift | U | Pgdn|
30 * |---------------------------------------------------------------------------------------------+
31 * | Ctrl | Win | Alt | Space | RAlt | FN ||||||| L | D | R |
32 * '---------------------------------------------------------------------------------------------'
33 */
34
35 /* FnLayer
36 * .---------------------------------------------------------------------------------------------.
37 * | ` ~ | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | DELETE |PNTSC|
38 * |---------------------------------------------------------------------------------------------+
39 * | Tab | | | |RESET| | | | | | |PAUSE| | \ | |
40 * |---------------------------------------------------------------------------------------------+
41 * | Caps | | | | | | | | | | | INS | Enter | HOME|
42 * |---------------------------------------------------------------------------------------------+
43 * | Shift | | | | | | | | | | | Shift |VOLUP| END |
44 * |---------------------------------------------------------------------------------------------+
45 * | Ctrl | Win | Alt | | RAlt| FN ||||||| L |VOLDN| R |
46 * '---------------------------------------------------------------------------------------------'
47 */
48
49const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
50 [_BL] = LAYOUT_65_ansi_2_right_mods(
51 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_GRV,
52 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,
53 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,
54 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,
55 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FL), KC_LEFT, KC_DOWN, KC_RIGHT),
56
57 [_FL] = LAYOUT_65_ansi_2_right_mods(
58 /* esc 1 2 3 4 5 6 7 8 9 0 - = bkspc `~ */
59 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_PSCR,
60 /* tab Q W E R T Y U I O P [ ] \ delete*/
61 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS,KC_TRNS,KC_TRNS,KC_INS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PAUS, KC_TRNS, KC_TRNS,
62 /* caps A S D F G H J K L ; ' enter pg up*/
63 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_HOME,
64 /* shift Z X C V B N M , . / shift up pg dn*/
65 KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_RSFT, KC_VOLU, KC_END,
66 /* ctrl win alt space alt fn ctrl left down right*/
67 KC_LCTL, KC_LGUI, KC_LALT, KC_TRNS, KC_RALT, KC_TRNS, KC_TRNS, KC_VOLD, KC_TRNS)
68};
diff --git a/keyboards/coseyfannitutti/discipline/keymaps/coseyfannitutti/keymap.c b/keyboards/coseyfannitutti/discipline/keymaps/coseyfannitutti/keymap.c
deleted file mode 100644
index cb14d23f1..000000000
--- a/keyboards/coseyfannitutti/discipline/keymaps/coseyfannitutti/keymap.c
+++ /dev/null
@@ -1,69 +0,0 @@
1/* Copyright 2019 COSEYFANNITUTTI
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16#include QMK_KEYBOARD_H
17
18#define _BL 0
19#define _FL 1
20
21 /* Qwerty
22 * .---------------------------------------------------------------------------------------------.
23 * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Bkspc | Ins |
24 * |---------------------------------------------------------------------------------------------+
25 * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | Del |
26 * |---------------------------------------------------------------------------------------------+
27 * | Caps | A | S | D | F | G | H | J | K | L | ; | ' | Enter | PgUp|
28 * |---------------------------------------------------------------------------------------------+
29 * | Shift | Z | X | C | V | B | N | M | , | . | / | Shift | U | Pgdn|
30 * |---------------------------------------------------------------------------------------------+
31 * | Ctrl | Win | Alt | Space | RAlt | FN ||||||| L | D | R |
32 * '---------------------------------------------------------------------------------------------'
33 */
34
35 /* FnLayer
36 * .---------------------------------------------------------------------------------------------.
37 * | ` ~ | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | DELETE |PNTSC|
38 * |---------------------------------------------------------------------------------------------+
39 * | Tab | | | |RESET| | | | | | |PAUSE| | \ | |
40 * |---------------------------------------------------------------------------------------------+
41 * | Caps | | | | | | | | | | | INS | Enter | HOME|
42 * |---------------------------------------------------------------------------------------------+
43 * | Shift | | | | | | | | | | | Shift |VOLUP| END |
44 * |---------------------------------------------------------------------------------------------+
45 * | Ctrl | Win | Alt | | RAlt| FN ||||||| L |VOLDN| R |
46 * '---------------------------------------------------------------------------------------------'
47 */
48
49const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
50 [_BL] = LAYOUT_65_ansi_2_right_mods(
51 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,
52 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
53 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_PGDN,
54 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, MO(_FL),
55 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FL), KC_LEFT, KC_DOWN, KC_RIGHT),
56
57 [_FL] = LAYOUT_65_ansi_2_right_mods(
58 /* esc 1 2 3 4 5 6 7 8 9 0 - = bkspc `~ */
59 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_PSCR,
60 /* tab Q W E R T Y U I O P [ ] \ delete*/
61 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS,KC_TRNS,KC_TRNS,KC_INS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PAUS, KC_TRNS, KC_TRNS,
62 /* caps A S D F G H J K L ; ' enter pg up*/
63 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_HOME,
64 /* shift Z X C V B N M , . / shift up pg dn*/
65 KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_RSFT, KC_VOLU, KC_END,
66 /* ctrl win alt space alt fn left down right*/
67 KC_LCTL, KC_LGUI, KC_LALT, KC_TRNS, KC_RALT, KC_TRNS, KC_TRNS, KC_VOLD, KC_TRNS)
68};
69
diff --git a/keyboards/coseyfannitutti/discipline/keymaps/default/keymap.c b/keyboards/coseyfannitutti/discipline/keymaps/default/keymap.c
index da433c1a6..1fdfce67e 100644
--- a/keyboards/coseyfannitutti/discipline/keymaps/default/keymap.c
+++ b/keyboards/coseyfannitutti/discipline/keymaps/default/keymap.c
@@ -15,46 +15,15 @@
15 */ 15 */
16#include QMK_KEYBOARD_H 16#include QMK_KEYBOARD_H
17 17
18#define _BL 0
19#define _FL 1
20
21 /* Qwerty
22 * .---------------------------------------------------------------------------------------------.
23 * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Bkspc | Ins |
24 * |---------------------------------------------------------------------------------------------+
25 * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | Del |
26 * |---------------------------------------------------------------------------------------------+
27 * | Caps | A | S | D | F | G | H | J | K | L | ; | ' | Enter | PgUp|
28 * |---------------------------------------------------------------------------------------------+
29 * | Shift | Z | X | C | V | B | N | M | , | . | / | Shift | U | Pgdn|
30 * |---------------------------------------------------------------------------------------------+
31 * | Ctrl | Win | Alt | Space | RAlt | FN |RCtrl| L | D | R |
32 * '---------------------------------------------------------------------------------------------'
33 */
34
35 /* FnLayer
36 * .---------------------------------------------------------------------------------------------.
37 * | ` ~ | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | DELETE |PNTSC|
38 * |---------------------------------------------------------------------------------------------+
39 * | Tab | | | |RESET| | | | | | |PAUSE| | \ | |
40 * |---------------------------------------------------------------------------------------------+
41 * | Caps | | | | | | | | | | | INS | Enter | HOME|
42 * |---------------------------------------------------------------------------------------------+
43 * | Shift | | | | | | | | | | | Shift |VOLUP| END |
44 * |---------------------------------------------------------------------------------------------+
45 * | Ctrl | Win | Alt | | RAlt| FN |RCtrl| L |VOLDN| R |
46 * '---------------------------------------------------------------------------------------------'
47 */
48
49const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 18const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
50 [_BL] = LAYOUT_65_ansi( 19 [0] = LAYOUT_65_ansi(
51 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_GRV, 20 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_GRV,
52 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, 21 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
53 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, 22 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,
54 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, 23 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,
55 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FL), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), 24 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT),
56 25
57 [_FL] = LAYOUT_65_ansi( 26 [1] = LAYOUT_65_ansi(
58 /* esc 1 2 3 4 5 6 7 8 9 0 - = bkspc `~ */ 27 /* esc 1 2 3 4 5 6 7 8 9 0 - = bkspc `~ */
59 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_PSCR, 28 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_PSCR,
60 /* tab Q W E R T Y U I O P [ ] \ delete*/ 29 /* tab Q W E R T Y U I O P [ ] \ delete*/
diff --git a/keyboards/coseyfannitutti/discipline/keymaps/iso/keymap.c b/keyboards/coseyfannitutti/discipline/keymaps/iso/keymap.c
new file mode 100644
index 000000000..7f4c24037
--- /dev/null
+++ b/keyboards/coseyfannitutti/discipline/keymaps/iso/keymap.c
@@ -0,0 +1,37 @@
1/* Copyright 2019 COSEYFANNITUTTI
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16#include QMK_KEYBOARD_H
17
18const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
19 [0] = LAYOUT_65_iso(
20 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_GRV,
21 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL,
22 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGUP,
23 KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
24 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT),
25
26 [1] = LAYOUT_65_iso(
27 /* esc 1 2 3 4 5 6 7 8 9 0 - = bkspc `~ */
28 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_PSCR,
29 /* tab Q W E R T Y U I O P [ ] delete*/
30 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS,KC_TRNS,KC_TRNS,KC_INS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PAUS, KC_TRNS,
31 /* caps A S D F G H J K L ; ' # enter pg up*/
32 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_TRNS, KC_HOME,
33 /* shift \ Z X C V B N M , . / shift up pg dn*/
34 KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_RSFT, KC_VOLU, KC_END,
35 /* ctrl win alt space alt fn ctrl left down right*/
36 KC_LCTL, KC_LGUI, KC_LALT, KC_TRNS, KC_RALT, KC_TRNS, KC_RCTL, KC_TRNS, KC_VOLD, KC_TRNS)
37};
diff --git a/keyboards/coseyfannitutti/discipline/keymaps/via/keymap.c b/keyboards/coseyfannitutti/discipline/keymaps/via/keymap.c
new file mode 100644
index 000000000..365b06dbf
--- /dev/null
+++ b/keyboards/coseyfannitutti/discipline/keymaps/via/keymap.c
@@ -0,0 +1,61 @@
1/* Copyright 2019 COSEYFANNITUTTI
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16#include QMK_KEYBOARD_H
17
18const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
19 [0] = LAYOUT_65_iso(
20 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_GRV,
21 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL,
22 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_BSLS, KC_PGUP,
23 KC_LSFT, KC_TRNS, 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,
24 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT),
25
26 [1] = LAYOUT_65_iso(
27 /* esc 1 2 3 4 5 6 7 8 9 0 - = bkspc `~ */
28 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_PSCR,
29 /* tab Q W E R T Y U I O P [ ] \ delete*/
30 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS,KC_TRNS,KC_TRNS,KC_INS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PAUS, KC_TRNS,
31 /* caps A S D F G H J K L ; ' enter pg up*/
32 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_TRNS, KC_HOME,
33 /* shift Z X C V B N M , . / shift up pg dn*/
34 KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_RSFT, KC_VOLU, KC_END,
35 /* ctrl win alt space alt fn ctrl left down right*/
36 KC_LCTL, KC_LGUI, KC_LALT, KC_TRNS, KC_RALT, KC_TRNS, KC_RCTL, KC_TRNS, KC_VOLD, KC_TRNS),
37
38 [2] = LAYOUT_65_iso(
39 /* esc 1 2 3 4 5 6 7 8 9 0 - = bkspc `~ */
40 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
41 /* tab Q W E R T Y U I O P [ ] \ delete*/
42 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_PAUS, KC_TRNS,
43 /* caps A S D F G H J K L ; ' enter pg up*/
44 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
45 /* shift Z X C V B N M , . / shift up pg dn*/
46 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
47 /* ctrl win alt space alt fn ctrl left down right*/
48 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
49
50 [3] = LAYOUT_65_iso(
51 /* esc 1 2 3 4 5 6 7 8 9 0 - = bkspc `~ */
52 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
53 /* tab Q W E R T Y U I O P [ ] \ delete*/
54 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_PAUS, KC_TRNS,
55 /* caps A S D F G H J K L ; ' enter pg up*/
56 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
57 /* shift Z X C V B N M , . / shift up pg dn*/
58 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
59 /* ctrl win alt space alt fn ctrl left down right*/
60 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
61};
diff --git a/keyboards/coseyfannitutti/discipline/keymaps/via/rules.mk b/keyboards/coseyfannitutti/discipline/keymaps/via/rules.mk
new file mode 100644
index 000000000..d0e4977b8
--- /dev/null
+++ b/keyboards/coseyfannitutti/discipline/keymaps/via/rules.mk
@@ -0,0 +1,4 @@
1VIA_ENABLE = yes
2LTO_ENABLE = yes
3EXTRAKEY_ENABLE = no
4MOUSEKEY_ENABLE = no \ No newline at end of file
diff --git a/keyboards/coseyfannitutti/discipline/keymaps/wkl_ansi_2_right_mods/keymap.c b/keyboards/coseyfannitutti/discipline/keymaps/wkl_ansi_2_right_mods/keymap.c
deleted file mode 100644
index 01b1e21f1..000000000
--- a/keyboards/coseyfannitutti/discipline/keymaps/wkl_ansi_2_right_mods/keymap.c
+++ /dev/null
@@ -1,68 +0,0 @@
1/* Copyright 2019 COSEYFANNITUTTI
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16#include QMK_KEYBOARD_H
17
18#define _BL 0
19#define _FL 1
20
21 /* Qwerty
22 * .---------------------------------------------------------------------------------------------.
23 * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Bkspc | Ins |
24 * |---------------------------------------------------------------------------------------------+
25 * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | Del |
26 * |---------------------------------------------------------------------------------------------+
27 * | Caps | A | S | D | F | G | H | J | K | L | ; | ' | Enter | PgUp|
28 * |---------------------------------------------------------------------------------------------+
29 * | Shift | Z | X | C | V | B | N | M | , | . | / | Shift | U | Pgdn|
30 * |---------------------------------------------------------------------------------------------+
31 * | Ctrl | Alt | Space | RAlt | FN | L | D | R |
32 * '---------------------------------------------------------------------------------------------'
33 */
34
35 /* FnLayer
36 * .---------------------------------------------------------------------------------------------.
37 * | ` ~ | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | DELETE |PNTSC|
38 * |---------------------------------------------------------------------------------------------+
39 * | Tab | | | |RESET| | | | | | |PAUSE| | \ | |
40 * |---------------------------------------------------------------------------------------------+
41 * | Caps | | | | | | | | | | | INS | Enter | HOME|
42 * |---------------------------------------------------------------------------------------------+
43 * | Shift | | | | | | | | | | | Shift |VOLUP| END |
44 * |---------------------------------------------------------------------------------------------+
45 * | Ctrl | Alt | | RAlt | FN | L |VOLDN| R |
46 * '---------------------------------------------------------------------------------------------'
47 */
48
49const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
50 [_BL] = LAYOUT_wkl_ansi_2_right_mods(
51 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_GRV,
52 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,
53 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,
54 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,
55 KC_LCTL, KC_LALT, KC_SPC, KC_RALT, MO(_FL), KC_LEFT, KC_DOWN, KC_RIGHT),
56
57 [_FL] = LAYOUT_wkl_ansi_2_right_mods(
58 /* esc 1 2 3 4 5 6 7 8 9 0 - = bkspc `~ */
59 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_PSCR,
60 /* tab Q W E R T Y U I O P [ ] \ delete*/
61 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS,KC_TRNS,KC_TRNS,KC_INS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PAUS, KC_TRNS, KC_TRNS,
62 /* caps A S D F G H J K L ; ' enter pg up*/
63 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_HOME,
64 /* shift Z X C V B N M , . / shift up pg dn*/
65 KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_RSFT, KC_VOLU, KC_END,
66 /* ctrl alt space alt fn left down right*/
67 KC_LCTL, KC_LALT, KC_TRNS, KC_RALT, KC_TRNS, KC_TRNS, KC_VOLD, KC_TRNS)
68};
diff --git a/keyboards/coseyfannitutti/discipline/keymaps/wkl_ansi_3_right_mods/keymap.c b/keyboards/coseyfannitutti/discipline/keymaps/wkl_ansi_3_right_mods/keymap.c
deleted file mode 100644
index 05f8810e6..000000000
--- a/keyboards/coseyfannitutti/discipline/keymaps/wkl_ansi_3_right_mods/keymap.c
+++ /dev/null
@@ -1,68 +0,0 @@
1/* Copyright 2019 COSEYFANNITUTTI
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16#include QMK_KEYBOARD_H
17
18#define _BL 0
19#define _FL 1
20
21 /* Qwerty
22 * .---------------------------------------------------------------------------------------------.
23 * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Bkspc | Ins |
24 * |---------------------------------------------------------------------------------------------+
25 * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | Del |
26 * |---------------------------------------------------------------------------------------------+
27 * | Caps | A | S | D | F | G | H | J | K | L | ; | ' | Enter | PgUp|
28 * |---------------------------------------------------------------------------------------------+
29 * | Shift | Z | X | C | V | B | N | M | , | . | / | Shift | U | Pgdn|
30 * |---------------------------------------------------------------------------------------------+
31 * | Ctrl | Alt | Space | RAlt | FN |RCtrl| L | D | R |
32 * '---------------------------------------------------------------------------------------------'
33 */
34
35 /* FnLayer
36 * .---------------------------------------------------------------------------------------------.
37 * | ` ~ | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | DELETE |PNTSC|
38 * |---------------------------------------------------------------------------------------------+
39 * | Tab |STATC|BRTHE|RNBOW|RESET| | | | | | |PAUSE| | \ | |
40 * |---------------------------------------------------------------------------------------------+
41 * | Caps |RGBH+|RGBS+|RGBB+| | | | | | | | INS | Enter | HOME|
42 * |---------------------------------------------------------------------------------------------+
43 * | Shift |RGBH-|RGBS-|RGBB-| | | | |RGBM-|RGBM+|RGBTG| Shift |VOLUP| END |
44 * |---------------------------------------------------------------------------------------------+
45 * | Ctrl | Alt | | RAlt| FN |RCtrl| L |VOLDN| R |
46 * '---------------------------------------------------------------------------------------------'
47 */
48
49const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
50 [_BL] = LAYOUT_wkl_ansi_3_right_mods(
51 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_GRV,
52 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,
53 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,
54 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,
55 KC_LCTL, KC_LALT, KC_SPC, KC_RALT, MO(_FL), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT),
56
57 [_FL] = LAYOUT_wkl_ansi_3_right_mods(
58 /* esc 1 2 3 4 5 6 7 8 9 0 - = bkspc `~ */
59 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_PSCR,
60 /* tab Q W E R T Y U I O P [ ] \ delete*/
61 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS,KC_TRNS,KC_TRNS,KC_INS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PAUS, KC_TRNS, KC_TRNS,
62 /* caps A S D F G H J K L ; ' enter pg up*/
63 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_HOME,
64 /* shift Z X C V B N M , . / shift up pg dn*/
65 KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_RSFT, KC_VOLU, KC_END,
66 /* ctrl alt space alt fn ctrl left down right*/
67 KC_LCTL, KC_LALT, KC_TRNS, KC_RALT, KC_TRNS, KC_RCTL, KC_TRNS, KC_VOLD, KC_TRNS)
68};
diff --git a/keyboards/coseyfannitutti/discipline/rules.mk b/keyboards/coseyfannitutti/discipline/rules.mk
index ce71857a9..33a0b07dd 100644
--- a/keyboards/coseyfannitutti/discipline/rules.mk
+++ b/keyboards/coseyfannitutti/discipline/rules.mk
@@ -38,4 +38,4 @@ AUDIO_ENABLE = no # Audio output on port C6
38FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 38FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
39HD44780_ENABLE = no # Enable support for HD44780 based LCDs 39HD44780_ENABLE = no # Enable support for HD44780 based LCDs
40 40
41LAYOUTS = 65_ansi 41LAYOUTS = 65_ansi 65_iso
diff --git a/keyboards/coseyfannitutti/romeo/config.h b/keyboards/coseyfannitutti/romeo/config.h
index aa54ce250..49226ebfa 100644
--- a/keyboards/coseyfannitutti/romeo/config.h
+++ b/keyboards/coseyfannitutti/romeo/config.h
@@ -19,7 +19,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
19 19
20#include "config_common.h" 20#include "config_common.h"
21 21
22#define VENDOR_ID 0xFEED 22#define VENDOR_ID 0x6B62
23#define PRODUCT_ID 0x4069 23#define PRODUCT_ID 0x4069
24#define DEVICE_VER 0x0001 24#define DEVICE_VER 0x0001
25#define MANUFACTURER coseyfannitutti 25#define MANUFACTURER coseyfannitutti
@@ -50,8 +50,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
50/* COL2ROW, ROW2COL*/ 50/* COL2ROW, ROW2COL*/
51#define DIODE_DIRECTION COL2ROW 51#define DIODE_DIRECTION COL2ROW
52 52
53#define NO_UART 1
54
55/* 53/*
56 * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN. 54 * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
57 */ 55 */
diff --git a/keyboards/coseyfannitutti/romeo/keymaps/via/keymap.c b/keyboards/coseyfannitutti/romeo/keymaps/via/keymap.c
new file mode 100644
index 000000000..951acdca5
--- /dev/null
+++ b/keyboards/coseyfannitutti/romeo/keymaps/via/keymap.c
@@ -0,0 +1,43 @@
1/* Copyright 2019 COSEYFANNITUTTI
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16#include QMK_KEYBOARD_H
17
18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20 [0] = LAYOUT_all(
21 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
22 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT,
23 KC_LSFT, KC_SLSH, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT,
24 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_RCTL ),
25
26 [1] = LAYOUT_all(
27 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, RESET,
28 KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_ENT,
29 KC_VOLD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_SLSH, KC_TRNS,
30 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ),
31
32 [2] = LAYOUT_all(
33 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
34 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
35 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
36 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ),
37
38 [3] = LAYOUT_all(
39 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
40 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
41 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
42 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS )
43};
diff --git a/keyboards/coseyfannitutti/romeo/keymaps/via/rules.mk b/keyboards/coseyfannitutti/romeo/keymaps/via/rules.mk
new file mode 100644
index 000000000..d0e4977b8
--- /dev/null
+++ b/keyboards/coseyfannitutti/romeo/keymaps/via/rules.mk
@@ -0,0 +1,4 @@
1VIA_ENABLE = yes
2LTO_ENABLE = yes
3EXTRAKEY_ENABLE = no
4MOUSEKEY_ENABLE = no \ No newline at end of file
diff --git a/keyboards/dz60/rules.mk b/keyboards/dz60/rules.mk
index e5e9b8465..73b1d2ecb 100644
--- a/keyboards/dz60/rules.mk
+++ b/keyboards/dz60/rules.mk
@@ -25,4 +25,4 @@ BACKLIGHT_ENABLE = yes # Enable per-key backlight LEDs
25AUDIO_ENABLE = no # There is no speaker on this PCB 25AUDIO_ENABLE = no # There is no speaker on this PCB
26RGBLIGHT_ENABLE = yes # Enable the RGB underglow LEDs 26RGBLIGHT_ENABLE = yes # Enable the RGB underglow LEDs
27 27
28LAYOUTS = 60_ansi 60_ansi_split_bs_rshift 60_hhkb 60_iso 60_abnt2 28LAYOUTS = 60_ansi 60_ansi_split_bs_rshift 60_hhkb 60_iso 60_abnt2 60_tsangan_hhkb
diff --git a/keyboards/ergodox_ez/led_i2c.c b/keyboards/ergodox_ez/led_i2c.c
index 4a7a02f46..7c1ccdec5 100644
--- a/keyboards/ergodox_ez/led_i2c.c
+++ b/keyboards/ergodox_ez/led_i2c.c
@@ -27,19 +27,6 @@
27 27
28extern rgblight_config_t rgblight_config; 28extern rgblight_config_t rgblight_config;
29 29
30/*
31 * Forward declare internal functions
32 *
33 * The functions take a byte-array and send to the data output as WS2812 bitstream.
34 * The length is the number of bytes to send - three per LED.
35 */
36
37void ws2812_sendarray(uint8_t *array, uint16_t length);
38void ws2812_sendarray_mask(uint8_t *array, uint16_t length, uint8_t pinmask);
39
40
41
42
43void rgblight_set(void) { 30void rgblight_set(void) {
44 if (!rgblight_config.enable) { 31 if (!rgblight_config.enable) {
45 for (uint8_t i = 0; i < RGBLED_NUM; i++) { 32 for (uint8_t i = 0; i < RGBLED_NUM; i++) {
diff --git a/keyboards/gh60/revc/revc.h b/keyboards/gh60/revc/revc.h
index e183f776e..450c59020 100644
--- a/keyboards/gh60/revc/revc.h
+++ b/keyboards/gh60/revc/revc.h
@@ -142,3 +142,17 @@ inline void gh60_wasd_leds_off(void) { setPinInput(F7); }
142 { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \ 142 { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \
143 { K40, K41, K42, KC_NO, KC_NO, K45, KC_NO, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D } \ 143 { K40, K41, K42, KC_NO, KC_NO, K45, KC_NO, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D } \
144} 144}
145
146#define LAYOUT_60_tsangan_hhkb( \
147 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K49,\
148 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
149 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
150 K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3C, \
151 K40, K41, K42, K45, K4B, K4C, K4D \
152) { \
153 { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \
154 { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \
155 { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D }, \
156 { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \
157 { K40, K41, K42, KC_NO, KC_NO, K45, KC_NO, KC_NO, KC_NO, K49, KC_NO, K4B, K4C, K4D } \
158}
diff --git a/keyboards/gh60/revc/rules.mk b/keyboards/gh60/revc/rules.mk
index fb9ca646f..831de85d0 100644
--- a/keyboards/gh60/revc/rules.mk
+++ b/keyboards/gh60/revc/rules.mk
@@ -28,4 +28,4 @@ NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https:
28# UNICODE_ENABLE = YES # Unicode 28# UNICODE_ENABLE = YES # Unicode
29# BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID 29# BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID
30 30
31LAYOUTS = 60_ansi 60_iso 60_ansi_split_bs_rshift 31LAYOUTS = 60_ansi 60_iso 60_ansi_split_bs_rshift 60_tsangan_hhkb
diff --git a/keyboards/gingham/config.h b/keyboards/gingham/config.h
index 45ef573ce..653c0f627 100644
--- a/keyboards/gingham/config.h
+++ b/keyboards/gingham/config.h
@@ -24,7 +24,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
24#define DEVICE_VER 0x0001 24#define DEVICE_VER 0x0001
25#define MANUFACTURER Yiancar-Designs 25#define MANUFACTURER Yiancar-Designs
26#define PRODUCT Gingham 26#define PRODUCT Gingham
27#define DESCRIPTION A 65 persent keyboard with only through hole components 27#define DESCRIPTION A 60 percent keyboard with only through hole components
28 28
29/* key matrix size */ 29/* key matrix size */
30#define MATRIX_ROWS 5 30#define MATRIX_ROWS 5
@@ -240,8 +240,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
240#define LCD_E_PIN 1 //< pin for Enable line 240#define LCD_E_PIN 1 //< pin for Enable line
241#endif 241#endif
242*/ 242*/
243
244/* Bootmagic Lite key configuration */
245#define BOOTMAGIC_LITE_ROW 0
246#define BOOTMAGIC_LITE_COLUMN 0
247
diff --git a/keyboards/gingham/keymaps/default/keymap.c b/keyboards/gingham/keymaps/default/keymap.c
index b5b4de5ff..f54d6d8bd 100644
--- a/keyboards/gingham/keymaps/default/keymap.c
+++ b/keyboards/gingham/keymaps/default/keymap.c
@@ -21,7 +21,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
21[0] = LAYOUT_60_ansi_split_bs_rshift( /* Base */ 21[0] = LAYOUT_60_ansi_split_bs_rshift( /* Base */
22 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, 22 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,
23 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, 23 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
24 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, 24 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
25 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, 25 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT,
26 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1) , KC_APP, KC_RCTL), 26 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1) , KC_APP, KC_RCTL),
27 27
@@ -46,15 +46,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
46 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 46 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
47 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), 47 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
48}; 48};
49
50void matrix_init_user(void) {
51 //user initialization
52}
53
54void matrix_scan_user(void) {
55 //user matrix
56}
57
58bool process_record_user(uint16_t keycode, keyrecord_t *record) {
59 return true;
60} \ No newline at end of file
diff --git a/keyboards/gingham/keymaps/iso/keymap.c b/keyboards/gingham/keymaps/iso/keymap.c
index 0058df54a..6aae0ccf3 100644
--- a/keyboards/gingham/keymaps/iso/keymap.c
+++ b/keyboards/gingham/keymaps/iso/keymap.c
@@ -20,41 +20,29 @@
20const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 20const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
21[0] = LAYOUT_60_iso_split_bs_rshift( /* Base */ 21[0] = LAYOUT_60_iso_split_bs_rshift( /* Base */
22 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, 22 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,
23 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, 23 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC,
24 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, 24 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT,
25 KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, 25 KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT,
26 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1) , KC_APP, KC_RCTL), 26 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1) , KC_APP, KC_RCTL),
27 27
28[1] = LAYOUT_60_iso_split_bs_rshift( /* FN */ 28[1] = LAYOUT_60_iso_split_bs_rshift( /* FN */
29 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, 29 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,
30 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 , 30 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 ,
31 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, 31 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,
32 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 32 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
33 KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), 33 KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
34 34
35[2] = LAYOUT_60_iso_split_bs_rshift( /* Empty for dynamic keymaps */ 35[2] = LAYOUT_60_iso_split_bs_rshift( /* Empty for dynamic keymaps */
36 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 36 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
37 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 37 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
38 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 38 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
39 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 39 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
40 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), 40 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
41 41
42[3] = LAYOUT_60_iso_split_bs_rshift( /* Empty for dynamic keymaps */ 42[3] = LAYOUT_60_iso_split_bs_rshift( /* Empty for dynamic keymaps */
43 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 43 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
44 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 44 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
45 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 45 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
46 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 46 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
47 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), 47 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
48}; 48};
49
50void matrix_init_user(void) {
51 //user initialization
52}
53
54void matrix_scan_user(void) {
55 //user matrix
56}
57
58bool process_record_user(uint16_t keycode, keyrecord_t *record) {
59 return true;
60} \ No newline at end of file
diff --git a/keyboards/gingham/keymaps/via/keymap.c b/keyboards/gingham/keymaps/via/keymap.c
new file mode 100644
index 000000000..3f7f1c422
--- /dev/null
+++ b/keyboards/gingham/keymaps/via/keymap.c
@@ -0,0 +1,48 @@
1/* Copyright 2018 Yiancar
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16#include QMK_KEYBOARD_H
17
18// This keymaps is used for VIA, it reflects the default keymap.
19
20const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
21[0] = LAYOUT_60_iso_split_bs_rshift( /* Base */
22 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,
23 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC,
24 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT,
25 KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
26 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1) , KC_APP, KC_RCTL),
27
28[1] = LAYOUT_60_iso_split_bs_rshift( /* FN */
29 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,
30 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 ,
31 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,
32 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
33 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
34
35[2] = LAYOUT_60_iso_split_bs_rshift( /* Empty for dynamic keymaps */
36 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
37 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
38 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
39 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
40 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
41
42[3] = LAYOUT_60_iso_split_bs_rshift( /* Empty for dynamic keymaps */
43 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
44 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
45 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
46 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
47 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
48};
diff --git a/keyboards/gingham/keymaps/via/readme.md b/keyboards/gingham/keymaps/via/readme.md
new file mode 100644
index 000000000..a49e2c056
--- /dev/null
+++ b/keyboards/gingham/keymaps/via/readme.md
@@ -0,0 +1,3 @@
1# Compile with this keymap to use VIA
2
3Sadly right now when using VIA, extrakeys is disabled. This means volume control will not work.
diff --git a/keyboards/gingham/keymaps/via/rules.mk b/keyboards/gingham/keymaps/via/rules.mk
new file mode 100644
index 000000000..930e3552a
--- /dev/null
+++ b/keyboards/gingham/keymaps/via/rules.mk
@@ -0,0 +1,3 @@
1VIA_ENABLE = yes
2MOUSEKEY_ENABLE = no
3EXTRAKEY_ENABLE = no
diff --git a/keyboards/hhkb/hhkb.h b/keyboards/hhkb/hhkb.h
index 30dc039a4..668f78eec 100644
--- a/keyboards/hhkb/hhkb.h
+++ b/keyboards/hhkb/hhkb.h
@@ -21,6 +21,7 @@
21 { K70, K71, K72, K73, K74, K75, K76, KC_NO } \ 21 { K70, K71, K72, K73, K74, K75, K76, KC_NO } \
22} 22}
23 23
24#define LAYOUT_60_hhkb LAYOUT
24 25
25#define LAYOUT_JP( \ 26#define LAYOUT_JP( \
26 K02, K32, K62, K22, K12, K52, K72, KA2, K92, K82, KB2, KE2, KF2, KD2, KC2, \ 27 K02, K32, K62, K22, K12, K52, K72, KA2, K92, K82, KB2, KE2, KF2, KD2, KC2, \
diff --git a/keyboards/hhkb/rules.mk b/keyboards/hhkb/rules.mk
index fb1538d8a..68fb51a30 100644
--- a/keyboards/hhkb/rules.mk
+++ b/keyboards/hhkb/rules.mk
@@ -67,3 +67,5 @@ endif
67# debug-off: EXTRAFLAGS += -DNO_DEBUG -DNO_PRINT 67# debug-off: EXTRAFLAGS += -DNO_DEBUG -DNO_PRINT
68# debug-off: OPT_DEFS := $(filter-out -DCONSOLE_ENABLE,$(OPT_DEFS)) 68# debug-off: OPT_DEFS := $(filter-out -DCONSOLE_ENABLE,$(OPT_DEFS))
69# debug-off: all 69# debug-off: all
70
71LAYOUTS = 60_hhkb
diff --git a/keyboards/lattice60/config.h b/keyboards/lattice60/config.h
new file mode 100644
index 000000000..e864eeebb
--- /dev/null
+++ b/keyboards/lattice60/config.h
@@ -0,0 +1,105 @@
1/*
2Copyright 2019 Ethan Durrant (emdarcher)
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#pragma once
19
20#include "config_common.h"
21
22/* USB Device descriptor parameter */
23#define VENDOR_ID 0x16C0
24#define PRODUCT_ID 0x27DB
25#define DEVICE_VER 0x0001
26#define MANUFACTURER emdarcher
27#define PRODUCT LATTICE60
28#define DESCRIPTION A HHKB layout keyboard using only through-hole components.
29
30/* key matrix size */
31#define MATRIX_ROWS 8
32#define MATRIX_COLS 8
33
34/*
35 * Keyboard Matrix Assignments
36 *
37 * Change this to how you wired your keyboard
38 * COLS: AVR pins used for columns, left to right
39 * ROWS: AVR pins used for rows, top to bottom
40 * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
41 * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
42 *
43 */
44#define MATRIX_ROW_PINS { B2, B3, B4, B5, C0, C1, C2, C3 }
45#define MATRIX_COL_PINS { D7, D6, B0, D5, D1, D4, D0, B1 }
46#define UNUSED_PINS
47
48/* COL2ROW, ROW2COL*/
49#define DIODE_DIRECTION ROW2COL
50
51/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
52#define DEBOUNCE 5
53
54/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
55#define LOCKING_SUPPORT_ENABLE
56/* Locking resynchronize hack */
57#define LOCKING_RESYNC_ENABLE
58
59/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
60 * This is userful for the Windows task manager shortcut (ctrl+shift+esc).
61 */
62// #define GRAVE_ESC_CTRL_OVERRIDE
63
64/*
65 * Force NKRO
66 *
67 * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
68 * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
69 * makefile for this to work.)
70 *
71 * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
72 * until the next keyboard reset.
73 *
74 * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
75 * fully operational during normal computer usage.
76 *
77 * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
78 * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
79 * bootmagic, NKRO mode will always be enabled until it is toggled again during a
80 * power-up.
81 *
82 */
83//#define FORCE_NKRO
84
85/*
86 * Feature disable options
87 * These options are also useful to firmware size reduction.
88 */
89
90/* disable debug print */
91//#define NO_DEBUG
92
93/* disable print */
94//#define NO_PRINT
95
96/* disable action features */
97//#define NO_ACTION_LAYER
98//#define NO_ACTION_TAPPING
99//#define NO_ACTION_ONESHOT
100
101/* disable these deprecated features by default */
102#ifndef LINK_TIME_OPTIMIZATION_ENABLE
103 #define NO_ACTION_MACRO
104 #define NO_ACTION_FUNCTION
105#endif
diff --git a/keyboards/lattice60/info.json b/keyboards/lattice60/info.json
new file mode 100644
index 000000000..fd738945d
--- /dev/null
+++ b/keyboards/lattice60/info.json
@@ -0,0 +1,19 @@
1{
2 "keyboard_name": "lattice60",
3 "url": "",
4 "maintainer": "emdarcher",
5 "width": 15,
6 "height": 5,
7 "layouts": {
8 "LAYOUT_all": {
9 "layout": [
10 {"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"|", "x":13, "y":0}, {"label":"~", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"Backspace", "x":13.5, "y":1, "w":1.5}, {"label":"Control", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"", "x":14, "y":3}, {"label":"Alt", "x":1.5, "y":4}, {"label":"Win", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4}, {"x":5, "y":4, "w":2.25}, {"x":7.25, "y":4, "w":2.75}, {"x":10, "y":4}, {"label":"Win", "x":11, "y":4, "w":1.5}, {"label":"Alt", "x":12.5, "y":4}
11 ]
12 },
13 "LAYOUT_60_hhkb": {
14 "layout": [
15 {"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"|", "x":13, "y":0}, {"label":"~", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"Backspace", "x":13.5, "y":1, "w":1.5}, {"label":"Control", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"", "x":14, "y":3}, {"label":"Alt", "x":1.5, "y":4}, {"label":"Win", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"label":"Win", "x":11, "y":4, "w":1.5}, {"label":"Alt", "x":12.5, "y":4}
16 ]
17 }
18 }
19}
diff --git a/keyboards/lattice60/keymaps/default/config.h b/keyboards/lattice60/keymaps/default/config.h
new file mode 100644
index 000000000..88d933476
--- /dev/null
+++ b/keyboards/lattice60/keymaps/default/config.h
@@ -0,0 +1,20 @@
1/* Copyright 2019 Ethan Durrant (emdarcher)
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19// place overrides here
20#define GRAVE_ESC_ALT_OVERRIDE
diff --git a/keyboards/lattice60/keymaps/default/keymap.c b/keyboards/lattice60/keymaps/default/keymap.c
new file mode 100644
index 000000000..a5102070e
--- /dev/null
+++ b/keyboards/lattice60/keymaps/default/keymap.c
@@ -0,0 +1,40 @@
1/* Copyright 2019 Ethan Durrant (emdarcher)
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16#include QMK_KEYBOARD_H
17
18// Defines names for use in layer keycodes and the keymap
19enum layer_names {
20 _BASE,
21 _FN
22};
23
24const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
25 /* Base */
26 [_BASE] = LAYOUT_all(
27 KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV,
28 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
29 KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
30 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN),
31 KC_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RGUI, KC_RALT
32 ),
33 [_FN] = LAYOUT_all(
34 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL,
35 KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_BSPC,
36 KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT,
37 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS,
38 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
39 )
40};
diff --git a/keyboards/lattice60/keymaps/default/readme.md b/keyboards/lattice60/keymaps/default/readme.md
new file mode 100644
index 000000000..bde2ba9b4
--- /dev/null
+++ b/keyboards/lattice60/keymaps/default/readme.md
@@ -0,0 +1,5 @@
1# The default keymap for lattice60
2
3![layout](https://i.imgur.com/aW6PpmX.png)
4
5This keymap uses a default HHKB layout, with support for a split spacebar and the addition of GESC on the ESC key.
diff --git a/keyboards/lattice60/keymaps/default_hhkb/config.h b/keyboards/lattice60/keymaps/default_hhkb/config.h
new file mode 100644
index 000000000..88d933476
--- /dev/null
+++ b/keyboards/lattice60/keymaps/default_hhkb/config.h
@@ -0,0 +1,20 @@
1/* Copyright 2019 Ethan Durrant (emdarcher)
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19// place overrides here
20#define GRAVE_ESC_ALT_OVERRIDE
diff --git a/keyboards/lattice60/keymaps/default_hhkb/keymap.c b/keyboards/lattice60/keymaps/default_hhkb/keymap.c
new file mode 100644
index 000000000..ccdc10ab3
--- /dev/null
+++ b/keyboards/lattice60/keymaps/default_hhkb/keymap.c
@@ -0,0 +1,40 @@
1/* Copyright 2019 Ethan Durrant (emdarcher)
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16#include QMK_KEYBOARD_H
17
18// Defines names for use in layer keycodes and the keymap
19enum layer_names {
20 _BASE,
21 _FN
22};
23
24const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
25 /* Base */
26 [_BASE] = LAYOUT_60_hhkb(
27 KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV,
28 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
29 KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
30 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN),
31 KC_LALT, KC_LGUI, /* */ KC_SPC, KC_RGUI, KC_RALT
32 ),
33 [_FN] = LAYOUT_60_hhkb(
34 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL,
35 KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_BSPC,
36 KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT,
37 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS,
38 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
39 )
40};
diff --git a/keyboards/lattice60/keymaps/default_hhkb/readme.md b/keyboards/lattice60/keymaps/default_hhkb/readme.md
new file mode 100644
index 000000000..734ba74b9
--- /dev/null
+++ b/keyboards/lattice60/keymaps/default_hhkb/readme.md
@@ -0,0 +1,5 @@
1# The default HHKB keymap for lattice60
2
3![layout](https://i.imgur.com/aW6PpmX.png)
4
5This keymap uses a default HHKB layout, with the addition of GESC on the ESC key.
diff --git a/keyboards/lattice60/keymaps/emdarcher/config.h b/keyboards/lattice60/keymaps/emdarcher/config.h
new file mode 100644
index 000000000..88d933476
--- /dev/null
+++ b/keyboards/lattice60/keymaps/emdarcher/config.h
@@ -0,0 +1,20 @@
1/* Copyright 2019 Ethan Durrant (emdarcher)
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19// place overrides here
20#define GRAVE_ESC_ALT_OVERRIDE
diff --git a/keyboards/lattice60/keymaps/emdarcher/keymap.c b/keyboards/lattice60/keymaps/emdarcher/keymap.c
new file mode 100644
index 000000000..099e8e920
--- /dev/null
+++ b/keyboards/lattice60/keymaps/emdarcher/keymap.c
@@ -0,0 +1,48 @@
1/* Copyright 2019 Ethan Durrant (emdarcher)
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16#include QMK_KEYBOARD_H
17
18// Defines names for use in layer keycodes and the keymap
19enum layer_names {
20 _BASE,
21 _FN0,
22 _FN1
23};
24
25const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
26 /* Base */
27 [_BASE] = LAYOUT_60_hhkb(
28 KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV,
29 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
30 KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
31 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN0),
32 KC_LALT, KC_LGUI, /* */ KC_SPC, MO(_FN1), KC_RALT
33 ),
34 [_FN0] = LAYOUT_60_hhkb(
35 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL,
36 KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_BSPC,
37 KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT,
38 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_VOLD, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS,
39 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
40 ),
41 [_FN1] = LAYOUT_60_hhkb(
42 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_INS, KC_DEL,
43 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_BSPC,
44 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MRWD, KC_MFFD, KC_TRNS,
45 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS,
46 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
47 )
48};
diff --git a/keyboards/lattice60/keymaps/emdarcher/readme.md b/keyboards/lattice60/keymaps/emdarcher/readme.md
new file mode 100644
index 000000000..812351af4
--- /dev/null
+++ b/keyboards/lattice60/keymaps/emdarcher/readme.md
@@ -0,0 +1,5 @@
1# emdarcher's keymap for lattice60
2
3![layout](https://i.imgur.com/9g3fDqL.png)
4
5Modified function layer from the default HHKB functions, and added an extra layer for media controls.
diff --git a/keyboards/lattice60/lattice60.c b/keyboards/lattice60/lattice60.c
new file mode 100644
index 000000000..6cc0ea42f
--- /dev/null
+++ b/keyboards/lattice60/lattice60.c
@@ -0,0 +1,37 @@
1/* Copyright 2019 Ethan Durrant (emdarcher)
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include "lattice60.h"
18
19#define LED1_PIN C4
20#define LED2_PIN C5
21
22void keyboard_pre_init_kb(void){
23 //init the LED pins as outputs
24 setPinOutput(LED1_PIN);
25 setPinOutput(LED2_PIN);
26 //call any user initialization code
27 keyboard_pre_init_user();
28}
29
30bool led_update_kb(led_t led_state) {
31 bool res = led_update_user(led_state);
32 if(res){
33 //write the CAPS LOCK state on LED1
34 writePin(LED1_PIN, led_state.caps_lock);
35 }
36 return res;
37}
diff --git a/keyboards/lattice60/lattice60.h b/keyboards/lattice60/lattice60.h
new file mode 100644
index 000000000..d9f5f37de
--- /dev/null
+++ b/keyboards/lattice60/lattice60.h
@@ -0,0 +1,64 @@
1/* Copyright 2019 Ethan Durrant (emdarcher)
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#include "quantum.h"
20
21/* This is a shortcut to help you visually see your layout.
22 *
23 * The first section contains all of the arguments representing the physical
24 * layout of the board and position of the keys.
25 *
26 * The second converts the arguments into a two-dimensional array which
27 * represents the switch matrix.
28 */
29#define LAYOUT_all( \
30 k00, k04, k10, k14, k20, k24, k30, k34, k40, k44, k50, k54, k60, k64, k65, \
31 k01, k05, k11, k15, k21, k25, k31, k35, k41, k45, k51, k55, k61, k66, \
32 k02, k06, k12, k16, k22, k26, k32, k36, k42, k46, k52, k56, k62, \
33 k03, k07, k13, k17, k23, k27, k37, k43, k47, k53, k57, k63, k67, \
34 k70, k71, k72, k33, k74, k75, k76, k77 \
35) \
36{ \
37 { k00, k10, k20, k30, k40, k50, k60, k70 }, \
38 { k01, k11, k21, k31, k41, k51, k61, k71 }, \
39 { k02, k12, k22, k32, k42, k52, k62, k72 }, \
40 { k03, k13, k23, k33, k43, k53, k63, KC_NO }, \
41 { k04, k14, k24, k34, k44, k54, k64, k74 }, \
42 { k05, k15, k25, k35, k45, k55, k65, k75 }, \
43 { k06, k16, k26, k36, k46, k56, k66, k76 }, \
44 { k07, k17, k27, k37, k47, k57, k67, k77 } \
45}
46
47
48#define LAYOUT_60_hhkb( \
49 k00, k04, k10, k14, k20, k24, k30, k34, k40, k44, k50, k54, k60, k64, k65, \
50 k01, k05, k11, k15, k21, k25, k31, k35, k41, k45, k51, k55, k61, k66, \
51 k02, k06, k12, k16, k22, k26, k32, k36, k42, k46, k52, k56, k62, \
52 k03, k07, k13, k17, k23, k27, k37, k43, k47, k53, k57, k63, k67, \
53 k70, k71, k33, k76, k77 \
54) \
55{ \
56 { k00, k10, k20, k30, k40, k50, k60, k70 }, \
57 { k01, k11, k21, k31, k41, k51, k61, k71 }, \
58 { k02, k12, k22, k32, k42, k52, k62, KC_NO }, \
59 { k03, k13, k23, k33, k43, k53, k63, KC_NO }, \
60 { k04, k14, k24, k34, k44, k54, k64, KC_NO }, \
61 { k05, k15, k25, k35, k45, k55, k65, KC_NO }, \
62 { k06, k16, k26, k36, k46, k56, k66, k76 }, \
63 { k07, k17, k27, k37, k47, k57, k67, k77 } \
64}
diff --git a/keyboards/lattice60/readme.md b/keyboards/lattice60/readme.md
new file mode 100644
index 000000000..f5a3dc594
--- /dev/null
+++ b/keyboards/lattice60/readme.md
@@ -0,0 +1,21 @@
1# lattice60
2
3![lattice60](https://i.imgur.com/1TdrWii.jpg)
4
5A HHKB layout keyboard using only through-hole components.
6
7* Keyboard Maintainer: [emdarcher](https://github.com/emdarcher)
8* Hardware Supported: LATTICE60 PCB
9* Hardware Availability: [KeyHive](https://keyhive.xyz/)
10
11Make example for this keyboard (after setting up your build environment):
12
13 make lattice60:default
14
15To activate the USBasploader bootloader, hold the BOOT button down during power on or reset. LED2 should light up to indicate that the bootloader is active.
16
17Flash the firmware using the `make` command with the `flash` parameter, example below:
18
19 make lattice60:default:flash
20
21See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/lattice60/rules.mk b/keyboards/lattice60/rules.mk
new file mode 100644
index 000000000..2a1a52966
--- /dev/null
+++ b/keyboards/lattice60/rules.mk
@@ -0,0 +1,40 @@
1# MCU name
2MCU = atmega328p
3
4# Bootloader selection
5# Teensy halfkay
6# Pro Micro caterina
7# Atmel DFU atmel-dfu
8# LUFA DFU lufa-dfu
9# QMK DFU qmk-dfu
10# ATmega32A bootloadHID
11# ATmega328P USBasp
12BOOTLOADER = USBasp
13
14# Processor frequency
15F_CPU = 12000000
16
17# disable the debugging code
18OPT_DEFS = -DDEBUG_LEVEL=0
19
20# Build Options
21# change yes to no to disable
22#
23BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
24MOUSEKEY_ENABLE = yes # Mouse keys
25EXTRAKEY_ENABLE = yes # Audio control and System control
26CONSOLE_ENABLE = no # Console for debug
27COMMAND_ENABLE = no # Commands for debug and configuration
28# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
29SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
30# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
31NKRO_ENABLE = no # USB Nkey Rollover
32BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
33RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
34MIDI_ENABLE = no # MIDI support
35BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
36AUDIO_ENABLE = no # Audio output on port C6
37FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
38HD44780_ENABLE = no # Enable support for HD44780 based LCDs
39
40LAYOUTS = 60_hhkb
diff --git a/keyboards/plaid/keymaps/via/config.h b/keyboards/plaid/keymaps/via/config.h
new file mode 100644
index 000000000..4c84c55b8
--- /dev/null
+++ b/keyboards/plaid/keymaps/via/config.h
@@ -0,0 +1,6 @@
1// These VID/PID is not verified. Use at your own risk.
2#undef VENDOR_ID
3#undef PRODUCT_ID
4
5#define VENDOR_ID 0x0d39
6#define PRODUCT_ID 0x0001
diff --git a/keyboards/plaid/keymaps/via/keymap.c b/keyboards/plaid/keymaps/via/keymap.c
new file mode 100644
index 000000000..7bb28c07e
--- /dev/null
+++ b/keyboards/plaid/keymaps/via/keymap.c
@@ -0,0 +1,101 @@
1/* Copyright 2020 Takuya Urakawa (dm9records.com)
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include QMK_KEYBOARD_H
18
19#define LOWER FN_MO13
20#define RAISE FN_MO23
21
22const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
23
24/* Qwerty
25 * ,-----------------------------------------------------------------------------------.
26 * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
27 * |------+------+------+------+------+-------------+------+------+------+------+------|
28 * | Esc | A | S | D | F | G | H | J | K | L | ; | " |
29 * |------+------+------+------+------+------|------+------+------+------+------+------|
30 * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
31 * |------+------+------+------+------+------+------+------+------+------+------+------|
32 * | Ctrl | RAlt | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
33 * `-----------------------------------------------------------------------------------'
34 */
35[0] = LAYOUT_plaid_grid(
36 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
37 KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
38 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT ,
39 KC_LCTL, KC_RALT, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
40),
41
42/* Lower
43 * ,-----------------------------------------------------------------------------------.
44 * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
45 * |------+------+------+------+------+-------------+------+------+------+------+------|
46 * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
47 * |------+------+------+------+------+------|------+------+------+------+------+------|
48 * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | |
49 * |------+------+------+------+------+------+------+------+------+------+------+------|
50 * | | | | | | | | Next | Vol- | Vol+ | Play |
51 * `-----------------------------------------------------------------------------------'
52 */
53[1] = LAYOUT_plaid_grid(
54 KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
55 KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
56 _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______,
57 _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
58),
59
60/* Raise
61 * ,-----------------------------------------------------------------------------------.
62 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
63 * |------+------+------+------+------+-------------+------+------+------+------+------|
64 * | DEL | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
65 * |------+------+------+------+------+------|------+------+------+------+------+------|
66 * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |Pg Up |Pg Dn | |
67 * |------+------+------+------+------+------+------+------+------+------+------+------|
68 * | | | | | | | | | | | |
69 * `-----------------------------------------------------------------------------------'
70 */
71[2] = LAYOUT_plaid_grid(
72 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
73 KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
74 _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______,
75 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
76),
77
78/*
79 * ,-----------------------------------------------------------------------------------.
80 * | | | | | | | | | | | | |
81 * |------+------+------+------+------+-------------+------+------+------+------+------|
82 * | | | | | | | | | | | | |
83 * |------+------+------+------+------+------|------+------+------+------+------+------|
84 * | | | | | | | | | | | | |
85 * |------+------+------+------+------+------+------+------+------+------+------+------|
86 * | | | | | | | | | | | |
87 * `-----------------------------------------------------------------------------------'
88 */
89[3] = LAYOUT_plaid_grid(
90 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
91 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
92 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
93 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
94)
95
96};
97bool led_update_user(led_t led_state) {
98 writePin(LED_RED, led_state.caps_lock);
99 writePin(LED_GREEN, led_state.scroll_lock);
100 return false;
101}
diff --git a/keyboards/plaid/keymaps/via/readme.md b/keyboards/plaid/keymaps/via/readme.md
new file mode 100644
index 000000000..28dd67211
--- /dev/null
+++ b/keyboards/plaid/keymaps/via/readme.md
@@ -0,0 +1,8 @@
1# The via keymap for plaid
2
3This is an experimental. Use at your own risk.
4
5Layer3 is activated when Layer1 and 2 are both on.
6
7LED RED : CAPSLOCK
8LED GREEN : SCROLLLOCK
diff --git a/keyboards/plaid/keymaps/via/rules.mk b/keyboards/plaid/keymaps/via/rules.mk
new file mode 100644
index 000000000..930e3552a
--- /dev/null
+++ b/keyboards/plaid/keymaps/via/rules.mk
@@ -0,0 +1,3 @@
1VIA_ENABLE = yes
2MOUSEKEY_ENABLE = no
3EXTRAKEY_ENABLE = no
diff --git a/keyboards/planck/keymaps/sigul/keymap.c b/keyboards/planck/keymaps/sigul/keymap.c
index 687a0f28d..b4b983d9c 100644
--- a/keyboards/planck/keymaps/sigul/keymap.c
+++ b/keyboards/planck/keymaps/sigul/keymap.c
@@ -4,10 +4,10 @@
4 * Version 0.3 4 * Version 0.3
5 * 5 *
6 * Created by Silvio Gulizia on the basis of the default Planck keymap. 6 * Created by Silvio Gulizia on the basis of the default Planck keymap.
7 * thanks to SomeBuddyOnReddit, gepeirl, fauxpark, BXO511, drashna, ridingqwerty ... 7 * Thanks to SomeBuddyOnReddit, gepeirl, fauxpark, BXO511, drashna, and ridingqwerty.
8 * 8 *
9 * based on the original Planck layout 9 * The layout is based on the original Planck layout when used with language set to Italian on your Mac.
10 * Italian accented vowels "" and "à" have been moved from the QWERTY layer to the LOWER layers, while "è" and "ù" remain respectively on RAISE and LOWER. 10 * Accented vowels have been moverd on RAISE ("", "", and "") and LOWER ("", "", and "")
11 * 11 *
12 */ 12 */
13 13
@@ -24,7 +24,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
24 * |------+------+------+------+------+-------------+------+------+------+------+------| 24 * |------+------+------+------+------+-------------+------+------+------+------+------|
25 * |Esc/FN| A | S | D | F | G | H | J | K | L | ;: | '" | 25 * |Esc/FN| A | S | D | F | G | H | J | K | L | ;: | '" |
26 * |------+------+------+------+------+------|------+------+------+------+------+------| 26 * |------+------+------+------+------+------|------+------+------+------+------+------|
27 * | Shift| Z | X | C | V | FN/B | N | M | ,< | .> | /! |S/Ent | 27 * | Shift| Z | X | C | V | MS/B | N | M | ,< | .> | /! |S/Ent |
28 * |------+------+------+------+------+------+------+------+------+------+------+------| 28 * |------+------+------+------+------+------+------+------+------+------+------+------|
29 * | FN | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | 29 * | FN | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
30 * `-----------------------------------------------------------------------------------' 30 * `-----------------------------------------------------------------------------------'
@@ -37,13 +37,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
37), 37),
38 38
39/* Lower 39/* Lower
40 * added ò and à that were on the default Planck Querty layer when used with a device with lang set to Italian
41 * ,-----------------------------------------------------------------------------------. 40 * ,-----------------------------------------------------------------------------------.
42 * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del | 41 * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del |
43 * |------+------+------+------+------+-------------+------+------+------+------+------| 42 * |------+------+------+------+------+-------------+------+------+------+------+------|
44 * | | F1 | F2 | F3 | F4 | F5 | | _ | = | é | ò | à | 43 * | | F1 | F2 | F3 | F4 | F5 | | _ | = | | | |
45 * |------+------+------+------+------+------|------+------+------+------+------+------| 44 * |------+------+------+------+------+------|------+------+------+------+------+------|
46 * | | F6 | F7 | F8 | F9 | MOUSE|NUMPAD| | | { | } | | | 45 * | | F6 | F7 | F8 | F9 | |NUMPAD| | | { | } | | |
47 * |------+------+------+------+------+------+------+------+------+------+------+------| 46 * |------+------+------+------+------+------+------+------+------+------+------+------|
48 * | | | | | | | | | Next | Vol- | Vol+ | Play | 47 * | | | | | | | | | Next | Vol- | Vol+ | Play |
49 * `-----------------------------------------------------------------------------------' 48 * `-----------------------------------------------------------------------------------'
@@ -52,7 +51,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
52[_LOWER] = LAYOUT_ortho_4x12( 51[_LOWER] = LAYOUT_ortho_4x12(
53 IT_TILDE, IT_EXLM, IT_AT, IT_SHRP, IT_DLR, IT_PERC, IT_CRC, IT_AMPR, IT_ASTR, IT_LPRN, IT_RPRN, KC_DEL, 52 IT_TILDE, IT_EXLM, IT_AT, IT_SHRP, IT_DLR, IT_PERC, IT_CRC, IT_AMPR, IT_ASTR, IT_LPRN, IT_RPRN, KC_DEL,
54 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, S(IT_MINS), IT_EQL, S(IT_EACC), IT_OACC, IT_AACC, 53 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, S(IT_MINS), IT_EQL, S(IT_EACC), IT_OACC, IT_AACC,
55 _______, KC_F6, KC_F7, KC_F8, KC_F9, MOUSE, NUMPAD, S(IT_UACC), IT_PLMN, IT_LCBR, IT_RCBR, IT_PIPE, 54 _______, KC_F6, KC_F7, KC_F8, KC_F9, _______, NUMPAD, S(IT_UACC), IT_PLMN, IT_LCBR, IT_RCBR, IT_PIPE,
56 _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY 55 _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
57), 56),
58 57
@@ -60,9 +59,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
60 * ,-----------------------------------------------------------------------------------. 59 * ,-----------------------------------------------------------------------------------.
61 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | 60 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | |
62 * |------+------+------+------+------+-------------+------+------+------+------+------| 61 * |------+------+------+------+------+-------------+------+------+------+------+------|
63 * | | | SGCOM| DESK | | | | - | + | è | ì | ù | 62 * | | | SGCOM| DESK | | | | - | + | | | |
64 * |------+------+------+------+------+------|------+------+------+------+------+------| 63 * |------+------+------+------+------+------|------+------+------+------+------+------|
65 * | Caps | | PHONE| SVIV |VIVERE|MOUSE |NUMPAD| | | [ | ] | \ | 64 * | Caps | | PHONE| SVIV |VIVERE| |NUMPAD| | | [ | ] | \ |
66 * |------+------+------+------+------+------+------+------+------+------+------+------| 65 * |------+------+------+------+------+------+------+------+------+------+------+------|
67 * | | | | | | | | | Home | PgDn | PgUp | End | 66 * | | | | | | | | | Home | PgDn | PgUp | End |
68 * `-----------------------------------------------------------------------------------' 67 * `-----------------------------------------------------------------------------------'
@@ -70,7 +69,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
70[_RAISE] = LAYOUT_ortho_4x12( 69[_RAISE] = LAYOUT_ortho_4x12(
71 IT_GRAVE, IT_1, IT_2, IT_3, IT_4, IT_5, IT_6, IT_7, IT_8, IT_9, IT_0, _______, 70 IT_GRAVE, IT_1, IT_2, IT_3, IT_4, IT_5, IT_6, IT_7, IT_8, IT_9, IT_0, _______,
72 _______, _______, SECRET2, SECRET1, _______, _______, _______, IT_MINS, IT_PLUS, IT_EACC, IT_IACC, IT_UACC, 71 _______, _______, SECRET2, SECRET1, _______, _______, _______, IT_MINS, IT_PLUS, IT_EACC, IT_IACC, IT_UACC,
73 KC_CAPS, _______, SECRET0, SECRET3, SECRET4, MOUSE, NUMPAD, _______, _______, IT_LBRC, IT_RBRC, IT_BSLS, 72 KC_CAPS, _______, SECRET0, SECRET3, SECRET4, _______, NUMPAD, _______, _______, IT_LBRC, IT_RBRC, IT_BSLS,
74 _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END 73 _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
75), 74),
76 75
@@ -119,15 +118,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
119 * |------+------+------+------+------+------|------+------+------+------+------+------| 118 * |------+------+------+------+------+------|------+------+------+------+------+------|
120 * | | F6 | F7 | F8 | F9 | F10 | F1 | F2 | F3 | F4 | F5 | | 119 * | | F6 | F7 | F8 | F9 | F10 | F1 | F2 | F3 | F4 | F5 | |
121 * |------+------+------+------+------+------+------+------+------+------+------+------| 120 * |------+------+------+------+------+------+------+------+------+------+------+------|
122 * | | | | | | | | RAISE| | | | | 121 * | | | | | | | | | | | | |
123 * `-----------------------------------------------------------------------------------' 122 * `-----------------------------------------------------------------------------------'
124 */ 123 */
125 124
126[_FN] = LAYOUT_ortho_4x12( 125[_FN] = LAYOUT_ortho_4x12(
127 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL, 126 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL,
128 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, _______, 127 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, _______,
129 _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, 128 _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______,
130 _______, _______, _______, _______, _______, _______, _______, TG(_RAISE), _______, _______, _______, _______ 129 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
131), 130),
132 131
133/* MOUSE 132/* MOUSE
@@ -136,17 +135,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
136 * |------+------+------+------+------+-------------+------+------+------+------+------| 135 * |------+------+------+------+------+-------------+------+------+------+------+------|
137 * | | | | | | | | | | | | | 136 * | | | | | | | | | | | | |
138 * |------+------+------+------+------+------|------+------+------+------+------+------| 137 * |------+------+------+------+------+------|------+------+------+------+------+------|
139 * | | | | | | MOUSE| | | |Scr Up|Scr Do| | 138 * | | | | | | | | | But1 |Scr Up|Scr Do| But2 |
140 * |------+------+------+------+------+------+------+------+------+------+------+------| 139 * |------+------+------+------+------+------+------+------+------+------+------+------|
141 * | | | | |But1 | | |But2 | Left | Down | Up |Right | 140 * | | | | | | | | | Left | Down | Up |Right |
142 * `-----------------------------------------------------------------------------------' 141 * `-----------------------------------------------------------------------------------'
143 */ 142 */
144 143
145[_MOUSE] = LAYOUT_ortho_4x12( 144[_MOUSE] = LAYOUT_ortho_4x12(
146 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 145 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
147 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 146 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
148 _______, _______, _______, _______, _______, MOUSE, _______, _______, _______, KC_MS_WH_DOWN, KC_MS_WH_UP, _______, 147 _______, _______, _______, _______, _______, _______, _______, _______, KC_MS_BTN1, KC_MS_WH_DOWN, KC_MS_WH_UP, KC_MS_BTN2,
149 _______, _______, _______, _______, KC_MS_BTN1, _______, _______, KC_MS_BTN2, KC_MS_LEFT, KC_MS_DOWN, KC_MS_UP, KC_MS_RIGHT 148 _______, _______, _______, _______, _______, _______, _______, _______, KC_MS_LEFT, KC_MS_DOWN, KC_MS_UP, KC_MS_RIGHT
150) 149)
151 150
152}; 151};
diff --git a/keyboards/planck/keymaps/sigul/readme.md b/keyboards/planck/keymaps/sigul/readme.md
index 12dbab36b..11000967e 100644
--- a/keyboards/planck/keymaps/sigul/readme.md
+++ b/keyboards/planck/keymaps/sigul/readme.md
@@ -1,38 +1,32 @@
1# An ANSI Italian Planck Layout 1# An ANSI Italian Planck Layout
2by Silvio Gulizia 2by Silvio Gulizia
3 3
4The idea behind this layout is to have an American Keyboard with accented vowels (for Italian) to avoid switching language on the Mac every time you switch form English to Italian and being able to get the advantages that comes with the American (ANSI) keyboard when you write in English, code, or just want to use keybaord shorcuts (most of which are based on the American Keybaord).
5
6Some things I did, useful to you fi you want to have a look to the scheme or even replicate it for your language.
7
4- [x] add layer _FN with F keys and VI navigation 8- [x] add layer _FN with F keys and VI navigation
5- [x] add layer _MOUSE with mouse keys 9- [x] add layer _MOUSE with mouse keys
6- [x] add "MOUSEKEY_ENABLE = yes" in rules.mk to enable mouse keys 10- [x] add "MOUSEKEY_ENABLE = yes" in rules.mk to enable mouse keys (moved to users/sigul/rules.mk)
7- [x] add definition to control the mouse movementes in config.h 11- [x] add definition to control the mouse movementes in config.h (moved to users/sigul/config.h)
8- [x] add layer _NUMPAD to have a numpad 12- [x] add layer _NUMPAD to have a numpad
9- [x] add keycode NUMPAD to toggle _NUMPAD 13- [x] add keycode NUMPAD to toggle _NUMPAD (moved in users/sigul/sigul.h)
10- [x] modify layer ADJUST to simplify remembering commands 14- [x] modify layer ADJUST to simplify remembering commands (Reset on R, Eeprom reset on E and so)
11- [x] add custom keycodes ESCFN and TABFN on QUERTY to add the ability to use arrows with hjkl by activating layer FN when held with the definition LT(_FN,KC_ESC) and LT(_FN, KC_TAB) 15- [x] add custom keycodes ESCFN and TABFN on QUERTYi (default) layer to add the ability to use arrows with hjkl by activating layer FN when held with the definition LT(_FN,KC_ESC) and LT(_FN, KC_TAB)
12- [x] added "#define USB_MAX_POWER_CONSUMPTION 100" in config.h to use the keyboard with the iPad 16- [x] added "#define USB_MAX_POWER_CONSUMPTION 100" in config.h to use the keyboard with the iPad (moved to users/sigul/config.h)
13- [x] add "#define TAPPING_TOGGLE 3" in config.h to enable tapping toggle with 3 taps on LOWER, RAISE and MOUSE keys 17- [x] add "#define TAPPING_TOGGLE 3" in config.h to enable tapping toggle with 3 taps on LOWER and RAISE (moved to users/sigul/config.h)
14- [x] add tapping toggle to LOWER, RAISE and MOUSE keys 18- [x] add tapping toggle to LOWER, RAISE and MOUSE keys
15- [x] add "KEY_LOCK_ENABLE = yes" in rules.mk to enable caps lock
16- [x] add caps lock (KC_CAPS) to RAISE layer on the shift key 19- [x] add caps lock (KC_CAPS) to RAISE layer on the shift key
17- [x] Add del to a thumb layer 20- [x] Add del to a thumb layer
18- [x] remove key lock because it can only be used on standard keys
19- [x] Add MT(MOD_LSFT, KC_ENT) shift when pressed, enter when tapped 21- [x] Add MT(MOD_LSFT, KC_ENT) shift when pressed, enter when tapped
20- [x] add home, end, pgup and pgwon on _RAISE instead of arrows 22- [x] add home, end, pgup and pgwon on _RAISE instead of arrows
21- [x] add shift enter
22- [x] change LSFT to S for more legibility 23- [x] change LSFT to S for more legibility
23- [x] MT(kc) per usare shift come tasto es: MOD_LSFT(LCAG(KC_UP)). ??? MT(MOD_LSFT,KC_CAPS) 24- [x] add secrets on RAISE to be able to output personal data such as email, phone number, credit cards number...
24- [x] add macros on _FN to ouput website, email, tel, address, VAT ID credentials
25- [x] remap F keys upon numbers on _FN 25- [x] remap F keys upon numbers on _FN
26- [x] check audio functionality
27- [x] Add LT(_FN, IT_D) on D on the Querty layer
28 26
27To DO
29- [ ] Add Hyper on ESC or TAB to be able to use it for custom keyboard shortcuts 28- [ ] Add Hyper on ESC or TAB to be able to use it for custom keyboard shortcuts
30- [ ] consider using layer configuration to have just one keymap (see as a reference qmk_firmware/layouts/community/ortho_4x12/bredfield/) 29- [ ] consider using layer configuration to have just one keymap (see as a reference qmk_firmware/layouts/community/ortho_4x12/bredfield/)
31- [ ] add brightness up (KC_BRMU or KC_BRIU) and down (KC_BRMD or KC_BRID) 30- [ ] add brightness up (KC_BRMU or KC_BRIU) and down (KC_BRMD or KC_BRID)
32
33- [ ] add secrets file in user space to add passwords on a password layer
34- [ ] consider adding midi on the planck
35- [ ] consider adding AUTO_SHIFT_ENABLE = yes in rules.mk to be able to send shifted key depressing a key for twice the time 31- [ ] consider adding AUTO_SHIFT_ENABLE = yes in rules.mk to be able to send shifted key depressing a key for twice the time
36- [ ] revert IT_ to KC_ where not required 32- [ ] revert IT_ to KC_ where not required
37- [ ] add swap from Mac to Win key code on Adjust layer
38- [ ] evaluate to add auto shift
diff --git a/keyboards/reversestudio/decadepad/config.h b/keyboards/reversestudio/decadepad/config.h
new file mode 100644
index 000000000..0e6622daa
--- /dev/null
+++ b/keyboards/reversestudio/decadepad/config.h
@@ -0,0 +1,81 @@
1/*
2Copyright 2012 Jun Wako <wakojun@gmail.com>
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#pragma once
19
20#include "config_common.h"
21
22
23/* USB Device descriptor parameter */
24#define VENDOR_ID 0x5253
25#define PRODUCT_ID 0x4450
26#define DEVICE_VER 0x0001
27#define MANUFACTURER ReverseStudio
28#define PRODUCT DecadePad
29#define DESCRIPTION 6x4Pad
30
31/* key matrix size */
32#define MATRIX_ROWS 6
33#define MATRIX_COLS 4
34
35/* NIU Mini PCB default pin-out */
36#define MATRIX_ROW_PINS { F0, F1, F4, F5, F6, F7 }
37#define MATRIX_COL_PINS { D0, D1, D2, D3 }
38#define UNUSED_PINS
39
40/* COL2ROW or ROW2COL */
41#define DIODE_DIRECTION COL2ROW
42
43/* define if matrix has ghost */
44//#define MATRIX_HAS_GHOST
45
46/* number of backlight levels */
47/* Set 0 if debouncing isn't needed */
48#define DEBOUNCE 5
49
50/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
51#define LOCKING_SUPPORT_ENABLE
52
53/* Locking resynchronize hack */
54#define LOCKING_RESYNC_ENABLE
55
56#define RGB_DI_PIN D5
57#ifdef RGB_DI_PIN
58 #define RGBLIGHT_ANIMATIONS
59 #define RGBLED_NUM 20
60 #define RGBLIGHT_HUE_STEP 8
61 #define RGBLIGHT_SAT_STEP 8
62 #define RGBLIGHT_VAL_STEP 8
63#endif
64
65/*
66 * Feature disable options
67 * These options are also useful to firmware size reduction.
68 */
69
70/* disable debug print */
71//#define NO_DEBUG
72
73/* disable print */
74//#define NO_PRINT
75
76/* disable action features */
77//#define NO_ACTION_LAYER
78//#define NO_ACTION_TAPPING
79//#define NO_ACTION_ONESHOT
80//#define NO_ACTION_MACRO
81//#define NO_ACTION_FUNCTION \ No newline at end of file
diff --git a/keyboards/reversestudio/decadepad/decadepad.c b/keyboards/reversestudio/decadepad/decadepad.c
new file mode 100644
index 000000000..b1c3f58ce
--- /dev/null
+++ b/keyboards/reversestudio/decadepad/decadepad.c
@@ -0,0 +1,7 @@
1#include "decadepad.h"
2bool led_update_kb(led_t led_state) {
3 if (led_update_user(led_state)){
4 writePin(D4, led_state.num_lock);
5 }
6 return true;
7} \ No newline at end of file
diff --git a/keyboards/reversestudio/decadepad/decadepad.h b/keyboards/reversestudio/decadepad/decadepad.h
new file mode 100644
index 000000000..7da10094c
--- /dev/null
+++ b/keyboards/reversestudio/decadepad/decadepad.h
@@ -0,0 +1,19 @@
1#pragma once
2
3#include "quantum.h"
4#define LAYOUT_numpad_6x4( \
5 k01, k02, k03, k04, \
6 k11, k12, k13, k14, \
7 k21, k22, k23, \
8 k31, k32, k33, k34, \
9 k41, k42, k43, \
10 k51, k53, k54 \
11) \
12{ \
13 { k01, k02, k03, k04 }, \
14 { k11, k12, k13, k14 }, \
15 { k21, k22, k23, KC_NO }, \
16 { k31, k32, k33, k34 }, \
17 { k41, k42, k43, KC_NO }, \
18 { k51, KC_NO, k53, k54 }, \
19}
diff --git a/keyboards/reversestudio/decadepad/info.json b/keyboards/reversestudio/decadepad/info.json
new file mode 100644
index 000000000..6a2219a0f
--- /dev/null
+++ b/keyboards/reversestudio/decadepad/info.json
@@ -0,0 +1,40 @@
1{
2 "keyboard_name": "DecadePad",
3 "url": "",
4 "maintainer": "huajijam",
5 "width": 6,
6 "height": 4,
7 "layouts": {
8 "LAYOUT_numpad_6x4": {
9 "key_count": 21,
10 "layout": [
11 {"x":0, "y":0},
12 {"x":1, "y":0},
13 {"x":2, "y":0},
14 {"x":3, "y":0},
15
16 {"x":0, "y":1},
17 {"x":1, "y":1},
18 {"x":2, "y":1},
19 {"x":3, "y":1},
20
21 {"x":0, "y":2},
22 {"x":1, "y":2},
23 {"x":2, "y":2},
24
25 {"x":0, "y":3},
26 {"x":1, "y":3},
27 {"x":2, "y":3},
28 {"x":3, "y":2, "h":2},
29
30 {"x":0, "y":4},
31 {"x":1, "y":4},
32 {"x":2, "y":4},
33
34 {"x":0, "y":5, "w":2},
35 {"x":2, "y":5},
36 {"x":3, "y":4, "h":2}
37 ]
38 }
39 }
40} \ No newline at end of file
diff --git a/keyboards/reversestudio/decadepad/keymaps/default/keymap.c b/keyboards/reversestudio/decadepad/keymaps/default/keymap.c
new file mode 100644
index 000000000..695ceac30
--- /dev/null
+++ b/keyboards/reversestudio/decadepad/keymaps/default/keymap.c
@@ -0,0 +1,12 @@
1#include QMK_KEYBOARD_H
2
3const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
4 [0] = LAYOUT_numpad_6x4(
5 RGB_TOG, RGB_MOD, RGB_VAI, RGB_M_R,
6 KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
7 KC_P7, KC_P8, KC_P9,
8 KC_P4, KC_P5, KC_P6, KC_PPLS,
9 KC_P1, KC_P2, KC_P3,
10 KC_P0, KC_PDOT, KC_PENT
11 )
12};
diff --git a/keyboards/reversestudio/decadepad/keymaps/via/keymap.c b/keyboards/reversestudio/decadepad/keymaps/via/keymap.c
new file mode 100644
index 000000000..a9ca41918
--- /dev/null
+++ b/keyboards/reversestudio/decadepad/keymaps/via/keymap.c
@@ -0,0 +1,36 @@
1#include QMK_KEYBOARD_H
2
3const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
4 [0] = LAYOUT_numpad_6x4(
5 RGB_TOG, RGB_MOD, RGB_VAI, RGB_M_R,
6 KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
7 KC_P7, KC_P8, KC_P9,
8 KC_P4, KC_P5, KC_P6, KC_PPLS,
9 KC_P1, KC_P2, KC_P3,
10 KC_P0, KC_PDOT, KC_PENT
11 ),
12 [1] = LAYOUT_numpad_6x4(
13 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
14 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
15 KC_TRNS, KC_TRNS, KC_TRNS,
16 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
17 KC_TRNS, KC_TRNS, KC_TRNS,
18 KC_TRNS, KC_TRNS, KC_TRNS
19 ),
20 [2] = LAYOUT_numpad_6x4(
21 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
22 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
23 KC_TRNS, KC_TRNS, KC_TRNS,
24 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
25 KC_TRNS, KC_TRNS, KC_TRNS,
26 KC_TRNS, KC_TRNS, KC_TRNS
27 ),
28 [3] = LAYOUT_numpad_6x4(
29 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
30 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
31 KC_TRNS, KC_TRNS, KC_TRNS,
32 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
33 KC_TRNS, KC_TRNS, KC_TRNS,
34 KC_TRNS, KC_TRNS, KC_TRNS
35 )
36};
diff --git a/keyboards/reversestudio/decadepad/keymaps/via/rules.mk b/keyboards/reversestudio/decadepad/keymaps/via/rules.mk
new file mode 100644
index 000000000..bee21da52
--- /dev/null
+++ b/keyboards/reversestudio/decadepad/keymaps/via/rules.mk
@@ -0,0 +1,2 @@
1VIA_ENABLE = yes
2MOUSEKEY_ENABLE = no \ No newline at end of file
diff --git a/keyboards/reversestudio/decadepad/readme.md b/keyboards/reversestudio/decadepad/readme.md
new file mode 100644
index 000000000..8b4c9c491
--- /dev/null
+++ b/keyboards/reversestudio/decadepad/readme.md
@@ -0,0 +1,12 @@
1# DecadePad
2
3A 6x4 Standard Numpad
4
5* Keyboard Maintainer: [huajijam](https://github.com/huajijam)
6* Hardware Supported: DecadePad
7
8Make example for this keyboard (after setting up your build environment):
9
10 make reversestudio/decadepad:default
11
12See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/reversestudio/decadepad/rules.mk b/keyboards/reversestudio/decadepad/rules.mk
new file mode 100644
index 000000000..7730f09cd
--- /dev/null
+++ b/keyboards/reversestudio/decadepad/rules.mk
@@ -0,0 +1,38 @@
1# MCU name
2MCU = atmega32u4
3
4# Bootloader selection
5# Teensy halfkay
6# Pro Micro caterina
7# Atmel DFU atmel-dfu
8# LUFA DFU lufa-dfu
9# QMK DFU qmk-dfu
10# ATmega32A bootloadHID
11# ATmega328P USBasp
12BOOTLOADER = atmel-dfu
13
14# Build Options
15# change yes to no to disable
16#
17BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
18MOUSEKEY_ENABLE = no # Mouse keys
19EXTRAKEY_ENABLE = yes # Audio control and System control
20CONSOLE_ENABLE = yes # Console for debug
21COMMAND_ENABLE = no # Commands for debug and configuration
22# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
23SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
24# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
25NKRO_ENABLE = yes # USB Nkey Rollover
26BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
27RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
28MIDI_ENABLE = no # MIDI support
29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
30AUDIO_ENABLE = no # Audio output on port C6
31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
32HD44780_ENABLE = no # Enable support for HD44780 based LCDs
33UNICODE_ENABLE = yes # Unicode
34
35# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
36SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
37
38LAYOUTS = numpad_6x4 \ No newline at end of file
diff --git a/layouts/community/ergodox/xyverz/keymap.c b/layouts/community/ergodox/xyverz/keymap.c
index 3131c3064..c77920bb1 100644
--- a/layouts/community/ergodox/xyverz/keymap.c
+++ b/layouts/community/ergodox/xyverz/keymap.c
@@ -1,9 +1,11 @@
1/* 1/*
2 * About this keymap: 2 * About this keymap:
3 * 3 *
4 * The Dvorak layout shown herestems from my early Kinesis years, using the Contour PS/2 with a Dvorak 4 * The Dvorak layout shown here stems from my early Kinesis years, using the Contour PS/2 with a Dvorak
5 * software layout. Because of this, the RBRC and LBRC were on opposite sides of the board in the corner 5 * software layout. Because of this, the RBRC and LBRC were on opposite sides of the board in the corner
6 * keys. I've decided to continue using this layout with my ErgoDox. 6 * keys. When I originally set up this keymap, I'd decided to continue using this layout with my ErgoDox.
7 * I've since modified my layout to be more effective for me and to more closely match my other ortho
8 * keyboard layouts
7 * 9 *
8 * The QWERTY layout shown here is based entirely on the Kinesis Advantage layout, with the additional 10 * The QWERTY layout shown here is based entirely on the Kinesis Advantage layout, with the additional
9 * keys as shown in the diagrams. The Colemak layout is merely an adaptation of that. 11 * keys as shown in the diagrams. The Colemak layout is merely an adaptation of that.
@@ -11,39 +13,47 @@
11 * I've enabled persistent keymaps for Qwerty, Dvorak and Colemak layers, similar to the default Planck 13 * I've enabled persistent keymaps for Qwerty, Dvorak and Colemak layers, similar to the default Planck
12 * layouts. 14 * layouts.
13 * 15 *
16 * What's New:
17 *
18 * I've overhauled this Dvorak layout a bit to more match what I've got on my other Ortho boards. For
19 * some keys, I'm moving away from my old Kinesis keymap and adding the brackets and braces to the
20 * inner column vertical keys. I figure this will help me have better ease of use. In this update, I
21 * have also removed the keypad layer since I no longer use that at all, and have remapped the MEDIA
22 * layer a bit.
23 *
14 */ 24 */
15 25
16#include QMK_KEYBOARD_H 26#include QMK_KEYBOARD_H
17#include "debug.h"
18#include "action_layer.h"
19#include "eeconfig.h"
20 27
21extern keymap_config_t keymap_config; 28enum layer_names {
29 _DVORAK,
30 _QWERTY,
31 _COLEMAK,
32 _MEDIA,
33};
22 34
23#define _DV 0 // Dvorak layer 35enum custom_keycodes { DVORAK = SAFE_RANGE, QWERTY, COLEMAK };
24#define _QW 1 // Qwerty layer
25#define _CM 2 // Colemak layer
26#define _MD 3 // Media Layer
27#define _KP 4 // Keypad Layer
28 36
29// Macro name shortcuts 37// Aliases to make the keymap more uniform
30#define DVORAK M(_DV) 38#define GUI_END GUI_T(KC_END)
31#define QWERTY M(_QW) 39#define MEDIA MO(_MEDIA)
32#define COLEMAK M(_CM) 40#define MACLOCK LGUI(LCTL(KC_Q))
41
42// clang-format off
33 43
34const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 44const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
35 45
36/* Layer 0 : Dvorak 46/* Layer 0 : Dvorak
37 * ,--------------------------------------------------. ,--------------------------------------------------. 47 * ,--------------------------------------------------. ,--------------------------------------------------.
38 * | = | 1 | 2 | 3 | 4 | 5 | ESC | | ESC | 6 | 7 | 8 | 9 | 0 | / | 48 * | ESC | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | ~ |
39 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| 49 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
40 * | Tab | ' | , | . | P | Y | | | | F | G | C | R | L | \ | 50 * | Tab | ' | , | . | P | Y | | | | F | G | C | R | L | \ |
41 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| 51 * |--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------|
42 * | CapsLk | A | O | E | U | I |------| |------| D | H | T | N | S | - | 52 * | CapsLk | A | O | E | U | I |------| |------| D | H | T | N | S | - |
43 * |--------+------+------+------+------+------| _MD | | _KP |------+------+------+------+------+--------| 53 * |--------+------+------+------+------+------| { | | } |------+------+------+------+------+--------|
44 * | LShift | ; | Q | J | K | X | | | | B | M | W | V | Z | RShift | 54 * | LShift | ; | Q | J | K | X | | | | B | M | W | V | Z | RShift |
45 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' 55 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
46 * | LGUI | ` | INS | Left | Rght | | Up | Dn | [ | ] | RGUI | 56 * |MEDIA | ` | ~ | Left | Rght | | Up | Dn | / | = | MEDIA|
47 * `----------------------------------' `----------------------------------' 57 * `----------------------------------' `----------------------------------'
48 * ,-------------. ,-------------. 58 * ,-------------. ,-------------.
49 * | LCTL | LALT | | RALT | RCTL | 59 * | LCTL | LALT | | RALT | RCTL |
@@ -54,65 +64,69 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
54 * `--------------------' `--------------------' 64 * `--------------------' `--------------------'
55 * 65 *
56 */ 66 */
57[_DV] = LAYOUT_ergodox( 67
68[_DVORAK] = LAYOUT_ergodox(
58 // left hand 69 // left hand
59 KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC, 70 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, XXXXXXX,
60 KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, XXXXXXX, 71 KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_LBRC,
61 KC_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, 72 KC_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I,
62 KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, MO(_MD), 73 KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_LCBR,
63 KC_LGUI, KC_GRV, KC_INS, KC_LEFT, KC_RGHT, 74 MEDIA, KC_GRV, KC_TILD, KC_LEFT, KC_RGHT,
75 // left thumb
64 KC_LCTL, KC_LALT, 76 KC_LCTL, KC_LALT,
65 KC_HOME, 77 KC_HOME,
66 KC_BSPC, KC_DEL, KC_END, 78 KC_BSPC, KC_DEL, GUI_END,
67 // right hand 79 // right hand
68 KC_ESC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_SLSH, 80 XXXXXXX, KC_6, KC_7, KC_8, KC_9, KC_0, KC_SLSH,
69 XXXXXXX, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSLS, 81 KC_RBRC, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSLS,
70 KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, 82 KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS,
71 MO(_KP), KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, 83 KC_RCBR, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT,
72 KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, KC_RGUI, 84 KC_UP, KC_DOWN, KC_SLSH, KC_EQL, MEDIA,
73 KC_RALT, KC_RCTL, 85 // right thumb
86 KC_RGUI, KC_RCTL,
74 KC_PGUP, 87 KC_PGUP,
75 KC_PGDN, KC_ENT, KC_SPC 88 KC_PGDN, KC_ENT, KC_SPC
76 ), 89 ),
77 90
78
79/* Layer 1: QWERTY 91/* Layer 1: QWERTY
80 * ,--------------------------------------------------. ,--------------------------------------------------. 92 * ,--------------------------------------------------. ,--------------------------------------------------.
81 * | = | 1 | 2 | 3 | 4 | 5 | ESC | | ESC | 6 | 7 | 8 | 9 | 0 | - | 93 * | ESC | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | - |
82 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| 94 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
83 * | Tab | Q | W | E | R | T | | | | Y | U | I | O | P | \ | 95 * | Tab | Q | W | E | R | T | | | | Y | U | I | O | P | \ |
84 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| 96 * |--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------|
85 * | CapsLk | A | S | D | F | G |------| |------| H | J | K | L | ; | ' | 97 * | CapsLk | A | S | D | F | G |------| |------| H | J | K | L | ; | ' |
86 * |--------+------+------+------+------+------| _MD | | _KP |------+------+------+------+------+--------| 98 * |--------+------+------+------+------+------| { | | } |------+------+------+------+------+--------|
87 * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | 99 * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift |
88 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' 100 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
89 * | LGUI | ` | INS | Left | Rght | | Up | Dn | [ | ] | RGUI | 101 * |MEDIA | ` | = | Left | Rght | | Up | Dn | [ | ] | MEDIA|
90 * `----------------------------------' `----------------------------------' 102 * `----------------------------------' `----------------------------------'
91 * ,-------------. ,-------------. 103 * ,-------------. ,-------------.
92 * | LCTL | LALT | | RALT | RCTL | 104 * | LCTL | LALT | | RGUI | RCTL |
93 * ,------|------|------| |------+------+------. 105 * ,------|------|------| |------+------+------.
94 * | | | Home | | PgUp | | | 106 * | | | Home | | PgUp | | |
95 * | BkSp | Del |------| |------| Enter| Space| 107 * | BkSp | Del |------| |------| Enter| Space|
96 * | | | End | | PgDn | | | 108 * | | | End | | PgDn | | |
97 * `--------------------' `--------------------' 109 * `--------------------' `--------------------'
98 */ 110 */
99[_QW] = LAYOUT_ergodox( 111[_QWERTY] = LAYOUT_ergodox(
100 // left hand 112 // left hand
101 KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, 113 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, XXXXXXX,
102 KC_DEL, KC_Q, KC_W, KC_E, KC_R, KC_T, XXXXXXX, 114 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC,
103 KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, 115 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G,
104 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, MO(_MD), 116 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LCBR,
105 KC_LGUI, KC_GRV, KC_INS, KC_LEFT, KC_RGHT, 117 MEDIA, KC_GRV, KC_EQL, KC_LEFT, KC_RGHT,
118 // left thumb
106 KC_LCTL, KC_LALT, 119 KC_LCTL, KC_LALT,
107 KC_HOME, 120 KC_HOME,
108 KC_BSPC, KC_DEL, KC_END, 121 KC_BSPC, KC_DEL, KC_END,
109 // right hand 122 // right hand
110 KC_ESC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, 123 XXXXXXX, KC_6, KC_7, KC_8, KC_9, KC_0, KC_SLSH,
111 XXXXXXX, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, 124 KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
112 KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, 125 KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
113 MO(_KP), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, 126 KC_RCBR, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
114 KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, KC_RGUI, 127 KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, MEDIA,
115 KC_LALT, KC_LCTL, 128 // right thumb
129 KC_RGUI, KC_RCTL,
116 KC_PGUP, 130 KC_PGUP,
117 KC_PGDN, KC_ENT, KC_SPC 131 KC_PGDN, KC_ENT, KC_SPC
118 ), 132 ),
@@ -120,41 +134,43 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
120 134
121/* Layer 2 : Colemak 135/* Layer 2 : Colemak
122 * ,--------------------------------------------------. ,--------------------------------------------------. 136 * ,--------------------------------------------------. ,--------------------------------------------------.
123 * | = | 1 | 2 | 3 | 4 | 5 | ESC | | ESC | 6 | 7 | 8 | 9 | 0 | - | 137 * | ESC | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | - |
124 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| 138 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
125 * | Tab | Q | W | F | P | G | | | | J | L | U | Y | ; | \ | 139 * | Tab | Q | W | F | P | G | | | | J | L | U | Y | ; | \ |
126 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| 140 * |--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------|
127 * | BkSpc | A | R | S | T | D |------| |------| H | N | E | I | O | ' | 141 * | BkSpc | A | R | S | T | D |------| |------| H | N | E | I | O | ' |
128 * |--------+------+------+------+------+------| _MD | | _KP |------+------+------+------+------+--------| 142 * |--------+------+------+------+------+------| { | | } |------+------+------+------+------+--------|
129 * | LShift | Z | X | C | V | B | | | | K | M | , | . | / | RShift | 143 * | LShift | Z | X | C | V | B | | | | K | M | , | . | / | RShift |
130 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' 144 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
131 * | LGUI | ` | INS | Left | Rght | | Up | Dn | [ | ] | RGUI | 145 * | MEDIA| ` | = | Left | Rght | | Up | Dn | [ | ] | MEDIA|
132 * `----------------------------------' `----------------------------------' 146 * `----------------------------------' `----------------------------------'
133 * ,-------------. ,-------------. 147 * ,-------------. ,-------------.
134 * | LCTL | LALT | | RALT | RCTL | 148 * | LCTL | LALT | | RGUI | RCTL |
135 * ,------|------|------| |------+------+------. 149 * ,------|------|------| |------+------+------.
136 * | | | Home | | PgUp | | | 150 * | | | Home | | PgUp | | |
137 * | BkSp | Del |------| |------| Enter| Space| 151 * | BkSp | Del |------| |------| Enter| Space|
138 * | | | End | | PgDn | | | 152 * | | | End | | PgDn | | |
139 * `--------------------' `--------------------' 153 * `--------------------' `--------------------'
140 */ 154 */
141[_CM] = LAYOUT_ergodox( 155[_COLEMAK] = LAYOUT_ergodox(
142 // left hand 156 // left hand
143 KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, 157 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, XXXXXXX,
144 KC_DEL, KC_Q, KC_W, KC_F, KC_P, KC_G, XXXXXXX, 158 KC_DEL, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_LBRC,
145 KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, 159 KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D,
146 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, MO(_MD), 160 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LCBR,
147 KC_LGUI, KC_GRV, KC_INS, KC_LEFT, KC_RGHT, 161 MEDIA, KC_GRV, KC_EQL, KC_LEFT, KC_RGHT,
162 // left thumb
148 KC_LCTL, KC_LALT, 163 KC_LCTL, KC_LALT,
149 KC_HOME, 164 KC_HOME,
150 KC_BSPC, KC_DEL, KC_END, 165 KC_BSPC, KC_DEL, KC_END,
151 // right hand 166 // right hand
152 KC_ESC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, 167 XXXXXXX, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
153 XXXXXXX, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS, 168 KC_RBRC, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS,
154 KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, 169 KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
155 MO(_KP), KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, 170 KC_RCBR, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
156 KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, KC_RGUI, 171 KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, MEDIA,
157 KC_LALT, KC_LCTL, 172 // right thumb
173 KC_RGUI, KC_RCTL,
158 KC_PGUP, 174 KC_PGUP,
159 KC_PGDN, KC_ENT, KC_SPC 175 KC_PGDN, KC_ENT, KC_SPC
160 ), 176 ),
@@ -162,115 +178,64 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
162 178
163/* Layer 3 : Media layer 179/* Layer 3 : Media layer
164 * ,--------------------------------------------------. ,--------------------------------------------------. 180 * ,--------------------------------------------------. ,--------------------------------------------------.
165 * | TEENSY | F1 | F2 | F3 | F4 | F5 | F11 | | F12 | F6 | F7 | F8 | F9 | F10 | | 181 * | F11 | F1 | F2 | F3 | F4 | F5 |TEENSY| | | F6 | F7 | F8 | F9 | F10 | F11 |
166 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| 182 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
167 * | | | PrSc | ScLk | Paus | | | | | | Mute | Vol- | Vol+ | | | 183 * | | | | | | | | | | | PrSc | ScLk | Paus | | |
168 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| 184 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
169 * | | | | | | |------| |------| Stop | Prev | Play | Next | Sel | | 185 * | CapsLk | | Mute | Vol- | Vol+ | |------| |------| |Dvorak|Qwerty|Colmak| | |
170 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| 186 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
171 * | | |Dvorak|Qwerty|Colemk| | | | | | | | | | | 187 * | | Stop | Prev | Play | Next | Sel | | | | | | | | | |
172 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' 188 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
173 * | | | | | | | | | | | | 189 * | | | | | | | | | | | |
174 * `----------------------------------' `----------------------------------' 190 * `----------------------------------' `----------------------------------'
175 * ,-------------. ,-------------. 191 * ,-------------. ,-------------.
176 * | | | | | | 192 * | |MacLck| |MacLck| |
177 * ,------|------|------| |------+------+------. 193 * ,------|------|------| |------+------+------.
178 * | | | | | | | | 194 * | | | | | | | |
179 * | | |------| |------| | | 195 * | | |------| |------| | |
180 * | | | | | | | | 196 * | | | | | | | |
181 * `--------------------' `--------------------' 197 * `--------------------' `--------------------'
182 */ 198 */
183[_MD] = LAYOUT_ergodox( 199[_MEDIA] = LAYOUT_ergodox(
184 // left hand 200 // left hand
185 RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, 201 KC_F11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, RESET,
186 _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, _______, 202 _______, _______, _______, _______, _______, _______, _______,
187 _______, _______, _______, _______, _______, _______, 203 _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______,
188 _______, _______, DVORAK, QWERTY, COLEMAK, _______, _______, 204 KC_CAPS, KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MSEL, _______,
189 _______, _______, _______, _______, _______, 205 _______, _______, _______, _______, _______,
190 _______, _______, 206 _______, MACLOCK,
191 _______, 207 _______,
192 _______, _______, _______, 208 _______, _______, _______,
193 // right hand 209 // right hand
194 KC_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, 210 _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12,
195 _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, 211 _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, _______,
196 KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MSEL, _______, 212 _______, DVORAK, QWERTY, COLEMAK, _______, _______,
197 _______, _______, _______, _______, _______, _______, _______, 213 _______, _______, _______, _______, _______, _______, _______,
198 _______, _______, _______, _______, _______, 214 _______, _______, _______, _______, _______,
199 _______, _______, 215 MACLOCK, _______,
200 _______,
201 _______, _______, _______
202 ),
203
204
205/* Layer 4 : Keypad layer
206 * ,--------------------------------------------------. ,--------------------------------------------------.
207 * | Power | | | | | | | | | | NmLk | KP = | KP / | KP * | |
208 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
209 * | Sleep | | | | | | | | | | KP 7 | KP 8 | KP 9 | KP - | |
210 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
211 * | Wake | | | | | |------| |------| | KP 4 | KP 5 | KP 6 | KP + | |
212 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
213 * | | | | | | | | | | | KP 1 | KP 2 | KP 3 |KP Ent| |
214 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
215 * | | | | | | | KP 0 | | KP . |KP Ent| |
216 * `----------------------------------' `----------------------------------'
217 * ,-------------. ,-------------.
218 * | | | | | |
219 * ,------|------|------| |------+------+------.
220 * | | | | | | | |
221 * | | |------| |------| | |
222 * | | | | | | | |
223 * `--------------------' `--------------------'
224 */
225[_KP] = LAYOUT_ergodox(
226 // left hand
227 KC_PWR, _______, _______, _______, _______, _______, _______,
228 KC_SLEP, _______, _______, _______, _______, _______, _______,
229 KC_WAKE, _______, _______, _______, _______, _______,
230 _______, _______, _______, _______, _______, _______, _______,
231 _______, _______, _______, _______, _______,
232 _______, _______,
233 _______,
234 _______, _______, _______,
235 // right hand
236 _______, _______, KC_NLCK, KC_PEQL, KC_PSLS, KC_PAST, _______,
237 _______, _______, KC_P7, KC_P8, KC_P9, KC_PMNS, _______,
238 _______, KC_P4, KC_P5, KC_P6, KC_PPLS, _______,
239 _______, _______, KC_P1, KC_P2, KC_P3, KC_PENT, _______,
240 KC_P0, _______, KC_PDOT, KC_PENT, _______,
241 _______, _______,
242 _______, 216 _______,
243 _______, _______, _______ 217 _______, _______, KC_INS
244 ), 218 ),
245 219
246}; 220};
247 221
248void persistent_default_layer_set(uint16_t default_layer) { 222// clang-format on
249 eeconfig_update_default_layer(default_layer);
250 default_layer_set(default_layer);
251}
252 223
253 224bool process_record_user(uint16_t keycode, keyrecord_t *record) {
254const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) 225 if (record->event.pressed) {
255{ 226 switch (keycode) {
256 switch(id) { 227 case DVORAK:
257 case _DV: 228 set_single_persistent_default_layer(_DVORAK);
258 if (record->event.pressed) { 229 return false;
259 persistent_default_layer_set(1UL<<_DV); 230 case QWERTY:
260 } 231 set_single_persistent_default_layer(_QWERTY);
261 break; 232 return false;
262 case _QW: 233 case COLEMAK:
263 if (record->event.pressed) { 234 set_single_persistent_default_layer(_COLEMAK);
264 persistent_default_layer_set(1UL<<_QW); 235 return false;
265 } 236 }
266 break; 237 }
267 case _CM: 238 return true;
268 if (record->event.pressed) {
269 persistent_default_layer_set(1UL<<_CM);
270 }
271 break;
272 }
273 return MACRO_NONE;
274}; 239};
275 240
276// Runs just one time when the keyboard initializes. 241// Runs just one time when the keyboard initializes.
diff --git a/layouts/community/ergodox/xyverz/readme.md b/layouts/community/ergodox/xyverz/readme.md
index 134fb50af..51315803b 100644
--- a/layouts/community/ergodox/xyverz/readme.md
+++ b/layouts/community/ergodox/xyverz/readme.md
@@ -2,12 +2,16 @@
2 2
3## About this keymap: 3## About this keymap:
4 4
5The Dvorak layout shown here stems from my early Kinesis years, using the Contour PS/2 with a Dvorak software layout. ~~Because of this, the RBRC and LBRC were on opposite sides of the board in the corner keys. I've decided to continue using this layout with my ErgoDox.~~ I've decided do give the normal placing of the SLSH, EQL, and xBRC keys a try, after using a different keyboard for a while... 5The Dvorak layout shown here stems from my early Kinesis years, using the Contour PS/2 with a Dvorak software layout. Because of this, the RBRC and LBRC were on opposite sides of the board in the corner keys. When I originally set up this keymap, I had decided to continue using this layout with my ErgoDox. I've since modified my layout to be more effective for me and to more closely match my other ortholinear keyboard layouts
6 6
7The QWERTY layout shown here is based entirely on the Kinesis Advantage layout, with the additional keys as shown in the diagrams. The Colemak layout is merely an adaptation of that. 7The QWERTY layout shown here is based entirely on the Kinesis Advantage layout, with the additional keys as shown in the diagrams. The Colemak layout is merely an adaptation of that.
8 8
9I've enabled persistent keymaps for Qwerty, Dvorak and Colemak layers, similar to the default Planck layouts. 9I've enabled persistent keymaps for Qwerty, Dvorak and Colemak layers, similar to the default Planck layouts.
10 10
11## What's New:
12
13* I've overhauled this Dvorak layout a bit to more match what I've got on my other Ortho boards. For some keys, I'm moving away from my old Kinesis keymap and adding the brackets and braces to the inner column vertical keys. I figure this will help me have better ease of use. In this update, I have also removed the keypad layer since I no longer use that at all, and have remapped the MEDIA layer a bit.
14
11## Still to do: 15## Still to do:
12 16
13 * Need to figure out a better position for the ESC key. 17 * Need to figure out a better position for the ESC key.
@@ -16,107 +20,84 @@ I've enabled persistent keymaps for Qwerty, Dvorak and Colemak layers, similar t
16 20
17### Layer 0: Dvorak layer 21### Layer 0: Dvorak layer
18 22
19 ,--------------------------------------------------.,--------------------------------------------------. 23 ,--------------------------------------------------. ,--------------------------------------------------.
20 | = | 1 | 2 | 3 | 4 | 5 | ESC || ESC | 6 | 7 | 8 | 9 | 0 | / | 24 | ESC | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | ~ |
21 |--------+------+------+------+------+-------------||------+------+------+------+------+------+--------| 25 |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
22 | Tab | ' | , | . | P | Y | || | F | G | C | R | L | \ | 26 | Tab | ' | , | . | P | Y | | | | F | G | C | R | L | \ |
23 |--------+------+------+------+------+------| || |------+------+------+------+------+--------| 27 |--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------|
24 | CapsLk | A | O | E | U | I |------||------| D | H | T | N | S | - | 28 | CapsLk | A | O | E | U | I |------| |------| D | H | T | N | S | - |
25 |--------+------+------+------+------+------| _MD || _KP |------+------+------+------+------+--------| 29 |--------+------+------+------+------+------| { | | } |------+------+------+------+------+--------|
26 | LShift | Z | X | C | V | X | || | B | M | W | V | Z | RShift | 30 | LShift | ; | Q | J | K | X | | | | B | M | W | V | Z | RShift |
27 `--------+------+------+------+------+-------------'`-------------+------+------+------+------+--------' 31 `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
28 | LGUI | ` | INS | Left | Rght | | Up | Dn | [ | ] | RGUI | 32 |MEDIA | ` | ~ | Left | Rght | | Up | Dn | / | = | MEDIA|
29 `----------------------------------' `----------------------------------' 33 `----------------------------------' `----------------------------------'
30 ,-------------.,-------------. 34 ,-------------. ,-------------.
31 | LCtr | LAlt || Ralt | RCtr | 35 | LCTL | LALT | | RGUI | RCTL |
32 ,------|------|------||------+------+------. 36 ,------|------|------| |------+------+------.
33 | | | Home || PgUp | | | 37 | | | Home | | PgUp | | |
34 | BkSp | Del |------||------| Enter| Space| 38 | BkSp | Del |------| |------| Enter| Space|
35 | | | End || PgDn | | | 39 | | | End | | PgDn | | |
36 `--------------------'`--------------------' 40 `--------------------' `--------------------'
37 41
38### Layer 1: QWERTY layer 42### Layer 1: QWERTY layer
39 43
40 ,--------------------------------------------------.,--------------------------------------------------. 44 ,--------------------------------------------------. ,--------------------------------------------------.
41 | = | 1 | 2 | 3 | 4 | 5 | ESC || ESC | 6 | 7 | 8 | 9 | 0 | - | 45 | ESC | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | - |
42 |--------+------+------+------+------+-------------||------+------+------+------+------+------+--------| 46 |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
43 | Tab | Q | W | E | R | T | || | Y | U | I | O | P | \ | 47 | Tab | Q | W | E | R | T | | | | Y | U | I | O | P | \ |
44 |--------+------+------+------+------+------| || |------+------+------+------+------+--------| 48 |--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------|
45 | CapsLk | A | S | D | F | G |------||------| H | J | K | L | ; | ' | 49 | CapsLk | A | S | D | F | G |------| |------| H | J | K | L | ; | ' |
46 |--------+------+------+------+------+------| _MD || _KP |------+------+------+------+------+--------| 50 |--------+------+------+------+------+------| { | | } |------+------+------+------+------+--------|
47 | LShift | Z | X | C | V | B | || | N | M | , | . | / | RShift | 51 | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift |
48 `--------+------+------+------+------+-------------'`-------------+------+------+------+------+--------' 52 `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
49 | LGUI | ` | INS | Left | Rght | | Up | Dn | [ | ] | RGUI | 53 |MEDIA | ` | = | Left | Rght | | Up | Dn | [ | ] | MEDIA|
50 `----------------------------------' `----------------------------------' 54 `----------------------------------' `----------------------------------'
51 ,-------------.,-------------. 55 ,-------------. ,-------------.
52 | LCtr | LAlt || Ralt | RCtr | 56 | LCTL | LALT | | RGUI | RCTL |
53 ,------|------|------||------+------+------. 57 ,------|------|------| |------+------+------.
54 | | | Home || PgUp | | | 58 | | | Home | | PgUp | | |
55 | BkSp | Del |------||------| Enter| Space| 59 | BkSp | Del |------| |------| Enter| Space|
56 | | | End || PgDn | | | 60 | | | End | | PgDn | | |
57 `--------------------'`--------------------' 61 `--------------------' `--------------------'
58 62
59### Keymap 2: Colemak layer 63### Keymap 2: Colemak layer
60 64
61 ,--------------------------------------------------.,--------------------------------------------------. 65 ,--------------------------------------------------. ,--------------------------------------------------.
62 | = | 1 | 2 | 3 | 4 | 5 | ESC || ESC | 6 | 7 | 8 | 9 | 0 | - | 66 | ESC | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | - |
63 |--------+------+------+------+------+-------------||------+------+------+------+------+------+--------| 67 |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
64 | Tab | Q | W | F | P | G | || | J | L | U | Y | ; | \ | 68 | Tab | Q | W | F | P | G | | | | J | L | U | Y | ; | \ |
65 |--------+------+------+------+------+------| || |------+------+------+------+------+--------| 69 |--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------|
66 | BkSpc | A | R | S | T | D |------||------| H | N | E | I | O | ' | 70 | BkSpc | A | R | S | T | D |------| |------| H | N | E | I | O | ' |
67 |--------+------+------+------+------+------| _MD || _KP |------+------+------+------+------+--------| 71 |--------+------+------+------+------+------| { | | } |------+------+------+------+------+--------|
68 | LShift | Z | X | C | V | B | || | K | M | , | . | / | RShift | 72 | LShift | Z | X | C | V | B | | | | K | M | , | . | / | RShift |
69 `--------+------+------+------+------+-------------'`-------------+------+------+------+------+--------' 73 `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
70 | LGUI | ` | INS | Left | Rght | | Up | Dn | [ | ] | RGUI | 74 | MEDIA| ` | = | Left | Rght | | Up | Dn | [ | ] | MEDIA|
71 `----------------------------------' `----------------------------------' 75 `----------------------------------' `----------------------------------'
72 ,-------------.,-------------. 76 ,-------------. ,-------------.
73 | LCtr | LAlt || Ralt | RCtr | 77 | LCTL | LALT | | RGUI | RCTL |
74 ,------|------|------||------+------+------. 78 ,------|------|------| |------+------+------.
75 | | | Home || PgUp | | | 79 | | | Home | | PgUp | | |
76 | BkSp | Del |------||------| Enter| Space| 80 | BkSp | Del |------| |------| Enter| Space|
77 | | | End || PgDn | | | 81 | | | End | | PgDn | | |
78 `--------------------'`--------------------' 82 `--------------------' `--------------------'
79 83
80### layer 3 : Media layer 84### layer 3 : Media layer
81 85
82 ,--------------------------------------------------.,--------------------------------------------------. 86 ,--------------------------------------------------. ,--------------------------------------------------.
83 | TEENSY | F1 | F2 | F3 | F4 | F5 | F11 || F12 | F6 | F7 | F8 | F9 | F10 | | 87 | F11 | F1 | F2 | F3 | F4 | F5 |TEENSY| | | F6 | F7 | F8 | F9 | F10 | F11 |
84 |--------+------+------+------+------+-------------||------+------+------+------+------+------+--------| 88 |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
85 | | | PrSc | ScLk | Paus | | || | | Mute | Vol- | Vol+ | | | 89 | | | | | | | | | | | PrSc | ScLk | Paus | | |
86 |--------+------+------+------+------+------| || |------+------+------+------+------+--------| 90 |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
87 | | | | | | |------||------| Stop | Prev | Play | Next | Sel | | 91 | CapsLk | | Mute | Vol- | Vol+ | |------| |------| |Dvorak|Qwerty|Colmak| | |
88 |--------+------+------+------+------+------| || |------+------+------+------+------+--------| 92 |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
89 | | |Dvorak|Qwerty|Colemk| | || | | | | | | | 93 | | Stop | Prev | Play | Next | Sel | | | | | | | | | |
90 `--------+------+------+------+------+-------------'`-------------+------+------+------+------+--------' 94 `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
91 | | | | | | | | | | | | 95 | | | | | | | | | | | |
92 `----------------------------------' `----------------------------------' 96 `----------------------------------' `----------------------------------'
93 ,-------------.,-------------. 97 ,-------------. ,-------------.
94 | | || | | 98 | |MacLck| |MacLck| |
95 ,------|------|------||------+------+------. 99 ,------|------|------| |------+------+------.
96 | | | || | | | 100 | | | | | | | |
97 | | |------||------| | | 101 | | |------| |------| | |
98 | | | || | | | 102 | | | | | | | |
99 `--------------------'`--------------------' 103 `--------------------' `--------------------' \ No newline at end of file
100
101
102
103### Keymap 4: Keypad layer
104
105 ,--------------------------------------------------.,--------------------------------------------------.
106 | Power | | | | | | || | | NmLk | KP = | KP / | KP * | |
107 |--------+------+------+------+------+-------------||------+------+------+------+------+------+--------|
108 | Sleep | | | | | | || | | KP 7 | KP 8 | KP 9 | KP - | |
109 |--------+------+------+------+------+------| || |------+------+------+------+------+--------|
110 | Wake | | | | | |------||------| | KP 4 | KP 5 | KP 6 | KP + | |
111 |--------+------+------+------+------+------| || |------+------+------+------+------+--------|
112 | | | | | | | || | | KP 1 | KP 2 | KP 3 |KP Ent| |
113 `--------+------+------+------+------+-------------'`-------------+------+------+------+------+--------'
114 | | | | | | | KP 0 | | KP . |KP Ent| |
115 `----------------------------------' `----------------------------------'
116 ,-------------.,-------------.
117 | | || | |
118 ,------|------|------||------+------+------.
119 | | | || | | |
120 | | |------||------| | |
121 | | | || | | |
122 `--------------------'`--------------------'
diff --git a/layouts/community/ortho_4x12/xyverz/keymap.c b/layouts/community/ortho_4x12/xyverz/keymap.c
index c9811ea4b..de270b469 100644
--- a/layouts/community/ortho_4x12/xyverz/keymap.c
+++ b/layouts/community/ortho_4x12/xyverz/keymap.c
@@ -8,6 +8,7 @@ enum custom_keycodes { QWERTY = SAFE_RANGE, COLEMAK, DVORAK, LOWER, RAISE, ADJUS
8#define GUIBSPC GUI_T(KC_BSPC) // GUI when held, BSPC when tapped. 8#define GUIBSPC GUI_T(KC_BSPC) // GUI when held, BSPC when tapped.
9#define RGB_SWR RGB_M_SW // Swirl Animation alias 9#define RGB_SWR RGB_M_SW // Swirl Animation alias
10#define RGB_SNK RGB_M_SN // Snake Animation alias 10#define RGB_SNK RGB_M_SN // Snake Animation alias
11#define MACLOCK LGUI(LCTL(KC_Q)) // Lock my MacBook!
11 12
12// clang-format off 13// clang-format off
13const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 14const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
@@ -78,8 +79,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
78 * `-----------------------------------------------------------------------------------' 79 * `-----------------------------------------------------------------------------------'
79 */ 80 */
80[_LOWER] = LAYOUT_ortho_4x12 ( \ 81[_LOWER] = LAYOUT_ortho_4x12 ( \
81 KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, \ 82 KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PIPE, \
82 KC_CAPS, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, \ 83 KC_CAPS, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, _______, \
83 _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, _______, _______, _______, _______, _______, \ 84 _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, _______, _______, _______, _______, _______, \
84 BL_STEP, _______, KC_HOME, KC_END, _______, KC_DEL, KC_INS, _______, KC_PGUP, KC_PGDN, _______, _______ \ 85 BL_STEP, _______, KC_HOME, KC_END, _______, KC_DEL, KC_INS, _______, KC_PGUP, KC_PGDN, _______, _______ \
85 ), 86 ),
@@ -96,8 +97,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
96 * `-----------------------------------------------------------------------------------' 97 * `-----------------------------------------------------------------------------------'
97 */ 98 */
98[_RAISE] = LAYOUT_ortho_4x12 ( \ 99[_RAISE] = LAYOUT_ortho_4x12 ( \
99 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, \ 100 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, \
100 KC_CAPS, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, \ 101 KC_CAPS, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______, \
101 _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, _______, _______, _______, _______, _______, \ 102 _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, _______, _______, _______, _______, _______, \
102 BL_STEP, _______, KC_HOME, KC_END, _______, KC_DEL, KC_INS, _______, KC_PGUP, KC_PGDN, _______, _______ \ 103 BL_STEP, _______, KC_HOME, KC_END, _______, KC_DEL, KC_INS, _______, KC_PGUP, KC_PGDN, _______, _______ \
103 ), 104 ),
@@ -110,14 +111,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
110 * |------+------+------+------+------+------|------+------+------+------+------+------| 111 * |------+------+------+------+------+------|------+------+------+------+------+------|
111 * |RGB ON| MODE |RGB SW|RGB KN|RGB GR| HUE- | HUE+ | HUE- | SAT+ | SAT- | VAL+ | VAL- | 112 * |RGB ON| MODE |RGB SW|RGB KN|RGB GR| HUE- | HUE+ | HUE- | SAT+ | SAT- | VAL+ | VAL- |
112 * |------+------+------+------+------+------+------+------+------+------+------+------| 113 * |------+------+------+------+------+------+------+------+------+------+------+------|
113 * | | | | | | | | | | | | | 114 * | | | | | |MacLck| | | | | | |
114 * `-----------------------------------------------------------------------------------' 115 * `-----------------------------------------------------------------------------------'
115 */ 116 */
116[_ADJUST] = LAYOUT_ortho_4x12 ( \ 117[_ADJUST] = LAYOUT_ortho_4x12 ( \
117 KC_F11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12 , \ 118 KC_F11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12 , \
118 _______, RESET, RGB_M_P, RGB_M_B, RGB_M_R, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, \ 119 _______, RESET, RGB_M_P, RGB_M_B, RGB_M_R, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, \
119 RGB_TOG, RGB_MOD, RGB_SWR, RGB_M_K, RGB_M_G, RGB_HUI, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, \ 120 RGB_TOG, RGB_MOD, RGB_SWR, RGB_M_K, RGB_M_G, RGB_HUI, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, \
120 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ 121 _______, _______, _______, _______, MACLOCK, _______, _______, _______, _______, _______, _______, _______ \
121 ) 122 )
122}; 123};
123// clang-format on 124// clang-format on
diff --git a/layouts/community/ortho_4x12/xyverz/readme.md b/layouts/community/ortho_4x12/xyverz/readme.md
index d6614d956..2ee86792e 100644
--- a/layouts/community/ortho_4x12/xyverz/readme.md
+++ b/layouts/community/ortho_4x12/xyverz/readme.md
@@ -6,9 +6,12 @@ I'm moving all my 4x12s to the same keymap since I pretty much use it across all
6 6
7This revision includes this documentation and introduction of the individual RGB mode keys in the `ADJUST` layer. 7This revision includes this documentation and introduction of the individual RGB mode keys in the `ADJUST` layer.
8 8
9## What's New?
10 * Added the Mac Lock macro of CMD+CTRL+Q to lock the screen on my mac.
11 * Changed the location of the `pipe` and `backslash` keys to match my other layouts.
12
9## Still to do: 13## Still to do:
10 14
11 * Update layout files to match current standards.
12 * Enjoy this revision; figure out new things later. 15 * Enjoy this revision; figure out new things later.
13 16
14### Qwerty layer 17### Qwerty layer
@@ -57,9 +60,9 @@ This revision includes this documentation and introduction of the individual RGB
57 60
58``` 61```
59 ,-----------------------------------------------------------------------------------. 62 ,-----------------------------------------------------------------------------------.
60 | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | | 63 | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | | |
61 |------+------+------+------+------+-------------+------+------+------+------+------| 64 |------+------+------+------+------+-------------+------+------+------+------+------|
62 | Caps | | Mute | Vol- | Vol+ | | | _ | + | { | } | | | 65 | Caps | | Mute | Vol- | Vol+ | | | _ | + | { | } | |
63 |------+------+------+------+------+------|------+------+------+------+------+------| 66 |------+------+------+------+------+------|------+------+------+------+------+------|
64 | | | Prev | Play | Next | | | | | | | | 67 | | | Prev | Play | Next | | | | | | | |
65 |------+------+------+------+------+------+------+------+------+------+------+------| 68 |------+------+------+------+------+------+------+------+------+------+------+------|
@@ -71,9 +74,9 @@ This revision includes this documentation and introduction of the individual RGB
71 74
72``` 75```
73 ,-----------------------------------------------------------------------------------. 76 ,-----------------------------------------------------------------------------------.
74 | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | 77 | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | \ |
75 |------+------+------+------+------+-------------+------+------+------+------+------| 78 |------+------+------+------+------+-------------+------+------+------+------+------|
76 | Caps | | Mute | Vol- | Vol+ | | | - | = | [ | ] | \ | 79 | Caps | | Mute | Vol- | Vol+ | | | - | = | [ | ] | |
77 |------+------+------+------+------+------|------+------+------+------+------+------| 80 |------+------+------+------+------+------|------+------+------+------+------+------|
78 | | | Prev | Play | Next | | | | | | | | 81 | | | Prev | Play | Next | | | | | | | |
79 |------+------+------+------+------+------+------+------+------+------+------+------| 82 |------+------+------+------+------+------+------+------+------+------+------+------|
@@ -91,6 +94,6 @@ This revision includes this documentation and introduction of the individual RGB
91 |------+------+------+------+------+------|------+------+------+------+------+------| 94 |------+------+------+------+------+------|------+------+------+------+------+------|
92 |RGB ON| MODE |RGB SW|RGB KN|RGB GR| HUE- | HUE+ | HUE- | SAT+ | SAT- | VAL+ | VAL- | 95 |RGB ON| MODE |RGB SW|RGB KN|RGB GR| HUE- | HUE+ | HUE- | SAT+ | SAT- | VAL+ | VAL- |
93 |------+------+------+------+------+------+------+------+------+------+------+------| 96 |------+------+------+------+------+------+------+------+------+------+------+------|
94 | | | | | | | | | | | | | 97 | | | | | |MacLck| | | | | | |
95 `-----------------------------------------------------------------------------------' 98 `-----------------------------------------------------------------------------------'
96 ``` 99 ```
diff --git a/lib/python/qmk/cli/doctor.py b/lib/python/qmk/cli/doctor.py
index 65b6f0a96..e46e6c777 100755
--- a/lib/python/qmk/cli/doctor.py
+++ b/lib/python/qmk/cli/doctor.py
@@ -16,8 +16,12 @@ ESSENTIAL_BINARIES = {
16 'dfu-programmer': {}, 16 'dfu-programmer': {},
17 'avrdude': {}, 17 'avrdude': {},
18 'dfu-util': {}, 18 'dfu-util': {},
19 'avr-gcc': {}, 19 'avr-gcc': {
20 'arm-none-eabi-gcc': {}, 20 'version_arg': '-dumpversion'
21 },
22 'arm-none-eabi-gcc': {
23 'version_arg': '-dumpversion'
24 },
21 'bin/qmk': {}, 25 'bin/qmk': {},
22} 26}
23ESSENTIAL_SUBMODULES = ['lib/chibios', 'lib/lufa'] 27ESSENTIAL_SUBMODULES = ['lib/chibios', 'lib/lufa']
@@ -36,9 +40,7 @@ def check_arm_gcc_version():
36 """Returns True if the arm-none-eabi-gcc version is not known to cause problems. 40 """Returns True if the arm-none-eabi-gcc version is not known to cause problems.
37 """ 41 """
38 if 'output' in ESSENTIAL_BINARIES['arm-none-eabi-gcc']: 42 if 'output' in ESSENTIAL_BINARIES['arm-none-eabi-gcc']:
39 first_line = ESSENTIAL_BINARIES['arm-none-eabi-gcc']['output'].split('\n')[0] 43 version_number = ESSENTIAL_BINARIES['arm-none-eabi-gcc']['output'].strip()
40 second_half = first_line.split(')', 1)[1].strip()
41 version_number = second_half.split()[0]
42 cli.log.info('Found arm-none-eabi-gcc version %s', version_number) 44 cli.log.info('Found arm-none-eabi-gcc version %s', version_number)
43 45
44 return True # Right now all known arm versions are ok 46 return True # Right now all known arm versions are ok
@@ -48,8 +50,7 @@ def check_avr_gcc_version():
48 """Returns True if the avr-gcc version is not known to cause problems. 50 """Returns True if the avr-gcc version is not known to cause problems.
49 """ 51 """
50 if 'output' in ESSENTIAL_BINARIES['avr-gcc']: 52 if 'output' in ESSENTIAL_BINARIES['avr-gcc']:
51 first_line = ESSENTIAL_BINARIES['avr-gcc']['output'].split('\n')[0] 53 version_number = ESSENTIAL_BINARIES['avr-gcc']['output'].strip()
52 version_number = first_line.split()[2]
53 54
54 major, minor, rest = version_number.split('.', 2) 55 major, minor, rest = version_number.split('.', 2)
55 if int(major) > 8: 56 if int(major) > 8:
@@ -154,14 +155,16 @@ def is_executable(command):
154 return False 155 return False
155 156
156 # Make sure the command can be executed 157 # Make sure the command can be executed
157 check = run([command, '--version'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, timeout=5, universal_newlines=True) 158 version_arg = ESSENTIAL_BINARIES[command].get('version_arg', '--version')
159 check = subprocess.run([command, version_arg], stdout=subprocess.PIPE, stderr=subprocess.PIPE, timeout=5, universal_newlines=True)
160
158 ESSENTIAL_BINARIES[command]['output'] = check.stdout 161 ESSENTIAL_BINARIES[command]['output'] = check.stdout
159 162
160 if check.returncode in [0, 1]: # Older versions of dfu-programmer exit 1 163 if check.returncode in [0, 1]: # Older versions of dfu-programmer exit 1
161 cli.log.debug('Found {fg_cyan}%s', command) 164 cli.log.debug('Found {fg_cyan}%s', command)
162 return True 165 return True
163 166
164 cli.log.error("{fg_red}Can't run `%s --version`", command) 167 cli.log.error("{fg_red}Can't run `%s %s`", (command, version_arg))
165 return False 168 return False
166 169
167 170
diff --git a/quantum/config_common.h b/quantum/config_common.h
index f981f3f8c..9861c8678 100644
--- a/quantum/config_common.h
+++ b/quantum/config_common.h
@@ -21,7 +21,7 @@
21#define ROW2COL 1 21#define ROW2COL 1
22 22
23// useful for direct pin mapping 23// useful for direct pin mapping
24#define NO_PIN (~0) 24#define NO_PIN (pin_t)(~0)
25 25
26#ifdef __AVR__ 26#ifdef __AVR__
27# ifndef __ASSEMBLER__ 27# ifndef __ASSEMBLER__
@@ -63,6 +63,9 @@
63# define PINB_ADDRESS 0x3 63# define PINB_ADDRESS 0x3
64# define PINC_ADDRESS 0x6 64# define PINC_ADDRESS 0x6
65# define PIND_ADDRESS 0x9 65# define PIND_ADDRESS 0x9
66# elif defined(__AVR_ATtiny85__)
67# define ADDRESS_BASE 0x10
68# define PINB_ADDRESS 0x6
66# else 69# else
67# error "Pins are not defined" 70# error "Pins are not defined"
68# endif 71# endif
diff --git a/quantum/keymap_common.c b/quantum/keymap_common.c
index f34ba26e5..570d4798d 100644
--- a/quantum/keymap_common.c
+++ b/quantum/keymap_common.c
@@ -51,17 +51,23 @@ action_t action_for_key(uint8_t layer, keypos_t key) {
51 action_t action = {}; 51 action_t action = {};
52 uint8_t action_layer, when, mod; 52 uint8_t action_layer, when, mod;
53 53
54 (void)action_layer;
55 (void)when;
56 (void)mod;
57
54 switch (keycode) { 58 switch (keycode) {
55 case KC_A ... KC_EXSEL: 59 case KC_A ... KC_EXSEL:
56 case KC_LCTRL ... KC_RGUI: 60 case KC_LCTRL ... KC_RGUI:
57 action.code = ACTION_KEY(keycode); 61 action.code = ACTION_KEY(keycode);
58 break; 62 break;
63#ifdef EXTRAKEY_ENABLE
59 case KC_SYSTEM_POWER ... KC_SYSTEM_WAKE: 64 case KC_SYSTEM_POWER ... KC_SYSTEM_WAKE:
60 action.code = ACTION_USAGE_SYSTEM(KEYCODE2SYSTEM(keycode)); 65 action.code = ACTION_USAGE_SYSTEM(KEYCODE2SYSTEM(keycode));
61 break; 66 break;
62 case KC_AUDIO_MUTE ... KC_BRIGHTNESS_DOWN: 67 case KC_AUDIO_MUTE ... KC_BRIGHTNESS_DOWN:
63 action.code = ACTION_USAGE_CONSUMER(KEYCODE2CONSUMER(keycode)); 68 action.code = ACTION_USAGE_CONSUMER(KEYCODE2CONSUMER(keycode));
64 break; 69 break;
70#endif
65#ifdef MOUSEKEY_ENABLE 71#ifdef MOUSEKEY_ENABLE
66 case KC_MS_UP ... KC_MS_ACCEL2: 72 case KC_MS_UP ... KC_MS_ACCEL2:
67 action.code = ACTION_MOUSEKEY(keycode); 73 action.code = ACTION_MOUSEKEY(keycode);
@@ -93,6 +99,7 @@ action_t action_for_key(uint8_t layer, keypos_t key) {
93 action.code = ACTION_MACRO(keycode & 0xFF); 99 action.code = ACTION_MACRO(keycode & 0xFF);
94 break; 100 break;
95#endif 101#endif
102#ifndef NO_ACTION_LAYER
96 case QK_LAYER_TAP ... QK_LAYER_TAP_MAX: 103 case QK_LAYER_TAP ... QK_LAYER_TAP_MAX:
97 action.code = ACTION_LAYER_TAP_KEY((keycode >> 0x8) & 0xF, keycode & 0xFF); 104 action.code = ACTION_LAYER_TAP_KEY((keycode >> 0x8) & 0xF, keycode & 0xFF);
98 break; 105 break;
@@ -117,6 +124,8 @@ action_t action_for_key(uint8_t layer, keypos_t key) {
117 action_layer = keycode & 0xFF; 124 action_layer = keycode & 0xFF;
118 action.code = ACTION_LAYER_TOGGLE(action_layer); 125 action.code = ACTION_LAYER_TOGGLE(action_layer);
119 break; 126 break;
127#endif
128#ifndef NO_ACTION_ONESHOT
120 case QK_ONE_SHOT_LAYER ... QK_ONE_SHOT_LAYER_MAX:; 129 case QK_ONE_SHOT_LAYER ... QK_ONE_SHOT_LAYER_MAX:;
121 // OSL(action_layer) - One-shot action_layer 130 // OSL(action_layer) - One-shot action_layer
122 action_layer = keycode & 0xFF; 131 action_layer = keycode & 0xFF;
@@ -127,6 +136,8 @@ action_t action_for_key(uint8_t layer, keypos_t key) {
127 mod = mod_config(keycode & 0xFF); 136 mod = mod_config(keycode & 0xFF);
128 action.code = ACTION_MODS_ONESHOT(mod); 137 action.code = ACTION_MODS_ONESHOT(mod);
129 break; 138 break;
139#endif
140#ifndef NO_ACTION_LAYER
130 case QK_LAYER_TAP_TOGGLE ... QK_LAYER_TAP_TOGGLE_MAX: 141 case QK_LAYER_TAP_TOGGLE ... QK_LAYER_TAP_TOGGLE_MAX:
131 action.code = ACTION_LAYER_TAP_TOGGLE(keycode & 0xFF); 142 action.code = ACTION_LAYER_TAP_TOGGLE(keycode & 0xFF);
132 break; 143 break;
@@ -135,10 +146,13 @@ action_t action_for_key(uint8_t layer, keypos_t key) {
135 action_layer = (keycode >> 4) & 0xF; 146 action_layer = (keycode >> 4) & 0xF;
136 action.code = ACTION_LAYER_MODS(action_layer, mod); 147 action.code = ACTION_LAYER_MODS(action_layer, mod);
137 break; 148 break;
149#endif
150#ifndef NO_ACTION_TAPPING
138 case QK_MOD_TAP ... QK_MOD_TAP_MAX: 151 case QK_MOD_TAP ... QK_MOD_TAP_MAX:
139 mod = mod_config((keycode >> 0x8) & 0x1F); 152 mod = mod_config((keycode >> 0x8) & 0x1F);
140 action.code = ACTION_MODS_TAP_KEY(mod, keycode & 0xFF); 153 action.code = ACTION_MODS_TAP_KEY(mod, keycode & 0xFF);
141 break; 154 break;
155#endif
142#ifdef SWAP_HANDS_ENABLE 156#ifdef SWAP_HANDS_ENABLE
143 case QK_SWAP_HANDS ... QK_SWAP_HANDS_MAX: 157 case QK_SWAP_HANDS ... QK_SWAP_HANDS_MAX:
144 action.code = ACTION(ACT_SWAP_HANDS, keycode & 0xff); 158 action.code = ACTION(ACT_SWAP_HANDS, keycode & 0xff);
diff --git a/quantum/keymap_extras/keymap_korean.h b/quantum/keymap_extras/keymap_korean.h
new file mode 100644
index 000000000..da914767b
--- /dev/null
+++ b/quantum/keymap_extras/keymap_korean.h
@@ -0,0 +1,128 @@
1/* Copyright 2020
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#include "keymap.h"
20
21// clang-format off
22
23/*
24 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
25 * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │       │
26 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
27 * │     │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │  ₩  │
28 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
29 * │      │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │        │
30 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
31 * │        │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │          │
32 * ├─────┬──┴┬──┴──┬┴──┬┴───┴───┴───┴──┬┴──┬┴───┴┬──┴┬───┬─────┤
33 * │     │   │     │Hnj│               │H↔Y│     │   │   │     │
34 * └─────┴───┴─────┴───┴───────────────┴───┴─────┴───┴───┴─────┘
35 */
36// Row 1
37#define KR_GRV KC_GRV // `
38#define KR_1 KC_1 // 1
39#define KR_2 KC_2 // 2
40#define KR_3 KC_3 // 3
41#define KR_4 KC_4 // 4
42#define KR_5 KC_5 // 5
43#define KR_6 KC_6 // 6
44#define KR_7 KC_7 // 7
45#define KR_8 KC_8 // 8
46#define KR_9 KC_9 // 9
47#define KR_0 KC_0 // 0
48#define KR_MINS KC_MINS // -
49#define KR_EQL KC_EQL // =
50// Row 2
51#define KR_Q KC_Q // Q
52#define KR_W KC_W // W
53#define KR_E KC_E // E
54#define KR_R KC_R // R
55#define KR_T KC_T // T
56#define KR_Y KC_Y // Y
57#define KR_U KC_U // U
58#define KR_I KC_I // I
59#define KR_O KC_O // O
60#define KR_P KC_P // P
61#define KR_LBRC KC_LBRC // [
62#define KR_RBRC KC_RBRC // ]
63#define KR_WON KC_BSLS // ₩
64// Row 3
65#define KR_A KC_A // A
66#define KR_S KC_S // S
67#define KR_D KC_D // D
68#define KR_F KC_F // F
69#define KR_G KC_G // G
70#define KR_H KC_H // H
71#define KR_J KC_J // J
72#define KR_K KC_K // K
73#define KR_L KC_L // L
74#define KR_SCLN KC_SCLN // ;
75#define KR_QUOT KC_QUOT // '
76// Row 4
77#define KR_Z KC_Z // Z
78#define KR_X KC_X // X
79#define KR_C KC_C // C
80#define KR_V KC_V // V
81#define KR_B KC_B // B
82#define KR_N KC_N // N
83#define KR_M KC_M // M
84#define KR_COMM KC_COMM // ,
85#define KR_DOT KC_DOT // .
86#define KR_SLSH KC_SLSH // /
87// Row 5
88#define KR_HANJ KC_LANG2 // Hanja (한자)
89#define KR_HAEN KC_LANG1 // Han ↔ Yeong (한 ↔ 영)
90
91/* Shifted symbols
92 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
93 * │ ~ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ ( │ ) │ _ │ + │       │
94 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
95 * │     │   │   │   │   │   │   │   │   │   │   │ { │ } │  |  │
96 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
97 * │      │   │   │   │   │   │   │   │   │   │ : │ " │        │
98 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
99 * │        │   │   │   │   │   │   │   │ < │ > │ ? │          │
100 * ├─────┬──┴┬──┴──┬┴──┬┴───┴───┴───┴──┬┴──┬┴───┴┬──┴┬───┬─────┤
101 * │     │   │     │   │               │   │     │   │   │     │
102 * └─────┴───┴─────┴───┴───────────────┴───┴─────┴───┴───┴─────┘
103 */
104// Row 1
105#define KR_TILD S(KR_GRV) // ~
106#define KR_EXLM S(KR_1) // !
107#define KR_AT S(KR_2) // @
108#define KR_HASH S(KR_3) // #
109#define KR_DLR S(KR_4) // $
110#define KR_PERC S(KR_5) // %
111#define KR_CIRC S(KR_6) // ^
112#define KR_AMPR S(KR_7) // &
113#define KR_ASTR S(KR_8) // *
114#define KR_LPRN S(KR_9) // (
115#define KR_RPRN S(KR_0) // )
116#define KR_UNDS S(KR_MINS) // _
117#define KR_PLUS S(KR_EQL) // +
118// Row 2
119#define KR_LCBR S(KR_LBRC) // {
120#define KR_RCBR S(KR_RBRC) // }
121#define KR_PIPE S(KR_WON) // |
122// Row 3
123#define KR_COLN S(KR_SCLN) // :
124#define KR_DQUO S(KR_COLN) // "
125// Row 4
126#define KR_LABK S(KR_COMM) // <
127#define KR_RABK S(KR_DOT) // >
128#define KR_QUES S(KR_SLSH) // ?
diff --git a/quantum/mcu_selection.mk b/quantum/mcu_selection.mk
index ef7e8ae75..33de162bb 100644
--- a/quantum/mcu_selection.mk
+++ b/quantum/mcu_selection.mk
@@ -287,3 +287,18 @@ ifneq (,$(filter $(MCU),atmega328p))
287 NO_UART ?= yes 287 NO_UART ?= yes
288 NO_SUSPEND_POWER_DOWN ?= yes 288 NO_SUSPEND_POWER_DOWN ?= yes
289endif 289endif
290
291ifneq (,$(filter $(MCU),attiny85))
292 PROTOCOL = VUSB
293
294 # Processor frequency.
295 # This will define a symbol, F_CPU, in all source code files equal to the
296 # processor frequency in Hz. You can then use this symbol in your source code to
297 # calculate timings. Do NOT tack on a 'UL' at the end, this will be done
298 # automatically to create a 32-bit value in your source code.
299 F_CPU ?= 16500000
300
301 # unsupported features for now
302 NO_UART ?= yes
303 NO_SUSPEND_POWER_DOWN ?= yes
304endif
diff --git a/quantum/quantum.c b/quantum/quantum.c
index c857e5f7a..76a48cc77 100644
--- a/quantum/quantum.c
+++ b/quantum/quantum.c
@@ -145,10 +145,6 @@ void reset_keyboard(void) {
145#ifdef HAPTIC_ENABLE 145#ifdef HAPTIC_ENABLE
146 haptic_shutdown(); 146 haptic_shutdown();
147#endif 147#endif
148// this is also done later in bootloader.c - not sure if it's neccesary here
149#ifdef BOOTLOADER_CATERINA
150 *(uint16_t *)0x0800 = 0x7777; // these two are a-star-specific
151#endif
152 bootloader_jump(); 148 bootloader_jump();
153} 149}
154 150
@@ -288,9 +284,11 @@ bool process_record_quantum(keyrecord_t *record) {
288 284
289 if (record->event.pressed) { 285 if (record->event.pressed) {
290 switch (keycode) { 286 switch (keycode) {
287#ifndef NO_RESET
291 case RESET: 288 case RESET:
292 reset_keyboard(); 289 reset_keyboard();
293 return false; 290 return false;
291#endif
294#ifndef NO_DEBUG 292#ifndef NO_DEBUG
295 case DEBUG: 293 case DEBUG:
296 debug_enable ^= 1; 294 debug_enable ^= 1;
diff --git a/tmk_core/avr.mk b/tmk_core/avr.mk
index 2c65a34aa..a8d01a9e8 100644
--- a/tmk_core/avr.mk
+++ b/tmk_core/avr.mk
@@ -98,10 +98,6 @@ ifndef TEENSY_LOADER_CLI
98 endif 98 endif
99endif 99endif
100 100
101# Program the device.
102program: $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).eep check-size
103 $(PROGRAM_CMD)
104
105define EXEC_TEENSY 101define EXEC_TEENSY
106 $(TEENSY_LOADER_CLI) -mmcu=$(MCU) -w -v $(BUILD_DIR)/$(TARGET).hex 102 $(TEENSY_LOADER_CLI) -mmcu=$(MCU) -w -v $(BUILD_DIR)/$(TARGET).hex
107endef 103endef
@@ -314,7 +310,9 @@ production: $(BUILD_DIR)/$(TARGET).hex bootloader cpfirmware
314 $(SIZE) $(TARGET).hex $(TARGET)_bootloader.hex $(TARGET)_production.hex 310 $(SIZE) $(TARGET).hex $(TARGET)_bootloader.hex $(TARGET)_production.hex
315 311
316flash: $(BUILD_DIR)/$(TARGET).hex check-size cpfirmware 312flash: $(BUILD_DIR)/$(TARGET).hex check-size cpfirmware
317ifeq ($(strip $(BOOTLOADER)), caterina) 313ifneq ($(strip $(PROGRAM_CMD)),)
314 $(PROGRAM_CMD)
315else ifeq ($(strip $(BOOTLOADER)), caterina)
318 $(call EXEC_AVRDUDE) 316 $(call EXEC_AVRDUDE)
319else ifeq ($(strip $(BOOTLOADER)), halfkay) 317else ifeq ($(strip $(BOOTLOADER)), halfkay)
320 $(call EXEC_TEENSY) 318 $(call EXEC_TEENSY)
diff --git a/tmk_core/chibios.mk b/tmk_core/chibios.mk
index f3b4b399c..6bacabbbf 100644
--- a/tmk_core/chibios.mk
+++ b/tmk_core/chibios.mk
@@ -327,7 +327,9 @@ bin: $(BUILD_DIR)/$(TARGET).bin sizeafter
327 327
328 328
329flash: $(BUILD_DIR)/$(TARGET).bin cpfirmware sizeafter 329flash: $(BUILD_DIR)/$(TARGET).bin cpfirmware sizeafter
330ifeq ($(strip $(BOOTLOADER)),dfu) 330ifneq ($(strip $(PROGRAM_CMD)),)
331 $(PROGRAM_CMD)
332else ifeq ($(strip $(BOOTLOADER)),dfu)
331 $(call EXEC_DFU_UTIL) 333 $(call EXEC_DFU_UTIL)
332else ifeq ($(strip $(MCU_FAMILY)),KINETIS) 334else ifeq ($(strip $(MCU_FAMILY)),KINETIS)
333 $(call EXEC_TEENSY) 335 $(call EXEC_TEENSY)
diff --git a/tmk_core/common/action.c b/tmk_core/common/action.c
index 19c3569d5..74db245c1 100644
--- a/tmk_core/common/action.c
+++ b/tmk_core/common/action.c
@@ -775,11 +775,12 @@ void register_code(uint8_t code) {
775 add_mods(MOD_BIT(code)); 775 add_mods(MOD_BIT(code));
776 send_keyboard_report(); 776 send_keyboard_report();
777 } 777 }
778#ifdef EXTRAKEY_ENABLE
778 else if 779 else if
779 IS_SYSTEM(code) { host_system_send(KEYCODE2SYSTEM(code)); } 780 IS_SYSTEM(code) { host_system_send(KEYCODE2SYSTEM(code)); }
780 else if 781 else if
781 IS_CONSUMER(code) { host_consumer_send(KEYCODE2CONSUMER(code)); } 782 IS_CONSUMER(code) { host_consumer_send(KEYCODE2CONSUMER(code)); }
782 783#endif
783#ifdef MOUSEKEY_ENABLE 784#ifdef MOUSEKEY_ENABLE
784 else if 785 else if
785 IS_MOUSEKEY(code) { 786 IS_MOUSEKEY(code) {
diff --git a/tmk_core/common/action_layer.h b/tmk_core/common/action_layer.h
index b8562f5a4..c283d2623 100644
--- a/tmk_core/common/action_layer.h
+++ b/tmk_core/common/action_layer.h
@@ -82,13 +82,13 @@ void layer_xor(layer_state_t state);
82 82
83# define layer_debug() 83# define layer_debug()
84# define layer_clear() 84# define layer_clear()
85# define layer_move(layer) 85# define layer_move(layer) (void)layer
86# define layer_on(layer) 86# define layer_on(layer) (void)layer
87# define layer_off(layer) 87# define layer_off(layer) (void)layer
88# define layer_invert(layer) 88# define layer_invert(layer) (void)layer
89# define layer_or(state) 89# define layer_or(state) (void)state
90# define layer_and(state) 90# define layer_and(state) (void)state
91# define layer_xor(state) 91# define layer_xor(state) (void)state
92#endif 92#endif
93 93
94layer_state_t layer_state_set_user(layer_state_t state); 94layer_state_t layer_state_set_user(layer_state_t state);
diff --git a/tmk_core/common/avr/bootloader.c b/tmk_core/common/avr/bootloader.c
index ca9746f32..7e5d2b057 100644
--- a/tmk_core/common/avr/bootloader.c
+++ b/tmk_core/common/avr/bootloader.c
@@ -237,17 +237,17 @@ void bootloader_jump(void) {
237 "bootloader_startup_loop%=: \n\t" 237 "bootloader_startup_loop%=: \n\t"
238 "rjmp bootloader_startup_loop%= \n\t" 238 "rjmp bootloader_startup_loop%= \n\t"
239 : 239 :
240 : [ mcucsrio ] "I"(_SFR_IO_ADDR(MCUCSR)), 240 : [mcucsrio] "I"(_SFR_IO_ADDR(MCUCSR)),
241# if (FLASHEND > 131071) 241# if (FLASHEND > 131071)
242 [ ramendhi ] "M"(((RAMEND - 2) >> 8) & 0xff), [ ramendlo ] "M"(((RAMEND - 2) >> 0) & 0xff), [ bootaddrhi ] "M"((((FLASH_SIZE - BOOTLOADER_SIZE) >> 1) >> 16) & 0xff), 242 [ramendhi] "M"(((RAMEND - 2) >> 8) & 0xff), [ramendlo] "M"(((RAMEND - 2) >> 0) & 0xff), [bootaddrhi] "M"((((FLASH_SIZE - BOOTLOADER_SIZE) >> 1) >> 16) & 0xff),
243# else 243# else
244 [ ramendhi ] "M"(((RAMEND - 1) >> 8) & 0xff), [ ramendlo ] "M"(((RAMEND - 1) >> 0) & 0xff), 244 [ramendhi] "M"(((RAMEND - 1) >> 8) & 0xff), [ramendlo] "M"(((RAMEND - 1) >> 0) & 0xff),
245# endif 245# endif
246 [ bootaddrme ] "M"((((FLASH_SIZE - BOOTLOADER_SIZE) >> 1) >> 8) & 0xff), [ bootaddrlo ] "M"((((FLASH_SIZE - BOOTLOADER_SIZE) >> 1) >> 0) & 0xff)); 246 [bootaddrme] "M"((((FLASH_SIZE - BOOTLOADER_SIZE) >> 1) >> 8) & 0xff), [bootaddrlo] "M"((((FLASH_SIZE - BOOTLOADER_SIZE) >> 1) >> 0) & 0xff));
247 247
248#else // Assume remaining boards are DFU, even if the flag isn't set 248#else // Assume remaining boards are DFU, even if the flag isn't set
249 249
250# if !(defined(__AVR_ATmega32A__) || defined(__AVR_ATmega328P__)) // no USB - maybe BOOTLOADER_BOOTLOADHID instead though? 250# if !(defined(__AVR_ATmega32A__) || defined(__AVR_ATmega328P__) || defined(__AVR_ATtiny85__)) // no USB - maybe BOOTLOADER_BOOTLOADHID instead though?
251 UDCON = 1; 251 UDCON = 1;
252 USBCON = (1 << FRZCLK); // disable USB 252 USBCON = (1 << FRZCLK); // disable USB
253 UCSR1B = 0; 253 UCSR1B = 0;
diff --git a/tmk_core/common/avr/timer.c b/tmk_core/common/avr/timer.c
index 88fa1dfa6..c2e6c6e08 100644
--- a/tmk_core/common/avr/timer.c
+++ b/tmk_core/common/avr/timer.c
@@ -45,19 +45,26 @@ void timer_init(void) {
45# error "Timer prescaler value is not valid" 45# error "Timer prescaler value is not valid"
46#endif 46#endif
47 47
48#ifndef __AVR_ATmega32A__ 48#if defined(__AVR_ATmega32A__)
49 // Timer0 CTC mode
50 TCCR0 = _BV(WGM01) | prescaler;
51
52 OCR0 = TIMER_RAW_TOP;
53 TIMSK = _BV(OCIE0);
54#elif defined(__AVR_ATtiny85__)
49 // Timer0 CTC mode 55 // Timer0 CTC mode
50 TCCR0A = _BV(WGM01); 56 TCCR0A = _BV(WGM01);
51 TCCR0B = prescaler; 57 TCCR0B = prescaler;
52 58
53 OCR0A = TIMER_RAW_TOP; 59 OCR0A = TIMER_RAW_TOP;
54 TIMSK0 = _BV(OCIE0A); 60 TIMSK = _BV(OCIE0A);
55#else 61#else
56 // Timer0 CTC mode 62 // Timer0 CTC mode
57 TCCR0 = _BV(WGM01) | prescaler; 63 TCCR0A = _BV(WGM01);
64 TCCR0B = prescaler;
58 65
59 OCR0 = TIMER_RAW_TOP; 66 OCR0A = TIMER_RAW_TOP;
60 TIMSK = _BV(OCIE0); 67 TIMSK0 = _BV(OCIE0A);
61#endif 68#endif
62} 69}
63 70
diff --git a/tmk_core/common/progmem.h b/tmk_core/common/progmem.h
index be8485117..39a918fe9 100644
--- a/tmk_core/common/progmem.h
+++ b/tmk_core/common/progmem.h
@@ -8,7 +8,7 @@
8# define pgm_read_byte(address_short) *((uint8_t*)(address_short)) 8# define pgm_read_byte(address_short) *((uint8_t*)(address_short))
9# define pgm_read_word(address_short) *((uint16_t*)(address_short)) 9# define pgm_read_word(address_short) *((uint16_t*)(address_short))
10# define pgm_read_dword(address_short) *((uint32_t*)(address_short)) 10# define pgm_read_dword(address_short) *((uint32_t*)(address_short))
11# define pgm_read_ptr(address_short) *((void*)(address_short)) 11# define pgm_read_ptr(address_short) *((void**)(address_short))
12# define strcmp_P(s1, s2) strcmp(s1, s2) 12# define strcmp_P(s1, s2) strcmp(s1, s2)
13# define strcpy_P(dest, src) strcpy(dest, src) 13# define strcpy_P(dest, src) strcpy(dest, src)
14# define strlen_P(src) strlen(src) 14# define strlen_P(src) strlen(src)
diff --git a/tmk_core/common/util.c b/tmk_core/common/util.c
index f4f018de8..861cca005 100644
--- a/tmk_core/common/util.c
+++ b/tmk_core/common/util.c
@@ -18,7 +18,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
18#include "util.h" 18#include "util.h"
19 19
20// bit population - return number of on-bit 20// bit population - return number of on-bit
21uint8_t bitpop(uint8_t bits) { 21__attribute__((noinline)) uint8_t bitpop(uint8_t bits) {
22 uint8_t c; 22 uint8_t c;
23 for (c = 0; bits; c++) bits &= bits - 1; 23 for (c = 0; bits; c++) bits &= bits - 1;
24 return c; 24 return c;
@@ -42,7 +42,7 @@ uint8_t bitpop32(uint32_t bits) {
42 42
43// most significant on-bit - return highest location of on-bit 43// most significant on-bit - return highest location of on-bit
44// NOTE: return 0 when bit0 is on or all bits are off 44// NOTE: return 0 when bit0 is on or all bits are off
45uint8_t biton(uint8_t bits) { 45__attribute__((noinline)) uint8_t biton(uint8_t bits) {
46 uint8_t n = 0; 46 uint8_t n = 0;
47 if (bits >> 4) { 47 if (bits >> 4) {
48 bits >>= 4; 48 bits >>= 4;
@@ -105,7 +105,7 @@ uint8_t biton32(uint32_t bits) {
105 return n; 105 return n;
106} 106}
107 107
108uint8_t bitrev(uint8_t bits) { 108__attribute__((noinline)) uint8_t bitrev(uint8_t bits) {
109 bits = (bits & 0x0f) << 4 | (bits & 0xf0) >> 4; 109 bits = (bits & 0x0f) << 4 | (bits & 0xf0) >> 4;
110 bits = (bits & 0b00110011) << 2 | (bits & 0b11001100) >> 2; 110 bits = (bits & 0b00110011) << 2 | (bits & 0b11001100) >> 2;
111 bits = (bits & 0b01010101) << 1 | (bits & 0b10101010) >> 1; 111 bits = (bits & 0b01010101) << 1 | (bits & 0b10101010) >> 1;
diff --git a/tmk_core/protocol/lufa/lufa.h b/tmk_core/protocol/lufa/lufa.h
index 1b88060f1..82a5f8e05 100644
--- a/tmk_core/protocol/lufa/lufa.h
+++ b/tmk_core/protocol/lufa/lufa.h
@@ -69,14 +69,8 @@ extern host_driver_t lufa_driver;
69# define MIDI_SYSEX_BUFFER (API_SYSEX_MAX_SIZE + API_SYSEX_MAX_SIZE / 7 + (API_SYSEX_MAX_SIZE % 7 ? 1 : 0)) 69# define MIDI_SYSEX_BUFFER (API_SYSEX_MAX_SIZE + API_SYSEX_MAX_SIZE / 7 + (API_SYSEX_MAX_SIZE % 7 ? 1 : 0))
70#endif 70#endif
71 71
72// #if LUFA_VERSION_INTEGER < 0x120730
73// /* old API 120219 */
74// #define ENDPOINT_CONFIG(epnum, eptype, epdir, epsize, epbank) Endpoint_ConfigureEndpoint(epnum, eptype, epdir, epsize, epbank)
75// #else
76/* new API >= 120730 */
77#define ENDPOINT_BANK_SINGLE 1 72#define ENDPOINT_BANK_SINGLE 1
78#define ENDPOINT_BANK_DOUBLE 2 73#define ENDPOINT_BANK_DOUBLE 2
79#define ENDPOINT_CONFIG(epnum, eptype, epdir, epsize, epbank) Endpoint_ConfigureEndpoint((epdir) | (epnum), eptype, epsize, epbank) 74#define ENDPOINT_CONFIG(epnum, eptype, epdir, epsize, epbank) Endpoint_ConfigureEndpoint((epdir) | (epnum), eptype, epsize, epbank)
80// #endif
81 75
82#endif 76#endif
diff --git a/tmk_core/protocol/vusb/usbconfig.h b/tmk_core/protocol/vusb/usbconfig.h
index f3cfd84ab..f15616351 100644
--- a/tmk_core/protocol/vusb/usbconfig.h
+++ b/tmk_core/protocol/vusb/usbconfig.h
@@ -123,7 +123,7 @@ section at the end of this file).
123 * data from a static buffer, set it to 0 and return the data from 123 * data from a static buffer, set it to 0 and return the data from
124 * usbFunctionSetup(). This saves a couple of bytes. 124 * usbFunctionSetup(). This saves a couple of bytes.
125 */ 125 */
126#define USB_CFG_IMPLEMENT_FN_WRITEOUT 0 126#define USB_CFG_IMPLEMENT_FN_WRITEOUT 1
127/* Define this to 1 if you want to use interrupt-out (or bulk out) endpoints. 127/* Define this to 1 if you want to use interrupt-out (or bulk out) endpoints.
128 * You must implement the function usbFunctionWriteOut() which receives all 128 * You must implement the function usbFunctionWriteOut() which receives all
129 * interrupt/bulk data sent to any endpoint other than 0. The endpoint number 129 * interrupt/bulk data sent to any endpoint other than 0. The endpoint number
diff --git a/tmk_core/protocol/vusb/vusb.c b/tmk_core/protocol/vusb/vusb.c
index 47dc1245d..00314ebe8 100644
--- a/tmk_core/protocol/vusb/vusb.c
+++ b/tmk_core/protocol/vusb/vusb.c
@@ -106,8 +106,6 @@ void raw_hid_send(uint8_t *data, uint8_t length) {
106 usbPoll(); 106 usbPoll();
107 } 107 }
108 usbSetInterrupt3(0, 0); 108 usbSetInterrupt3(0, 0);
109 usbPoll();
110 _delay_ms(1);
111} 109}
112 110
113__attribute__((weak)) void raw_hid_receive(uint8_t *data, uint8_t length) { 111__attribute__((weak)) void raw_hid_receive(uint8_t *data, uint8_t length) {
@@ -160,10 +158,12 @@ typedef struct {
160} __attribute__((packed)) vusb_mouse_report_t; 158} __attribute__((packed)) vusb_mouse_report_t;
161 159
162static void send_mouse(report_mouse_t *report) { 160static void send_mouse(report_mouse_t *report) {
161#if defined(MOUSE_ENABLE)
163 vusb_mouse_report_t r = {.report_id = REPORT_ID_MOUSE, .report = *report}; 162 vusb_mouse_report_t r = {.report_id = REPORT_ID_MOUSE, .report = *report};
164 if (usbInterruptIsReady3()) { 163 if (usbInterruptIsReady3()) {
165 usbSetInterrupt3((void *)&r, sizeof(vusb_mouse_report_t)); 164 usbSetInterrupt3((void *)&r, sizeof(vusb_mouse_report_t));
166 } 165 }
166#endif
167} 167}
168 168
169#ifdef EXTRAKEY_ENABLE 169#ifdef EXTRAKEY_ENABLE
diff --git a/users/sigul/sigul.h b/users/sigul/sigul.h
index dc24fae92..3182ab026 100644
--- a/users/sigul/sigul.h
+++ b/users/sigul/sigul.h
@@ -35,7 +35,6 @@ enum userspace_custom_keycodes {
35#define RAISE TT(_RAISE) 35#define RAISE TT(_RAISE)
36#define NUMPAD TG(_NUMPAD) 36#define NUMPAD TG(_NUMPAD)
37#define FN MO(_FN) 37#define FN MO(_FN)
38#define MOUSE TT(_MOUSE)
39#define TABFN LT(_FN, KC_TAB) 38#define TABFN LT(_FN, KC_TAB)
40#define ESCFN LT(_FN, KC_ESC) 39#define ESCFN LT(_FN, KC_ESC)
41#define MS_B LT(_MOUSE, IT_B) 40#define MS_B LT(_MOUSE, IT_B)
diff --git a/util/activate_msys2.sh b/util/activate_msys2.sh
index 85d645e6d..07888ffe1 100755
--- a/util/activate_msys2.sh
+++ b/util/activate_msys2.sh
@@ -9,11 +9,6 @@ function export_variables {
9 export PATH=$PATH:$util_dir/flip/bin 9 export PATH=$PATH:$util_dir/flip/bin
10 export PATH=$PATH:$util_dir/avr8-gnu-toolchain/bin 10 export PATH=$PATH:$util_dir/avr8-gnu-toolchain/bin
11 export PATH=$PATH:$util_dir/gcc-arm-none-eabi/bin 11 export PATH=$PATH:$util_dir/gcc-arm-none-eabi/bin
12 export PATH=$PATH:/mingw64/bin
13} 12}
14 13
15export_variables 14export_variables
16
17
18
19
diff --git a/util/activate_wsl.sh b/util/activate_wsl.sh
index cd88d2b65..78bbf9ccb 100755
--- a/util/activate_wsl.sh
+++ b/util/activate_wsl.sh
@@ -12,7 +12,3 @@ function export_variables {
12} 12}
13 13
14export_variables 14export_variables
15
16
17
18