diff --git a/bootloader.mk b/bootloader.mk index a7e596e4761c..5487f9ece650 100644 --- a/bootloader.mk +++ b/bootloader.mk @@ -28,6 +28,7 @@ # bootloadHID HIDBootFlash compatible (ATmega32A) # USBasp USBaspLoader (ATmega328P) # kiibohd Input:Club Kiibohd bootloader (only used on their boards) +# stm32duino STM32Duino (STM32F103x8) # # BOOTLOADER_SIZE can still be defined manually, but it's recommended # you add any possible configuration to this list @@ -106,3 +107,14 @@ ifeq ($(strip $(BOOTLOADER)), kiibohd) DFU_ARGS = -d 1C11:B007 DFU_SUFFIX_ARGS = -v 1C11 -p B007 endif + +ifeq ($(strip $(BOOTLOADER)), stm32duino) + OPT_DEFS += -DBOOTLOADER_STM32DUINO + MCU_LDSCRIPT = STM32F103x8_stm32duino_bootloader + BOARD = STM32_F103_STM32DUINO + # STM32F103 does NOT have an USB bootloader in ROM (only serial), so setting anything here does not make much sense + STM32_BOOTLOADER_ADDRESS = 0x80000000 + + DFU_ARGS = -d 1EAF:0003 -a2 -R + DFU_SUFFIX_ARGS = -v 1EAF -p 0003 +endif diff --git a/docs/feature_combo.md b/docs/feature_combo.md index d3eb896b2860..d831328f698b 100644 --- a/docs/feature_combo.md +++ b/docs/feature_combo.md @@ -55,7 +55,7 @@ combo_t key_combos[COMBO_COUNT] = { [XV_PASTE] = COMBO_ACTION(paste_combo), }; -void process_combo_event(uint8_t combo_index, bool pressed) { +void process_combo_event(uint16_t combo_index, bool pressed) { switch(combo_index) { case ZC_COPY: if (pressed) { diff --git a/docs/feature_debounce_type.md b/docs/feature_debounce_type.md index 83ebafe60ec5..966e75acc1f4 100644 --- a/docs/feature_debounce_type.md +++ b/docs/feature_debounce_type.md @@ -76,8 +76,8 @@ susceptible to noise, you must choose a debounce method that will also mitigate * Defer algorithms are noise-resistant * Recommended naming conventions: * ```sym_defer_*``` - * ```asym_defer_*_*```: key-down is using eager algorithm - * ```asym_*_defer_*```: key-up is using eager algorithm + * ```asym_defer_*_*```: key-down is using defer algorithm + * ```asym_*_defer_*```: key-up is using defer algorithm 4) Global vs Per-Key vs Per-Row * Global - one timer for all keys. Any key change state affects global timer diff --git a/docs/ja/config_options.md b/docs/ja/config_options.md index 2a64f2ba2af4..67e973030df6 100644 --- a/docs/ja/config_options.md +++ b/docs/ja/config_options.md @@ -1,8 +1,8 @@ # QMK の設定 QMK はほぼ無制限に設定可能です。可能なところはいかなるところでも、やりすぎな程、ユーザーがコードサイズを犠牲にしてでも彼らのキーボードをカスタマイズをすることを許しています。ただし、このレベルの柔軟性により設定が困難になります。 diff --git a/docs/ja/custom_matrix.md b/docs/ja/custom_matrix.md index f333711e63c3..277fc658d3a2 100644 --- a/docs/ja/custom_matrix.md +++ b/docs/ja/custom_matrix.md @@ -31,7 +31,7 @@ keyboards//matrix.c SRC += matrix.c ``` -## マトリックスコードの部分置き換え +## マトリックスコードの部分置き換え :id=lite カスタムマトリックスを実装する際、定型コードを書かなくてすむように、さまざまなスキャン関数のデフォルト実装を提供しています。 diff --git a/docs/ja/custom_quantum_functions.md b/docs/ja/custom_quantum_functions.md index 161d7e4b565a..952b5d8a87e9 100644 --- a/docs/ja/custom_quantum_functions.md +++ b/docs/ja/custom_quantum_functions.md @@ -1,8 +1,8 @@ # キーボードの挙動をカスタマイズする方法 多くの人にとって、カスタムキーボードはボタンの押下をコンピュータに送信するだけではありません。単純なボタンの押下やマクロよりも複雑なことを実行できるようにしたいでしょう。QMK にはコードを挿入したり、機能を上書きしたり、様々な状況でキーボードの挙動をカスタマイズできるフックがあります。 @@ -232,7 +232,7 @@ void keyboard_pre_init_user(void) { } ``` -### `keyboard_pre_init_*` 関数のドキュメント +### `keyboard_pre_init_*` 関数のドキュメント :id=keyboard_pre_init_-function-documentation * キーボード/リビジョン: `void keyboard_pre_init_kb(void)` * キーマップ: `void keyboard_pre_init_user(void)` diff --git a/docs/ja/documentation_best_practices.md b/docs/ja/documentation_best_practices.md index 50ec4ea6afe0..c866d3959933 100644 --- a/docs/ja/documentation_best_practices.md +++ b/docs/ja/documentation_best_practices.md @@ -1,8 +1,8 @@ # ドキュメントベストプラクティス このページは QMK のためのドキュメントを作成する時のベストプラクティスを文章化するためのものです。これらのガイドラインに従うことで、一貫したトーンとスタイルを維持することでき、他の人が QMK をより理解しやすくすることができます。 diff --git a/docs/ja/faq_build.md b/docs/ja/faq_build.md index 62c36f249701..3c93c0780903 100644 --- a/docs/ja/faq_build.md +++ b/docs/ja/faq_build.md @@ -1,8 +1,8 @@ # よくあるビルドの質問 このページは QMK のビルドに関する質問を説明します。まだビルドをしていない場合は、[ビルド環境のセットアップ](ja/getting_started_build_tools.md) および [Make 手順](ja/getting_started_make_guide.md)ガイドを読むべきです。 @@ -18,62 +18,91 @@ あるいは、単純に: - $ sudo make ::dfu + $ sudo make ::flash `make` を `sudo` で実行することは一般的には良い考えでは***なく***、可能であれば前者の方法のいずれかを使うべきです。 ### Linux の `udev` ルール -Linux では、MCU にアクセスするには適切な権限が必要です。ファームウェアを書き込む時に `sudo` を使うか、`/etc/udev/rules.d/` にこれらのファイルを配置することで、アクセスすることができます。権限の追加が完了したら、以下を実行します: -```console -sudo udevadm control --reload-rules -sudo udevadm trigger -``` -**/etc/udev/rules.d/50-atmel-dfu.rules:** -``` -# Atmel ATMega32U4 -SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff4", TAG+="uaccess", RUN{builtin}+="uaccess" -# Atmel USBKEY AT90USB1287 -SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ffb", TAG+="uaccess", RUN{builtin}+="uaccess" -# Atmel ATMega32U2 -SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff0", TAG+="uaccess", RUN{builtin}+="uaccess" +Linux では、ブートローダデバイスと通信するには適切な権限が必要です。ファームウェアを書き込む時に `sudo` を使うか、`/etc/udev/rules.d/` にこのファイルを配置することで、通信することができます。 + +**/etc/udev/rules.d/50-qmk.rules:** ``` +# Atmel DFU +### ATmega16U2 +SUBSYSTEMS=="usb", ATTRS{idVendor}=="03EB", ATTRS{idProduct}=="2FEF", TAG+="uaccess", RUN{builtin}+="uaccess" +### ATmega32U2 +SUBSYSTEMS=="usb", ATTRS{idVendor}=="03EB", ATTRS{idProduct}=="2FF0", TAG+="uaccess", RUN{builtin}+="uaccess" +### ATmega16U4 +SUBSYSTEMS=="usb", ATTRS{idVendor}=="03EB", ATTRS{idProduct}=="2FF3", TAG+="uaccess", RUN{builtin}+="uaccess" +### ATmega32U4 +SUBSYSTEMS=="usb", ATTRS{idVendor}=="03EB", ATTRS{idProduct}=="2FF4", TAG+="uaccess", RUN{builtin}+="uaccess" +### AT90USB64 +SUBSYSTEMS=="usb", ATTRS{idVendor}=="03EB", ATTRS{idProduct}=="2FF9", TAG+="uaccess", RUN{builtin}+="uaccess" +### AT90USB128 +SUBSYSTEMS=="usb", ATTRS{idVendor}=="03EB", ATTRS{idProduct}=="2FFB", TAG+="uaccess", RUN{builtin}+="uaccess" -**/etc/udev/rules.d/54-input-club-keyboard.rules:** +# Input Club +SUBSYSTEMS=="usb", ATTRS{idVendor}=="1C11", ATTRS{idProduct}=="B007", TAG+="uaccess", RUN{builtin}+="uaccess" -``` -# Input Club keyboard bootloader -SUBSYSTEMS=="usb", ATTRS{idVendor}=="1c11", ATTRS{idProduct}=="b007", TAG+="uaccess", RUN{builtin}+="uaccess" -``` +# STM32duino +SUBSYSTEMS=="usb", ATTRS{idVendor}=="1EAF", ATTRS{idProduct}=="0003", TAG+="uaccess", RUN{builtin}+="uaccess" +# STM32 DFU +SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="DF11", TAG+="uaccess", RUN{builtin}+="uaccess" + +# BootloadHID +SUBSYSTEMS=="usb", ATTRS{idVendor}=="16C0", ATTRS{idProduct}=="05DF", TAG+="uaccess", RUN{builtin}+="uaccess" + +# USBAspLoader +SUBSYSTEMS=="usb", ATTRS{idVendor}=="16C0", ATTRS{idProduct}=="05DC", TAG+="uaccess", RUN{builtin}+="uaccess" -**/etc/udev/rules.d/55-caterina.rules:** -``` # ModemManager should ignore the following devices -SUBSYSTEMS=="usb", ATTRS{idVendor}=="2a03", ATTRS{idProduct}=="0036", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1" +# Atmel SAM-BA (Massdrop) +SUBSYSTEMS=="usb", ATTRS{idVendor}=="03EB", ATTRS{idProduct}=="6124", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1" + +# Caterina (Pro Micro) +## Spark Fun Electronics +### Pro Micro 3V3/8MHz +SUBSYSTEMS=="usb", ATTRS{idVendor}=="1B4F", ATTRS{idProduct}=="9203", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1" +### Pro Micro 5V/16MHz +SUBSYSTEMS=="usb", ATTRS{idVendor}=="1B4F", ATTRS{idProduct}=="9205", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1" +### LilyPad 3V3/8MHz (and some Pro Micro clones) +SUBSYSTEMS=="usb", ATTRS{idVendor}=="1B4F", ATTRS{idProduct}=="9207", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1" +## Pololu Electronics +### A-Star 32U4 +SUBSYSTEMS=="usb", ATTRS{idVendor}=="1FFB", ATTRS{idProduct}=="0101", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1" +## Arduino SA +### Leonardo SUBSYSTEMS=="usb", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="0036", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1" -SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b4f", ATTRS{idProduct}=="9205", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1" -SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b4f", ATTRS{idProduct}=="9203", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1" +### Micro +SUBSYSTEMS=="usb", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="0037", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1" +## Adafruit Industries LLC +### Feather 32U4 +SUBSYSTEMS=="usb", ATTRS{idVendor}=="239A", ATTRS{idProduct}=="000C", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1" +### ItsyBitsy 32U4 3V3/8MHz +SUBSYSTEMS=="usb", ATTRS{idVendor}=="239A", ATTRS{idProduct}=="000D", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1" +### ItsyBitsy 32U4 5V/16MHz +SUBSYSTEMS=="usb", ATTRS{idVendor}=="239A", ATTRS{idProduct}=="000E", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1" +## dog hunter AG +### Leonardo +SUBSYSTEMS=="usb", ATTRS{idVendor}=="2A03", ATTRS{idProduct}=="0036", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1" +### Micro +SUBSYSTEMS=="usb", ATTRS{idVendor}=="2A03", ATTRS{idProduct}=="0037", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1" ``` -**注意:** 古い(1.12以前の) ModemManager では、フィルタリングは厳密なモードではない場合にのみ動作し、以下のコマンドはその設定を更新することができます。 -```console -printf '[Service]\nExecStart=\nExecStart=/usr/sbin/ModemManager --filter-policy=default' | sudo tee /etc/systemd/system/ModemManager.service.d/policy.conf -sudo systemctl daemon-reload -sudo systemctl restart ModemManager -``` +追加が完了したら、以下を実行します: -**/etc/udev/rules.d/56-dfu-util.rules:** ``` -# stm32duino -SUBSYSTEMS=="usb", ATTRS{idVendor}=="1eaf", ATTRS{idProduct}=="0003", TAG+="uaccess", RUN{builtin}+="uaccess" -# Generic stm32 -SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", TAG+="uaccess", RUN{builtin}+="uaccess" +sudo udevadm control --reload-rules +sudo udevadm trigger ``` -**/etc/udev/rules.d/57-bootloadhid.rules:** +**注意:** 古い(1.12以前の) ModemManager では、フィルタリングは厳密なモードではない場合にのみ動作し、以下のコマンドはその設定を更新することができます。 + ``` -# bootloadHID -SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05df", TAG+="uaccess", RUN{builtin}+="uaccess" +printf '[Service]\nExecStart=\nExecStart=/usr/sbin/ModemManager --filter-policy=default' | sudo tee /etc/systemd/system/ModemManager.service.d/policy.conf +sudo systemctl daemon-reload +sudo systemctl restart ModemManager ``` ### Linux のブートローダモードで Serial デバイスが検知されない @@ -99,46 +128,6 @@ https://github.com/tmk/tmk_keyboard/issues/150 - http://www.obdev.at/products/vusb/license.html - http://www.mcselec.com/index.php?page=shop.product_details&flypage=shop.flypage&product_id=92&option=com_phpshop&Itemid=1 -## AVR のための BOOTLOADER_SIZE -Teensy2.0++ ブートローダのサイズは 2048 バイトであることに注意してください。一部の Makefile には間違ったコメントがあります。 - -``` -# Boot Section Size in *bytes* -# Teensy halfKay 512 -# Teensy++ halfKay 2048 -# Atmel DFU loader 4096 (TMK Alt Controller) -# LUFA bootloader 4096 -# USBaspLoader 2048 -OPT_DEFS += -DBOOTLOADER_SIZE=2048 -``` - -## MacOS での `avr-gcc: internal compiler error: Abort trap: 6 (program cc1)` - -これは brew での更新に関する問題で、avr-gcc が依存するシンボリックリンクを壊します。 - -解決法は全ての影響を受けたモジュールを削除し再インストールすることです。 - -``` -brew rm avr-gcc avr-gcc@8 dfu-programmer dfu-util gcc-arm-none-eabi arm-gcc-bin@8 avrdude qmk -brew install qmk/qmk/qmk -brew link --force avr-gcc@8 -brew link --force arm-gcc-bin@8 -``` - -### `avr-gcc` と LUFA - -`avr-gcc` を更新し、LUFA に関連するエラーが表示された場合、例えば: - -`lib/lufa/LUFA/Drivers/USB/Class/Device/AudioClassDevice.h:380:5: error: 'const' attribute on function returning 'void'` - -今のところ、Homebrew で `avr-gcc` を 8 にロールバックする必要があります。 - -``` -brew uninstall --force avr-gcc -brew install avr-gcc@8 -brew link --force avr-gcc@8 -``` - ### キーボードに書き込んだが何も起こらない、あるいはキーの押下が登録されない - ARM (rev6 planck、clueboard 60、hs60v2 など) でも同じ (Feb 2019) ARM ベースのチップ上での EEPROM の動作によって、保存された設定が無効になる場合があります。これはデフォルトレイヤに影響し、まだ調査中の特定の環境下でキーボードが使えなくなる*しれません*。EEPROM のリセットでこれが修正されます。 diff --git a/docs/ja/feature_bluetooth.md b/docs/ja/feature_bluetooth.md index f7835dd548fd..3c71a18ec1f1 100644 --- a/docs/ja/feature_bluetooth.md +++ b/docs/ja/feature_bluetooth.md @@ -1,18 +1,18 @@ # Bluetooth ## Bluetooth の既知のサポートハードウェア 現在のところ Bluetooth のサポートは AVR ベースのチップに限られます。Bluetooth 2.1 については、QMK は RN-42 モジュールをサポートします。より最近の BLE プロトコルについては、現在のところ Adafruit Bluefruit SPI Friend のみが直接サポートされています。iOS デバイスに接続するには、BLE が必要です。iOS はマウス入力をサポートしないことに注意してください。 -| ボード | Bluetooth プロトコル | 接続タイプ | rules.mk | Bluetooth チップ | -|----------------------------------------------------------------|----------------------------|----------------|---------------------------|--------------| -| Roving Networks RN-42 (Sparkfun Bluesmirf) | Bluetooth Classic | UART | `BLUETOOTH = RN42` | RN-42 | -| [Bluefruit LE SPI Friend](https://www.adafruit.com/product/2633) | Bluetooth Low Energy | SPI | `BLUETOOTH = AdafruitBLE` | nRF51822 | +| ボード | Bluetooth プロトコル | 接続タイプ | rules.mk | Bluetooth チップ | +| ---------------------------------------------------------------- | -------------------- | ---------- | ------------------------- | ---------------- | +| Roving Networks RN-42 (Sparkfun Bluesmirf) | Bluetooth Classic | UART | `BLUETOOTH = RN42` | RN-42 | +| [Bluefruit LE SPI Friend](https://www.adafruit.com/product/2633) | Bluetooth Low Energy | SPI | `BLUETOOTH = AdafruitBLE` | nRF51822 | まだサポートされていませんが、可能性のあるもの: * [Bluefruit LE UART Friend](https://www.adafruit.com/product/2479)。[tmk 実装がおそらく見つかります](https://github.com/tmk/tmk_keyboard/issues/514) @@ -30,7 +30,10 @@ Bluefruit UART friend は SPI friend に変換することができますが、 ## Bluetooth の Rules.mk オプション -これらのうちの1つだけを使ってください + +現在サポートされている Bluetooth チップセットは [N-キーロールオーバー (NKRO)](ja/reference_glossary.md#n-key-rollover-nkro) をサポートしていません。そのため、`rules.mk` に `NKRO_ENABLE = no` を含めなければなりません。 + +Bluetooth を有効にするには、以下のうちの1つだけを使ってください: * BLUETOOTH_ENABLE = yes (レガシーオプション) * BLUETOOTH = RN42 * BLUETOOTH = AdafruitBLE @@ -39,8 +42,8 @@ Bluefruit UART friend は SPI friend に変換することができますが、 これは複数のキーボードの出力が選択できる場合に使われます。現在のところ、これは USB と Bluetooth の両方をサポートするキーボードで、それらの間の切り替えのみが可能です。 -| 名前 | 説明 | -|----------|----------------------------------------------| +| 名前 | 説明 | +| ---------- | ------------------------------------- | | `OUT_AUTO` | USB と Bluetooth を自動的に切り替える | -| `OUT_USB` | USB のみ | -| `OUT_BT` | Bluetooth のみ | +| `OUT_USB` | USB のみ | +| `OUT_BT` | Bluetooth のみ | diff --git a/docs/ja/feature_dynamic_macros.md b/docs/ja/feature_dynamic_macros.md index f3e587136740..951b90312768 100644 --- a/docs/ja/feature_dynamic_macros.md +++ b/docs/ja/feature_dynamic_macros.md @@ -1,8 +1,8 @@ # 動的マクロ: ランタイムでのマクロの記録および再生 QMK はその場で作られた一時的なマクロをサポートします。これらを動的マクロと呼びます。それらはユーザがキーボードから定義し、キーボードのプラグを抜くか再起動すると失われます。 diff --git a/docs/ja/feature_leader_key.md b/docs/ja/feature_leader_key.md index 538358a6b2a6..61d6f5a8e05e 100644 --- a/docs/ja/feature_leader_key.md +++ b/docs/ja/feature_leader_key.md @@ -1,8 +1,8 @@ # リーダーキー: 新しい種類のモディファイア もしあなたが Vim を使ったことがある場合、リーダーキーは何であるかを知っています。そうでなければ、素晴らしい概念を発見しようとしています。:) 例えば、Alt+Shift+W を押す(3つのキーを同時に押す)代わりに、キーの_シーケンス_を押すことができたらどうでしょう?つまり、特別なモディファイア (リーダーキー)を押して、続けて W と C を押すと (単純にキーを高速に繋げます)、何かが起こります。 diff --git a/docs/ja/feature_stenography.md b/docs/ja/feature_stenography.md index faed0ee1bb39..45a799be4945 100644 --- a/docs/ja/feature_stenography.md +++ b/docs/ja/feature_stenography.md @@ -1,8 +1,8 @@ # QMK での速記 :id=stenography-in-qmk [速記](https://en.wikipedia.org/wiki/Stenotype)は裁判所のレポート、字幕および耳が不自由な人のためのリアルタイムの文字起こしで最もよく使われる記述方法です。速記では単語はスペル、音声およびショートカット(短い)ストロークが混在する音節ごとに音節化されます。プロの速記者は、標準的なタイピングで通常見られる負担を掛けずに、はるかに少ないエラー(99.9%より高い精度)で、200-300 WPM に到達できます。 diff --git a/docs/ja/feature_tap_dance.md b/docs/ja/feature_tap_dance.md index 01d0607574f3..3d9d30ecf025 100644 --- a/docs/ja/feature_tap_dance.md +++ b/docs/ja/feature_tap_dance.md @@ -1,9 +1,9 @@ # タップダンス: 1つのキーが3つ、5つまたは100の異なる動作をします + original document: 0.10.33:docs/feature_tap_dance.md + git diff 0.10.33 HEAD -- docs/feature_tap_dance.md | cat +--> ## イントロダクション :id=introduction @@ -32,7 +32,9 @@ * `ACTION_TAP_DANCE_LAYER_TOGGLE(kc, layer)`: 1回タップすると `kc` キーコードが送信され、2回タップすると `layer` の状態をトグルします(これは `TG` レイヤーキーコードのように機能します)。 * `ACTION_TAP_DANCE_FN(fn)`: ユーザーキーマップに定義した指定の関数が呼び出されます。タップダンス実行の回数分タップすると、最後の時点で呼び出されます。 * `ACTION_TAP_DANCE_FN_ADVANCED(on_each_tap_fn, on_dance_finished_fn, on_dance_reset_fn)`: タップする度にユーザーキーマップに定義した最初の関数が呼び出されます。タップダンスの実行が終わった時点で2番目の関数が呼び出され、タップダンスの実行をリセットするときに最後の関数が呼び出されます。 -* `ACTION_TAP_DANCE_FN_ADVANCED_TIME(on_each_tap_fn, on_dance_finished_fn, on_dance_reset_fn, tap_specific_tapping_term)`: これは `ACTION_TAP_DANCE_FN_ADVANCED` と同じように機能します。しかし、`TAPPING_TERM` で事前に定義した時間に代えて、カスタマイズしたタップ時間を使えます。 +* ~~`ACTION_TAP_DANCE_FN_ADVANCED_TIME(on_each_tap_fn, on_dance_finished_fn, on_dance_reset_fn, tap_specific_tapping_term)`~~: これは `ACTION_TAP_DANCE_FN_ADVANCED` 関数と同じように機能します。しかし、`TAPPING_TERM` で事前に定義した時間の代わりに、カスタマイズしたタップ時間を使います。 + * [ここ](ja/custom_quantum_functions.md#Custom_Tapping_Term)で概説するように、これはキーごとのタッピング時間機能を優先して非推奨になりました。この特定のタップダンス機能を使う代わりに、使いたい特定の `TD()` マクロ(`TD(TD_ESC_CAPS)` のような)を確認する必要があります。 + 最初のオプションで、1つのキーに2つの役割を持たせる大抵のケースには十分です。例えば、`ACTION_TAP_DANCE_DOUBLE(KC_SPC, KC_ENT)` は、1回タップすると `Space` を送信し、2回タップすると `Enter` を送信します。 @@ -55,7 +57,7 @@ 異なる場合、まず、古いタップダンスを処理し、続いて新しいタップダンスを登録します。 同じ場合、カウンタの値を増やし、タイマーをリセットします。 -このことは、あなたは再びキーをタップするまでの時間として `TAPPING_TERM` の時間を持っていることを意味します。そのため、あなたは1つの `TAPPING_TERM` の時間内に全てのタップを行う必要はありません。これにより、キーの反応への影響を最小限に抑えながら、より長いタップ回数を可能にします。 +このことは、あなたは再びキーをタップするまでの時間として `TAPPING_TERM` の時間を持っていることを意味します。そのため、あなたは1つの `TAPPING_TERM` の時間内に全てのタップを行う必要はありません。これにより、キーの反応への影響を最小限に抑えながら、より長いタップ回数を可能にします。 次は `matrix_scan_tap_dance()` です。この関数はタップダンスキーのタイムアウトを制御します。 diff --git a/docs/ja/flashing.md b/docs/ja/flashing.md index 15828514525d..b2c0dcd868f1 100644 --- a/docs/ja/flashing.md +++ b/docs/ja/flashing.md @@ -1,8 +1,8 @@ # 書き込みの手順とブートローダ情報 キーボードが使用するブートローダにはかなり多くの種類があり、ほぼ全てが異なる書き込みの方法を使います。幸いなことに、[QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) のようなプロジェクトは、あまり深く考える必要無しに様々なタイプと互換性を持つことを目指していますが、この文章では様々なタイプのブートローダとそれらを書き込むために利用可能な方法について説明します。 @@ -244,3 +244,4 @@ BOOTLOADER = bootloadHID * `:dfu-util-split-left` - デフォルトのオプション (`:dfu-util`) と同様に、通常のファームウェアが書き込まれます。ただし、分割キーボードの「左側の」 EEPROM の設定も行われます。 * `:dfu-util-split-right` - デフォルトのオプション (`:dfu-util`) と同様に、通常のファームウェアが書き込まれます。ただし、分割キーボードの「右側の」 EEPROM の設定も行われます。 * `:st-link-cli` - dfu-util ではなく、ST-LINK の CLI ユーティリティを介してファームウェアを書き込めます。 +* `:st-flash` - dfu-util ではなく、[STLink Tools](https://github.com/stlink-org/stlink) の `st-flash` ユーティリティを介してファームウェアを書き込めます。 diff --git a/docs/ja/getting_started_make_guide.md b/docs/ja/getting_started_make_guide.md index cbc824de8b1c..08005877e738 100644 --- a/docs/ja/getting_started_make_guide.md +++ b/docs/ja/getting_started_make_guide.md @@ -1,8 +1,8 @@ # より詳細な `make` 手順 `make` コマンドの完全な構文は `::` です: diff --git a/docs/ja/hardware_avr.md b/docs/ja/hardware_avr.md index 0cba943c1569..1308c3fdaf5b 100644 --- a/docs/ja/hardware_avr.md +++ b/docs/ja/hardware_avr.md @@ -2,8 +2,8 @@ このページでは QMK における AVR マイコンのサポートについて説明します。AVR マイコンには、Atmel 社製の atmega32u4、atmega32u2、at90usb1286 やその他のマイコンを含みます。AVR マイコンは、簡単に動かせるよう設計された8ビットの MCU です。キーボードでよく使用される AVR マイコンには USB 機能や大きなキーボードマトリックスのためのたくさんの GPIO を搭載しています。これらは、現在、キーボードで使われる最も一般的な MCU です。 diff --git a/docs/ja/hardware_keyboard_guidelines.md b/docs/ja/hardware_keyboard_guidelines.md index ebcbb155420e..2be099985d92 100644 --- a/docs/ja/hardware_keyboard_guidelines.md +++ b/docs/ja/hardware_keyboard_guidelines.md @@ -2,8 +2,8 @@ QMK は開始以来、コミュニティにおけるキーボードの作成や保守に貢献しているあなたのような人たちのおかげで飛躍的に成長しました。私たちが成長するにつれて、うまくやるためのいくつかのパターンを発見しました。他の人たちがあなたの苦労の恩恵を受けやすくするため、それにあわせてもらえるようお願いします。 diff --git a/docs/ja/i2c_driver.md b/docs/ja/i2c_driver.md index 56425a2fdb1e..9d348d58033d 100644 --- a/docs/ja/i2c_driver.md +++ b/docs/ja/i2c_driver.md @@ -2,8 +2,8 @@ QMK で使われる I2C マスタドライバには、MCU 間のポータビリティを提供するための一連の関数が用意されています。 @@ -83,8 +83,8 @@ STM32 MCU では、使用するハードウェアドライバにより、さま |-----------------------|--------------------------------------------------------------------------------------------------|---------| | `I2C1_SCL_BANK` | SCL に使うピンのバンク (`GPIOA`, `GPIOB`, `GPIOC`) | `GPIOB` | | `I2C1_SDA_BANK` | SDA に使うピンのバンク (`GPIOA`, `GPIOB`, `GPIOC`) | `GPIOB` | -| `I2C1_SCL` | SCL のピン番号 (0-9) | `6` | -| `I2C1_SDA` | SDA のピン番号 (0-9) | `7` | +| `I2C1_SCL` | SCL のピン番号 (0-15) | `6` | +| `I2C1_SDA` | SDA のピン番号 (0-15) | `7` | | `I2C1_BANK`(非推奨) | 使用するピンのバンク (`GPIOA`, `GPIOB`, `GPIOC`)。後継は `I2C1_SCL_BANK`, `I2C1_SDA_BANK` です。 | `GPIOB` | ChibiOS I2C ドライバの設定項目は STM32 MCU の種類に依存します。 diff --git a/docs/ja/isp_flashing_guide.md b/docs/ja/isp_flashing_guide.md new file mode 100644 index 000000000000..ae3918130e14 --- /dev/null +++ b/docs/ja/isp_flashing_guide.md @@ -0,0 +1,284 @@ +# ISP 書き込みガイド + + + +ISP 書き込み(ICSP 書き込みと呼ぶ場合もあります)とは、マイクロコントローラーを直接プログラミングするプロセスです。 +これにより、ブートローダを交換したり、コントローラの「ヒューズ」を変更することができ、コントローラの速度や起動方法、その他のオプションなど、多くのハードウェアおよびソフトウェア関連の機能を制御します。 + +QMK の ISP 書き込みの主な用途は、AVRベースのコントローラ(Pro Micro、または V-USB チップ)のブートローダの書き込みまたは交換です。 + +?> これは Pro Micro や他の ATmega コントローラなどの AVR ベースのボードをプログラミングするためだけのものです。 Proton C などの Arm コントローラには使用できません。 + +## 破損したブートローダーの取り扱い + +ボードの書き込み/消去で問題が発生し、DFU ベースのコントローラで次のような不可解なエラーメッセージが表示される場合: + + libusb: warning [darwin_transfer_status] transfer error: timed out + dfu.c:844: -ETIMEDOUT: Transfer timed out, NAK 0xffffffc4 (-60) + atmel.c:1627: atmel_flash: flash data dfu_download failed. + atmel.c:1629: Expected message length of 1072, got -60. + atmel.c:1434: Error flashing the block: err -2. + ERROR + Memory write error, use debug for more info. + commands.c:360: Error writing memory data. (err -4) + + dfu.c:844: -EPIPE: a) Babble detect or b) Endpoint stalled 0xffffffe0 (-32) + Device is write protected. + dfu.c:252: dfu_clear_status( 0x7fff4fc2ea80 ) + atmel.c:1434: Error flashing the block: err -2. + ERROR + Memory write error, use debug for more info. + commands.c:360: Error writing memory data. (err -4) + +または、Pro Micro ベースのコントローラに対して次のようなメッセージが表示された場合: + + avrdude: butterfly_recv(): programmer is not responding + avrdude: butterfly_recv(): programmer is not responding + avrdude: verification error, first mismatch at byte 0x002a + 0x2b != 0x75 + avrdude: verification error; content mismatch + avrdude: verification error; content mismatch + + +あなたのボード/デバイスを再び動作させるには、ISP 書き込みが必要になるかもしれません。 + +## 必要なハードウェア + +実際に ISP の書き込みを行うには、以下のいずれか(その後に使用するプロトコルが続きます)が必要になります。 + +* [SparkFun PocketAVR](https://www.sparkfun.com/products/9825) - (USB Tiny) +* [USBtinyISP AVR Programmer Kit](https://www.adafruit.com/product/46) - (USB Tiny) +* [Teensy 2.0](https://www.pjrc.com/store/teensy.html) - (avrisp) +* [Pro Micro](https://www.sparkfun.com/products/12640) - (avrisp) +* [Bus Pirate](https://www.adafruit.com/product/237) - (buspirate) + +ISP 書き込みに使用できるデバイスは他にもありますが、これらが主なものです。 +また、すべての製品リンクは公式バージョンへのものです。他の場所で入手することもできます。 + +また、「ISP プログラマ」をプログラミングするデバイスに配線するためのものも必要になります。 +PCB の中には直接使用できる ISP ヘッダがあるものもありますが、そうではない場合が多いので、コントローラ自体にハンダ付けするか、別のスイッチや他のコンポーネントにハンダ付けする必要があるでしょう。 + +### ISP ファームウェア + +Teensy と Pro Micro のコントローラを ISP プログラマとして使用するには、コントローラに ISP ファームウェアを書き込む必要があります。 +それ以外のハードウェアは、あらかじめプログラムされているはずです。 +そのため、これらのコントローラの場合は、正しい hex ファイルをダウンロードしてから書き込んでください。 + +* Teensy 2.0: [`util/teensy_2.0_ISP_B0.hex`](https://github.com/qmk/qmk_firmware/blob/master/util/teensy_2.0_ISP_B0.hex) (`B0`) +* Pro Micro: [`util/pro_micro_ISP_B6_10.hex`](https://github.com/qmk/qmk_firmware/blob/master/util/pro_micro_ISP_B6_10.hex) (`10/B6`) + +コントローラに書き込んだら、この hex ファイルはもう必要ありません。 + +## 必要なソフトウェア + +QMK ツールボックスは、このほとんど(すべて)に使用することができます。 + +ただし、Teensy 2.0 ボードを使っている場合は、[Teensy Loader](https:/www.pjrc.comteensyloader.html) を使えば、Teensy 2.0 ボードに書き込むことができます。 +あるいは、`avrdude` (`qmk_install.sh` の一部としてインストールされています) や、[AVRDUDESS](https:/blog.zakkemble.netavrdudess-a-gui-for-avrdude)(Windows 用) を使って、Pro Micro に書き込んだり、ISP を書き込んだりすることができます。 + +## 配線 + +これは非常に簡単です。次のようにして、相互に対応するものを接続します。 + +### SparkFun Pocket AVR + + PocketAVR RST <-> Keyboard RESET + PocketAVR SCLK <-> Keyboard B1 (SCLK) + PocketAVR MOSI <-> Keyboard B2 (MOSI) + PocketAVR MISO <-> Keyboard B3 (MISO) + PocketAVR VCC <-> Keyboard VCC + PocketAVR GND <-> Keyboard GND + +### Teensy 2.0 + + Teensy B0 <-> Keyboard RESET + Teensy B1 <-> Keyboard B1 (SCLK) + Teensy B2 <-> Keyboard B2 (MOSI) + Teensy B3 <-> Keyboard B3 (MISO) + Teensy VCC <-> Keyboard VCC + Teensy GND <-> Keyboard GND + +!> Teensy の B0 ピンはキーボードのコントローラの RESET/RST ピンと配線されています。 Teensy の RESET ピンをキーボードの RESET に配線しないでください。 + +### Pro Micro + + Pro Micro 10 (B6) <-> Keyboard RESET + Pro Micro 15 (B1) <-> Keyboard B1 (SCLK) + Pro Micro 16 (B2) <-> Keyboard B2 (MOSI) + Pro Micro 14 (B3) <-> Keyboard B3 (MISO) + Pro Micro VCC <-> Keyboard VCC + Pro Micro GND <-> Keyboard GND + +!> Pro Micro の 10/B6 ピンはキーボードのコントローラの RESET/RST ピンに配線されています。 Pro Micro の RESET ピンをキーボードの RESET に配線 ***しないでください***。 + +## キーボードへの書き込み + +ISP プログラマをセットアップして、キーボードに接続したら、キーボードに書き込みをします。 + +### ブートローダファイル + +普通の状態に戻す一番簡単で手っ取り早い方法は、キーボードにブートローダだけ書き込むことです。 +これが終れば、普通にキーボードを接続して、普通にキーボードに書き込みできるようになります。 + +標準のブートローダは[`util/` フォルダー](https://github.com/qmk/qmk_firmware/tree/master/util) にあります。 +チップの正しいブートローダを書き込んでください: + +* **Atmel DFU** + * [ATmega16U4](https://github.com/qmk/qmk_firmware/blob/master/util/bootloader_atmega16u4_1.0.1.hex) + * [ATmega32U4](https://github.com/qmk/qmk_firmware/blob/master/util/bootloader_atmega32u4_1.0.0.hex) + * [AT90USB64](https://github.com/qmk/qmk_firmware/blob/master/util/bootloader_at90usb64_1.0.0.hex) + * [AT90USB128](https://github.com/qmk/qmk_firmware/blob/master/util/bootloader_at90usb128_1.0.1.hex) +* **Caterina** + * [Pro Micro (5V/16MHz)](https://github.com/sparkfun/Arduino_Boards/blob/master/sparkfun/avr/bootloaders/caterina/Caterina-promicro16.hex) + * [Pro Micro (3.3V/8MHz)](https://github.com/sparkfun/Arduino_Boards/blob/master/sparkfun/avr/bootloaders/caterina/Caterina-promicro8.hex) +* **BootloadHID (PS2AVRGB)** + * [ATmega32A](https://github.com/qmk/qmk_firmware/blob/master/util/bootloader_ps2avrgb_bootloadhid_1.0.1.hex) + +お使いのボードが何を使っているかわからない場合は、QMK のキーボード用の `rules.mk` ファイルを見てください。 +`MCU` と `BOOTLOADER` の行には必要な値が書かれています。これはボードのバージョンによって異なるかもしれません。 + +### 製造手法 + +ブートローダと通常のファームウェアを同時に書き込みたい場合、2つの方法があります。 +手動で行うか、コンパイル時に `:production` ターゲットを使って行うかです。 + +手動で行うには: + +1. オリジナルのファームウェアの .hex ファイルをテキストエディタで開きます +2. 最後の行を削除してください。(`:00000001FF`になっているはずです - これは EOF メッセージです) +3. ブートローダの内容全体を新しい行にコピーして(行間に空行を入れないように)、元のファイルの最後に貼り付けてください。 +4. これを新しいファイルとして `__production.hex` という名前で保存します。 + +?> ここでは他のブートローダも同じように使うことができますが、__ブートローダが必要で__、そうしないとまた ISP を使ってキーボードに新しいファームウェアを書き込まなければならなくなります。 + +#### QMK DFU ブートローダとプロダクションイメージの作成 + +コンパイル時に `:production` ターゲットを使用して、ボード用のファームウェア、QMK DFU ブートローダ、プロダクションファームウェアイメージを作成することができます。 +これが完了すると、3つのファイルが表示されます: + +* `_.hex` +* `__bootloader.hex` +* `__production.hex` + +QMK DFU ブートローダは `atmega32u4` コントローラ (AVR ベースの Planck ボードや Pro Micro など) でしかテストされておらず、他のコントローラではテストされていません。 +しかし、`atmega32a` や `atmega328p` のような V-USB コントローラでは間違いなく動作しません。 + +ブートローダかプロダクションファームウェアファイルのどちらかを書き込むことができます。 +プロダクションファームウェアファイルの方が、より多くのデータを書き込むので、書き込みに時間がかかります。 + +?> 注意:同じブートローダを使用しつづけるべきです。すでに DFU を使用している場合は、QMK DFU に切り替えても問題ありません。しかし、例えば Pro Micro に QMK DFU を書き込むには、追加の手順が必要になります。 + +## ブートローダ/プロダクションファイルの書き込み + +キーボードがどのデバイスにも接続されていないことを確認し、ISP プログラマを接続してください。 + +ブートローダの種類を変更したい場合は、コマンドラインを使用する必要があります。 + +### QMK Toolbox + +1. 'AVRISP device connected' または `USB Tiny device connected` が黄色で表示されます。 +2. `Open` ダイアログで正しいブートローダー/プロダクションの .hex ファイルを選択します(パスにスペースを含めることはできません) +3. 書きこもうとしているキーボード(ISP プログラマではなく)のための正しい `Microcontroller` オプションが選択されていることを確認してください。 +4. `Flash` を押します +5. 特にプロダクションファイルの場合、しばらくは何も出力されませんが、待ちましょう。 + +検証とヒューズのチェックに問題がなければ、完了です。 +ボードが自動的に再起動する場合があります。 +それ以外の場合は、Teensy のプラグを抜いて、キーボードを接続します。 +テスト中は、Teensy をキーボードに接続したままにすることができますが、すべてが正常に機能することを確認したら、はんだを外すか、配線を外すことをお勧めします。 + +### コマンドライン + +ターミナル(Windows の場合は `cmd`)を開いて、修正した .hex ファイルがある場所に移動します。 +ここでは、このファイルを `main.hex` と呼び、Teensy 2.0 が `COM3` ポートに接続されていると仮定します。 +よくわからない場合は、デバイスマネージャを開いて、`Ports > USB Serial Device` を探してください。ここにある COM ポートを使ってください。 +あなたはそれが正しいポートであることを確認することができます: + + avrdude -c avrisp -P COM3 -p atmega32u4 + +次のような出力が得られるはずです: + + avrdude: AVR device initialized and ready to accept instructions + + Reading | ################################################## | 100% 0.02s + + avrdude: Device signature = 0x1e9587 + + avrdude: safemode: Fuses OK + + avrdude done. Thank you. + +私たちのキーボードは `atmega32u4`(共通)を使用しているので、これが指定するチップです。 +以下が完全なコマンドです: + + avrdude -c avrisp -P COM3 -p atmega32u4 -U flash:w:main.hex:i + +ボードが `atmega32a`(jj40 など)を使用している場合、コマンドは次のとおりです(最後の追加コードによりヒューズが正しく設定されます)。 + + avrdude -c avrisp -P COM3 -p atmega32 -U flash:w:main.hex:i -U hfuse:w:0xD0:m -U lfuse:w:0x0F:m + +プログレスバーが表示されてから、以下が表示されるはずです。 + + avrdude: verifying ... + avrdude: 32768 bytes of flash verified + + avrdude: safemode: Fuses OK + + avrdude done. Thank you. + +これは全てうまく動作したことを示しています。 +ボードが自動的に再起動する場合もありますが、そうでない場合は、Teensy のプラグを抜いてキーボードを接続してください。 +テスト中は、Teensy をキーボードに接続したままにすることができますが、すべてが正常に機能することを確認したら、はんだを外すか、配線を外すことをお勧めします。 + +SparkFun PocketAVR Programmer や、他の USB Tiny ベースの ISP プログラマを使用している場合は、次のようなものを使用すると良いでしょう。 + + avrdude -c usbtiny -P usb -p atmega32u4 + +#### 上級者向け: ヒューズの変更 + +Pro Micro に QMK DFU を書き込むなど、ブートローダを切り替える場合は、ブートローダの hex ファイルの書き込みに加えて、ヒューズを変更する必要があります。 +これは、`caterina` (Pro Micro ブートローダ) と `dfu` では起動ルーチンの扱いが異なり、その動作はヒューズによって制御されるからです。 + +!> これは、ヒューズを変更することは、永久にあなたのコントローラをレンガ化(訳注:日本では文鎮化と呼ぶことが多い、コントローラがまったく無反応になる状態)することができる方法の1つであるため、それは非常に注意が必要な1つの領域です。 + +以下は、`atmega32u4`の 5V 16MHz 版(5V Pro Micro など)を想定しています。 + +`atmega32u4`の DFU の場合、必要なヒューズ設定は次のとおりです: + +| ヒューズ | 設定 | +|----------|------------------| +| Low | `0x5E` | +| High | `0xD9` or `0x99` | +| Extended | `0xC3` | + +High ヒューズは 0xD9 か 0x99 のどちらかになります。 +違いは、0xD9 は QMK Firmware がソフトウェアでも無効化している JTAG を無効化しているのに対し、0x99 は JTAG を無効化していないことです。 + +これを設定するには、`-U lfuse:w:0x5E:m -U hfuse:w:0xD9:m -U efuse:w:0xC3:m` をコマンドに追加します。 +そうすると、最終的なコマンドは次のようになります。 + + avrdude -c avrisp -P COM3 -p atmega32u4 -U flash:w:main.hex:i -U lfuse:w:0x5E:m -U hfuse:w:0xD9:m -U efuse:w:0xC3:m + +`atmega32u4`の Caterina では、以下があなたに必要なヒューズの設定です。 + +| ヒューズ | 設定 | +|----------|--------| +| Low | `0xFF` | +| High | `0xD8` | +| Extended | `0xCB` | + +これを設定するには、コマンドに `-U lfuse:w:0xFF:m -U hfuse:w:0xD8:m -U efuse:w:0xCB:m` を追加します。 +これで、最終的なコマンドは次のようになるはずです。 + + avrdude -c avrisp -P COM3 -p atmega32u4 -U flash:w:main.hex:i -U lfuse:w:0xFF:m -U hfuse:w:0xD8:m -U efuse:w:0xCB:m + + +別のコントローラーを使用している場合や、別の設定を希望する場合は、この[AVR ヒューズ計算機](http:/www.engbedded.comfusecalc)を使用して、より適切な値を見つけることができます。 + +## ヘルプ + +ご質問・ご不明な点がありましたら、お気軽に[issue を開いてください](https://github.com/qmk/qmk_firmware/issues/new)! diff --git a/docs/ja/other_vscode.md b/docs/ja/other_vscode.md index d4137ca46d48..e786b08f397c 100644 --- a/docs/ja/other_vscode.md +++ b/docs/ja/other_vscode.md @@ -1,8 +1,8 @@ # QMK 開発用の Visual Studio Code のセットアップ [Visual Studio Code](https://code.visualstudio.com/) (VS Code) は多くの異なるプログラミング言語をサポートするオープンソースのコードエディタです。 @@ -53,7 +53,7 @@ VS Code のようなフル機能のエディタの使用は、プレーンテキ ### VS Code の設定 -最初に、IntelliSense をセットアップする必要があります。これは厳密には必要ではありませんが、あなたの人生をずっと楽にします。これを行うには、QMK ファームウェアフォルダに `.vscode/c_cpp_properies.json` ファイルを作成する必要があります。これは全て手動で行うことができますが、ほとんどの作業は既に完了しています。 +最初に、IntelliSense をセットアップする必要があります。これは厳密には必要ではありませんが、あなたの人生をずっと楽にします。これを行うには、QMK ファームウェアフォルダに `.vscode/c_cpp_properties.json` ファイルを作成する必要があります。これは全て手動で行うことができますが、ほとんどの作業は既に完了しています。 [このファイル](https://gist.github.com/drashna/48e2c49ce877be592a1650f91f8473e8) を取得して保存します。MSYS2 をデフォルトの場所にインストールしなかった、または WSL か LxSS を使っている場合、このファイルを編集する必要があります。 @@ -64,7 +64,7 @@ VS Code のようなフル機能のエディタの使用は、プレーンテキ 次に、VSCode に統合ターミナルとして表示されるように、MSYS2 ウィンドウを設定します。これには多くの利点があります。ほとんどの場合で、エラー上で Ctrl + クリックするとこれらのファイルにジャンプできます。これによりデバッグがはるかに簡単になります。また、他のウィンドウへジャンプする必要が無いという点でも優れています。 -1. File > Preferences > > Settings をクリックします。 +1. ファイル > ユーザー設定 > > 設定 をクリックします。 2. 右上の {} ボタンをクリックし、`settings.json` ファイルを開きます。 3. ファイルの内容を以下のように設定します: @@ -82,11 +82,11 @@ VS Code のようなフル機能のエディタの使用は、プレーンテキ } ``` - ここに既に設定がある場合は、最初と最後の波括弧の間に全てを追加します。 + ここに既に設定がある場合は、最初と最後の波括弧の間に全てを追加し、既存の設定を新しく追加された設定とカンマで区切ります。 ?> MSYS2 を別のフォルダにインストールした場合は、`terminal.integrated.shell.windows` のパスをシステムの正しいパスに変更する必要があります。 -4. Ctrl-` (grave) を押して、ターミナルを起動します。 +4. Ctrl-` (Grave) を押して、ターミナルを起動するか、表示 > ターミナル (コマンド `workbench.action.terminal.toggleTerminal`)に進みます。まだターミナルが開いていない場合は、新しいターミナルが開きます。 これにより、ワークスペースフォルダ(つまり `qmk_firmware` フォルダ)でターミナルが起動し、キーボードをコンパイルすることができます。 @@ -115,8 +115,8 @@ VS Code のようなフル機能のエディタの使用は、プレーンテキ いずれかの拡張機能をインストールしたら、再起動します。 # QMK 用の VS Code の設定 -1. File > Open Folder をクリックします +1. ファイル > フォルダーを開く をクリックします 2. GitHub からクローンした QMK ファームウェアフォルダを開きます。 -3. File > Save Workspace As... をクリックします +3. ファイル > 名前を付けてワークスペースを保存... をクリックします これで、VS Code で QMK ファームウェアをコーディングする準備ができました。 diff --git a/docs/ja/pr_checklist.md b/docs/ja/pr_checklist.md new file mode 100644 index 000000000000..9026ac48669e --- /dev/null +++ b/docs/ja/pr_checklist.md @@ -0,0 +1,134 @@ +# PR チェックリスト + + + +これは、提出された PR を QMK の協力者がレビューする際に何をチェックするのかの非網羅的なチェックリストです。 + +これらの推奨事項に矛盾がある場合は、このドキュメントに対して [issue を開く](https://github.com/qmk/qmk_firmware/issues/new)か、[Discord](https://discord.gg/Uq7gcHh) の QMK コラボレータに連絡することをお勧めします。 + +## 一般的な PR + +- PRは、ソースリポジトリ上の `master` ではないブランチを使って提出する必要があります + - これは、あなたの PR にとって別のブランチをターゲットにするという意味ではなく、むしろ自分の master ブランチで作業をしていないという意味です + - もし PR の提出者が自分の `master` ブランチを使っている場合は、マージ後に ["git の使い方"](https://docs.qmk.fm/#/ja/newbs_git_using_your_master_branch) ページへのリンクが表示されます - (このドキュメントの最後にはメッセージの内容が含まれます) +- 新しく追加されたディレクトリとファイル名は小文字でなければなりません + - 上流のソースが元々大文字を使っていた場合 (ChibiOS や他のリポジトリからインポートしたファイルなど)、このルールは緩和されるかもしれません + - 十分な正当性がある場合 (既存のコアファイルとの整合性など) は、このルールを緩和することができます。 + - ボードデザイナーがキーボードの名前を大文字にした場合は、十分な正当性とはみとめられません +- すべての `*.c` および `*.h` ソースファイルの有効なライセンスヘッダ + - 一貫性のために GPL2/GPL3 が推奨されています + - 他のライセンスも許可されていますが、GPL と互換性があり、再配布が許可されていなければなりません。異なるライセンスを使うと、PR がマージされるのをほぼ確実に遅らせることになります +- QMK コードベースの「ベストプラクティス」に従う + - これは網羅的なリストではありませんし、時間が経つにつれて修正される可能性が高いです + - ヘッダファイルでは、`#ifndef` インクルードガードの代わりに `#pragma once` を使います + - 「旧式の」 GPIO/I2C/SPI 関数を使用しない - 正当な理由がない限り、QMK の抽象化を使用しなければなりません (怠惰は正当な理由にはなりません) + - タイミングの抽象化にも従う必要があります: + - `_delay_ms()` のかわりに `wait_ms()` を。(`#include ` も消します) + - `timer_read()` と `timer_read32()` など。 -- タイミング API は [timer.h](https://github.com/qmk/qmk_firmware/blob/master/tmk_core/common/timer.h) を参照してください + - 新しい抽象化が有用だと思う場合は、次のことをお勧めします: + - 機能が完成するまで自分のキーボードでプロトタイプを作成する + - Discord の QMK コラボレータと話し合う + - 個別のコア変更としてそれをリファクタリングする + - あなたのキーボードからそのコピーを削除する +- PR を開く前にリベースしてマージの競合をすべて修正します (ヘルプやアドバイスが必要な場合は、Discord で QMK コラボレータに連絡してください)。 + +## キーマップの PR + +- 特定のボードファイルをインクルードするよりも `#include QMK_KEYBOARD_H` を推奨します +- レイヤーは `#define` よりも `enum` が好まれます +- カスタムキーコードは `#define` ではなく `enum` が必要です。最初のエントリには `= SAFE_RANGE` が必要です +- LAYOUT マクロ呼び出しのパラメータの途中の改行ではバックスラッシュ(`\`)は不要です +- スペーシング(コンマまたはキーコードの最初の文字の配置など)に注意を払うと、見栄えの良いキーマップになります + +## キーボードの PR + +終了した PR(インスピレーションを得るために、以前のレビューコメントセットは、自分のレビューのピンポンをなくすのに役立ちます): +https://github.com/qmk/qmk_firmware/pulls?q=is%3Apr+is%3Aclosed+label%3Akeyboard + +- `info.json` + - 有効な URL + - 有効なメンテナ + - Configurator で正しく表示されること(Ctrl + Shift + I を押してローカルファイルをプレビューし、高速入力をオンにして順序を確認する) +- `readme.md` + - 標準テンプレートがあること + - 書き込みコマンドが `:flash` で終わっていること + - 有効なハードウェアの入手方法へのリンク (手配線の場合を除く) -- プライベートな共同購入は問題ありませんが、一回限りのプロトタイプは疑問視されます。オープンソースの場合は、ファイルへのリンクを提供してください + - ボードをブートローダーモードにリセットする方法を明確に説明してください + - キーボードの写真、できれば PCB の写真も添付してください +- `rules.mk` + - `MIDI_ENABLE`、`FAUXCLICKY_ENABLE`、`HD44780_ENABLE` は削除されました + - `# Enable Bluetooth with the Adafruit EZ-Key HID` は `# Enable Bluetooth` に変更されました + - 機能の有効化に関する `(-/+サイズ)` コメントはなくなりました + - ブートローダが指定されている場合は、代替ブートローダのリストを削除します + - [mcu_selection.mk](https://github.com/qmk/qmk_firmware/blob/master/quantum/mcu_selection.mk)の同等の MCU と比較した場合、同じ値の場合、デフォルトの MCU パラメータの再定義がないこと +- キーボードの `config.h` + - `PRODUCT` 値に `MANUFACTURER` を繰り返さないでください + - `#define DESCRIPTION` は要りません + - マジックキーオプション、 MIDI オプション、HD44780 コンフィギュレーションは要りません + - ユーザー設定の設定可能な `#define` はキーマップ `config.h` に移動する必要があります + - "`DEBOUNCING_DELAY`" の代りに "`DEBOUNCE`" を使います + - キーボードが QMK で起動するために最低限必要なコードが存在する必要があります + - マトリックスと重要なデバイスの初期化コード + - (カスタムキーコードや特別なアニメーションなど)商用キーボードの既存の機能をミラーリングする場合は、`default` ではないキーマップを使って処理する必要があります +- `keyboard.c` + - 空の `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) を参照してください + - カスタムマトリックスを使用する場合は、`CUSTOM_MATRIX = lite` を選択し、標準のデバウンスを許可します。[マトリックスコードの部分置き換え](https://docs.qmk.fm/#/ja/custom_matrix?id=lite) を参照してください +- `keyboard.h` + - 先頭に `#include "quantum.h"` を置きます + - `LAYOUT` マクロは、該当する場合は標準の定義を使用してください + - 該当する場合はコミュニティレイアウトマクロ名を使用します (`LAYOUT`/`LAYOUT_all`よりも優先されます) +- キーマップの `config.h` + - キーボードから `rules.mk` や `config.h` が重複していないこと +- `keymaps/default/keymap.c` + - `QMKBEST`/`QMKURL` が削除されていること + - `MO(_LOWER)`および `MO(_RAISE)`キーコードまたは同等のものを使用していて、キーマップに両方のキーを押したときに adjust レイヤーがある場合 - キーマップに直接 adjust レイヤーに入るキーコードがない場合(`MO(_ADJUST)`のように)次のように記述します... + ``` + layer_state_t layer_state_set_user(layer_state_t state) { + return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); + } + ``` + ...キーマップの `process_record_user()` 内で `layer_on()`、 `update_tri_layer()` を手動で処理する代わりに。 +- default (および via) のキーマップは「素朴」でなければなりません。 + - 他のユーザーが独自のユーザー固有のキーマップを開発するための「クリーンな状態」として使用するための最低限のもの。 + - これらのキーマップで推奨される標準レイアウト(可能な場合) +- PR の提出者は、同じ PR に機能を紹介する個人的な(または豪華な)キーマップを持たせることができますが、「デフォルト」のキーマップに埋め込むべきではありません +- PR の提出者はまた、既存の商用キーボードへ QMK を移植する場合、その商用製品の既存の機能を反映する「製造業者に一致する」キーマップを持つことができます + +さらに、ChibiOS に固有で: +- 既存の ChibiOS ボード定義を使用することを**強く**推奨します。 + - 多くの場合、同等の Nucleo ボードは、同じファミリの異なるフラッシュサイズまたはわずかに異なるモデルで使用できます。 + - 例:STM32L082KZ の場合、STM32L073RZ に類似しているため、rules.mkで `BOARD = ST_NUCLEO64_L073RZ` を使用できます。 + - QMK は ChibiOS のアップグレード時のメンテナンス負担が継続的に発生するため、可能な限りカスタムボード定義を持たないように移行しています。 +- ボードの定義が避けられない場合、`board.c` には標準の `__early_init()` (通常の ChibiOS ボードの定義と同じ) と空の `boardInit()` を実装しなければなりません。 + - Arm/ChibiOS [早期初期化](https:/docs.qmk.fm/#/ja/platformdev_chibios_earlyinit?id=board-init)を参照してください + - `__early_init()`は、`early_hardware_init_pre()` または `early_hardware_init_post()` で適切に置き換える必要があります + - `boardInit()` は `board_init()` に移行する必要があります + +## コアの PR + +- `develop` ブランチをターゲットにする必要があります。これは、その後、breaking change のタイムラインで `master` にマージされます。 +- その他の注意事項 TBD + - 投稿された変更の幅を考えると、コアはもっと主観的です + +--- + +## 注意事項 + +人々が自分の `master` ブランチを使用する場合、マージ後に以下を投稿します: + +``` +For future reference, we recommend against committing to your `master` branch as you've done here, because pull requests from modified `master` branches can make it more difficult to keep your QMK fork updated. It is highly recommended for QMK development – regardless of what is being done or where – to keep your master updated, but **NEVER** commit to it. Instead, do all your changes in a branch (branches are basically free in Git) and issue PRs from your branches when you're developing. + +There are instructions on how to keep your fork updated here: + +[**Best Practices: Your Fork's Master: Update Often, Commit Never**](https://docs.qmk.fm/#/newbs_git_using_your_master_branch) + +[Fixing Your Branch](https://docs.qmk.fm/#/newbs_git_resynchronize_a_branch) will walk you through fixing up your `master` branch moving forward. If you need any help with this just ask. + +Thanks for contributing! +``` diff --git a/docs/ja/ref_functions.md b/docs/ja/ref_functions.md index e9c45fdecc31..029797ff013e 100644 --- a/docs/ja/ref_functions.md +++ b/docs/ja/ref_functions.md @@ -1,8 +1,8 @@ # キーボードをより良くするための便利なコア関数のリスト QMK には、信じられないほど便利な、またはあなたが望んでいた機能を少し追加する、隠された関数がたくさんあります。特定の機能に固有の関数はそれぞれの機能のページにあるため、ここには含まれていません。 @@ -48,7 +48,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { ### `update_tri_layer_state(state, x, y, z)` もう1つの関数は `update_tri_layer_state(state, x, y, z)` です。この関数は [`layer_state_set_*` 関数](ja/custom_quantum_functions.md#layer-change-code)から呼び出されることを意図しています。これは、キーコードを使ってレイヤーを変更するたびに、これがチェックされることを意味します。したがって、`LT(layer, kc)` を使ってレイヤーを変更すると、同じレイヤーチェックが引き起こされます。 -このメソッドの注意点は、`x` および `y` レイヤーをオンにしないと、`z` レイヤーにアクセスできないことです。レイヤー `z` のみをアクティブにしようとすると、このコードが実行され、使用前にレイヤー `z` がオフになるからです。 +このメソッドの注意点は2つあります: +1. `x` および `y` レイヤーをオンにしないと、`z` レイヤーにアクセスできません。これは、レイヤー `z` のみをアクティブにしようとすると、このコードが実行され、使用前にレイヤー `z` がオフになるからです。 +2. レイヤーは最上位の番号から処理されるので、`z` は `x` や `y` よりも上位のレイヤーでなければなりません。そうでなければアクセスできない場合があります。 #### 例 diff --git a/docs/ja/reference_info_json.md b/docs/ja/reference_info_json.md index 0fa1f9d3febd..f5889a1026d5 100644 --- a/docs/ja/reference_info_json.md +++ b/docs/ja/reference_info_json.md @@ -1,8 +1,8 @@ # `info.json` このファイルは [QMK API](https://github.com/qmk/qmk_api) によって使われます。このファイルは [QMK Configurator](https://config.qmk.fm/) がキーボードの画像を表示するために必要な情報を含んでいます。ここにメタデータを設定することもできます。 diff --git a/docs/ja/tap_hold.md b/docs/ja/tap_hold.md index a0f08976283c..bf23ae4ab0a2 100644 --- a/docs/ja/tap_hold.md +++ b/docs/ja/tap_hold.md @@ -1,8 +1,8 @@ # タップホールド設定オプション タップホールドオプションは素晴らしいものですが、問題が無いわけではありません。デフォルト設定を適切なものにしようとしましたが、一部の人にとってまだ問題を引き起こすかもしれません。 @@ -52,7 +52,7 @@ uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { これは高速なタイピストや高い `TAPPING_TERM` 設定に対して、タップとホールドキー(モッドタップのような)の動作を向上させます。 -モッドタップキーを押し、他のキーをタップ(押して放す)して、モッドタップキーを放すという動作の全てをタッピング時間内に行うと、両方のキーの「タッピング」機能が出力されます。 +モッドタップキーを押し、他のキーをタップ(押して放す)して、モッドタップキーを放すという動作の全てをタッピング時間内に行うと、両方のキーのタッピング機能が出力されます。 例えば: @@ -92,7 +92,7 @@ bool get_permissive_hold(uint16_t keycode, keyrecord_t *record) { #define IGNORE_MOD_TAP_INTERRUPT ``` -許容ホールドと同様に、これは高速なタイピストのためのファームウェアの処理方法を変更します。モッドタップキーを押し、他のキーを押し、モッドタップキーを放し、通常のキーを放すと、通常は両方のキーの「タッピング」機能が出力されます。これはローリングコンボキーには望ましくないかもしれません。 +許容ホールドと同様に、これは高速なタイピストのためのファームウェアの処理方法を変更します。モッドタップキーを押し、他のキーを押し、モッドタップキーを放し、通常のキーを放すと、通常は両方のキーのタッピング機能が出力されます。これはローリングコンボキーには望ましくないかもしれません。 `モッドタップ割り込みの無視`を設定するには、両方のキーを `TAPPING_TERM` の間ホールドすると、(その修飾キーの)ホールド機能を実行する必要があります。 @@ -137,21 +137,22 @@ bool get_ignore_mod_tap_interrupt(uint16_t keycode, keyrecord_t *record) { #define TAPPING_FORCE_HOLD ``` -タップの後でユーザがキーをホールドすると、これは修飾キーをホールドするかわりにタップされたキーを繰り返します。これにより、タップされたキーのために自動繰り返しを使うことができます。 +タップの後でユーザがキーをホールドすると、ホールド機能がアクティブになるのではなく、デフォルトでタッピング機能が繰り返されます。これにより、デュアルロールキーのタッピング機能を自動繰り返しする機能を維持することができます。 +`TAPPING_FORCE_HOLD` は、デュアルロールキーをタップした後ホールドした場合、ユーザがホールド機能をアクティブにする機能を削除します。 例: -- SFT_T(KC_A) を押す -- SFT_T(KC_A) を放す -- SFT_T(KC_A) を押す -- タッピング時間より長く待ちます... -- SFT_T(KC_A) を放す +- `SFT_T(KC_A)` を押す +- `SFT_T(KC_A)` を放す +- `SFT_T(KC_A)` を押す +- タッピング時間が終了するまで待ちます... +- `SFT_T(KC_A)` を放す デフォルトの設定では、最初に放したときに `a` が送信され、2回目の押下で `a` が送信され、コンピュータに自動リピート機能を作動させることができます。 `TAPPING_FORCE_HOLD` を使うと、2回目の押下は Shift として解釈され、それをタップして使った後ですぐに修飾キーとして使うことができます。 -!> `TAPPING_FORCE_HOLD` はタッピングトグル(`TT` レイヤーキーコード、ワンショットタッピングトグルなど)を使うものをすべて破壊します。 +!> `TAPPING_FORCE_HOLD` はタッピングトグル(`TT` レイヤーキーコード、ワンショットタップトグルなど)を使うものをすべて破壊します。 この機能をより細かく制御するために、以下を `config.h` に追加することができます: diff --git a/docs/other_vscode.md b/docs/other_vscode.md index d132afaab6e7..823f8b498210 100644 --- a/docs/other_vscode.md +++ b/docs/other_vscode.md @@ -81,7 +81,7 @@ Now, we will set up the MSYS2 window to show up in VSCode as the integrated term ?> If you installed MSYS2 to a different folder, then you'll need to change the path for `terminal.integrated.shell.windows` to the correct path for your system. -4. Hit Ctrl-`\`` (Grave) to bring up the terminal or go to View > Terminal (command `workbench.action.terminal.toggleTerminal`). A new terminal will be opened if there isn‘t one already. +4. Hit Ctrl-` (Grave) to bring up the terminal or go to View > Terminal (command `workbench.action.terminal.toggleTerminal`). A new terminal will be opened if there isn‘t one already. This should start the terminal in the workspace's folder (so the `qmk_firmware` folder), and then you can compile your keyboard. diff --git a/keyboards/aeboards/ext65/rev2/bootloader_defs.h b/keyboards/aeboards/ext65/rev2/bootloader_defs.h deleted file mode 100644 index 02c48c4e6dcb..000000000000 --- a/keyboards/aeboards/ext65/rev2/bootloader_defs.h +++ /dev/null @@ -1,7 +0,0 @@ -/* Address for jumping to bootloader on STM32 chips. */ -/* It is chip dependent, the correct number can be looked up here (page 175): - * http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf - * This also requires a patch to chibios: - * /tmk_core/tool/chibios/ch-bootloader-jump.patch - */ -#define STM32_BOOTLOADER_ADDRESS 0x1FFFC800 diff --git a/keyboards/ai03/vega/bootloader_defs.h b/keyboards/ai03/vega/bootloader_defs.h deleted file mode 100644 index 02c48c4e6dcb..000000000000 --- a/keyboards/ai03/vega/bootloader_defs.h +++ /dev/null @@ -1,7 +0,0 @@ -/* Address for jumping to bootloader on STM32 chips. */ -/* It is chip dependent, the correct number can be looked up here (page 175): - * http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf - * This also requires a patch to chibios: - * /tmk_core/tool/chibios/ch-bootloader-jump.patch - */ -#define STM32_BOOTLOADER_ADDRESS 0x1FFFC800 diff --git a/keyboards/ai03/voyager60_alps/config.h b/keyboards/ai03/voyager60_alps/config.h new file mode 100644 index 000000000000..98f37e8cfed4 --- /dev/null +++ b/keyboards/ai03/voyager60_alps/config.h @@ -0,0 +1,98 @@ +/* +Copyright 2020 +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 . +*/ + +#pragma once + +#include "config_common.h" + +#define VENDOR_ID 0xA103 +#define PRODUCT_ID 0x060A +#define DEVICE_VER 0x0001 +#define MANUFACTURER ai03 +#define PRODUCT Voyager60-Alps + +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +#define MATRIX_ROW_PINS { B1, B2, B3, F0, F1 } +#define MATRIX_COL_PINS { F4, F7, F5, F6, C7, C6, B6, B5, B4, D7, D6, D4, D5, D3} +#define UNUSED_PINS + +#define DIODE_DIRECTION COL2ROW + +/* + * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN. + */ +#define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6 + +// define BACKLIGHT_PIN B7 +// define BACKLIGHT_BREATHING +// #define BACKLIGHT_LEVELS 3 + +#define RGB_DI_PIN D2 +#ifdef RGB_DI_PIN + #define RGBLED_NUM 14 + #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 +#endif + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ + +/* 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 + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +// #define NO_DEBUG + +/* disable print */ +// #define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +/* Bootmagic Lite key configuration */ +// #define BOOTMAGIC_LITE_ROW 0 +// #define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/ai03/voyager60_alps/info.json b/keyboards/ai03/voyager60_alps/info.json new file mode 100644 index 000000000000..96d5fcfbf2a4 --- /dev/null +++ b/keyboards/ai03/voyager60_alps/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "Voyager60-Alps", + "url": "https://github.com/ai03-2725/Voyager60/tree/alps", + "maintainer": "ai03", + "width": 15, + "height": 5, + "layouts": { + "LAYOUT": { + "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":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":2.75}, {"x":6.5, "y":4, "w":1.25}, {"x":7.75, "y":4, "w":2.25}, {"x":10, "y":4, "w":1.25}, {"x":11.25, "y":4, "w":1.25}, {"x":12.5, "y":4, "w":1.25}, {"x":13.75, "y":4, "w":1.25}] + } + } +} \ No newline at end of file diff --git a/keyboards/ai03/voyager60_alps/keymaps/default/keymap.c b/keyboards/ai03/voyager60_alps/keymaps/default/keymap.c new file mode 100644 index 000000000000..171f0c7f07e5 --- /dev/null +++ b/keyboards/ai03/voyager60_alps/keymaps/default/keymap.c @@ -0,0 +1,32 @@ +/* +Copyright 2020 +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 . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( /* Base */ + 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_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_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, MO(1), + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_SPC, KC_NO, MO(1), KC_RALT, KC_RCTL + ), + [1] = LAYOUT( /* Fn */ + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/ai03/voyager60_alps/keymaps/default/readme.md b/keyboards/ai03/voyager60_alps/keymaps/default/readme.md new file mode 100644 index 000000000000..1a78792616f3 --- /dev/null +++ b/keyboards/ai03/voyager60_alps/keymaps/default/readme.md @@ -0,0 +1 @@ +# Default keymap diff --git a/keyboards/ai03/voyager60_alps/keymaps/via/keymap.c b/keyboards/ai03/voyager60_alps/keymaps/via/keymap.c new file mode 100644 index 000000000000..1a5e74c42e76 --- /dev/null +++ b/keyboards/ai03/voyager60_alps/keymaps/via/keymap.c @@ -0,0 +1,47 @@ +/* +Copyright 2020 +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 . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( /* Base */ + 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_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_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, _______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_SPC, _______, KC_RGUI, KC_RALT, KC_RCTL + ), + [1] = LAYOUT( /* FN */ + RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT( /* Blank. For VIA compatibility */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT( /* Blank. For VIA compatibility */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/ai03/voyager60_alps/keymaps/via/readme.md b/keyboards/ai03/voyager60_alps/keymaps/via/readme.md new file mode 100644 index 000000000000..cb1709f705cd --- /dev/null +++ b/keyboards/ai03/voyager60_alps/keymaps/via/readme.md @@ -0,0 +1 @@ +# VIA Keymap diff --git a/keyboards/ai03/voyager60_alps/keymaps/via/rules.mk b/keyboards/ai03/voyager60_alps/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/ai03/voyager60_alps/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/ai03/voyager60_alps/readme.md b/keyboards/ai03/voyager60_alps/readme.md new file mode 100644 index 000000000000..f67b2f19d211 --- /dev/null +++ b/keyboards/ai03/voyager60_alps/readme.md @@ -0,0 +1,25 @@ +# Voyager60-Alps +A fully featured Alps-specific 60% PCB + +![Render](https://raw.githubusercontent.com/ai03-2725/Voyager60/alps/Renders/Front.png) + +### Features +* RGB underglow +* Decent amount of layout compatibility - [View supported layouts](http://www.keyboard-layout-editor.com/#/gists/c867bdba7e5ae8be282f77a242bacf66) +* Slot cutout for maximum flexibility and typing comfort +* Over-current and static discharge protection +* Fully open-source + +### Additional Information + +* Keyboard Maintainer: [ai03](https://github.com/ai03-2725) +* Hardware Supported: Voyager60-Alps PCB +* Hardware Availability: [Gerbers](https://github.com/ai03-2725/Voyager60/tree/alps) + +### Building the Firmware + +Make example for this keyboard (after setting up your build environment): + + make ai03/voyager60_alps: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). diff --git a/keyboards/ai03/voyager60_alps/rules.mk b/keyboards/ai03/voyager60_alps/rules.mk new file mode 100644 index 000000000000..f49426d5137f --- /dev/null +++ b/keyboards/ai03/voyager60_alps/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/ai03/voyager60_alps/voyager60_alps.c b/keyboards/ai03/voyager60_alps/voyager60_alps.c new file mode 100644 index 000000000000..251198c4457b --- /dev/null +++ b/keyboards/ai03/voyager60_alps/voyager60_alps.c @@ -0,0 +1,15 @@ +/* +Copyright 2020 +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 . +*/ + +#include "voyager60_alps.h" diff --git a/keyboards/ai03/voyager60_alps/voyager60_alps.h b/keyboards/ai03/voyager60_alps/voyager60_alps.h new file mode 100644 index 000000000000..fa178316e494 --- /dev/null +++ b/keyboards/ai03/voyager60_alps/voyager60_alps.h @@ -0,0 +1,32 @@ +/* +Copyright 2020 +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 . +*/ + +#pragma once + +#include "quantum.h" + +#define LAYOUT( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K212, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K213, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, \ + K400, K401, K402, K404, K406, K408, K410, K411, K412, K413 \ +) \ +{ \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313 }, \ + { K400, K401, K402, KC_NO, K404, KC_NO, K406, KC_NO, K408, KC_NO, K410, K411, K412, K413 } \ +} diff --git a/keyboards/cannonkeys/an_c/bootloader_defs.h b/keyboards/cannonkeys/an_c/bootloader_defs.h deleted file mode 100644 index 02c48c4e6dcb..000000000000 --- a/keyboards/cannonkeys/an_c/bootloader_defs.h +++ /dev/null @@ -1,7 +0,0 @@ -/* Address for jumping to bootloader on STM32 chips. */ -/* It is chip dependent, the correct number can be looked up here (page 175): - * http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf - * This also requires a patch to chibios: - * /tmk_core/tool/chibios/ch-bootloader-jump.patch - */ -#define STM32_BOOTLOADER_ADDRESS 0x1FFFC800 diff --git a/keyboards/cannonkeys/chimera65/bootloader_defs.h b/keyboards/cannonkeys/chimera65/bootloader_defs.h deleted file mode 100644 index 02c48c4e6dcb..000000000000 --- a/keyboards/cannonkeys/chimera65/bootloader_defs.h +++ /dev/null @@ -1,7 +0,0 @@ -/* Address for jumping to bootloader on STM32 chips. */ -/* It is chip dependent, the correct number can be looked up here (page 175): - * http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf - * This also requires a patch to chibios: - * /tmk_core/tool/chibios/ch-bootloader-jump.patch - */ -#define STM32_BOOTLOADER_ADDRESS 0x1FFFC800 diff --git a/keyboards/cannonkeys/instant60/bootloader_defs.h b/keyboards/cannonkeys/instant60/bootloader_defs.h deleted file mode 100644 index 02c48c4e6dcb..000000000000 --- a/keyboards/cannonkeys/instant60/bootloader_defs.h +++ /dev/null @@ -1,7 +0,0 @@ -/* Address for jumping to bootloader on STM32 chips. */ -/* It is chip dependent, the correct number can be looked up here (page 175): - * http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf - * This also requires a patch to chibios: - * /tmk_core/tool/chibios/ch-bootloader-jump.patch - */ -#define STM32_BOOTLOADER_ADDRESS 0x1FFFC800 diff --git a/keyboards/cannonkeys/iron165/bootloader_defs.h b/keyboards/cannonkeys/iron165/bootloader_defs.h deleted file mode 100644 index 02c48c4e6dcb..000000000000 --- a/keyboards/cannonkeys/iron165/bootloader_defs.h +++ /dev/null @@ -1,7 +0,0 @@ -/* Address for jumping to bootloader on STM32 chips. */ -/* It is chip dependent, the correct number can be looked up here (page 175): - * http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf - * This also requires a patch to chibios: - * /tmk_core/tool/chibios/ch-bootloader-jump.patch - */ -#define STM32_BOOTLOADER_ADDRESS 0x1FFFC800 diff --git a/keyboards/cannonkeys/ortho48/bootloader_defs.h b/keyboards/cannonkeys/ortho48/bootloader_defs.h deleted file mode 100644 index 6b8fa9f727c9..000000000000 --- a/keyboards/cannonkeys/ortho48/bootloader_defs.h +++ /dev/null @@ -1,10 +0,0 @@ -/* Address for jumping to bootloader on STM32 chips. */ -/* It is chip dependent, the correct number can be looked up here (page 175): - * http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf - * This also requires a patch to chibios: - * /tmk_core/tool/chibios/ch-bootloader-jump.patch - */ - -// STM32F103* does NOT have an USB bootloader in ROM (only serial), -// so setting anything here does not make much sense -#define STM32_BOOTLOADER_ADDRESS 0x80000000 diff --git a/keyboards/cannonkeys/ortho48/rules.mk b/keyboards/cannonkeys/ortho48/rules.mk index 5e18d91ca488..6e468c49a3b7 100644 --- a/keyboards/cannonkeys/ortho48/rules.mk +++ b/keyboards/cannonkeys/ortho48/rules.mk @@ -1,12 +1,8 @@ # MCU name MCU = STM32F103 -# GENERIC STM32F103C8T6 board - stm32duino bootloader -MCU_LDSCRIPT = STM32F103x8_stm32duino_bootloader -BOARD = STM32_F103_STM32DUINO - -DFU_ARGS = -d 1eaf:0003 -a2 -R -DFU_SUFFIX_ARGS = -v 1eaf -p 0003 +# Bootloader selection +BOOTLOADER = stm32duino # project specific files VPATH += keyboards/cannonkeys/bluepill diff --git a/keyboards/cannonkeys/ortho60/bootloader_defs.h b/keyboards/cannonkeys/ortho60/bootloader_defs.h deleted file mode 100644 index 6b8fa9f727c9..000000000000 --- a/keyboards/cannonkeys/ortho60/bootloader_defs.h +++ /dev/null @@ -1,10 +0,0 @@ -/* Address for jumping to bootloader on STM32 chips. */ -/* It is chip dependent, the correct number can be looked up here (page 175): - * http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf - * This also requires a patch to chibios: - * /tmk_core/tool/chibios/ch-bootloader-jump.patch - */ - -// STM32F103* does NOT have an USB bootloader in ROM (only serial), -// so setting anything here does not make much sense -#define STM32_BOOTLOADER_ADDRESS 0x80000000 diff --git a/keyboards/cannonkeys/ortho60/rules.mk b/keyboards/cannonkeys/ortho60/rules.mk index 80b31a12f4d4..ea9bd6b2df70 100644 --- a/keyboards/cannonkeys/ortho60/rules.mk +++ b/keyboards/cannonkeys/ortho60/rules.mk @@ -1,12 +1,8 @@ # MCU name MCU = STM32F103 -# GENERIC STM32F103C8T6 board - stm32duino bootloader -MCU_LDSCRIPT = STM32F103x8_stm32duino_bootloader -BOARD = STM32_F103_STM32DUINO - -DFU_ARGS = -d 1eaf:0003 -a2 -R -DFU_SUFFIX_ARGS = -v 1eaf -p 0003 +# Bootloader selection +BOOTLOADER = stm32duino # project specific files VPATH += keyboards/cannonkeys/bluepill diff --git a/keyboards/cannonkeys/ortho75/bootloader_defs.h b/keyboards/cannonkeys/ortho75/bootloader_defs.h deleted file mode 100644 index 6b8fa9f727c9..000000000000 --- a/keyboards/cannonkeys/ortho75/bootloader_defs.h +++ /dev/null @@ -1,10 +0,0 @@ -/* Address for jumping to bootloader on STM32 chips. */ -/* It is chip dependent, the correct number can be looked up here (page 175): - * http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf - * This also requires a patch to chibios: - * /tmk_core/tool/chibios/ch-bootloader-jump.patch - */ - -// STM32F103* does NOT have an USB bootloader in ROM (only serial), -// so setting anything here does not make much sense -#define STM32_BOOTLOADER_ADDRESS 0x80000000 diff --git a/keyboards/cannonkeys/ortho75/rules.mk b/keyboards/cannonkeys/ortho75/rules.mk index ae196fd85019..e132ccaf1891 100644 --- a/keyboards/cannonkeys/ortho75/rules.mk +++ b/keyboards/cannonkeys/ortho75/rules.mk @@ -1,12 +1,8 @@ # MCU name MCU = STM32F103 -# GENERIC STM32F103C8T6 board - stm32duino bootloader -MCU_LDSCRIPT = STM32F103x8_stm32duino_bootloader -BOARD = STM32_F103_STM32DUINO - -DFU_ARGS = -d 1eaf:0003 -a2 -R -DFU_SUFFIX_ARGS = -v 1eaf -p 0003 +# Bootloader selection +BOOTLOADER = stm32duino # project specific files VPATH += keyboards/cannonkeys/bluepill diff --git a/keyboards/cannonkeys/practice60/bootloader_defs.h b/keyboards/cannonkeys/practice60/bootloader_defs.h deleted file mode 100644 index 6b8fa9f727c9..000000000000 --- a/keyboards/cannonkeys/practice60/bootloader_defs.h +++ /dev/null @@ -1,10 +0,0 @@ -/* Address for jumping to bootloader on STM32 chips. */ -/* It is chip dependent, the correct number can be looked up here (page 175): - * http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf - * This also requires a patch to chibios: - * /tmk_core/tool/chibios/ch-bootloader-jump.patch - */ - -// STM32F103* does NOT have an USB bootloader in ROM (only serial), -// so setting anything here does not make much sense -#define STM32_BOOTLOADER_ADDRESS 0x80000000 diff --git a/keyboards/cannonkeys/practice60/rules.mk b/keyboards/cannonkeys/practice60/rules.mk index 3713b6078df7..3f9ca1448f7e 100644 --- a/keyboards/cannonkeys/practice60/rules.mk +++ b/keyboards/cannonkeys/practice60/rules.mk @@ -1,12 +1,8 @@ # MCU name MCU = STM32F103 -# GENERIC STM32F103C8T6 board - stm32duino bootloader -MCU_LDSCRIPT = STM32F103x8_stm32duino_bootloader -BOARD = STM32_F103_STM32DUINO - -DFU_ARGS = -d 1eaf:0003 -a2 -R -DFU_SUFFIX_ARGS = -v 1eaf -p 0003 +# Bootloader selection +BOOTLOADER = stm32duino # project specific files VPATH += keyboards/cannonkeys/bluepill diff --git a/keyboards/cannonkeys/practice65/bootloader_defs.h b/keyboards/cannonkeys/practice65/bootloader_defs.h deleted file mode 100644 index 6b8fa9f727c9..000000000000 --- a/keyboards/cannonkeys/practice65/bootloader_defs.h +++ /dev/null @@ -1,10 +0,0 @@ -/* Address for jumping to bootloader on STM32 chips. */ -/* It is chip dependent, the correct number can be looked up here (page 175): - * http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf - * This also requires a patch to chibios: - * /tmk_core/tool/chibios/ch-bootloader-jump.patch - */ - -// STM32F103* does NOT have an USB bootloader in ROM (only serial), -// so setting anything here does not make much sense -#define STM32_BOOTLOADER_ADDRESS 0x80000000 diff --git a/keyboards/cannonkeys/practice65/rules.mk b/keyboards/cannonkeys/practice65/rules.mk index 5fd4892dc591..344844b0ef11 100644 --- a/keyboards/cannonkeys/practice65/rules.mk +++ b/keyboards/cannonkeys/practice65/rules.mk @@ -1,12 +1,8 @@ # MCU name MCU = STM32F103 -# GENERIC STM32F103C8T6 board - stm32duino bootloader -MCU_LDSCRIPT = STM32F103x8_stm32duino_bootloader -BOARD = STM32_F103_STM32DUINO - -DFU_ARGS = -d 1eaf:0003 -a2 -R -DFU_SUFFIX_ARGS = -v 1eaf -p 0003 +# Bootloader selection +BOOTLOADER = stm32duino # project specific files VPATH += keyboards/cannonkeys/bluepill diff --git a/keyboards/cannonkeys/savage65/bootloader_defs.h b/keyboards/cannonkeys/savage65/bootloader_defs.h deleted file mode 100644 index 02c48c4e6dcb..000000000000 --- a/keyboards/cannonkeys/savage65/bootloader_defs.h +++ /dev/null @@ -1,7 +0,0 @@ -/* Address for jumping to bootloader on STM32 chips. */ -/* It is chip dependent, the correct number can be looked up here (page 175): - * http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf - * This also requires a patch to chibios: - * /tmk_core/tool/chibios/ch-bootloader-jump.patch - */ -#define STM32_BOOTLOADER_ADDRESS 0x1FFFC800 diff --git a/keyboards/cannonkeys/tmov2/bootloader_defs.h b/keyboards/cannonkeys/tmov2/bootloader_defs.h deleted file mode 100644 index 02c48c4e6dcb..000000000000 --- a/keyboards/cannonkeys/tmov2/bootloader_defs.h +++ /dev/null @@ -1,7 +0,0 @@ -/* Address for jumping to bootloader on STM32 chips. */ -/* It is chip dependent, the correct number can be looked up here (page 175): - * http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf - * This also requires a patch to chibios: - * /tmk_core/tool/chibios/ch-bootloader-jump.patch - */ -#define STM32_BOOTLOADER_ADDRESS 0x1FFFC800 diff --git a/keyboards/converter/siemens_tastatur/bootloader_defs.h b/keyboards/converter/siemens_tastatur/bootloader_defs.h deleted file mode 100644 index 6b8fa9f727c9..000000000000 --- a/keyboards/converter/siemens_tastatur/bootloader_defs.h +++ /dev/null @@ -1,10 +0,0 @@ -/* Address for jumping to bootloader on STM32 chips. */ -/* It is chip dependent, the correct number can be looked up here (page 175): - * http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf - * This also requires a patch to chibios: - * /tmk_core/tool/chibios/ch-bootloader-jump.patch - */ - -// STM32F103* does NOT have an USB bootloader in ROM (only serial), -// so setting anything here does not make much sense -#define STM32_BOOTLOADER_ADDRESS 0x80000000 diff --git a/keyboards/converter/siemens_tastatur/rules.mk b/keyboards/converter/siemens_tastatur/rules.mk index 03e6b0f49d4a..451d07e676b6 100644 --- a/keyboards/converter/siemens_tastatur/rules.mk +++ b/keyboards/converter/siemens_tastatur/rules.mk @@ -1,12 +1,8 @@ # MCU name MCU = STM32F103 -# GENERIC STM32F103C8T6 board - stm32duino bootloader -MCU_LDSCRIPT = STM32F103x8_stm32duino_bootloader -BOARD = STM32_F103_STM32DUINO - -DFU_ARGS = -d 1eaf:0003 -a2 -R -DFU_SUFFIX_ARGS = -v 1eaf -p 0003 +# Bootloader selection +BOOTLOADER = stm32duino SRC = matrix.c diff --git a/keyboards/ergodox_ez/config.h b/keyboards/ergodox_ez/config.h index eb0f2066da5b..bc63f6108fcc 100644 --- a/keyboards/ergodox_ez/config.h +++ b/keyboards/ergodox_ez/config.h @@ -1,6 +1,8 @@ /* Copyright 2012 Jun Wako Copyright 2013 Oleg Kostyuk +Copyright 2015 ZSA Technology Labs Inc (@zsa) +Copyright 2020 Christopher Courtney (@drashna) 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 @@ -21,10 +23,10 @@ along with this program. If not, see . #include "config_common.h" /* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x1307 +#define VENDOR_ID 0x3297 #define DEVICE_VER 0x0001 -#define MANUFACTURER ZSA Technology Labs Inc +#define MANUFACTURER ZSA Technology Labs +#define PRODUCT_ID 0x4974 #define PRODUCT ErgoDox EZ /* key matrix size */ @@ -115,7 +117,6 @@ along with this program. If not, see . * manufacturer specs. */ -#define USB_MAX_POWER_CONSUMPTION 500 // RGB backlight #define DRIVER_ADDR_1 0b1110100 @@ -154,6 +155,6 @@ along with this program. If not, see . //#define NO_ACTION_LAYER //#define NO_ACTION_TAPPING //#define NO_ACTION_ONESHOT -//#define NO_ACTION_MACRO -//#define NO_ACTION_FUNCTION +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION //#define DEBUG_MATRIX_SCAN_RATE diff --git a/keyboards/ergodox_ez/ergodox_ez.c b/keyboards/ergodox_ez/ergodox_ez.c index 6c0b74ec4629..e6f48c49fb32 100644 --- a/keyboards/ergodox_ez/ergodox_ez.c +++ b/keyboards/ergodox_ez/ergodox_ez.c @@ -1,3 +1,23 @@ +/* +Copyright 2012 Jun Wako +Copyright 2013 Oleg Kostyuk +Copyright 2015 ZSA Technology Labs Inc (@zsa) +Copyright 2020 Christopher Courtney (@drashna) + +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 . +*/ + #include "ergodox_ez.h" extern inline void ergodox_board_led_on(void); diff --git a/keyboards/ergodox_ez/ergodox_ez.h b/keyboards/ergodox_ez/ergodox_ez.h index a8b02a96bdfd..7bb27171473c 100644 --- a/keyboards/ergodox_ez/ergodox_ez.h +++ b/keyboards/ergodox_ez/ergodox_ez.h @@ -1,3 +1,23 @@ +/* +Copyright 2012 Jun Wako +Copyright 2013 Oleg Kostyuk +Copyright 2015 ZSA Technology Labs Inc (@zsa) +Copyright 2020 Christopher Courtney (@drashna) + +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 . +*/ + #pragma once #include "quantum.h" @@ -5,6 +25,12 @@ #include #include "i2c_master.h" +#if defined(KEYBOARD_ergodox_ez_glow) +# include "glow.h" +#elif defined(KEYBOARD_ergodox_ez_shine) +# include "shine.h" +#endif + // I2C aliases and register addresses (see "mcp23018.md") #define I2C_ADDR 0b0100000 #define I2C_ADDR_WRITE ( (I2C_ADDR<<1) | I2C_WRITE ) diff --git a/keyboards/ergodox_ez/glow/config.h b/keyboards/ergodox_ez/glow/config.h new file mode 100644 index 000000000000..674b7bffb005 --- /dev/null +++ b/keyboards/ergodox_ez/glow/config.h @@ -0,0 +1,26 @@ +/* +Copyright 2012 Jun Wako +Copyright 2013 Oleg Kostyuk +Copyright 2015 ZSA Technology Labs Inc (@zsa) +Copyright 2020 Christopher Courtney (@drashna) + +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 . +*/ + +#pragma once + +#undef PRODUCT_ID +#define PRODUCT_ID 0x4976 +#undef PRODUCT +#define PRODUCT ErgoDox EZ Glow diff --git a/keyboards/whitefox/led.c b/keyboards/ergodox_ez/glow/glow.h similarity index 76% rename from keyboards/whitefox/led.c rename to keyboards/ergodox_ez/glow/glow.h index aed66c7c03f5..da7a6073efcc 100644 --- a/keyboards/whitefox/led.c +++ b/keyboards/ergodox_ez/glow/glow.h @@ -1,5 +1,8 @@ /* Copyright 2012 Jun Wako +Copyright 2013 Oleg Kostyuk +Copyright 2015 ZSA Technology Labs Inc (@zsa) +Copyright 2020 Christopher Courtney (@drashna) 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 @@ -15,10 +18,6 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#include "hal.h" +#pragma once -#include "led.h" - - -void led_set(uint8_t usb_led) { -} +#include "ergodox_ez.h" diff --git a/keyboards/ergodox_ez/glow/rules.mk b/keyboards/ergodox_ez/glow/rules.mk new file mode 100644 index 000000000000..aad92997d0fa --- /dev/null +++ b/keyboards/ergodox_ez/glow/rules.mk @@ -0,0 +1 @@ +RGB_MATRIX_ENABLE = yes diff --git a/keyboards/ergodox_ez/led_i2c.c b/keyboards/ergodox_ez/led_i2c.c index f5553a8b619c..fe40ab797e71 100644 --- a/keyboards/ergodox_ez/led_i2c.c +++ b/keyboards/ergodox_ez/led_i2c.c @@ -1,31 +1,27 @@ /* - * light weight WS2812 lib V2.0b - * - * Controls WS2811/WS2812/WS2812B RGB-LEDs - * Author: Tim (cpldcpu@gmail.com) - * - * Jan 18th, 2014 v2.0b Initial Version - * Nov 29th, 2015 v2.3 Added SK6812RGBW support - * - * 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 . - */ +Copyright 2012 Jun Wako +Copyright 2013 Oleg Kostyuk +Copyright 2015 ZSA Technology Labs Inc (@zsa) +Copyright 2020 Christopher Courtney (@drashna) + +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 . +*/ + #ifdef RGBLIGHT_ENABLE # include "ergodox_ez.h" -extern rgblight_config_t rgblight_config; - void rgblight_call_driver(LED_TYPE *led, uint8_t led_num) { i2c_init(); i2c_start(0x84, ERGODOX_EZ_I2C_TIMEOUT); diff --git a/keyboards/ergodox_ez/matrix.c b/keyboards/ergodox_ez/matrix.c index cfa76c1c39e1..c091b6eb9795 100644 --- a/keyboards/ergodox_ez/matrix.c +++ b/keyboards/ergodox_ez/matrix.c @@ -1,7 +1,8 @@ /* - - +Copyright 2012 Jun Wako Copyright 2013 Oleg Kostyuk +Copyright 2015 ZSA Technology Labs Inc (@zsa) +Copyright 2020 Christopher Courtney (@drashna) 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 @@ -17,6 +18,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ + /* * scan matrix */ @@ -235,3 +237,18 @@ static void select_row(uint8_t row) { } } } + +// DO NOT REMOVE +// Needed for proper wake/sleep +void matrix_power_up(void) { + mcp23018_status = init_mcp23018(); + + unselect_rows(); + init_cols(); + + // initialize matrix state: all keys off + for (uint8_t i=0; i < MATRIX_ROWS; i++) { + matrix[i] = 0; + } + +} diff --git a/keyboards/ergodox_ez/post_config.h b/keyboards/ergodox_ez/post_config.h index 526cc8c41784..0d4fe5c6832b 100644 --- a/keyboards/ergodox_ez/post_config.h +++ b/keyboards/ergodox_ez/post_config.h @@ -1,3 +1,23 @@ +/* +Copyright 2012 Jun Wako +Copyright 2013 Oleg Kostyuk +Copyright 2015 ZSA Technology Labs Inc (@zsa) +Copyright 2020 Christopher Courtney (@drashna) + +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 . +*/ + #pragma once #if !defined(ERGODOX_LED_15) && !defined(ERGODOX_LED_30) diff --git a/keyboards/ergodox_ez/readme.md b/keyboards/ergodox_ez/readme.md index 796e96ce531f..59a2840fd049 100644 --- a/keyboards/ergodox_ez/readme.md +++ b/keyboards/ergodox_ez/readme.md @@ -11,6 +11,11 @@ The ErgoDox EZ is a mass produced version of the original ErgoDox keyboard, with Make example for this keyboard (after setting up your build environment): make ergodox_ez:default:flash + +For the ErgoDox EZ Shine, and Glow, use one of the following: + + make ergodox_ez/shine:default:flash + make ergodox_ez/glow: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). diff --git a/keyboards/ergodox_ez/rules.mk b/keyboards/ergodox_ez/rules.mk index 9ad4eaa186e9..b6311aca3e66 100644 --- a/keyboards/ergodox_ez/rules.mk +++ b/keyboards/ergodox_ez/rules.mk @@ -30,7 +30,6 @@ UNICODE_ENABLE = yes # Unicode SWAP_HANDS_ENABLE= yes # Allow swapping hands of keyboard SLEEP_LED_ENABLE = no API_SYSEX_ENABLE = no -RGBLIGHT_ENABLE = yes RGB_MATRIX_ENABLE = no # enable later DEBOUNCE_TYPE = eager_pr diff --git a/keyboards/ergodox_ez/shine/config.h b/keyboards/ergodox_ez/shine/config.h new file mode 100644 index 000000000000..cf4f59f3b87c --- /dev/null +++ b/keyboards/ergodox_ez/shine/config.h @@ -0,0 +1,26 @@ +/* +Copyright 2012 Jun Wako +Copyright 2013 Oleg Kostyuk +Copyright 2015 ZSA Technology Labs Inc (@zsa) +Copyright 2020 Christopher Courtney (@drashna) + +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 . +*/ + +#pragma once + +#undef PRODUCT_ID +#define PRODUCT_ID 0x4975 +#undef PRODUCT +#define PRODUCT ErgoDox EZ Shine diff --git a/keyboards/ergodox_ez/shine/rules.mk b/keyboards/ergodox_ez/shine/rules.mk new file mode 100644 index 000000000000..1e3cebb14515 --- /dev/null +++ b/keyboards/ergodox_ez/shine/rules.mk @@ -0,0 +1 @@ +RGBLIGHT_ENABLE = yes diff --git a/keyboards/ergodox_ez/shine/shine.h b/keyboards/ergodox_ez/shine/shine.h new file mode 100644 index 000000000000..da7a6073efcc --- /dev/null +++ b/keyboards/ergodox_ez/shine/shine.h @@ -0,0 +1,23 @@ +/* +Copyright 2012 Jun Wako +Copyright 2013 Oleg Kostyuk +Copyright 2015 ZSA Technology Labs Inc (@zsa) +Copyright 2020 Christopher Courtney (@drashna) + +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 . +*/ + +#pragma once + +#include "ergodox_ez.h" diff --git a/keyboards/eve/meteor/config.h b/keyboards/eve/meteor/config.h index 2100c3a4580a..1e8c6ca052b7 100644 --- a/keyboards/eve/meteor/config.h +++ b/keyboards/eve/meteor/config.h @@ -19,8 +19,8 @@ along with this program. If not, see . #include "config_common.h" -#define VENDOR_ID 0x20A0 -#define PRODUCT_ID 0x422D +#define VENDOR_ID 0x4556 // "EV" +#define PRODUCT_ID 0x4D54 // "MT" #define DEVICE_VER 0x0200 #define MANUFACTURER EVE #define PRODUCT Meteor diff --git a/keyboards/eve/meteor/info.json b/keyboards/eve/meteor/info.json index e75b1b02c2c0..15ad8a1e1310 100644 --- a/keyboards/eve/meteor/info.json +++ b/keyboards/eve/meteor/info.json @@ -13,4 +13,4 @@ "layout": [{"x":0, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6.5, "y":0}, {"x":7.5, "y":0}, {"x":8.5, "y":0}, {"x":9.5, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":0, "y":1.5}, {"x":1, "y":1.5}, {"x":2, "y":1.5}, {"x":3, "y":1.5}, {"x":4, "y":1.5}, {"x":5, "y":1.5}, {"x":6, "y":1.5}, {"x":7, "y":1.5}, {"x":8, "y":1.5}, {"x":9, "y":1.5}, {"x":10, "y":1.5}, {"x":11, "y":1.5}, {"x":12, "y":1.5}, {"x":13, "y":1.5, "w":2}, {"x":0, "y":2.5, "w":1.5}, {"x":1.5, "y":2.5}, {"x":2.5, "y":2.5}, {"x":3.5, "y":2.5}, {"x":4.5, "y":2.5}, {"x":5.5, "y":2.5}, {"x":6.5, "y":2.5}, {"x":7.5, "y":2.5}, {"x":8.5, "y":2.5}, {"x":9.5, "y":2.5}, {"x":10.5, "y":2.5}, {"x":11.5, "y":2.5}, {"x":12.5, "y":2.5}, {"x":13.5, "y":2.5, "w":1.5}, {"x":0, "y":3.5, "w":1.75}, {"x":1.75, "y":3.5}, {"x":2.75, "y":3.5}, {"x":3.75, "y":3.5}, {"x":4.75, "y":3.5}, {"x":5.75, "y":3.5}, {"x":6.75, "y":3.5}, {"x":7.75, "y":3.5}, {"x":8.75, "y":3.5}, {"x":9.75, "y":3.5}, {"x":10.75, "y":3.5}, {"x":11.75, "y":3.5}, {"x":12.75, "y":3.5, "w":2.25}, {"x":0, "y":4.5, "w":2.25}, {"x":2.25, "y":4.5}, {"x":3.25, "y":4.5}, {"x":4.25, "y":4.5}, {"x":5.25, "y":4.5}, {"x":6.25, "y":4.5}, {"x":7.25, "y":4.5}, {"x":8.25, "y":4.5}, {"x":9.25, "y":4.5}, {"x":10.25, "y":4.5}, {"x":11.25, "y":4.5, "w":1.75}, {"x":13, "y":4.5}, {"x":14, "y":4.5}, {"x":0, "y":5.5, "w":1.25}, {"x":1.25, "y":5.5, "w":1.25}, {"x":2.5, "y":5.5, "w":1.25}, {"x":3.75, "y":5.5, "w":6.25}, {"x":10, "y":5.5}, {"x":11, "y":5.5}, {"x":12, "y":5.5}, {"x":13, "y":5.5}, {"x":14, "y":5.5}] } } -} \ No newline at end of file +} diff --git a/keyboards/eve/meteor/keymaps/via/keymap.c b/keyboards/eve/meteor/keymaps/via/keymap.c new file mode 100644 index 000000000000..28a3b5cb9d10 --- /dev/null +++ b/keyboards/eve/meteor/keymaps/via/keymap.c @@ -0,0 +1,56 @@ +/* Copyright 2019 MechMerlin + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_all( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_HOME, KC_PGUP, KC_PGDN, KC_END, + 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_BSLS, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, + 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_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, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_NO, KC_RALT, KC_NO , KC_RGUI, KC_RCTRL + ), + + [1] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F9, KC_F10, KC_F11, KC_F12, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + RESET, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/eve/meteor/keymaps/via/rules.mk b/keyboards/eve/meteor/keymaps/via/rules.mk new file mode 100644 index 000000000000..36b7ba9cbc98 --- /dev/null +++ b/keyboards/eve/meteor/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/eve/meteor/readme.md b/keyboards/eve/meteor/readme.md index 28884156eabc..69d5a35ece76 100644 --- a/keyboards/eve/meteor/readme.md +++ b/keyboards/eve/meteor/readme.md @@ -16,6 +16,8 @@ Flashing example for this keyboard ([after setting up the bootloadHID flashing e **Reset Key:** Short the two holes labeled `FW_JP` underneath the PCB, beside the Tab key while plugging in the keyboard. -Do not confuse this with the LED holes of the switch in the `Tab` position. `FW_JP` is not reachable from the top as the plate blocks access to it. +Do not confuse this with the LED holes of the switch in the `Tab` position. `FW_JP` is not reachable from the top as the plate blocks access to it. + +If your PCB does not have this circuit exposed, you must hold down the key corresponding to pins A0 and B0 on the MCU. On at least the red EVE PCB, this is the **+/= key** (second row, 13th column). 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). diff --git a/keyboards/exclusive/e85/soldered/soldered.c b/keyboards/exclusive/e85/soldered/soldered.c index e01221a2c5bb..0a7de55ce7fe 100644 --- a/keyboards/exclusive/e85/soldered/soldered.c +++ b/keyboards/exclusive/e85/soldered/soldered.c @@ -1,4 +1,4 @@ -/* Copyright 2020 MechMerlin +/* Copyright 2020 VashtaNerada * * 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 @@ -15,3 +15,16 @@ */ #include "soldered.h" + +void keyboard_pre_init_kb(void) { + setPinOutput(C7); + + keyboard_pre_init_user(); +} + +bool led_update_kb(led_t led_state) { + if (led_update_user(led_state)) { + writePin(C7, led_state.caps_lock); + } + return true; +} diff --git a/keyboards/handwired/onekey/bluepill/bootloader_defs.h b/keyboards/handwired/onekey/bluepill/bootloader_defs.h deleted file mode 100644 index 6b8fa9f727c9..000000000000 --- a/keyboards/handwired/onekey/bluepill/bootloader_defs.h +++ /dev/null @@ -1,10 +0,0 @@ -/* Address for jumping to bootloader on STM32 chips. */ -/* It is chip dependent, the correct number can be looked up here (page 175): - * http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf - * This also requires a patch to chibios: - * /tmk_core/tool/chibios/ch-bootloader-jump.patch - */ - -// STM32F103* does NOT have an USB bootloader in ROM (only serial), -// so setting anything here does not make much sense -#define STM32_BOOTLOADER_ADDRESS 0x80000000 diff --git a/keyboards/handwired/onekey/bluepill/rules.mk b/keyboards/handwired/onekey/bluepill/rules.mk index 66ce517445db..019b1130d995 100644 --- a/keyboards/handwired/onekey/bluepill/rules.mk +++ b/keyboards/handwired/onekey/bluepill/rules.mk @@ -1,13 +1,8 @@ # MCU name MCU = STM32F103 -# GENERIC STM32F103C8T6 board - stm32duino bootloader -MCU_LDSCRIPT = STM32F103x8_stm32duino_bootloader -BOARD = STM32_F103_STM32DUINO - -DFU_ARGS = -d 1eaf:0003 -a2 -R -DFU_SUFFIX_ARGS = -v 1eaf -p 0003 - +# Bootloader selection +BOOTLOADER = stm32duino # Enter lower-power sleep mode when on the ChibiOS idle thread OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/handwired/t111/rules.mk b/keyboards/handwired/t111/rules.mk index e6776a643cbd..1c391242ba87 100644 --- a/keyboards/handwired/t111/rules.mk +++ b/keyboards/handwired/t111/rules.mk @@ -1,12 +1,7 @@ MCU = STM32F103 -# GENERIC STM32F103C8T6 board - stm32duino bootloader -MCU_LDSCRIPT = STM32F103x8_stm32duino_bootloader -BOARD = STM32_F103_STM32DUINO -STM32_BOOTLOADER_ADDRESS = 0x80000000 - -DFU_ARGS = -d 1EAF:0003 -a2 -R -DFU_SUFFIX_ARGS = -v 1EAF -p 0003 +# Bootloader selection +BOOTLOADER = stm32duino # Enter lower-power sleep mode when on the ChibiOS idle thread OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/handwired/z150/rules.mk b/keyboards/handwired/z150/rules.mk index fd1d3820337d..d86e9f6e469f 100644 --- a/keyboards/handwired/z150/rules.mk +++ b/keyboards/handwired/z150/rules.mk @@ -1,12 +1,7 @@ MCU = STM32F103 -# GENERIC STM32F103C8T6 board - stm32duino bootloader -MCU_LDSCRIPT = STM32F103x8_stm32duino_bootloader -BOARD = STM32_F103_STM32DUINO -STM32_BOOTLOADER_ADDRESS = 0x80000000 - -DFU_ARGS = -d 1eaf:0003 -a2 -R -DFU_SUFFIX_ARGS = -v 1eaf -p 0003 +# Bootloader selection +BOOTLOADER = stm32duino # Enter lower-power sleep mode when on the ChibiOS idle thread OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/handwired/zergo/config.h b/keyboards/handwired/zergo/config.h index 55fbd280c452..8bac9970a6cb 100644 --- a/keyboards/handwired/zergo/config.h +++ b/keyboards/handwired/zergo/config.h @@ -33,18 +33,11 @@ along with this program. If not, see . /* key matrix pins */ #define MATRIX_ROW_PINS { B1, D7, C3, D6, D5, D4 } #define MATRIX_COL_PINS { C7, C6, C5, C4, C2, C1, B7, D3, D2, B6, B5, B4, B3, B2 } -#define UNUSED_PINS +#define UNUSED_PINS { A0, A1, A2, A3, A4, A5, A6, A7, B0, C0, E0, E1, E4, E5, F0, F1, F2, F3, F4, F5, F6, F7 } /* COL2ROW or ROW2COL */ #define DIODE_DIRECTION COL2ROW -/* number of backlight levels */ - /* 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 diff --git a/keyboards/handwired/zergo/keymaps/default/keymap.c b/keyboards/handwired/zergo/keymaps/default/keymap.c index a9dcc82aea6d..19a2b9b2c85a 100644 --- a/keyboards/handwired/zergo/keymaps/default/keymap.c +++ b/keyboards/handwired/zergo/keymaps/default/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2020 E.Zelianin + /* Copyright 2020 E.Zelianin * * 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 @@ -16,22 +16,37 @@ #include QMK_KEYBOARD_H +// Each layer gets a name for readability. +enum zergo_layers { + l_main, + l_arrows, +}; + +//define keycode custom names to better structure view of layout +#define K_SPCFN LT(l_arrows,KC_SPC) // tap for space, hold for arrows layer +#define K_SHHOME MT(MOD_LSFT,KC_HOME) // tap for home, hold for shift +#define K_CEND MT(MOD_LCTL,KC_END) // tap for end, hoild for control +#define K_SHPGUP MT(MOD_RSFT,KC_PGUP) // tap for pageup, hoLd for shift +#define K_CPGDN MT(MOD_RCTL, KC_PGDN) // tap for pagedown, hold for control +#define K_LNG LCTL(KC_LSFT) // control+shift (to change lahguage) +#define K_CENTER MT(MOD_RCTL,KC_ENTER) // tap for enter, hold for control + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - 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_DEL, 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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(1), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_BSLS, - KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_RCTL, - MT(MOD_LSFT, KC_HOME), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_BSPC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RBRC, MT(MOD_RSFT, KC_PGUP), - MT(MOD_LCTL, KC_END), KC_DOWN, KC_RGHT, KC_LALT, KC_SPC, KC_ENT, KC_SPC, KC_RALT, KC_LGUI, KC_MENU, MT(MOD_RCTL, KC_PGDN)), +[l_main] = 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_DEL, 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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, K_LNG, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_BSLS, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, K_CENTER, + K_SHHOME, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_BSPC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RBRC, K_SHPGUP, + K_CEND, KC_NO, KC_NO, KC_LALT, KC_SPC, KC_ENT, K_SPCFN, KC_RALT, KC_APP, KC_RGUI, K_CPGDN), - 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, 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_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_ENT, KC_UP, KC_BSPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), +[l_arrows] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, KC_ENT, KC_UP, KC_BSPC, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, + _______, _______, _______, _______, _______, KC_INS, _______, _______, _______, _______, _______), }; diff --git a/keyboards/handwired/zergo/rules.mk b/keyboards/handwired/zergo/rules.mk index e633ab396d5e..ea5530ffacef 100644 --- a/keyboards/handwired/zergo/rules.mk +++ b/keyboards/handwired/zergo/rules.mk @@ -7,16 +7,16 @@ BOOTLOADER = halfkay # Build Options # change yes to no to disable # -BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = yes # Commands for debug and configuration +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = no # Audio control and System control +CONSOLE_ENABLE = no # 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 +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -NKRO_ENABLE = yes # USB Nkey Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -BLUETOOTH_ENABLE = no # Enable Bluetooth -AUDIO_ENABLE = no # Audio output +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/handwired/zergo/zergo.h b/keyboards/handwired/zergo/zergo.h index 5b7695868f7d..ba6532164d12 100644 --- a/keyboards/handwired/zergo/zergo.h +++ b/keyboards/handwired/zergo/zergo.h @@ -19,17 +19,17 @@ #include "quantum.h" #define LAYOUT( \ - K000, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, \ - K100, K101, K102, K103, K104, K105, K206, K106, K107, K108, K109, K110, K111, K112, K113, \ - K200, K201, K202, K203, K204, K205, K306, K207, K208, K209, K210, K211, K212, K213, \ - K300, K301, K302, K303, K304, K305, K307, K308, K309, K310, K311, K312, K313, \ - K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, \ - K500, K501, K502, K503, K505, K506, K507, K509, K511, K512, K513 \ + K000, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, \ + K100, K101, K102, K103, K104, K105, K206, K106, K107, K108, K109, K110, K111, K112, K113, \ + K200, K201, K202, K203, K204, K205, K306, K207, K208, K209, K210, K211, K212, K213, \ + K300, K301, K302, K303, K304, K305, K307, K308, K309, K310, K311, K312, K313, \ + K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, \ + K500, K501, K502, K503, K505, K506, K507, K509, K510, K512, K513 \ ) { \ { K000, KC_NO, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013 }, \ { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113 }, \ { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213 }, \ { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313 }, \ { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413 }, \ - { K500, K501, K502, K503, KC_NO, K505, K506, K507, KC_NO, K509, KC_NO, K511, K512, K513 } \ + { K500, K501, K502, K503, KC_NO, K505, K506, K507, KC_NO, K509, K510, KC_NO, K512, K513 } \ } diff --git a/keyboards/helix/rev3_4rows/config.h b/keyboards/helix/rev3_4rows/config.h index d2de347b9e3f..bc695d996712 100644 --- a/keyboards/helix/rev3_4rows/config.h +++ b/keyboards/helix/rev3_4rows/config.h @@ -50,6 +50,7 @@ along with this program. If not, see . /* Split hand configration */ #define SPLIT_HAND_MATRIX_GRID D7,B2 +#define SPLIT_HAND_MATRIX_GRID_LOW_IS_RIGHT /* Dip switch on matrix grid */ #define DIP_SWITCH_MATRIX_GRID { {0,6}, {1,6}, {5,6}, {6,6} } diff --git a/keyboards/helix/rev3_4rows/info.json b/keyboards/helix/rev3_4rows/info.json index 0b927510d928..0ad2a7c3cacf 100644 --- a/keyboards/helix/rev3_4rows/info.json +++ b/keyboards/helix/rev3_4rows/info.json @@ -5,7 +5,7 @@ "width": 15, "height": 4, "layouts": { - "LAYOUT_4": { + "LAYOUT": { "layout": [ {"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":9, "y":1}, {"x":10, "y":1}, {"x":11, "y":1}, {"x":12, "y":1}, {"x":13, "y":1}, {"x":14, "y":1}, diff --git a/keyboards/kbdfans/kbd67/mkiirgb/keymaps/cykedev/config.h b/keyboards/kbdfans/kbd67/mkiirgb/keymaps/cykedev/config.h new file mode 100644 index 000000000000..02bde2d2177e --- /dev/null +++ b/keyboards/kbdfans/kbd67/mkiirgb/keymaps/cykedev/config.h @@ -0,0 +1,20 @@ +// Copyright 2020 Christian Eiden, cykedev +// +// 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 . + +#pragma once + +#undef DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +#undef DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +#undef DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE diff --git a/keyboards/kbdfans/kbd67/mkiirgb/keymaps/cykedev/keymap.c b/keyboards/kbdfans/kbd67/mkiirgb/keymaps/cykedev/keymap.c new file mode 100644 index 000000000000..c77bbc756cdd --- /dev/null +++ b/keyboards/kbdfans/kbd67/mkiirgb/keymaps/cykedev/keymap.c @@ -0,0 +1,110 @@ +// Copyright 2020 Christian Eiden, cykedev +// +// 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 . + +#include QMK_KEYBOARD_H + +// layers, ordering is important! +enum layers { + _BASE, + _FN1, + _FN2, + _FN3 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base layer + * ,--------------------------------------------------------------------------------------------------. + * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Backspace | ` | + * |-------------------------------------------------------------------------------------------+------+ + * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | Del | + * |-------------------------------------------------------------------------------------------+------+ + * | MO(_FN2) | A | S | D | F | G | H | J | K | L | ; | ' | Enter | PgUp | + * |-------------------------------------------------------------------------------------------+------+ + * | Shift | Z | X | C | V | B | N | M | , | . | / | Shift | Up | PgDn | + * +-------------------------------------------------------------------------┬---┬-------------+------+ + * | LCtrl | LAlt | LGUI | Space | RGUI | RAlt | | Left | Dn | Rght | + * `-------------------------------------------------------------------------┘ └-------------+------´ + */ + [_BASE] = LAYOUT_65_ansi_blocker( + 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_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_BSLS, KC_DEL, + MO(_FN1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, OSM(MOD_RALT), KC_LEFT, KC_DOWN, KC_RGHT + ), + + /* FN 1 layer + * ,--------------------------------------------------------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | | Mute | + * |-------------------------------------------------------------------------------------------+------+ + * | | | | | | | | | | | | Br - |Br +| | Ins | + * |-------------------------------------------------------------------------------------------+------+ + * | | | | | | | Lft | Dwn | Up | Rgt | | | | Home | + * |-------------------------------------------------------------------------------------------+------+ + * | MO(_FN2) | | | | | | | | | | | | V + | End | + * +-------------------------------------------------------------------------┬---┬-------------+------+ + * | | | | | | | | Prev | V - | Next | + * `-------------------------------------------------------------------------┘ └-------------+------´ + */ + [_FN1] = LAYOUT_65_ansi_blocker( + _______, 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_MUTE, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BRID, KC_BRIU, _______, KC_INS, + _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, _______, KC_HOME, + MO(_FN2), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, KC_END, + _______, _______, _______, _______, _______, _______, KC_MRWD, KC_VOLD, KC_MFFD + ), + + /* FN 2 layer + * ,--------------------------------------------------------------------------------------------------. + * | | | | | | | | | | | | | | Reset | EEPR | + * |-------------------------------------------------------------------------------------------+------+ + * | | | | | | | | | | | | Mo- | Mo+ | |Solid | + * |-------------------------------------------------------------------------------------------+------+ + * | | | | | | | | | | | Sp- | Sp+ | | V + | + * |-------------------------------------------------------------------------------------------+------+ + * | | | | | | | | | | | | | S + | V - | + * +-------------------------------------------------------------------------┬---┬-------------+------+ + * | | | | Backlight | | | | H - | S - | H + | + * `-------------------------------------------------------------------------┘ └-------------+------´ + */ + [_FN2] = LAYOUT_65_ansi_blocker( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, EEP_RST, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_MOD, _______, RGB_M_P, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, RGB_VAI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAI, RGB_VAD, + _______, _______, _______, RGB_TOG, _______, _______, RGB_HUD, RGB_SAD, RGB_HUI + ), + + /* FN 3 layer + * ,--------------------------------------------------------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |-------------------------------------------------------------------------------------------+------+ + * | | | | | | | | | | | | | | | | + * |-------------------------------------------------------------------------------------------+------+ + * | | | | | | | | | | | | | | | + * |-------------------------------------------------------------------------------------------+------+ + * | | | | | | | | | | | | | | | + * +-------------------------------------------------------------------------┬---┬-------------+------+ + * | | | | | | | | | | | + * `-------------------------------------------------------------------------┘ └-------------+------´ + */ + [_FN3] = LAYOUT_65_ansi_blocker( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/kbdfans/kbd67/mkiirgb/keymaps/cykedev/rules.mk b/keyboards/kbdfans/kbd67/mkiirgb/keymaps/cykedev/rules.mk new file mode 100644 index 000000000000..36b7ba9cbc98 --- /dev/null +++ b/keyboards/kbdfans/kbd67/mkiirgb/keymaps/cykedev/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/keebio/bdn9/keymaps/eosti/config.h b/keyboards/keebio/bdn9/keymaps/eosti/config.h index 4ba28f26a865..98f8eab1a0f7 100644 --- a/keyboards/keebio/bdn9/keymaps/eosti/config.h +++ b/keyboards/keebio/bdn9/keymaps/eosti/config.h @@ -1 +1,18 @@ -#define TAPPING_TERM 175 +/* Copyright 2020 Reid Sox-Harris + * + * 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 . + */ +#pragma once + +#define TAPPING_TERM 275 diff --git a/keyboards/keebio/bdn9/keymaps/eosti/keymap.c b/keyboards/keebio/bdn9/keymaps/eosti/keymap.c index adec3984bc33..06537cbadf5b 100644 --- a/keyboards/keebio/bdn9/keymaps/eosti/keymap.c +++ b/keyboards/keebio/bdn9/keymaps/eosti/keymap.c @@ -1,3 +1,19 @@ +/* Copyright 2020 Reid Sox-Harris + * + * 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 . + */ + #include QMK_KEYBOARD_H enum layer_names { @@ -13,12 +29,11 @@ enum custom_keycodes { M804, M805, M806, - MAIL_C }; // tapdance keycodes enum td_keycodes { - LAY // Our example key: `LALT` when held, `(` when tapped. Add additional keycodes for each tapdance. + LAY }; // define a type containing as many tapdance states as you need @@ -60,7 +75,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (record->event.pressed) { SEND_STRING("M804" SS_TAP(X_ENTER)); } - break; + break; case M805: if (record->event.pressed) { SEND_STRING("M805" SS_TAP(X_ENTER)); @@ -71,11 +86,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { SEND_STRING("M806" SS_TAP(X_ENTER)); } break; - case MAIL_C: - if (record->event.pressed) { - SEND_STRING(SS_TAP(X_ENTER) SS_TAP(X_DOWN) SS_TAP(X_DOWN) SS_TAP(X_ENTER)); - } - break; } return true; @@ -90,7 +100,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // ├────────┼────────┼────────┤ KC_LEFT, KC_DOWN, KC_RGHT, // ├────────┼────────┼────────┤ - KC_NO, KC_NO, KC_NO + KC_MRWD, KC_MPLY, KC_MFFD // └────────┴────────┴────────┘ ), [_MACRO] = LAYOUT( @@ -99,16 +109,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // ├────────┼────────┼────────┤ M801, M802, M803, // ├────────┼────────┼────────┤ - MAIL_C, KC_NO, EX_ARR + KC_NO, KC_NO, EX_ARR // └────────┴────────┴────────┘ ), [_MOD] = LAYOUT( // ┌────────┬────────┬────────┐ _______, BL_STEP,TG(_MOD), // ├────────┼────────┼────────┤ - KC_NO, RGB_MOD, KC_NO, + RGB_TOG, RGB_HUI, RGB_SAI, // ├────────┼────────┼────────┤ - KC_NO, KC_NO, KC_NO + RGB_MOD, RGB_HUD, RGB_SAD // └────────┴────────┴────────┘ ) }; @@ -123,6 +133,8 @@ void encoder_update_user(uint8_t index, bool clockwise) { } } +// Tapdance! Hold to use as a modifier to the _MOD layout, tap to change it between _BASE and _MACRO + // determine the tapdance state to return int cur_dance (qk_tap_dance_state_t *state) { if (state->count == 1) { diff --git a/keyboards/keebio/bdn9/keymaps/eosti/readme.md b/keyboards/keebio/bdn9/keymaps/eosti/readme.md index d93ce1e5f474..cafa17827bd6 100644 --- a/keyboards/keebio/bdn9/keymaps/eosti/readme.md +++ b/keyboards/keebio/bdn9/keymaps/eosti/readme.md @@ -3,7 +3,7 @@ ## Features - Single encoder in the top left to control volume, push to mute -- Arrow keys on home layer +- Arrow keys and media keys on home layer - Tap upper right to toggle to macro layer - Hold upper right to change keyboard functions (aka RGB) -- 520 entire bytes free! +- 428 entire bytes free! diff --git a/keyboards/keebio/bdn9/keymaps/eosti/rules.mk b/keyboards/keebio/bdn9/keymaps/eosti/rules.mk index 31e0fcf29339..ff3294ba752c 100644 --- a/keyboards/keebio/bdn9/keymaps/eosti/rules.mk +++ b/keyboards/keebio/bdn9/keymaps/eosti/rules.mk @@ -1 +1,4 @@ TAP_DANCE_ENABLE=yes +CONSOLE_ENABLE = no +COMMAND_ENABLE = no +LTO_ENABLE = yes diff --git a/keyboards/keebio/iris/keymaps/eosti/config.h b/keyboards/keebio/iris/keymaps/eosti/config.h index 01bb31a6e14a..a7e52bf22915 100644 --- a/keyboards/keebio/iris/keymaps/eosti/config.h +++ b/keyboards/keebio/iris/keymaps/eosti/config.h @@ -1,5 +1,5 @@ /* -Copyright 2017 Danny Nguyen +Copyright 2020 Reid Sox-Harris 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 diff --git a/keyboards/keebio/iris/keymaps/eosti/keymap.c b/keyboards/keebio/iris/keymaps/eosti/keymap.c index 34f75120270a..c30e5c986798 100644 --- a/keyboards/keebio/iris/keymaps/eosti/keymap.c +++ b/keyboards/keebio/iris/keymaps/eosti/keymap.c @@ -1,10 +1,27 @@ +/* Copyright 2020 Reid Sox-Harris + * + * 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 . + */ + #include QMK_KEYBOARD_H enum layer_names { _QWERTY, _GAME, _UPPER, - _LOWER + _LOWER, + _UTILS }; enum custom_keycodes { @@ -14,13 +31,13 @@ enum custom_keycodes { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case TMUX_WN: + case TMUX_WN: // Switches to next window in tmux if (record->event.pressed) { - SEND_STRING(SS_LCTRL("a") "n"); + SEND_STRING(SS_LCTRL("a") "n"); // Requires a leader of ctrl-a } break; - case TMUX_WL: + case TMUX_WL: // Switches to last window in tmux if (record->event.pressed) { SEND_STRING(SS_LCTRL("a") "l"); } @@ -33,14 +50,14 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { #define UPPER MO(_UPPER) #define LOWER MO(_LOWER) #define GAME TG(_GAME) +#define UTILS MO(_UTILS) -#define WM_R LCTL(KC_RGHT) -#define WM_L LCTL(KC_LEFT) -#define WM_MC LCTL(KC_UP) -#define WEB_R LGUI(KC_RCBR) -#define WEB_L LGUI(KC_LCBR) -#define TMUX_ESC LCTL(KC_A) -#define TMUX_U RALT(KC_UP) +#define WM_R LCTL(KC_RGHT) // Moves the MacOS WM to the right +#define WM_L LCTL(KC_LEFT) // ...and to the left +#define WM_MC LCTL(KC_UP) // Enters MacOS Mission Control +#define WEB_R LGUI(KC_RCBR) // Change tabs to the right on Firefox, Chrome +#define WEB_L LGUI(KC_LCBR) // ...and to the left +#define TMUX_U RALT(KC_UP) // tmux navigation, requires tmux.conf change #define TMUX_D RALT(KC_DOWN) #define TMUX_R RALT(KC_RGHT) #define TMUX_L RALT(KC_LEFT) @@ -50,13 +67,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐ KC_GRV , KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL, //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS, //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ - KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LCTL, KC_RALT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_BSPC, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LCTL, KC_NO, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_BSPC, //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘ - KC_LGUI, UPPER, KC_ENT, KC_SPC, LOWER, KC_NO + KC_LGUI, UPPER, KC_ENT, KC_SPC, LOWER, KC_RALT // └────────┴────────┴────────┘ └────────┴────────┴────────┘ ), [_GAME] = LAYOUT( @@ -69,31 +86,44 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘ - _______, _______, KC_SPC, KC_ENT, _______, _______ + _______, _______, KC_SPC, KC_ENT, _______, _______ // └────────┴────────┴────────┘ └────────┴────────┴────────┘ ), [_UPPER] = LAYOUT( //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐ KC_TILD, KC_EXLM, KC_AT , KC_HASH, KC_DLR , KC_PERC, KC_CIRC , KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PLUS, //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ - TMUX_ESC, KC_NO, KC_NO, KC_NO, WEB_L, WEB_R, TMUX_L, TMUX_D, TMUX_U, TMUX_R, KC_NO, KC_BSLS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL, //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ - _______, KC_NO, KC_VOLU, WM_MC, WM_L, WM_R, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_PGUP, KC_NO, + _______, WEB_L, WEB_R, WM_MC, WM_L, WM_R, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_PGUP, KC_BSLS, //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ - _______, KC_MUTE, KC_VOLD, KC_LBRC, KC_LPRN, KC_LCBR,_______, _______, KC_RCBR, KC_RPRN, KC_RBRC, KC_NO, KC_PGDN,_______, + _______, KC_NO, KC_LABK, KC_LBRC, KC_LPRN, KC_LCBR, _______, _______, KC_RCBR, KC_RPRN, KC_RBRC, KC_RABK, KC_PGDN,_______, //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘ - _______, _______, _______, _______, KC_NO, _______ + _______, UPPER, _______, _______, UTILS, _______ // └────────┴────────┴────────┘ └────────┴────────┴────────┘ ), [_LOWER] = LAYOUT( //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐ KC_CAPS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ - RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_NO, KC_INS, KC_HOME, KC_PGUP, KC_NO, GAME, + KC_TILD, KC_EXLM, KC_AT , KC_HASH, KC_DLR , KC_PERC, KC_CIRC , KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PLUS, //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ - _______, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, KC_SLEP, KC_DEL, KC_END, KC_PGDN, KC_NO, KC_NO, + _______, TMUX_WL, TMUX_WN, KC_NO, KC_NO, KC_NO, TMUX_L, TMUX_D, TMUX_U, TMUX_R, KC_NO, KC_PIPE, + //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + _______, KC_NO, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_NO, KC_DEL, + //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘ + _______, UTILS, _______, _______, LOWER, _______ + // └────────┴────────┴────────┘ └────────┴────────┴────────┘ + ), + [_UTILS] = LAYOUT( + //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐ + KC_CAPS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ + KC_CAPS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ + RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_NO, KC_INS, KC_HOME, KC_PGUP, KC_NO, GAME, //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ - _______, TMUX_WL, TMUX_WN,_______, KC_LBRC, KC_LPRN, KC_LCBR, _______, KC_RCBR, KC_RPRN, KC_RBRC, KC_NO, KC_NO, _______, + KC_NO, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD,_______, _______, KC_SLEP, KC_DEL, KC_END, KC_PGDN, KC_NO, KC_NO, //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘ _______, KC_NO, _______, _______, _______, _______ // └────────┴────────┴────────┘ └────────┴────────┴────────┘ diff --git a/keyboards/keebio/iris/keymaps/eosti/readme.md b/keyboards/keebio/iris/keymaps/eosti/readme.md index 0fc61a443c25..f62c9cb5ff6b 100644 --- a/keyboards/keebio/iris/keymaps/eosti/readme.md +++ b/keyboards/keebio/iris/keymaps/eosti/readme.md @@ -5,7 +5,8 @@ - QWERTY base layer with right thumb space and left thumb enter - Gaming layer to swap enter and space so that WASD and space can all be on the same hand - MacOS navigation keys for switching windows and entering Mission Control -- Google Chrome navigation keys for cycling tabs +- Browser navigation keys for cycling tabs - HJKL arrow keys -- tmux navigation keys for switching focus, panes, and the leader key +- tmux navigation keys for switching focus, panes +- Plays nicely with my Planck layout for easy switching - Probably other stuff too? diff --git a/keyboards/melgeek/mj63/config.h b/keyboards/melgeek/mj63/config.h new file mode 100644 index 000000000000..452b1c8728ec --- /dev/null +++ b/keyboards/melgeek/mj63/config.h @@ -0,0 +1,19 @@ +/* Copyright 2020 MelGeek + * + * 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 . + */ + +#pragma once + +#include "config_common.h" diff --git a/keyboards/melgeek/mj63/info.json b/keyboards/melgeek/mj63/info.json new file mode 100644 index 000000000000..f608b984e2b4 --- /dev/null +++ b/keyboards/melgeek/mj63/info.json @@ -0,0 +1,80 @@ +{ + "keyboard_name": "MJ63", + "url": "", + "maintainer": "melgeek001365", + "width": 15, + "height": 5, + "layouts": { + "LAYOUT_60_ansi_arrow": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6, "y":0}, + {"x":7, "y":0}, + {"x":8, "y":0}, + {"x":9, "y":0}, + {"x":10, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0, "w":2}, + + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":13.5, "y":1, "w":1.5}, + + {"x":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":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, "w":1.75}, + {"x":13, "y":3}, + {"x":14, "y":3}, + + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"x":10, "y":4}, + {"x":11, "y":4}, + {"x":12, "y":4}, + {"x":13, "y":4}, + {"x":14, "y":4} + ] + } + } +} diff --git a/keyboards/melgeek/mj63/keymaps/default/keymap.c b/keyboards/melgeek/mj63/keymaps/default/keymap.c new file mode 100644 index 000000000000..2829ae8fc96c --- /dev/null +++ b/keyboards/melgeek/mj63/keymaps/default/keymap.c @@ -0,0 +1,41 @@ +/* Copyright 2020 MelGeek + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_60_ansi_arrow( + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), KC_UP, KC_DEL, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), MO(2), KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_60_ansi_arrow( + 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_CALC, _______, KC_INS, _______, KC_PSCR, KC_SLCK, KC_PAUS, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, EEP_RST, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, KC_END, KC_PGDN, KC_VOLU, KC_MUTE, + _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT + ), + [2] = LAYOUT_60_ansi_arrow( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, _______, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, RGB_SPD, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/melgeek/mj63/keymaps/via/keymap.c b/keyboards/melgeek/mj63/keymaps/via/keymap.c new file mode 100644 index 000000000000..37e25a834930 --- /dev/null +++ b/keyboards/melgeek/mj63/keymaps/via/keymap.c @@ -0,0 +1,48 @@ +/* Copyright 2020 MelGeek + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_60_ansi_arrow( + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), KC_UP, KC_DEL, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), MO(2), KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_60_ansi_arrow( + 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_CALC, _______, KC_INS, _______, KC_PSCR, KC_SLCK, KC_PAUS, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, EEP_RST, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, KC_END, KC_PGDN, KC_VOLU, KC_MUTE, + _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT + ), + [2] = LAYOUT_60_ansi_arrow( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, _______, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, RGB_SPD, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT_60_ansi_arrow( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/melgeek/mj63/keymaps/via/rules.mk b/keyboards/melgeek/mj63/keymaps/via/rules.mk new file mode 100644 index 000000000000..36b7ba9cbc98 --- /dev/null +++ b/keyboards/melgeek/mj63/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/melgeek/mj63/mj63.c b/keyboards/melgeek/mj63/mj63.c new file mode 100644 index 000000000000..8b1ff3865117 --- /dev/null +++ b/keyboards/melgeek/mj63/mj63.c @@ -0,0 +1,17 @@ +/* Copyright 2020 MelGeek + * + * 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 . + */ + +#include "mj63.h" diff --git a/keyboards/melgeek/mj63/mj63.h b/keyboards/melgeek/mj63/mj63.h new file mode 100644 index 000000000000..1b12b7b47de8 --- /dev/null +++ b/keyboards/melgeek/mj63/mj63.h @@ -0,0 +1,35 @@ +/* Copyright 2020 MelGeek + * + * 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 . + */ + +#pragma once + +#include "quantum.h" + +#define XXX KC_NO + +#define LAYOUT_60_ansi_arrow( \ + 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, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3B, K3C, K3D, \ + K40, K41, K42, K45, K49, K4A, K4B, K4C, K4D \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, XXX }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, XXX, K3B, K3C, K3D }, \ + { K40, K41, K42, XXX, XXX, K45, XXX, XXX, XXX, K49, K4A, K4B, K4C, K4D } \ +} diff --git a/keyboards/melgeek/mj63/readme.md b/keyboards/melgeek/mj63/readme.md new file mode 100644 index 000000000000..59f8b5417c30 --- /dev/null +++ b/keyboards/melgeek/mj63/readme.md @@ -0,0 +1,16 @@ +# MelGeek MJ63 + +![MJ63](https://cdn.shopifycdn.net/s/files/1/0078/2863/5712/products/85c2f4d72137d02d6a211f27a45f1860_1024x1024@2x.jpg?v=1600672885) + +A hotswap 60% RGB Custom Mechanical keyboard with arrows and the size of left shift is 2.0U + +* Keyboard Maintainer: [melgeek001365](https://github.com/melgeek001365) +* Hardware Supported: MJ63 V1.0.0 20200712 +* Hardware Availability: [MelGeek](https://www.melgeek.com/) + +Make example for this keyboard (after setting up your build environment): + + make melgeek/mj63/rev1: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). diff --git a/keyboards/melgeek/mj63/rev1/config.h b/keyboards/melgeek/mj63/rev1/config.h new file mode 100644 index 000000000000..4cd8d6a9dc15 --- /dev/null +++ b/keyboards/melgeek/mj63/rev1/config.h @@ -0,0 +1,70 @@ +/* Copyright 2020 MelGeek + * + * 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 . + */ + +#pragma once + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xEDED +#define PRODUCT_ID 0x6063 +#define DEVICE_VER 0x0001 +#define MANUFACTURER MelGeek +#define PRODUCT MJ63 + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 14 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ + +#define MATRIX_ROW_PINS { B12, B11, B10, B1, A3 } +#define MATRIX_COL_PINS { B15, A8, A10, A15, B3, B4, B5, B8, B9, C13, C14, C15, A0, A1 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 3 + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +#define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects +#define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended +#define RGB_MATRIX_KEYPRESSES +#define RGB_MATRIX_LED_PROCESS_LIMIT 4 +#define RGB_MATRIX_LED_FLUSH_LIMIT 26 +#define DISABLE_RGB_MATRIX_SPLASH +#define DISABLE_RGB_MATRIX_MULTISPLASH +#define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH +//#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_SOLID_COLOR +#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_ALL +#define DRIVER_ADDR_1 0b0110000 +#define DRIVER_ADDR_2 0b0110000 // this is here for compliancy reasons. +#define DRIVER_COUNT 1 +#define DRIVER_1_LED_TOTAL 65 +#define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL +#define DRIVER_INDICATOR_LED_TOTAL 0 diff --git a/keyboards/melgeek/mj63/rev1/rev1.c b/keyboards/melgeek/mj63/rev1/rev1.c new file mode 100644 index 000000000000..e9f75739c6b0 --- /dev/null +++ b/keyboards/melgeek/mj63/rev1/rev1.c @@ -0,0 +1,130 @@ +/* Copyright 2020 MelGeek + * + * 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 . + */ + +#include "mj63.h" + + +#ifdef RGB_MATRIX_ENABLE + +const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { + {0, CS9_SW1, CS8_SW1, CS7_SW1}, /* RGB1 */ + {0, CS9_SW2, CS8_SW2, CS7_SW2}, /* RGB2 */ + {0, CS9_SW3, CS8_SW3, CS7_SW3}, /* RGB3 */ + {0, CS9_SW4, CS8_SW4, CS7_SW4}, /* RGB4 */ + {0, CS9_SW5, CS8_SW5, CS7_SW5}, /* RGB5 */ + {0, CS9_SW6, CS8_SW6, CS7_SW6}, /* RGB6 */ + {0, CS9_SW7, CS8_SW7, CS7_SW7}, /* RGB7 */ + {0, CS9_SW8, CS8_SW8, CS7_SW8}, /* RGB8 */ + {0, CS9_SW9, CS8_SW9, CS7_SW9}, /* RGB9 */ + {0, CS12_SW1, CS11_SW1, CS10_SW1}, /* RGB10 */ + {0, CS12_SW2, CS11_SW2, CS10_SW2}, /* RGB11 */ + {0, CS12_SW3, CS11_SW3, CS10_SW3}, /* RGB12 */ + {0, CS12_SW4, CS11_SW4, CS10_SW4}, /* RGB13 */ + {0, CS12_SW5, CS11_SW5, CS10_SW5}, /* RGB14 */ + {0, CS12_SW6, CS11_SW6, CS10_SW6}, /* RGB15 */ + {0, CS12_SW7, CS11_SW7, CS10_SW7}, /* RGB16 */ + {0, CS12_SW8, CS11_SW8, CS10_SW8}, /* RGB17 */ + {0, CS12_SW9, CS11_SW9, CS10_SW9}, /* RGB18 */ + {0, CS15_SW1, CS14_SW1, CS13_SW1}, /* RGB19 */ + {0, CS15_SW2, CS14_SW2, CS13_SW2}, /* RGB20 */ + {0, CS15_SW3, CS14_SW3, CS13_SW3}, /* RGB21 */ + {0, CS15_SW4, CS14_SW4, CS13_SW4}, /* RGB22 */ + {0, CS15_SW5, CS14_SW5, CS13_SW5}, /* RGB23 */ + {0, CS15_SW6, CS14_SW6, CS13_SW6}, /* RGB24 */ + {0, CS15_SW7, CS14_SW7, CS13_SW7}, /* RGB25 */ + {0, CS15_SW8, CS14_SW8, CS13_SW8}, /* RGB26 */ + {0, CS15_SW9, CS14_SW9, CS13_SW9}, /* RGB27 */ + {0, CS18_SW1, CS17_SW1, CS16_SW1}, /* RGB28 */ + {0, CS18_SW2, CS17_SW2, CS16_SW2}, /* RGB29 */ + {0, CS18_SW3, CS17_SW3, CS16_SW3}, /* RGB30 */ + {0, CS18_SW4, CS17_SW4, CS16_SW4}, /* RGB31 */ + {0, CS18_SW5, CS17_SW5, CS16_SW5}, /* RGB32 */ + {0, CS18_SW6, CS17_SW6, CS16_SW6}, /* RGB33 */ + {0, CS18_SW7, CS17_SW7, CS16_SW7}, /* RGB34 */ + {0, CS18_SW8, CS17_SW8, CS16_SW8}, /* RGB35 */ + {0, CS18_SW9, CS17_SW9, CS16_SW9}, /* RGB36 */ + {0, CS21_SW1, CS20_SW1, CS19_SW1}, /* RGB37 */ + {0, CS21_SW2, CS20_SW2, CS19_SW2}, /* RGB38 */ + {0, CS21_SW3, CS20_SW3, CS19_SW3}, /* RGB39 */ + {0, CS21_SW4, CS20_SW4, CS19_SW4}, /* RGB40 */ + {0, CS21_SW5, CS20_SW5, CS19_SW5}, /* RGB41 */ + {0, CS21_SW6, CS20_SW6, CS19_SW6}, /* RGB42 */ + {0, CS21_SW7, CS20_SW7, CS19_SW7}, /* RGB43 */ + {0, CS21_SW8, CS20_SW8, CS19_SW8}, /* RGB44 */ + {0, CS24_SW1, CS23_SW1, CS22_SW1}, /* RGB46 */ + {0, CS24_SW2, CS23_SW2, CS22_SW2}, /* RGB47 */ + {0, CS24_SW3, CS23_SW3, CS22_SW3}, /* RGB48 */ + {0, CS24_SW4, CS23_SW4, CS22_SW4}, /* RGB49 */ + {0, CS24_SW5, CS23_SW5, CS22_SW5}, /* RGB50 */ + {0, CS24_SW6, CS23_SW6, CS22_SW6}, /* RGB51 */ + {0, CS24_SW7, CS23_SW7, CS22_SW7}, /* RGB52 */ + {0, CS24_SW8, CS23_SW8, CS22_SW8}, /* RGB53 */ + {0, CS24_SW9, CS23_SW9, CS22_SW9}, /* RGB54 */ + {0, CS30_SW2, CS29_SW2, CS28_SW2}, /* RGB55 */ + {0, CS27_SW2, CS26_SW2, CS25_SW2}, /* RGB56 */ + {0, CS27_SW3, CS26_SW3, CS25_SW3}, /* RGB57 */ + {0, CS27_SW4, CS26_SW4, CS25_SW4}, /* RGB58 */ + {0, CS27_SW5, CS26_SW5, CS25_SW5}, /* RGB59 */ + {0, CS27_SW6, CS26_SW6, CS25_SW6}, /* RGB60 */ + {0, CS30_SW7, CS29_SW7, CS28_SW7}, /* RGB61 */ + {0, CS30_SW8, CS29_SW8, CS28_SW8}, /* RGB62 */ + {0, CS30_SW9, CS29_SW9, CS28_SW9}, /* RGB63 */ + {0, CS30_SW1, CS29_SW1, CS28_SW1}, /* RGB64 */ + {0, CS27_SW1, CS26_SW1, CS25_SW1}, /* RGB65 */ + {0, CS30_SW5, CS29_SW5, CS28_SW5}, /* RGB66 */ +}; + +led_config_t g_led_config = { + { + /* C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 */ + { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 }, /* R0 */ + { 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14 }, /* R1 */ + { 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, NO_LED }, /* R2 */ + { 53, NO_LED, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41 }, /* R3 */ + { 61, 60, 59, NO_LED, 64, 62, 63, NO_LED, NO_LED, 58, 57, 56, 55, 54 }, /* R4 */ + }, { + {0, 0}, {16, 0}, {32, 0}, {48, 0}, {64, 0}, {80, 0}, {96, 0}, {112, 0}, {128, 0}, {144, 0}, {160, 0}, {176, 0}, {192, 0}, {208, 0}, + {0, 16}, {16, 16}, {32, 16}, {48, 16}, {64, 16}, {80, 16}, {96, 16}, {112, 16}, {128, 16}, {144, 16}, {160, 16}, {176, 16}, {192, 16}, {208, 16}, + {0, 32}, {16, 32}, {32, 32}, {48, 32}, {64, 32}, {80, 32}, {96, 32}, {112, 32}, {128, 32}, {144, 32}, {160, 32}, {176, 32}, {192, 32}, + {0, 48}, {16, 48}, {32, 48}, {48, 48}, {64, 48}, {80, 48}, {96, 48}, {112, 48}, {128, 48}, {144, 48}, {160, 48}, {176, 48}, {192, 48}, + {0, 64}, {16, 64}, {32, 64}, {48, 64}, {64, 64}, {80, 64}, {96, 64}, {112, 64}, {128, 64}, {144, 64}, {160, 64}, + }, { + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + } +}; + +void suspend_power_down_kb(void) { + rgb_matrix_set_suspend_state(true); + suspend_power_down_user(); +} + +void suspend_wakeup_init_kb(void) { + rgb_matrix_set_suspend_state(false); + suspend_wakeup_init_user(); +} + +void keyboard_pre_init_kb(void) { + setPinOutput(A2); + writePinHigh(A2); + keyboard_pre_init_user(); +} + +#endif + diff --git a/keyboards/melgeek/mj63/rev1/rules.mk b/keyboards/melgeek/mj63/rev1/rules.mk new file mode 100644 index 000000000000..998f1275a471 --- /dev/null +++ b/keyboards/melgeek/mj63/rev1/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = STM32F303 + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +RGB_MATRIX_ENABLE = IS31FL3741 # Use RGB matrix +NO_USB_STARTUP_CHECK = no # Disable initialization only when usb is plugged in + +LAYOUTS = 60_ansi_arrow diff --git a/keyboards/moonlander/config.h b/keyboards/moonlander/config.h index b77fcbd1e04a..d1c685280f99 100644 --- a/keyboards/moonlander/config.h +++ b/keyboards/moonlander/config.h @@ -1,6 +1,6 @@ /* Copyright 2020 ZSA Technology Labs, Inc <@zsa> * Copyright 2020 Jack Humbert - * Copyright 2020 Drashna Jael're + * Copyright 2020 Christopher Courtney (@drashna) * * 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 diff --git a/keyboards/moonlander/keymaps/default/config.h b/keyboards/moonlander/keymaps/default/config.h index 95b05a5a61bc..576aae9f52f7 100644 --- a/keyboards/moonlander/keymaps/default/config.h +++ b/keyboards/moonlander/keymaps/default/config.h @@ -1,6 +1,6 @@ /* Copyright 2020 ZSA Technology Labs, Inc <@zsa> * Copyright 2020 Jack Humbert - * Copyright 2020 Drashna Jael're + * Copyright 2020 Christopher Courtney (@drashna) * * 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 diff --git a/keyboards/moonlander/keymaps/default/keymap.c b/keyboards/moonlander/keymaps/default/keymap.c index 67a2cd53a8e5..6d98a8607e4c 100644 --- a/keyboards/moonlander/keymaps/default/keymap.c +++ b/keyboards/moonlander/keymaps/default/keymap.c @@ -1,6 +1,6 @@ /* Copyright 2020 ZSA Technology Labs, Inc <@zsa> * Copyright 2020 Jack Humbert - * Copyright 2020 Drashna Jael're + * Copyright 2020 Christopher Courtney (@drashna) * * 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 @@ -35,68 +35,32 @@ enum custom_keycodes { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [BASE] = LAYOUT_moonlander( KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB), TG(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, - KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_HYPR, KC_MEH, KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN), GUI_T(KC_QUOT), - KC_LSFT, LCTL_T(KC_Z),KC_X,KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, LCTL_T(KC_SLSH), KC_LSFT, - LT(SYMB,KC_GRV),WEBUSB_PAIR,A(KC_LSFT),KC_LEFT, KC_RGHT, LALT_T(KC_APP), RCTL_T(KC_ESC), KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, TT(SYMB), - KC_SPC, KC_BSPC, KC_LGUI, KC_RALT, KC_TAB, KC_ENT + KC_DEL, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB), TG(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_HYPR, KC_MEH, KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN), LGUI_T(KC_QUOT), + KC_LSFT, LCTL_T(KC_Z),KC_X,KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, RCTL_T(KC_SLSH), KC_RSFT, + LT(SYMB,KC_GRV),WEBUSB_PAIR,A(KC_LSFT),KC_LEFT, KC_RGHT, LALT_T(KC_APP), RCTL_T(KC_ESC), KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, MO(SYMB), + KC_SPC, KC_BSPC, KC_LGUI, KC_LALT, KC_TAB, KC_ENT ), [SYMB] = LAYOUT_moonlander( - VRSN, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, - KC_TRNS, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_TRNS, KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12, - KC_TRNS, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRV, KC_TRNS, KC_TRNS, KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS, - KC_TRNS, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS, - EEP_RST, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAI, RGB_TOG, KC_TRNS, KC_DOT, KC_0, KC_EQL, KC_TRNS, - RGB_HUD, RGB_VAD, RGB_HUI, TOGGLE_LAYER_COLOR,KC_TRNS, KC_TRNS + VRSN, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + _______, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, _______, _______, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12, + _______, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRV, _______, _______, KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, _______, + _______, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, _______, + EEP_RST, _______, _______, _______, _______, RGB_VAI, RGB_TOG, _______, KC_DOT, KC_0, KC_EQL, _______, + RGB_HUD, RGB_VAD, RGB_HUI, TOGGLE_LAYER_COLOR,_______, _______ ), [MDIA] = LAYOUT_moonlander( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, KC_TRNS, KC_TRNS, KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + LED_LEVEL,_______,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + _______, _______, _______, KC_MS_U, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MNXT, _______, _______, + _______, _______, _______, KC_BTN1, KC_BTN2, _______, _______, KC_VOLU, KC_VOLD, KC_MUTE, _______, _______, + _______, _______, _______, _______, _______, _______ ), }; -layer_state_t layer_state_set_user(layer_state_t state) { - ML_LED_1(false); - ML_LED_2(false); - ML_LED_3(false); - ML_LED_4(false); - ML_LED_5(false); - ML_LED_6(false); - - switch (get_highest_layer(state)) { - case 1: - ML_LED_1(1); - ML_LED_4(1); - break; - case 2: - ML_LED_2(1); - ML_LED_5(1); - break; - case 3: - ML_LED_3(1); - break; - case 4: - ML_LED_4(1); - break; - case 5: - ML_LED_5(1); - break; - case 6: - ML_LED_6(1); - break; - default: - break; - } - - return state; -} - bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (record->event.pressed) { switch (keycode) { diff --git a/keyboards/moonlander/matrix.c b/keyboards/moonlander/matrix.c index 774b01187d3d..df498bd6e38d 100644 --- a/keyboards/moonlander/matrix.c +++ b/keyboards/moonlander/matrix.c @@ -1,6 +1,6 @@ /* Copyright 2020 ZSA Technology Labs, Inc <@zsa> * Copyright 2020 Jack Humbert - * Copyright 2020 Drashna Jael're + * Copyright 2020 Christopher Courtney (@drashna) * * 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 @@ -268,3 +268,32 @@ void matrix_print(void) { printf("\n"); } } + +// DO NOT REMOVE +// Needed for proper wake/sleep +void matrix_power_up(void) { + mcp23018_init(); + + // outputs + setPinOutput(B10); + setPinOutput(B11); + setPinOutput(B12); + setPinOutput(B13); + setPinOutput(B14); + setPinOutput(B15); + + // inputs + setPinInputLow(A0); + setPinInputLow(A1); + setPinInputLow(A2); + setPinInputLow(A3); + setPinInputLow(A6); + setPinInputLow(A7); + setPinInputLow(B0); + + // initialize matrix state: all keys off + for (uint8_t i=0; i < MATRIX_ROWS; i++) { + matrix[i] = 0; + } + +} diff --git a/keyboards/moonlander/moonlander.c b/keyboards/moonlander/moonlander.c index 403e6aef8b38..39f61b5c406d 100644 --- a/keyboards/moonlander/moonlander.c +++ b/keyboards/moonlander/moonlander.c @@ -1,6 +1,6 @@ /* Copyright 2020 ZSA Technology Labs, Inc <@zsa> * Copyright 2020 Jack Humbert - * Copyright 2020 Drashna Jael're + * Copyright 2020 Christopher Courtney (@drashna) * * 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 @@ -159,10 +159,10 @@ void keyboard_pre_init_kb(void) { keyboard_pre_init_user(); } -#ifdef ORYX_CONFIGURATOR +#if !defined(MOONLANDER_USER_LEDS) layer_state_t layer_state_set_kb(layer_state_t state) { state = layer_state_set_user(state); - if (is_launching) return state; + if (is_launching || !keyboard_config.led_level) return state; ML_LED_1(false); ML_LED_2(false); @@ -415,6 +415,24 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { if (!record->event.pressed && !webusb_state.pairing) layer_state_set_kb(layer_state); break; #endif +#if !defined(MOONLANDER_USER_LEDS) + case LED_LEVEL: + if (record->event.pressed) { + keyboard_config.led_level ^= 1; + eeconfig_update_kb(keyboard_config.raw); + if (keyboard_config.led_level) { + layer_state_set_kb(layer_state); + } else { + ML_LED_1(false); + ML_LED_2(false); + ML_LED_3(false); + ML_LED_4(false); + ML_LED_5(false); + ML_LED_6(false); + } + } + break; +#endif #ifdef RGB_MATRIX_ENABLE case TOGGLE_LAYER_COLOR: if (record->event.pressed) { @@ -449,6 +467,11 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { void matrix_init_kb(void) { keyboard_config.raw = eeconfig_read_kb(); + if (!keyboard_config.led_level && !keyboard_config.led_level_res) { + keyboard_config.led_level = true; + keyboard_config.led_level_res = 0b11; + eeconfig_update_kb(keyboard_config.raw); + } #ifdef RGB_MATRIX_ENABLE if (keyboard_config.rgb_matrix_enable) { rgb_matrix_set_flags(LED_FLAG_ALL); @@ -461,6 +484,8 @@ void matrix_init_kb(void) { void eeconfig_init_kb(void) { // EEPROM is getting reset! keyboard_config.raw = 0; keyboard_config.rgb_matrix_enable = true; + keyboard_config.led_level = true; + keyboard_config.led_level_res = 0b11; eeconfig_update_kb(keyboard_config.raw); eeconfig_init_user(); } diff --git a/keyboards/moonlander/moonlander.h b/keyboards/moonlander/moonlander.h index 0e2dc880e982..08bec5c070e7 100644 --- a/keyboards/moonlander/moonlander.h +++ b/keyboards/moonlander/moonlander.h @@ -1,6 +1,6 @@ /* Copyright 2020 ZSA Technology Labs, Inc <@zsa> * Copyright 2020 Jack Humbert - * Copyright 2020 Drashna Jael're + * Copyright 2020 Christopher Courtney (@drashna) * * 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 @@ -63,6 +63,7 @@ extern bool mcp23018_leds[]; enum planck_ez_keycodes { TOGGLE_LAYER_COLOR = SAFE_RANGE, + LED_LEVEL, ML_SAFE_RANGE, }; @@ -75,6 +76,8 @@ typedef union { struct { bool disable_layer_led :1; bool rgb_matrix_enable :1; + bool led_level :1; + uint8_t led_level_res :2; // DO NOT REMOVE }; } keyboard_config_t; diff --git a/keyboards/planck/ez/config.h b/keyboards/planck/ez/config.h index 0cb428dd858a..91723e185c1b 100644 --- a/keyboards/planck/ez/config.h +++ b/keyboards/planck/ez/config.h @@ -17,6 +17,14 @@ #pragma once +#undef VENDOR_ID +#define VENDOR_ID 0x3297 +#undef PRODUCT_ID +#define PRODUCT_ID 0xC6CE +#undef MANUFACTURER +#define MANUFACTURER ZSA Technology Labs +#undef PRODUCT +#define PRODUCT Planck EZ /* USB Device descriptor parameter */ #define DEVICE_VER 0x0000 diff --git a/keyboards/planck/ez/ez.c b/keyboards/planck/ez/ez.c index 8369ce50c10e..5371c7853519 100644 --- a/keyboards/planck/ez/ez.c +++ b/keyboards/planck/ez/ez.c @@ -18,7 +18,6 @@ #include "hal.h" keyboard_config_t keyboard_config; - #ifdef RGB_MATRIX_ENABLE const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { /* Refer to IS31 manual for these locations diff --git a/keyboards/planck/ez/ez.h b/keyboards/planck/ez/ez.h index 352deb64765d..f989cd93863d 100644 --- a/keyboards/planck/ez/ez.h +++ b/keyboards/planck/ez/ez.h @@ -17,6 +17,10 @@ #include "planck.h" +#ifdef KEYBOARD_planck_ez_glow +# include "glow.h" +#endif + #define LAYOUT_planck_1x2uC( \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \ diff --git a/keyboards/planck/ez/glow/config.h b/keyboards/planck/ez/glow/config.h new file mode 100644 index 000000000000..21a339da2893 --- /dev/null +++ b/keyboards/planck/ez/glow/config.h @@ -0,0 +1,24 @@ +/* + * Copyright 2018 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 . + */ + +#pragma once + +#undef PRODUCT_ID +#define PRODUCT_ID 0xC6CF + +#undef PRODUCT +#define PRODUCT Planck EZ Glow diff --git a/keyboards/planck/ez/glow/glow.c b/keyboards/planck/ez/glow/glow.c new file mode 100644 index 000000000000..1813ccae093e --- /dev/null +++ b/keyboards/planck/ez/glow/glow.c @@ -0,0 +1 @@ +#include "glow.h" diff --git a/keyboards/planck/ez/glow/glow.h b/keyboards/planck/ez/glow/glow.h new file mode 100644 index 000000000000..d8a01f43592f --- /dev/null +++ b/keyboards/planck/ez/glow/glow.h @@ -0,0 +1,3 @@ +#pragma once + +#include "ez.h" diff --git a/keyboards/planck/ez/glow/rules.mk b/keyboards/planck/ez/glow/rules.mk new file mode 100644 index 000000000000..575a9c8fa411 --- /dev/null +++ b/keyboards/planck/ez/glow/rules.mk @@ -0,0 +1 @@ +RGB_MATRIX_ENABLE = IS31FL3737 diff --git a/keyboards/planck/ez/readme.md b/keyboards/planck/ez/readme.md index df8d1b46bb9d..247bf7448afa 100644 --- a/keyboards/planck/ez/readme.md +++ b/keyboards/planck/ez/readme.md @@ -14,6 +14,12 @@ Make example for this keyboard (after setting up your build environment): 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). +# Planck EZ Glow + +For the per key RGB version of this keyboard, you want to use the "glow" subdirectory. For example: + + make planck/ez/glow:default + ## Planck EZ Configuration (from Oryx) ### Indicator LEDs diff --git a/keyboards/planck/ez/rules.mk b/keyboards/planck/ez/rules.mk index ff4d8daedc66..cd8354b2622f 100644 --- a/keyboards/planck/ez/rules.mk +++ b/keyboards/planck/ez/rules.mk @@ -24,10 +24,8 @@ API_SYSEX_ENABLE = no SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend #SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend -CUSTOM_MATRIX = no # Custom matrix file # SERIAL_LINK_ENABLE = yes ENCODER_ENABLE = yes -RGB_MATRIX_ENABLE = IS31FL3737 LAYOUTS = ortho_4x12 planck_mit LAYOUTS_HAS_RGB = no diff --git a/keyboards/planck/keymaps/eosti/config.h b/keyboards/planck/keymaps/eosti/config.h new file mode 100644 index 000000000000..54813bf06f6f --- /dev/null +++ b/keyboards/planck/keymaps/eosti/config.h @@ -0,0 +1,55 @@ +/* Copyright 2020 Reid Sox-Harris + * + * 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 . + */ + +#pragma once + +#ifdef AUDIO_ENABLE + #define STARTUP_SONG SONG(PLANCK_SOUND) + // #define STARTUP_SONG SONG(NO_SOUND) + + #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \ + SONG(COLEMAK_SOUND), \ + SONG(DVORAK_SOUND) \ + } +#endif + +/* + * MIDI options + */ + +/* Prevent use of disabled MIDI features in the keymap */ +//#define MIDI_ENABLE_STRICT 1 + +/* enable basic MIDI features: + - MIDI notes can be sent when in Music mode is on +*/ + +// #define MIDI_BASIC + +/* enable advanced MIDI features: + - MIDI notes can be added to the keymap + - Octave shift and transpose + - Virtual sustain, portamento, and modulation wheel + - etc. +*/ +#define MIDI_ADVANCED + +/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ +//#define MIDI_TONE_KEYCODE_OCTAVES 2 + +// Most tactile encoders have detents every 4 stages + #define ENCODER_RESOLUTION 4 + diff --git a/keyboards/planck/keymaps/eosti/keymap.c b/keyboards/planck/keymaps/eosti/keymap.c new file mode 100644 index 000000000000..3f1c750cfcdb --- /dev/null +++ b/keyboards/planck/keymaps/eosti/keymap.c @@ -0,0 +1,122 @@ +/* Copyright 2020 Reid Sox-Harris + * + * 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 . + */ + +#include QMK_KEYBOARD_H +#include "muse.h" + +enum planck_layers { + _QWERTY, + _GAME, + _UPPER, + _LOWER, + _UTILS +}; + +enum planck_keycodes { + TMUX_WN = SAFE_RANGE, + TMUX_WL +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case TMUX_WN: // Moves to the next tmux window + if (record->event.pressed) { + SEND_STRING(SS_LCTRL("a") "n"); + } + break; + + case TMUX_WL: // Moves to the last tmux window + if (record->event.pressed) { + SEND_STRING(SS_LCTRL("a") "n"); + } + break; + } + return true; +}; + +#define UPPER MO(_UPPER) +#define LOWER MO(_LOWER) +#define UTILS MO(_UTILS) +#define GAME TG(_GAME) + +#define WM_R LCTL(KC_RGHT) // Moves the MacOS WM window to the right +#define WM_L LCTL(KC_LEFT) // ...and to the left +#define WM_MC LCTL(KC_UP) // Opens MacOS Mission Control +#define WEB_R LGUI(KC_RCBR) // Move one tab to the right, works on Firefox, Chrome +#define WEB_L LGUI(KC_LCBR) // ...and to the left +#define TMUX_U RALT(KC_UP) // Changes focus in tmux, requires a keybinding in tmux.conf +#define TMUX_D RALT(KC_DOWN) +#define TMUX_R RALT(KC_RGHT) +#define TMUX_L RALT(KC_LEFT) + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QWERTY] = LAYOUT_planck_grid( + // ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS, + // ├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + // ├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_BSPC, + // ├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + KC_NO, KC_NO, KC_LCTL, KC_LGUI, UPPER, KC_ENT, KC_SPC, LOWER, KC_RALT, KC_VOLU, KC_VOLD, KC_MUTE + // └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ + ), + [_GAME] = LAYOUT_planck_grid( + // ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + // ├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + // ├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + // ├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + _______, _______, _______, _______, _______, KC_SPC, KC_ENT, _______, _______, _______, _______, _______ + // └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ + ), + [_UPPER] = LAYOUT_planck_grid( + // ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL, + // ├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + _______, WEB_L, WEB_R, WM_MC, WM_L, WM_R, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_PGUP, KC_BSLS, + // ├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + _______, KC_NO, KC_LABK, KC_LBRC, KC_LPRN, KC_LCBR, KC_RCBR, KC_RPRN, KC_RBRC, KC_RABK, KC_PGDN, _______, + // ├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + _______, _______, _______, _______, UPPER, _______, _______, UTILS, _______, KC_MPRV, KC_MPLY, KC_MNXT + // └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ + ), + [_LOWER] = LAYOUT_planck_grid( + // ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PLUS, + // ├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + _______, TMUX_WL, TMUX_WN, KC_NO, KC_NO, KC_NO, TMUX_L, TMUX_D, TMUX_U, TMUX_R, KC_NO, KC_PIPE, + // ├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + _______, KC_NO, _______, _______, _______, _______, _______, _______, _______, _______, KC_NO, KC_DEL, + // ├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + _______, _______, _______, _______, UTILS, _______, _______, LOWER, _______, _______, _______, _______ + // └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ + ), + [_UTILS] = LAYOUT_planck_grid( + // ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ + KC_CAPS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + // ├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_NO, KC_INS, KC_HOME, AU_ON, KC_NO, GAME, + // ├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + KC_NO, RGB_RMOD,RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, KC_SLEP, KC_DEL, KC_END, AU_OFF, KC_NO, RESET, + // ├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + _______, _______, _______, _______, UTILS, _______, _______, UTILS, _______, _______, _______, _______ + // └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ + ) +}; diff --git a/keyboards/planck/keymaps/eosti/readme.md b/keyboards/planck/keymaps/eosti/readme.md new file mode 100644 index 000000000000..eb775c52ce12 --- /dev/null +++ b/keyboards/planck/keymaps/eosti/readme.md @@ -0,0 +1,9 @@ +# eosti's Planck (rev6) Keymap +## Features +* QWERTY main layout +* Gaming sublayer that switches space and enter for ease of WASDing +* Common programming enclosers {([<>])} easily accessable +* Vim-style HJKL arrow navigation +* tmux keybindings for easy navigation +* Plays well with my Iris Rev.3 keymap for ease of switching +* I like it diff --git a/keyboards/planck/keymaps/eosti/rules.mk b/keyboards/planck/keymaps/eosti/rules.mk new file mode 100644 index 000000000000..dcf16bef3994 --- /dev/null +++ b/keyboards/planck/keymaps/eosti/rules.mk @@ -0,0 +1 @@ +SRC += muse.c diff --git a/keyboards/planck/keymaps/sigul/keymap.c b/keyboards/planck/keymaps/sigul/keymap.c index b4b983d9c0e8..0bc0d9e030c7 100644 --- a/keyboards/planck/keymaps/sigul/keymap.c +++ b/keyboards/planck/keymaps/sigul/keymap.c @@ -40,7 +40,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------------------------------------------------. * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | F1 | F2 | F3 | F4 | F5 | | _ | = | | | | + * |Enter | F1 | F2 | F3 | F4 | F5 | | _ | = | | | | * |------+------+------+------+------+------|------+------+------+------+------+------| * | | F6 | F7 | F8 | F9 | |NUMPAD| | | { | } | | | * |------+------+------+------+------+------+------+------+------+------+------+------| @@ -50,7 +50,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_LOWER] = LAYOUT_ortho_4x12( IT_TILDE, IT_EXLM, IT_AT, IT_SHRP, IT_DLR, IT_PERC, IT_CRC, IT_AMPR, IT_ASTR, IT_LPRN, IT_RPRN, KC_DEL, - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, S(IT_MINS), IT_EQL, S(IT_EACC), IT_OACC, IT_AACC, + KC_ENT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, S(IT_MINS), IT_EQL, S(IT_EACC), IT_OACC, IT_AACC, _______, KC_F6, KC_F7, KC_F8, KC_F9, _______, NUMPAD, S(IT_UACC), IT_PLMN, IT_LCBR, IT_RCBR, IT_PIPE, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY ), @@ -68,8 +68,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_RAISE] = LAYOUT_ortho_4x12( IT_GRAVE, IT_1, IT_2, IT_3, IT_4, IT_5, IT_6, IT_7, IT_8, IT_9, IT_0, _______, - _______, _______, SECRET2, SECRET1, _______, _______, _______, IT_MINS, IT_PLUS, IT_EACC, IT_IACC, IT_UACC, - KC_CAPS, _______, SECRET0, SECRET3, SECRET4, _______, NUMPAD, _______, _______, IT_LBRC, IT_RBRC, IT_BSLS, + _______, _______, SECRET0, SECRET1, _______, _______, _______, IT_MINS, IT_PLUS, IT_EACC, IT_IACC, IT_UACC, + KC_CAPS, _______, SECRET2, SECRET3, SECRET4, _______, NUMPAD, SECRET5, _______, IT_LBRC, IT_RBRC, IT_BSLS, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END ), diff --git a/keyboards/preonic/keymaps/dudeofawesome/keymap.c b/keyboards/preonic/keymaps/dudeofawesome/keymap.c index 3d1cec74b8d1..2d2a252b23b2 100644 --- a/keyboards/preonic/keymaps/dudeofawesome/keymap.c +++ b/keyboards/preonic/keymaps/dudeofawesome/keymap.c @@ -256,10 +256,14 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { #ifdef BACKLIGHT_ENABLE backlight_step(); #endif - PORTE &= ~(1<<6); + #ifdef __AVR__ + writePinLow(E6); + #endif } else { unregister_code(KC_RSFT); - PORTE |= (1<<6); + #ifdef __AVR__ + writePinHigh(E6); + #endif } return false; } diff --git a/keyboards/reviung34/config.h b/keyboards/reviung34/config.h index 5ebb631209a1..5cd46caba9c8 100755 --- a/keyboards/reviung34/config.h +++ b/keyboards/reviung34/config.h @@ -21,7 +21,7 @@ along with this program. If not, see . /* USB Device descriptor parameter */ #define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 +#define PRODUCT_ID 0x4E03 #define DEVICE_VER 0x0001 #define MANUFACTURER gtips #define PRODUCT reviung34 diff --git a/keyboards/tkc/candybar/bootloader_defs.h b/keyboards/tkc/candybar/bootloader_defs.h deleted file mode 100644 index 43eb7b2f6282..000000000000 --- a/keyboards/tkc/candybar/bootloader_defs.h +++ /dev/null @@ -1,7 +0,0 @@ -/* Address for jumping to bootloader on STM32 chips. */ -/* It is chip dependent, the correct number can be looked up here: - * http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf - * This also requires a patch to chibios: - * /tmk_core/tool/chibios/ch-bootloader-jump.patch - */ -#define STM32_BOOTLOADER_ADDRESS 0x1FFFC800 diff --git a/keyboards/whitefox/config.h b/keyboards/whitefox/config.h index 87af4edcfcb3..4d7a460d266a 100644 --- a/keyboards/whitefox/config.h +++ b/keyboards/whitefox/config.h @@ -15,42 +15,78 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#ifndef CONFIG_H -#define CONFIG_H +#pragma once /* USB Device descriptor parameter */ -#define VENDOR_ID 0x1c11 -#define PRODUCT_ID 0xb04d -#define DEVICE_VER 0x0001 -#define MANUFACTURER Input Club -#define PRODUCT WhiteFox/QMK +#define VENDOR_ID 0x1C11 +#define PRODUCT_ID 0xB04D +#define DEVICE_VER 0x0001 +#define MANUFACTURER Input:Club +#define PRODUCT WhiteFox (QMK) /* key matrix size */ -#define MATRIX_ROWS 9 -#define MATRIX_COLS 8 +#define MATRIX_ROWS 8 +#define MATRIX_COLS 9 -/* number of backlight levels */ -#define BACKLIGHT_LEVELS 3 +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS { D0, D1, D4, D5, D6, D7, C1, C2 } +#define MATRIX_COL_PINS { B2, B3, B18, B19, C0, C8, C9, C10, C11 } +#define UNUSED_PINS -#define LED_BRIGHTNESS_LO 100 -#define LED_BRIGHTNESS_HI 255 +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW -/* define if matrix has ghost */ -//#define MATRIX_HAS_GHOST +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 -/* Set 0 if debouncing isn't needed */ -#define DEBOUNCE 6 +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ //#define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ //#define LOCKING_RESYNC_ENABLE -/* Keymap for Infinity prototype */ -//#define INFINITY_PROTOTYPE +/* number of backlight levels */ +#define BACKLIGHT_LEVELS 3 + +#define LED_BRIGHTNESS_LO 100 +#define LED_BRIGHTNESS_HI 255 -/* Keymap for Infinity 1.1a (first revision with LED support) */ -//#define INFINITY_LED +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is useful for the Windows task manager shortcut (ctrl+shift+esc). + */ +//#define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO /* * Feature disable options @@ -67,7 +103,11 @@ along with this program. If not, see . //#define NO_ACTION_LAYER //#define NO_ACTION_TAPPING //#define NO_ACTION_ONESHOT -//#define NO_ACTION_MACRO -//#define NO_ACTION_FUNCTION -#endif +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +/* Bootmagic Lite key configuration */ +//#define BOOTMAGIC_LITE_ROW 0 +//#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/whitefox/info.json b/keyboards/whitefox/info.json index fc2ffea12f37..715f728104d4 100644 --- a/keyboards/whitefox/info.json +++ b/keyboards/whitefox/info.json @@ -1,91 +1,544 @@ { - "keyboard_name": "Whitefox", - "maintainer": "qmk", - "width": 16, - "height": 5, - "layouts": { - "LAYOUT": { - "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":2, "w":1.25}, {"x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4}, {"label":"Win", "x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}] - }, - - "LAYOUT_truefox": { - "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}] - }, - - "LAYOUT_aria": { - "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}] - }, - "LAYOUT_vanilla": { - "layout": [ - {"label": "~","x": 0,"y": 0}, - {"label": "!","x": 1,"y": 0}, - {"label": "@","x": 2,"y": 0}, - {"label": "#","x": 3,"y": 0}, - {"label": "$","x": 4,"y": 0}, - {"label": "%","x": 5,"y": 0}, - {"label": "^","x": 6,"y": 0}, - {"label": "&","x": 7,"y": 0}, - {"label": "*","x": 8,"y": 0}, - {"label": "(","x": 9,"y": 0}, - {"label": ")","x": 10,"y": 0}, - {"label": "_","x": 11,"y": 0}, - {"label": "+","x": 12,"y": 0}, - {"label": "Backspace","x": 13,"y": 0,"w": 2}, - {"x": 15,"y": 0}, - {"label": "Tab","x": 0,"y": 1,"w": 1.5}, - {"label": "Q","x": 1.5,"y": 1}, - {"label": "W","x": 2.5,"y": 1}, - {"label": "E","x": 3.5,"y": 1}, - {"label": "R","x": 4.5,"y": 1}, - {"label": "T","x": 5.5,"y": 1}, - {"label": "Y","x": 6.5,"y": 1}, - {"label": "U","x": 7.5,"y": 1}, - {"label": "I","x": 8.5,"y": 1}, - {"label": "O","x": 9.5,"y": 1}, - {"label": "P","x": 10.5,"y": 1}, - {"label": "{","x": 11.5,"y": 1}, - {"label": "}","x": 12.5,"y": 1}, - {"label": "|","x": 13.5,"y": 1,"w": 1.5}, - {"x": 15,"y": 1}, - {"label": "Caps Lock","x": 0,"y": 2,"w": 1.75}, - {"label": "A","x": 1.75,"y": 2}, - {"label": "S","x": 2.75,"y": 2}, - {"label": "D","x": 3.75,"y": 2}, - {"label": "F","x": 4.75,"y": 2}, - {"label": "G","x": 5.75,"y": 2}, - {"label": "H","x": 6.75,"y": 2}, - {"label": "J","x": 7.75,"y": 2}, - {"label": "K","x": 8.75,"y": 2}, - {"label": "L","x": 9.75,"y": 2}, - {"label": ":","x": 10.75,"y": 2}, - {"label": "\"","x": 11.75,"y": 2}, - {"label": "Enter","x": 12.75,"y": 2,"w": 2.25}, - {"x": 15,"y": 2}, - {"label": "Shift","x": 0,"y": 3,"w": 2.25}, - {"label": "Z","x": 2.25,"y": 3}, - {"label": "X","x": 3.25,"y": 3}, - {"label": "C","x": 4.25,"y": 3}, - {"label": "V","x": 5.25,"y": 3}, - {"label": "B","x": 6.25,"y": 3}, - {"label": "N","x": 7.25,"y": 3}, - {"label": "M","x": 8.25,"y": 3}, - {"label": "<","x": 9.25,"y": 3}, - {"label": ">","x": 10.25,"y": 3}, - {"label": "?","x": 11.25,"y": 3}, - {"label": "Shift","x": 12.25,"y": 3,"w": 1.75}, - {"x": 14,"y": 3}, - {"x": 15,"y": 3}, - {"label": "Ctrl","x": 0,"y": 4,"w": 1.25}, - {"label": "Win","x": 1.25,"y": 4,"w": 1.25}, - {"label": "Alt","x": 2.5,"y": 4,"w": 1.25}, - {"x": 3.75,"y": 4,"w": 6.25}, - {"label": "Alt","x": 10,"y": 4,"w": 1}, - {"label": "Win","x": 11,"y": 4,"w": 1}, - {"label": "Ctrl","x": 12,"y": 4,"w": 1}, - {"x": 13,"y": 4}, - {"x": 14,"y": 4}, - {"x": 15,"y": 4} - ] + "keyboard_name": "Whitefox", + "maintainer": "qmk", + "width": 16, + "height": 5, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, + {"x": 5, "y": 0}, + {"x": 6, "y": 0}, + {"x": 7, "y": 0}, + {"x": 8, "y": 0}, + {"x": 9, "y": 0}, + {"x": 10, "y": 0}, + {"x": 11, "y": 0}, + {"x": 12, "y": 0}, + {"x": 13, "y": 0}, + {"x": 14, "y": 0}, + {"x": 15, "y": 0}, + + {"x": 0, "y": 1, "w": 1.5}, + {"x": 1.5, "y": 1}, + {"x": 2.5, "y": 1}, + {"x": 3.5, "y": 1}, + {"x": 4.5, "y": 1}, + {"x": 5.5, "y": 1}, + {"x": 6.5, "y": 1}, + {"x": 7.5, "y": 1}, + {"x": 8.5, "y": 1}, + {"x": 9.5, "y": 1}, + {"x": 10.5, "y": 1}, + {"x": 11.5, "y": 1}, + {"x": 12.5, "y": 1}, + {"x": 13.5, "y": 1, "w": 1.5}, + {"x": 15, "y": 1}, + + {"x": 0, "y": 2, "w": 1.75}, + {"x": 1.75, "y": 2}, + {"x": 2.75, "y": 2}, + {"x": 3.75, "y": 2}, + {"x": 4.75, "y": 2}, + {"x": 5.75, "y": 2}, + {"x": 6.75, "y": 2}, + {"x": 7.75, "y": 2}, + {"x": 8.75, "y": 2}, + {"x": 9.75, "y": 2}, + {"x": 10.75, "y": 2}, + {"x": 11.75, "y": 2}, + {"x": 12.75, "y": 2}, + {"x": 13.75, "y": 2, "w": 1.25}, + {"x": 15, "y": 2}, + + {"x": 0, "y": 3, "w": 1.25}, + {"x": 1.25, "y": 3}, + {"x": 2.25, "y": 3}, + {"x": 3.25, "y": 3}, + {"x": 4.25, "y": 3}, + {"x": 5.25, "y": 3}, + {"x": 6.25, "y": 3}, + {"x": 7.25, "y": 3}, + {"x": 8.25, "y": 3}, + {"x": 9.25, "y": 3}, + {"x": 10.25, "y": 3}, + {"x": 11.25, "y": 3}, + {"x": 12.25, "y": 3, "w": 1.75}, + {"x": 14, "y": 3}, + {"x": 15, "y": 3}, + + {"x": 0, "y": 4, "w": 1.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 6.25}, + {"x": 10, "y": 4}, + {"x": 11, "y": 4}, + {"x": 12, "y": 4}, + {"x": 13, "y": 4}, + {"x": 14, "y": 4}, + {"x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, + {"x": 5, "y": 0}, + {"x": 6, "y": 0}, + {"x": 7, "y": 0}, + {"x": 8, "y": 0}, + {"x": 9, "y": 0}, + {"x": 10, "y": 0}, + {"x": 11, "y": 0}, + {"x": 12, "y": 0}, + {"x": 13, "y": 0, "w": 2}, + {"x": 15, "y": 0}, + + {"x": 0, "y": 1, "w": 1.5}, + {"x": 1.5, "y": 1}, + {"x": 2.5, "y": 1}, + {"x": 3.5, "y": 1}, + {"x": 4.5, "y": 1}, + {"x": 5.5, "y": 1}, + {"x": 6.5, "y": 1}, + {"x": 7.5, "y": 1}, + {"x": 8.5, "y": 1}, + {"x": 9.5, "y": 1}, + {"x": 10.5, "y": 1}, + {"x": 11.5, "y": 1}, + {"x": 12.5, "y": 1}, + {"x": 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}, + {"x": 11, "y": 4}, + {"x": 12, "y": 4}, + {"x": 13, "y": 4}, + {"x": 14, "y": 4}, + {"x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, + {"x": 5, "y": 0}, + {"x": 6, "y": 0}, + {"x": 7, "y": 0}, + {"x": 8, "y": 0}, + {"x": 9, "y": 0}, + {"x": 10, "y": 0}, + {"x": 11, "y": 0}, + {"x": 12, "y": 0}, + {"x": 13, "y": 0, "w": 2}, + {"x": 15, "y": 0}, + + {"x": 0, "y": 1, "w": 1.5}, + {"x": 1.5, "y": 1}, + {"x": 2.5, "y": 1}, + {"x": 3.5, "y": 1}, + {"x": 4.5, "y": 1}, + {"x": 5.5, "y": 1}, + {"x": 6.5, "y": 1}, + {"x": 7.5, "y": 1}, + {"x": 8.5, "y": 1}, + {"x": 9.5, "y": 1}, + {"x": 10.5, "y": 1}, + {"x": 11.5, "y": 1}, + {"x": 12.5, "y": 1}, + {"x": 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} + ] + }, + "LAYOUT_65_ansi_blocker_split_bs": { + "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} + ] + }, + "LAYOUT_65_iso": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, + {"x": 5, "y": 0}, + {"x": 6, "y": 0}, + {"x": 7, "y": 0}, + {"x": 8, "y": 0}, + {"x": 9, "y": 0}, + {"x": 10, "y": 0}, + {"x": 11, "y": 0}, + {"x": 12, "y": 0}, + {"x": 13, "y": 0, "w": 2}, + {"x": 15, "y": 0}, + + {"x": 0, "y": 1, "w": 1.5}, + {"x": 1.5, "y": 1}, + {"x": 2.5, "y": 1}, + {"x": 3.5, "y": 1}, + {"x": 4.5, "y": 1}, + {"x": 5.5, "y": 1}, + {"x": 6.5, "y": 1}, + {"x": 7.5, "y": 1}, + {"x": 8.5, "y": 1}, + {"x": 9.5, "y": 1}, + {"x": 10.5, "y": 1}, + {"x": 11.5, "y": 1}, + {"x": 12.5, "y": 1}, + {"x": 15, "y": 1}, + + {"x": 0, "y": 2, "w": 1.75}, + {"x": 1.75, "y": 2}, + {"x": 2.75, "y": 2}, + {"x": 3.75, "y": 2}, + {"x": 4.75, "y": 2}, + {"x": 5.75, "y": 2}, + {"x": 6.75, "y": 2}, + {"x": 7.75, "y": 2}, + {"x": 8.75, "y": 2}, + {"x": 9.75, "y": 2}, + {"x": 10.75, "y": 2}, + {"x": 11.75, "y": 2}, + {"x": 12.75, "y": 2}, + {"x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"x": 15, "y": 2}, + + {"x": 0, "y": 3, "w": 1.25}, + {"x": 1.25, "y": 3}, + {"x": 2.25, "y": 3}, + {"x": 3.25, "y": 3}, + {"x": 4.25, "y": 3}, + {"x": 5.25, "y": 3}, + {"x": 6.25, "y": 3}, + {"x": 7.25, "y": 3}, + {"x": 8.25, "y": 3}, + {"x": 9.25, "y": 3}, + {"x": 10.25, "y": 3}, + {"x": 11.25, "y": 3}, + {"x": 12.25, "y": 3, "w": 1.75}, + {"x": 14, "y": 3}, + {"x": 15, "y": 3}, + + {"x": 0, "y": 4, "w": 1.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 6.25}, + {"x": 10, "y": 4}, + {"x": 11, "y": 4}, + {"x": 12, "y": 4}, + {"x": 13, "y": 4}, + {"x": 14, "y": 4}, + {"x": 15, "y": 4} + ] + }, + "LAYOUT_65_iso_blocker": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, + {"x": 5, "y": 0}, + {"x": 6, "y": 0}, + {"x": 7, "y": 0}, + {"x": 8, "y": 0}, + {"x": 9, "y": 0}, + {"x": 10, "y": 0}, + {"x": 11, "y": 0}, + {"x": 12, "y": 0}, + {"x": 13, "y": 0, "w": 2}, + {"x": 15, "y": 0}, + + {"x": 0, "y": 1, "w": 1.5}, + {"x": 1.5, "y": 1}, + {"x": 2.5, "y": 1}, + {"x": 3.5, "y": 1}, + {"x": 4.5, "y": 1}, + {"x": 5.5, "y": 1}, + {"x": 6.5, "y": 1}, + {"x": 7.5, "y": 1}, + {"x": 8.5, "y": 1}, + {"x": 9.5, "y": 1}, + {"x": 10.5, "y": 1}, + {"x": 11.5, "y": 1}, + {"x": 12.5, "y": 1}, + {"x": 15, "y": 1}, + + {"x": 0, "y": 2, "w": 1.75}, + {"x": 1.75, "y": 2}, + {"x": 2.75, "y": 2}, + {"x": 3.75, "y": 2}, + {"x": 4.75, "y": 2}, + {"x": 5.75, "y": 2}, + {"x": 6.75, "y": 2}, + {"x": 7.75, "y": 2}, + {"x": 8.75, "y": 2}, + {"x": 9.75, "y": 2}, + {"x": 10.75, "y": 2}, + {"x": 11.75, "y": 2}, + {"x": 12.75, "y": 2}, + {"x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"x": 15, "y": 2}, + + {"x": 0, "y": 3, "w": 1.25}, + {"x": 1.25, "y": 3}, + {"x": 2.25, "y": 3}, + {"x": 3.25, "y" :3}, + {"x": 4.25, "y": 3}, + {"x": 5.25, "y": 3}, + {"x": 6.25, "y": 3}, + {"x": 7.25, "y": 3}, + {"x": 8.25, "y": 3}, + {"x": 9.25, "y": 3}, + {"x": 10.25, "y": 3}, + {"x": 11.25, "y": 3}, + {"x": 12.25, "y": 3, "w": 1.75}, + {"x": 14, "y": 3}, + {"x": 15, "y": 3}, + + {"x": 0, "y": 4, "w": 1.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 6.25}, + {"x": 10, "y": 4, "w": 1.25}, + {"x": 11.25, "y": 4, "w": 1.25}, + {"x": 13, "y": 4}, + {"x": 14, "y": 4}, + {"x": 15, "y": 4} + ] + }, + "LAYOUT_65_iso_blocker_split_bs": { + "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": 15, "y": 1}, + + {"x": 0, "y": 2, "w": 1.75}, + {"x": 1.75, "y": 2}, + {"x": 2.75, "y": 2}, + {"x": 3.75, "y": 2}, + {"x": 4.75, "y": 2}, + {"x": 5.75, "y": 2}, + {"x": 6.75, "y": 2}, + {"x": 7.75, "y": 2}, + {"x": 8.75, "y": 2}, + {"x": 9.75, "y": 2}, + {"x": 10.75, "y": 2}, + {"x": 11.75, "y": 2}, + {"x": 12.75, "y": 2}, + {"x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"x": 15, "y": 2}, + + {"x": 0, "y": 3, "w": 1.25}, + {"x": 1.25, "y": 3}, + {"x": 2.25, "y": 3}, + {"x": 3.25, "y" :3}, + {"x": 4.25, "y": 3}, + {"x": 5.25, "y": 3}, + {"x": 6.25, "y": 3}, + {"x": 7.25, "y": 3}, + {"x": 8.25, "y": 3}, + {"x": 9.25, "y": 3}, + {"x": 10.25, "y": 3}, + {"x": 11.25, "y": 3}, + {"x": 12.25, "y": 3, "w": 1.75}, + {"x": 14, "y": 3}, + {"x": 15, "y": 3}, + + {"x": 0, "y": 4, "w": 1.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 6.25}, + {"x": 10, "y": 4, "w": 1.25}, + {"x": 11.25, "y": 4, "w": 1.25}, + {"x": 13, "y": 4}, + {"x": 14, "y": 4}, + {"x": 15, "y": 4} + ] + } } - } } diff --git a/keyboards/whitefox/keymaps/default/keymap.c b/keyboards/whitefox/keymaps/default/keymap.c index d0f329ebaf7c..30b21c39d2de 100644 --- a/keyboards/whitefox/keymaps/default/keymap.c +++ b/keyboards/whitefox/keymaps/default/keymap.c @@ -17,31 +17,44 @@ along with this program. If not, see . #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Layer 0: Default Layer - * ,---------------------------------------------------------------. - * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \| `|Ins| - * |---------------------------------------------------------------| - * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]|Backs|Del| - * |---------------------------------------------------------------| - * |CapsLo| A| S| D| F| G| H| J| K| L| ;| '|Enter |PgU| - * |---------------------------------------------------------------| - * |Shif| | Z| X| C| V| B| N| M| ,| .| /|Shift |Up |PgD| - * |---------------------------------------------------------------| - * |Ctrl|Gui |Alt | Space |Fn0 |Alt |Gui | |Lef|Dow|Rig| - * `---------------------------------------------------------------' + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ \ │ ` │Ins│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ Bspc│Del│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬────┼───┤ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │ Ent│PgU│ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┼───┤ + * │Shft│ < │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│ ↑ │PgD│ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤ + * │Ctrl│GUI │Alt │                        │Alt│ Fn│Ctl│ ← │ ↓ │ → │ + * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘ */ - [0] = LAYOUT( \ - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_BSLS,KC_GRV, KC_INS, \ - 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_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_NUHS,KC_ENT, KC_PGUP,\ - KC_LSFT,KC_NUBS,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH,KC_RSFT, KC_UP, KC_PGDN,\ - KC_LCTL,KC_LGUI,KC_LALT, KC_SPC, KC_RALT,MO(1), KC_RCTL, KC_LEFT,KC_DOWN,KC_RGHT \ - ), - [1] = LAYOUT( \ - KC_TRNS,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_MUTE,\ - KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_PSCR,KC_SLCK,KC_PAUS,KC_TRNS, KC_TRNS,\ - KC_TRNS,KC_TRNS,KC_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_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_PGUP,KC_VOLD,\ - KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_HOME,KC_PGDN,KC_END \ + [0] = LAYOUT_all( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, KC_INS, + 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_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_NUHS, KC_ENT, KC_PGUP, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), + /* + * ┌───┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐───┬───┌───┐ + * │   │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│   │   │Mut│ + * ├───└───┴───┴───┴───┴───┴───┴───┴───┴───┴─┬─┴─┬─┴─┬─┴─┐─┴───└───┘ + * │     │   │   │   │   │   │   │   │   │   │Psc│Slk│Pse│     │   │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──└───┴───┴───┘┬────┌───┐ + * │      │   │   │   │   │   │   │   │   │   │   │   │   │    │Vl+│ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┌───┼───┤ + * │    │   │   │   │   │   │   │   │   │   │   │   │      │PgU│Vl-│ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┌───┼───┼───┤ + * │    │    │    │                        │   │   │   │Hom│PgD│End│ + * └────┴────┴────┴────────────────────────┴───┴───┴───└───┴───┴───┘ + */ + [1] = LAYOUT_all( + _______, 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_MUTE, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_VOLD, + _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END + ) }; diff --git a/keyboards/whitefox/matrix.c b/keyboards/whitefox/matrix.c deleted file mode 100644 index c6f2c8d621c3..000000000000 --- a/keyboards/whitefox/matrix.c +++ /dev/null @@ -1,135 +0,0 @@ -#include -#include -#include -#include "hal.h" -#include "timer.h" -#include "wait.h" -#include "print.h" -#include "matrix.h" - - -/* - * Matt3o's WhiteFox - * Column pins are input with internal pull-down. Row pins are output and strobe with high. - * Key is high or 1 when it turns on. - * - * col: { PTD0, PTD1, PTD4, PTD5, PTD6, PTD7, PTC1, PTC2 } - * row: { PTB2, PTB3, PTB18, PTB19, PTC0, PTC8, PTC9, PTC10, PTC11 } - */ -/* matrix state(1:on, 0:off) */ -static matrix_row_t matrix[MATRIX_ROWS]; -static matrix_row_t matrix_debouncing[MATRIX_ROWS]; -static bool debouncing = false; -static uint16_t debouncing_time = 0; - - -void matrix_init(void) -{ -//debug_matrix = true; - /* Column(sense) */ - palSetPadMode(GPIOD, 0, PAL_MODE_INPUT_PULLDOWN); - palSetPadMode(GPIOD, 1, PAL_MODE_INPUT_PULLDOWN); - palSetPadMode(GPIOD, 4, PAL_MODE_INPUT_PULLDOWN); - palSetPadMode(GPIOD, 5, PAL_MODE_INPUT_PULLDOWN); - palSetPadMode(GPIOD, 6, PAL_MODE_INPUT_PULLDOWN); - palSetPadMode(GPIOD, 7, PAL_MODE_INPUT_PULLDOWN); - palSetPadMode(GPIOC, 1, PAL_MODE_INPUT_PULLDOWN); - palSetPadMode(GPIOC, 2, PAL_MODE_INPUT_PULLDOWN); - - /* Row(strobe) */ - palSetPadMode(GPIOB, 2, PAL_MODE_OUTPUT_PUSHPULL); - palSetPadMode(GPIOB, 3, PAL_MODE_OUTPUT_PUSHPULL); - palSetPadMode(GPIOB, 18, PAL_MODE_OUTPUT_PUSHPULL); - palSetPadMode(GPIOB, 19, PAL_MODE_OUTPUT_PUSHPULL); - palSetPadMode(GPIOC, 0, PAL_MODE_OUTPUT_PUSHPULL); - palSetPadMode(GPIOC, 8, PAL_MODE_OUTPUT_PUSHPULL); - palSetPadMode(GPIOC, 9, PAL_MODE_OUTPUT_PUSHPULL); - palSetPadMode(GPIOC, 10, PAL_MODE_OUTPUT_PUSHPULL); - palSetPadMode(GPIOC, 11, PAL_MODE_OUTPUT_PUSHPULL); - - memset(matrix, 0, MATRIX_ROWS * sizeof(matrix_row_t)); - memset(matrix_debouncing, 0, MATRIX_ROWS * sizeof(matrix_row_t)); - - matrix_init_quantum(); -} - -uint8_t matrix_scan(void) -{ - for (int row = 0; row < MATRIX_ROWS; row++) { - matrix_row_t data = 0; - - // strobe row - switch (row) { - case 0: palSetPad(GPIOB, 2); break; - case 1: palSetPad(GPIOB, 3); break; - case 2: palSetPad(GPIOB, 18); break; - case 3: palSetPad(GPIOB, 19); break; - case 4: palSetPad(GPIOC, 0); break; - case 5: palSetPad(GPIOC, 8); break; - case 6: palSetPad(GPIOC, 9); break; - case 7: palSetPad(GPIOC, 10); break; - case 8: palSetPad(GPIOC, 11); break; - } - - wait_us(20); // need wait to settle pin state - - // read col data: { PTD0, PTD1, PTD4, PTD5, PTD6, PTD7, PTC1, PTC2 } - data = ((palReadPort(GPIOC) & 0x06UL) << 5) | - ((palReadPort(GPIOD) & 0xF0UL) >> 2) | - (palReadPort(GPIOD) & 0x03UL); - - // un-strobe row - switch (row) { - case 0: palClearPad(GPIOB, 2); break; - case 1: palClearPad(GPIOB, 3); break; - case 2: palClearPad(GPIOB, 18); break; - case 3: palClearPad(GPIOB, 19); break; - case 4: palClearPad(GPIOC, 0); break; - case 5: palClearPad(GPIOC, 8); break; - case 6: palClearPad(GPIOC, 9); break; - case 7: palClearPad(GPIOC, 10); break; - case 8: palClearPad(GPIOC, 11); break; - } - - if (matrix_debouncing[row] != data) { - matrix_debouncing[row] = data; - debouncing = true; - debouncing_time = timer_read(); - } - } - - if (debouncing && timer_elapsed(debouncing_time) > DEBOUNCE) { - for (int row = 0; row < MATRIX_ROWS; row++) { - matrix[row] = matrix_debouncing[row]; - } - debouncing = false; - } - matrix_scan_quantum(); - return 1; -} - -bool matrix_is_on(uint8_t row, uint8_t col) -{ - return (matrix[row] & (1<. */ -#ifndef KEYBOARDS_WHITEFOX_SIMPLE_VISUALIZER_H_ -#define KEYBOARDS_WHITEFOX_SIMPLE_VISUALIZER_H_ - #include "visualizer.h" #include "visualizer_keyframes.h" -#include "led.h" #include "default_animations.h" - static bool initial_update = true; // Feel free to modify the animations below, or even add new ones if needed -void initialize_user_visualizer(visualizer_state_t* state) { +void initialize_user_visualizer(visualizer_state_t *state) { // The brightness will be dynamically adjustable in the future // But for now, change it here. initial_update = true; start_keyframe_animation(&default_startup_animation); } - -void update_user_visualizer_state(visualizer_state_t* state, visualizer_keyboard_status_t* prev_status) { +void update_user_visualizer_state(visualizer_state_t *state, visualizer_keyboard_status_t *prev_status) { // Add more tests, change the colors and layer texts here // Usually you want to check the high bits (higher layers first) // because that's the order layers are processed for keypresses @@ -44,17 +38,17 @@ void update_user_visualizer_state(visualizer_state_t* state, visualizer_keyboard // state->status.default_layer // state->status.leds (see led.h for available statuses) - if (initial_update) { initial_update=false; start_keyframe_animation(&led_test_animation); } + if (initial_update) { + initial_update = false; + start_keyframe_animation(&led_test_animation); + } } - -void user_visualizer_suspend(visualizer_state_t* state) { +void user_visualizer_suspend(visualizer_state_t *state) { start_keyframe_animation(&default_suspend_animation); } -void user_visualizer_resume(visualizer_state_t* state) { +void user_visualizer_resume(visualizer_state_t *state) { initial_update = true; start_keyframe_animation(&default_startup_animation); } - -#endif /* KEYBOARDS_WHITEFOX_SIMPLE_VISUALIZER_H_ */ diff --git a/keyboards/whitefox/whitefox.c b/keyboards/whitefox/whitefox.c index 2555dc2025c5..ea083c6e09ca 100644 --- a/keyboards/whitefox/whitefox.c +++ b/keyboards/whitefox/whitefox.c @@ -14,21 +14,5 @@ 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 . */ -#include "whitefox.h" - -__attribute__ ((weak)) -void matrix_init_user(void) { -} - -__attribute__ ((weak)) -void matrix_scan_user(void) { -} - -void matrix_init_kb(void) { - matrix_init_user(); -}; - -void matrix_scan_kb(void) { - matrix_scan_user(); -}; +#include "whitefox.h" diff --git a/keyboards/whitefox/whitefox.h b/keyboards/whitefox/whitefox.h index 0c19e2daa4ae..19d59ad663b6 100644 --- a/keyboards/whitefox/whitefox.h +++ b/keyboards/whitefox/whitefox.h @@ -14,156 +14,225 @@ 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 . */ -#ifndef WHITEFOX_H -#define WHITEFOX_H + +#pragma once #include "quantum.h" -/* WhiteFox - * ,---------------------------------------------------------------. - * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \| `|Ins| - * |---------------------------------------------------------------| - * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]|Backs|Del| - * |---------------------------------------------------------------| - * |CapsL | A| S| D| F| G| H| J| K| L| ;| '|Enter |PgU| - * |---------------------------------------------------------------| - * |Shif| | Z| X| C| V| B| N| M| ,| .| /|Shift |Up |PgD| - * |---------------------------------------------------------------| - * |Ctrl|Gui |Alt | Space |App |Alt |Gui | |Lef|Dow|Rig| - * `---------------------------------------------------------------' - */ +#define XXX KC_NO -#define LAYOUT( \ - K00, K10, K20, K30, K40, K50, K60, K70, K80, K01, K11, K21, K31, K41, K51, K61, \ - K71, K81, K02, K12, K22, K32, K42, K52, K62, K72, K82, K03, K13, K23, K33, \ - K43, K53, K63, K73, K83, K04, K14, K24, K34, K44, K54, K64, K74, K84, K05, \ - K15, K25, K35, K45, K55, K65, K75, K85, K06, K16, K26, K36, K46, K56, K66, \ - K76, K86, K07, K17, K27, K37, K47, K57, K67, K77 \ +/* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ + * │     │   │   │   │   │   │   │   │   │   │   │   │   │     │   │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬────┼───┤ + * │      │   │   │   │   │   │   │   │   │   │   │   │   │    │   │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┼───┤ + * │    │   │   │   │   │   │   │   │   │   │   │   │      │   │   │ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤ + * │    │    │    │                        │   │   │   │   │   │   │ + * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘ + */ +#define LAYOUT_all( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k10, k11, k12, k13, k14, k15, k16, \ + k17, k18, k20, k21, k22, k23, k24, k25, k26, k27, k28, k30, k31, k32, k33, \ + k34, k35, k36, k37, k38, k40, k41, k42, k43, k44, k45, k46, k47, k48, k50, \ + k51, k52, k53, k54, k55, k56, k57, k58, k60, k61, k62, k63, k64, k65, k66, \ + k67, k68, k70, k71, k72, k73, k74, k75, k76, k77 \ ) { \ - { 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 }, \ - { K50, K51, K52, K53, K54, K55, K56, K57 }, \ - { K60, K61, K62, K63, K64, K65, K66, K67 }, \ - { K70, K71, K72, K73, K74, K75, K76, K77 }, \ - { K80, K81, K82, K83, K84, K85, K86, KC_NO } \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08 }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18 }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28 }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38 }, \ + { k40, k41, k42, k43, k44, k45, k46, k47, k48 }, \ + { k50, k51, k52, k53, k54, k55, k56, k57, k58 }, \ + { k60, k61, k62, k63, k64, k65, k66, k67, k68 }, \ + { k70, k71, k72, k73, k74, k75, k76, k77, XXX } \ } -/* Keymap for truefox layout */ -#define LAYOUT_truefox( \ - K00, K10, K20, K30, K40, K50, K60, K70, K80, K01, K11, K21, K31, K41, K51, K61, \ - K71, K81, K02, K12, K22, K32, K42, K52, K62, K72, K82, K03, K13, K23, K33, \ - K43, K53, K63, K73, K83, K04, K14, K24, K34, K44, K54, K64, K84, K05, \ - K15, K35, K45, K55, K65, K75, K85, K06, K16, K26, K36, K46, K56, K66, \ - K76, K86, K07, K17, K27, K37, K57, K67, K77 \ +/* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ + * │   │   │   │   │   │   │   │   │   │   │   │   │   │       │   │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ + * │     │   │   │   │   │   │   │   │   │   │   │   │   │     │   │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ + * │      │   │   │   │   │   │   │   │   │   │   │   │        │   │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + * │        │   │   │   │   │   │   │   │   │   │   │      │   │   │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤ + * │    │    │    │                        │   │   │   │   │   │   │ + * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘ + */ +#define LAYOUT_65_ansi( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k10, k11, k12, k13, k15, k16, \ + k17, k18, k20, k21, k22, k23, k24, k25, k26, k27, k28, k30, k31, k32, k33, \ + k34, k35, k36, k37, k38, k40, k41, k42, k43, k44, k45, k46, k48, k50, \ + k51, k53, k54, k55, k56, k57, k58, k60, k61, k62, k63, k64, k65, k66, \ + k67, k68, k70, k71, k72, k73, k74, k75, k76, k77 \ ) { \ - { K00, K01, K02, K03, K04, K05, K06, K07 }, \ - { K10, K11, K12, K13, K14, K15, K16, K17 }, \ - { K20, K21, K22, K23, K24, KC_NO, K26, K27 }, \ - { K30, K31, K32, K33, K34, K35, K36, K37 }, \ - { K40, K41, K42, K43, K44, K45, K46, KC_NO }, \ - { K50, K51, K52, K53, K54, K55, K56, K57 }, \ - { K60, K61, K62, K63, K64, K65, K66, K67 }, \ - { K70, K71, K72, K73, KC_NO, K75, K76, K77 }, \ - { K80, K81, K82, K83, K84, K85, K86, KC_NO } \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08 }, \ + { k10, k11, k12, k13, XXX, k15, k16, k17, k18 }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28 }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38 }, \ + { k40, k41, k42, k43, k44, k45, k46, XXX, k48 }, \ + { k50, k51, XXX, k53, k54, k55, k56, k57, k58 }, \ + { k60, k61, k62, k63, k64, k65, k66, k67, k68 }, \ + { k70, k71, k72, k73, k74, k75, k76, k77, XXX } \ } -/* ISO WhiteFox - * ,---------------------------------------------------------------. - * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| Backsp|Ins| - * |---------------------------------------------------------------| - * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]|Enter|Del| - * |------------------------------------------------------` |---| - * |CapsLo| A| S| D| F| G| H| J| K| L| ;| '| \| |PgU| - * |---------------------------------------------------------------| - * |Shif| | Z| X| C| V| B| N| M| ,| .| /|Shift |Up |PgD| - * |---------------------------------------------------------------| - * |Ctrl|Gui |Alt | Space |Fn0 |Alt |Gui | |Lef|Dow|Rig| - * `---------------------------------------------------------------' +/* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ + * │   │   │   │   │   │   │   │   │   │   │   │   │   │       │   │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ + * │     │   │   │   │   │   │   │   │   │   │   │   │   │     │   │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ + * │      │   │   │   │   │   │   │   │   │   │   │   │        │   │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + * │        │   │   │   │   │   │   │   │   │   │   │      │   │   │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ + * │    │    │    │                        │    │    │ │   │   │   │ + * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ */ - -#define LAYOUT_iso( \ - K00, K10, K20, K30, K40, K50, K60, K70, K80, K01, K11, K21, K31, K51, K61, \ - K71, K81, K02, K12, K22, K32, K42, K52, K62, K72, K82, K03, K13, K33, \ - K43, K53, K63, K73, K83, K04, K14, K24, K34, K44, K54, K64, K74, K84, K05, \ - K15, K25, K35, K45, K55, K65, K75, K85, K06, K16, K26, K36, K46, K56, K66, \ - K76, K86, K07, K17, K27, K37, K47, K57, K67, K77 \ +#define LAYOUT_65_ansi_blocker( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k10, k11, k12, k13, k15, k16, \ + k17, k18, k20, k21, k22, k23, k24, k25, k26, k27, k28, k30, k31, k32, k33, \ + k34, k35, k36, k37, k38, k40, k41, k42, k43, k44, k45, k46, k48, k50, \ + k51, k53, k54, k55, k56, k57, k58, k60, k61, k62, k63, k64, k65, k66, \ + k67, k68, k70, k71, k72, k73, k75, k76, k77 \ ) { \ - { K00, K01, K02, K03, K04, K05, K06, K07 }, \ - { K10, K11, K12, K13, K14, K15, K16, K17 }, \ - { K20, K21, K22, KC_NO, K24, K25, K26, K27 }, \ - { K30, K31, K32, K33, K34, K35, K36, K37 }, \ - { K40, KC_NO, K42, K43, K44, K45, K46, K47 }, \ - { K50, K51, K52, K53, K54, K55, K56, K57 }, \ - { K60, K61, K62, K63, K64, K65, K66, K67 }, \ - { K70, K71, K72, K73, K74, K75, K76, K77 }, \ - { K80, K81, K82, K83, K84, K85, K86, KC_NO } \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08 }, \ + { k10, k11, k12, k13, XXX, k15, k16, k17, k18 }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28 }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38 }, \ + { k40, k41, k42, k43, k44, k45, k46, XXX, k48 }, \ + { k50, k51, XXX, k53, k54, k55, k56, k57, k58 }, \ + { k60, k61, k62, k63, k64, k65, k66, k67, k68 }, \ + { k70, k71, k72, k73, XXX, k75, k76, k77, XXX } \ } -/* ARIA WhiteFox - * ,---------------------------------------------------------------. - * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| Backsp|Ins| - * |---------------------------------------------------------------| - * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \|Del| - * |---------------------------------------------------------------| - * |CapsL | A| S| D| F| G| H| J| K| L| ;| '|Enter |PgU| - * |---------------------------------------------------------------| - * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |Up |PgD| - * |---------------------------------------------------------------| - * |Ctrl|GUI |Alt | Space |Alt |Ctrl| |Lef|Dow|Rig| - * `---------------------------------------------------------------' +/* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ + * │     │   │   │   │   │   │   │   │   │   │   │   │   │     │   │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ + * │      │   │   │   │   │   │   │   │   │   │   │   │        │   │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + * │        │   │   │   │   │   │   │   │   │   │   │      │   │   │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ + * │    │    │    │                        │    │    │ │   │   │   │ + * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ */ +#define LAYOUT_65_ansi_blocker_split_bs( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k10, k11, k12, k13, k14, k15, k16, \ + k17, k18, k20, k21, k22, k23, k24, k25, k26, k27, k28, k30, k31, k32, k33, \ + k34, k35, k36, k37, k38, k40, k41, k42, k43, k44, k45, k46, k48, k50, \ + k51, k53, k54, k55, k56, k57, k58, k60, k61, k62, k63, k64, k65, k66, \ + k67, k68, k70, k71, k72, k73, k75, k76, k77 \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08 }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18 }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28 }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38 }, \ + { k40, k41, k42, k43, k44, k45, k46, XXX, k48 }, \ + { k50, k51, XXX, k53, k54, k55, k56, k57, k58 }, \ + { k60, k61, k62, k63, k64, k65, k66, k67, k68 }, \ + { k70, k71, k72, k73, XXX, k75, k76, k77, XXX } \ +} -#define LAYOUT_aria( \ - K00, K10, K20, K30, K40, K50, K60, K70, K80, K01, K11, K21, K31, K51, K61, \ - K71, K81, K02, K12, K22, K32, K42, K52, K62, K72, K82, K03, K13, K23, K33, \ - K43, K53, K63, K73, K83, K04, K14, K24, K34, K44, K54, K64, K84, K05, \ - K15, K35, K45, K55, K65, K75, K85, K06, K16, K26, K36, K46, K56, K66, \ - K76, K86, K07, K17, K27, K37, K57, K67, K77 \ +/* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ + * │   │   │   │   │   │   │   │   │   │   │   │   │   │       │   │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ + * │     │   │   │   │   │   │   │   │   │   │   │   │   │     │   │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐    ├───┤ + * │      │   │   │   │   │   │   │   │   │   │   │   │   │    │   │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┼───┤ + * │    │   │   │   │   │   │   │   │   │   │   │   │      │   │   │ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤ + * │    │    │    │                        │   │   │   │   │   │   │ + * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘ + */ +#define LAYOUT_65_iso( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k10, k11, k12, k13, k15, k16, \ + k17, k18, k20, k21, k22, k23, k24, k25, k26, k27, k28, k30, k31, k33, \ + k34, k35, k36, k37, k38, k40, k41, k42, k43, k44, k45, k46, k47, k48, k50, \ + k51, k52, k53, k54, k55, k56, k57, k58, k60, k61, k62, k63, k64, k65, k66, \ + k67, k68, k70, k71, k72, k73, k74, k75, k76, k77 \ ) { \ - { K00, K01, K02, K03, K04, K05, K06, K07 }, \ - { K10, K11, K12, K13, K14, K15, K16, K17 }, \ - { K20, K21, K22, K23, K24, KC_NO, K26, K27 }, \ - { K30, K31, K32, K33, K34, K35, K36, K37 }, \ - { K40, KC_NO, K42, K43, K44, K45, K46, KC_NO }, \ - { K50, K51, K52, K53, K54, K55, K56, K57 }, \ - { K60, K61, K62, K63, K64, K65, K66, K67 }, \ - { K70, K71, K72, K73, KC_NO, K75, K76, K77 }, \ - { K80, K81, K82, K83, K84, K85, K86, KC_NO } \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08 }, \ + { k10, k11, k12, k13, XXX, k15, k16, k17, k18 }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28 }, \ + { k30, k31, XXX, k33, k34, k35, k36, k37, k38 }, \ + { k40, k41, k42, k43, k44, k45, k46, k47, k48 }, \ + { k50, k51, k52, k53, k54, k55, k56, k57, k58 }, \ + { k60, k61, k62, k63, k64, k65, k66, k67, k68 }, \ + { k70, k71, k72, k73, k74, k75, k76, k77, XXX } \ } -/* Vanilla WhiteFox - * ,---------------------------------------------------------------. - * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| Backsp| `| - * |---------------------------------------------------------------| - * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \|Del| - * |---------------------------------------------------------------| - * |CapsL | A| S| D| F| G| H| J| K| L| ;| '|Enter |PgU| - * |---------------------------------------------------------------| - * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |Up |PgD| - * |---------------------------------------------------------------| - * |Ctrl|GUI |Alt | Space |Alt|GUI|Ctl|Lef|Dow|Rig| - * `---------------------------------------------------------------' +/* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ + * │   │   │   │   │   │   │   │   │   │   │   │   │   │       │   │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ + * │     │   │   │   │   │   │   │   │   │   │   │   │   │     │   │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐    ├───┤ + * │      │   │   │   │   │   │   │   │   │   │   │   │   │    │   │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┼───┤ + * │    │   │   │   │   │   │   │   │   │   │   │   │      │   │   │ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ + * │    │    │    │                        │    │    │ │   │   │   │ + * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ */ +#define LAYOUT_65_iso_blocker( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k10, k11, k12, k13, k15, k16, \ + k17, k18, k20, k21, k22, k23, k24, k25, k26, k27, k28, k30, k31, k33, \ + k34, k35, k36, k37, k38, k40, k41, k42, k43, k44, k45, k46, k47, k48, k50, \ + k51, k52, k53, k54, k55, k56, k57, k58, k60, k61, k62, k63, k64, k65, k66, \ + k67, k68, k70, k71, k72, k73, k75, k76, k77 \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08 }, \ + { k10, k11, k12, k13, XXX, k15, k16, k17, k18 }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28 }, \ + { k30, k31, XXX, k33, k34, k35, k36, k37, k38 }, \ + { k40, k41, k42, k43, k44, k45, k46, k47, k48 }, \ + { k50, k51, k52, k53, k54, k55, k56, k57, k58 }, \ + { k60, k61, k62, k63, k64, k65, k66, k67, k68 }, \ + { k70, k71, k72, k73, XXX, k75, k76, k77, XXX } \ +} -#define LAYOUT_vanilla( \ - K00, K10, K20, K30, K40, K50, K60, K70, K80, K01, K11, K21, K31, K51, K61, \ - K71, K81, K02, K12, K22, K32, K42, K52, K62, K72, K82, K03, K13, K23, K33, \ - K43, K53, K63, K73, K83, K04, K14, K24, K34, K44, K54, K64, K84, K05, \ - K15, K35, K45, K55, K65, K75, K85, K06, K16, K26, K36, K46, K56, K66, \ - K76, K86, K07, K17, K27, K37, K47, K57, K67, K77 \ +/* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ + * │     │   │   │   │   │   │   │   │   │   │   │   │   │     │   │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐    ├───┤ + * │      │   │   │   │   │   │   │   │   │   │   │   │   │    │   │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┼───┤ + * │    │   │   │   │   │   │   │   │   │   │   │   │      │   │   │ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ + * │    │    │    │                        │    │    │ │   │   │   │ + * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ + */ +#define LAYOUT_65_iso_blocker_split_bs( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k10, k11, k12, k13, k14, k15, k16, \ + k17, k18, k20, k21, k22, k23, k24, k25, k26, k27, k28, k30, k31, k33, \ + k34, k35, k36, k37, k38, k40, k41, k42, k43, k44, k45, k46, k47, k48, k50, \ + k51, k52, k53, k54, k55, k56, k57, k58, k60, k61, k62, k63, k64, k65, k66, \ + k67, k68, k70, k71, k72, k73, k75, k76, k77 \ ) { \ - { K00, K01, K02, K03, K04, K05, K06, K07 }, \ - { K10, K11, K12, K13, K14, K15, K16, K17 }, \ - { K20, K21, K22, K23, K24, KC_NO, K26, K27 }, \ - { K30, K31, K32, K33, K34, K35, K36, K37 }, \ - { K40, KC_NO, K42, K43, K44, K45, K46, K47 }, \ - { K50, K51, K52, K53, K54, K55, K56, K57 }, \ - { K60, K61, K62, K63, K64, K65, K66, K67 }, \ - { K70, K71, K72, K73, KC_NO, K75, K76, K77 }, \ - { K80, K81, K82, K83, K84, K85, K86, KC_NO } \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08 }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18 }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28 }, \ + { k30, k31, XXX, k33, k34, k35, k36, k37, k38 }, \ + { k40, k41, k42, k43, k44, k45, k46, k47, k48 }, \ + { k50, k51, k52, k53, k54, k55, k56, k57, k58 }, \ + { k60, k61, k62, k63, k64, k65, k66, k67, k68 }, \ + { k70, k71, k72, k73, XXX, k75, k76, k77, XXX } \ } -#endif +#define LAYOUT LAYOUT_all +#define LAYOUT_aria LAYOUT_65_ansi_blocker +#define LAYOUT_iso LAYOUT_65_iso +#define LAYOUT_truefox LAYOUT_65_ansi_blocker_split_bs +#define LAYOUT_vanilla LAYOUT_65_ansi diff --git a/keyboards/wolfmarkclub/wm1/bootloader_defs.h b/keyboards/wolfmarkclub/wm1/bootloader_defs.h deleted file mode 100644 index 393d70fdc6e8..000000000000 --- a/keyboards/wolfmarkclub/wm1/bootloader_defs.h +++ /dev/null @@ -1,11 +0,0 @@ -/* Address for jumping to bootloader on STM32 chips. */ -/* It is chip dependent, the correct number can be looked up here (page 175): - * http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf - * This also requires a patch to chibios: - * /tmk_core/tool/chibios/ch-bootloader-jump.patch - */ - -// STM32F103 does not have a USB bootloader in ROM -- the WM1 -// has a usermode USB mass storage device bootloader at the normal -// boot address -- `0x08000000`. -#define STM32_BOOTLOADER_ADDRESS 0x80000000 diff --git a/keyboards/wolfmarkclub/wm1/rules.mk b/keyboards/wolfmarkclub/wm1/rules.mk index fcd4da1affc9..d0a9f226601d 100644 --- a/keyboards/wolfmarkclub/wm1/rules.mk +++ b/keyboards/wolfmarkclub/wm1/rules.mk @@ -5,7 +5,7 @@ MCU = STM32F103 MCU_LDSCRIPT = wm1_f103 BOARD = STM32_F103_STM32DUINO -PROGRAM_CMD=echo 'CLI flashing not supported' >&2 +PROGRAM_CMD = echo 'CLI flashing not supported' >&2 # Build Options # change yes to no to disable diff --git a/keyboards/xelus/trinityxttkl/bootloader_defs.h b/keyboards/xelus/trinityxttkl/bootloader_defs.h deleted file mode 100644 index 02c48c4e6dcb..000000000000 --- a/keyboards/xelus/trinityxttkl/bootloader_defs.h +++ /dev/null @@ -1,7 +0,0 @@ -/* Address for jumping to bootloader on STM32 chips. */ -/* It is chip dependent, the correct number can be looked up here (page 175): - * http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf - * This also requires a patch to chibios: - * /tmk_core/tool/chibios/ch-bootloader-jump.patch - */ -#define STM32_BOOTLOADER_ADDRESS 0x1FFFC800 diff --git a/keyboards/zvecr/split_blackpill/rules.mk b/keyboards/zvecr/split_blackpill/rules.mk index 6feec7dd97ae..55bca894ef9f 100644 --- a/keyboards/zvecr/split_blackpill/rules.mk +++ b/keyboards/zvecr/split_blackpill/rules.mk @@ -1,13 +1,8 @@ # MCU name MCU = STM32F103 -# GENERIC STM32F103C8T6 board - stm32duino bootloader -MCU_LDSCRIPT = STM32F103x8_stm32duino_bootloader -BOARD = STM32_F103_STM32DUINO -STM32_BOOTLOADER_ADDRESS = 0x80000000 - -DFU_ARGS = -d 1eaf:0003 -a2 -R -DFU_SUFFIX_ARGS = -v 1eaf -p 0003 +# Bootloader selection +BOOTLOADER = stm32duino # Build Options # change yes to no to disable diff --git a/quantum/keymap_extras/sendstring_french.h b/quantum/keymap_extras/sendstring_french.h index 17ea3ed45450..ab65f28eb7ad 100644 --- a/quantum/keymap_extras/sendstring_french.h +++ b/quantum/keymap_extras/sendstring_french.h @@ -74,13 +74,13 @@ const uint8_t ascii_to_keycode_lut[128] PROGMEM = { XXXXXXX, XXXXXXX, XXXXXXX, KC_ESC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, // ! " # $ % & ' - KC_SPC, FR_EXLM, FR_QUOT, FR_DQUO, FR_DLR, FR_UGRV, FR_AMPR, FR_QUOT, + KC_SPC, FR_EXLM, FR_DQUO, FR_DQUO, FR_DLR, FR_UGRV, FR_AMPR, FR_QUOT, // ( ) * + , - . / FR_LPRN, FR_RPRN, FR_ASTR, FR_EQL, FR_COMM, FR_MINS, FR_SCLN, FR_COLN, // 0 1 2 3 4 5 6 7 FR_AGRV, FR_AMPR, FR_EACU, FR_DQUO, FR_QUOT, FR_LPRN, FR_MINS, FR_EGRV, // 8 9 : ; < = > ? - FR_CCED, FR_AGRV, FR_COLN, FR_SCLN, FR_LABK, FR_EQL, FR_LABK, FR_COMM, + FR_UNDS, FR_CCED, FR_COLN, FR_SCLN, FR_LABK, FR_EQL, FR_LABK, FR_COMM, // @ A B C D E F G FR_AGRV, FR_A, FR_B, FR_C, FR_D, FR_E, FR_F, FR_G, // H I J K L M N O diff --git a/users/dudeofawesome/dudeofawesome.h b/users/dudeofawesome/dudeofawesome.h index 91557925a857..dbbbd21ede0d 100644 --- a/users/dudeofawesome/dudeofawesome.h +++ b/users/dudeofawesome/dudeofawesome.h @@ -7,6 +7,10 @@ #define TAPPING_TOGGLE 2 #ifdef AUDIO_ENABLE + #ifdef WORKMAN_SOUND + #undef WORKMAN_SOUND + #endif + #define WORKMAN_SOUND \ E__NOTE(_GS7), \ ED_NOTE(_E7), \ diff --git a/users/sigul/sigul.h b/users/sigul/sigul.h index 3182ab026a7c..6adc67063864 100644 --- a/users/sigul/sigul.h +++ b/users/sigul/sigul.h @@ -25,6 +25,7 @@ enum userspace_custom_keycodes { SECRET2, SECRET3, SECRET4, + SECRET5, NEW_SAFE_RANGE // start new keyboard-level declarations with NEW_SAFE_RANGE };