Merge remote-tracking branch 'origin/master' into develop
This commit is contained in:
commit
675c5a5e12
119 changed files with 3692 additions and 488 deletions
|
@ -25,7 +25,7 @@ LED の状態を `uint8_t` として提供する2つの非推奨の関数があ
|
||||||
* `uint8_t led_set_kb(uint8_t usb_led)` と `_user(uint8_t usb_led)`
|
* `uint8_t led_set_kb(uint8_t usb_led)` と `_user(uint8_t usb_led)`
|
||||||
* `uint8_t host_keyboard_leds()`
|
* `uint8_t host_keyboard_leds()`
|
||||||
|
|
||||||
## 設定オプション
|
## 設定オプション :id=configuration-options
|
||||||
|
|
||||||
インジケータを設定するには、`config.h` で以下の `#define` をします:
|
インジケータを設定するには、`config.h` で以下の `#define` をします:
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
# PR チェックリスト
|
# PR チェックリスト
|
||||||
|
|
||||||
<!---
|
<!---
|
||||||
original document: 0.10.7:docs/pr_checklist.md
|
original document: 0.13.34:docs/pr_checklist.md
|
||||||
git diff 0.10.7 HEAD -- docs/pr_checklist.md | cat
|
git diff 0.13.34 HEAD -- docs/pr_checklist.md | cat
|
||||||
-->
|
-->
|
||||||
|
|
||||||
これは、提出された PR を QMK の協力者がレビューする際に何をチェックするのかの非網羅的なチェックリストです。
|
これは、提出された PR を QMK の協力者がレビューする際に何をチェックするのかの非網羅的なチェックリストです。
|
||||||
|
@ -73,11 +73,13 @@ https://github.com/qmk/qmk_firmware/pulls?q=is%3Apr+is%3Aclosed+label%3Akeyboard
|
||||||
- キーボードが QMK で起動するために最低限必要なコードが存在する必要があります
|
- キーボードが QMK で起動するために最低限必要なコードが存在する必要があります
|
||||||
- マトリックスと重要なデバイスの初期化コード
|
- マトリックスと重要なデバイスの初期化コード
|
||||||
- (カスタムキーコードや特別なアニメーションなど)商用キーボードの既存の機能をミラーリングする場合は、`default` ではないキーマップを使って処理する必要があります
|
- (カスタムキーコードや特別なアニメーションなど)商用キーボードの既存の機能をミラーリングする場合は、`default` ではないキーマップを使って処理する必要があります
|
||||||
|
- Vial 関連のファイルまたは変更は QMK ファームウェアで使用されないため受け入れられません (Vial 固有のコアコードは提出またはマージされていません)
|
||||||
- `keyboard.c`
|
- `keyboard.c`
|
||||||
- 空の `xxxx_xxxx_kb()` または他の weak-define のデフォルト実装関数が削除されていること
|
- 空の `xxxx_xxxx_kb()` または他の weak-define のデフォルト実装関数が削除されていること
|
||||||
- コメントアウトされた関数も削除されていること
|
- コメントアウトされた関数も削除されていること
|
||||||
- `matrix_init_board()` などが `keyboard_pre_init_kb()` に移行されました。[keyboard_pre_init*](https://docs.qmk.fm/#/ja/custom_quantum_functions?id=keyboard_pre_init_-function-documentation) を参照してください
|
- `matrix_init_board()` などが `keyboard_pre_init_kb()` に移行されました。[keyboard_pre_init*](https://docs.qmk.fm/#/ja/custom_quantum_functions?id=keyboard_pre_init_-function-documentation) を参照してください
|
||||||
- カスタムマトリックスを使用する場合は、`CUSTOM_MATRIX = lite` を選択し、標準のデバウンスを許可します。[マトリックスコードの部分置き換え](https://docs.qmk.fm/#/ja/custom_matrix?id=lite) を参照してください
|
- カスタムマトリックスを使用する場合は、`CUSTOM_MATRIX = lite` を選択し、標準のデバウンスを許可します。[マトリックスコードの部分置き換え](https://docs.qmk.fm/#/ja/custom_matrix?id=lite) を参照してください
|
||||||
|
- 可能な場合は、独自の `led_update_*()` 実装よりも LED インジケータの[設定オプション](https://docs.qmk.fm/#/ja/feature_led_indicators?id=configuration-options)を優先してください。
|
||||||
- `keyboard.h`
|
- `keyboard.h`
|
||||||
- 先頭に `#include "quantum.h"` を置きます
|
- 先頭に `#include "quantum.h"` を置きます
|
||||||
- `LAYOUT` マクロは、該当する場合は標準の定義を使用してください
|
- `LAYOUT` マクロは、該当する場合は標準の定義を使用してください
|
||||||
|
@ -95,9 +97,12 @@ https://github.com/qmk/qmk_firmware/pulls?q=is%3Apr+is%3Aclosed+label%3Akeyboard
|
||||||
...キーマップの `process_record_user()` 内で `layer_on()`、 `update_tri_layer()` を手動で処理する代わりに。
|
...キーマップの `process_record_user()` 内で `layer_on()`、 `update_tri_layer()` を手動で処理する代わりに。
|
||||||
- default (および via) のキーマップは「素朴」でなければなりません。
|
- default (および via) のキーマップは「素朴」でなければなりません。
|
||||||
- 他のユーザーが独自のユーザー固有のキーマップを開発するための「クリーンな状態」として使用するための最低限のもの。
|
- 他のユーザーが独自のユーザー固有のキーマップを開発するための「クリーンな状態」として使用するための最低限のもの。
|
||||||
- これらのキーマップで推奨される標準レイアウト(可能な場合)
|
- これらのキーマップでは標準のレイアウトが推奨されます(可能な場合)
|
||||||
|
- デフォルトのキーマップは VIA を有効にするべきではありません -- VIA の統合ドキュメント類には `via` という名前のキーマップが必要です。
|
||||||
- PR の提出者は、同じ PR に機能を紹介する個人的な(または豪華な)キーマップを持たせることができますが、「デフォルト」のキーマップに埋め込むべきではありません
|
- PR の提出者は、同じ PR に機能を紹介する個人的な(または豪華な)キーマップを持たせることができますが、「デフォルト」のキーマップに埋め込むべきではありません
|
||||||
- PR の提出者はまた、既存の商用キーボードへ QMK を移植する場合、その商用製品の既存の機能を反映する「製造業者に一致する」キーマップを持つことができます
|
- PR の提出者はまた、既存の商用キーボードへ QMK を移植する場合、その商用製品の既存の機能を反映する「製造業者に一致する」キーマップを持つことができます
|
||||||
|
- PR に VIA の json ファイルを含めないでください。これらは QMK ファームウェアで使われないため QMK リポジトリに属しません -- それらは [VIA のキーボードリポジトリ](https://github.com/the-via/keyboards)に属します。
|
||||||
|
|
||||||
|
|
||||||
さらに、ChibiOS に固有で:
|
さらに、ChibiOS に固有で:
|
||||||
- 既存の ChibiOS ボード定義を使用することを**強く**推奨します。
|
- 既存の ChibiOS ボード定義を使用することを**強く**推奨します。
|
||||||
|
@ -132,3 +137,9 @@ There are instructions on how to keep your fork updated here:
|
||||||
|
|
||||||
Thanks for contributing!
|
Thanks for contributing!
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## レビュープロセス
|
||||||
|
|
||||||
|
一般的に、PR がマージの対象となる前に、意味のある(例えば、コードを検査した)2つ(またはそれ以上)の承認を確認したいと考えています。これらのレビューはコラボレータに限られません -- 時間を割いてくれるコミュニティメンバーは誰でも歓迎(奨励)されます。唯一の違いは、チェックマークが緑にならないことですが、それは問題ありません。
|
||||||
|
|
||||||
|
また、PR レビューは自由な時間に行われるものです。それは好意で行われるものなので、私たちはレビューに費やす時間に対して、報酬はうけとっていませんし埋め合わせもありません。そのため、私たちがあなたのプルリクエストに取り掛かるのには時間がかかります。家族や生活のことで PR に手が回らなくなることもあり、そして燃え尽き症候群は深刻な懸念です。QMK ファームウェアリポジトリは、毎月平均200件の PR が開かれ、200件の PR がマージされますので、しばらくお待ちください。
|
||||||
|
|
|
@ -4,7 +4,7 @@ This document attempts to explain how the QMK firmware works from a very high le
|
||||||
|
|
||||||
* [Introduction](getting_started_introduction.md)
|
* [Introduction](getting_started_introduction.md)
|
||||||
* [How Keyboards Work](how_keyboards_work.md)
|
* [How Keyboards Work](how_keyboards_work.md)
|
||||||
* [FAQ](faq.md)
|
* [FAQ](faq_general.md)
|
||||||
|
|
||||||
## Startup
|
## Startup
|
||||||
|
|
||||||
|
|
16
keyboards/a_dux/a_dux.c
Normal file
16
keyboards/a_dux/a_dux.c
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
/* Copyright 2018-2020 ENDO Katsuhiro <ka2hiro@curlybracket.co.jp> David Philip Barr <@davidphilipbarr> Pierre Chevalier <pierrechevalier83@gmail.com>
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#include "a_dux.h"
|
47
keyboards/a_dux/a_dux.h
Normal file
47
keyboards/a_dux/a_dux.h
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
/* Copyright 2018-2020 ENDO Katsuhiro <ka2hiro@curlybracket.co.jp> David Philip Barr <@davidphilipbarr> Pierre Chevalier <pierrechevalier83@gmail.com>
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "quantum.h"
|
||||||
|
|
||||||
|
/* This a shortcut to help you visually see your layout.
|
||||||
|
*
|
||||||
|
* The first section contains all of the arguments representing the physical
|
||||||
|
* layout of the board and position of the keys.
|
||||||
|
*
|
||||||
|
* The second converts the arguments into a two-dimensional array which
|
||||||
|
* represents the switch matrix.
|
||||||
|
*/
|
||||||
|
|
||||||
|
// readability
|
||||||
|
#define ___ KC_NO
|
||||||
|
|
||||||
|
#define LAYOUT( \
|
||||||
|
L01, L02, L03, L04, L05, R01, R02, R03, R04, R05, \
|
||||||
|
L06, L07, L08, L09, L10, R06, R07, R08, R09, R10, \
|
||||||
|
L11, L12, L13, L14, L15, R11, R12, R13, R14, R15, \
|
||||||
|
L16, L17, R16, R17 \
|
||||||
|
) \
|
||||||
|
{ \
|
||||||
|
{ L01, L02, L03, L04, L05 }, \
|
||||||
|
{ L06, L07, L08, L09, L10 }, \
|
||||||
|
{ L11, L12, L13, L14, L15 }, \
|
||||||
|
{ L16, L17, ___, ___ , ___}, \
|
||||||
|
{ R01, R02, R03, R04, R05 }, \
|
||||||
|
{ R06, R07, R08, R09, R10 }, \
|
||||||
|
{ R11, R12, R13, R14, R15 }, \
|
||||||
|
{ R16, R17, ___, ___, ___ } \
|
||||||
|
}
|
||||||
|
|
76
keyboards/a_dux/config.h
Normal file
76
keyboards/a_dux/config.h
Normal file
|
@ -0,0 +1,76 @@
|
||||||
|
/* Copyright 2018-2020 ENDO Katsuhiro <ka2hiro@curlybracket.co.jp> David Philip Barr <@davidphilipbarr> Pierre Chevalier <pierrechevalier83@gmail.com>
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "config_common.h"
|
||||||
|
|
||||||
|
/* USB Device descriptor parameter */
|
||||||
|
#define VENDOR_ID 0xC2AB
|
||||||
|
#define PRODUCT_ID 0x3939
|
||||||
|
#define DEVICE_VER 0x0001
|
||||||
|
#define MANUFACTURER tapioki
|
||||||
|
#define PRODUCT Architeuthis dux
|
||||||
|
|
||||||
|
/* key matrix size */
|
||||||
|
#define MATRIX_ROWS 8
|
||||||
|
#define MATRIX_COLS 5
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Keyboard Matrix Assignments
|
||||||
|
*
|
||||||
|
* Change this to how you wired your keyboard
|
||||||
|
* COLS: AVR pins used for columns, left to right
|
||||||
|
* ROWS: AVR pins used for rows, top to bottom
|
||||||
|
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
|
||||||
|
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
|
||||||
|
* NO_DIODE = switches are directly connected to AVR pins
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#define DIRECT_PINS { \
|
||||||
|
{ C6, D2, F7, B2, F4 }, \
|
||||||
|
{ D7, D0, F6, B3, F5 }, \
|
||||||
|
{ E6, D4, D3, B1, B6 }, \
|
||||||
|
{ B4, B5, NO_PIN, NO_PIN, NO_PIN } \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define DIRECT_PINS_RIGHT { \
|
||||||
|
{ F4, B2, F7, D2, C6 }, \
|
||||||
|
{ F5, B3, F6, D0, D7 }, \
|
||||||
|
{ B6, B1, D3, D4, E6 }, \
|
||||||
|
{ B5, B4, NO_PIN, NO_PIN, NO_PIN } \
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#define UNUSED_PINS
|
||||||
|
|
||||||
|
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||||
|
#define DEBOUNCE 5
|
||||||
|
|
||||||
|
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||||
|
#define LOCKING_SUPPORT_ENABLE
|
||||||
|
|
||||||
|
/* Locking resynchronize hack */
|
||||||
|
#define LOCKING_RESYNC_ENABLE
|
||||||
|
|
||||||
|
/* Serial settings */
|
||||||
|
#define USE_SERIAL
|
||||||
|
|
||||||
|
/* serial.c configuration for split keyboard */
|
||||||
|
#define SOFT_SERIAL_PIN D1
|
||||||
|
|
||||||
|
#define EE_HANDS
|
52
keyboards/a_dux/info.json
Normal file
52
keyboards/a_dux/info.json
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
{
|
||||||
|
"keyboard_name": "Architeuthis dux",
|
||||||
|
"url": "https://github.com/tapioki/cephalopoda",
|
||||||
|
"maintainer": "@tapioki",
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT": {
|
||||||
|
"layout": [
|
||||||
|
{"x": 0, "y": 0.93},
|
||||||
|
{"x": 1, "y": 0.31},
|
||||||
|
{"x": 2, "y": 0},
|
||||||
|
{"x": 3, "y": 0.28},
|
||||||
|
{"x": 4, "y": 0.42},
|
||||||
|
|
||||||
|
{"x": 7, "y": 0.42},
|
||||||
|
{"x": 8, "y": 0.28},
|
||||||
|
{"x": 9, "y": 0},
|
||||||
|
{"x": 10, "y": 0.31},
|
||||||
|
{"x": 11, "y": 0.93},
|
||||||
|
|
||||||
|
{"x": 0, "y": 1.93},
|
||||||
|
{"x": 1, "y": 1.31},
|
||||||
|
{"x": 2, "y": 1},
|
||||||
|
{"x": 3, "y": 1.28},
|
||||||
|
{"x": 4, "y": 1.42},
|
||||||
|
|
||||||
|
{"x": 7, "y": 1.42},
|
||||||
|
{"x": 8, "y": 1.28},
|
||||||
|
{"x": 9, "y": 1},
|
||||||
|
{"x": 10, "y": 1.31},
|
||||||
|
{"x": 11, "y": 1.93},
|
||||||
|
|
||||||
|
{"x": 0, "y": 2.93},
|
||||||
|
{"x": 1, "y": 2.31},
|
||||||
|
{"x": 2, "y": 2},
|
||||||
|
{"x": 3, "y": 2.28},
|
||||||
|
{"x": 4, "y": 2.42},
|
||||||
|
|
||||||
|
{"x": 7, "y": 2.42},
|
||||||
|
{"x": 8, "y": 2.28},
|
||||||
|
{"x": 9, "y": 2},
|
||||||
|
{"x": 10, "y": 2.31},
|
||||||
|
{"x": 11, "y": 2.93},
|
||||||
|
|
||||||
|
{"x": 3.5, "y": 3.75},
|
||||||
|
{"x": 4.5, "y": 4},
|
||||||
|
|
||||||
|
{"x": 6.5, "y": 4},
|
||||||
|
{"x": 7.5, "y": 3.75}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
39
keyboards/a_dux/keymaps/default/config.h
Normal file
39
keyboards/a_dux/keymaps/default/config.h
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
/*
|
||||||
|
Copyright 2020 Pierre Chevalier <pierrechevalier83@gmail.com>
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
// Set the mouse settings to a comfortable speed/accuracy trade-off,
|
||||||
|
// assuming a screen refresh rate of 60 Htz or higher
|
||||||
|
// The default is 50. This makes the mouse ~3 times faster and more accurate
|
||||||
|
#define MOUSEKEY_INTERVAL 16
|
||||||
|
// The default is 20. Since we made the mouse about 3 times faster with the previous setting,
|
||||||
|
// give it more time to accelerate to max speed to retain precise control over short distances.
|
||||||
|
#define MOUSEKEY_TIME_TO_MAX 40
|
||||||
|
// The default is 300. Let's try and make this as low as possible while keeping the cursor responsive
|
||||||
|
#define MOUSEKEY_DELAY 100
|
||||||
|
// It makes sense to use the same delay for the mouseweel
|
||||||
|
#define MOUSEKEY_WHEEL_DELAY 100
|
||||||
|
// The default is 100
|
||||||
|
#define MOUSEKEY_WHEEL_INTERVAL 50
|
||||||
|
// The default is 40
|
||||||
|
#define MOUSEKEY_WHEEL_TIME_TO_MAX 100
|
||||||
|
|
||||||
|
// Pick good defaults for enabling homerow modifiers
|
||||||
|
#define TAPPING_TERM 200
|
||||||
|
#define PERMISSIVE_HOLD
|
||||||
|
#define IGNORE_MOD_TAP_INTERRUPT
|
||||||
|
#define TAPPING_FORCE_HOLD
|
106
keyboards/a_dux/keymaps/default/keymap.json
Normal file
106
keyboards/a_dux/keymaps/default/keymap.json
Normal file
|
@ -0,0 +1,106 @@
|
||||||
|
{ "version": 1,
|
||||||
|
"notes": "My awesome keymap",
|
||||||
|
"documentation": "\"This file is a QMK Configurator export. You can import this at <https://config.qmk.fm>. It can also be used directly with QMK's source code.\n\nTo setup your QMK environment check out the tutorial: <https://docs.qmk.fm/#/newbs>\n\nYou can convert this file to a keymap.c using this command: `qmk json2c {keymap}`\n\nYou can compile this keymap using this command: `qmk compile {keymap}`\"\n",
|
||||||
|
"keyboard": "a_dux",
|
||||||
|
"keymap": "default",
|
||||||
|
"layout": "LAYOUT",
|
||||||
|
"layers": [
|
||||||
|
["KC_Q" , "KC_W" , "KC_E" , "KC_R" , "KC_T",
|
||||||
|
"KC_Y" , "KC_U" , "KC_I" , "KC_O" , "KC_P",
|
||||||
|
|
||||||
|
"LSFT_T(KC_A)", "LT(5,KC_S)" , "LT(1,KC_D)" , "LT(3,KC_F)" , "KC_G",
|
||||||
|
"KC_H" , "LT(4,KC_J)" , "LT(2,KC_K)" , "LT(6,KC_L)" , "LSFT_T(KC_SCLN)",
|
||||||
|
|
||||||
|
"KC_Z" , "LCTL_T(KC_X)", "LALT_T(KC_C)" , "KC_V" , "KC_B",
|
||||||
|
"KC_N" , "KC_M" , "LALT_T(KC_COMM)", "LCTL_T(KC_DOT)", "KC_SLSH",
|
||||||
|
|
||||||
|
"KC_P0" , "KC_BSPC",
|
||||||
|
"LT(7,KC_SPC)", "KC_P1"
|
||||||
|
],
|
||||||
|
["KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
|
||||||
|
"KC_TRNS" , "KC_BTN1" , "KC_WH_U" , "KC_BTN2" , "KC_TRNS",
|
||||||
|
|
||||||
|
"KC_TRNS" , "KC_BTN2" , "KC_NO" , "KC_BTN1" , "KC_TRNS",
|
||||||
|
"KC_TRNS" , "KC_MS_L" , "KC_MS_D" , "KC_MS_U" , "KC_MS_R",
|
||||||
|
|
||||||
|
"KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
|
||||||
|
"KC_TRNS" , "KC_WH_L" , "KC_WH_D" , "KC_WH_R" , "KC_TRNS",
|
||||||
|
|
||||||
|
"KC_TRNS" , "KC_TRNS",
|
||||||
|
"KC_TRNS" , "KC_TRNS"
|
||||||
|
],
|
||||||
|
["KC_TRNS" , "KC_TRNS" , "KC_PGUP" , "KC_TRNS" , "KC_TRNS",
|
||||||
|
"KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
|
||||||
|
|
||||||
|
"KC_LEFT" , "KC_UP" , "KC_DOWN" , "KC_RGHT" , "KC_TRNS",
|
||||||
|
"KC_TRNS" , "KC_LGUI" , "KC_NO" , "LCTL(KC_LALT)" , "LCA(KC_LSFT)",
|
||||||
|
|
||||||
|
"KC_TRNS" , "KC_HOME" , "KC_PGDN" , "KC_END" , "KC_TRNS",
|
||||||
|
"KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
|
||||||
|
|
||||||
|
"KC_TRNS" , "KC_TRNS",
|
||||||
|
"KC_TRNS" , "KC_TRNS"
|
||||||
|
],
|
||||||
|
["KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
|
||||||
|
"KC_TRNS" , "KC_UNDS" , "KC_PIPE" , "KC_QUOT" , "KC_TRNS",
|
||||||
|
|
||||||
|
"KC_CIRC" , "KC_ASTR" , "KC_AMPR" , "KC_NO" , "KC_TRNS",
|
||||||
|
"KC_HASH" , "KC_TILD" , "KC_SLSH" , "KC_DQUO" , "KC_DLR",
|
||||||
|
|
||||||
|
"KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
|
||||||
|
"KC_TRNS" , "KC_MINS" , "KC_BSLS" , "KC_GRV" , "KC_TRNS",
|
||||||
|
|
||||||
|
"KC_TRNS" , "KC_TRNS",
|
||||||
|
"KC_TRNS" , "KC_TRNS"
|
||||||
|
],
|
||||||
|
["KC_TRNS" , "KC_COLN" , "KC_LT" , "KC_GT" , "KC_SCLN",
|
||||||
|
"KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
|
||||||
|
|
||||||
|
"KC_LCBR" , "KC_RCBR" , "KC_LPRN" , "KC_RPRN" , "KC_AT",
|
||||||
|
"KC_TRNS" , "KC_NO" , "KC_EQL" , "KC_PLUS" , "KC_PERC",
|
||||||
|
|
||||||
|
"KC_TRNS" , "KC_EXLM" , "KC_LBRC" , "KC_RBRC" , "KC_TRNS",
|
||||||
|
"KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
|
||||||
|
|
||||||
|
"KC_VOLD" , "KC_TRNS",
|
||||||
|
"KC_TRNS" , "KC_VOLU"
|
||||||
|
],
|
||||||
|
["KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
|
||||||
|
"KC_TRNS" , "KC_F7" , "KC_F8" , "KC_F9" , "KC_F10",
|
||||||
|
|
||||||
|
"KC_TRNS" , "KC_NO" , "LCTL(KC_LALT)" , "KC_TRNS" , "KC_TRNS",
|
||||||
|
"KC_TRNS" , "KC_F4" , "KC_F5" , "KC_F6" , "KC_F11",
|
||||||
|
|
||||||
|
"KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
|
||||||
|
"KC_TRNS" , "KC_F1" , "KC_F2" , "KC_F3" , "KC_F12",
|
||||||
|
|
||||||
|
"KC_TRNS" , "KC_TRNS",
|
||||||
|
"KC_TRNS" , "KC_TRNS"
|
||||||
|
],
|
||||||
|
["KC_PSLS" , "KC_7" , "KC_8" , "KC_9" , "KC_PPLS",
|
||||||
|
"KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
|
||||||
|
|
||||||
|
"KC_0" , "KC_1" , "KC_2" , "KC_3" , "KC_PMNS",
|
||||||
|
"KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_NO" , "KC_TRNS",
|
||||||
|
|
||||||
|
"KC_PAST" , "KC_4" , "KC_5" , "KC_6" , "KC_PEQL",
|
||||||
|
"KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
|
||||||
|
|
||||||
|
"KC_TRNS" , "KC_TRNS",
|
||||||
|
"KC_TRNS" , "KC_TRNS"
|
||||||
|
],
|
||||||
|
["KC_TRNS" , "KC_TRNS" , "KC_COLN" , "KC_ESC" , "KC_TRNS",
|
||||||
|
"KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_DEL",
|
||||||
|
|
||||||
|
"KC_TRNS" , "KC_PERC" , "KC_SLSH" , "KC_ENT" , "KC_TRNS",
|
||||||
|
"DF(1)" , "KC_LGUI" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
|
||||||
|
|
||||||
|
"KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_EXLM" , "KC_TRNS",
|
||||||
|
"DF(0)" , "KC_TRNS" , "RALT_T(KC_COMM)", "RCTL_T(KC_DOT)", "RESET",
|
||||||
|
|
||||||
|
"KC_TRNS" , "KC_TAB",
|
||||||
|
"KC_NO" , "KC_TRNS"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"author": "@pierrec83"
|
||||||
|
}
|
122
keyboards/a_dux/keymaps/default/readme.md
Normal file
122
keyboards/a_dux/keymaps/default/readme.md
Normal file
|
@ -0,0 +1,122 @@
|
||||||
|
A usable default keymap for the A. Dux keyboard
|
||||||
|
===============================================
|
||||||
|
|
||||||
|
Keymaps in general are quite personal, so it is difficult to come up with a default that will suit every user.
|
||||||
|
|
||||||
|
This keymap makes heavy use of keys behaving differently when tapped and held, so that all the keys one may need remain accessible despite the low number of thumb keys.
|
||||||
|
|
||||||
|
It comes with a number of layers to give access to most of the keys one may need on a keyboard. It is not meant to be the best possible keymap, but rather a good base on which to build a keymap that works for you.
|
||||||
|
|
||||||
|
This is not the only way to make 34 keys a comfortable typing experience, but it is one way to do so. If you don't already know of a better way, this may be as good a starting point as any :)
|
||||||
|
|
||||||
|
Note that this keymap was built from the perspective that it is OK to take a steep learning curve if it results in a keymap that is easier to use in the long run. This means that it may take more effort to learn this keymap than some alternatives. "Easy to use" was assessed against the workflow of the author, so your mileage may vary on some of the details.
|
||||||
|
|
||||||
|
What do all these layers do?
|
||||||
|
----------------------------
|
||||||
|
|
||||||
|
### Layer 0: Base layer
|
||||||
|
|
||||||
|
![Layer 0](https://i.imgur.com/HjNHUPL.png)
|
||||||
|
|
||||||
|
On tapping the keys, our base layer is qwerty with space on the right homing thumb and backspace on the left homing thumb.
|
||||||
|
|
||||||
|
In this layer, the non-homing-thumb positions have 0 and 1. I recommend modifying this to some frequently accessed shortcut such as copy/paste, previous/next tab or anything that makes most sense in your own workflow. O and 1 are place-holders and make it easy to troubleshoot that all keys are working properly before soldering in the switches.
|
||||||
|
The reason I recommend convenience shortcuts instead of more commonly used keys like tab or meta is that unhoming of the thumbs was a frequent source of typos for me when I used more than one thumb key frequently in the context of typing.
|
||||||
|
|
||||||
|
Despite being missing on this layer, "meta", "tab", "esc" and such are accessible from any other layer: see Layer 7.
|
||||||
|
|
||||||
|
The behaviour of some keys differ when held:
|
||||||
|
* Both homing pinkies behave as shift.
|
||||||
|
* Both bottom-row ring fingers behave as ctrl.
|
||||||
|
* Both bottom-row middle fingers behave as alt.
|
||||||
|
|
||||||
|
* The homing left ring finger gives access to the Function keys layer
|
||||||
|
* The homing right ring finger gives access to the Numbers layer
|
||||||
|
* The homing left middle finger gives access to the Mouse layer
|
||||||
|
* The homing right middle finger gives access to the Navigation layer
|
||||||
|
* The homing left index finger gives access to the Right symbols layer
|
||||||
|
* The homing right index finger gives access to the Left symbols layer
|
||||||
|
* The homing right thumb gives access to the Always accessible layer
|
||||||
|
|
||||||
|
### Layer 1: Mouse
|
||||||
|
|
||||||
|
![Layer 1](https://i.imgur.com/0fvTuB9.png)
|
||||||
|
|
||||||
|
Layer 1 is a mouse layer: it can be used one-handed or two-handed. The most common way to use it is two handed, with left and right click on the homerow of the left hand and directions on the homerow of the right hand.
|
||||||
|
Scrolling is available on the right hand with mid finger up and down for vertical scroll and index and ring finger down for horizontal scroll.
|
||||||
|
On the right hand, left click and right click are also available with index and ring finger up to allow one handed operation. This can be particularly handy when enabling the mouse layer permanently (no need to hold the left middle finger), which can be done from Layer 7.
|
||||||
|
|
||||||
|
Note that thanks to the transparency, shift, ctrl and alt are all accessible on the left hand while operating the mouse.
|
||||||
|
|
||||||
|
### Layer 2: Navigation
|
||||||
|
|
||||||
|
![Layer 2](https://i.imgur.com/ZquQJRq.png)
|
||||||
|
|
||||||
|
The navigation layer somewhat mirrors the mouse layer. It is accessed by holding the right middle finger and gives access to arrow keys on the left homerow. Page up and down, Home and End mirror the vertical scrolling and horizontal scrolling on the mouse layer.
|
||||||
|
|
||||||
|
On the right hand, in addition to ctrl and alt which are available through transparency, ctrl + alt, ctrl + alt + shift and meta are accessible on the homerow to enable common shortcuts in some window managers. This part is quite workflow dependent, so make sure to adapt it to your own workflow as appropriate.
|
||||||
|
|
||||||
|
### Layer 3: Right symbols
|
||||||
|
|
||||||
|
![Layer 3](https://i.imgur.com/9tLAUqG.png)
|
||||||
|
|
||||||
|
When holding down the left index, one may access about half of the symbols. The pinkies store `^` and `$` symbols that represent begin and end in vim. The left homerow hosts `*` and `&`, symbols which are related in the way that they represent some form of indirection in programming languages such as rust. On the right hand, most symbols used when navigating the command line are stored together, organized by columns of related symbols.
|
||||||
|
|
||||||
|
### Layer 4: Left symbols
|
||||||
|
|
||||||
|
![Layer 4](https://i.imgur.com/CkjUSW6.png)
|
||||||
|
|
||||||
|
When holding down the right index, one may access the other symbols. On the left hand, most of the different brackets are laid out. The most frequent ones (round brackets and curly brackets) get a spot on the homerow. The rest of the layer hosts the remaining symbols that are easier to access here than on any other layers.
|
||||||
|
|
||||||
|
### Layer 5: Function keys
|
||||||
|
|
||||||
|
![Layer 5](https://i.imgur.com/fWgVqc4.png)
|
||||||
|
|
||||||
|
By holding down the left ring finger, one may access the function keys, roughly in a numpad layout.
|
||||||
|
This means that alt+F4 is easy to type, with F4 being on the homerow.
|
||||||
|
There is a shortcut for ctrl+alt on the left hand to enable convenient switching between virtual terminals on Linux.
|
||||||
|
|
||||||
|
### Layer 6: Numbers
|
||||||
|
|
||||||
|
![Layer 6](https://i.imgur.com/S8gq9Kj.png)
|
||||||
|
|
||||||
|
The number layer is accessed by holding the right ring finger. It hosts the numbers and some duplicated symbols that are commonly accessed next to numbers, such as mathematical operators.
|
||||||
|
The number are layed out similarly to a numpad, but with the middle row and the homerow swapped so that the most used numbers: 0, 1, 2 and 3 are all available in homing positions.
|
||||||
|
|
||||||
|
### Layer 7: Always accessible
|
||||||
|
|
||||||
|
![Layer 7](https://i.imgur.com/twqBeBb.png)
|
||||||
|
|
||||||
|
Layer 7 is accessed by holding the right homing thumb down. Because this position is left transparent from every other layer, this layer is always accessible.
|
||||||
|
It gives access to some essential keys that would typically be accessed on a thumb cluster or pinkies, such as meta, enter, tab, esc and delete.
|
||||||
|
|
||||||
|
As the layer hosting esc, we duplicated some symbols here to allow for fast navigation in vim. For instance, esc, :, w, q can be done in a single roll.
|
||||||
|
|
||||||
|
Where is the keymap.c?
|
||||||
|
----------------------
|
||||||
|
|
||||||
|
The keymap.c file is not published to the repository. It is generated from `keymap.json` by the build system.
|
||||||
|
|
||||||
|
This avoids duplicating information and allow users to edit their keymap from the qmk configurator web interface.
|
||||||
|
|
||||||
|
How do I edit and update the keymap?
|
||||||
|
------------------------------------
|
||||||
|
|
||||||
|
The `keymap.json` file is generated from the qmk configurator interface and formatted for better readability in the context of the A. Dux keyboard.
|
||||||
|
|
||||||
|
To edit it, you may:
|
||||||
|
* Edit it directly from a text editor.
|
||||||
|
* Edit it from the qmk configurator.
|
||||||
|
|
||||||
|
If you decide to use the latter workflow, here are the steps to follow:
|
||||||
|
|
||||||
|
* From the qmk configurator, hit the "import QMK keymap json file" button (it has a drawing with an up arrow on it).
|
||||||
|
* Browse to the location of your keymap (for example, `<your qmk repo>/keyboards/a_dux/keymaps/default/keymap.json`)
|
||||||
|
* Perform any modification to the keymap in the web UI
|
||||||
|
* Export the keymap to your downloads folder, by hitting the "Export QMK keymap json file" button (it has a drawing with a down arrow on it)
|
||||||
|
* Override your original keymap with the output of formatting the exported keymap by running a command such as this one from the root of your qmk repo:
|
||||||
|
```
|
||||||
|
./keyboards/a_dux/keymaps/json2crab.py --input <Your download directory>/default.json > ./keyboards/a_dux/keymaps/default/keymap.json
|
||||||
|
```
|
||||||
|
Note that you may first need to make json2crab executable by using `chmod +x` on it.
|
||||||
|
Also note that you may then want to remove the exported keymap from your dowload directory.
|
130
keyboards/a_dux/keymaps/jcmkk3/keymap.c
Normal file
130
keyboards/a_dux/keymaps/jcmkk3/keymap.c
Normal file
|
@ -0,0 +1,130 @@
|
||||||
|
/* Copyright 2021 @jcmkk3
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
#include "oneshot.h"
|
||||||
|
|
||||||
|
#define LA_UPP OSL(UPP)
|
||||||
|
#define LA_SYM OSL(SYM)
|
||||||
|
#define LA_NAV MO(NAV)
|
||||||
|
|
||||||
|
enum layers {
|
||||||
|
DEF,
|
||||||
|
UPP,
|
||||||
|
SYM,
|
||||||
|
NAV,
|
||||||
|
NUM,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum keycodes {
|
||||||
|
// Custom oneshot mod implementation with no timers.
|
||||||
|
OS_SHFT = SAFE_RANGE,
|
||||||
|
OS_CTRL,
|
||||||
|
OS_ALT,
|
||||||
|
OS_GUI,
|
||||||
|
};
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[DEF] = LAYOUT(
|
||||||
|
KC_Y, KC_C, KC_L, KC_M, KC_K, KC_Z, KC_F, KC_U, KC_QUOT, KC_DQUO,
|
||||||
|
KC_I, KC_S, KC_R, KC_T, KC_G, KC_P, KC_N, KC_E, KC_A, KC_O,
|
||||||
|
KC_Q, KC_V, KC_W, KC_D, KC_J, KC_B, KC_H, KC_COMM, KC_DOT, KC_X,
|
||||||
|
LA_NAV, KC_SPC, LA_UPP, LA_SYM
|
||||||
|
),
|
||||||
|
|
||||||
|
[UPP] = LAYOUT(
|
||||||
|
S(KC_Y), S(KC_C), S(KC_L), S(KC_M), S(KC_K), S(KC_Z), S(KC_F), S(KC_U), KC_EXLM, KC_QUES,
|
||||||
|
S(KC_I), S(KC_S), S(KC_R), S(KC_T), S(KC_G), S(KC_P), S(KC_N), S(KC_E), S(KC_A), S(KC_O),
|
||||||
|
S(KC_Q), S(KC_V), S(KC_W), S(KC_D), S(KC_J), S(KC_B), S(KC_H), KC_SCLN, KC_COLN, S(KC_X),
|
||||||
|
_______, _______, _______, _______
|
||||||
|
),
|
||||||
|
|
||||||
|
[SYM] = LAYOUT(
|
||||||
|
KC_LABK, KC_LCBR, KC_LBRC, KC_LPRN, KC_CIRC, KC_DLR, KC_RPRN, KC_RBRC, KC_RCBR, KC_RABK,
|
||||||
|
KC_HASH, KC_UNDS, KC_EQL, KC_MINS, KC_PLUS, KC_AMPR, OS_CTRL, OS_SHFT, OS_ALT, OS_GUI,
|
||||||
|
KC_PERC, KC_GRV, KC_TILD, KC_SLSH, KC_ASTR, KC_PIPE, KC_BSLS, KC_SCLN, KC_COLN, KC_AT,
|
||||||
|
_______, _______, _______, _______
|
||||||
|
),
|
||||||
|
|
||||||
|
[NAV] = LAYOUT(
|
||||||
|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_TAB, KC_UP, KC_ENT, KC_DEL,
|
||||||
|
OS_GUI, OS_ALT, OS_SHFT, OS_CTRL, XXXXXXX, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END,
|
||||||
|
C(KC_Z), C(KC_X), C(KC_C), C(KC_V), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||||
|
_______, _______, KC_BSPC, _______
|
||||||
|
),
|
||||||
|
|
||||||
|
[NUM] = LAYOUT(
|
||||||
|
KC_7, KC_5, KC_3, KC_1, KC_9, KC_8, KC_0, KC_2, KC_4, KC_6,
|
||||||
|
OS_GUI, OS_ALT, OS_SHFT, OS_CTRL, XXXXXXX, XXXXXXX, OS_CTRL, OS_SHFT, OS_ALT, OS_GUI,
|
||||||
|
XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, XXXXXXX, XXXXXXX, XXXXXXX, KC_COMM, KC_DOT, KC_SLSH,
|
||||||
|
_______, _______, KC_BSPC, _______
|
||||||
|
),
|
||||||
|
};
|
||||||
|
|
||||||
|
bool is_oneshot_cancel_key(uint16_t keycode) {
|
||||||
|
switch (keycode) {
|
||||||
|
case LA_SYM:
|
||||||
|
case LA_NAV:
|
||||||
|
return true;
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool is_oneshot_ignored_key(uint16_t keycode) {
|
||||||
|
switch (keycode) {
|
||||||
|
case LA_SYM:
|
||||||
|
case LA_NAV:
|
||||||
|
case KC_LSFT:
|
||||||
|
case OS_SHFT:
|
||||||
|
case OS_CTRL:
|
||||||
|
case OS_ALT:
|
||||||
|
case OS_GUI:
|
||||||
|
return true;
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
oneshot_state os_shft_state = os_up_unqueued;
|
||||||
|
oneshot_state os_ctrl_state = os_up_unqueued;
|
||||||
|
oneshot_state os_alt_state = os_up_unqueued;
|
||||||
|
oneshot_state os_gui_state = os_up_unqueued;
|
||||||
|
|
||||||
|
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||||
|
update_oneshot(
|
||||||
|
&os_shft_state, KC_LSFT, OS_SHFT,
|
||||||
|
keycode, record
|
||||||
|
);
|
||||||
|
update_oneshot(
|
||||||
|
&os_ctrl_state, KC_LCTL, OS_CTRL,
|
||||||
|
keycode, record
|
||||||
|
);
|
||||||
|
update_oneshot(
|
||||||
|
&os_alt_state, KC_LALT, OS_ALT,
|
||||||
|
keycode, record
|
||||||
|
);
|
||||||
|
update_oneshot(
|
||||||
|
&os_gui_state, KC_LGUI, OS_GUI,
|
||||||
|
keycode, record
|
||||||
|
);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||||
|
return update_tri_layer_state(state, SYM, NAV, NUM);
|
||||||
|
}
|
72
keyboards/a_dux/keymaps/jcmkk3/oneshot.c
Normal file
72
keyboards/a_dux/keymaps/jcmkk3/oneshot.c
Normal file
|
@ -0,0 +1,72 @@
|
||||||
|
/* Copyright 2021 @jcmkk3
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#include "oneshot.h"
|
||||||
|
|
||||||
|
void update_oneshot(
|
||||||
|
oneshot_state *state,
|
||||||
|
uint16_t mod,
|
||||||
|
uint16_t trigger,
|
||||||
|
uint16_t keycode,
|
||||||
|
keyrecord_t *record
|
||||||
|
) {
|
||||||
|
if (keycode == trigger) {
|
||||||
|
if (record->event.pressed) {
|
||||||
|
// Trigger keydown
|
||||||
|
if (*state == os_up_unqueued) {
|
||||||
|
register_code(mod);
|
||||||
|
}
|
||||||
|
*state = os_down_unused;
|
||||||
|
} else {
|
||||||
|
// Trigger keyup
|
||||||
|
switch (*state) {
|
||||||
|
case os_down_unused:
|
||||||
|
// If we didn't use the mod while trigger was held, queue it.
|
||||||
|
*state = os_up_queued;
|
||||||
|
break;
|
||||||
|
case os_down_used:
|
||||||
|
// If we did use the mod while trigger was held, unregister it.
|
||||||
|
*state = os_up_unqueued;
|
||||||
|
unregister_code(mod);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (record->event.pressed) {
|
||||||
|
if (is_oneshot_cancel_key(keycode) && *state != os_up_unqueued) {
|
||||||
|
// Cancel oneshot on designated cancel keydown.
|
||||||
|
*state = os_up_unqueued;
|
||||||
|
unregister_code(mod);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (!is_oneshot_ignored_key(keycode)) {
|
||||||
|
// On non-ignored keyup, consider the oneshot used.
|
||||||
|
switch (*state) {
|
||||||
|
case os_down_unused:
|
||||||
|
*state = os_down_used;
|
||||||
|
break;
|
||||||
|
case os_up_queued:
|
||||||
|
*state = os_up_unqueued;
|
||||||
|
unregister_code(mod);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
46
keyboards/a_dux/keymaps/jcmkk3/oneshot.h
Normal file
46
keyboards/a_dux/keymaps/jcmkk3/oneshot.h
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
/* Copyright 2021 @jcmkk3
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
// Represents the four states a oneshot key can be in
|
||||||
|
typedef enum {
|
||||||
|
os_up_unqueued,
|
||||||
|
os_up_queued,
|
||||||
|
os_down_unused,
|
||||||
|
os_down_used,
|
||||||
|
} oneshot_state;
|
||||||
|
|
||||||
|
// Custom oneshot mod implementation that doesn't rely on timers. If a mod is
|
||||||
|
// used while it is held it will be unregistered on keyup as normal, otherwise
|
||||||
|
// it will be queued and only released after the next non-mod keyup.
|
||||||
|
void update_oneshot(
|
||||||
|
oneshot_state *state,
|
||||||
|
uint16_t mod,
|
||||||
|
uint16_t trigger,
|
||||||
|
uint16_t keycode,
|
||||||
|
keyrecord_t *record
|
||||||
|
);
|
||||||
|
|
||||||
|
// To be implemented by the consumer. Defines keys to cancel oneshot mods.
|
||||||
|
bool is_oneshot_cancel_key(uint16_t keycode);
|
||||||
|
|
||||||
|
// To be implemented by the consumer. Defines keys to ignore when determining
|
||||||
|
// whether a oneshot mod has been used. Setting this to modifiers and layer
|
||||||
|
// change keys allows stacking multiple oneshot modifiers, and carrying them
|
||||||
|
// between layers.
|
||||||
|
bool is_oneshot_ignored_key(uint16_t keycode);
|
1
keyboards/a_dux/keymaps/jcmkk3/rules.mk
Normal file
1
keyboards/a_dux/keymaps/jcmkk3/rules.mk
Normal file
|
@ -0,0 +1 @@
|
||||||
|
SRC += oneshot.c
|
38
keyboards/a_dux/readme.md
Normal file
38
keyboards/a_dux/readme.md
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
# Architeuthis Dux
|
||||||
|
|
||||||
|
![Architeuthis Dux](https://raw.githubusercontent.com/tapioki/cephalopoda/main/Images/architeuthis_dux.png)
|
||||||
|
|
||||||
|
AKA A. dux, A.D., "Giant squid"
|
||||||
|
|
||||||
|
34 keys, same stagger as [D. gigas](https://github.com/tapioki/cephalopoda/tree/main/Dosidicus%20gigas), but with two thumb keys included. Pinky, ring, index, and inner columns splayed at 15, 5, 0, -5, -5 degrees. SplitKB Tenting Puck support. All PCB files are available on the [project's github page](https://github.com/tapioki/cephalopoda/tree/main/Architeuthis%20dux)
|
||||||
|
|
||||||
|
Thank you [Perce](https://madebyperce.com/) for the logo.
|
||||||
|
|
||||||
|
## Cases can be found here:
|
||||||
|
|
||||||
|
* [Flat Case](https://github.com/madebyperce/aduxcase)
|
||||||
|
* [Tented Case](https://github.com/jdart/adux-tent)
|
||||||
|
* [Case with Plates](https://github.com/sadekbaroudi/cephalopoda/tree/main/Architeuthis%20dux/case)
|
||||||
|
|
||||||
|
## Keyboard Info
|
||||||
|
|
||||||
|
* Keyboard Maintainer: [tapioki](https://github.com/tapioki)
|
||||||
|
* Hardware Supported: Architeuthis Dux
|
||||||
|
* Hardware Availability: [GitHub](https://github.com/tapioki/cephalopoda/tree/main/Architeuthis%20dux)
|
||||||
|
|
||||||
|
Make examples for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make a_dux:default
|
||||||
|
|
||||||
|
make a_dux:default:avrdude-split-left
|
||||||
|
make a_dux:default:avrdude-split-right
|
||||||
|
|
||||||
|
## Bootloader
|
||||||
|
|
||||||
|
Enter the bootloader in 3 ways:
|
||||||
|
|
||||||
|
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
|
||||||
|
* **Physical reset**: Briefly short the RST and GND pins on the microcontroller using tweezers, a paperclip, or any other conductive material.
|
||||||
|
* **Keycode in layout**: Press the key mapped to `RESET` if it is available
|
||||||
|
|
||||||
|
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
23
keyboards/a_dux/rules.mk
Normal file
23
keyboards/a_dux/rules.mk
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
# MCU name
|
||||||
|
MCU = atmega32u4
|
||||||
|
|
||||||
|
# Bootloader selection
|
||||||
|
BOOTLOADER = atmel-dfu
|
||||||
|
|
||||||
|
# Build Options
|
||||||
|
# change yes to no to disable
|
||||||
|
#
|
||||||
|
BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
|
||||||
|
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||||
|
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||||
|
CONSOLE_ENABLE = no # Console for debug
|
||||||
|
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||||
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
|
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||||
|
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
|
NKRO_ENABLE = yes # USB Nkey Rollover
|
||||||
|
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||||
|
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||||
|
AUDIO_ENABLE = no # Audio output
|
||||||
|
UNICODE_ENABLE = yes
|
||||||
|
SPLIT_KEYBOARD = yes
|
|
@ -1,30 +1,51 @@
|
||||||
|
/* Copyright 2018-2021 @fixed, MechMerlin, QMK
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "config_common.h"
|
#include "config_common.h"
|
||||||
|
|
||||||
/* USB Device descriptor parameter */
|
/* USB Device descriptor parameter */
|
||||||
#define VENDOR_ID 0xFEED
|
#define VENDOR_ID 0xFEED
|
||||||
#define PRODUCT_ID 0x6060
|
#define PRODUCT_ID 0x6060
|
||||||
#define DEVICE_VER 0x0001
|
#define DEVICE_VER 0x0001
|
||||||
#define MANUFACTURER ALF
|
#define MANUFACTURER ALF
|
||||||
#define PRODUCT X2
|
#define PRODUCT X2
|
||||||
|
|
||||||
/* key matrix size */
|
/* key matrix size */
|
||||||
#define MATRIX_ROWS 5
|
#define MATRIX_ROWS 5
|
||||||
#define MATRIX_COLS 15
|
#define MATRIX_COLS 15
|
||||||
|
|
||||||
/* key matrix pins */
|
/* key matrix pins */
|
||||||
#define MATRIX_ROW_PINS { D0, D1, D2, D3, D5 }
|
#define MATRIX_ROW_PINS \
|
||||||
#define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B7, D4, B1, B0, B5, B4, D7, D6, B3, F4 }
|
{ D0, D1, D2, D3, D5 }
|
||||||
|
#define MATRIX_COL_PINS \
|
||||||
|
{ F0, F1, E6, C7, C6, B7, D4, B1, B0, B5, B4, D7, D6, B3, F4 }
|
||||||
#define UNUSED_PINS
|
#define UNUSED_PINS
|
||||||
|
|
||||||
/* COL2ROW or ROW2COL */
|
/* COL2ROW or ROW2COL */
|
||||||
#define DIODE_DIRECTION COL2ROW
|
#define DIODE_DIRECTION COL2ROW
|
||||||
|
|
||||||
|
#define LED_CAPS_LOCK_PIN B2
|
||||||
|
#define LED_PIN_ON_STATE 0
|
||||||
|
|
||||||
/* number of backlight levels */
|
/* number of backlight levels */
|
||||||
#define BACKLIGHT_PIN B6
|
#define BACKLIGHT_PIN B6
|
||||||
#ifdef BACKLIGHT_PIN
|
#ifdef BACKLIGHT_PIN
|
||||||
#define BACKLIGHT_LEVELS 3
|
# define BACKLIGHT_LEVELS 3
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Set 0 if debouncing isn't needed */
|
/* Set 0 if debouncing isn't needed */
|
||||||
|
@ -38,9 +59,9 @@
|
||||||
|
|
||||||
#define RGB_DI_PIN E2
|
#define RGB_DI_PIN E2
|
||||||
#ifdef RGB_DI_PIN
|
#ifdef RGB_DI_PIN
|
||||||
#define RGBLIGHT_ANIMATIONS
|
# define RGBLIGHT_ANIMATIONS
|
||||||
#define RGBLED_NUM 4
|
# define RGBLED_NUM 4
|
||||||
#define RGBLIGHT_HUE_STEP 8
|
# define RGBLIGHT_HUE_STEP 8
|
||||||
#define RGBLIGHT_SAT_STEP 8
|
# define RGBLIGHT_SAT_STEP 8
|
||||||
#define RGBLIGHT_VAL_STEP 8
|
# define RGBLIGHT_VAL_STEP 8
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -3,28 +3,82 @@
|
||||||
"url": "",
|
"url": "",
|
||||||
"maintainer": "qmk",
|
"maintainer": "qmk",
|
||||||
"layouts": {
|
"layouts": {
|
||||||
"LAYOUT": {
|
"LAYOUT_all": {
|
||||||
"layout": [{"x":1.5, "y":0}, {"x":2.5, "y":0}, {"label":"~", "x":0, "y":1}, {"label":"!", "x":1, "y":1}, {"label":"@", "x":2, "y":1}, {"label":"#", "x":3, "y":1}, {"label":"$", "x":4, "y":1}, {"label":"%", "x":5, "y":1}, {"label":"^", "x":6, "y":1}, {"label":"&", "x":7, "y":1}, {"label":"*", "x":8, "y":1}, {"label":"(", "x":9, "y":1}, {"label":")", "x":10, "y":1}, {"label":"_", "x":11, "y":1}, {"label":"+", "x":12, "y":1}, {"x":13, "y":1}, {"x":14, "y":1}, {"label":"Tab", "x":0, "y":2, "w":1.5}, {"label":"Q", "x":1.5, "y":2}, {"label":"W", "x":2.5, "y":2}, {"label":"E", "x":3.5, "y":2}, {"label":"R", "x":4.5, "y":2}, {"label":"T", "x":5.5, "y":2}, {"label":"Y", "x":6.5, "y":2}, {"label":"U", "x":7.5, "y":2}, {"label":"I", "x":8.5, "y":2}, {"label":"O", "x":9.5, "y":2}, {"label":"P", "x":10.5, "y":2}, {"label":"{", "x":11.5, "y":2}, {"label":"}", "x":12.5, "y":2}, {"label":"|", "x":13.5, "y":2, "w":1.5}, {"label":"Caps Lock", "x":0, "y":3, "w":1.75}, {"label":"A", "x":1.75, "y":3}, {"label":"S", "x":2.75, "y":3}, {"label":"D", "x":3.75, "y":3}, {"label":"F", "x":4.75, "y":3}, {"label":"G", "x":5.75, "y":3}, {"label":"H", "x":6.75, "y":3}, {"label":"J", "x":7.75, "y":3}, {"label":"K", "x":8.75, "y":3}, {"label":"L", "x":9.75, "y":3}, {"label":":", "x":10.75, "y":3}, {"label":"\"", "x":11.75, "y":3}, {"label":"Enter", "x":12.75, "y":3, "w":2.25}, {"x":0, "y":4}, {"x":1, "y":4}, {"label":"Z", "x":2, "y":4}, {"label":"X", "x":3, "y":4}, {"label":"C", "x":4, "y":4}, {"label":"V", "x":5, "y":4}, {"label":"B", "x":6, "y":4}, {"label":"N", "x":7, "y":4}, {"label":"M", "x":8, "y":4}, {"label":"<", "x":9, "y":4}, {"label":">", "x":10, "y":4}, {"label":"?", "x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}, {"label":"Ctrl", "x":0, "y":5, "w":1.25}, {"label":"Win", "x":1.25, "y":5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5, "w":1.25}, {"x":3.75, "y":5, "w":6.25}, {"label":"Alt", "x":10, "y":5}, {"label":"Win", "x":11, "y":5}, {"label":"Menu", "x":12, "y":5}, {"label":"Ctrl", "x":13, "y":5}, {"x":14, "y":5}]
|
"layout": [
|
||||||
},
|
{"x":1.5, "y":0},
|
||||||
|
{"x":2.5, "y":0},
|
||||||
|
|
||||||
"LAYOUT_std_ansi": {
|
{"label":"~", "x":0, "y":1},
|
||||||
"layout": [{"x":1.5, "y":0}, {"x":2.5, "y":0}, {"label":"~", "x":0, "y":1}, {"label":"!", "x":1, "y":1}, {"label":"@", "x":2, "y":1}, {"label":"#", "x":3, "y":1}, {"label":"$", "x":4, "y":1}, {"label":"%", "x":5, "y":1}, {"label":"^", "x":6, "y":1}, {"label":"&", "x":7, "y":1}, {"label":"*", "x":8, "y":1}, {"label":"(", "x":9, "y":1}, {"label":")", "x":10, "y":1}, {"label":"_", "x":11, "y":1}, {"label":"+", "x":12, "y":1}, {"label":"Backspace", "x":13, "y":1, "w":2}, {"label":"Tab", "x":0, "y":2, "w":1.5}, {"label":"Q", "x":1.5, "y":2}, {"label":"W", "x":2.5, "y":2}, {"label":"E", "x":3.5, "y":2}, {"label":"R", "x":4.5, "y":2}, {"label":"T", "x":5.5, "y":2}, {"label":"Y", "x":6.5, "y":2}, {"label":"U", "x":7.5, "y":2}, {"label":"I", "x":8.5, "y":2}, {"label":"O", "x":9.5, "y":2}, {"label":"P", "x":10.5, "y":2}, {"label":"{", "x":11.5, "y":2}, {"label":"}", "x":12.5, "y":2}, {"label":"|", "x":13.5, "y":2, "w":1.5}, {"label":"Caps Lock", "x":0, "y":3, "w":1.75}, {"label":"A", "x":1.75, "y":3}, {"label":"S", "x":2.75, "y":3}, {"label":"D", "x":3.75, "y":3}, {"label":"F", "x":4.75, "y":3}, {"label":"G", "x":5.75, "y":3}, {"label":"H", "x":6.75, "y":3}, {"label":"J", "x":7.75, "y":3}, {"label":"K", "x":8.75, "y":3}, {"label":"L", "x":9.75, "y":3}, {"label":":", "x":10.75, "y":3}, {"label":"\"", "x":11.75, "y":3}, {"label":"Enter", "x":12.75, "y":3, "w":2.25}, {"label":"Shift", "x":0, "y":4, "w":2.25}, {"label":"Z", "x":2.25, "y":4}, {"label":"X", "x":3.25, "y":4}, {"label":"C", "x":4.25, "y":4}, {"label":"V", "x":5.25, "y":4}, {"label":"B", "x":6.25, "y":4}, {"label":"N", "x":7.25, "y":4}, {"label":"M", "x":8.25, "y":4}, {"label":"<", "x":9.25, "y":4}, {"label":">", "x":10.25, "y":4}, {"label":"?", "x":11.25, "y":4}, {"label":"Shift", "x":12.25, "y":4, "w":2.75}, {"label":"Ctrl", "x":0, "y":5, "w":1.25}, {"label":"Win", "x":1.25, "y":5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5, "w":1.25}, {"x":3.75, "y":5, "w":6.25}, {"label":"Alt", "x":10, "y":5, "w":1.25}, {"label":"Win", "x":11.25, "y":5, "w":1.25}, {"label":"Menu", "x":12.5, "y":5, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":5, "w":1.25}]
|
{"label":"!", "x":1, "y":1},
|
||||||
},
|
{"label":"@", "x":2, "y":1},
|
||||||
|
{"label":"#", "x":3, "y":1},
|
||||||
|
{"label":"$", "x":4, "y":1},
|
||||||
|
{"label":"%", "x":5, "y":1},
|
||||||
|
{"label":"^", "x":6, "y":1},
|
||||||
|
{"label":"&", "x":7, "y":1},
|
||||||
|
{"label":"*", "x":8, "y":1},
|
||||||
|
{"label":"(", "x":9, "y":1},
|
||||||
|
{"label":")", "x":10, "y":1},
|
||||||
|
{"label":"_", "x":11, "y":1},
|
||||||
|
{"label":"+", "x":12, "y":1},
|
||||||
|
{"x":13, "y":1},
|
||||||
|
{"x":14, "y":1},
|
||||||
|
|
||||||
"LAYOUT_std_splits": {
|
{"label":"Tab", "x":0, "y":2, "w":1.5},
|
||||||
"layout": [{"x":1.5, "y":0}, {"x":2.5, "y":0}, {"label":"~", "x":0, "y":1}, {"label":"!", "x":1, "y":1}, {"label":"@", "x":2, "y":1}, {"label":"#", "x":3, "y":1}, {"label":"$", "x":4, "y":1}, {"label":"%", "x":5, "y":1}, {"label":"^", "x":6, "y":1}, {"label":"&", "x":7, "y":1}, {"label":"*", "x":8, "y":1}, {"label":"(", "x":9, "y":1}, {"label":")", "x":10, "y":1}, {"label":"_", "x":11, "y":1}, {"label":"+", "x":12, "y":1}, {"x":13, "y":1}, {"x":14, "y":1}, {"label":"Tab", "x":0, "y":2, "w":1.5}, {"label":"Q", "x":1.5, "y":2}, {"label":"W", "x":2.5, "y":2}, {"label":"E", "x":3.5, "y":2}, {"label":"R", "x":4.5, "y":2}, {"label":"T", "x":5.5, "y":2}, {"label":"Y", "x":6.5, "y":2}, {"label":"U", "x":7.5, "y":2}, {"label":"I", "x":8.5, "y":2}, {"label":"O", "x":9.5, "y":2}, {"label":"P", "x":10.5, "y":2}, {"label":"{", "x":11.5, "y":2}, {"label":"}", "x":12.5, "y":2}, {"label":"|", "x":13.5, "y":2, "w":1.5}, {"label":"Caps Lock", "x":0, "y":3, "w":1.75}, {"label":"A", "x":1.75, "y":3}, {"label":"S", "x":2.75, "y":3}, {"label":"D", "x":3.75, "y":3}, {"label":"F", "x":4.75, "y":3}, {"label":"G", "x":5.75, "y":3}, {"label":"H", "x":6.75, "y":3}, {"label":"J", "x":7.75, "y":3}, {"label":"K", "x":8.75, "y":3}, {"label":"L", "x":9.75, "y":3}, {"label":":", "x":10.75, "y":3}, {"label":"\"", "x":11.75, "y":3}, {"label":"Enter", "x":12.75, "y":3, "w":2.25}, {"label":"Shift", "x":0, "y":4, "w":1.25}, {"x":1.25, "y":4}, {"label":"Z", "x":2.25, "y":4}, {"label":"X", "x":3.25, "y":4}, {"label":"C", "x":4.25, "y":4}, {"label":"V", "x":5.25, "y":4}, {"label":"B", "x":6.25, "y":4}, {"label":"N", "x":7.25, "y":4}, {"label":"M", "x":8.25, "y":4}, {"label":"<", "x":9.25, "y":4}, {"label":">", "x":10.25, "y":4}, {"label":"?", "x":11.25, "y":4}, {"label":"Shift", "x":12.25, "y":4, "w":1.75}, {"x":14, "y":4}, {"label":"Ctrl", "x":0, "y":5, "w":1.25}, {"label":"Win", "x":1.25, "y":5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5, "w":1.25}, {"x":3.75, "y":5, "w":6.25}, {"label":"Alt", "x":10, "y":5, "w":1.25}, {"label":"Win", "x":11.25, "y":5, "w":1.25}, {"label":"Menu", "x":12.5, "y":5, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":5, "w":1.25}]
|
{"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},
|
||||||
|
|
||||||
"LAYOUT_hhkb": {
|
{"label":"Caps Lock", "x":0, "y":3, "w":1.75},
|
||||||
"layout": [{"x":1.5, "y":0}, {"x":2.5, "y":0}, {"label":"~", "x":0, "y":1}, {"label":"!", "x":1, "y":1}, {"label":"@", "x":2, "y":1}, {"label":"#", "x":3, "y":1}, {"label":"$", "x":4, "y":1}, {"label":"%", "x":5, "y":1}, {"label":"^", "x":6, "y":1}, {"label":"&", "x":7, "y":1}, {"label":"*", "x":8, "y":1}, {"label":"(", "x":9, "y":1}, {"label":")", "x":10, "y":1}, {"label":"_", "x":11, "y":1}, {"label":"+", "x":12, "y":1}, {"x":13, "y":1}, {"x":14, "y":1}, {"label":"Tab", "x":0, "y":2, "w":1.5}, {"label":"Q", "x":1.5, "y":2}, {"label":"W", "x":2.5, "y":2}, {"label":"E", "x":3.5, "y":2}, {"label":"R", "x":4.5, "y":2}, {"label":"T", "x":5.5, "y":2}, {"label":"Y", "x":6.5, "y":2}, {"label":"U", "x":7.5, "y":2}, {"label":"I", "x":8.5, "y":2}, {"label":"O", "x":9.5, "y":2}, {"label":"P", "x":10.5, "y":2}, {"label":"{", "x":11.5, "y":2}, {"label":"}", "x":12.5, "y":2}, {"label":"|", "x":13.5, "y":2, "w":1.5}, {"label":"Caps Lock", "x":0, "y":3, "w":1.75}, {"label":"A", "x":1.75, "y":3}, {"label":"S", "x":2.75, "y":3}, {"label":"D", "x":3.75, "y":3}, {"label":"F", "x":4.75, "y":3}, {"label":"G", "x":5.75, "y":3}, {"label":"H", "x":6.75, "y":3}, {"label":"J", "x":7.75, "y":3}, {"label":"K", "x":8.75, "y":3}, {"label":"L", "x":9.75, "y":3}, {"label":":", "x":10.75, "y":3}, {"label":"\"", "x":11.75, "y":3}, {"label":"Enter", "x":12.75, "y":3, "w":2.25}, {"label":"Shift", "x":0, "y":4, "w":2.25}, {"label":"Z", "x":2.25, "y":4}, {"label":"X", "x":3.25, "y":4}, {"label":"C", "x":4.25, "y":4}, {"label":"V", "x":5.25, "y":4}, {"label":"B", "x":6.25, "y":4}, {"label":"N", "x":7.25, "y":4}, {"label":"M", "x":8.25, "y":4}, {"label":"<", "x":9.25, "y":4}, {"label":">", "x":10.25, "y":4}, {"label":"?", "x":11.25, "y":4}, {"label":"Shift", "x":12.25, "y":4, "w":1.75}, {"x":14, "y":4}, {"label":"Win", "x":1.5, "y":5, "w":1.25}, {"label":"Alt", "x":2.75, "y":5, "w":1.5}, {"x":4.25, "y":5, "w":6.25}, {"label":"Alt", "x":10.5, "y":5, "w":1.5}, {"label":"Win", "x":12, "y":5, "w":1.25}]
|
{"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},
|
||||||
|
|
||||||
"LAYOUT_split_arrows": {
|
{"label":"Shift", "x":0, "y":4},
|
||||||
"layout": [{"x":1.5, "y":0}, {"x":2.5, "y":0}, {"label":"~", "x":0, "y":1}, {"label":"!", "x":1, "y":1}, {"label":"@", "x":2, "y":1}, {"label":"#", "x":3, "y":1}, {"label":"$", "x":4, "y":1}, {"label":"%", "x":5, "y":1}, {"label":"^", "x":6, "y":1}, {"label":"&", "x":7, "y":1}, {"label":"*", "x":8, "y":1}, {"label":"(", "x":9, "y":1}, {"label":")", "x":10, "y":1}, {"label":"_", "x":11, "y":1}, {"label":"+", "x":12, "y":1}, {"x":13, "y":1}, {"x":14, "y":1}, {"label":"Tab", "x":0, "y":2, "w":1.5}, {"label":"Q", "x":1.5, "y":2}, {"label":"W", "x":2.5, "y":2}, {"label":"E", "x":3.5, "y":2}, {"label":"R", "x":4.5, "y":2}, {"label":"T", "x":5.5, "y":2}, {"label":"Y", "x":6.5, "y":2}, {"label":"U", "x":7.5, "y":2}, {"label":"I", "x":8.5, "y":2}, {"label":"O", "x":9.5, "y":2}, {"label":"P", "x":10.5, "y":2}, {"label":"{", "x":11.5, "y":2}, {"label":"}", "x":12.5, "y":2}, {"label":"|", "x":13.5, "y":2, "w":1.5}, {"label":"Caps Lock", "x":0, "y":3, "w":1.75}, {"label":"A", "x":1.75, "y":3}, {"label":"S", "x":2.75, "y":3}, {"label":"D", "x":3.75, "y":3}, {"label":"F", "x":4.75, "y":3}, {"label":"G", "x":5.75, "y":3}, {"label":"H", "x":6.75, "y":3}, {"label":"J", "x":7.75, "y":3}, {"label":"K", "x":8.75, "y":3}, {"label":"L", "x":9.75, "y":3}, {"label":":", "x":10.75, "y":3}, {"label":"\"", "x":11.75, "y":3}, {"label":"Enter", "x":12.75, "y":3, "w":2.25}, {"label":"Shift", "x":0, "y":4, "w":1.25}, {"x":1.25, "y":4}, {"label":"Z", "x":2.25, "y":4}, {"label":"X", "x":3.25, "y":4}, {"label":"C", "x":4.25, "y":4}, {"label":"V", "x":5.25, "y":4}, {"label":"B", "x":6.25, "y":4}, {"label":"N", "x":7.25, "y":4}, {"label":"M", "x":8.25, "y":4}, {"label":"<", "x":9.25, "y":4}, {"label":">", "x":10.25, "y":4}, {"label":"?", "x":11.25, "y":4, "w":1.75}, {"x":13, "y":4}, {"x":14, "y":4}, {"label":"Ctrl", "x":0, "y":5, "w":1.25}, {"label":"Win", "x":1.25, "y":5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5, "w":1.25}, {"x":3.75, "y":5, "w":6.25}, {"label":"Alt", "x":10, "y":5}, {"label":"Win", "x":11, "y":5}, {"label":"Menu", "x":12, "y":5}, {"label":"Ctrl", "x":13, "y":5}, {"x":14, "y":5}]
|
{"x":1, "y":4},
|
||||||
},
|
{"label":"Z", "x":2, "y":4},
|
||||||
|
{"label":"X", "x":3, "y":4},
|
||||||
|
{"label":"C", "x":4, "y":4},
|
||||||
|
{"label":"V", "x":5, "y":4},
|
||||||
|
{"label":"B", "x":6, "y":4},
|
||||||
|
{"label":"N", "x":7, "y":4},
|
||||||
|
{"label":"M", "x":8, "y":4},
|
||||||
|
{"label":"<", "x":9, "y":4},
|
||||||
|
{"label":">", "x":10, "y":4},
|
||||||
|
{"label":"?", "x":11, "y":4},
|
||||||
|
{"x":12, "y":4},
|
||||||
|
{"x":13, "y":4},
|
||||||
|
{"x":14, "y":4},
|
||||||
|
|
||||||
"LAYOUT_2u_split_arrows": {
|
{"label":"Ctrl", "x":0, "y":5, "w":1.25},
|
||||||
"layout": [{"x":1.5, "y":0}, {"x":2.5, "y":0}, {"label":"~", "x":0, "y":1}, {"label":"!", "x":1, "y":1}, {"label":"@", "x":2, "y":1}, {"label":"#", "x":3, "y":1}, {"label":"$", "x":4, "y":1}, {"label":"%", "x":5, "y":1}, {"label":"^", "x":6, "y":1}, {"label":"&", "x":7, "y":1}, {"label":"*", "x":8, "y":1}, {"label":"(", "x":9, "y":1}, {"label":")", "x":10, "y":1}, {"label":"_", "x":11, "y":1}, {"label":"+", "x":12, "y":1}, {"x":13, "y":1}, {"x":14, "y":1}, {"label":"Tab", "x":0, "y":2, "w":1.5}, {"label":"Q", "x":1.5, "y":2}, {"label":"W", "x":2.5, "y":2}, {"label":"E", "x":3.5, "y":2}, {"label":"R", "x":4.5, "y":2}, {"label":"T", "x":5.5, "y":2}, {"label":"Y", "x":6.5, "y":2}, {"label":"U", "x":7.5, "y":2}, {"label":"I", "x":8.5, "y":2}, {"label":"O", "x":9.5, "y":2}, {"label":"P", "x":10.5, "y":2}, {"label":"{", "x":11.5, "y":2}, {"label":"}", "x":12.5, "y":2}, {"label":"|", "x":13.5, "y":2, "w":1.5}, {"label":"Caps Lock", "x":0, "y":3, "w":1.75}, {"label":"A", "x":1.75, "y":3}, {"label":"S", "x":2.75, "y":3}, {"label":"D", "x":3.75, "y":3}, {"label":"F", "x":4.75, "y":3}, {"label":"G", "x":5.75, "y":3}, {"label":"H", "x":6.75, "y":3}, {"label":"J", "x":7.75, "y":3}, {"label":"K", "x":8.75, "y":3}, {"label":"L", "x":9.75, "y":3}, {"label":":", "x":10.75, "y":3}, {"label":"\"", "x":11.75, "y":3}, {"label":"Enter", "x":12.75, "y":3, "w":2.25}, {"label":"Shift", "x":0, "y":4}, {"x":1, "y":4}, {"label":"Z", "x":2, "y":4}, {"label":"X", "x":3, "y":4}, {"label":"C", "x":4, "y":4}, {"label":"V", "x":5, "y":4}, {"label":"B", "x":6, "y":4}, {"label":"N", "x":7, "y":4}, {"label":"M", "x":8, "y":4}, {"label":"<", "x":9, "y":4}, {"label":">", "x":10, "y":4}, {"label":"?", "x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}, {"label":"Ctrl", "x":0, "y":5, "w":1.25}, {"label":"Win", "x":1.25, "y":5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5, "w":1.25}, {"x":3.75, "y":5, "w":6.25}, {"label":"Alt", "x":10, "y":5}, {"label":"Win", "x":11, "y":5}, {"label":"Menu", "x":12, "y":5}, {"label":"Ctrl", "x":13, "y":5}, {"x":14, "y":5}]
|
{"label":"Win", "x":1.25, "y":5, "w":1.25},
|
||||||
|
{"label":"Alt", "x":2.5, "y":5, "w":1.25},
|
||||||
|
{"x":3.75, "y":5, "w":6.25},
|
||||||
|
{"label":"Alt", "x":10, "y":5},
|
||||||
|
{"label":"Win", "x":11, "y":5},
|
||||||
|
{"label":"Menu", "x":12, "y":5},
|
||||||
|
{"label":"Ctrl", "x":13, "y":5},
|
||||||
|
{"x":14, "y":5}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,30 +1,39 @@
|
||||||
|
/* Copyright 2018-2021 @fixed, MechMerlin, QMK
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
#include QMK_KEYBOARD_H
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
LAYOUT(
|
[0] = LAYOUT_all(
|
||||||
KC_VOLU, KC_VOLD,
|
KC_VOLU, KC_VOLD,
|
||||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_NO, KC_BSPC,
|
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, XXXXXXX, KC_BSPC,
|
||||||
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_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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||||
KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_RSFT, KC_NO,
|
KC_LSFT, XXXXXXX, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, XXXXXXX, KC_RSFT, XXXXXXX,
|
||||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_NO, KC_APP, KC_RCTL),
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), XXXXXXX, KC_APP, KC_RCTL
|
||||||
|
),
|
||||||
|
|
||||||
|
[1] = LAYOUT_all(
|
||||||
|
KC_MNXT, KC_MPRV,
|
||||||
|
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, KC_SLCK, KC_PAUS, KC_UP, _______, RESET,
|
||||||
|
_______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_END, KC_PGDN, KC_DOWN, KC_DOWN, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
|
||||||
LAYOUT(
|
|
||||||
KC_MNXT, KC_MPRV,
|
|
||||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_DEL,
|
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, RESET,
|
|
||||||
KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS,
|
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_DOWN, KC_DOWN, KC_TRNS, KC_TRNS,
|
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
|
||||||
};
|
};
|
||||||
|
|
||||||
void led_set_user(uint8_t usb_led) {
|
|
||||||
if (usb_led & (1 << USB_LED_CAPS_LOCK)) {
|
|
||||||
setPinOutput(B2);
|
|
||||||
writePinLow(B2);
|
|
||||||
} else {
|
|
||||||
setPinInput(B2);
|
|
||||||
writePinLow(B2);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,28 +1,39 @@
|
||||||
|
/* Copyright 2018-2021 @fixed, MechMerlin, QMK
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
#include QMK_KEYBOARD_H
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
LAYOUT(
|
[0] = LAYOUT_all(
|
||||||
KC_VOLU, KC_VOLD,
|
KC_VOLU, KC_VOLD,
|
||||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV,
|
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV,
|
||||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
|
||||||
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||||
KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_RSFT, MO(1),
|
KC_LSFT, XXXXXXX, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, XXXXXXX, KC_RSFT, MO(1),
|
||||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_NO, KC_APP, KC_RCTL),
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, XXXXXXX, KC_APP, KC_RCTL
|
||||||
|
),
|
||||||
|
|
||||||
|
[1] = LAYOUT_all(
|
||||||
|
KC_MNXT, KC_MPRV,
|
||||||
|
KC_PWR, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL,
|
||||||
|
KC_CAPS, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______, RESET,
|
||||||
|
_______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_END, KC_PGDN, KC_DOWN, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
|
||||||
LAYOUT(
|
|
||||||
KC_MNXT, KC_MPRV,
|
|
||||||
KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL,
|
|
||||||
KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, RESET,
|
|
||||||
KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS,
|
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_DOWN, KC_DOWN, KC_TRNS, KC_TRNS,
|
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
|
||||||
};
|
};
|
||||||
|
|
||||||
void led_set_user(uint8_t usb_led) {
|
|
||||||
if (usb_led & (1 << USB_LED_CAPS_LOCK)) {
|
|
||||||
DDRB |= (1 << 2); PORTB &= ~(1 << 2);
|
|
||||||
} else {
|
|
||||||
DDRB &= ~(1 << 2); PORTB &= ~(1 << 2);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -4,12 +4,18 @@
|
||||||
|
|
||||||
A customizable 60% keyboard.
|
A customizable 60% keyboard.
|
||||||
|
|
||||||
Keyboard Maintainer: QMK Community
|
* Keyboard Maintainer: [The QMK Community](https://github.com/qmk)
|
||||||
Hardware Supported: ALF X2 60%
|
* Hardware Supported: ALF X2 60%
|
||||||
Hardware Availability: [zFrontier](https://en.zfrontier.com/products/group-buy-alf-x2-60)
|
* Hardware Availability: [zFrontier](https://en.zfrontier.com/products/group-buy-alf-x2-60)
|
||||||
|
|
||||||
Make example for this keyboard (after setting up your build environment):
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
make alf/x2:default
|
make alf/x2:default
|
||||||
|
|
||||||
|
Flashing example for this keyboard:
|
||||||
|
|
||||||
|
make alf/x2:default:flash
|
||||||
|
|
||||||
|
To reset the board into bootloader mode, hold Space+B while plugging it in.
|
||||||
|
|
||||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||||
|
|
|
@ -5,15 +5,17 @@ MCU = atmega32u4
|
||||||
BOOTLOADER = atmel-dfu
|
BOOTLOADER = atmel-dfu
|
||||||
|
|
||||||
# Build Options
|
# Build Options
|
||||||
# comment out to disable the options.
|
# change yes to no to disable
|
||||||
#
|
#
|
||||||
BOOTMAGIC_ENABLE = lite # Enable Bootmagic Lite
|
BOOTMAGIC_ENABLE = lite # Enable Bootmagic Lite
|
||||||
MOUSEKEY_ENABLE = yes # Mouse keys
|
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||||
CONSOLE_ENABLE = no # Console for debug
|
CONSOLE_ENABLE = no # Console for debug
|
||||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
AUDIO_ENABLE = no
|
NKRO_ENABLE = yes # USB Nkey Rollover
|
||||||
RGBLIGHT_ENABLE = yes
|
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
||||||
|
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
|
||||||
|
AUDIO_ENABLE = no # Audio output
|
||||||
|
|
|
@ -1 +1,17 @@
|
||||||
|
/* Copyright 2018 @fixed
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
#include "x2.h"
|
#include "x2.h"
|
||||||
|
|
|
@ -1,97 +1,38 @@
|
||||||
|
/* Copyright 2018-2021 @fixed, MechMerlin, QMK
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
|
||||||
#define XXX KC_NO
|
#define ___ KC_NO
|
||||||
|
|
||||||
// k44 and k48 are the microswitches at the top of the PCB
|
// K44 and K48 are the microswitches at the top of the PCB
|
||||||
|
|
||||||
#define LAYOUT( \
|
#define LAYOUT_all( \
|
||||||
k44, k48, \
|
K44, K48, \
|
||||||
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, \
|
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
|
||||||
k10, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, \
|
K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \
|
||||||
k20, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, \
|
K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \
|
||||||
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, \
|
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \
|
||||||
k40, k41, k43, k46, k4A, k4B, k4C, k4D, k4E \
|
K40, K41, K43, K46, K4A, K4B, K4C, K4D, K4E \
|
||||||
) { \
|
) { \
|
||||||
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E }, \
|
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
|
||||||
{ k10, XXX, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E }, \
|
{ K10, ___, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \
|
||||||
{ k20, XXX, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, XXX }, \
|
{ K20, ___, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, ___ }, \
|
||||||
{ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E }, \
|
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \
|
||||||
{ k40, k41, XXX, k43, k44, XXX, k46, XXX, k48, XXX, k4A, k4B, k4C, k4D, k4E } \
|
{ K40, K41, ___, K43, K44, ___, K46, ___, K48, ___, K4A, K4B, K4C, K4D, K4E } \
|
||||||
}
|
|
||||||
|
|
||||||
#define LAYOUT_std_ansi( \
|
|
||||||
k44, k48, \
|
|
||||||
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0E, \
|
|
||||||
k10, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, \
|
|
||||||
k20, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, \
|
|
||||||
k30, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3D, \
|
|
||||||
k40, k41, k43, k46, k4A, k4B, k4D, k4E \
|
|
||||||
) { \
|
|
||||||
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, XXX, k0E }, \
|
|
||||||
{ k10, XXX, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E }, \
|
|
||||||
{ k20, XXX, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, XXX }, \
|
|
||||||
{ k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, XXX, k3D, XXX }, \
|
|
||||||
{ k40, k41, XXX, k43, k44, XXX, k46, XXX, k48, XXX, k4A, k4B, XXX, k4D, k4E } \
|
|
||||||
}
|
|
||||||
|
|
||||||
#define LAYOUT_std_splits( \
|
|
||||||
k44, k48, \
|
|
||||||
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, \
|
|
||||||
k10, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, \
|
|
||||||
k20, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, \
|
|
||||||
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3D, k3E, \
|
|
||||||
k40, k41, k43, k46, k4A, k4B, k4D, k4E \
|
|
||||||
) { \
|
|
||||||
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E }, \
|
|
||||||
{ k10, XXX, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E }, \
|
|
||||||
{ k20, XXX, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, XXX }, \
|
|
||||||
{ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, XXX, k3D, k3E }, \
|
|
||||||
{ k40, k41, XXX, k43, k44, XXX, k46, XXX, k48, XXX, k4A, k4B, XXX, k4D, k4E } \
|
|
||||||
}
|
|
||||||
|
|
||||||
#define LAYOUT_hhkb( \
|
|
||||||
k44, k48, \
|
|
||||||
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, \
|
|
||||||
k10, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, \
|
|
||||||
k20, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, \
|
|
||||||
k30, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3D, k3E, \
|
|
||||||
k41, k43, k46, k4A, k4B \
|
|
||||||
) { \
|
|
||||||
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E }, \
|
|
||||||
{ k10, XXX, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E }, \
|
|
||||||
{ k20, XXX, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, XXX }, \
|
|
||||||
{ k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, XXX, k3D, k3E }, \
|
|
||||||
{ XXX, k41, XXX, k43, k44, XXX, k46, XXX, k48, XXX, k4A, k4B, XXX, XXX, XXX } \
|
|
||||||
}
|
|
||||||
|
|
||||||
#define LAYOUT_2u_split_arrows( \
|
|
||||||
k44, k48, \
|
|
||||||
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, \
|
|
||||||
k10, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, \
|
|
||||||
k20, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, \
|
|
||||||
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, \
|
|
||||||
k40, k41, k43, k46, k4A, k4B, k4C, k4D, k4E \
|
|
||||||
) { \
|
|
||||||
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E }, \
|
|
||||||
{ k10, XXX, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E }, \
|
|
||||||
{ k20, XXX, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, XXX }, \
|
|
||||||
{ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E }, \
|
|
||||||
{ k40, k41, XXX, k43, k44, XXX, k46, XXX, k48, XXX, k4A, k4B, k4C, k4D, k4E } \
|
|
||||||
}
|
|
||||||
|
|
||||||
#define LAYOUT_split_arrows( \
|
|
||||||
k44, k48, \
|
|
||||||
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, \
|
|
||||||
k10, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, \
|
|
||||||
k20, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, \
|
|
||||||
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3D, k3E, \
|
|
||||||
k40, k41, k43, k46, k4A, k4B, k4C, k4D, k4E \
|
|
||||||
) { \
|
|
||||||
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E }, \
|
|
||||||
{ k10, XXX, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E }, \
|
|
||||||
{ k20, XXX, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, XXX }, \
|
|
||||||
{ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, XXX, k3D, k3E }, \
|
|
||||||
{ k40, k41, XXX, k43, k44, XXX, k46, XXX, k48, XXX, k4A, k4B, k4C, k4D, k4E } \
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,8 +2,86 @@
|
||||||
"keyboard_name": "Swift65",
|
"keyboard_name": "Swift65",
|
||||||
"url": "https://swiftcables.net/",
|
"url": "https://swiftcables.net/",
|
||||||
"maintainer": "Spooknik",
|
"maintainer": "Spooknik",
|
||||||
|
"layout_aliases": {
|
||||||
|
"LAYOUT": "LAYOUT_625u_space_split_bs",
|
||||||
|
"LAYOUT_all": "LAYOUT_625u_space_split_bs"
|
||||||
|
},
|
||||||
"layouts": {
|
"layouts": {
|
||||||
"LAYOUT": {
|
"LAYOUT_625u_space": {
|
||||||
|
"layout": [
|
||||||
|
{"label":"K00 (B1,F7)", "x":0, "y":0},
|
||||||
|
{"label":"K01 (B1,F6)", "x":1, "y":0},
|
||||||
|
{"label":"K02 (B1,F5)", "x":2, "y":0},
|
||||||
|
{"label":"K03 (B1,F4)", "x":3, "y":0},
|
||||||
|
{"label":"K04 (B1,F1)", "x":4, "y":0},
|
||||||
|
{"label":"K05 (B1,F0)", "x":5, "y":0},
|
||||||
|
{"label":"K06 (B1,C7)", "x":6, "y":0},
|
||||||
|
{"label":"K07 (B1,C6)", "x":7, "y":0},
|
||||||
|
{"label":"K08 (B1,B6)", "x":8, "y":0},
|
||||||
|
{"label":"K09 (B1,B5)", "x":9, "y":0},
|
||||||
|
{"label":"K0A (B1,B4)", "x":10, "y":0},
|
||||||
|
{"label":"K0B (B1,D7)", "x":11, "y":0},
|
||||||
|
{"label":"K0C (B1,D5)", "x":12, "y":0},
|
||||||
|
{"label":"K0D (B1,D3)", "x":13, "y":0, "w":2},
|
||||||
|
{"label":"K0E (B1,D1)", "x":15.25, "y":0},
|
||||||
|
|
||||||
|
{"label":"K10 (B2,F7)", "x":0, "y":1, "w":1.5},
|
||||||
|
{"label":"K11 (B2,F6)", "x":1.5, "y":1},
|
||||||
|
{"label":"K12 (B2,F5)", "x":2.5, "y":1},
|
||||||
|
{"label":"K13 (B2,F4)", "x":3.5, "y":1},
|
||||||
|
{"label":"K14 (B2,F1)", "x":4.5, "y":1},
|
||||||
|
{"label":"K15 (B2,F0)", "x":5.5, "y":1},
|
||||||
|
{"label":"K16 (B2,C7)", "x":6.5, "y":1},
|
||||||
|
{"label":"K17 (B2,C6)", "x":7.5, "y":1},
|
||||||
|
{"label":"K18 (B2,B6)", "x":8.5, "y":1},
|
||||||
|
{"label":"K19 (B2,B5)", "x":9.5, "y":1},
|
||||||
|
{"label":"K1A (B2,B4)", "x":10.5, "y":1},
|
||||||
|
{"label":"K1B (B2,D7)", "x":11.5, "y":1},
|
||||||
|
{"label":"K1C (B2,D5)", "x":12.5, "y":1},
|
||||||
|
{"label":"K1D (B2,D3)", "x":13.5, "y":1, "w":1.5},
|
||||||
|
{"label":"K1E (B2,D1)", "x":15.25, "y":1},
|
||||||
|
|
||||||
|
{"label":"K20 (B3,F7)", "x":0, "y":2, "w":1.75},
|
||||||
|
{"label":"K21 (B3,F6)", "x":1.75, "y":2},
|
||||||
|
{"label":"K22 (B3,F5)", "x":2.75, "y":2},
|
||||||
|
{"label":"K23 (B3,F4)", "x":3.75, "y":2},
|
||||||
|
{"label":"K24 (B3,F1)", "x":4.75, "y":2},
|
||||||
|
{"label":"K25 (B3,F0)", "x":5.75, "y":2},
|
||||||
|
{"label":"K26 (B3,C7)", "x":6.75, "y":2},
|
||||||
|
{"label":"K27 (B3,C6)", "x":7.75, "y":2},
|
||||||
|
{"label":"K28 (B3,B6)", "x":8.75, "y":2},
|
||||||
|
{"label":"K29 (B3,B5)", "x":9.75, "y":2},
|
||||||
|
{"label":"K2A (B3,B4)", "x":10.75, "y":2},
|
||||||
|
{"label":"K2B (B3,D7)", "x":11.75, "y":2},
|
||||||
|
{"label":"K2C (B3,D5)", "x":12.75, "y":2, "w":2.25},
|
||||||
|
{"label":"K2E (B3,D1)", "x":15.25, "y":2},
|
||||||
|
|
||||||
|
{"label":"K30 (D4,F7)", "x":0, "y":3, "w":2.25},
|
||||||
|
{"label":"K32 (D4,F5)", "x":2.25, "y":3},
|
||||||
|
{"label":"K33 (D4,F4)", "x":3.25, "y":3},
|
||||||
|
{"label":"K34 (D4,F1)", "x":4.25, "y":3},
|
||||||
|
{"label":"K35 (D4,F0)", "x":5.25, "y":3},
|
||||||
|
{"label":"K36 (D4,C7)", "x":6.25, "y":3},
|
||||||
|
{"label":"K37 (D4,C6)", "x":7.25, "y":3},
|
||||||
|
{"label":"K38 (D4,B6)", "x":8.25, "y":3},
|
||||||
|
{"label":"K39 (D4,B5)", "x":9.25, "y":3},
|
||||||
|
{"label":"K3A (D4,B4)", "x":10.25, "y":3},
|
||||||
|
{"label":"K3B (D4,D7)", "x":11.25, "y":3},
|
||||||
|
{"label":"K3C (D4,D5)", "x":12.25, "y":3, "w":1.75},
|
||||||
|
{"label":"K3D (D4,D3)", "x":14, "y":3},
|
||||||
|
|
||||||
|
{"label":"K40 (D6,F7)", "x":0, "y":4, "w":1.25},
|
||||||
|
{"label":"K41 (D6,F6)", "x":1.25, "y":4, "w":1.25},
|
||||||
|
{"label":"K43 (D6,F4)", "x":2.5, "y":4, "w":1.25},
|
||||||
|
{"label":"K46 (D6,C7)", "x":3.75, "y":4, "w":6.25},
|
||||||
|
{"label":"K4A (D6,B4)", "x":10, "y":4, "w":1.25},
|
||||||
|
{"label":"K4B (D6,D7)", "x":11.25, "y":4, "w":1.25},
|
||||||
|
{"label":"K4C (D6,D5)", "x":13, "y":4},
|
||||||
|
{"label":"K4D (D6,D3)", "x":14, "y":4},
|
||||||
|
{"label":"K4E (D6,D1)", "x":15, "y":4}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"LAYOUT_625u_space_split_bs": {
|
||||||
"layout": [
|
"layout": [
|
||||||
{"label":"K00 (B1,F7)", "x":0, "y":0},
|
{"label":"K00 (B1,F7)", "x":0, "y":0},
|
||||||
{"label":"K01 (B1,F6)", "x":1, "y":0},
|
{"label":"K01 (B1,F6)", "x":1, "y":0},
|
||||||
|
@ -21,6 +99,7 @@
|
||||||
{"label":"K0D (B1,D3)", "x":13, "y":0},
|
{"label":"K0D (B1,D3)", "x":13, "y":0},
|
||||||
{"label":"K0F (B1,D0)", "x":14, "y":0},
|
{"label":"K0F (B1,D0)", "x":14, "y":0},
|
||||||
{"label":"K0E (B1,D1)", "x":15.25, "y":0},
|
{"label":"K0E (B1,D1)", "x":15.25, "y":0},
|
||||||
|
|
||||||
{"label":"K10 (B2,F7)", "x":0, "y":1, "w":1.5},
|
{"label":"K10 (B2,F7)", "x":0, "y":1, "w":1.5},
|
||||||
{"label":"K11 (B2,F6)", "x":1.5, "y":1},
|
{"label":"K11 (B2,F6)", "x":1.5, "y":1},
|
||||||
{"label":"K12 (B2,F5)", "x":2.5, "y":1},
|
{"label":"K12 (B2,F5)", "x":2.5, "y":1},
|
||||||
|
@ -36,6 +115,7 @@
|
||||||
{"label":"K1C (B2,D5)", "x":12.5, "y":1},
|
{"label":"K1C (B2,D5)", "x":12.5, "y":1},
|
||||||
{"label":"K1D (B2,D3)", "x":13.5, "y":1, "w":1.5},
|
{"label":"K1D (B2,D3)", "x":13.5, "y":1, "w":1.5},
|
||||||
{"label":"K1E (B2,D1)", "x":15.25, "y":1},
|
{"label":"K1E (B2,D1)", "x":15.25, "y":1},
|
||||||
|
|
||||||
{"label":"K20 (B3,F7)", "x":0, "y":2, "w":1.75},
|
{"label":"K20 (B3,F7)", "x":0, "y":2, "w":1.75},
|
||||||
{"label":"K21 (B3,F6)", "x":1.75, "y":2},
|
{"label":"K21 (B3,F6)", "x":1.75, "y":2},
|
||||||
{"label":"K22 (B3,F5)", "x":2.75, "y":2},
|
{"label":"K22 (B3,F5)", "x":2.75, "y":2},
|
||||||
|
@ -50,6 +130,7 @@
|
||||||
{"label":"K2B (B3,D7)", "x":11.75, "y":2},
|
{"label":"K2B (B3,D7)", "x":11.75, "y":2},
|
||||||
{"label":"K2C (B3,D5)", "x":12.75, "y":2, "w":2.25},
|
{"label":"K2C (B3,D5)", "x":12.75, "y":2, "w":2.25},
|
||||||
{"label":"K2E (B3,D1)", "x":15.25, "y":2},
|
{"label":"K2E (B3,D1)", "x":15.25, "y":2},
|
||||||
|
|
||||||
{"label":"K30 (D4,F7)", "x":0, "y":3, "w":2.25},
|
{"label":"K30 (D4,F7)", "x":0, "y":3, "w":2.25},
|
||||||
{"label":"K32 (D4,F5)", "x":2.25, "y":3},
|
{"label":"K32 (D4,F5)", "x":2.25, "y":3},
|
||||||
{"label":"K33 (D4,F4)", "x":3.25, "y":3},
|
{"label":"K33 (D4,F4)", "x":3.25, "y":3},
|
||||||
|
@ -63,6 +144,7 @@
|
||||||
{"label":"K3B (D4,D7)", "x":11.25, "y":3},
|
{"label":"K3B (D4,D7)", "x":11.25, "y":3},
|
||||||
{"label":"K3C (D4,D5)", "x":12.25, "y":3, "w":1.75},
|
{"label":"K3C (D4,D5)", "x":12.25, "y":3, "w":1.75},
|
||||||
{"label":"K3D (D4,D3)", "x":14, "y":3},
|
{"label":"K3D (D4,D3)", "x":14, "y":3},
|
||||||
|
|
||||||
{"label":"K40 (D6,F7)", "x":0, "y":4, "w":1.25},
|
{"label":"K40 (D6,F7)", "x":0, "y":4, "w":1.25},
|
||||||
{"label":"K41 (D6,F6)", "x":1.25, "y":4, "w":1.25},
|
{"label":"K41 (D6,F6)", "x":1.25, "y":4, "w":1.25},
|
||||||
{"label":"K43 (D6,F4)", "x":2.5, "y":4, "w":1.25},
|
{"label":"K43 (D6,F4)", "x":2.5, "y":4, "w":1.25},
|
||||||
|
@ -73,7 +155,153 @@
|
||||||
{"label":"K4D (D6,D3)", "x":14, "y":4},
|
{"label":"K4D (D6,D3)", "x":14, "y":4},
|
||||||
{"label":"K4E (D6,D1)", "x":15, "y":4}
|
{"label":"K4E (D6,D1)", "x":15, "y":4}
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
"LAYOUT_7u_space": {
|
||||||
|
"layout": [
|
||||||
|
{"label":"K00 (B1,F7)", "x":0, "y":0},
|
||||||
|
{"label":"K01 (B1,F6)", "x":1, "y":0},
|
||||||
|
{"label":"K02 (B1,F5)", "x":2, "y":0},
|
||||||
|
{"label":"K03 (B1,F4)", "x":3, "y":0},
|
||||||
|
{"label":"K04 (B1,F1)", "x":4, "y":0},
|
||||||
|
{"label":"K05 (B1,F0)", "x":5, "y":0},
|
||||||
|
{"label":"K06 (B1,C7)", "x":6, "y":0},
|
||||||
|
{"label":"K07 (B1,C6)", "x":7, "y":0},
|
||||||
|
{"label":"K08 (B1,B6)", "x":8, "y":0},
|
||||||
|
{"label":"K09 (B1,B5)", "x":9, "y":0},
|
||||||
|
{"label":"K0A (B1,B4)", "x":10, "y":0},
|
||||||
|
{"label":"K0B (B1,D7)", "x":11, "y":0},
|
||||||
|
{"label":"K0C (B1,D5)", "x":12, "y":0},
|
||||||
|
{"label":"K0D (B1,D3)", "x":13, "y":0, "w":2},
|
||||||
|
{"label":"K0E (B1,D1)", "x":15.25, "y":0},
|
||||||
|
|
||||||
|
{"label":"K10 (B2,F7)", "x":0, "y":1, "w":1.5},
|
||||||
|
{"label":"K11 (B2,F6)", "x":1.5, "y":1},
|
||||||
|
{"label":"K12 (B2,F5)", "x":2.5, "y":1},
|
||||||
|
{"label":"K13 (B2,F4)", "x":3.5, "y":1},
|
||||||
|
{"label":"K14 (B2,F1)", "x":4.5, "y":1},
|
||||||
|
{"label":"K15 (B2,F0)", "x":5.5, "y":1},
|
||||||
|
{"label":"K16 (B2,C7)", "x":6.5, "y":1},
|
||||||
|
{"label":"K17 (B2,C6)", "x":7.5, "y":1},
|
||||||
|
{"label":"K18 (B2,B6)", "x":8.5, "y":1},
|
||||||
|
{"label":"K19 (B2,B5)", "x":9.5, "y":1},
|
||||||
|
{"label":"K1A (B2,B4)", "x":10.5, "y":1},
|
||||||
|
{"label":"K1B (B2,D7)", "x":11.5, "y":1},
|
||||||
|
{"label":"K1C (B2,D5)", "x":12.5, "y":1},
|
||||||
|
{"label":"K1D (B2,D3)", "x":13.5, "y":1, "w":1.5},
|
||||||
|
{"label":"K1E (B2,D1)", "x":15.25, "y":1},
|
||||||
|
|
||||||
|
{"label":"K20 (B3,F7)", "x":0, "y":2, "w":1.75},
|
||||||
|
{"label":"K21 (B3,F6)", "x":1.75, "y":2},
|
||||||
|
{"label":"K22 (B3,F5)", "x":2.75, "y":2},
|
||||||
|
{"label":"K23 (B3,F4)", "x":3.75, "y":2},
|
||||||
|
{"label":"K24 (B3,F1)", "x":4.75, "y":2},
|
||||||
|
{"label":"K25 (B3,F0)", "x":5.75, "y":2},
|
||||||
|
{"label":"K26 (B3,C7)", "x":6.75, "y":2},
|
||||||
|
{"label":"K27 (B3,C6)", "x":7.75, "y":2},
|
||||||
|
{"label":"K28 (B3,B6)", "x":8.75, "y":2},
|
||||||
|
{"label":"K29 (B3,B5)", "x":9.75, "y":2},
|
||||||
|
{"label":"K2A (B3,B4)", "x":10.75, "y":2},
|
||||||
|
{"label":"K2B (B3,D7)", "x":11.75, "y":2},
|
||||||
|
{"label":"K2C (B3,D5)", "x":12.75, "y":2, "w":2.25},
|
||||||
|
{"label":"K2E (B3,D1)", "x":15.25, "y":2},
|
||||||
|
|
||||||
|
{"label":"K30 (D4,F7)", "x":0, "y":3, "w":2.25},
|
||||||
|
{"label":"K32 (D4,F5)", "x":2.25, "y":3},
|
||||||
|
{"label":"K33 (D4,F4)", "x":3.25, "y":3},
|
||||||
|
{"label":"K34 (D4,F1)", "x":4.25, "y":3},
|
||||||
|
{"label":"K35 (D4,F0)", "x":5.25, "y":3},
|
||||||
|
{"label":"K36 (D4,C7)", "x":6.25, "y":3},
|
||||||
|
{"label":"K37 (D4,C6)", "x":7.25, "y":3},
|
||||||
|
{"label":"K38 (D4,B6)", "x":8.25, "y":3},
|
||||||
|
{"label":"K39 (D4,B5)", "x":9.25, "y":3},
|
||||||
|
{"label":"K3A (D4,B4)", "x":10.25, "y":3},
|
||||||
|
{"label":"K3B (D4,D7)", "x":11.25, "y":3},
|
||||||
|
{"label":"K3C (D4,D5)", "x":12.25, "y":3, "w":1.75},
|
||||||
|
{"label":"K3D (D4,D3)", "x":14, "y":3},
|
||||||
|
|
||||||
|
{"label":"K40 (D6,F7)", "x":0, "y":4, "w":1.5},
|
||||||
|
{"label":"K41 (D6,F6)", "x":1.5, "y":4},
|
||||||
|
{"label":"K43 (D6,F4)", "x":2.5, "y":4, "w":1.5},
|
||||||
|
{"label":"K46 (D6,C7)", "x":4, "y":4, "w":7},
|
||||||
|
{"label":"K4B (D6,D7)", "x":11, "y":4, "w":1.5},
|
||||||
|
{"label":"K4C (D6,D5)", "x":13, "y":4},
|
||||||
|
{"label":"K4D (D6,D3)", "x":14, "y":4},
|
||||||
|
{"label":"K4E (D6,D1)", "x":15, "y":4}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"LAYOUT_7u_space_split_bs": {
|
||||||
|
"layout": [
|
||||||
|
{"label":"K00 (B1,F7)", "x":0, "y":0},
|
||||||
|
{"label":"K01 (B1,F6)", "x":1, "y":0},
|
||||||
|
{"label":"K02 (B1,F5)", "x":2, "y":0},
|
||||||
|
{"label":"K03 (B1,F4)", "x":3, "y":0},
|
||||||
|
{"label":"K04 (B1,F1)", "x":4, "y":0},
|
||||||
|
{"label":"K05 (B1,F0)", "x":5, "y":0},
|
||||||
|
{"label":"K06 (B1,C7)", "x":6, "y":0},
|
||||||
|
{"label":"K07 (B1,C6)", "x":7, "y":0},
|
||||||
|
{"label":"K08 (B1,B6)", "x":8, "y":0},
|
||||||
|
{"label":"K09 (B1,B5)", "x":9, "y":0},
|
||||||
|
{"label":"K0A (B1,B4)", "x":10, "y":0},
|
||||||
|
{"label":"K0B (B1,D7)", "x":11, "y":0},
|
||||||
|
{"label":"K0C (B1,D5)", "x":12, "y":0},
|
||||||
|
{"label":"K0D (B1,D3)", "x":13, "y":0},
|
||||||
|
{"label":"K0F (B1,D0)", "x":14, "y":0},
|
||||||
|
{"label":"K0E (B1,D1)", "x":15.25, "y":0},
|
||||||
|
|
||||||
|
{"label":"K10 (B2,F7)", "x":0, "y":1, "w":1.5},
|
||||||
|
{"label":"K11 (B2,F6)", "x":1.5, "y":1},
|
||||||
|
{"label":"K12 (B2,F5)", "x":2.5, "y":1},
|
||||||
|
{"label":"K13 (B2,F4)", "x":3.5, "y":1},
|
||||||
|
{"label":"K14 (B2,F1)", "x":4.5, "y":1},
|
||||||
|
{"label":"K15 (B2,F0)", "x":5.5, "y":1},
|
||||||
|
{"label":"K16 (B2,C7)", "x":6.5, "y":1},
|
||||||
|
{"label":"K17 (B2,C6)", "x":7.5, "y":1},
|
||||||
|
{"label":"K18 (B2,B6)", "x":8.5, "y":1},
|
||||||
|
{"label":"K19 (B2,B5)", "x":9.5, "y":1},
|
||||||
|
{"label":"K1A (B2,B4)", "x":10.5, "y":1},
|
||||||
|
{"label":"K1B (B2,D7)", "x":11.5, "y":1},
|
||||||
|
{"label":"K1C (B2,D5)", "x":12.5, "y":1},
|
||||||
|
{"label":"K1D (B2,D3)", "x":13.5, "y":1, "w":1.5},
|
||||||
|
{"label":"K1E (B2,D1)", "x":15.25, "y":1},
|
||||||
|
|
||||||
|
{"label":"K20 (B3,F7)", "x":0, "y":2, "w":1.75},
|
||||||
|
{"label":"K21 (B3,F6)", "x":1.75, "y":2},
|
||||||
|
{"label":"K22 (B3,F5)", "x":2.75, "y":2},
|
||||||
|
{"label":"K23 (B3,F4)", "x":3.75, "y":2},
|
||||||
|
{"label":"K24 (B3,F1)", "x":4.75, "y":2},
|
||||||
|
{"label":"K25 (B3,F0)", "x":5.75, "y":2},
|
||||||
|
{"label":"K26 (B3,C7)", "x":6.75, "y":2},
|
||||||
|
{"label":"K27 (B3,C6)", "x":7.75, "y":2},
|
||||||
|
{"label":"K28 (B3,B6)", "x":8.75, "y":2},
|
||||||
|
{"label":"K29 (B3,B5)", "x":9.75, "y":2},
|
||||||
|
{"label":"K2A (B3,B4)", "x":10.75, "y":2},
|
||||||
|
{"label":"K2B (B3,D7)", "x":11.75, "y":2},
|
||||||
|
{"label":"K2C (B3,D5)", "x":12.75, "y":2, "w":2.25},
|
||||||
|
{"label":"K2E (B3,D1)", "x":15.25, "y":2},
|
||||||
|
|
||||||
|
{"label":"K30 (D4,F7)", "x":0, "y":3, "w":2.25},
|
||||||
|
{"label":"K32 (D4,F5)", "x":2.25, "y":3},
|
||||||
|
{"label":"K33 (D4,F4)", "x":3.25, "y":3},
|
||||||
|
{"label":"K34 (D4,F1)", "x":4.25, "y":3},
|
||||||
|
{"label":"K35 (D4,F0)", "x":5.25, "y":3},
|
||||||
|
{"label":"K36 (D4,C7)", "x":6.25, "y":3},
|
||||||
|
{"label":"K37 (D4,C6)", "x":7.25, "y":3},
|
||||||
|
{"label":"K38 (D4,B6)", "x":8.25, "y":3},
|
||||||
|
{"label":"K39 (D4,B5)", "x":9.25, "y":3},
|
||||||
|
{"label":"K3A (D4,B4)", "x":10.25, "y":3},
|
||||||
|
{"label":"K3B (D4,D7)", "x":11.25, "y":3},
|
||||||
|
{"label":"K3C (D4,D5)", "x":12.25, "y":3, "w":1.75},
|
||||||
|
{"label":"K3D (D4,D3)", "x":14, "y":3},
|
||||||
|
|
||||||
|
{"label":"K40 (D6,F7)", "x":0, "y":4, "w":1.5},
|
||||||
|
{"label":"K41 (D6,F6)", "x":1.5, "y":4},
|
||||||
|
{"label":"K43 (D6,F4)", "x":2.5, "y":4, "w":1.5},
|
||||||
|
{"label":"K46 (D6,C7)", "x":4, "y":4, "w":7},
|
||||||
|
{"label":"K4B (D6,D7)", "x":11, "y":4, "w":1.5},
|
||||||
|
{"label":"K4C (D6,D5)", "x":13, "y":4},
|
||||||
|
{"label":"K4D (D6,D3)", "x":14, "y":4},
|
||||||
|
{"label":"K4E (D6,D1)", "x":15, "y":4}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
,"meta": "https://noroadsleft.github.io/kbf_qmk_converter/"
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,14 +17,14 @@
|
||||||
#include QMK_KEYBOARD_H
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
[0] = LAYOUT(
|
[0] = LAYOUT_625u_space_split_bs(
|
||||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, KC_HOME,
|
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, KC_HOME,
|
||||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
|
||||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,
|
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,
|
||||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP,
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP,
|
||||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
),
|
),
|
||||||
[1] = LAYOUT(
|
[1] = LAYOUT_625u_space_split_bs(
|
||||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_DEL, _______,
|
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_DEL, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGDN,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGDN,
|
||||||
|
|
|
@ -1,3 +0,0 @@
|
||||||
# Default Swift65 Solder Layout
|
|
||||||
|
|
||||||
![](https://i.imgur.com/7Capi8W.png)
|
|
|
@ -17,28 +17,28 @@
|
||||||
#include QMK_KEYBOARD_H
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
[0] = LAYOUT(
|
[0] = LAYOUT_625u_space_split_bs(
|
||||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, KC_HOME,
|
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, KC_HOME,
|
||||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
|
||||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,
|
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,
|
||||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP,
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP,
|
||||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
),
|
),
|
||||||
[1] = LAYOUT(
|
[1] = LAYOUT_625u_space_split_bs(
|
||||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_DEL, _______,
|
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_DEL, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGDN,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGDN,
|
||||||
RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP,
|
RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP,
|
||||||
_______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
|
_______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
|
||||||
),
|
),
|
||||||
[2] = LAYOUT(
|
[2] = LAYOUT_625u_space_split_bs(
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||||
),
|
),
|
||||||
[3] = LAYOUT(
|
[3] = LAYOUT_625u_space_split_bs(
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
|
|
@ -1,3 +0,0 @@
|
||||||
# Default Swift65 Solder Layout
|
|
||||||
|
|
||||||
![](https://i.imgur.com/7Capi8W.png)
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
A 65% Keyboard from Swiftcables
|
A 65% Keyboard from Swiftcables
|
||||||
|
|
||||||
* Keyboard Maintainer: [Steven Phillips (spoonik)](https://github.com/keyboardcollective)
|
* Keyboard Maintainer: [Steven Phillips (spooknik)](https://github.com/keyboardcollective)
|
||||||
* Hardware Supported: Swift65 Solder
|
* Hardware Supported: Swift65 Solder
|
||||||
* Hardware Availability: Soom from Swiftcables
|
* Hardware Availability: Soom from Swiftcables
|
||||||
|
|
||||||
|
|
|
@ -18,16 +18,60 @@
|
||||||
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
|
||||||
#define LAYOUT( \
|
#define XXX KC_NO
|
||||||
|
|
||||||
|
#define LAYOUT_625u_space( \
|
||||||
|
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
|
||||||
|
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \
|
||||||
|
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, \
|
||||||
|
K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
|
||||||
|
K40, K41, K43, K46, K4A, K4B, K4C, K4D, K4E \
|
||||||
|
) { \
|
||||||
|
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, XXX }, \
|
||||||
|
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, XXX }, \
|
||||||
|
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, XXX, K2E, XXX }, \
|
||||||
|
{ K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, XXX, XXX }, \
|
||||||
|
{ K40, K41, XXX, K43, XXX, XXX, K46, XXX, XXX, XXX, K4A, K4B, K4C, K4D, K4E, XXX }, \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define LAYOUT_625u_space_split_bs( \
|
||||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0F, K0E, \
|
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0F, K0E, \
|
||||||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \
|
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \
|
||||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, \
|
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, \
|
||||||
K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
|
K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
|
||||||
K40, K41, K43, K46, K4A, K4B, K4C, K4D, K4E \
|
K40, K41, K43, K46, K4A, K4B, K4C, K4D, K4E \
|
||||||
) { \
|
) { \
|
||||||
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \
|
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \
|
||||||
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, KC_NO }, \
|
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, XXX }, \
|
||||||
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, KC_NO, K2E, KC_NO }, \
|
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, XXX, K2E, XXX }, \
|
||||||
{ K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, KC_NO, KC_NO }, \
|
{ K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, XXX, XXX }, \
|
||||||
{ K40, K41, KC_NO, K43, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D, K4E, KC_NO }, \
|
{ K40, K41, XXX, K43, XXX, XXX, K46, XXX, XXX, XXX, K4A, K4B, K4C, K4D, K4E, XXX }, \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define LAYOUT_7u_space( \
|
||||||
|
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
|
||||||
|
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \
|
||||||
|
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, \
|
||||||
|
K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
|
||||||
|
K40, K41, K43, K46, K4B, K4C, K4D, K4E \
|
||||||
|
) { \
|
||||||
|
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, XXX }, \
|
||||||
|
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, XXX }, \
|
||||||
|
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, XXX, K2E, XXX }, \
|
||||||
|
{ K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, XXX, XXX }, \
|
||||||
|
{ K40, K41, XXX, K43, XXX, XXX, K46, XXX, XXX, XXX, XXX, K4B, K4C, K4D, K4E, XXX }, \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define LAYOUT_7u_space_split_bs( \
|
||||||
|
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0F, K0E, \
|
||||||
|
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \
|
||||||
|
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, \
|
||||||
|
K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
|
||||||
|
K40, K41, K43, K46, K4B, K4C, K4D, K4E \
|
||||||
|
) { \
|
||||||
|
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \
|
||||||
|
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, XXX }, \
|
||||||
|
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, XXX, K2E, XXX }, \
|
||||||
|
{ K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, XXX, XXX }, \
|
||||||
|
{ K40, K41, XXX, K43, XXX, XXX, K46, XXX, XXX, XXX, XXX, K4B, K4C, K4D, K4E, XXX }, \
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,20 +18,15 @@
|
||||||
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
|
||||||
// readability
|
|
||||||
#define XXX KC_NO
|
#define XXX KC_NO
|
||||||
|
|
||||||
// This a shortcut to help you visually see your layout.
|
#define LAYOUT_all( \
|
||||||
// The following is an example using the Planck MIT layout
|
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K09, K0A, K0C, \
|
||||||
// The first section contains all of the arguments
|
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K0B, K0F, K6F, \
|
||||||
// The second converts the arguments into a two-dimensional array
|
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, K0D, K6D, \
|
||||||
#define LAYOUT( \
|
K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E, K4F, K6E, \
|
||||||
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F, k09, k0A, k0C, \
|
K50, K51, K52, K53, K54, K55, K56, K57, K58, K59, K5A, K5B, K5C, K5D, K5E, K5F, K0E, K07, \
|
||||||
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, k2F, k0B, k0F, k6F, \
|
K60, K61, K62, K63, K64, K65, K66, K68, K69, K6A, K6B, K6C \
|
||||||
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, k3F, k0D, k6D, \
|
|
||||||
k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D, k4E, k4F, k6E, \
|
|
||||||
k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k5A, k5B, k5C, k5D, k5E, k5F, k0E, k07, \
|
|
||||||
k60, k61, k62, k63, k64, k65, k66, k68, k69, k6A, k6B, k6C \
|
|
||||||
) { \
|
) { \
|
||||||
{ XXX, XXX, XXX, XXX, XXX, XXX, XXX, k07, XXX, k09, k0A, k0B, k0C, k0D, k0E, k0F }, \
|
{ XXX, XXX, XXX, XXX, XXX, XXX, XXX, k07, XXX, k09, k0A, k0B, k0C, k0D, k0E, k0F }, \
|
||||||
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F }, \
|
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F }, \
|
||||||
|
|
|
@ -39,20 +39,50 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
|
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
|
||||||
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
|
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
#define UNUSED_PINS
|
#define UNUSED_PINS
|
||||||
|
|
||||||
/* COL2ROW, ROW2COL*/
|
/* COL2ROW, ROW2COL*/
|
||||||
#define DIODE_DIRECTION COL2ROW
|
#define DIODE_DIRECTION COL2ROW
|
||||||
|
|
||||||
|
//#define BACKLIGHT_PIN B7
|
||||||
|
//#define BACKLIGHT_LEVELS 3
|
||||||
|
//#define BACKLIGHT_BREATHING
|
||||||
|
|
||||||
|
#define RGB_DI_PIN D3
|
||||||
|
#ifdef RGB_DI_PIN
|
||||||
|
# define RGBLED_NUM 16
|
||||||
|
//# define RGBLIGHT_HUE_STEP 8
|
||||||
|
//# define RGBLIGHT_SAT_STEP 8
|
||||||
|
//# define RGBLIGHT_VAL_STEP 8
|
||||||
|
//# define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
|
||||||
|
//# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
|
||||||
|
/*== all animations enable ==*/
|
||||||
|
# define RGBLIGHT_ANIMATIONS
|
||||||
|
/*== or choose animations ==*/
|
||||||
|
//# define RGBLIGHT_EFFECT_BREATHING
|
||||||
|
//# define RGBLIGHT_EFFECT_RAINBOW_MOOD
|
||||||
|
//# define RGBLIGHT_EFFECT_RAINBOW_SWIRL
|
||||||
|
//# define RGBLIGHT_EFFECT_SNAKE
|
||||||
|
//# define RGBLIGHT_EFFECT_KNIGHT
|
||||||
|
//# define RGBLIGHT_EFFECT_CHRISTMAS
|
||||||
|
//# define RGBLIGHT_EFFECT_STATIC_GRADIENT
|
||||||
|
//# define RGBLIGHT_EFFECT_RGB_TEST
|
||||||
|
//# define RGBLIGHT_EFFECT_ALTERNATING
|
||||||
|
/*== customize breathing effect ==*/
|
||||||
|
/*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
|
||||||
|
//# define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
|
||||||
|
/*==== use exp() and sin() ====*/
|
||||||
|
//# define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
|
||||||
|
//# define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||||
#define DEBOUNCE 5
|
#define DEBOUNCE 5
|
||||||
|
|
||||||
/* define if matrix has ghost (lacks anti-ghosting diodes) */
|
/* define if matrix has ghost (lacks anti-ghosting diodes) */
|
||||||
//#define MATRIX_HAS_GHOST
|
//#define MATRIX_HAS_GHOST
|
||||||
|
|
||||||
/* number of backlight levels */
|
|
||||||
|
|
||||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||||
#define LOCKING_SUPPORT_ENABLE
|
#define LOCKING_SUPPORT_ENABLE
|
||||||
/* Locking resynchronize hack */
|
/* Locking resynchronize hack */
|
||||||
|
@ -84,54 +114,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
//#define FORCE_NKRO
|
//#define FORCE_NKRO
|
||||||
|
|
||||||
/*
|
|
||||||
* Magic Key Options
|
|
||||||
*
|
|
||||||
* Magic keys are hotkey commands that allow control over firmware functions of
|
|
||||||
* the keyboard. They are best used in combination with the HID Listen program,
|
|
||||||
* found here: https://www.pjrc.com/teensy/hid_listen.html
|
|
||||||
*
|
|
||||||
* The options below allow the magic key functionality to be changed. This is
|
|
||||||
* useful if your keyboard/keypad is missing keys and you want magic key support.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* control how magic key switches layers */
|
|
||||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
|
|
||||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
|
|
||||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
|
|
||||||
|
|
||||||
/* override magic key keymap */
|
|
||||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
|
|
||||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
|
|
||||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
|
|
||||||
//#define MAGIC_KEY_HELP1 H
|
|
||||||
//#define MAGIC_KEY_HELP2 SLASH
|
|
||||||
//#define MAGIC_KEY_DEBUG D
|
|
||||||
//#define MAGIC_KEY_DEBUG_MATRIX X
|
|
||||||
//#define MAGIC_KEY_DEBUG_KBD K
|
|
||||||
//#define MAGIC_KEY_DEBUG_MOUSE M
|
|
||||||
//#define MAGIC_KEY_VERSION V
|
|
||||||
//#define MAGIC_KEY_STATUS S
|
|
||||||
//#define MAGIC_KEY_CONSOLE C
|
|
||||||
//#define MAGIC_KEY_LAYER0_ALT1 ESC
|
|
||||||
//#define MAGIC_KEY_LAYER0_ALT2 GRAVE
|
|
||||||
//#define MAGIC_KEY_LAYER0 0
|
|
||||||
//#define MAGIC_KEY_LAYER1 1
|
|
||||||
//#define MAGIC_KEY_LAYER2 2
|
|
||||||
//#define MAGIC_KEY_LAYER3 3
|
|
||||||
//#define MAGIC_KEY_LAYER4 4
|
|
||||||
//#define MAGIC_KEY_LAYER5 5
|
|
||||||
//#define MAGIC_KEY_LAYER6 6
|
|
||||||
//#define MAGIC_KEY_LAYER7 7
|
|
||||||
//#define MAGIC_KEY_LAYER8 8
|
|
||||||
//#define MAGIC_KEY_LAYER9 9
|
|
||||||
//#define MAGIC_KEY_BOOTLOADER PAUSE
|
|
||||||
//#define MAGIC_KEY_LOCK CAPS
|
|
||||||
//#define MAGIC_KEY_EEPROM E
|
|
||||||
//#define MAGIC_KEY_NKRO N
|
|
||||||
//#define MAGIC_KEY_SLEEP_LED Z
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Feature disable options
|
* Feature disable options
|
||||||
* These options are also useful to firmware size reduction.
|
* These options are also useful to firmware size reduction.
|
||||||
|
@ -149,7 +131,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
//#define NO_ACTION_ONESHOT
|
//#define NO_ACTION_ONESHOT
|
||||||
#define NO_ACTION_MACRO
|
#define NO_ACTION_MACRO
|
||||||
#define NO_ACTION_FUNCTION
|
#define NO_ACTION_FUNCTION
|
||||||
|
|
||||||
#define RGBLIGHT_ANIMATIONS
|
|
||||||
#define RGBLED_NUM 16
|
|
||||||
#define RGB_DI_PIN D3
|
|
||||||
|
|
|
@ -1,10 +1,122 @@
|
||||||
{
|
{
|
||||||
"keyboard_name": "AMJ96",
|
"keyboard_name": "AMJ96",
|
||||||
"url": "",
|
"url": "",
|
||||||
"maintainer": "qmk",
|
"maintainer": "qmk",
|
||||||
"layouts": {
|
"layout_aliases": {
|
||||||
"LAYOUT": {
|
"LAYOUT": "LAYOUT_all"
|
||||||
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1, "y":0}, {"label":"F2", "x":2, "y":0}, {"label":"F3", "x":3, "y":0}, {"label":"F4", "x":4, "y":0}, {"label":"F5", "x":5, "y":0}, {"label":"F6", "x":6, "y":0}, {"label":"F7", "x":7, "y":0}, {"label":"F8", "x":8, "y":0}, {"label":"F9", "x":9, "y":0}, {"label":"F10", "x":10, "y":0}, {"label":"F11", "x":11, "y":0}, {"label":"F12", "x":12, "y":0}, {"label":"Print Screen", "x":13, "y":0}, {"label":"Pause", "x":14, "y":0}, {"label":"Ins", "x":15, "y":0}, {"label":"Del", "x":16, "y":0}, {"label":"Page Up", "x":17, "y":0}, {"label":"Page Down", "x":18, "y":0}, {"label":"` ~", "x":0, "y":1}, {"label":"1 !", "x":1, "y":1}, {"label":"2 @", "x":2, "y":1}, {"label":"3 #", "x":3, "y":1}, {"label":"4 $", "x":4, "y":1}, {"label":"5 %", "x":5, "y":1}, {"label":"6 ^", "x":6, "y":1}, {"label":"7 &", "x":7, "y":1}, {"label":"8 *", "x":8, "y":1}, {"label":"9 (", "x":9, "y":1}, {"label":"0 )", "x":10, "y":1}, {"label":"- _", "x":11, "y":1}, {"label":"= +", "x":12, "y":1}, {"label":"Back Space", "x":13, "y":1}, {"label":"Back Space 2", "x":14, "y":1}, {"label":"Num Lock", "x":15, "y":1}, {"label":"/", "x":16, "y":1}, {"label":"*", "x":17, "y":1}, {"label":"-", "x":18, "y":1}, {"label":"Tab", "x":0, "y":2, "w":1.5}, {"label":"Q", "x":1.5, "y":2}, {"label":"W", "x":2.5, "y":2}, {"label":"E", "x":3.5, "y":2}, {"label":"R", "x":4.5, "y":2}, {"label":"T", "x":5.5, "y":2}, {"label":"Y", "x":6.5, "y":2}, {"label":"U", "x":7.5, "y":2}, {"label":"I", "x":8.5, "y":2}, {"label":"O", "x":9.5, "y":2}, {"label":"P", "x":10.5, "y":2}, {"label":"[ {", "x":11.5, "y":2}, {"label":"] }", "x":12.5, "y":2}, {"label":"\\ |", "x":13.5, "y":2, "w":1.5}, {"label":"7", "x":15, "y":2}, {"label":"8", "x":16, "y":2}, {"label":"9", "x":17, "y":2}, {"label":"+", "x":18, "y":2}, {"label":"Caps Lock", "x":0, "y":3, "w":1.75}, {"label":"A", "x":1.75, "y":3}, {"label":"S", "x":2.75, "y":3}, {"label":"D", "x":3.75, "y":3}, {"label":"F", "x":4.75, "y":3}, {"label":"G", "x":5.75, "y":3}, {"label":"H", "x":6.75, "y":3}, {"label":"J", "x":7.75, "y":3}, {"label":"K", "x":8.75, "y":3}, {"label":"L", "x":9.75, "y":3}, {"label":"; :", "x":10.75, "y":3}, {"label":"' \"", "x":11.75, "y":3}, {"label":"Enter", "x":12.75, "y":3, "w":2.25}, {"label":"4", "x":15, "y":3}, {"label":"5", "x":16, "y":3}, {"label":"6", "x":17, "y":3}, {"label":"+", "x":18, "y":3}, {"label":"Shift", "x":0, "y":4, "w":1.25}, {"label":"ISO \\", "x":1.25, "y":4}, {"label":"Z", "x":2.25, "y":4}, {"label":"X", "x":3.25, "y":4}, {"label":"C", "x":4.25, "y":4}, {"label":"V", "x":5.25, "y":4}, {"label":"B", "x":6.25, "y":4}, {"label":"N", "x":7.25, "y":4}, {"label":"M", "x":8.25, "y":4}, {"label":", <", "x":9.25, "y":4}, {"label":". >", "x":10.25, "y":4}, {"label":"/ ?", "x":11.25, "y":4}, {"label":"Shift", "x":12.25, "y":4, "w":1.75}, {"label":"Up", "x":14, "y":4}, {"label":"1", "x":15, "y":4}, {"label":"2", "x":16, "y":4}, {"label":"3", "x":17, "y":4}, {"label":"Enter", "x":18, "y":4}, {"label":"Ctrl", "x":0, "y":5, "w":1.25}, {"label":"GUI", "x":1.25, "y":5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5, "w":1.25}, {"label":"Space", "x":3.75, "y":5, "w":6.25}, {"label":"Alt", "x":10, "y":5, "w":1.5}, {"label":"Fn", "x":11.5, "y":5, "w":1.5}, {"label":"Left", "x":13, "y":5}, {"label":"Down", "x":14, "y":5}, {"label":"Right", "x":15, "y":5}, {"label":"0", "x":16, "y":5}, {"label":".", "x":17, "y":5}, {"label":"Enter", "x":18, "y":5}]
|
},
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT_all": {
|
||||||
|
"layout": [
|
||||||
|
{"label":"Esc", "x":0, "y":0},
|
||||||
|
{"label":"F1", "x":1, "y":0},
|
||||||
|
{"label":"F2", "x":2, "y":0},
|
||||||
|
{"label":"F3", "x":3, "y":0},
|
||||||
|
{"label":"F4", "x":4, "y":0},
|
||||||
|
{"label":"F5", "x":5, "y":0},
|
||||||
|
{"label":"F6", "x":6, "y":0},
|
||||||
|
{"label":"F7", "x":7, "y":0},
|
||||||
|
{"label":"F8", "x":8, "y":0},
|
||||||
|
{"label":"F9", "x":9, "y":0},
|
||||||
|
{"label":"F10", "x":10, "y":0},
|
||||||
|
{"label":"F11", "x":11, "y":0},
|
||||||
|
{"label":"F12", "x":12, "y":0},
|
||||||
|
{"label":"Print Screen", "x":13, "y":0},
|
||||||
|
{"label":"Pause", "x":14, "y":0},
|
||||||
|
{"label":"Ins", "x":15, "y":0},
|
||||||
|
{"label":"Del", "x":16, "y":0},
|
||||||
|
{"label":"Page Up", "x":17, "y":0},
|
||||||
|
{"label":"Page Down", "x":18, "y":0},
|
||||||
|
|
||||||
|
{"label":"` ~", "x":0, "y":1},
|
||||||
|
{"label":"1 !", "x":1, "y":1},
|
||||||
|
{"label":"2 @", "x":2, "y":1},
|
||||||
|
{"label":"3 #", "x":3, "y":1},
|
||||||
|
{"label":"4 $", "x":4, "y":1},
|
||||||
|
{"label":"5 %", "x":5, "y":1},
|
||||||
|
{"label":"6 ^", "x":6, "y":1},
|
||||||
|
{"label":"7 &", "x":7, "y":1},
|
||||||
|
{"label":"8 *", "x":8, "y":1},
|
||||||
|
{"label":"9 (", "x":9, "y":1},
|
||||||
|
{"label":"0 )", "x":10, "y":1},
|
||||||
|
{"label":"- _", "x":11, "y":1},
|
||||||
|
{"label":"= +", "x":12, "y":1},
|
||||||
|
{"label":"Back Space", "x":13, "y":1},
|
||||||
|
{"label":"Back Space 2", "x":14, "y":1},
|
||||||
|
{"label":"Num Lock", "x":15, "y":1},
|
||||||
|
{"label":"/", "x":16, "y":1},
|
||||||
|
{"label":"*", "x":17, "y":1},
|
||||||
|
{"label":"-", "x":18, "y":1},
|
||||||
|
|
||||||
|
{"label":"Tab", "x":0, "y":2, "w":1.5},
|
||||||
|
{"label":"Q", "x":1.5, "y":2},
|
||||||
|
{"label":"W", "x":2.5, "y":2},
|
||||||
|
{"label":"E", "x":3.5, "y":2},
|
||||||
|
{"label":"R", "x":4.5, "y":2},
|
||||||
|
{"label":"T", "x":5.5, "y":2},
|
||||||
|
{"label":"Y", "x":6.5, "y":2},
|
||||||
|
{"label":"U", "x":7.5, "y":2},
|
||||||
|
{"label":"I", "x":8.5, "y":2},
|
||||||
|
{"label":"O", "x":9.5, "y":2},
|
||||||
|
{"label":"P", "x":10.5, "y":2},
|
||||||
|
{"label":"[ {", "x":11.5, "y":2},
|
||||||
|
{"label":"] }", "x":12.5, "y":2},
|
||||||
|
{"label":"\\ |", "x":13.5, "y":2, "w":1.5},
|
||||||
|
{"label":"7", "x":15, "y":2},
|
||||||
|
{"label":"8", "x":16, "y":2},
|
||||||
|
{"label":"9", "x":17, "y":2},
|
||||||
|
{"label":"+", "x":18, "y":2},
|
||||||
|
|
||||||
|
{"label":"Caps Lock", "x":0, "y":3, "w":1.75},
|
||||||
|
{"label":"A", "x":1.75, "y":3},
|
||||||
|
{"label":"S", "x":2.75, "y":3},
|
||||||
|
{"label":"D", "x":3.75, "y":3},
|
||||||
|
{"label":"F", "x":4.75, "y":3},
|
||||||
|
{"label":"G", "x":5.75, "y":3},
|
||||||
|
{"label":"H", "x":6.75, "y":3},
|
||||||
|
{"label":"J", "x":7.75, "y":3},
|
||||||
|
{"label":"K", "x":8.75, "y":3},
|
||||||
|
{"label":"L", "x":9.75, "y":3},
|
||||||
|
{"label":"; :", "x":10.75, "y":3},
|
||||||
|
{"label":"' \"", "x":11.75, "y":3},
|
||||||
|
{"label":"Enter", "x":12.75, "y":3, "w":2.25},
|
||||||
|
{"label":"4", "x":15, "y":3},
|
||||||
|
{"label":"5", "x":16, "y":3},
|
||||||
|
{"label":"6", "x":17, "y":3},
|
||||||
|
{"label":"+", "x":18, "y":3},
|
||||||
|
|
||||||
|
{"label":"Shift", "x":0, "y":4, "w":1.25},
|
||||||
|
{"label":"ISO \\", "x":1.25, "y":4},
|
||||||
|
{"label":"Z", "x":2.25, "y":4},
|
||||||
|
{"label":"X", "x":3.25, "y":4},
|
||||||
|
{"label":"C", "x":4.25, "y":4},
|
||||||
|
{"label":"V", "x":5.25, "y":4},
|
||||||
|
{"label":"B", "x":6.25, "y":4},
|
||||||
|
{"label":"N", "x":7.25, "y":4},
|
||||||
|
{"label":"M", "x":8.25, "y":4},
|
||||||
|
{"label":", <", "x":9.25, "y":4},
|
||||||
|
{"label":". >", "x":10.25, "y":4},
|
||||||
|
{"label":"/ ?", "x":11.25, "y":4},
|
||||||
|
{"label":"Shift", "x":12.25, "y":4, "w":1.75},
|
||||||
|
{"label":"Up", "x":14, "y":4},
|
||||||
|
{"label":"1", "x":15, "y":4},
|
||||||
|
{"label":"2", "x":16, "y":4},
|
||||||
|
{"label":"3", "x":17, "y":4},
|
||||||
|
{"label":"Enter", "x":18, "y":4},
|
||||||
|
|
||||||
|
{"label":"Ctrl", "x":0, "y":5, "w":1.25},
|
||||||
|
{"label":"GUI", "x":1.25, "y":5, "w":1.25},
|
||||||
|
{"label":"Alt", "x":2.5, "y":5, "w":1.25},
|
||||||
|
{"label":"Space", "x":3.75, "y":5, "w":6.25},
|
||||||
|
{"label":"Alt", "x":10, "y":5, "w":1.5},
|
||||||
|
{"label":"Fn", "x":11.5, "y":5, "w":1.5},
|
||||||
|
{"label":"Left", "x":13, "y":5},
|
||||||
|
{"label":"Down", "x":14, "y":5},
|
||||||
|
{"label":"Right", "x":15, "y":5},
|
||||||
|
{"label":"0", "x":16, "y":5},
|
||||||
|
{"label":".", "x":17, "y":5},
|
||||||
|
{"label":"Enter", "x":18, "y":5}
|
||||||
|
]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
/* Copyright 2017 MechMerlin
|
/* Copyright 2017 MechMerlin
|
||||||
|
* 2021 QMK/James Young (@noroadsleft)
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
@ -17,21 +18,22 @@
|
||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
[0] = LAYOUT(
|
[0] = LAYOUT_all(
|
||||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_PAUS, KC_INS, KC_DEL, KC_PGUP, KC_PGDN, \
|
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_PAUS, KC_INS, KC_DEL, KC_PGUP, KC_PGDN,
|
||||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NO, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \
|
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, XXXXXXX, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
|
||||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, KC_PPLS, \
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, KC_PPLS,
|
||||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, \
|
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS,
|
||||||
KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, \
|
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT,
|
||||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_FN0, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT \
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT
|
||||||
),
|
),
|
||||||
|
|
||||||
|
[1] = LAYOUT_all(
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
)
|
||||||
|
|
||||||
[1] = LAYOUT(
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, _______, _______, _______, _______, \
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
|
|
||||||
_______, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
|
|
||||||
)
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
# The default keymap for amj96
|
|
|
@ -2,15 +2,19 @@
|
||||||
|
|
||||||
The AMD96 is a 96 key custom keyboard with anodized aluminum case, twin usb ports, and support for backlight LEDs and RGB underglow via SMD LEDs.
|
The AMD96 is a 96 key custom keyboard with anodized aluminum case, twin usb ports, and support for backlight LEDs and RGB underglow via SMD LEDs.
|
||||||
|
|
||||||
Keyboard Maintainer: [MechMerlin](https://github.com/mechmerlin)
|
* Keyboard Maintainer: [MechMerlin](https://github.com/mechmerlin)
|
||||||
Hardware Supported: AMJ96
|
* Hardware Supported: AMJ96
|
||||||
Hardware Availability: Was previously available on a GB via [Flashquark](https://flashquark.com/product/amj96/)
|
* Hardware Availability: [~~Flashquark~~](https://flashquark.com/product/amj96/) (no longer available)
|
||||||
|
|
||||||
Make example for this keyboard (after setting up your build environment):
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
make amj96:default
|
make amj96:default
|
||||||
|
|
||||||
See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information.
|
Flashing example for this keyboard:
|
||||||
|
|
||||||
|
make amj96:default:flash
|
||||||
|
|
||||||
|
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||||
|
|
||||||
## Notes
|
## Notes
|
||||||
- In-switch and underglow LEDs currently not supported.
|
- In-switch and underglow LEDs currently not supported.
|
||||||
|
|
|
@ -17,8 +17,8 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||||
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
NKRO_ENABLE = yes # USB Nkey Rollover
|
NKRO_ENABLE = yes # USB Nkey Rollover
|
||||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||||
RGBLIGHT_ENABLE = yes
|
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
|
||||||
UNICODE_ENABLE = no # Unicode
|
|
||||||
AUDIO_ENABLE = no # Audio output
|
AUDIO_ENABLE = no # Audio output
|
||||||
|
|
||||||
CUSTOM_MATRIX = yes
|
CUSTOM_MATRIX = yes
|
||||||
SRC += matrix.c
|
SRC += matrix.c
|
||||||
|
|
72
keyboards/buildakb/potato65s/config.h
Normal file
72
keyboards/buildakb/potato65s/config.h
Normal file
|
@ -0,0 +1,72 @@
|
||||||
|
/*
|
||||||
|
Copyright 2021 Maelkk
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "config_common.h"
|
||||||
|
|
||||||
|
/* USB Device descriptor parameter */
|
||||||
|
#define VENDOR_ID 0x4A56
|
||||||
|
#define PRODUCT_ID 0x0003
|
||||||
|
#define DEVICE_VER 0x0001
|
||||||
|
#define MANUFACTURER Maelkk
|
||||||
|
#define PRODUCT Potato 65 Solderable
|
||||||
|
|
||||||
|
/* key matrix size */
|
||||||
|
#define MATRIX_ROWS 5
|
||||||
|
#define MATRIX_COLS 15
|
||||||
|
|
||||||
|
/* key matrix pins */
|
||||||
|
#define MATRIX_ROW_PINS { F5, F4, F6, F0, D2 }
|
||||||
|
#define MATRIX_COL_PINS { D3, D4, D6, D7, B4, B5, B6, F1, B0, B1, B2, B3, B7, D0, D1 }
|
||||||
|
#define UNUSED_PINS
|
||||||
|
|
||||||
|
/* COL2ROW or ROW2COL */
|
||||||
|
#define DIODE_DIRECTION COL2ROW
|
||||||
|
|
||||||
|
/* Set 0 if debouncing isn't needed */
|
||||||
|
#define DEBOUNCE 5
|
||||||
|
|
||||||
|
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||||
|
#define LOCKING_SUPPORT_ENABLE
|
||||||
|
|
||||||
|
/* Locking resynchronize hack */
|
||||||
|
#define LOCKING_RESYNC_ENABLE
|
||||||
|
|
||||||
|
/* disable these deprecated features by default */
|
||||||
|
#define NO_ACTION_MACRO
|
||||||
|
#define NO_ACTION_FUNCTION
|
||||||
|
|
||||||
|
#define RGB_DI_PIN D5
|
||||||
|
#ifdef RGB_DI_PIN
|
||||||
|
# define RGBLIGHT_EFFECT_BREATHING
|
||||||
|
# define RGBLIGHT_EFFECT_RAINBOW_MOOD
|
||||||
|
# define RGBLIGHT_EFFECT_RAINBOW_SWIRL
|
||||||
|
# define RGBLIGHT_EFFECT_SNAKE
|
||||||
|
# define RGBLIGHT_EFFECT_KNIGHT
|
||||||
|
# define RGBLIGHT_EFFECT_CHRISTMAS
|
||||||
|
# define RGBLIGHT_EFFECT_STATIC_GRADIENT
|
||||||
|
# define RGBLIGHT_EFFECT_RGB_TEST
|
||||||
|
# define RGBLIGHT_EFFECT_ALTERNATING
|
||||||
|
# define RGBLIGHT_EFFECT_TWINKLE
|
||||||
|
# define RGBLED_NUM 16
|
||||||
|
# define RGBLIGHT_HUE_STEP 8
|
||||||
|
# define RGBLIGHT_SAT_STEP 8
|
||||||
|
# define RGBLIGHT_VAL_STEP 8
|
||||||
|
# define RGBLIGHT_LIMIT_VAL 240
|
||||||
|
# define RGBLIGHT_SLEEP
|
||||||
|
#endif
|
83
keyboards/buildakb/potato65s/info.json
Normal file
83
keyboards/buildakb/potato65s/info.json
Normal file
|
@ -0,0 +1,83 @@
|
||||||
|
{
|
||||||
|
"keyboard_name": "Potato 65 Solderable",
|
||||||
|
"url": "https://github.com/Aeonstrife/potato65solderable",
|
||||||
|
"maintainer": "Maelkk",
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT_all": {
|
||||||
|
"layout": [
|
||||||
|
{ "x":0, "y":0 },
|
||||||
|
{ "x":1, "y":0 },
|
||||||
|
{ "x":2, "y":0 },
|
||||||
|
{ "x":3, "y":0 },
|
||||||
|
{ "x":4, "y":0 },
|
||||||
|
{ "x":5, "y":0 },
|
||||||
|
{ "x":6, "y":0 },
|
||||||
|
{ "x":7, "y":0 },
|
||||||
|
{ "x":8, "y":0 },
|
||||||
|
{ "x":9, "y":0 },
|
||||||
|
{ "x":10, "y":0 },
|
||||||
|
{ "x":11, "y":0 },
|
||||||
|
{ "x":12, "y":0 },
|
||||||
|
{ "x":13, "y":0 },
|
||||||
|
{ "x":14, "y":0 },
|
||||||
|
{ "x":15, "y":0 },
|
||||||
|
|
||||||
|
{ "x":0, "y":1, "w":1.5 },
|
||||||
|
{ "x":1.5, "y":1 },
|
||||||
|
{ "x":2.5, "y":1 },
|
||||||
|
{ "x":3.5, "y":1 },
|
||||||
|
{ "x":4.5, "y":1 },
|
||||||
|
{ "x":5.5, "y":1 },
|
||||||
|
{ "x":6.5, "y":1 },
|
||||||
|
{ "x":7.5, "y":1 },
|
||||||
|
{ "x":8.5, "y":1 },
|
||||||
|
{ "x":9.5, "y":1 },
|
||||||
|
{ "x":10.5, "y":1 },
|
||||||
|
{ "x":11.5, "y":1 },
|
||||||
|
{ "x":12.5, "y":1 },
|
||||||
|
{ "x":13.5, "y":1, "w":1.5 },
|
||||||
|
{ "x":15, "y":1 },
|
||||||
|
|
||||||
|
{ "x":0, "y":2, "w":1.75 },
|
||||||
|
{ "x":1.75, "y":2 },
|
||||||
|
{ "x":2.75, "y":2 },
|
||||||
|
{ "x":3.75, "y":2 },
|
||||||
|
{ "x":4.75, "y":2 },
|
||||||
|
{ "x":5.75, "y":2 },
|
||||||
|
{ "x":6.75, "y":2 },
|
||||||
|
{ "x":7.75, "y":2 },
|
||||||
|
{ "x":8.75, "y":2 },
|
||||||
|
{ "x":9.75, "y":2 },
|
||||||
|
{ "x":10.75, "y":2 },
|
||||||
|
{ "x":11.75, "y":2 },
|
||||||
|
{ "x":12.75, "y":2, "w":2.25 },
|
||||||
|
{ "x":15, "y":2 },
|
||||||
|
|
||||||
|
{ "x":0, "y":3, "w":2.25 },
|
||||||
|
{ "x":2.25, "y":3 },
|
||||||
|
{ "x":3.25, "y":3 },
|
||||||
|
{ "x":4.25, "y":3 },
|
||||||
|
{ "x":5.25, "y":3 },
|
||||||
|
{ "x":6.25, "y":3 },
|
||||||
|
{ "x":7.25, "y":3 },
|
||||||
|
{ "x":8.25, "y":3 },
|
||||||
|
{ "x":9.25, "y":3 },
|
||||||
|
{ "x":10.25, "y":3 },
|
||||||
|
{ "x":11.25, "y":3 },
|
||||||
|
{ "x":12.25, "y":3, "w":1.75 },
|
||||||
|
{ "x":14, "y":3 },
|
||||||
|
{ "x":15, "y":3 },
|
||||||
|
|
||||||
|
{ "x":0, "y":4, "w":1.25 },
|
||||||
|
{ "x":1.25, "y":4, "w":1.25 },
|
||||||
|
{ "x":2.5, "y":4, "w":1.25 },
|
||||||
|
{ "x":3.75, "y":4, "w":6.25 },
|
||||||
|
{ "x":10, "y":4, "w":1.25 },
|
||||||
|
{ "x":11.25, "y":4, "w":1.25 },
|
||||||
|
{ "x":13, "y":4 },
|
||||||
|
{ "x":14, "y":4 },
|
||||||
|
{ "x":15, "y":4 }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
39
keyboards/buildakb/potato65s/keymaps/default/keymap.c
Normal file
39
keyboards/buildakb/potato65s/keymaps/default/keymap.c
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
/* Copyright 2021 Maelkk
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
enum layer_names {
|
||||||
|
_BASE,
|
||||||
|
_FN
|
||||||
|
};
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[_BASE] = LAYOUT_all(
|
||||||
|
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_HOME,
|
||||||
|
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,
|
||||||
|
MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
|
||||||
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
|
),
|
||||||
|
[_FN1] = LAYOUT_all(
|
||||||
|
KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, RESET, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_MUTE,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT
|
||||||
|
)
|
||||||
|
};
|
3
keyboards/buildakb/potato65s/keymaps/default/readme.md
Normal file
3
keyboards/buildakb/potato65s/keymaps/default/readme.md
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
# Default Potato65 Hotswap Layout
|
||||||
|
|
||||||
|
This is the default layout for the Potato65 Hotswap keyboard. Largely based on the KBD67 layout.
|
54
keyboards/buildakb/potato65s/keymaps/via/keymap.c
Normal file
54
keyboards/buildakb/potato65s/keymaps/via/keymap.c
Normal file
|
@ -0,0 +1,54 @@
|
||||||
|
/* Copyright 2021 Maelkk
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
enum layer_names {
|
||||||
|
_BASE,
|
||||||
|
_FN1,
|
||||||
|
_FN2,
|
||||||
|
_FN3
|
||||||
|
};
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[_BASE] = LAYOUT_all(
|
||||||
|
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_HOME,
|
||||||
|
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,
|
||||||
|
MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
|
||||||
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
|
),
|
||||||
|
[_FN1] = LAYOUT_all(
|
||||||
|
KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, RESET, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_MUTE,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT
|
||||||
|
),
|
||||||
|
[_FN2] = LAYOUT_all(
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
[_FN3] = LAYOUT_all(
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
};
|
3
keyboards/buildakb/potato65s/keymaps/via/readme.md
Normal file
3
keyboards/buildakb/potato65s/keymaps/via/readme.md
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
# Default Potato65 Layout
|
||||||
|
|
||||||
|
This is the VIA layout for the Potato65 Hotswap Keyboard. Largely based on the KBD67 layout.
|
1
keyboards/buildakb/potato65s/keymaps/via/rules.mk
Normal file
1
keyboards/buildakb/potato65s/keymaps/via/rules.mk
Normal file
|
@ -0,0 +1 @@
|
||||||
|
VIA_ENABLE = yes
|
|
@ -1,5 +1,5 @@
|
||||||
/* Copyright 2017 MechMerlin
|
/* Copyright 2021 Maelkk
|
||||||
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 2 of the License, or
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
@ -14,7 +14,4 @@
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#pragma once
|
#include "potato65s.h"
|
||||||
|
|
||||||
|
|
||||||
// place overrides here
|
|
33
keyboards/buildakb/potato65s/potato65s.h
Normal file
33
keyboards/buildakb/potato65s/potato65s.h
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
/* Copyright 2021 Maelkk
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "quantum.h"
|
||||||
|
|
||||||
|
#define LAYOUT_all( \
|
||||||
|
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K212, K014, \
|
||||||
|
K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \
|
||||||
|
K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K213, K214, \
|
||||||
|
K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K312, K313, K314, \
|
||||||
|
K400, K401, K402, K403, K409, K410, K412, K413, K414 \
|
||||||
|
) { \
|
||||||
|
{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \
|
||||||
|
{ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \
|
||||||
|
{ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214 }, \
|
||||||
|
{ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, KC_NO, K312, K313, K314 }, \
|
||||||
|
{ K400, K401, K402, K403, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, K409, K410, KC_NO, K412, K413, K414 } \
|
||||||
|
}
|
24
keyboards/buildakb/potato65s/readme.md
Normal file
24
keyboards/buildakb/potato65s/readme.md
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
# Potato65 Solderable Keyboard
|
||||||
|
|
||||||
|
![Potato65 Solderable](https://i.imgur.com/ysAGZCmh.jpg)
|
||||||
|
|
||||||
|
A solderable gasket mount stacked acrylic 65% keyboard
|
||||||
|
|
||||||
|
- Keyboard Maintainer: [Maelkk](https://github.com/Aeonstrife)
|
||||||
|
- Hardware Supported: Potato65 Keyboard
|
||||||
|
- Hardware Availability: Private Group-Buy
|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make buildakb/potato65s:default
|
||||||
|
|
||||||
|
Flashing example for this keyboard:
|
||||||
|
|
||||||
|
make buildakb/potato65s:default:flash
|
||||||
|
|
||||||
|
To reset into bootloader mode:
|
||||||
|
|
||||||
|
While plugged in, press the RESET switch located on the back of the pcb.
|
||||||
|
The keyboard should now be in bootloader mode.
|
||||||
|
|
||||||
|
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
21
keyboards/buildakb/potato65s/rules.mk
Normal file
21
keyboards/buildakb/potato65s/rules.mk
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
# MCU name
|
||||||
|
MCU = atmega32u4
|
||||||
|
|
||||||
|
# Bootloader selection
|
||||||
|
BOOTLOADER = atmel-dfu
|
||||||
|
|
||||||
|
# Build Options
|
||||||
|
# change yes to no to disable
|
||||||
|
#
|
||||||
|
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
|
||||||
|
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||||
|
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||||
|
CONSOLE_ENABLE = no # Console for debug
|
||||||
|
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||||
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
|
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||||
|
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
|
NKRO_ENABLE = yes # USB Nkey Rollover
|
||||||
|
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||||
|
AUDIO_ENABLE = no # Audio output
|
||||||
|
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
|
30
keyboards/handwired/battleship_gamepad/battleship_gamepad.c
Normal file
30
keyboards/handwired/battleship_gamepad/battleship_gamepad.c
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
/* Copyright 2021 Andrew Braini
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "battleship_gamepad.h"
|
||||||
|
#include "joystick.h"
|
||||||
|
#include "analog.h"
|
||||||
|
|
||||||
|
/* joystick config */
|
||||||
|
joystick_config_t joystick_axes[JOYSTICK_AXES_COUNT] = {
|
||||||
|
[0] = JOYSTICK_AXIS_IN(F5, 1023, 512, 0),
|
||||||
|
[1] = JOYSTICK_AXIS_IN(F4, 0, 512, 1023)
|
||||||
|
};
|
||||||
|
|
||||||
|
/* joystick button code (thumbstick pressed) */
|
||||||
|
void keyboard_pre_init_kb(void) {
|
||||||
|
setPinInputHigh(F6);
|
||||||
|
}
|
31
keyboards/handwired/battleship_gamepad/battleship_gamepad.h
Normal file
31
keyboards/handwired/battleship_gamepad/battleship_gamepad.h
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
/* Copyright 2021 Andrew Braini
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "quantum.h"
|
||||||
|
|
||||||
|
#define LAYOUT( \
|
||||||
|
K00, K01, K02, K03, K04, K05, K06, K07, \
|
||||||
|
K10, K11, K12, K13, K14, K15, K16, K17, \
|
||||||
|
K20, K21, K22, K23, K24, K25, K26, K27, \
|
||||||
|
K30, K31, K32, K33, K34, K35, K36, K37, \
|
||||||
|
K40, K41, K42, K43, K44, K45, K46, K47 \
|
||||||
|
) { \
|
||||||
|
{ K00, K01, K02, K03, K04, K05, K06, K07 }, \
|
||||||
|
{ K10, K11, K12, K13, K14, K15, K16, K17 }, \
|
||||||
|
{ K20, K21, K22, K23, K24, K25, K26, K27 }, \
|
||||||
|
{ K30, K31, K32, K33, K34, K35, K36, K37 }, \
|
||||||
|
{ K40, K41, K42, K43, K44, K45, K46, K47 } \
|
||||||
|
}
|
52
keyboards/handwired/battleship_gamepad/config.h
Normal file
52
keyboards/handwired/battleship_gamepad/config.h
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
/* Copyright 2021 Andrew Braini
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "config_common.h"
|
||||||
|
|
||||||
|
/* USB Device descriptor parameter */
|
||||||
|
#define VENDOR_ID 0x4142
|
||||||
|
#define PRODUCT_ID 0x0000
|
||||||
|
#define DEVICE_VER 0x0001
|
||||||
|
#define MANUFACTURER arbraini
|
||||||
|
#define PRODUCT Battleship Gamepad
|
||||||
|
|
||||||
|
/* key matrix size */
|
||||||
|
#define MATRIX_ROWS 5
|
||||||
|
#define MATRIX_COLS 8
|
||||||
|
|
||||||
|
/* key matrix pins */
|
||||||
|
#define MATRIX_ROW_PINS { B6, B2, B3, B1, F7 }
|
||||||
|
#define MATRIX_COL_PINS { D1, D0, D4, C6, D7, E6, B4, B5 }
|
||||||
|
#define UNUSED_PINS
|
||||||
|
|
||||||
|
/* joystick configuration */
|
||||||
|
#define JOYSTICK_BUTTON_COUNT 25
|
||||||
|
#define JOYSTICK_AXES_COUNT 2
|
||||||
|
#define JOYSTICK_AXES_RESOLUTION 10
|
||||||
|
|
||||||
|
/* COL2ROW or ROW2COL */
|
||||||
|
#define DIODE_DIRECTION COL2ROW
|
||||||
|
|
||||||
|
/* Set 0 if debouncing isn't needed */
|
||||||
|
#define DEBOUNCE 5
|
||||||
|
|
||||||
|
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||||
|
#define LOCKING_SUPPORT_ENABLE
|
||||||
|
|
||||||
|
/* Locking resynchronize hack */
|
||||||
|
#define LOCKING_RESYNC_ENABLE
|
215
keyboards/handwired/battleship_gamepad/info.json
Normal file
215
keyboards/handwired/battleship_gamepad/info.json
Normal file
|
@ -0,0 +1,215 @@
|
||||||
|
{
|
||||||
|
"keyboard_name": "Battleship Gamepad",
|
||||||
|
"url": "https://github.com/abraini-Nascent/battleship_gamepad",
|
||||||
|
"maintainer": "arbraini",
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT": {
|
||||||
|
"layout": [
|
||||||
|
{
|
||||||
|
"label": "F1",
|
||||||
|
"x": 0,
|
||||||
|
"y": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "F2",
|
||||||
|
"x": 1,
|
||||||
|
"y": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Esc",
|
||||||
|
"x": 2.25,
|
||||||
|
"y": 0,
|
||||||
|
"w": 1.25
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "!",
|
||||||
|
"x": 3.5,
|
||||||
|
"y": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "@",
|
||||||
|
"x": 4.5,
|
||||||
|
"y": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "#",
|
||||||
|
"x": 5.5,
|
||||||
|
"y": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "$",
|
||||||
|
"x": 6.5,
|
||||||
|
"y": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "%",
|
||||||
|
"x": 7.5,
|
||||||
|
"y": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "F3",
|
||||||
|
"x": 0,
|
||||||
|
"y": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "F4",
|
||||||
|
"x": 1,
|
||||||
|
"y": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Tab",
|
||||||
|
"x": 2.25,
|
||||||
|
"y": 1,
|
||||||
|
"w": 1.25
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Q",
|
||||||
|
"x": 3.5,
|
||||||
|
"y": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "W",
|
||||||
|
"x": 4.5,
|
||||||
|
"y": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "E",
|
||||||
|
"x": 5.5,
|
||||||
|
"y": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "R",
|
||||||
|
"x": 6.5,
|
||||||
|
"y": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "T",
|
||||||
|
"x": 7.5,
|
||||||
|
"y": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "F5",
|
||||||
|
"x": 0,
|
||||||
|
"y": 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "F6",
|
||||||
|
"x": 1,
|
||||||
|
"y": 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Caps<br>Lock",
|
||||||
|
"x": 2.25,
|
||||||
|
"y": 2,
|
||||||
|
"w": 1.25
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "A",
|
||||||
|
"x": 3.5,
|
||||||
|
"y": 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "S",
|
||||||
|
"x": 4.5,
|
||||||
|
"y": 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "D",
|
||||||
|
"x": 5.5,
|
||||||
|
"y": 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "F",
|
||||||
|
"x": 6.5,
|
||||||
|
"y": 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "G",
|
||||||
|
"x": 7.5,
|
||||||
|
"y": 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "F7",
|
||||||
|
"x": 0,
|
||||||
|
"y": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "F8",
|
||||||
|
"x": 1,
|
||||||
|
"y": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Shift",
|
||||||
|
"x": 2.25,
|
||||||
|
"y": 3,
|
||||||
|
"w": 1.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": "F9",
|
||||||
|
"x": 0,
|
||||||
|
"y": 4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "F10",
|
||||||
|
"x": 1,
|
||||||
|
"y": 4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "",
|
||||||
|
"x": 2.25,
|
||||||
|
"y": 4,
|
||||||
|
"w": 1.25
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Ctrl",
|
||||||
|
"x": 3.5,
|
||||||
|
"y": 4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Alt",
|
||||||
|
"x": 4.5,
|
||||||
|
"y": 4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "\u21e9",
|
||||||
|
"x": 5.5,
|
||||||
|
"y": 4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "\u21e7",
|
||||||
|
"x": 6.5,
|
||||||
|
"y": 4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"x": 7.5,
|
||||||
|
"y": 4
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,41 @@
|
||||||
|
/* Copyright 2021 Andrew Braini
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
[0] = LAYOUT(
|
||||||
|
KC_F1, KC_F2, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5,
|
||||||
|
KC_F3, KC_F4, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T,
|
||||||
|
KC_F5, KC_F6, KC_NO, KC_A, KC_S, KC_D, KC_F, KC_G,
|
||||||
|
KC_F7, KC_F8, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B,
|
||||||
|
KC_F9, KC_F10, LT(1, KC_NO), KC_LCTL, KC_LALT, KC_NO, LT(1, KC_NO), KC_SPC),
|
||||||
|
|
||||||
|
[1] = LAYOUT(
|
||||||
|
RESET, DEBUG, KC_TILD, KC_6, KC_7, KC_8, KC_9, KC_0,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, TG(2), KC_TRNS, KC_TRNS),
|
||||||
|
|
||||||
|
[2] = LAYOUT(
|
||||||
|
KC_TRNS, KC_TRNS, TG(2), JS_BUTTON0, JS_BUTTON1, JS_BUTTON2, JS_BUTTON3, JS_BUTTON4,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, JS_BUTTON5, JS_BUTTON6, JS_BUTTON7, JS_BUTTON8, JS_BUTTON9,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, JS_BUTTON10, JS_BUTTON11, JS_BUTTON12, JS_BUTTON13, JS_BUTTON14,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, JS_BUTTON15, JS_BUTTON16, JS_BUTTON17, JS_BUTTON18, JS_BUTTON19,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, JS_BUTTON20, JS_BUTTON21, JS_BUTTON22, JS_BUTTON23, JS_BUTTON24)
|
||||||
|
};
|
|
@ -0,0 +1,2 @@
|
||||||
|
# Battleship Gamepad - Default layout
|
||||||
|
Default layout with 2 axies thumbstick and press to click
|
48
keyboards/handwired/battleship_gamepad/keymaps/via/keymap.c
Normal file
48
keyboards/handwired/battleship_gamepad/keymaps/via/keymap.c
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
/* Copyright 2021 Andrew Braini
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
[0] = LAYOUT(
|
||||||
|
KC_F1, KC_F2, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5,
|
||||||
|
KC_F3, KC_F4, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T,
|
||||||
|
KC_F5, KC_F6, KC_NO, KC_A, KC_S, KC_D, KC_F, KC_G,
|
||||||
|
KC_F7, KC_F8, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B,
|
||||||
|
KC_F9, KC_F10, LT(1, KC_NO), KC_LCTL, KC_LALT, LT(2, KC_NO), LT(1, KC_NO), KC_SPC),
|
||||||
|
|
||||||
|
[1] = LAYOUT(
|
||||||
|
RESET, DEBUG, KC_TILD, KC_6, KC_7, KC_8, KC_9, KC_0,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||||
|
|
||||||
|
[2] = LAYOUT(
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||||
|
|
||||||
|
[3] = LAYOUT(
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
|
||||||
|
};
|
|
@ -0,0 +1,2 @@
|
||||||
|
VIA_ENABLE = yes
|
||||||
|
CONSOLE_ENABLE = no
|
29
keyboards/handwired/battleship_gamepad/readme.md
Normal file
29
keyboards/handwired/battleship_gamepad/readme.md
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
# Battleship Gamepad
|
||||||
|
|
||||||
|
![Battleship Gamepad](https://imgur.com/FCpQfzQ.jpg)
|
||||||
|
|
||||||
|
A hand-wired 3d-printed mechanical keyboard intended for one hand with an analog thumbstick for movement. The layout matches the left side of large "battleship" keyboards with their extra bank of 2x5 1u F keys.
|
||||||
|
|
||||||
|
Build instructions and 3d printer files can be found in the [project github repo](https://github.com/abraini-Nascent/battleship_gamepad)
|
||||||
|
|
||||||
|
* Keyboard Maintainer: [arbraini](https://github.com/abraini-Nascent)
|
||||||
|
* Hardware Supported: Arduino Pro Micro
|
||||||
|
* Features: 40 keys in an ortho layout and an analog thumbstick.
|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make handwired/battleship_gamepad:default
|
||||||
|
|
||||||
|
Flashing example for this keyboard:
|
||||||
|
|
||||||
|
make handwired/battleship_gamepad:flash
|
||||||
|
|
||||||
|
## Bootloader
|
||||||
|
|
||||||
|
Enter the bootloader in 3 ways:
|
||||||
|
|
||||||
|
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (the top left key in the 2x5 bank) and plug in the keyboard.
|
||||||
|
* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead.
|
||||||
|
* **Keycode in layout**: Press the key mapped to `RESET`. In the default layout this is the key at (0,0) on layer 1.
|
||||||
|
|
||||||
|
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
25
keyboards/handwired/battleship_gamepad/rules.mk
Normal file
25
keyboards/handwired/battleship_gamepad/rules.mk
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
# MCU name
|
||||||
|
MCU = atmega32u4
|
||||||
|
|
||||||
|
# Bootloader selection
|
||||||
|
BOOTLOADER = caterina
|
||||||
|
|
||||||
|
SRC += analog.c
|
||||||
|
|
||||||
|
# Build Options
|
||||||
|
# change yes to no to disable
|
||||||
|
#
|
||||||
|
BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
|
||||||
|
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||||
|
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||||
|
CONSOLE_ENABLE = no # Console for debug
|
||||||
|
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||||
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
|
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||||
|
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
|
NKRO_ENABLE = yes # USB Nkey Rollover
|
||||||
|
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||||
|
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||||
|
AUDIO_ENABLE = no # Audio output
|
||||||
|
JOYSTICK_ENABLE = yes
|
||||||
|
JOYSTICK_DRIVER = analog
|
|
@ -41,7 +41,7 @@
|
||||||
#define RGB_DISABLE_WHEN_USB_SUSPENDED
|
#define RGB_DISABLE_WHEN_USB_SUSPENDED
|
||||||
#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
|
#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
|
||||||
#define RGB_MATRIX_KEYPRESSES
|
#define RGB_MATRIX_KEYPRESSES
|
||||||
#define RGB_DISABLE_TIMEOUT 60000
|
#define RGB_DISABLE_TIMEOUT 90000
|
||||||
|
|
||||||
|
|
||||||
#define DEBOUNCE 5
|
#define DEBOUNCE 5
|
||||||
|
|
|
@ -29,8 +29,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
),
|
),
|
||||||
[1] = LAYOUT_67_ansi(
|
[1] = LAYOUT_67_ansi(
|
||||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_PSCR,
|
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_PSCR,
|
||||||
_______, RGB_RMOD, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, RGB_RMOD, RGB_HUI, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, _______, RGB_HUD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______,
|
||||||
MAGIC_UNNO_GUI,MAGIC_NO_GUI, _______, RGB_TOG, _______, MO(2), RGB_SPD, RGB_VAD, RGB_SPI
|
MAGIC_UNNO_GUI,MAGIC_NO_GUI, _______, RGB_TOG, _______, MO(2), RGB_SPD, RGB_VAD, RGB_SPI
|
||||||
),
|
),
|
||||||
|
|
|
@ -29,8 +29,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
),
|
),
|
||||||
[1] = LAYOUT_67_ansi(
|
[1] = LAYOUT_67_ansi(
|
||||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_PSCR,
|
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_PSCR,
|
||||||
_______, RGB_RMOD, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, RGB_RMOD, RGB_HUI, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, _______, RGB_HUD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______,
|
||||||
MAGIC_UNNO_GUI,MAGIC_NO_GUI, _______, RGB_TOG, _______, MO(2), RGB_SPD, RGB_VAD, RGB_SPI
|
MAGIC_UNNO_GUI,MAGIC_NO_GUI, _______, RGB_TOG, _______, MO(2), RGB_SPD, RGB_VAD, RGB_SPI
|
||||||
),
|
),
|
||||||
|
|
61
keyboards/phrygian/ph100/chconf.h
Normal file
61
keyboards/phrygian/ph100/chconf.h
Normal file
|
@ -0,0 +1,61 @@
|
||||||
|
/* Copyright 2020 QMK
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file was auto-generated by:
|
||||||
|
* `qmk chibios-confmigrate -i keyboards/phrygian/ph100/chconf.h -r platforms/chibios/common/configs/chconf.h`
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#define CH_CFG_ST_FREQUENCY 10000
|
||||||
|
|
||||||
|
#define CH_CFG_USE_REGISTRY TRUE
|
||||||
|
|
||||||
|
#define CH_CFG_USE_WAITEXIT TRUE
|
||||||
|
|
||||||
|
#define CH_CFG_USE_CONDVARS TRUE
|
||||||
|
|
||||||
|
#define CH_CFG_USE_MESSAGES TRUE
|
||||||
|
|
||||||
|
#define CH_CFG_USE_MAILBOXES TRUE
|
||||||
|
|
||||||
|
#define CH_CFG_USE_HEAP TRUE
|
||||||
|
|
||||||
|
#define CH_CFG_USE_MEMPOOLS TRUE
|
||||||
|
|
||||||
|
#define CH_CFG_USE_OBJ_FIFOS TRUE
|
||||||
|
|
||||||
|
#define CH_CFG_USE_PIPES TRUE
|
||||||
|
|
||||||
|
#define CH_CFG_USE_DYNAMIC TRUE
|
||||||
|
|
||||||
|
#define CH_CFG_USE_FACTORY TRUE
|
||||||
|
|
||||||
|
#define CH_CFG_FACTORY_OBJECTS_REGISTRY TRUE
|
||||||
|
|
||||||
|
#define CH_CFG_FACTORY_GENERIC_BUFFERS TRUE
|
||||||
|
|
||||||
|
#define CH_CFG_FACTORY_SEMAPHORES TRUE
|
||||||
|
|
||||||
|
#define CH_CFG_FACTORY_MAILBOXES TRUE
|
||||||
|
|
||||||
|
#define CH_CFG_FACTORY_OBJ_FIFOS TRUE
|
||||||
|
|
||||||
|
#define CH_CFG_FACTORY_PIPES TRUE
|
||||||
|
|
||||||
|
#include_next <chconf.h>
|
||||||
|
|
43
keyboards/phrygian/ph100/config.h
Normal file
43
keyboards/phrygian/ph100/config.h
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
/* Copyright 2021 Phrygian Design
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "config_common.h"
|
||||||
|
|
||||||
|
/* USB Device descriptor parameter */
|
||||||
|
#define VENDOR_ID 0xFEED
|
||||||
|
#define PRODUCT_ID 0x0C61
|
||||||
|
#define DEVICE_VER 0x0100
|
||||||
|
#define MANUFACTURER PhrygianDesign
|
||||||
|
#define PRODUCT ph100
|
||||||
|
|
||||||
|
/* key matrix size */
|
||||||
|
#define MATRIX_ROWS 10
|
||||||
|
#define MATRIX_COLS 10
|
||||||
|
|
||||||
|
#define MATRIX_ROW_PINS { B0, B1, B2, B3, B4, B5, B6, B7, B8, B9 }
|
||||||
|
#define MATRIX_COL_PINS { A0, A1, A2, A3, A4, A5, A6, A7, A8, A9 }
|
||||||
|
|
||||||
|
/* COL2ROW, ROW2COL */
|
||||||
|
#define DIODE_DIRECTION COL2ROW
|
||||||
|
|
||||||
|
/* Define capslock and numlock */
|
||||||
|
#define LED_NUM_LOCK_PIN B14
|
||||||
|
#define LED_CAPS_LOCK_PIN B15
|
||||||
|
|
||||||
|
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||||
|
#define DEBOUNCE 10
|
37
keyboards/phrygian/ph100/halconf.h
Normal file
37
keyboards/phrygian/ph100/halconf.h
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
/* Copyright 2020 QMK
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file was auto-generated by:
|
||||||
|
* `qmk chibios-confmigrate -i keyboards/phrygian/ph100/halconf.h -r platforms/chibios/common/configs/halconf.h`
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#define HAL_USE_SERIAL_USB TRUE
|
||||||
|
|
||||||
|
#define ADC_USE_WAIT FALSE
|
||||||
|
|
||||||
|
#define ADC_USE_MUTUAL_EXCLUSION FALSE
|
||||||
|
|
||||||
|
#define SERIAL_USB_BUFFERS_SIZE 256
|
||||||
|
|
||||||
|
#define SPI_USE_WAIT FALSE
|
||||||
|
|
||||||
|
#define SPI_USE_MUTUAL_EXCLUSION FALSE
|
||||||
|
|
||||||
|
#include_next <halconf.h>
|
||||||
|
|
111
keyboards/phrygian/ph100/info.json
Normal file
111
keyboards/phrygian/ph100/info.json
Normal file
|
@ -0,0 +1,111 @@
|
||||||
|
{
|
||||||
|
"keyboard_name": "ph100",
|
||||||
|
"url": "https://phrygiandesign.com/products/ph100-mechanical-keyboard",
|
||||||
|
"maintainer": "phrygiandesign",
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT": {
|
||||||
|
"layout": [
|
||||||
|
{"label":"ESCAPE", "x":0, "y":0},
|
||||||
|
{"label":"F1", "x":2, "y":0},
|
||||||
|
{"label":"F2", "x":3, "y":0},
|
||||||
|
{"label":"F3", "x":4, "y":0},
|
||||||
|
{"label":"F4", "x":5, "y":0},
|
||||||
|
{"label":"F5", "x":6.5, "y":0},
|
||||||
|
{"label":"F6", "x":7.5, "y":0},
|
||||||
|
{"label":"F7", "x":8.5, "y":0},
|
||||||
|
{"label":"F8", "x":9.5, "y":0},
|
||||||
|
{"label":"F9", "x":11, "y":0},
|
||||||
|
{"label":"F10", "x":12, "y":0},
|
||||||
|
{"label":"F11", "x":13, "y":0},
|
||||||
|
{"label":"F12", "x":14, "y":0},
|
||||||
|
{"label":"HOME", "x":15.25, "y":0},
|
||||||
|
{"label":"PRINT SCREEN", "x":16.25, "y":0},
|
||||||
|
{"label":"BACKTICK", "x":0, "y":1},
|
||||||
|
{"label":"1", "x":1, "y":1},
|
||||||
|
{"label":"2", "x":2, "y":1},
|
||||||
|
{"label":"3", "x":3, "y":1},
|
||||||
|
{"label":"4", "x":4, "y":1},
|
||||||
|
{"label":"5", "x":5, "y":1},
|
||||||
|
{"label":"6", "x":6, "y":1},
|
||||||
|
{"label":"7", "x":7, "y":1},
|
||||||
|
{"label":"8", "x":8, "y":1},
|
||||||
|
{"label":"9", "x":9, "y":1},
|
||||||
|
{"label":"0", "x":10, "y":1},
|
||||||
|
{"label":"MINUS", "x":11, "y":1},
|
||||||
|
{"label":"EQUALS", "x":12, "y":1},
|
||||||
|
{"label":"BACKSPACE", "x":13, "y":1, "w":2},
|
||||||
|
{"label":"END", "x":15.25, "y":1},
|
||||||
|
{"label":"PAGE UP", "x":16.25, "y":1},
|
||||||
|
{"label":"NUM LOCK", "x":17.5, "y":1},
|
||||||
|
{"label":"/", "x":18.5, "y":1},
|
||||||
|
{"label":"*", "x":19.5, "y":1},
|
||||||
|
{"label":"-", "x":20.5, "y":1},
|
||||||
|
{"label":"TAB", "x":0, "y":2, "w":1.5},
|
||||||
|
{"label":"Q", "x":1.5, "y":2},
|
||||||
|
{"label":"W", "x":2.5, "y":2},
|
||||||
|
{"label":"E", "x":3.5, "y":2},
|
||||||
|
{"label":"R", "x":4.5, "y":2},
|
||||||
|
{"label":"T", "x":5.5, "y":2},
|
||||||
|
{"label":"Y", "x":6.5, "y":2},
|
||||||
|
{"label":"U", "x":7.5, "y":2},
|
||||||
|
{"label":"I", "x":8.5, "y":2},
|
||||||
|
{"label":"O", "x":9.5, "y":2},
|
||||||
|
{"label":"P", "x":10.5, "y":2},
|
||||||
|
{"label":"LEFT BRACKET", "x":11.5, "y":2},
|
||||||
|
{"label":"RIGHT BRACKET", "x":12.5, "y":2},
|
||||||
|
{"label":"BACK SLASH", "x":13.5, "y":2, "w":1.5},
|
||||||
|
{"label":"DELETE", "x":15.25, "y":2},
|
||||||
|
{"label":"PAGE DOWN", "x":16.25, "y":2},
|
||||||
|
{"label":"7", "x":17.5, "y":2},
|
||||||
|
{"label":"8", "x":18.5, "y":2},
|
||||||
|
{"label":"9", "x":19.5, "y":2},
|
||||||
|
{"label":"+", "x":20.5, "y":2, "h":2},
|
||||||
|
{"label":"CAPS LOCK", "x":0, "y":3, "w":1.75},
|
||||||
|
{"label":"A", "x":1.75, "y":3},
|
||||||
|
{"label":"S", "x":2.75, "y":3},
|
||||||
|
{"label":"D", "x":3.75, "y":3},
|
||||||
|
{"label":"F", "x":4.75, "y":3},
|
||||||
|
{"label":"G", "x":5.75, "y":3},
|
||||||
|
{"label":"H", "x":6.75, "y":3},
|
||||||
|
{"label":"J", "x":7.75, "y":3},
|
||||||
|
{"label":"K", "x":8.75, "y":3},
|
||||||
|
{"label":"L", "x":9.75, "y":3},
|
||||||
|
{"label":"SEMICOLON", "x":10.75, "y":3},
|
||||||
|
{"label":"SINGLE TICK", "x":11.75, "y":3},
|
||||||
|
{"label":"ENTER", "x":12.75, "y":3, "w":2.25},
|
||||||
|
{"label":"4", "x":17.5, "y":3},
|
||||||
|
{"label":"5", "x":18.5, "y":3},
|
||||||
|
{"label":"6", "x":19.5, "y":3},
|
||||||
|
{"label":"LEFT 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":"COMMA", "x":9.25, "y":4},
|
||||||
|
{"label":"PERIOD", "x":10.25, "y":4},
|
||||||
|
{"label":"FORWARD SLASH", "x":11.25, "y":4},
|
||||||
|
{"label":"RIGHT SHIFT", "x":12.25, "y":4, "w":2.25},
|
||||||
|
{"label":"UP ARROW", "x":15.25, "y":4},
|
||||||
|
{"label":"1", "x":17.5, "y":4},
|
||||||
|
{"label":"2", "x":18.5, "y":4},
|
||||||
|
{"label":"3", "x":19.5, "y":4},
|
||||||
|
{"label":"ENTER", "x":20.5, "y":4, "h":2},
|
||||||
|
{"label":"LEFT CTRL", "x":0, "y":5, "w":1.25},
|
||||||
|
{"label":"LEFT WIN", "x":1.25, "y":5, "w":1.25},
|
||||||
|
{"label":"LEFT ALT", "x":2.5, "y":5, "w":1.25},
|
||||||
|
{"label":"SPACEBAR", "x":3.75, "y":5, "w":6.25},
|
||||||
|
{"label":"RIGHT ALT", "x":10, "y":5, "w":1.25},
|
||||||
|
{"label":"RIGHT CTRL", "x":11.25, "y":5, "w":1.25},
|
||||||
|
{"label":"FN", "x":12.5, "y":5},
|
||||||
|
{"label":"LEFT ARROW", "x":14.25, "y":5},
|
||||||
|
{"label":"DOWN ARROW", "x":15.25, "y":5},
|
||||||
|
{"label":"RIGHT ARROW", "x":16.25, "y":5},
|
||||||
|
{"label":"0", "x":17.5, "y":5, "w":2},
|
||||||
|
{"label":".", "x":19.5, "y":5}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
27
keyboards/phrygian/ph100/keymaps/default/keymap.c
Normal file
27
keyboards/phrygian/ph100/keymaps/default/keymap.c
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
/* Copyright 2021 Phrygian Design
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[0] = LAYOUT(
|
||||||
|
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_PGUP,
|
||||||
|
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_PGDN, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
|
||||||
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_HOME, KC_END, KC_P7, KC_P8, KC_P9,
|
||||||
|
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS,
|
||||||
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_APP, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT)
|
||||||
|
};
|
19
keyboards/phrygian/ph100/ph100.c
Normal file
19
keyboards/phrygian/ph100/ph100.c
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
/* Copyright 2021 Phrygian Design
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "ph100.h"
|
||||||
|
|
||||||
|
//Put software here
|
44
keyboards/phrygian/ph100/ph100.h
Normal file
44
keyboards/phrygian/ph100/ph100.h
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
/* Copyright 2021 Phrygian Design
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#define XXX KC_NO
|
||||||
|
|
||||||
|
#include "quantum.h"
|
||||||
|
|
||||||
|
// This a shortcut to help you visually see your layout.
|
||||||
|
|
||||||
|
#define LAYOUT(\
|
||||||
|
K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K61, K62, K63, K64, K65, \
|
||||||
|
K11, K12, K13, K14, K15, K16, K17, K18, K19, K20, K71, K72, K73, K74, K75, K76, K66, K67, K68, K69, \
|
||||||
|
K21, K22, K23, K24, K25, K26, K27, K28, K29, K30, K81, K82, K83, K84, K85, K86, K77, K78, K79, \
|
||||||
|
K31, K32, K33, K34, K35, K36, K37, K38, K39, K40, K91, K93, K95, K87, K88, K80, K70, \
|
||||||
|
K41, K42, K43, K44, K45, K46, K47, K48, K49, K50, K92, K94, K96, K97, K89, K90, \
|
||||||
|
K51, K52, K53, K54, K55, K56, K57, K58, K59, K60, K98, K99, K100\
|
||||||
|
){ \
|
||||||
|
{ K01, K02, K03, K04, K05, K06, K07, K08, K09, K10 }, \
|
||||||
|
{ K11, K12, K13, K14, K15, K16, K17, K18, K19, K20 }, \
|
||||||
|
{ K21, K22, K23, K24, K25, K26, K27, K28, K29, K30 }, \
|
||||||
|
{ K31, K32, K33, K34, K35, K36, K37, K38, K39, K40 }, \
|
||||||
|
{ K41, K42, K43, K44, K45, K46, K47, K48, K49, K50 }, \
|
||||||
|
{ K51, K52, K53, K54, K55, K56, K57, K58, K59, K60 }, \
|
||||||
|
{ K61, K62, K63, K64, K65, K66, K67, K68, K69, K70 }, \
|
||||||
|
{ K71, K72, K73, K74, K75, K76, K77, K78, K79, K80 }, \
|
||||||
|
{ K81, K82, K83, K84, K85, K86, K87, K88, K89, K90 }, \
|
||||||
|
{ K91, K92, K93, K94, K95, K96, K97, K98, K99, K100 }, \
|
||||||
|
}
|
||||||
|
|
20
keyboards/phrygian/ph100/readme.md
Normal file
20
keyboards/phrygian/ph100/readme.md
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
## Phrygian Design ph100
|
||||||
|
|
||||||
|
![ph100](https://cdn.shopify.com/s/files/1/0470/8814/0443/products/DSCF0064_1080x.png)
|
||||||
|
|
||||||
|
The ph100 is a 100-key modular keyboard from Phrygian Design.
|
||||||
|
|
||||||
|
* Keyboard Maintainer: https://github.com/phrygiandesign
|
||||||
|
* Hardware Supported: ph100 PCB
|
||||||
|
* Hardware Availability: https://phrygiandesign.com/products/ph100-mechanical-keyboard
|
||||||
|
* Keyboard support: contact@phrygiandesign.com
|
||||||
|
|
||||||
|
Make example for this keyboard:
|
||||||
|
|
||||||
|
make phrygian/ph100:default
|
||||||
|
|
||||||
|
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||||
|
|
||||||
|
#### Note: Booting into the STM32 USB Bootloader
|
||||||
|
The STM32F042 range of microcontrollers have problems with entering into the USB bootloader with QMK's bootloader key sequence.
|
||||||
|
To boot into the bootloader, apply power to the keyboard while holding down "SW0" on the bottom of PCB near the USB port.
|
25
keyboards/phrygian/ph100/rules.mk
Normal file
25
keyboards/phrygian/ph100/rules.mk
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
# MCU name
|
||||||
|
MCU = STM32F042
|
||||||
|
|
||||||
|
# Bootloader selection
|
||||||
|
BOOTLOADER = stm32-dfu
|
||||||
|
|
||||||
|
# Build Options
|
||||||
|
# change yes to no to disable
|
||||||
|
#
|
||||||
|
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
|
||||||
|
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||||
|
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||||
|
CONSOLE_ENABLE = no # Console for debug
|
||||||
|
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||||
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
|
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||||
|
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
|
NKRO_ENABLE = yes # USB Nkey Rollover
|
||||||
|
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||||
|
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||||
|
AUDIO_ENABLE = no # Audio output
|
||||||
|
|
||||||
|
|
||||||
|
# Enter lower-power sleep mode when on the ChibiOS idle thread
|
||||||
|
OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
|
|
@ -1,13 +1,27 @@
|
||||||
|
/* Copyright 2015-2021 Jack Humbert
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#ifdef AUDIO_ENABLE
|
#ifdef AUDIO_ENABLE
|
||||||
#define STARTUP_SONG SONG(PLANCK_SOUND)
|
# define STARTUP_SONG SONG(PLANCK_SOUND)
|
||||||
// #define STARTUP_SONG SONG(NO_SOUND)
|
// #define STARTUP_SONG SONG(NO_SOUND)
|
||||||
|
|
||||||
#define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
|
# define DEFAULT_LAYER_SONGS \
|
||||||
SONG(COLEMAK_SOUND), \
|
{ SONG(QWERTY_SOUND), SONG(COLEMAK_SOUND), SONG(DVORAK_SOUND) }
|
||||||
SONG(DVORAK_SOUND) \
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -33,4 +47,3 @@
|
||||||
|
|
||||||
// Most tactile encoders have detents every 4 stages
|
// Most tactile encoders have detents every 4 stages
|
||||||
#define ENCODER_RESOLUTION 4
|
#define ENCODER_RESOLUTION 4
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* Copyright 2015-2017 Jack Humbert
|
/* Copyright 2015-2021 Jack Humbert
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|
|
@ -4,71 +4,72 @@
|
||||||
"url": "https://peac.design/",
|
"url": "https://peac.design/",
|
||||||
"layouts": {
|
"layouts": {
|
||||||
"LAYOUT": {
|
"LAYOUT": {
|
||||||
"layout": [
|
"layout":
|
||||||
{ "label": "Esc", "x": 0, "y": 0 },
|
[
|
||||||
{ "label": "!", "x": 1, "y": 0 },
|
{"label":"Esc", "x":0, "y":0},
|
||||||
{ "label": "@", "x": 2, "y": 0 },
|
{"label":"!", "x":1, "y":0},
|
||||||
{ "label": "#", "x": 3, "y": 0 },
|
{"label":"@", "x":2, "y":0},
|
||||||
{ "label": "$", "x": 4, "y": 0 },
|
{"label":"#", "x":3, "y":0},
|
||||||
{ "label": "%", "x": 5, "y": 0 },
|
{"label":"$", "x":4, "y":0},
|
||||||
{ "label": "^", "x": 6, "y": 0 },
|
{"label":"%", "x":5, "y":0},
|
||||||
{ "label": "&", "x": 7, "y": 0 },
|
{"label":"^", "x":6, "y":0},
|
||||||
{ "label": "*", "x": 8, "y": 0 },
|
{"label":"&", "x":7, "y":0},
|
||||||
{ "label": "(", "x": 9, "y": 0 },
|
{"label":"*", "x":8, "y":0},
|
||||||
{ "label": ")", "x": 10, "y": 0 },
|
{"label":"(", "x":9, "y":0},
|
||||||
{ "label": "_", "x": 11, "y": 0 },
|
{"label":")", "x":10, "y":0},
|
||||||
{ "label": "+", "x": 12, "y": 0 },
|
{"label":"_", "x":11, "y":0},
|
||||||
{ "label": "Backspace", "w": 2, "x": 13, "y": 0 },
|
{"label":"+", "x":12, "y":0},
|
||||||
{ "label": "Del", "x": 16, "y": 0 },
|
{"label":"Backspace", "x":13, "y":0, "w":2},
|
||||||
{ "label": "Tab", "w": 1.5, "x": 0, "y": 1 },
|
|
||||||
{ "label": "Q", "x": 1.5, "y": 1 },
|
{"label":"Tab", "x":0, "y":1, "w":1.5},
|
||||||
{ "label": "W", "x": 2.5, "y": 1 },
|
{"label":"Q", "x":1.5, "y":1},
|
||||||
{ "label": "E", "x": 3.5, "y": 1 },
|
{"label":"W", "x":2.5, "y":1},
|
||||||
{ "label": "R", "x": 4.5, "y": 1 },
|
{"label":"E", "x":3.5, "y":1},
|
||||||
{ "label": "T", "x": 5.5, "y": 1 },
|
{"label":"R", "x":4.5, "y":1},
|
||||||
{ "label": "Y", "x": 6.5, "y": 1 },
|
{"label":"T", "x":5.5, "y":1},
|
||||||
{ "label": "U", "x": 7.5, "y": 1 },
|
{"label":"Y", "x":6.5, "y":1},
|
||||||
{ "label": "I", "x": 8.5, "y": 1 },
|
{"label":"U", "x":7.5, "y":1},
|
||||||
{ "label": "O", "x": 9.5, "y": 1 },
|
{"label":"I", "x":8.5, "y":1},
|
||||||
{ "label": "P", "x": 10.5, "y": 1 },
|
{"label":"O", "x":9.5, "y":1},
|
||||||
{ "label": "{", "x": 11.5, "y": 1 },
|
{"label":"P", "x":10.5, "y":1},
|
||||||
{ "label": "}", "x": 12.5, "y": 1 },
|
{"label":"{", "x":11.5, "y":1},
|
||||||
{ "label": "|", "w": 1.5, "x": 13.5, "y": 1 },
|
{"label":"}", "x":12.5, "y":1},
|
||||||
{ "label": "Caps Lock", "w": 1.25, "x": 0, "y": 2 },
|
{"label":"|", "x":13.5, "y":1, "w":1.5},
|
||||||
{ "label": "A", "x": 1.75, "y": 2 },
|
|
||||||
{ "label": "S", "x": 2.75, "y": 2 },
|
{"label":"Caps Lock", "x":0, "y":2, "w":1.25},
|
||||||
{ "label": "D", "x": 3.75, "y": 2 },
|
{"label":"A", "x":1.75, "y":2},
|
||||||
{ "label": "F", "x": 4.75, "y": 2 },
|
{"label":"S", "x":2.75, "y":2},
|
||||||
{ "label": "G", "x": 5.75, "y": 2 },
|
{"label":"D", "x":3.75, "y":2},
|
||||||
{ "label": "H", "x": 6.75, "y": 2 },
|
{"label":"F", "x":4.75, "y":2},
|
||||||
{ "label": "J", "x": 7.75, "y": 2 },
|
{"label":"G", "x":5.75, "y":2},
|
||||||
{ "label": "K", "x": 8.75, "y": 2 },
|
{"label":"H", "x":6.75, "y":2},
|
||||||
{ "label": "L", "x": 9.75, "y": 2 },
|
{"label":"J", "x":7.75, "y":2},
|
||||||
{ "label": ":", "x": 10.75, "y": 2 },
|
{"label":"K", "x":8.75, "y":2},
|
||||||
{ "label": "\"", "x": 11.75, "y": 2 },
|
{"label":"L", "x":9.75, "y":2},
|
||||||
{ "label": "NUBS", "x": 12.75, "y": 2 },
|
{"label":":", "x":10.75, "y":2},
|
||||||
{ "h": 2, "label": "Enter", "w": 1.25, "x": 13.75, "y": 1 },
|
{"label":"\"", "x":11.75, "y":2},
|
||||||
{ "label": "Shift", "w": 1.25, "x": 0, "y": 3 },
|
{"label":"Enter", "x":12.75, "y":2, "w":2.25},
|
||||||
{ "label": "NUHS", "x": 1.25, "y": 3 },
|
|
||||||
{ "label": "Z", "x": 2.25, "y": 3 },
|
{"label":"Shift", "x":0, "y":3, "w":2.25},
|
||||||
{ "label": "X", "x": 3.25, "y": 3 },
|
{"label":"Z", "x":2.25, "y":3},
|
||||||
{ "label": "C", "x": 4.25, "y": 3 },
|
{"label":"X", "x":3.25, "y":3},
|
||||||
{ "label": "V", "x": 5.25, "y": 3 },
|
{"label":"C", "x":4.25, "y":3},
|
||||||
{ "label": "B", "x": 6.25, "y": 3 },
|
{"label":"V", "x":5.25, "y":3},
|
||||||
{ "label": "N", "x": 7.25, "y": 3 },
|
{"label":"B", "x":6.25, "y":3},
|
||||||
{ "label": "M", "x": 8.25, "y": 3 },
|
{"label":"N", "x":7.25, "y":3},
|
||||||
{ "label": "<", "x": 9.25, "y": 3 },
|
{"label":"M", "x":8.25, "y":3},
|
||||||
{ "label": ">", "x": 10.25, "y": 3 },
|
{"label":"<", "x":9.25, "y":3},
|
||||||
{ "label": "?", "x": 11.25, "y": 3 },
|
{"label":">", "x":10.25, "y":3},
|
||||||
{ "label": "Shift", "w": 1.75, "x": 12.25, "y": 3 },
|
{"label":"?", "x":11.25, "y":3},
|
||||||
{ "label": "Fn", "x": 14, "y": 3 },
|
{"label":"Shift", "x":12.25, "y":3, "w":2.25},
|
||||||
{ "label": "Ctrl", "w": 1.5, "x": 0, "y": 4 },
|
|
||||||
{ "label": "Win", "x": 1.5, "y": 4 },
|
{"label":"Ctrl", "x":0, "y":4, "w":1.5},
|
||||||
{ "label": "Alt", "w": 1.5, "x": 2.5, "y": 4 },
|
{"label":"Win", "x":1.5, "y":4},
|
||||||
{ "w": 7, "x": 4, "y": 4 },
|
{"label":"Alt", "x":2.5, "y":4, "w":1.5},
|
||||||
{ "label": "Alt", "w": 1.5, "x": 11, "y": 4 },
|
{"x":4, "y":4, "w":7},
|
||||||
{ "label": "Win", "x": 12.5, "y": 4 },
|
{"label":"Alt", "x":11, "y":4, "w":1.5},
|
||||||
{ "label": "Ctrl", "w": 1.5, "x": 13.5, "y": 4 }
|
{"label":"Win", "x":12.5, "y":4},
|
||||||
|
{"label":"Ctrl", "x":13.5, "y":4, "w":1.5}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,26 +24,26 @@ enum layer_names {
|
||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
[_BASE] = LAYOUT(
|
[_BASE] = LAYOUT(
|
||||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME,
|
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
|
||||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
|
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_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,
|
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||||
KC_LSFT, KC_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),
|
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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL
|
||||||
),
|
),
|
||||||
|
|
||||||
[_FN] = LAYOUT(
|
[_FN] = LAYOUT(
|
||||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______,
|
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, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______
|
_______, _______, _______, _______, _______, _______, _______
|
||||||
),
|
),
|
||||||
|
|
||||||
[_MEDIA] = LAYOUT(
|
[_MEDIA] = LAYOUT(
|
||||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______,
|
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, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______
|
_______, _______, _______, _______, _______, _______, _______
|
||||||
)
|
)
|
||||||
};
|
};
|
||||||
|
|
49
keyboards/plx/keymaps/default_all/keymap.c
Normal file
49
keyboards/plx/keymaps/default_all/keymap.c
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
/* Copyright 2020 Peac Design and Basekeys.com
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
// Defines names for use in layer keycodes and the keymap
|
||||||
|
enum layer_names {
|
||||||
|
_BASE,
|
||||||
|
_FN,
|
||||||
|
_MEDIA };
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[_BASE] = LAYOUT(
|
||||||
|
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME,
|
||||||
|
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_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,
|
||||||
|
KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN),
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL
|
||||||
|
),
|
||||||
|
|
||||||
|
[_FN] = LAYOUT(
|
||||||
|
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
|
||||||
|
[_MEDIA] = LAYOUT(
|
||||||
|
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______
|
||||||
|
)
|
||||||
|
};
|
|
@ -24,7 +24,7 @@ enum layer_names {
|
||||||
};
|
};
|
||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
[_BASE] = LAYOUT(
|
[_BASE] = LAYOUT_all(
|
||||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME,
|
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME,
|
||||||
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_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_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,
|
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT,
|
||||||
|
@ -32,7 +32,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL
|
||||||
),
|
),
|
||||||
|
|
||||||
[_FN] = LAYOUT(
|
[_FN] = LAYOUT_all(
|
||||||
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_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, _______, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
@ -40,7 +40,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
_______, _______, _______, _______, _______, _______, _______
|
_______, _______, _______, _______, _______, _______, _______
|
||||||
),
|
),
|
||||||
|
|
||||||
[_MEDIA] = LAYOUT(
|
[_MEDIA] = LAYOUT_all(
|
||||||
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_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, _______, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
|
|
@ -28,6 +28,21 @@
|
||||||
* represents the switch matrix.
|
* represents the switch matrix.
|
||||||
*/
|
*/
|
||||||
#define LAYOUT( \
|
#define LAYOUT( \
|
||||||
|
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, \
|
||||||
|
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, \
|
||||||
|
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2D, \
|
||||||
|
k30, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, \
|
||||||
|
k40, k41, k42, k46, k4B, k4C, k4D \
|
||||||
|
) \
|
||||||
|
{ \
|
||||||
|
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, XXX}, \
|
||||||
|
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D}, \
|
||||||
|
{ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, XXX, k2D}, \
|
||||||
|
{ k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, XXX}, \
|
||||||
|
{ k40, k41, k42, XXX, XXX, XXX, k46, XXX, XXX, XXX, XXX, k4B, k4C, k4D} \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define LAYOUT_all( \
|
||||||
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, \
|
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, \
|
||||||
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, \
|
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, \
|
||||||
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, \
|
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, \
|
||||||
|
|
|
@ -1,13 +1,27 @@
|
||||||
|
/* Copyright 2015-2021 Jack Humbert
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#ifdef AUDIO_ENABLE
|
#ifdef AUDIO_ENABLE
|
||||||
#define STARTUP_SONG SONG(PREONIC_SOUND)
|
# define STARTUP_SONG SONG(PREONIC_SOUND)
|
||||||
// #define STARTUP_SONG SONG(NO_SOUND)
|
// #define STARTUP_SONG SONG(NO_SOUND)
|
||||||
|
|
||||||
#define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
|
# define DEFAULT_LAYER_SONGS \
|
||||||
SONG(COLEMAK_SOUND), \
|
{ SONG(QWERTY_SOUND), SONG(COLEMAK_SOUND), SONG(DVORAK_SOUND) }
|
||||||
SONG(DVORAK_SOUND) \
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define MUSIC_MASK (keycode != KC_NO)
|
#define MUSIC_MASK (keycode != KC_NO)
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* Copyright 2015-2017 Jack Humbert
|
/* Copyright 2015-2021 Jack Humbert
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|
39
keyboards/rotor/config.h
Normal file
39
keyboards/rotor/config.h
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
/* Copyright 2021 Densus Design and Basekeys.jp
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "config_common.h"
|
||||||
|
|
||||||
|
/* USB Device descriptor parameter */
|
||||||
|
#define VENDOR_ID 0x04D8
|
||||||
|
#define PRODUCT_ID 0xE8BE
|
||||||
|
#define DEVICE_VER 0x0001
|
||||||
|
#define MANUFACTURER Densus Design
|
||||||
|
#define PRODUCT Rotor
|
||||||
|
|
||||||
|
/* key matrix size */
|
||||||
|
#define MATRIX_ROWS 5
|
||||||
|
#define MATRIX_COLS 18
|
||||||
|
|
||||||
|
/* key matrix pins */
|
||||||
|
|
||||||
|
#define MATRIX_ROW_PINS { B7, B0, B1, B2, B3 }
|
||||||
|
#define MATRIX_COL_PINS { E6, F0, F1, F4, F5, F6, F7, C7, C6, B6, B5, B4, D7, D6, D4, D2, D5, D3 }
|
||||||
|
|
||||||
|
/* COL2ROW, ROW2COL*/
|
||||||
|
#define DIODE_DIRECTION COL2ROW
|
||||||
|
|
10
keyboards/rotor/info.json
Normal file
10
keyboards/rotor/info.json
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
{
|
||||||
|
"keyboard_name": "Rotor",
|
||||||
|
"url": "https://klc-playground.com/",
|
||||||
|
"maintainer": "2Moons",
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT": {
|
||||||
|
"layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"label":"Esc", "x":2.25, "y":0}, {"label":"!", "x":3.25, "y":0}, {"label":"@", "x":4.25, "y":0}, {"label":"#", "x":5.25, "y":0}, {"label":"$", "x":6.25, "y":0}, {"label":"%", "x":7.25, "y":0}, {"label":"^", "x":8.25, "y":0}, {"label":"&", "x":9.25, "y":0}, {"label":"*", "x":10.25, "y":0}, {"label":"(", "x":11.25, "y":0}, {"label":")", "x":12.25, "y":0}, {"label":"_", "x":13.25, "y":0}, {"label":"+", "x":14.25, "y":0}, {"label":"Backspace", "x":15.25, "y":0, "w":2}, {"label":"Home", "x":17.25, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"label":"Tab", "x":2.25, "y":1, "w":1.5}, {"label":"Q", "x":3.75, "y":1}, {"label":"W", "x":4.75, "y":1}, {"label":"E", "x":5.75, "y":1}, {"label":"R", "x":6.75, "y":1}, {"label":"T", "x":7.75, "y":1}, {"label":"Y", "x":8.75, "y":1}, {"label":"U", "x":9.75, "y":1}, {"label":"I", "x":10.75, "y":1}, {"label":"O", "x":11.75, "y":1}, {"label":"P", "x":12.75, "y":1}, {"label":"{", "x":13.75, "y":1}, {"label":"}", "x":14.75, "y":1}, {"label":"|", "x":15.75, "y":1, "w":1.5}, {"label":"PgUp", "x":17.25, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"label":"Caps Lock", "x":2.25, "y":2, "w":1.75}, {"label":"A", "x":4, "y":2}, {"label":"S", "x":5, "y":2}, {"label":"D", "x":6, "y":2}, {"label":"F", "x":7, "y":2}, {"label":"G", "x":8, "y":2}, {"label":"H", "x":9, "y":2}, {"label":"J", "x":10, "y":2}, {"label":"K", "x":11, "y":2}, {"label":"L", "x":12, "y":2}, {"label":":", "x":13, "y":2}, {"label":"\"", "x":14, "y":2}, {"label":"Enter", "x":15, "y":2, "w":2.25}, {"label":"PgDn", "x":17.25, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"label":"Shift", "x":2.25, "y":3, "w":2.25}, {"label":"Z", "x":4.5, "y":3}, {"label":"X", "x":5.5, "y":3}, {"label":"C", "x":6.5, "y":3}, {"label":"V", "x":7.5, "y":3}, {"label":"B", "x":8.5, "y":3}, {"label":"N", "x":9.5, "y":3}, {"label":"M", "x":10.5, "y":3}, {"label":"<", "x":11.5, "y":3}, {"label":">", "x":12.5, "y":3}, {"label":"?", "x":13.5, "y":3}, {"label":"Shift", "x":14.5, "y":3, "w":1.75}, {"label":"\u2191", "x":16.25, "y":3}, {"label":"End", "x":17.25, "y":3}, {"x":0, "y":4}, {"x":1, "y":4}, {"label":"Ctrl", "x":2.25, "y":4, "w":1.5}, {"x":3.75, "y":4}, {"label":"Alt", "x":4.75, "y":4, "w":1.5}, {"label":"7u", "x":6.25, "y":4, "w":7}, {"label":"Ctrl", "x":13.25, "y":4, "w":1.5}, {"label":"\u2190", "x":15.25, "y":4}, {"label":"\u2193", "x":16.25, "y":4}, {"label":"\u2192", "x":17.25, "y":4}]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
49
keyboards/rotor/keymaps/default/keymap.c
Normal file
49
keyboards/rotor/keymaps/default/keymap.c
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
/* Copyright 2021 Densus Design and Basekeys.jp
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
// Defines names for use in layer keycodes and the keymap
|
||||||
|
enum layer_names {
|
||||||
|
_BASE,
|
||||||
|
_FN,
|
||||||
|
_MEDIA };
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[_BASE] = LAYOUT(
|
||||||
|
KC_F1, KC_F2, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS,
|
||||||
|
KC_F3, KC_F4, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
|
||||||
|
KC_F5, KC_F6, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,
|
||||||
|
KC_F7, KC_F8, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
|
||||||
|
KC_F9, KC_F10, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
|
),
|
||||||
|
|
||||||
|
[_FN] = LAYOUT(
|
||||||
|
_______, _______, KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
|
||||||
|
[_MEDIA] = LAYOUT(
|
||||||
|
_______, _______, KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
)
|
||||||
|
};
|
2
keyboards/rotor/keymaps/default/rules.mk
Normal file
2
keyboards/rotor/keymaps/default/rules.mk
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
CONSOLE_ENABLE = no # Console for debug
|
||||||
|
COMMAND_ENABLE = no
|
49
keyboards/rotor/keymaps/default_all/keymap.c
Normal file
49
keyboards/rotor/keymaps/default_all/keymap.c
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
/* Copyright 2021 Densus Design and Basekeys.jp
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
// Defines names for use in layer keycodes and the keymap
|
||||||
|
enum layer_names {
|
||||||
|
_BASE,
|
||||||
|
_FN,
|
||||||
|
_MEDIA };
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[_BASE] = LAYOUT_all(
|
||||||
|
KC_F1, KC_F2, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS,
|
||||||
|
KC_F3, KC_F4, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
|
||||||
|
KC_F5, KC_F6, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_ENT, KC_PGUP,
|
||||||
|
KC_F7, KC_F8, KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
|
||||||
|
KC_F9, KC_F10, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RGUI, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
|
),
|
||||||
|
|
||||||
|
[_FN] = LAYOUT_all(
|
||||||
|
_______, _______, 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, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
|
||||||
|
[_MEDIA] = LAYOUT_all(
|
||||||
|
_______, _______, 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, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
)
|
||||||
|
};
|
2
keyboards/rotor/keymaps/default_all/rules.mk
Normal file
2
keyboards/rotor/keymaps/default_all/rules.mk
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
CONSOLE_ENABLE = no # Console for debug
|
||||||
|
COMMAND_ENABLE = no
|
19
keyboards/rotor/keymaps/via/config.h
Normal file
19
keyboards/rotor/keymaps/via/config.h
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
/* Copyright 2021 Densus Design and Basekeys.jp
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#define DYNAMIC_KEYMAP_LAYER_COUNT 3
|
49
keyboards/rotor/keymaps/via/keymap.c
Normal file
49
keyboards/rotor/keymaps/via/keymap.c
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
/* Copyright 2020 Swiftrax and Basekeys.com
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
// Defines names for use in layer keycodes and the keymap
|
||||||
|
enum layer_names {
|
||||||
|
_BASE,
|
||||||
|
_FN,
|
||||||
|
_MEDIA };
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[_BASE] = LAYOUT_all(
|
||||||
|
KC_F1, KC_F2, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS,
|
||||||
|
KC_F3, KC_F4, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
|
||||||
|
KC_F5, KC_F6, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_ENT, KC_PGUP,
|
||||||
|
KC_F7, KC_F8, KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
|
||||||
|
KC_F9, KC_F10, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RGUI, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
|
),
|
||||||
|
|
||||||
|
[_FN] = LAYOUT_all(
|
||||||
|
_______, _______, 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, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
|
||||||
|
[_MEDIA] = LAYOUT_all(
|
||||||
|
_______, _______, 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, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
)
|
||||||
|
};
|
3
keyboards/rotor/keymaps/via/rules.mk
Normal file
3
keyboards/rotor/keymaps/via/rules.mk
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
VIA_ENABLE = yes
|
||||||
|
CONSOLE_ENABLE = no # Console for debug
|
||||||
|
COMMAND_ENABLE = no
|
19
keyboards/rotor/readme.md
Normal file
19
keyboards/rotor/readme.md
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
# Rotor
|
||||||
|
|
||||||
|
![Rotor](https://i.imgur.com/NfWdlzF.png)
|
||||||
|
|
||||||
|
A 75 percent keyboard
|
||||||
|
|
||||||
|
* Keyboard Maintainer: [2moons](https://github.com/2moons-jp)
|
||||||
|
* Hardware Supported: Rotor PCB, ATMEGA32U4-MU
|
||||||
|
* Hardware Availability: [Website](https://klc-playground.com/)
|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make rotor:default
|
||||||
|
|
||||||
|
To flash firmware onto this board, you'll need to bring the PCB into bootloader mode. To enter bootloader mode, press the reset button on the back of the PCB once. The reset button is located near the left side of the board near the TAB key.
|
||||||
|
|
||||||
|
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs)
|
||||||
|
|
||||||
|
[Build guide](https://docs.google.com/document/d/1BWUkFYRJ3aB-AY9pEW-9av5j8VWKI2Hmt8xsCFQgDg0/edit)
|
17
keyboards/rotor/rotor.c
Normal file
17
keyboards/rotor/rotor.c
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
/* Copyright 2021 Densus Design and Basekeys.jp
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "rotor.h"
|
58
keyboards/rotor/rotor.h
Normal file
58
keyboards/rotor/rotor.h
Normal file
|
@ -0,0 +1,58 @@
|
||||||
|
/* Copyright 2021 Densus Design and Basekeys.jp
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "quantum.h"
|
||||||
|
|
||||||
|
#define XXX KC_NO//readabilty
|
||||||
|
|
||||||
|
/* This a shortcut to help you visually see your layout.
|
||||||
|
*
|
||||||
|
* The first section contains all of the arguments representing the physical
|
||||||
|
* layout of the board and position of the keys.
|
||||||
|
*
|
||||||
|
* The second converts the arguments into a two-dimensional array which
|
||||||
|
* represents the switch matrix.
|
||||||
|
*/
|
||||||
|
#define LAYOUT( \
|
||||||
|
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0G, k0H, \
|
||||||
|
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1G, k1H, \
|
||||||
|
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2G, k2H, \
|
||||||
|
k30, k31, k32, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, k3G, k3H, \
|
||||||
|
k40, k41, k42, k43, k44, k48, k4D, k4E, k4G, k4H \
|
||||||
|
) \
|
||||||
|
{ \
|
||||||
|
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, XXX, k0G, k0H}, \
|
||||||
|
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, XXX, k1G, k1H}, \
|
||||||
|
{ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, XXX, XXX, k2G, k2H}, \
|
||||||
|
{ k30, k31, k32, XXX, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, XXX, k3G, k3H}, \
|
||||||
|
{ k40, k41, k42, k43, k44, XXX, XXX, XXX, k48, XXX, XXX, XXX, XXX, k4D, k4E, XXX, k4G, k4H} \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define LAYOUT_all( \
|
||||||
|
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F, k0G, k0H, \
|
||||||
|
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1G, k1H, \
|
||||||
|
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, k2G, k2H, \
|
||||||
|
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, k3G, k3H, \
|
||||||
|
k40, k41, k42, k43, k44, k46, k48, k4A, k4C, k4D, k4E, k4G, k4H \
|
||||||
|
) \
|
||||||
|
{ \
|
||||||
|
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F, k0G, k0H}, \
|
||||||
|
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, XXX, k1G, k1H}, \
|
||||||
|
{ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, XXX, k2G, k2H}, \
|
||||||
|
{ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, XXX, k3G, k3H}, \
|
||||||
|
{ k40, k41, k42, k43, k44, XXX, k46, XXX, k48, XXX, k4A, XXX, k4C, k4D, k4E, XXX, k4G, k4H} \
|
||||||
|
}
|
21
keyboards/rotor/rules.mk
Normal file
21
keyboards/rotor/rules.mk
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
# MCU name
|
||||||
|
MCU = atmega32u4
|
||||||
|
|
||||||
|
# Bootloader selection
|
||||||
|
BOOTLOADER = atmel-dfu
|
||||||
|
|
||||||
|
# Build Options
|
||||||
|
# change yes to no to disable
|
||||||
|
#
|
||||||
|
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
|
||||||
|
MOUSEKEY_ENABLE = no # Mouse keys
|
||||||
|
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||||
|
CONSOLE_ENABLE = yes # Console for debug
|
||||||
|
COMMAND_ENABLE = yes # Commands for debug and configuration
|
||||||
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
|
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||||
|
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
|
NKRO_ENABLE = no # USB Nkey Rollover
|
||||||
|
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||||
|
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||||
|
AUDIO_ENABLE = no # Audio output
|
|
@ -3,7 +3,7 @@
|
||||||
"url": "",
|
"url": "",
|
||||||
"maintainer": "CMMS-Freather",
|
"maintainer": "CMMS-Freather",
|
||||||
"layouts": {
|
"layouts": {
|
||||||
"LAYOUT": {
|
"LAYOUT_7u_space": {
|
||||||
"layout": [
|
"layout": [
|
||||||
{"label":"K00 (F0,B7)", "x":0, "y":0},
|
{"label":"K00 (F0,B7)", "x":0, "y":0},
|
||||||
{"label":"K01 (F0,B6)", "x":1, "y":0},
|
{"label":"K01 (F0,B6)", "x":1, "y":0},
|
||||||
|
@ -87,6 +87,94 @@
|
||||||
{"label":"K59 (F7,D3)", "x":16.5, "y":4.25},
|
{"label":"K59 (F7,D3)", "x":16.5, "y":4.25},
|
||||||
{"label":"K5A (F7,D4)", "x":17.5, "y":4.25}
|
{"label":"K5A (F7,D4)", "x":17.5, "y":4.25}
|
||||||
]
|
]
|
||||||
|
|
||||||
|
},
|
||||||
|
"LAYOUT_6_25u_space": {
|
||||||
|
"layout": [
|
||||||
|
{"label":"K00 (F0,B7)", "x":0, "y":0},
|
||||||
|
{"label":"K01 (F0,B6)", "x":1, "y":0},
|
||||||
|
{"label":"K02 (F0,B5)", "x":2, "y":0},
|
||||||
|
{"label":"K03 (F0,B4)", "x":3, "y":0},
|
||||||
|
{"label":"K04 (F0,C7)", "x":4, "y":0},
|
||||||
|
{"label":"K05 (F0,C6)", "x":5, "y":0},
|
||||||
|
{"label":"K06 (F0,D0)", "x":6, "y":0},
|
||||||
|
{"label":"K07 (F0,D1)", "x":7, "y":0},
|
||||||
|
{"label":"K08 (F0,D2)", "x":8, "y":0},
|
||||||
|
{"label":"K09 (F0,D3)", "x":9, "y":0},
|
||||||
|
{"label":"K0A (F0,D4)", "x":10, "y":0},
|
||||||
|
{"label":"K0B (F0,D5)", "x":11, "y":0},
|
||||||
|
{"label":"K0C (F0,D6)", "x":12, "y":0},
|
||||||
|
{"label":"K0D (F0,D7)", "x":13, "y":0, "w":2},
|
||||||
|
{"label":"K2D (F4,D7)", "x":15.5, "y":0},
|
||||||
|
{"label":"K3D (F5,D7)", "x":16.5, "y":0},
|
||||||
|
{"label":"K4D (F6,D7)", "x":17.5, "y":0},
|
||||||
|
|
||||||
|
{"label":"K10 (F1,B7)", "x":0, "y":1.25, "w":1.5},
|
||||||
|
{"label":"K11 (F1,B6)", "x":1.5, "y":1.25},
|
||||||
|
{"label":"K12 (F1,B5)", "x":2.5, "y":1.25},
|
||||||
|
{"label":"K13 (F1,B4)", "x":3.5, "y":1.25},
|
||||||
|
{"label":"K14 (F1,C7)", "x":4.5, "y":1.25},
|
||||||
|
{"label":"K15 (F1,C6)", "x":5.5, "y":1.25},
|
||||||
|
{"label":"K16 (F1,D0)", "x":6.5, "y":1.25},
|
||||||
|
{"label":"K17 (F1,D1)", "x":7.5, "y":1.25},
|
||||||
|
{"label":"K18 (F1,D2)", "x":8.5, "y":1.25},
|
||||||
|
{"label":"K19 (F1,D3)", "x":9.5, "y":1.25},
|
||||||
|
{"label":"K1A (F1,D4)", "x":10.5, "y":1.25},
|
||||||
|
{"label":"K1B (F1,D5)", "x":11.5, "y":1.25},
|
||||||
|
{"label":"K1C (F1,D6)", "x":12.5, "y":1.25},
|
||||||
|
{"label":"K1D (F1,D7)", "x":13.5, "y":1.25, "w":1.5},
|
||||||
|
{"label":"K56 (F7,D0)", "x":15.5, "y":1.25},
|
||||||
|
{"label":"K57 (F7,D1)", "x":16.5, "y":1.25},
|
||||||
|
{"label":"K58 (F7,D2)", "x":17.5, "y":1.25},
|
||||||
|
|
||||||
|
{"label":"K20 (F4,B7)", "x":0, "y":2.25, "w":1.75},
|
||||||
|
{"label":"K21 (F4,B6)", "x":1.75, "y":2.25},
|
||||||
|
{"label":"K22 (F4,B5)", "x":2.75, "y":2.25},
|
||||||
|
{"label":"K23 (F4,B4)", "x":3.75, "y":2.25},
|
||||||
|
{"label":"K24 (F4,C7)", "x":4.75, "y":2.25},
|
||||||
|
{"label":"K25 (F4,C6)", "x":5.75, "y":2.25},
|
||||||
|
{"label":"K26 (F4,D0)", "x":6.75, "y":2.25},
|
||||||
|
{"label":"K27 (F4,D1)", "x":7.75, "y":2.25},
|
||||||
|
{"label":"K28 (F4,D2)", "x":8.75, "y":2.25},
|
||||||
|
{"label":"K29 (F4,D3)", "x":9.75, "y":2.25},
|
||||||
|
{"label":"K2A (F4,D4)", "x":10.75, "y":2.25},
|
||||||
|
{"label":"K2B (F4,D5)", "x":11.75, "y":2.25},
|
||||||
|
{"label":"K2C (F4,D6)", "x":12.75, "y":2.25, "w":2.25},
|
||||||
|
{"label":"K53 (F7,B4)", "x":15.5, "y":2.25},
|
||||||
|
{"label":"K54 (F7,C7)", "x":16.5, "y":2.25},
|
||||||
|
{"label":"K55 (F7,C6)", "x":17.5, "y":2.25},
|
||||||
|
|
||||||
|
{"label":"K30 (F5,B7)", "x":0, "y":3.25, "w":2.25},
|
||||||
|
{"label":"K31 (F5,B6)", "x":2.25, "y":3.25},
|
||||||
|
{"label":"K32 (F5,B5)", "x":3.25, "y":3.25},
|
||||||
|
{"label":"K33 (F5,B4)", "x":4.25, "y":3.25},
|
||||||
|
{"label":"K34 (F5,C7)", "x":5.25, "y":3.25},
|
||||||
|
{"label":"K35 (F5,C6)", "x":6.25, "y":3.25},
|
||||||
|
{"label":"K36 (F5,D0)", "x":7.25, "y":3.25},
|
||||||
|
{"label":"K37 (F5,D1)", "x":8.25, "y":3.25},
|
||||||
|
{"label":"K38 (F5,D2)", "x":9.25, "y":3.25},
|
||||||
|
{"label":"K39 (F5,D3)", "x":10.25, "y":3.25},
|
||||||
|
{"label":"K3A (F5,D4)", "x":11.25, "y":3.25},
|
||||||
|
{"label":"K3B (F5,D5)", "x":12.25, "y":3.25, "w":1.75},
|
||||||
|
{"label":"K3C (F5,D6)", "x":14.25, "y":3.5},
|
||||||
|
{"label":"K50 (F7,B7)", "x":15.5, "y":3.25},
|
||||||
|
{"label":"K51 (F7,B6)", "x":16.5, "y":3.25},
|
||||||
|
{"label":"K52 (F7,B5)", "x":17.5, "y":3.25},
|
||||||
|
|
||||||
|
{"label":"K40 (F6,B7)", "x":0, "y":4.25, "w":1.25},
|
||||||
|
{"label":"K41 (F6,B6)", "x":1.25, "y":4.25, "w":1.25},
|
||||||
|
{"label":"K42 (F6,B5)", "x":2.5, "y":4.25, "w":1.25},
|
||||||
|
{"label":"K45 (F6,C6)", "x":3.75, "y":4.25, "w":6.25},
|
||||||
|
{"label":"K47 (F6,D1)", "x":10, "y":4.25},
|
||||||
|
{"label":"K48 (F6,D2)", "x":11, "y":4.25},
|
||||||
|
{"label":"K49 (F6,D3)", "x":12, "y":4.25},
|
||||||
|
{"label":"K4A (F6,D4)", "x":13.25, "y":4.5},
|
||||||
|
{"label":"K4B (F6,D5)", "x":14.25, "y":4.5},
|
||||||
|
{"label":"K4C (F6,D6)", "x":15.25, "y":4.5},
|
||||||
|
{"label":"K59 (F7,D3)", "x":16.5, "y":4.25},
|
||||||
|
{"label":"K5A (F7,D4)", "x":17.5, "y":4.25}
|
||||||
|
]
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
|
||||||
#define LAYOUT( \
|
#define LAYOUT_7u_space( \
|
||||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D, K3D, K4D, \
|
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D, K3D, K4D, \
|
||||||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K56, K57, K58, \
|
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K56, K57, K58, \
|
||||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K53, K54, K55, \
|
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K53, K54, K55, \
|
||||||
|
@ -33,5 +33,22 @@
|
||||||
{ K50, K51, K52, K53, K54, K55, K56, K57, K58, K59, K5A, KC_NO, KC_NO, KC_NO }, \
|
{ K50, K51, K52, K53, K54, K55, K56, K57, K58, K59, K5A, KC_NO, KC_NO, KC_NO }, \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define LAYOUT_6_25u_space( \
|
||||||
|
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D, K3D, K4D, \
|
||||||
|
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K56, K57, K58, \
|
||||||
|
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K53, K54, K55, \
|
||||||
|
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K50, K51, K52, \
|
||||||
|
K40, K41, K42, K45, K47, K48, K49, K4A, K4B, K4C, K59, K5A \
|
||||||
|
) { \
|
||||||
|
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \
|
||||||
|
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \
|
||||||
|
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \
|
||||||
|
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \
|
||||||
|
{ K40, K41, K42, KC_NO, KC_NO, K45, KC_NO, K47, K48, K49, K4A, K4B, K4C, K4D }, \
|
||||||
|
{ K50, K51, K52, K53, K54, K55, K56, K57, K58, K59, K5A, KC_NO, KC_NO, KC_NO }, \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define LAYOUT LAYOUT_7u_space
|
||||||
|
|
||||||
// generated by KBFirmware JSON to QMK Parser
|
// generated by KBFirmware JSON to QMK Parser
|
||||||
// https://noroadsleft.github.io/kbf_qmk_converter/
|
// https://noroadsleft.github.io/kbf_qmk_converter/
|
||||||
|
|
|
@ -73,10 +73,10 @@
|
||||||
{"label":";:", "x": 10.75, "y": 3.5},
|
{"label":";:", "x": 10.75, "y": 3.5},
|
||||||
{"label":"'\"", "x": 11.75, "y": 3.5},
|
{"label":"'\"", "x": 11.75, "y": 3.5},
|
||||||
{"label":"RETURN", "x": 12.75, "y": 3.5, "w": 2.25},
|
{"label":"RETURN", "x": 12.75, "y": 3.5, "w": 2.25},
|
||||||
{"label":"4", "x": 15.5, "y": 3.5, "w": 1.5},
|
{"label":"4", "x": 15.5, "y": 3.5},
|
||||||
{"label":"5", "x": 16.5, "y": 3.5},
|
{"label":"5", "x": 16.5, "y": 3.5},
|
||||||
{"label":"6", "x": 17.5, "y": 3.5},
|
{"label":"6", "x": 17.5, "y": 3.5},
|
||||||
{"label":"+", "x": 18.5, "y": 3.5, "h": 2},
|
{"label":"+", "x": 18.5, "y": 2.5, "h": 2},
|
||||||
|
|
||||||
{"label":"LSHIFT", "x": 0, "y": 4.5, "w": 2.25},
|
{"label":"LSHIFT", "x": 0, "y": 4.5, "w": 2.25},
|
||||||
{"label":"Z", "x": 2.25, "y": 4.5},
|
{"label":"Z", "x": 2.25, "y": 4.5},
|
||||||
|
@ -98,16 +98,16 @@
|
||||||
{"label":"LCTRL", "x": 0, "y": 5.5, "w": 1.25},
|
{"label":"LCTRL", "x": 0, "y": 5.5, "w": 1.25},
|
||||||
{"label":"LWIN", "x": 1.25, "y": 5.5},
|
{"label":"LWIN", "x": 1.25, "y": 5.5},
|
||||||
{"label":"LALT", "x": 2.25, "y": 5.5, "w": 1.25},
|
{"label":"LALT", "x": 2.25, "y": 5.5, "w": 1.25},
|
||||||
{"label":"SPACE", "x": 3.25, "y": 5.5, "w": 6.25},
|
{"label":"SPACE", "x": 3.5, "y": 5.5, "w": 6.25},
|
||||||
{"label":"RALT", "x": 9.5, "y": 5.5},
|
{"label":"RALT", "x": 9.75, "y": 5.5},
|
||||||
{"label":"FN", "x": 10.5, "y": 5.5},
|
{"label":"FN", "x": 10.75, "y": 5.5},
|
||||||
{"label":"RCTRL", "x": 11.5, "y": 5.5, "w": 1.25},
|
{"label":"RCTRL", "x": 11.75, "y": 5.5, "w": 1.25},
|
||||||
{"label":"LEFT", "x": 13, "y": 5.75},
|
{"label":"LEFT", "x": 13.25, "y": 5.75},
|
||||||
{"label":"DOWN", "x": 14, "y": 5.75},
|
{"label":"DOWN", "x": 14.25, "y": 5.75},
|
||||||
{"label":"RIGHT", "x": 15, "y": 5.75},
|
{"label":"RIGHT", "x": 15.25, "y": 5.75},
|
||||||
{"label":"0", "x": 16.5, "y": 5.5},
|
{"label":"0", "x": 16.5, "y": 5.5},
|
||||||
{"label":".DEL", "x": 17.5, "y": 5.5, "w": 2.75},
|
{"label":".DEL", "x": 17.5, "y": 5.5,},
|
||||||
{"label":"ENTER", "x": 18.5, "y": 5.5, "h": 2}
|
{"label":"ENTER", "x": 18.5, "y": 4.5, "h": 2}
|
||||||
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
32
keyboards/signum/3_0/config.h
Normal file
32
keyboards/signum/3_0/config.h
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
/* Copyright 2021 Stan Gurenkov <rococo04_fox@icloud.com>
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "config_common.h"
|
||||||
|
|
||||||
|
/* USB Device descriptor parameter */
|
||||||
|
#define VENDOR_ID 0xFEED
|
||||||
|
#define PRODUCT_ID 0x6060
|
||||||
|
#define DEVICE_VER 0x0001
|
||||||
|
#define MANUFACTURER Troy Fletcher
|
||||||
|
#define PRODUCT Signum30
|
||||||
|
|
||||||
|
/* key matrix size */
|
||||||
|
#define MATRIX_ROWS 4
|
||||||
|
#define MATRIX_COLS 12
|
||||||
|
|
||||||
|
/* COL2ROW or ROW2COL */
|
||||||
|
#define DIODE_DIRECTION COL2ROW
|
|
@ -2,29 +2,7 @@
|
||||||
|
|
||||||
#include "config_common.h"
|
#include "config_common.h"
|
||||||
|
|
||||||
/* USB Device descriptor parameter */
|
|
||||||
#define VENDOR_ID 0xF1E7
|
|
||||||
#define PRODUCT_ID 0x5163
|
|
||||||
#define DEVICE_VER 0x0000
|
|
||||||
#define MANUFACTURER troyfletcher
|
|
||||||
#define PRODUCT Signum
|
|
||||||
|
|
||||||
/* mouse settings */
|
|
||||||
#define MK_KINETIC_SPEED
|
|
||||||
|
|
||||||
/* key matrix size */
|
|
||||||
#define MATRIX_ROWS 4
|
|
||||||
#define MATRIX_COLS 12
|
|
||||||
|
|
||||||
/* key matrix pins */
|
/* key matrix pins */
|
||||||
#define MATRIX_ROW_PINS { D2, D1, F5, B5 }
|
#define MATRIX_ROW_PINS { D2, D1, F5, B5 }
|
||||||
#define MATRIX_COL_PINS { B4, D7, D0, E6, D4, F6, F4, F7, B1, B3, C6, B2 }
|
#define MATRIX_COL_PINS { B4, D7, D0, E6, D4, F6, F4, F7, B1, B3, C6, B2 }
|
||||||
#define UNUSED_PINS
|
#define UNUSED_PINS
|
||||||
|
|
||||||
#define DIODE_DIRECTION COL2ROW
|
|
||||||
|
|
||||||
/* Set 0 if debouncing isn't needed */
|
|
||||||
#define DEBOUNCE 5
|
|
||||||
|
|
||||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
|
||||||
#define LOCKING_SUPPORT_ENABLE
|
|
||||||
|
|
|
@ -1,15 +1,4 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
#include "signum.h"
|
||||||
#define LAYOUT_ortho_4x12( \
|
|
||||||
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, \
|
|
||||||
K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, \
|
|
||||||
K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, \
|
|
||||||
K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311 \
|
|
||||||
) { \
|
|
||||||
{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011 }, \
|
|
||||||
{ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111 }, \
|
|
||||||
{ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211 }, \
|
|
||||||
{ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311 } \
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,28 +0,0 @@
|
||||||
# MCU name
|
|
||||||
MCU = atmega32u4
|
|
||||||
|
|
||||||
# Bootloader selection
|
|
||||||
BOOTLOADER = atmel-dfu
|
|
||||||
|
|
||||||
# Build Options
|
|
||||||
# comment out to disable the options.
|
|
||||||
#
|
|
||||||
BOOTMAGIC_ENABLE = lite # Enable Bootmagic Lite
|
|
||||||
MOUSEKEY_ENABLE = yes # Mouse keys
|
|
||||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
|
||||||
CONSOLE_ENABLE = no # Console for debug
|
|
||||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
|
||||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
|
||||||
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
|
||||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
|
||||||
AUDIO_ENABLE = no
|
|
||||||
RGBLIGHT_ENABLE = no
|
|
||||||
|
|
||||||
UNICODEMAP_ENABLE = no
|
|
||||||
|
|
||||||
LAYOUTS = ortho_4x12
|
|
||||||
|
|
||||||
# Disable unsupported hardware
|
|
||||||
RGBLIGHT_SUPPORTED = no
|
|
||||||
AUDIO_SUPPORTED = no
|
|
||||||
BACKLIGHT_SUPPORTED = no
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue