diff --git a/bootloader.mk b/bootloader.mk index a7e596e4761..5487f9ece65 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/_summary.md b/docs/_summary.md index 0c43712159f..2e874fb1cd6 100644 --- a/docs/_summary.md +++ b/docs/_summary.md @@ -23,6 +23,7 @@ * [Overview](api_overview.md) * [API Documentation](api_docs.md) * [Keyboard Support](reference_configurator_support.md) + * [Adding Default Keymaps](configurator_default_keymaps.md) * CLI * [Overview](cli.md) @@ -117,6 +118,7 @@ * [Overview](breaking_changes.md) * [My Pull Request Was Flagged](breaking_changes_instructions.md) * History + * [2020 Aug 29](ChangeLog/20200829.md) * [2020 May 30](ChangeLog/20200530.md) * [2020 Feb 29](ChangeLog/20200229.md) * [2019 Aug 30](ChangeLog/20190830.md) diff --git a/docs/configurator_default_keymaps.md b/docs/configurator_default_keymaps.md new file mode 100644 index 00000000000..30f9fa72f32 --- /dev/null +++ b/docs/configurator_default_keymaps.md @@ -0,0 +1,193 @@ +# Adding Default Keymaps to QMK Configurator :id=adding-default-keymaps + +This page covers how to add a default keymap for a keyboard to QMK Configurator. + + +## Technical Information :id=technical-information + +QMK Configurator uses JSON as its native file format for keymaps. As much as possible, these should be kept such that they behave the same as running `make :default` from `qmk_firmware`. + +Keymaps in this directory require four key-value pairs: + +* `keyboard` (string) + * This is the name of the keyboard, the same as would be used when running a compile job through `make` (e.g. `make 1upkeyboards/1up60rgb:default`). +* `keymap` (string) + * Should be set to `default`. +* `layout` (string) + * This is the layout macro used by the default keymap. +* `layers` (array) + * The keymap itself. This key should contain one array per layer, which themselves should contain the keycodes that make up that layer. + +Additionally, most keymaps contain a `commit` key. This key is not consumed by the API that back-stops QMK Configurator, but is used by Configurator's maintainers to tell which version of a keymap was used to create the JSON keymap in this repository. The value is the SHA of the last commit to modify a board's default `keymap.c` in the `qmk_firmware` repository. The SHA is found by checking out [the `master` branch of the `qmk/qmk_firmware` repository](https://github.com/qmk/qmk_firmware/tree/master/) and running `git log -1 --pretty=oneline -- keyboards//keymaps/default/keymap.c` (use `keymap.json` if the keyboard in question has this file instead), which should return something similar to: + +```shell +f14629ed1cd7c7ec9089604d64f29a99981558e8 Remove/migrate action_get_macro()s from default keymaps (#5625) +``` + +In this example, `f14629ed1cd7c7ec9089604d64f29a99981558e8` is the value that should be used for `commit`. + + +## Example :id=example + +If one wished to add a default keymap for the H87a by Hineybush, one would run the `git log` command above against the H87a's default keymap in `qmk_firmware`: + +```shell +user ~/qmk_firmware (master) +$ git log -1 --pretty=oneline master -- keyboards/hineybush/h87a/keymaps/default/keymap.c +ef8878fba5d3786e3f9c66436da63a560cd36ac9 Hineybush h87a lock indicators (#8237) +``` + +Now that we have the commit hash, we need the keymap (edited for readability): + +```c +... +#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_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_TRNS, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [1] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, BL_TOGG, BL_DEC, BL_INC, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_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, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MNXT, KC_VOLD, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + +}; +``` + +The default keymap uses the `LAYOUT_all` macro, so that will be the value of the `layout` key. Compiled to a QMK Configurator JSON keymap, our resulting file should be: + +```json +{ + "keyboard": "hineybush/h87a", + "keymap": "default", + "commit": "ef8878fba5d3786e3f9c66436da63a560cd36ac9", + "layout": "LAYOUT_all", + "layers": [ + [ + "KC_ESC", "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_F11", "KC_F12", "KC_PSCR", "KC_SLCK", "KC_PAUS", + "KC_GRV", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_MINS", "KC_EQL", "KC_BSPC", "KC_BSPC", "KC_INS", "KC_HOME", "KC_PGUP", + "KC_TAB", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_LBRC", "KC_RBRC", "KC_BSLS", "KC_DEL", "KC_END", "KC_PGDN", + "KC_CAPS", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCLN", "KC_QUOT", "KC_NUHS", "KC_ENT", + "KC_LSFT", "KC_NUBS", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_RSFT", "KC_TRNS", "KC_UP", + "KC_LCTL", "KC_LGUI", "KC_LALT", "KC_SPC", "KC_RALT", "MO(1)", "KC_RGUI", "KC_RCTL", "KC_LEFT", "KC_DOWN", "KC_RGHT" + ], + [ + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RGB_TOG", "RGB_MOD", "RGB_HUD", "RGB_HUI", "RGB_SAD", "RGB_SAI", "RGB_VAD", "RGB_VAI", "BL_TOGG", "BL_DEC", "BL_INC", + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_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", "RESET", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_MPLY", "KC_MNXT", "KC_VOLD", + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS" + ] + ] +} +``` + +The white space in the `layers` arrays have no effect on the functionality of the keymap, but are used to make these files easier for humans to read. + + +## Caveats :id=caveats + +### Layers can only be referenced by number :id=layer-references + +A common QMK convention is to name layers using a series of `#define`s, or an `enum` statement: + +```c +enum layer_names { + _BASE, + _MEDIA, + _FN +}; +``` + +This works in C, but for Configurator, you *must* use the layer's numeric index – `MO(_FN)` would need to be `MO(2)` in the above example. + +### No support for custom code of any kind :id=custom-code + +Features that require adding functions to the keymap.c file, such as Tap Dance or Unicode, can not be compiled in Configurator **at all**. Even setting `TAP_DANCE_ENABLE = yes` in the `qmk_firmware` repository at the keyboard level will prevent Configurator from compiling **any** firmware for that keyboard. This is limited both by the API and the current spec of our JSON keymap format. + +### Limited Support for Custom keycodes :id=custom-keycodes + +There is a way to support custom keycodes: if the logic for a custom keycode is implemented at the keyboard level instead of the keymap level in qmk_firmware, that keycode *can* be used in Configurator and it *will* compile and work. Instead of using the following in your `keymap.c`: + +```c +enum custom_keycodes { + MACRO_1 = SAFE_RANGE, + MACRO_2, + MACRO_3 +}; +... +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch(keycode) { + case MACRO_1: + if (record->event.pressed) { + SEND_STRING("This is macro #1."); + } + return false; + case MACRO_2: + if (record->event.pressed) { + SEND_STRING("This is macro #2."); + } + return false; + case MACRO_3: + if (record->event.pressed) { + SEND_STRING("This is macro #3."); + } + return false; + } + return true; +}; +``` + +... add the keycode `enum` block to your keyboard's header file (`.h`) as follows (note that the `enum` is named `keyboard_keycodes` here): + +```c +enum keyboard_keycodes { + MACRO_1 = SAFE_RANGE, + MACRO_2, + MACRO_3, + NEW_SAFE_RANGE // Important! +}; +``` + +... then the logic to your `.c` through `process_record_kb()`: + +```c +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + switch(keycode) { + case MACRO_1: + if (record->event.pressed) { + SEND_STRING("This is macro #1."); + } + return false; + case MACRO_2: + if (record->event.pressed) { + SEND_STRING("This is macro #2."); + } + return false; + case MACRO_3: + if (record->event.pressed) { + SEND_STRING("This is macro #3."); + } + return false; + } + return process_record_user(keycode, record); +}; +``` + +Note the call to `process_record_user()` at the end. Additionally, users of the keyboard will need to use `NEW_SAFE_RANGE` instead of `SAFE_RANGE` if they wish to add their own custom keycodes at keymap level, beyond what is provided by the keyboard. + + +## Additional Reading :id=additional-reading + +For QMK Configurator to support your keyboard, your keyboard must be present in the `master` branch of the `qmk_firmware` repository. For instructions on this, please see [Supporting Your Keyboard in QMK Configurator](reference_configurator_support.md). diff --git a/docs/driver_installation_zadig.md b/docs/driver_installation_zadig.md index 403b78da0ce..4519a21e6b5 100644 --- a/docs/driver_installation_zadig.md +++ b/docs/driver_installation_zadig.md @@ -4,7 +4,7 @@ QMK presents itself to the host as a regular HID keyboard device, and as such re There are two notable exceptions: the Caterina bootloader, usually seen on Pro Micros, and the HalfKay bootloader shipped with PJRC Teensys, appear as a serial port and a generic HID device respectively, and so do not require a driver. -We recommend the use of the [Zadig](https://zadig.akeo.ie/) utility. If you have set up the development environment with MSYS2 or WSL, the `qmk_install.sh` script will have asked if you want it to install the drivers for you. +We recommend the use of the [Zadig](https://zadig.akeo.ie/) utility. If you have set up the development environment with MSYS2, the `qmk_install.sh` script will have already installed the drivers for you. ## Installation diff --git a/docs/faq_build.md b/docs/faq_build.md index a97a0e0c3cc..e64c035332a 100644 --- a/docs/faq_build.md +++ b/docs/faq_build.md @@ -19,71 +19,7 @@ Note that running `make` with `sudo` is generally ***not*** a good idea, and you ### Linux `udev` Rules -On Linux, you'll need proper privileges to communicate with the bootloader device. You can either use `sudo` when flashing firmware, or place this file in `/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" - -# Input Club -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" - -# ModemManager should ignore the following devices -# 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" -### 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" -``` +On Linux, you'll need proper privileges to communicate with the bootloader device. You can either use `sudo` when flashing firmware (not recommended), or place [this file](https://github.com/qmk/qmk_firmware/tree/master/util/udev/50-qmk.rules) into `/etc/udev/rules.d/`. Once added, run the following: diff --git a/docs/feature_combo.md b/docs/feature_combo.md index d3eb896b286..d831328f698 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 83ebafe60ec..966e75acc1f 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/_summary.md b/docs/ja/_summary.md index b44b76abcf9..cf2e37aaf4d 100644 --- a/docs/ja/_summary.md +++ b/docs/ja/_summary.md @@ -116,6 +116,7 @@ * [概要](ja/breaking_changes.md) * [プルリクエストにフラグが付けられた](ja/breaking_changes_instructions.md) * 履歴 + * [2020年8月29日](ja/ChangeLog/20200829.md) * [2020年5月30日](ja/ChangeLog/20200530.md) * [2020年2月29日](ja/ChangeLog/20200229.md) * [2019年8月30日](ja/ChangeLog/20190830.md) diff --git a/docs/ja/config_options.md b/docs/ja/config_options.md index 2a64f2ba2af..67e973030df 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 f333711e63c..277fc658d3a 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 161d7e4b565..952b5d8a87e 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 50ec4ea6afe..c866d395993 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 62c36f24970..3c93c078090 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,64 +18,93 @@ あるいは、単純に: - $ sudo make ::dfu + $ sudo make ::flash `make` を `sudo` で実行することは一般的には良い考えでは***なく***、可能であれば前者の方法のいずれかを使うべきです。 ### Linux の `udev` ルール -Linux では、MCU にアクセスするには適切な権限が必要です。ファームウェアを書き込む時に `sudo` を使うか、`/etc/udev/rules.d/` にこれらのファイルを配置することで、アクセスすることができます。権限の追加が完了したら、以下を実行します: -```console + +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" + +# Input Club +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" + +# ModemManager should ignore the following devices +# 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" +### 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" +``` + +追加が完了したら、以下を実行します: + +``` 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" -``` - -**/etc/udev/rules.d/54-input-club-keyboard.rules:** - -``` -# Input Club keyboard bootloader -SUBSYSTEMS=="usb", ATTRS{idVendor}=="1c11", ATTRS{idProduct}=="b007", 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" -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" -``` - **注意:** 古い(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" -``` - -**/etc/udev/rules.d/57-bootloadhid.rules:** -``` -# bootloadHID -SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05df", TAG+="uaccess", RUN{builtin}+="uaccess" -``` - ### Linux のブートローダモードで Serial デバイスが検知されない カーネルがデバイスを適切にサポートしていることを確認してください。デバイスが、Pro Micro (Atmega32u4) のように USB ACM を使う場合、`CONFIG_USB_ACM=y` を含めるようにしてください。他のデバイスは `USB_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 f7835dd548f..3c71a18ec1f 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_combo.md b/docs/ja/feature_combo.md index 4fbd6847d2c..bd46e88b7fa 100644 --- a/docs/ja/feature_combo.md +++ b/docs/ja/feature_combo.md @@ -1,8 +1,8 @@ # コンボ コンボ機能は、同時押し方式でのカスタムアクション追加機能です。同時に複数のキーを押して、異なる効果を生み出すことができます。例えば、タッピング時間内で `A` と `S` を押すと、代わりに `ESC` が押されます。もっと複雑なタスクを実行させることもできます。 @@ -60,7 +60,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/ja/feature_dynamic_macros.md b/docs/ja/feature_dynamic_macros.md index f3e58713674..951b9031276 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 538358a6b2a..61d6f5a8e05 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 faed0ee1bb3..45a799be494 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 01d0607574f..3d9d30ecf02 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 15828514525..b2c0dcd868f 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 cbc824de8b1..08005877e73 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 0cba943c156..1308c3fdaf5 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 ebcbb155420..2be099985d9 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 56425a2fdb1..9d348d58033 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 00000000000..ae3918130e1 --- /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 d4137ca46d4..e786b08f397 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 00000000000..9026ac48669 --- /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 e9c45fdecc3..029797ff013 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 0fa1f9d3feb..f5889a1026d 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 a0f08976283..bf23ae4ab0a 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/mod_tap.md b/docs/mod_tap.md index 1217b47f927..0dc35ff034c 100644 --- a/docs/mod_tap.md +++ b/docs/mod_tap.md @@ -55,3 +55,7 @@ Unfortunately, these keycodes cannot be used in Mod-Taps or Layer-Taps, since an Additionally, you may run into issues when using Remote Desktop Connection on Windows. Because these codes send shift very fast, Remote Desktop may miss the codes. To fix this, open Remote Desktop Connection, click on "Show Options", open the the "Local Resources" tab. In the keyboard section, change the drop down to "On this Computer". This will fix the issue, and allow the characters to work correctly. + +## Other Resources + +See the [Tap-Hold Configuration Options](tap_hold.md) for additional flags that tweak Mod-Tap behavior. diff --git a/docs/other_vscode.md b/docs/other_vscode.md index d132afaab6e..823f8b49821 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/40percentclub/nano/keymaps/drashna/keymap.c b/keyboards/40percentclub/nano/keymaps/drashna/keymap.c index f5d0787eeb4..b8947cce783 100644 --- a/keyboards/40percentclub/nano/keymaps/drashna/keymap.c +++ b/keyboards/40percentclub/nano/keymaps/drashna/keymap.c @@ -1,3 +1,19 @@ +/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@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 "drashna.h" #include "analog.h" #include "pointing_device.h" diff --git a/keyboards/45_ats/45_ats.c b/keyboards/45_ats/45_ats.c new file mode 100644 index 00000000000..0a2c069abd9 --- /dev/null +++ b/keyboards/45_ats/45_ats.c @@ -0,0 +1,19 @@ + /* + Copyright 2020 Alec Penland + Copyright 2020 Garret Gartner + + 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 "45_ats.h" diff --git a/keyboards/45_ats/45_ats.h b/keyboards/45_ats/45_ats.h new file mode 100644 index 00000000000..42d1940e6f9 --- /dev/null +++ b/keyboards/45_ats/45_ats.h @@ -0,0 +1,59 @@ + /* + Copyright 2020 Alec Penland + Copyright 2020 Garret Gartner + + 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_split_space( \ + 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, k1D, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2D, \ + k30, k31, k32, k33, k36, k38, k39, k3A, k3B, k3D \ +) { \ + { 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, xxx, k1D }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, xxx, k2D }, \ + { k30, k31, k32, k33, xxx, xxx, k36, xxx, k38, k39, k3A, k3B, xxx, k3D } \ +} + +#define LAYOUT_625_space( \ + 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, k1D, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2D, \ + k30, k31, k32, k36, k39, k3A, k3B, k3D \ +) { \ + { 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, xxx, k1D }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, xxx, k2D }, \ + { k30, k31, k32, xxx, xxx, xxx, k36, xxx, xxx, k39, k3A, k3B, xxx, k3D } \ +} + +#define LAYOUT_600_space( \ + 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, k1D, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2D, \ + k30, k31, k32, k36, k38, k39, k3A, k3B, k3D \ +) { \ + { 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, xxx, k1D }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, xxx, k2D }, \ + { k30, k31, k32, xxx, xxx, xxx, k36, xxx, k38, k39, k3A, k3B, xxx, k3D } \ +} diff --git a/keyboards/45_ats/config.h b/keyboards/45_ats/config.h new file mode 100644 index 00000000000..4733095bc13 --- /dev/null +++ b/keyboards/45_ats/config.h @@ -0,0 +1,52 @@ + /* + Copyright 2020 Alec Penland + Copyright 2020 Garret Gartner + + 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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xAB13 +#define PRODUCT_ID 0x4511 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Abec13 +#define PRODUCT 45ATS + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 14 + +#define ENCODERS_PAD_A { B4 } +#define ENCODERS_PAD_B { B5 } + +/* key matrix pins */ +#define MATRIX_ROW_PINS { D3, D5, D7, D6 } +#define MATRIX_COL_PINS { E6, B0, B1, B2, B3, B7, F6, F5, F4, C7, F7, C6, B6, D4 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE + +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE diff --git a/keyboards/45_ats/info.json b/keyboards/45_ats/info.json new file mode 100644 index 00000000000..ead5090a54f --- /dev/null +++ b/keyboards/45_ats/info.json @@ -0,0 +1,169 @@ +{ + "keyboard_name": "45-ATS", + "url": "", + "maintainer": "The-Royal", + "width": 14.25, + "height": 4.25, + "layouts": { + "LAYOUT_split_space": { + "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":"", "x":13.5, "y":0}, + {"label":"", "x":0, "y":1, "w":1.25}, + {"label":"", "x":1.25, "y":1}, + {"label":"", "x":2.25, "y":1}, + {"label":"", "x":3.25, "y":1}, + {"label":"", "x":4.25, "y":1}, + {"label":"", "x":5.25, "y":1}, + {"label":"", "x":6.25, "y":1}, + {"label":"", "x":7.25, "y":1}, + {"label":"", "x":8.25, "y":1}, + {"label":"", "x":9.25, "y":1}, + {"label":"", "x":10.25, "y":1}, + {"label":"", "x":11.25, "y":1, "w":1.75}, + {"label":"", "x":13.5, "y":1}, + {"label":"", "x":0, "y":2, "w":1.75}, + {"label":"", "x":1.75, "y":2}, + {"label":"", "x":2.75, "y":2}, + {"label":"", "x":3.75, "y":2}, + {"label":"", "x":4.75, "y":2}, + {"label":"", "x":5.75, "y":2}, + {"label":"", "x":6.75, "y":2}, + {"label":"", "x":7.75, "y":2}, + {"label":"", "x":8.75, "y":2}, + {"label":"", "x":9.75, "y":2}, + {"label":"", "x":10.75, "y":2, "w":1.25}, + {"label":"", "x":12.25, "y":2.25}, + {"label":"", "x":13.5, "y":2}, + {"label":"", "x":0, "y":3, "w":1.25}, + {"label":"", "x":1.25, "y":3}, + {"label":"", "x":2.25, "y":3, "w":1.25}, + {"label":"", "x":3.5, "y":3, "w":2.75}, + {"label":"", "x":6.25, "y":3, "w":2.25}, + {"label":"", "x":8.5, "y":3, "w":1.25}, + {"label":"", "x":9.75, "y":3, "w":1.25}, + {"label":"", "x":11.25, "y":3.25}, + {"label":"", "x":12.25, "y":3.25}, + {"label":"", "x":13.25, "y":3.25} + ] + }, + "LAYOUT_625_space": { + "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":"", "x":13.5, "y":0}, + {"label":"", "x":0, "y":1, "w":1.25}, + {"label":"", "x":1.25, "y":1}, + {"label":"", "x":2.25, "y":1}, + {"label":"", "x":3.25, "y":1}, + {"label":"", "x":4.25, "y":1}, + {"label":"", "x":5.25, "y":1}, + {"label":"", "x":6.25, "y":1}, + {"label":"", "x":7.25, "y":1}, + {"label":"", "x":8.25, "y":1}, + {"label":"", "x":9.25, "y":1}, + {"label":"", "x":10.25, "y":1}, + {"label":"", "x":11.25, "y":1, "w":1.75}, + {"label":"", "x":13.5, "y":1}, + {"label":"", "x":0, "y":2, "w":1.75}, + {"label":"", "x":1.75, "y":2}, + {"label":"", "x":2.75, "y":2}, + {"label":"", "x":3.75, "y":2}, + {"label":"", "x":4.75, "y":2}, + {"label":"", "x":5.75, "y":2}, + {"label":"", "x":6.75, "y":2}, + {"label":"", "x":7.75, "y":2}, + {"label":"", "x":8.75, "y":2}, + {"label":"", "x":9.75, "y":2}, + {"label":"", "x":10.75, "y":2, "w":1.25}, + {"label":"", "x":12.25, "y":2.25}, + {"label":"K", "x":13.5, "y":2}, + {"label":"", "x":0, "y":3, "w":1.25}, + {"label":"", "x":1.25, "y":3}, + {"label":"", "x":2.25, "y":3, "w":1.25}, + {"label":"", "x":3.5, "y":3, "w":6.25}, + {"label":"", "x":9.75, "y":3, "w":1.25}, + {"label":"", "x":11.25, "y":3.25}, + {"label":"", "x":12.25, "y":3.25}, + {"label":"", "x":13.25, "y":3.25} + ] + }, + "LAYOUT_600_space": { + "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":"", "x":13.5, "y":0}, + {"label":"", "x":0, "y":1, "w":1.25}, + {"label":"", "x":1.25, "y":1}, + {"label":"", "x":2.25, "y":1}, + {"label":"", "x":3.25, "y":1}, + {"label":"", "x":4.25, "y":1}, + {"label":"", "x":5.25, "y":1}, + {"label":"", "x":6.25, "y":1}, + {"label":"", "x":7.25, "y":1}, + {"label":"", "x":8.25, "y":1}, + {"label":"", "x":9.25, "y":1}, + {"label":"", "x":10.25, "y":1}, + {"label":"", "x":11.25, "y":1, "w":1.75}, + {"label":"", "x":13.5, "y":1}, + {"label":"", "x":0, "y":2, "w":1.75}, + {"label":"", "x":1.75, "y":2}, + {"label":"", "x":2.75, "y":2}, + {"label":"", "x":3.75, "y":2}, + {"label":"", "x":4.75, "y":2}, + {"label":"", "x":5.75, "y":2}, + {"label":"", "x":6.75, "y":2}, + {"label":"", "x":7.75, "y":2}, + {"label":"", "x":8.75, "y":2}, + {"label":"", "x":9.75, "y":2}, + {"label":"", "x":10.75, "y":2, "w":1.25}, + {"label":"", "x":12.25, "y":2.25}, + {"label":"", "x":13.5, "y":2}, + {"label":"", "x":0, "y":3}, + {"label":"", "x":1, "y":3}, + {"label":"", "x":2, "y":3}, + {"label":"", "x":3, "y":3, "w":6.00}, + {"label":"", "x":9, "y":3}, + {"label":"", "x":10, "y":3}, + {"label":"", "x":11.25, "y":3.25}, + {"label":"", "x":12.25, "y":3.25}, + {"label":"", "x":13.25, "y":3.25} + ] + } + } + } + diff --git a/keyboards/45_ats/keymaps/default/config.h b/keyboards/45_ats/keymaps/default/config.h new file mode 100644 index 00000000000..faba80d278f --- /dev/null +++ b/keyboards/45_ats/keymaps/default/config.h @@ -0,0 +1,25 @@ + /* + Copyright 2020 Alec Penland + Copyright 2020 Garret Gartner + + 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 175 + +#define PERMISSIVE_HOLD + +#define MOD_TAP_INTERUPT diff --git a/keyboards/45_ats/keymaps/default/keymap.c b/keyboards/45_ats/keymaps/default/keymap.c new file mode 100644 index 00000000000..28941b173ff --- /dev/null +++ b/keyboards/45_ats/keymaps/default/keymap.c @@ -0,0 +1,107 @@ + /* + Copyright 2020 Alec Penland + Copyright 2020 Garret Gartner + + 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 + +// Layer names +enum ats_layers{ + // - Base layer: + _BASE, + // - Symbols, numbers, and functions: + _FN, + // - Alternate Function layer: + _LN +}; + +#define RS_SLS RSFT_T(KC_SLSH) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Default QWERTY layer + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┐ + * │Esc│ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │Del│BkS│ │PgU│ + * ├───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤ ├───┤ + * │Tab │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ' │Enter │ │PgD│ + * ├────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──┬───┘ ├───┤ + * │LShift│ Z │ X │ C │ V │ B │ N │ M │ , │ . │Sft/│ ┌───┐ │CAP│ + * ├────┬─┴─┬─┴──┬┴───┴───┴─┬─┴───┴──┬┴───┼───┴┬───┘ │ ↑ │ └───┘ + * │LCtl│OS │LAlt│ Fn │ Space │RAlt│ Ln │ ┌───┼───┼───┐ + * └────┴───┴────┴──────────┴────────┴────┴────┘ │ ← │ ↓ │ → │ + * └───┴───┴───┘ + */ + [_BASE] = LAYOUT_split_space( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_BSPC, KC_PGUP, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOTE, KC_ENT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, RS_SLS, KC_UP, KC_CAPS, + KC_LCTL, KC_LGUI, KC_LALT, MO(_FN), KC_SPACE, KC_RALT, MO(_LN), KC_LEFT, KC_DOWN, KC_RIGHT + ), + /* Main Numbers, Symbols & Function Layer (MOMENTARY) + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┐ + * │ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ [ │ ] │ \ │ │ │Hme│ + * ├───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤ ├───┤ + * │ │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ │ │End│ + * ├────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──┬───┘ ├───┤ + * │ │ ( │ ) │ ; │ . │ │ - │ + │ * │ / │ = │ ┌───┐ │ │ + * ├────┬─┴─┬─┴──┬┴───┴───┴─┬─┴───┴──┬┴───┼───┴┬───┘ │ │ └───┘ + * │ │ │ │ │ │ │ │ ┌───┼───┼───┐ + * └────┴───┴────┴──────────┴────────┴────┴────┘ │ │ │ │ + * └───┴───┴───┘ + */ + [_FN] = LAYOUT_split_space( + _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LBRC, KC_RBRC, KC_BSLS, _______, KC_HOME, + _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_ENTER, KC_END, + _______, KC_LPRN, KC_RPRN, KC_SCLN, KC_DOT, _______, KC_MINS, KC_PLUS, KC_ASTR, KC_SLSH, KC_EQL, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + /* ALTERNATE Function layer (MOMENTARY) + * ┌────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┐ + * │ PWR│F1 │F2 │F3 │F4 │F5 │F6 │ │ │ │ │PRV│NXT│ │VL+│ + * ├────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤ ├───┤ + * │ SLP │F7 │F8 │F9 │F10│F11│F12│ │ │ │ │ PLAY │ │VL-│ + * ├─────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──┬───┘ ├───┤ + * │ WAKE │ │ │ │ │ │ │ │ │ │ │ ┌───┐ │ │ + * ├────┬──┴─┬─┴──┬┴───┴───┴─┬─┴───┴──┬┴───┼───┴┬───┘ │ │ └───┘ + * │RSET│ │ │ │ │ │ │ ┌───┼───┼───┐ + * └────┴────┴────┴──────────┴────────┴────┴────┘ │ │ │ │ + * └───┴───┴───┘ + */ + [_LN] = LAYOUT_split_space( + KC_PWR, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, _______, _______, _______, _______, KC_MPRV, KC_MNXT, KC_VOLU, + KC_SLEP, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, KC_MPLY, KC_VOLD, + KC_WAKE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; + +//function for layer indicator LED +layer_state_t layer_state_set_user(layer_state_t state) { + writePin(D0, layer_state_cmp(state, 0)); + writePin(D1, layer_state_cmp(state, 1)); + writePin(D2, layer_state_cmp(state, 2)); + return state; +} + +void encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } +} diff --git a/keyboards/45_ats/keymaps/via/keymap.c b/keyboards/45_ats/keymaps/via/keymap.c new file mode 100644 index 00000000000..28941b173ff --- /dev/null +++ b/keyboards/45_ats/keymaps/via/keymap.c @@ -0,0 +1,107 @@ + /* + Copyright 2020 Alec Penland + Copyright 2020 Garret Gartner + + 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 + +// Layer names +enum ats_layers{ + // - Base layer: + _BASE, + // - Symbols, numbers, and functions: + _FN, + // - Alternate Function layer: + _LN +}; + +#define RS_SLS RSFT_T(KC_SLSH) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Default QWERTY layer + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┐ + * │Esc│ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │Del│BkS│ │PgU│ + * ├───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤ ├───┤ + * │Tab │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ' │Enter │ │PgD│ + * ├────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──┬───┘ ├───┤ + * │LShift│ Z │ X │ C │ V │ B │ N │ M │ , │ . │Sft/│ ┌───┐ │CAP│ + * ├────┬─┴─┬─┴──┬┴───┴───┴─┬─┴───┴──┬┴───┼───┴┬───┘ │ ↑ │ └───┘ + * │LCtl│OS │LAlt│ Fn │ Space │RAlt│ Ln │ ┌───┼───┼───┐ + * └────┴───┴────┴──────────┴────────┴────┴────┘ │ ← │ ↓ │ → │ + * └───┴───┴───┘ + */ + [_BASE] = LAYOUT_split_space( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_BSPC, KC_PGUP, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOTE, KC_ENT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, RS_SLS, KC_UP, KC_CAPS, + KC_LCTL, KC_LGUI, KC_LALT, MO(_FN), KC_SPACE, KC_RALT, MO(_LN), KC_LEFT, KC_DOWN, KC_RIGHT + ), + /* Main Numbers, Symbols & Function Layer (MOMENTARY) + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┐ + * │ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ [ │ ] │ \ │ │ │Hme│ + * ├───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤ ├───┤ + * │ │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ │ │End│ + * ├────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──┬───┘ ├───┤ + * │ │ ( │ ) │ ; │ . │ │ - │ + │ * │ / │ = │ ┌───┐ │ │ + * ├────┬─┴─┬─┴──┬┴───┴───┴─┬─┴───┴──┬┴───┼───┴┬───┘ │ │ └───┘ + * │ │ │ │ │ │ │ │ ┌───┼───┼───┐ + * └────┴───┴────┴──────────┴────────┴────┴────┘ │ │ │ │ + * └───┴───┴───┘ + */ + [_FN] = LAYOUT_split_space( + _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LBRC, KC_RBRC, KC_BSLS, _______, KC_HOME, + _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_ENTER, KC_END, + _______, KC_LPRN, KC_RPRN, KC_SCLN, KC_DOT, _______, KC_MINS, KC_PLUS, KC_ASTR, KC_SLSH, KC_EQL, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + /* ALTERNATE Function layer (MOMENTARY) + * ┌────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┐ + * │ PWR│F1 │F2 │F3 │F4 │F5 │F6 │ │ │ │ │PRV│NXT│ │VL+│ + * ├────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤ ├───┤ + * │ SLP │F7 │F8 │F9 │F10│F11│F12│ │ │ │ │ PLAY │ │VL-│ + * ├─────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──┬───┘ ├───┤ + * │ WAKE │ │ │ │ │ │ │ │ │ │ │ ┌───┐ │ │ + * ├────┬──┴─┬─┴──┬┴───┴───┴─┬─┴───┴──┬┴───┼───┴┬───┘ │ │ └───┘ + * │RSET│ │ │ │ │ │ │ ┌───┼───┼───┐ + * └────┴────┴────┴──────────┴────────┴────┴────┘ │ │ │ │ + * └───┴───┴───┘ + */ + [_LN] = LAYOUT_split_space( + KC_PWR, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, _______, _______, _______, _______, KC_MPRV, KC_MNXT, KC_VOLU, + KC_SLEP, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, KC_MPLY, KC_VOLD, + KC_WAKE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; + +//function for layer indicator LED +layer_state_t layer_state_set_user(layer_state_t state) { + writePin(D0, layer_state_cmp(state, 0)); + writePin(D1, layer_state_cmp(state, 1)); + writePin(D2, layer_state_cmp(state, 2)); + return state; +} + +void encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } +} diff --git a/keyboards/45_ats/keymaps/via/readme.md b/keyboards/45_ats/keymaps/via/readme.md new file mode 100644 index 00000000000..702a497dd86 --- /dev/null +++ b/keyboards/45_ats/keymaps/via/readme.md @@ -0,0 +1,3 @@ +# 45-ATS VIA Firmware + +This keymap is to enable the use of VIA on the 45-ATS Keyboard. diff --git a/keyboards/sp111/keymaps/via/rules.mk b/keyboards/45_ats/keymaps/via/rules.mk similarity index 100% rename from keyboards/sp111/keymaps/via/rules.mk rename to keyboards/45_ats/keymaps/via/rules.mk diff --git a/keyboards/45_ats/readme.md b/keyboards/45_ats/readme.md new file mode 100644 index 00000000000..7d778df083b --- /dev/null +++ b/keyboards/45_ats/readme.md @@ -0,0 +1,16 @@ +# 45-ATS + +![45ats](https://i.imgur.com/Paqx5zGl.png) + +A Premium and Beautiful 45% (And-Then-Some) Keyboard. Concept and Design by [Abec13](https://www.reddit.com/user/abec13). + +- Keyboard Designer: [Abec13](https://reddit.com/u/abec13/) +- Keyboard Maintainer: [The-Royal](https://github.com/the-royal) +- Hardware Supported: 45-ATS v1.0 PCB +- Hardware Availability: Through Group Buy - Dec. 2019 + +Make example for this keyboard (after setting up your build environment): + + make 45_ats: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/45_ats/rules.mk b/keyboards/45_ats/rules.mk new file mode 100644 index 00000000000..db96f0afc8c --- /dev/null +++ b/keyboards/45_ats/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 = full # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/whitefox/led.c b/keyboards/7splus/7splus.c similarity index 84% rename from keyboards/whitefox/led.c rename to keyboards/7splus/7splus.c index aed66c7c03f..ca94ab0efac 100644 --- a/keyboards/whitefox/led.c +++ b/keyboards/7splus/7splus.c @@ -1,5 +1,5 @@ /* -Copyright 2012 Jun Wako +Copyright 2020 Salicylic_Acid 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 @@ -14,11 +14,4 @@ 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 "hal.h" - -#include "led.h" - - -void led_set(uint8_t usb_led) { -} +#include "7splus.h" diff --git a/keyboards/7splus/7splus.h b/keyboards/7splus/7splus.h new file mode 100644 index 00000000000..55b9c24f9cd --- /dev/null +++ b/keyboards/7splus/7splus.h @@ -0,0 +1,61 @@ +/* +Copyright 2020 Salicylic_Acid + +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" + +/* + * ,-------------------------------------- ----------------------------------------------------------. + * | L00 | L01 | L02 | L03 | L04 | L05 | | R00 | R01 | R02 | R03 | R04 | R05 | R06 | R07 | R60 | + * |-------------------------------------- ------------------------------------------------------------+ + * | L10 | L11 | L12 | L13 | L14 | L15 | | R10 | R11 | R12 | R13 | R14 | R15 | R16 | R17 | R62 | + * |---------------------------------------------------------------------------------------------------+ + * | L20 | L21 | L22 | L23 | L24 | L25 | | R20 | R21 | R22 | R23 | R24 | R25 | R26 | R27 | R63 | + * |---------------------------------------- ---------------------------------------------------------+ + * | L30 | L31 | L32 | L33 | L34 | L35 | | R30 | R31 | R32 | R33 | R34 | R35 | R36 | R37 | + * |---------------------------------------------------------------------------------------------------+ + * | L40 | L41 | L42 | L43 | L44 | L45 | | R40 | R41 | R42 | R43 | R44 | R45 | R47 | R57 | + * |---------------------------------------------------------------------------------------------------+ + * | L50 | L51 | L52 | L53 | L54 | L55 | | R50 | R51 | R53 | R54 | R55 | R56 | R64 | + * |---------------------------------------- ------------------------------------------------------' + */ + +#define LAYOUT( \ + L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, R06, R07, R60, \ + L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, R16, R17, R62, \ + L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, R26, R27, R63, \ + L30, L31, L32, L33, L34, L35, R30, R31, R32, R33, R34, R35, R36, R37, \ + L40, L41, L42, L43, L44, L45, R40, R41, R42, R43, R44, R45, R47, R57, \ + L50, L51, L52, L54, L55, R50, R51, R53, R54, R55, R56, R64 \ + ) \ + { \ + { L00, L01, L02, L03, L04, L05, KC_NO, KC_NO }, \ + { L10, L11, L12, L13, L14, L15, KC_NO, KC_NO }, \ + { L20, L21, L22, L23, L24, L25, KC_NO, KC_NO }, \ + { L30, L31, L32, L33, L34, L35, KC_NO, KC_NO }, \ + { L40, L41, L42, L43, L44, L45, KC_NO, KC_NO }, \ + { L50, L51, L52, KC_NO, L54, L55, KC_NO, KC_NO }, \ + {KC_NO,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \ + { R00, R01, R02, R03, R04, R05, R06, R07 }, \ + { R10, R11, R12, R13, R14, R15, R16, R17 }, \ + { R20, R21, R22, R23, R24, R25, R26, R27 }, \ + { R30, R31, R32, R33, R34, R35, R36, R37 }, \ + { R40, R41, R42, R43, R44, R45, KC_NO, R47 }, \ + { R50, R51, KC_NO, R53, R54, R55, R56, R57 }, \ + { R60, KC_NO, R62, R63, R64, KC_NO, KC_NO, KC_NO } \ + } diff --git a/keyboards/7splus/config.h b/keyboards/7splus/config.h new file mode 100644 index 00000000000..8f3e32a52f9 --- /dev/null +++ b/keyboards/7splus/config.h @@ -0,0 +1,84 @@ +/* +Copyright 2020 Salicylic_acid3 + +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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x04D8 +#define PRODUCT_ID 0xEAE7 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Salicylic_Acid +#define PRODUCT 7splus + +/* key matrix size */ +#define MATRIX_ROWS 14 +#define MATRIX_COLS 8 + +// wiring of each half +#define MATRIX_ROW_PINS { D1, D0, D4, C6, D7, E6, B4 } +#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2, B5 } + +#define DIODE_DIRECTION COL2ROW + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* serial.c configuration for split keyboard */ +#define SOFT_SERIAL_PIN D2 +#define SPLIT_HAND_PIN B6 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* ws2812 RGB LED */ +#define RGB_DI_PIN D3 + +#ifndef RGBLED_NUM + #define RGBLED_NUM 31 + #define RGBLIGHT_SPLIT + #define RGBLED_SPLIT { 11, 20 } +#endif + +#define RGBLIGHT_ANIMATIONS + +#ifndef IOS_DEVICE_ENABLE + #define RGBLIGHT_LIMIT_VAL 180 + #define RGBLIGHT_VAL_STEP 17 +#else + #define RGBLIGHT_LIMIT_VAL 50 + #define RGBLIGHT_VAL_STEP 4 +#endif +#define RGBLIGHT_HUE_STEP 10 +#define RGBLIGHT_SAT_STEP 17 + +#if defined(RGBLIGHT_ENABLE) && !defined(IOS_DEVICE_ENABLE) +// USB_MAX_POWER_CONSUMPTION value for naked48 keyboard +// 120 RGBoff, OLEDoff +// 120 OLED +// 330 RGB 6 +// 300 RGB 32 +// 310 OLED & RGB 32 + #define USB_MAX_POWER_CONSUMPTION 400 +#else + // fix iPhone and iPad power adapter issue + // iOS device need lessthan 100 + #define USB_MAX_POWER_CONSUMPTION 100 +#endif diff --git a/keyboards/7splus/info.json b/keyboards/7splus/info.json new file mode 100644 index 00000000000..55ead9976d4 --- /dev/null +++ b/keyboards/7splus/info.json @@ -0,0 +1,98 @@ +{ + "keyboard_name": "7splus", + "url": "https://salicylic-acid3.hatenablog.com/", + "maintainer": "Salicylic_acid3", + "width": 17, + "height": 6.25, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":1.25, "y":0}, + {"label":"F2", "x":2.25, "y":0}, + {"label":"F3", "x":3.25, "y":0}, + {"label":"F4", "x":4.25, "y":0}, + {"label":"F5", "x":5.5, "y":0}, + {"label":"F6", "x":7.5, "y":0}, + {"label":"F7", "x":8.5, "y":0}, + {"label":"F8", "x":9.5, "y":0}, + {"label":"F9", "x":10.75, "y":0}, + {"label":"F10", "x":11.75, "y":0}, + {"label":"F11", "x":12.75, "y":0}, + {"label":"F12", "x":13.75, "y":0}, + {"label":"PrtScr", "x":15, "y":0}, + {"label":"Delete", "x":16, "y":0}, + {"label":"~", "x":0, "y":1.25}, + {"label":"1", "x":1, "y":1.25}, + {"label":"2", "x":2, "y":1.25}, + {"label":"3", "x":3, "y":1.25}, + {"label":"4", "x":4, "y":1.25}, + {"label":"5", "x":5, "y":1.25}, + {"label":"6", "x":7, "y":1.25}, + {"label":"7", "x":8, "y":1.25}, + {"label":"8", "x":9, "y":1.25}, + {"label":"9", "x":10, "y":1.25}, + {"label":"0", "x":11, "y":1.25}, + {"label":"-", "x":12, "y":1.25}, + {"label":"=", "x":13, "y":1.25}, + {"label":"Back Space", "x":14, "y":1.25, "w":2}, + {"label":"Home", "x":16, "y":1.25}, + {"label":"Tab", "x":0, "y":2.25, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.25}, + {"label":"W", "x":2.5, "y":2.25}, + {"label":"E", "x":3.5, "y":2.25}, + {"label":"R", "x":4.5, "y":2.25}, + {"label":"T", "x":5.5, "y":2.25}, + {"label":"Y", "x":7.5, "y":2.25}, + {"label":"U", "x":8.5, "y":2.25}, + {"label":"I", "x":9.5, "y":2.25}, + {"label":"O", "x":10.5, "y":2.25}, + {"label":"P", "x":11.5, "y":2.25}, + {"label":"[", "x":12.5, "y":2.25}, + {"label":"]", "x":13.5, "y":2.25}, + {"label":"\"", "x":14.5, "y":2.25, "w":1.5}, + {"label":"Page Up", "x":16, "y":2.25}, + {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, + {"label":"A", "x":1.75, "y":3.25}, + {"label":"S", "x":2.75, "y":3.25}, + {"label":"D", "x":3.75, "y":3.25}, + {"label":"F", "x":4.75, "y":3.25}, + {"label":"G", "x":5.75, "y":3.25}, + {"label":"H", "x":7.75, "y":3.25}, + {"label":"J", "x":8.75, "y":3.25}, + {"label":"K", "x":9.75, "y":3.25}, + {"label":"L", "x":10.75, "y":3.25}, + {"label":":", "x":11.75, "y":3.25}, + {"label":"'", "x":12.75, "y":3.25}, + {"label":"Enter", "x":13.75, "y":3.25, "w":2.25}, + {"label":"Page Down", "x":16, "y":3.25}, + {"label":"Shift", "x":0, "y":4.25, "w":2.25}, + {"label":"Z", "x":2.25, "y":4.25}, + {"label":"X", "x":3.25, "y":4.25}, + {"label":"C", "x":4.25, "y":4.25}, + {"label":"V", "x":5.25, "y":4.25}, + {"label":"B", "x":6.25, "y":4.25}, + {"label":"N", "x":8.25, "y":4.25}, + {"label":"M", "x":9.25, "y":4.25}, + {"label":"<", "x":10.25, "y":4.25}, + {"label":">", "x":11.25, "y":4.25}, + {"label":"?", "x":12.25, "y":4.25}, + {"label":"Shift","x":13.25, "y":4.25, "w":1.75}, + {"label":"Up", "x":15, "y":4.25}, + {"label":"End", "x":16, "y":4.25}, + {"label":"Ctrl", "x":0, "y":5.25, "w":1.25}, + {"label":"Win", "x":1.25, "y":5.25, "w":1.25}, + {"label":"Alt", "x":2.5, "y":5.25, "w":1.25}, + {"x":3.75, "y":5.25, "w":2}, + {"x":5.75, "y":5.25}, + {"x":7.75, "y":5.25}, + {"x":8.75, "y":5.25, "w":2.75}, + {"label":"Alt", "x":11.5, "y":5.25, "w":1.25}, + {"label":"App", "x":12.75, "y":5.25, "w":1.25}, + {"label":"Left", "x":14, "y":5.25}, + {"label":"Down", "x":15, "y":5.25}, + {"label":"Right", "x":16, "y":5.25} + ] + } + } +} diff --git a/keyboards/7splus/keymaps/default/keymap.c b/keyboards/7splus/keymaps/default/keymap.c new file mode 100644 index 00000000000..282bfaf6611 --- /dev/null +++ b/keyboards/7splus/keymaps/default/keymap.c @@ -0,0 +1,81 @@ +/* +Copyright 2020 Salicylic_Acid + +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 + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +enum layer_number { + _QWERTY = 0, + _ADJUST, +}; + +enum custom_keycodes { + RGB_RST = SAFE_RANGE +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QWERTY] = LAYOUT( + //,-----------------------------------------------------| |--------------------------------------------------------------------------------. + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_DEL, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------| +LT(_ADJUST,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_HOME, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------| + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------| + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------| + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------| + KC_LCTRL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_APP, KC_LEFT, KC_DOWN,KC_RIGHT + //`-----------------------------------------------------| |--------------------------------------------------------------------------------' + ), + [_ADJUST] = LAYOUT( /* Base */ + //,-----------------------------------------------------| |--------------------------------------------------------------------------------. + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------| + MO(_ADJUST), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------| + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_RST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------| + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, RGB_MOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------| + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAD, RGB_VAI, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------| + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX + //`-----------------------------------------------------| |--------------------------------------------------------------------------------' + ) +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { +#ifdef RGBLIGHT_ENABLE + case RGB_RST: + if (record->event.pressed) { + uint8_t mode = rgblight_get_mode(); + eeconfig_update_rgblight_default(); + rgblight_enable(); + rgblight_mode(mode); + } + break; +#endif + } + + return true; +} diff --git a/keyboards/7splus/keymaps/salicylic/config.h b/keyboards/7splus/keymaps/salicylic/config.h new file mode 100644 index 00000000000..81ee8ef7850 --- /dev/null +++ b/keyboards/7splus/keymaps/salicylic/config.h @@ -0,0 +1,22 @@ +/* Copyright 2020 Salicylic_acid3 + * + * 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 + +/* Select hand configuration */ + +#define TAPPING_FORCE_HOLD +#define TAPPING_TERM 180 diff --git a/keyboards/7splus/keymaps/salicylic/keymap.c b/keyboards/7splus/keymaps/salicylic/keymap.c new file mode 100644 index 00000000000..4435bf98cba --- /dev/null +++ b/keyboards/7splus/keymaps/salicylic/keymap.c @@ -0,0 +1,147 @@ +/* +Copyright 2020 Salicylic_Acid + +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 "keymap_jp.h" +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +enum layer_number { + _QWERTY = 0, + _MOUSE, + _LOWER, + _RAISE, + _ADJUST, +}; + +enum custom_keycodes { + RGB_RST = SAFE_RANGE +}; + +enum tapdances{ + TD_ESMS = 0, + TD_ESAR, +}; + +qk_tap_dance_action_t tap_dance_actions[] = { + [TD_ESMS] = ACTION_TAP_DANCE_DUAL_ROLE(KC_ESC, _MOUSE), + [TD_ESAR] = ACTION_TAP_DANCE_DUAL_ROLE(KC_ESC, _QWERTY), +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QWERTY] = LAYOUT( + //,-----------------------------------------------------| |--------------------------------------------------------------------------------. + TD(TD_ESMS), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_DEL, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------| + KC_ZKHK, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, JP_MINS, JP_EQL, KC_BSPC, KC_HOME, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------| + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, JP_LBRC, JP_RBRC, JP_BSLS, KC_PGUP, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------| + KC_LCTRL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, JP_MINS, JP_QUOT, KC_ENT, KC_PGDN, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------| + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------| + KC_ZKHK, KC_LGUI,ALT_T(KC_MHEN),LT(_LOWER,KC_ENT),KC_BSPC, KC_DEL,LT(_RAISE,KC_SPC), ALT_T(KC_HENK), KC_APP, KC_LEFT, KC_DOWN,KC_RIGHT + //`-----------------------------------------------------| |--------------------------------------------------------------------------------' + ), + + [_MOUSE] = LAYOUT( + //,-----------------------------------------------------| |--------------------------------------------------------------------------------. + TD(TD_ESAR), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------| + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------| + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, LCTL(KC_W), + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------| + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, LCTL(LSFT(KC_T)), + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------| + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BTN1, KC_MS_U, KC_BTN2, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------| + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R + //`-----------------------------------------------------| |--------------------------------------------------------------------------------' + ), + + [_LOWER] = LAYOUT( + //,-----------------------------------------------------| |--------------------------------------------------------------------------------. + KC_ESC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------| + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------| + JP_QUOT, JP_EXLM, JP_QUES, JP_LBRC, JP_RBRC, JP_TILD, KC_P6, KC_P7, KC_P8, KC_P9, JP_ASTR, JP_SLSH, _______, _______, KC_HOME, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------| +LCTL_T(JP_QUOT),JP_HASH, JP_DQT, JP_LPRN, JP_RPRN, JP_AT, XXXXXXX, KC_P4, KC_P5, KC_P6, JP_MINS, JP_EQL, _______, KC_END, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------| +SFT_T(JP_CIRC),JP_PERC, JP_AMPR, JP_SCLN, JP_COLN, JP_PIPE, KC_P0, KC_P1, KC_P2, KC_P3, JP_PLUS, _______, KC_UP, KC_PGUP, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------| + _______, _______, _______, MO(_LOWER), _______, _______,MO(_RAISE), _______, _______, KC_LEFT, KC_DOWN,KC_RIGHT + //`-----------------------------------------------------| |--------------------------------------------------------------------------------' + ), + + [_RAISE] = LAYOUT( + //,-----------------------------------------------------| |--------------------------------------------------------------------------------. + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------| + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------| + KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, XXXXXXX, XXXXXXX, KC_UP, XXXXXXX, KC_PGUP, XXXXXXX, _______, _______, KC_HOME, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------| +LCTL_T(KC_F11),XXXXXXX, KC_F2, KC_F3, KC_F4, KC_F5, XXXXXXX, KC_LEFT, KC_DOWN,KC_RIGHT, XXXXXXX, XXXXXXX, _______, KC_END, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------| +SFT_T(KC_F12), KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PGDN, _______, KC_UP, KC_PGUP, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------| + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN,KC_RIGHT + //`-----------------------------------------------------| |--------------------------------------------------------------------------------' + ), + + [_ADJUST] = LAYOUT( /* Base */ + //,-----------------------------------------------------| |--------------------------------------------------------------------------------. + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------| + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------| + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_RST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------| + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, RGB_MOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------| + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAD, RGB_VAI, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------| + _______, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX + //`-----------------------------------------------------| |--------------------------------------------------------------------------------' + ) +}; + +//A description for expressing the layer position in LED mode. +layer_state_t layer_state_set_user(layer_state_t state) { + return update_tri_layer_state(state, _RAISE, _LOWER, _ADJUST); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { +#ifdef RGBLIGHT_ENABLE + case RGB_RST: + if (record->event.pressed) { + uint8_t mode = rgblight_get_mode(); + eeconfig_update_rgblight_default(); + rgblight_enable(); + rgblight_mode(mode); + } + break; +#endif + } + return true; +} diff --git a/keyboards/7splus/keymaps/salicylic/rules.mk b/keyboards/7splus/keymaps/salicylic/rules.mk new file mode 100644 index 00000000000..0bcbf86d5e4 --- /dev/null +++ b/keyboards/7splus/keymaps/salicylic/rules.mk @@ -0,0 +1,2 @@ +TAP_DANCE_ENABLE = yes +MOUSEKEY_ENABLE = yes \ No newline at end of file diff --git a/keyboards/7splus/keymaps/via/config.h b/keyboards/7splus/keymaps/via/config.h new file mode 100644 index 00000000000..8a89da2eae0 --- /dev/null +++ b/keyboards/7splus/keymaps/via/config.h @@ -0,0 +1,23 @@ +/* Copyright 2020 Salicylic_acid3 + * + * 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 + +/* Select hand configuration */ + +#define TAPPING_FORCE_HOLD +#define TAPPING_TERM 180 +#define DYNAMIC_KEYMAP_LAYER_COUNT 3 diff --git a/keyboards/7splus/keymaps/via/keymap.c b/keyboards/7splus/keymaps/via/keymap.c new file mode 100644 index 00000000000..c17e1ce4500 --- /dev/null +++ b/keyboards/7splus/keymaps/via/keymap.c @@ -0,0 +1,71 @@ +/* +Copyright 2020 Salicylic_Acid + +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 + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + //,-----------------------------------------------------| |--------------------------------------------------------------------------------. + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_DEL, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------| + LT(1,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_HOME, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------| + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------| + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------| + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------| + KC_LCTRL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_APP, KC_LEFT, KC_DOWN,KC_RIGHT + //`-----------------------------------------------------| |--------------------------------------------------------------------------------' + ), + [1] = LAYOUT( /* Base */ + //,-----------------------------------------------------| |--------------------------------------------------------------------------------. + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------| + MO(1), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------| + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------| + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, RGB_MOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------| + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAD, RGB_VAI, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------| + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX + //`-----------------------------------------------------| |--------------------------------------------------------------------------------' + ), + [2] = LAYOUT( + //,-----------------------------------------------------| |--------------------------------------------------------------------------------. + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------| + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------| + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------| + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------| + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------| + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX + //`-----------------------------------------------------| |--------------------------------------------------------------------------------' + ) +}; diff --git a/keyboards/7splus/keymaps/via/rules.mk b/keyboards/7splus/keymaps/via/rules.mk new file mode 100644 index 00000000000..036bd6d1c3e --- /dev/null +++ b/keyboards/7splus/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/7splus/readme.md b/keyboards/7splus/readme.md new file mode 100644 index 00000000000..a7335952496 --- /dev/null +++ b/keyboards/7splus/readme.md @@ -0,0 +1,17 @@ +# 7sPlus + +![7splus](https://s2.booth.pm/1d33594d-0c5f-4f93-baf5-2e89e0d99afc/i/2425503/044ca31d-6715-475c-b8c4-1dfdeb57b682_base_resized.jpg) + +This is 85 keys Custom keyboard. + +* Keyboard Maintainer: [Salicylic_acid3](https://github.com/Salicylic-acid3) +* Hardware Supported: 7sPlus PCB, Pro Micro +* Hardware Availability: [PCB & Case Data](https://github.com/Salicylic-acid3/PCB_Data), [Booth Shop](https://salicylic-acid3.booth.pm/items/2425503) + +Make example for this keyboard (after setting up your build environment): + + make 7splus: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). + +[Build guide](https://salicylic-acid3.hatenablog.com/entry/7splus-build-guide) diff --git a/keyboards/7splus/rules.mk b/keyboards/7splus/rules.mk new file mode 100644 index 00000000000..52da9f00eda --- /dev/null +++ b/keyboards/7splus/rules.mk @@ -0,0 +1,24 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # 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 +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output + +SPLIT_KEYBOARD = yes diff --git a/keyboards/aeboards/ext65/rev2/bootloader_defs.h b/keyboards/aeboards/ext65/rev2/bootloader_defs.h deleted file mode 100644 index 02c48c4e6dc..00000000000 --- 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/soyuz/keymaps/via/keymap.c b/keyboards/ai03/soyuz/keymaps/via/keymap.c index 9b62ca21725..c516d2b4d32 100644 --- a/keyboards/ai03/soyuz/keymaps/via/keymap.c +++ b/keyboards/ai03/soyuz/keymaps/via/keymap.c @@ -1,4 +1,7 @@ -/* Copyright (C) 2020 Sendy YK (https://mr.sendyyk.com). +/* + * ai03 Soyuz VIA Keymap + * + * Copyright (C) 2020 Sendy YK * * 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 @@ -13,7 +16,7 @@ * 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 { @@ -34,26 +37,26 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), // Fn Layer 1 [_FN] = LAYOUT_ortho_5x4( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______ ), // Fn Layer 2 [_FN2] = LAYOUT_ortho_5x4( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______ ), // Fn Layer 3 [_FN3] = LAYOUT_ortho_5x4( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______ ) }; diff --git a/keyboards/ai03/soyuz/soyuz.h b/keyboards/ai03/soyuz/soyuz.h index 05c42a6d647..c7f15866e17 100644 --- a/keyboards/ai03/soyuz/soyuz.h +++ b/keyboards/ai03/soyuz/soyuz.h @@ -52,7 +52,7 @@ * ├───┴───┼───┤43 │ * │41 │42 │ │ * └───────┴───┴───┘ -*/ + */ #define LAYOUT_numpad_5x4( \ k00, k01, k02, k03, \ diff --git a/keyboards/ai03/vega/bootloader_defs.h b/keyboards/ai03/vega/bootloader_defs.h deleted file mode 100644 index 02c48c4e6dc..00000000000 --- 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 00000000000..98f37e8cfed --- /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 00000000000..96d5fcfbf2a --- /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 00000000000..171f0c7f07e --- /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 00000000000..1a78792616f --- /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 00000000000..1a5e74c42e7 --- /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 00000000000..cb1709f705c --- /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 00000000000..1e5b99807cb --- /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 00000000000..f67b2f19d21 --- /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 00000000000..f49426d5137 --- /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 00000000000..251198c4457 --- /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 00000000000..fa178316e49 --- /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/bm60rgb_iso/keymaps/iso_nordic_sleepmode/config.h b/keyboards/bm60rgb_iso/keymaps/iso_nordic_sleepmode/config.h new file mode 100644 index 00000000000..a1bb75eb4a0 --- /dev/null +++ b/keyboards/bm60rgb_iso/keymaps/iso_nordic_sleepmode/config.h @@ -0,0 +1,34 @@ +/* Copyright 2020 jakobst1n + * + * 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 + +/***************************** + * SLEEPMODE CONFIG + *****************************/ +#define SLEEPMODE_ENABLE // see keymap readme for info about this function. + +/* How long the backlight should stay on + without any interaction before turning off. */ +#define SLEEPMODE_TIMEOUT 10 // in minutes +/* Which mode we should enter after the timeout, + RGB_MATRIX_NONE to turn off. + I thinks RGB_MATRIX_DIGITAL RAIN is pretty :) */ +#define SLEEPMODE_RGB_MODE RGB_MATRIX_NONE +/* The desired animation speed when in "sleep mode" */ +#define SLEEPMODE_RGB_ANIMATION_SPEED 10 +/* The desired brightness when in "sleep mode" */ +#define SLEEPMODE_RGB_VAL 10 diff --git a/keyboards/bm60rgb_iso/keymaps/iso_nordic_sleepmode/keymap.c b/keyboards/bm60rgb_iso/keymaps/iso_nordic_sleepmode/keymap.c new file mode 100644 index 00000000000..4e874b26df7 --- /dev/null +++ b/keyboards/bm60rgb_iso/keymaps/iso_nordic_sleepmode/keymap.c @@ -0,0 +1,116 @@ +/* Copyright 2020 jakobst1n + * + * 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 + +#ifdef RGB_MATRIX_ENABLE +#ifdef SLEEPMODE_ENABLE + /* A bunch of vars to keep track of the rgb states + before sleepmode is turned on */ + static bool sleepmode_on = false; + static uint8_t sleepmode_before_mode = -1; + static uint8_t sleepmode_before_brightness = -1; + static uint8_t sleepmode_before_anim_speed = -1; + static uint8_t halfmin_counter = 0; + static uint16_t idle_timer = 0; +#endif +#endif + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* ,-----------------------------------------------------------. + * |ESC| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | + | ´ | BACK | + * |-----------------------------------------------------------| + * | TAB | Q | W | E | R | T | Y | U | I | O | P | Å | ¨ | RET | + * |------------------------------------------------------\ | + * | CAPS | A | S | D | F | G | H | J | K | L | Ø | Æ | @ | | + * |-----------------------------------------------------------| + * | ^ | < | Z | X | C | V | B | N | M | , | . | ^/- | U | - | + * |-----------------------------------------------------------| + * |ctrl| win| alt| |alt| fn| L | D | R | + * `-----------------------------------------------------------' */ + [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_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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, MT(MOD_RSFT, KC_SLSH), KC_UP, KC_SLSH, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, OSL(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + /* ,-----------------------------------------------------------. + * |GRA| f1| f2| f3| f4| f5| f6| f7| f8| f9|f10|f11|f12| DEL | + * |-----------------------------------------------------------| + * | | R | R | R | R | R | R | R | R | | | | | | + * |------------------------------------------------------\ | + * | | | | | | | H |PGD|PGU| E | | | | | + * |-----------------------------------------------------------| + * | | | | | | | | | | | | |V_D|V_U| + * |-----------------------------------------------------------| + * | | | | | |PRE|PLA|NEX| + * `-----------------------------------------------------------' */ + [1] = LAYOUT( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, + _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT + ), +}; + + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { +#if defined(RGB_MATRIX_ENABLE) && defined(SLEEPMODE_ENABLE) + if (record->event.pressed) { + if (sleepmode_before_mode == -1) { sleepmode_before_mode = rgb_matrix_get_mode(); } + if (sleepmode_before_brightness == -1) { sleepmode_before_brightness = rgb_matrix_get_val(); } + if (sleepmode_before_anim_speed == -1) { sleepmode_before_anim_speed = rgb_matrix_get_speed(); } + + if (sleepmode_on == true) { + // rgb_matrix_enable_noeeprom(); + rgb_matrix_mode_noeeprom(sleepmode_before_mode); + rgb_matrix_set_speed_noeeprom(sleepmode_before_anim_speed); + rgb_matrix_sethsv_noeeprom(rgb_matrix_get_hue(), rgb_matrix_get_sat(), sleepmode_before_brightness); + sleepmode_on = false; + } + idle_timer = timer_read(); + halfmin_counter = 0; + } +#endif + return true; + } + + void matrix_scan_user(void) { +#if defined(RGB_MATRIX_ENABLE) && defined(SLEEPMODE_ENABLE) + /* idle_timer needs to be set one time */ + if (idle_timer == 0) idle_timer = timer_read(); + + if ( !sleepmode_on && timer_elapsed(idle_timer) > 30000) { + halfmin_counter++; + idle_timer = timer_read(); + } + + if ( !sleepmode_on && halfmin_counter >= SLEEPMODE_TIMEOUT * 2) {// * 2) { + layer_clear(); + sleepmode_before_anim_speed = rgb_matrix_get_speed(); + sleepmode_before_brightness = rgb_matrix_get_val(); + sleepmode_before_mode = rgb_matrix_get_mode(); + //rgb_matrix_disable_noeeprom(); + + rgb_matrix_mode_noeeprom(SLEEPMODE_RGB_MODE); + rgb_matrix_set_speed_noeeprom(SLEEPMODE_RGB_ANIMATION_SPEED); + rgb_matrix_sethsv_noeeprom(rgb_matrix_get_hue(), rgb_matrix_get_sat(), SLEEPMODE_RGB_VAL); + sleepmode_on = true; + halfmin_counter = 0; + } +#endif +} diff --git a/keyboards/bm60rgb_iso/keymaps/iso_nordic_sleepmode/readme.md b/keyboards/bm60rgb_iso/keymaps/iso_nordic_sleepmode/readme.md new file mode 100644 index 00000000000..af5b29da192 --- /dev/null +++ b/keyboards/bm60rgb_iso/keymaps/iso_nordic_sleepmode/readme.md @@ -0,0 +1,17 @@ +# Nordic keymap for BM60rgb_iso +Very few changes from default keyboard, apart from the button right of leftshift, +and adding some more buttons on the second layer (function keys, home/end, pg up/down and media keys). + +On the default layout, the top left button is RESET on the second layer, +this board has a reset button on the back. So I feel like it serves a better +purpose as the grave key (because grave-escape doesn't really +work with mac and norwegian layout). It could of course also be on the base layer. +But as a regular vim user I use escape more than the grave key. + +I have also added mod-tap to the right shift, with the "default" position for +`KC_SLSH` beeing on the far right, that works fine. + +There is also a "sleep-mode" function added, +this can be enabled defining `SLEEPMODE_ENABLE` in `config.h`. +This makes the keyboard backlight turn off after 10 minutes without any +keypresses, and turn on again on keypress. (This is something different than `USB_SUSPEND`) diff --git a/keyboards/boardsource/holiday/spooky/config.h b/keyboards/boardsource/holiday/spooky/config.h new file mode 100644 index 00000000000..92eb4c32acb --- /dev/null +++ b/keyboards/boardsource/holiday/spooky/config.h @@ -0,0 +1,133 @@ +/* +Copyright 2020 boardsource + +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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4273 +#define PRODUCT_ID 0x1031 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Boardsource +#define PRODUCT spooky + +/* key matrix size */ +#define MATRIX_ROWS 2 +#define MATRIX_COLS 3 + +#define DIRECT_PINS { {E6,B4,B5}, {B3,B2,B6}} + +#define RGB_DI_PIN D3 +#define RGBLIGHT_ANIMATIONS +#ifdef RGBLIGHT_ENABLE +#define RGBLED_NUM 5 // Number of LEDs +#endif + + +//#define BACKLIGHT_PIN B7 +//#define BACKLIGHT_LEVELS 3 +//#define BACKLIGHT_BREATHING + +//#define RGB_DI_PIN E2 +//#ifdef RGB_DI_PIN +//# define RGBLED_NUM 16 +//# define RGBLIGHT_HUE_STEP 8 +//# define RGBLIGHT_SAT_STEP 8 +//# define RGBLIGHT_VAL_STEP 8 +//# define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ +//# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +/*== all animations enable ==*/ +//# define RGBLIGHT_ANIMATIONS +/*== or choose animations ==*/ +//# define RGBLIGHT_EFFECT_BREATHING +//# define RGBLIGHT_EFFECT_RAINBOW_MOOD +//# define RGBLIGHT_EFFECT_RAINBOW_SWIRL +//# define RGBLIGHT_EFFECT_SNAKE +//# define RGBLIGHT_EFFECT_KNIGHT +//# define RGBLIGHT_EFFECT_CHRISTMAS +//# define RGBLIGHT_EFFECT_STATIC_GRADIENT +//# define RGBLIGHT_EFFECT_RGB_TEST +//# define RGBLIGHT_EFFECT_ALTERNATING +/*== customize breathing effect ==*/ +/*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ +//# define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64 +/*==== use exp() and sin() ====*/ +//# define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7 +//# define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255 +//#endif + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is useful for the Windows task manager shortcut (ctrl+shift+esc). + */ +//#define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +/* Bootmagic Lite key configuration */ +//#define BOOTMAGIC_LITE_ROW 0 +//#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/boardsource/holiday/spooky/info.json b/keyboards/boardsource/holiday/spooky/info.json new file mode 100644 index 00000000000..a39b45b7268 --- /dev/null +++ b/keyboards/boardsource/holiday/spooky/info.json @@ -0,0 +1,20 @@ +{ + "keyboard_name": "spooky", + "url": "https://boardsource.xyz/store/5f783f6da2c1b43e37ca0795", + "maintainer": "boardsource", + "width": 3, + "height": 2, + "layouts": { + "LAYOUT": { + "layout": [ + { "label": "k00", "x": 0, "y": 0 }, + { "label": "k01", "x": 1, "y": 0 }, + { "label": "k02", "x": 2, "y": 0 }, + + { "label": "k10", "x": 0, "y": 1 }, + { "label": "k11", "x": 1, "y": 1 }, + { "label": "k12", "x": 2, "y": 1 } + ] + } + } +} diff --git a/keyboards/boardsource/holiday/spooky/keymaps/default/keymap.c b/keyboards/boardsource/holiday/spooky/keymaps/default/keymap.c new file mode 100644 index 00000000000..b4fcfc1bc19 --- /dev/null +++ b/keyboards/boardsource/holiday/spooky/keymaps/default/keymap.c @@ -0,0 +1,30 @@ +/* Copyright 2020 boardsource + * + * 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 + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [_BASE] = LAYOUT_ortho_2x3( + KC_F1, KC_F2, KC_F3, + KC_F4, KC_F5,KC_F6 + ), + }; + diff --git a/keyboards/boardsource/holiday/spooky/keymaps/rip_mx/keymap.c b/keyboards/boardsource/holiday/spooky/keymaps/rip_mx/keymap.c new file mode 100644 index 00000000000..44b234e4ab6 --- /dev/null +++ b/keyboards/boardsource/holiday/spooky/keymaps/rip_mx/keymap.c @@ -0,0 +1,78 @@ +/* Copyright 2020 boardsource + * + * 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 + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [_BASE] = LAYOUT_ortho_2x3( + RGB_TOG, KC_VOLU, KC_F2, + RGB_MOD, KC_VOLD, KC_F1 + ), +}; +#ifdef OLED_DRIVER_ENABLE +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + return OLED_ROTATION_180; +} + +static void render_RIP(void) { + static const char PROGMEM my_logo[] = { +0xff, 0xff, 0x07, 0x1e, 0x70, 0xc0, 0x00, 0x00, 0xe0, 0x78, 0x1e, 0x07, 0xff, 0xfe, 0x00, 0x00, +0x00, 0x00, 0x03, 0x06, 0x1c, 0xb8, 0xf0, 0xe0, 0xb8, 0x1c, 0x0e, 0x07, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x3e, 0x66, 0x63, 0x63, 0x43, 0x43, 0xc3, 0xc2, 0x82, +0x00, 0x00, 0x00, 0x30, 0xf0, 0xc0, 0x00, 0x00, 0xc0, 0xf0, 0x30, 0xf0, 0x80, 0x00, 0x00, 0xc0, +0xf0, 0x10, 0x00, 0x00, 0x00, 0xf3, 0xf3, 0x00, 0x00, 0x10, 0x18, 0xfe, 0x18, 0x10, 0x10, 0x10, +0x00, 0x00, 0xc0, 0xe0, 0x30, 0x10, 0x18, 0x18, 0x18, 0x10, 0x10, 0x00, 0x00, 0x00, 0xff, 0xff, +0x30, 0x10, 0x18, 0x18, 0x18, 0x30, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0xe0, 0xf0, 0x90, 0x90, 0x98, +0x98, 0x98, 0xb0, 0xf0, 0xe0, 0x00, 0x00, 0x00, 0xf0, 0x90, 0x98, 0x98, 0x18, 0x18, 0x10, 0x00, +0x1f, 0x1f, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x00, 0x00, +0x00, 0x10, 0x1c, 0x0e, 0x07, 0x01, 0x00, 0x00, 0x01, 0x07, 0x0e, 0x1c, 0x18, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x18, 0x18, 0x10, 0x10, 0x18, 0x18, 0x0d, 0x0f, +0x03, 0x00, 0x00, 0x00, 0x01, 0x0f, 0x1e, 0x1e, 0x07, 0x00, 0x00, 0x01, 0x0f, 0x1c, 0x1e, 0x07, +0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0c, 0x18, 0x18, 0x18, +0x00, 0x00, 0x03, 0x0f, 0x0c, 0x18, 0x10, 0x10, 0x10, 0x18, 0x08, 0x00, 0x00, 0x00, 0x1f, 0x1f, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x07, 0x0f, 0x08, 0x18, 0x10, +0x10, 0x10, 0x18, 0x18, 0x08, 0x00, 0x00, 0x08, 0x18, 0x10, 0x11, 0x11, 0x11, 0x19, 0x0f, 0x0e, +0x00, 0x30, 0x30, 0x10, 0x10, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf0, +0x30, 0x10, 0x18, 0x18, 0x10, 0x70, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x40, 0xf0, 0xb0, 0x10, 0x18, +0x18, 0x10, 0x30, 0xf0, 0xe0, 0x00, 0x00, 0x00, 0x80, 0xe0, 0x70, 0x10, 0x18, 0x18, 0x10, 0x30, +0xf0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x10, 0x10, 0x18, 0x18, 0x18, +0x10, 0x30, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xf0, 0x30, 0x10, 0x18, 0x10, 0x30, 0xf0, +0xe0, 0x00, 0x00, 0x00, 0x00, 0x30, 0x10, 0x10, 0x18, 0x18, 0x10, 0x30, 0xf0, 0xe0, 0x00, 0x00, +0x00, 0x00, 0xc0, 0xe0, 0x30, 0x10, 0x18, 0x18, 0x10, 0x30, 0xe0, 0xc0, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xff, 0xff, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x03, 0xc7, +0xc4, 0x8c, 0x8c, 0xcc, 0xc4, 0x77, 0x3f, 0x0f, 0x00, 0x00, 0x00, 0x38, 0x7d, 0xc7, 0xc3, 0x82, +0x82, 0xc3, 0xc7, 0x7d, 0x7c, 0x00, 0x00, 0x00, 0x0f, 0x3f, 0x70, 0xc0, 0x80, 0x80, 0xc0, 0xc0, +0x7f, 0x3f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, +0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xf0, 0xf0, 0xd8, 0xcc, +0xc6, 0xc3, 0xc1, 0xc0, 0x00, 0x00, 0x00, 0x0f, 0x3f, 0x70, 0xc0, 0xc0, 0x80, 0xc0, 0xc0, 0x70, +0x3f, 0x0f, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xf0, 0xd8, 0xcc, 0xcc, 0xc7, 0xc3, 0xc1, 0x00, 0x00, +0x00, 0x00, 0x3f, 0x7f, 0xe0, 0xc0, 0x80, 0x80, 0xc0, 0x60, 0x7f, 0x1f, 0x00, 0x00, 0x00, 0x00 + }; + + oled_write_raw_P(my_logo, sizeof(my_logo)); +} + +void oled_task_user(void) { + render_RIP(); + } + +#endif diff --git a/keyboards/boardsource/holiday/spooky/keymaps/rip_mx/rules.mk b/keyboards/boardsource/holiday/spooky/keymaps/rip_mx/rules.mk new file mode 100644 index 00000000000..c582662134c --- /dev/null +++ b/keyboards/boardsource/holiday/spooky/keymaps/rip_mx/rules.mk @@ -0,0 +1 @@ +OLED_DRIVER_ENABLE = yes diff --git a/keyboards/boardsource/holiday/spooky/keymaps/rip_my_wallet/keymap.c b/keyboards/boardsource/holiday/spooky/keymaps/rip_my_wallet/keymap.c new file mode 100644 index 00000000000..88fc47a1dc2 --- /dev/null +++ b/keyboards/boardsource/holiday/spooky/keymaps/rip_my_wallet/keymap.c @@ -0,0 +1,78 @@ +/* Copyright 2020 boardsource + * + * 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 + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [_BASE] = LAYOUT_ortho_2x3( + RGB_TOG, KC_1, KC_2, + RGB_MOD, KC_3,KC_4 + ), +}; +#ifdef OLED_DRIVER_ENABLE +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + return OLED_ROTATION_180; +} + +static void render_RIP(void) { + static const char PROGMEM my_logo[] = { +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x08, 0x04, +0x04, 0x7c, 0xfc, 0xf0, 0x00, 0x00, 0x40, 0x20, 0xf0, 0x7c, 0x06, 0x00, 0x41, 0xc0, 0x00, 0x00, +0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x40, 0x40, 0x00, 0x00, 0xc0, 0x00, +0x00, 0x00, 0xe0, 0x60, 0x00, 0x80, 0x40, 0x20, 0x20, 0xe0, 0x00, 0x00, 0x00, 0xf0, 0x3c, 0x02, +0x01, 0xc1, 0xf8, 0x0e, 0x00, 0x01, 0xc0, 0x00, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0xf0, 0x50, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x00, 0x08, +0x03, 0x00, 0x00, 0x0f, 0x06, 0x01, 0x00, 0x1e, 0x1f, 0x10, 0x00, 0x00, 0x1e, 0x1f, 0x08, 0xc0, +0x3e, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x1e, 0x11, 0x08, 0x04, 0x1e, 0x11, 0x00, +0x08, 0x06, 0x01, 0x00, 0x1e, 0x19, 0x08, 0x00, 0x1e, 0x0b, 0x08, 0x00, 0x1f, 0x1b, 0x08, 0x00, +0x18, 0x1f, 0x00, 0x00, 0x00, 0x1f, 0x12, 0x10, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x19, 0x08, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, +0x84, 0x84, 0x84, 0xcc, 0x38, 0x00, 0x00, 0x00, 0xf0, 0x18, 0x04, 0x05, 0x0f, 0x79, 0xe1, 0x00, +0x00, 0x00, 0xc0, 0x78, 0x0c, 0x00, 0x00, 0x0c, 0x84, 0x84, 0xcc, 0xf8, 0x30, 0x00, 0x00, 0xe0, +0xf8, 0x0c, 0x04, 0x04, 0x0c, 0xf8, 0x80, 0x00, 0x00, 0x00, 0xe0, 0x1c, 0x00, 0x00, 0x08, 0x0c, +0x04, 0x04, 0xcc, 0x78, 0x00, 0x00, 0x00, 0xf0, 0x18, 0x0c, 0x04, 0x0c, 0x18, 0xf0, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, +0x10, 0x10, 0x10, 0x19, 0x0f, 0x00, 0x00, 0x00, 0x0f, 0x18, 0x10, 0x10, 0x18, 0x0f, 0x07, 0x00, +0x20, 0x1e, 0x03, 0x00, 0x00, 0x00, 0x18, 0x10, 0x10, 0x10, 0x10, 0x1d, 0x0f, 0x00, 0x00, 0x03, +0x0f, 0x18, 0x10, 0x10, 0x18, 0x0f, 0x00, 0x00, 0x38, 0x0f, 0x01, 0x00, 0x00, 0x00, 0x18, 0x1c, +0x16, 0x13, 0x10, 0x10, 0x00, 0x00, 0x00, 0x07, 0x1c, 0x10, 0x10, 0x10, 0x0c, 0x07, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + + oled_write_raw_P(my_logo, sizeof(my_logo)); +} + +void oled_task_user(void) { + render_RIP(); + } + +#endif diff --git a/keyboards/boardsource/holiday/spooky/keymaps/rip_my_wallet/rules.mk b/keyboards/boardsource/holiday/spooky/keymaps/rip_my_wallet/rules.mk new file mode 100644 index 00000000000..c582662134c --- /dev/null +++ b/keyboards/boardsource/holiday/spooky/keymaps/rip_my_wallet/rules.mk @@ -0,0 +1 @@ +OLED_DRIVER_ENABLE = yes diff --git a/keyboards/boardsource/holiday/spooky/readme.md b/keyboards/boardsource/holiday/spooky/readme.md new file mode 100644 index 00000000000..a4b16595a6f --- /dev/null +++ b/keyboards/boardsource/holiday/spooky/readme.md @@ -0,0 +1,15 @@ +# spooky + +![spooky](https://i.imgur.com/qAeA66wl.jpg) + +this is a limited edition macro pad for the spookiest time of year + +* Keyboard Maintainer: [boardsource](https://github.com/boardsource) +* Hardware Supported: spooky v1 PCB +* Hardware Availability: [From Boardsource store around halloween time](https://boardsource.xyz/store/5f783f6da2c1b43e37ca0795) + +Make example for this keyboard (after setting up your build environment): + + make boardsource/holiday/spooky: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/boardsource/holiday/spooky/rules.mk b/keyboards/boardsource/holiday/spooky/rules.mk new file mode 100644 index 00000000000..d23e9551267 --- /dev/null +++ b/keyboards/boardsource/holiday/spooky/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/boardsource/holiday/spooky/spooky.c b/keyboards/boardsource/holiday/spooky/spooky.c new file mode 100644 index 00000000000..87fe02c1a8e --- /dev/null +++ b/keyboards/boardsource/holiday/spooky/spooky.c @@ -0,0 +1,17 @@ +/* Copyright 2020 boardsource + * + * 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 "spooky.h" diff --git a/keyboards/boardsource/holiday/spooky/spooky.h b/keyboards/boardsource/holiday/spooky/spooky.h new file mode 100644 index 00000000000..42127b8f44f --- /dev/null +++ b/keyboards/boardsource/holiday/spooky/spooky.h @@ -0,0 +1,35 @@ +/* Copyright 2020 boardsource + * + * 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" + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT_ortho_2x3( \ + k00, k01, k02, \ + k10, k11, k12 \ +) { \ + { k00, k01, k02 }, \ + { k10, k11, k12 } \ +} diff --git a/keyboards/c39/keymaps/drashna/config.h b/keyboards/c39/keymaps/drashna/config.h index 789b7cc1400..73b0b8acfe6 100644 --- a/keyboards/c39/keymaps/drashna/config.h +++ b/keyboards/c39/keymaps/drashna/config.h @@ -1,3 +1,19 @@ +/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@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 // place overrides here diff --git a/keyboards/c39/keymaps/drashna/keymap.c b/keyboards/c39/keymaps/drashna/keymap.c index 882938138fc..3fd3ef35eb9 100755 --- a/keyboards/c39/keymaps/drashna/keymap.c +++ b/keyboards/c39/keymaps/drashna/keymap.c @@ -1,3 +1,19 @@ +/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@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 "drashna.h" /* diff --git a/keyboards/cannonkeys/an_c/bootloader_defs.h b/keyboards/cannonkeys/an_c/bootloader_defs.h deleted file mode 100644 index 02c48c4e6dc..00000000000 --- 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 02c48c4e6dc..00000000000 --- 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 02c48c4e6dc..00000000000 --- 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 02c48c4e6dc..00000000000 --- 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 6b8fa9f727c..00000000000 --- 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 5e18d91ca48..6e468c49a3b 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 6b8fa9f727c..00000000000 --- 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 80b31a12f4d..ea9bd6b2df7 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 6b8fa9f727c..00000000000 --- 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 ae196fd8501..e132ccaf189 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 6b8fa9f727c..00000000000 --- 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 3713b6078df..3f9ca1448f7 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 6b8fa9f727c..00000000000 --- 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 5fd4892dc59..344844b0ef1 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 02c48c4e6dc..00000000000 --- 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 02c48c4e6dc..00000000000 --- 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 6b8fa9f727c..00000000000 --- 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 03e6b0f49d4..451d07e676b 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/drakon/keymaps/logo/readme.md b/keyboards/drakon/keymaps/logo/readme.md deleted file mode 100644 index 419f434ea06..00000000000 --- a/keyboards/drakon/keymaps/logo/readme.md +++ /dev/null @@ -1 +0,0 @@ -# The logo keymap for drakon diff --git a/keyboards/drakon/keymaps/wkl/keymap.c b/keyboards/drakon/keymaps/wkl/keymap.c deleted file mode 100644 index ca261f35b58..00000000000 --- a/keyboards/drakon/keymaps/wkl/keymap.c +++ /dev/null @@ -1,248 +0,0 @@ -/* Copyright 2020 jagdpietr - * - * 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 - -char wpm_str[10]; - -// Defines names for use in layer keycodes and the keymap -enum Layer_names { -_Base, -_FN, -_Lyr2 -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_Base] = LAYOUT_wkl( - KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_MUTE, - 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_MPRV, KC_MPLY, KC_MNXT, - 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_MSTP, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, - KC_LCTL, KC_LALT, KC_SPC, KC_APP, MO(_FN), KC_LEFT, KC_DOWN, KC_RIGHT - ), - - [_FN] = LAYOUT_wkl( - 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_DEL, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END - ), - - [_Lyr2] = LAYOUT_wkl( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END - ) - -}; - -void encoder_update_user(uint8_t index, bool clockwise) { - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } -} - -#ifdef OLED_DRIVER_ENABLE - -oled_rotation_t oled_init_user(oled_rotation_t rotation) { - return OLED_ROTATION_90; // flips the display 90 degrees if offhand - -} - -void render_status(void) { - //Host Keyboard Layer Status - oled_set_cursor(0,10); - oled_write_P(PSTR("Lyr: "), false); - - switch (get_highest_layer(layer_state)) { - case _Base: - oled_write_P(PSTR("Base\n"), false); - break; - case _FN: - oled_write_P(PSTR("FN\n"), false); - break; - case _Lyr2: - oled_write_P(PSTR("Lyr2\n"), false); - break; - default: - // Or use the write_ln shortcut over adding '\n' to the end of your string - oled_write_ln_P(PSTR("Undefined"), false); - } - // Host Keyboard LED Status - led_t led_state = host_keyboard_led_state(); - oled_set_cursor(0,12); - oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false); - -} - -// WPM-responsive animation stuff here -#define IDLE_FRAMES 5 -#define IDLE_SPEED 40 // below this wpm value your animation will idle - -// #define PREP_FRAMES 1 // uncomment if >1 - -#define TAP_FRAMES 2 -#define TAP_SPEED 60 // above this wpm value typing animation to triggere - -#define ANIM_FRAME_DURATION 200 // how long each frame lasts in ms -// #define SLEEP_TIMER 60000 // should sleep after this period of 0 wpm, needs fixing -#define ANIM_SIZE 128 // number of bytes in array, minimize for adequate firmware size, max is 1024 - -uint32_t anim_timer = 0; -uint32_t anim_sleep = 0; -uint8_t current_idle_frame = 0; -// uint8_t current_prep_frame = 0; // uncomment if PREP_FRAMES >1 -uint8_t current_tap_frame = 0; - -// Images credit j-inc(/James Incandenza) and pixelbenny. Credit to obosob for initial animation approach. -static void render_anim(void) { - static const char PROGMEM idle[IDLE_FRAMES][ANIM_SIZE] = { - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xc0, 0x60, 0x30, 0x18, 0x60, - 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xc0, 0x20, 0x10, 0x0c, 0x06, 0x03, 0x81, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x01, 0x01, 0x03, 0x06, 0x04, 0x0c, 0x18, 0x10, 0x18, 0x08, 0xf8, 0x00, 0x00, 0x00, - 0x00, 0x3e, 0x23, 0x20, 0x20, 0x20, 0x30, 0x10, 0x10, 0x10, 0x30, 0x21, 0x21, 0x63, 0x43, 0x42, - 0xc0, 0x80, 0x88, 0x8c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x73, 0xc0, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x05, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x06, 0x04, 0x0c, 0x08, 0x0b, 0x08, 0x00 - }, - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x60, 0x30, 0x10, 0x08, 0x04, 0x04, 0x06, 0x01, 0x01, 0x06, - 0x04, 0x0c, 0x08, 0x18, 0x10, 0x30, 0x20, 0x40, 0xc0, 0x80, 0x80, 0x80, 0xc0, 0xc0, 0x00, 0x00, - 0xe0, 0x98, 0x04, 0x03, 0x01, 0x80, 0x80, 0x80, 0x80, 0x84, 0x86, 0x80, 0x08, 0x18, 0x10, 0x00, - 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x78, 0x87, 0x00, 0x00, - 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x02, - 0x02, 0x02, 0x0e, 0x3e, 0x20, 0x20, 0x20, 0x10, 0x10, 0x18, 0x18, 0x10, 0x10, 0x33, 0x3e, 0x00 - }, - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xc0, 0x60, 0x30, 0x18, 0x60, - 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xc0, 0x20, 0x10, 0x0c, 0x06, 0x03, 0x81, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x01, 0x01, 0x03, 0x06, 0x04, 0x0c, 0x18, 0x10, 0x18, 0x08, 0xf8, 0x00, 0x00, 0x00, - 0x00, 0x3e, 0x23, 0x20, 0x20, 0x20, 0x30, 0x10, 0x10, 0x10, 0x30, 0x21, 0x21, 0x63, 0x43, 0x42, - 0xc0, 0x80, 0x88, 0x8c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x73, 0xc0, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x05, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x06, 0x04, 0x0c, 0x08, 0x0b, 0x08, 0x00 - }, - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x60, 0x30, 0x10, 0x08, 0x04, 0x04, 0x06, 0x01, 0x01, 0x06, - 0x04, 0x0c, 0x08, 0x18, 0x10, 0x30, 0x20, 0x40, 0xc0, 0x80, 0x80, 0x80, 0xc0, 0xc0, 0x00, 0x00, - 0xe0, 0x98, 0x04, 0x03, 0x01, 0x80, 0x80, 0x80, 0x80, 0x84, 0x86, 0x80, 0x08, 0x18, 0x10, 0x00, - 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x78, 0x87, 0x00, 0x00, - 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x02, - 0x02, 0x02, 0x0e, 0x3e, 0x20, 0x20, 0x20, 0x10, 0x10, 0x18, 0x18, 0x10, 0x10, 0x33, 0x3e, 0x00 - }, - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xc0, 0x60, 0x30, 0x18, 0x60, - 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xc0, 0x20, 0x10, 0x0c, 0x06, 0x03, 0x81, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x01, 0x01, 0x03, 0x06, 0x04, 0x0c, 0x18, 0x10, 0x18, 0x08, 0xf8, 0x00, 0x00, 0x00, - 0x00, 0x3e, 0x23, 0x20, 0x20, 0x20, 0x30, 0x10, 0x10, 0x10, 0x30, 0x21, 0x21, 0x63, 0x43, 0x42, - 0xc0, 0x80, 0x88, 0x8c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x73, 0xc0, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x05, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x06, 0x04, 0x0c, 0x08, 0x0b, 0x08, 0x00 - } - }; - static const char PROGMEM prep[][ANIM_SIZE] = { - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x40, 0x30, 0x18, 0x0c, 0x38, - 0x60, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xf8, 0x18, 0x0c, 0x0c, 0x38, 0x0c, 0x06, 0x03, 0x01, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x01, 0x03, 0x02, 0x06, 0x04, 0x08, 0x18, 0x30, 0x18, 0x18, 0xf8, 0x00, 0x00, - 0x00, 0x07, 0x0c, 0x18, 0x18, 0x10, 0x10, 0x10, 0x20, 0x60, 0x61, 0x41, 0x42, 0xc2, 0x86, 0x84, - 0x80, 0x00, 0x00, 0x18, 0x10, 0xfc, 0x02, 0x02, 0x04, 0x1c, 0x00, 0x00, 0x3e, 0xe1, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, - 0x01, 0x03, 0x03, 0x02, 0x06, 0x07, 0x06, 0x0c, 0x0c, 0x0c, 0x10, 0x10, 0x30, 0x20, 0x3f, 0x00 - } - }; - static const char PROGMEM tap[TAP_FRAMES][ANIM_SIZE] = { - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x40, 0x30, 0x18, 0x0c, 0x38, - 0x60, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xfe, 0xfe, 0x80, 0xc0, 0x60, 0x18, 0x0c, 0x02, 0x01, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x06, 0x04, 0x08, 0x10, 0x10, 0x18, 0x08, 0xfc, 0x00, 0x00, - 0xf9, 0xff, 0xe3, 0xe0, 0xc0, 0x40, 0x60, 0x20, 0x20, 0x60, 0x41, 0x40, 0xc3, 0x82, 0x86, 0x04, - 0x00, 0x00, 0x00, 0x18, 0x18, 0xfc, 0x06, 0x06, 0x04, 0x38, 0x00, 0x00, 0x1c, 0xe7, 0x00, 0x00, - 0xf0, 0xfc, 0x03, 0x00, 0x01, 0x07, 0x7c, 0x78, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, - 0x01, 0x03, 0x02, 0x02, 0x06, 0x07, 0x04, 0x0c, 0x08, 0x08, 0x18, 0x10, 0x30, 0x21, 0x3f, 0x38 - }, - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x60, 0x30, 0x18, 0x0c, 0x38, - 0x60, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xe0, 0xf8, 0x04, 0x04, 0x0c, 0x3c, 0x06, 0x03, 0x01, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x02, 0x06, 0x0c, 0x18, 0x98, 0x08, 0x0c, 0xfc, 0x00, 0x00, - 0x03, 0x07, 0x04, 0x0c, 0x08, 0x08, 0x18, 0x10, 0x10, 0x30, 0x20, 0x20, 0x61, 0x43, 0x43, 0xc2, - 0x80, 0x80, 0x80, 0x8c, 0x80, 0x00, 0x00, 0xe0, 0xf8, 0x7e, 0x3f, 0x1f, 0x1f, 0x7d, 0x80, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xf0, 0xf0, 0x70, - 0x30, 0x38, 0x19, 0x0f, 0x1e, 0x1c, 0x79, 0xf8, 0xe8, 0xc4, 0x84, 0x08, 0x08, 0x18, 0x1f, 0x1c - }, - }; - - //assumes 1 frame prep stage - void animation_phase(void) { - if(get_current_wpm() <=IDLE_SPEED){ - current_idle_frame = (current_idle_frame + 1) % IDLE_FRAMES; - oled_write_raw_P(idle[abs((IDLE_FRAMES-1)-current_idle_frame)], ANIM_SIZE); - } - if(get_current_wpm() >IDLE_SPEED && get_current_wpm() 1 - oled_write_raw_P(prep[0], ANIM_SIZE); // remove if IDLE_FRAMES >1 - } - if(get_current_wpm() >=TAP_SPEED){ - current_tap_frame = (current_tap_frame + 1) % TAP_FRAMES; - oled_write_raw_P(tap[abs((TAP_FRAMES-1)-current_tap_frame)], ANIM_SIZE); - } - } - if(get_current_wpm() != 000) { - oled_on(); // not essential but turns on animation OLED with any alpha keypress - if(timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) { - anim_timer = timer_read32(); - animation_phase(); - } - anim_sleep = timer_read32(); - } else { - if(timer_elapsed32(anim_sleep) > OLED_TIMEOUT) { - oled_off(); - } else { - if(timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) { - anim_timer = timer_read32(); - animation_phase(); - } - } - } -} -void oled_task_user(void) { - - render_anim(); - oled_set_cursor(0,6); - sprintf(wpm_str, " WPM: %03d", get_current_wpm()); - oled_set_cursor(0,5); - oled_write(wpm_str, false); - - render_status(); - - } - -#endif diff --git a/keyboards/draytronics/scarlet/config.h b/keyboards/draytronics/scarlet/config.h new file mode 100644 index 00000000000..f7b50dee759 --- /dev/null +++ b/keyboards/draytronics/scarlet/config.h @@ -0,0 +1,96 @@ +/*Copyright 2020 Blake Drayson / Draytronics + +Contact info@draytronics.co.uk + +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 0x4454 //DT for DrayTronics +#define PRODUCT_ID 0x5343 //SC for Scarlet +#define DEVICE_VER 0x0001 //Version 1 +#define MANUFACTURER Draytronics +#define PRODUCT SCARLET +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 4 + +/* + * 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 { A0, A1, A2, A3, A4 } +#define MATRIX_COL_PINS { A5, A6, A7, C7 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is useful for the Windows task manager shortcut (ctrl+shift+esc). + */ +//#define GRAVE_ESC_CTRL_OVERRIDE +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ +/* disable debug print */ +//#define NO_DEBUG +/* disable print */ +//#define NO_PRINT +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION diff --git a/keyboards/draytronics/scarlet/keymaps/default/keymap.c b/keyboards/draytronics/scarlet/keymaps/default/keymap.c new file mode 100644 index 00000000000..950ec617299 --- /dev/null +++ b/keyboards/draytronics/scarlet/keymaps/default/keymap.c @@ -0,0 +1,28 @@ +/*Copyright 2020 Blake Drayson / Draytronics + +Contact info@draytronics.co.uk + +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_numpad_5x4( + KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, + KC_P7, KC_P8, KC_P9, + KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_P1, KC_P2, KC_P3, + KC_P0, KC_PDOT, KC_PENT) +}; diff --git a/keyboards/draytronics/scarlet/readme.md b/keyboards/draytronics/scarlet/readme.md new file mode 100644 index 00000000000..4f1c5e0f56d --- /dev/null +++ b/keyboards/draytronics/scarlet/readme.md @@ -0,0 +1,19 @@ +# SCARLET + +![scarlet](https://www.draytronics.co.uk/wp-content/uploads/2020/10/Scarlet-PCB-Compared-Combined.png) + +A open source 17 key numpad keyboard, designed to be easily built at home with through hole components. More info / kits / PCB designs available at [draytronics.co.uk/scarlet](draytronics.co.uk) + +* Keyboard Maintainer: [Blake Drayson](https://github.com/ghostseven) +* Hardware Supported: SCARLET PCB / ATMega32A +* Hardware Availability: [draytronics.co.uk](draytronics.co.uk) + +Make example for this keyboard (after setting up your build environment): + + make draytronics/scarlet:default + +Flashing example for this keyboard: + + make draytronics/scarlet: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/draytronics/scarlet/rules.mk b/keyboards/draytronics/scarlet/rules.mk new file mode 100644 index 00000000000..43f524034aa --- /dev/null +++ b/keyboards/draytronics/scarlet/rules.mk @@ -0,0 +1,27 @@ +# MCU name +MCU = atmega32a + +# Processor frequency +F_CPU = 16000000 + +# Bootloader selection +BOOTLOADER = USBasp + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output + +LAYOUTS = numpad_5x4 diff --git a/keyboards/draytronics/scarlet/scarlet.c b/keyboards/draytronics/scarlet/scarlet.c new file mode 100644 index 00000000000..fdcc811d52a --- /dev/null +++ b/keyboards/draytronics/scarlet/scarlet.c @@ -0,0 +1,19 @@ +/*Copyright 2020 Blake Drayson / Draytronics + +Contact info@draytronics.co.uk + +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 "scarlet.h" diff --git a/keyboards/draytronics/scarlet/scarlet.h b/keyboards/draytronics/scarlet/scarlet.h new file mode 100644 index 00000000000..d96f198db3e --- /dev/null +++ b/keyboards/draytronics/scarlet/scarlet.h @@ -0,0 +1,35 @@ +/*Copyright 2020 Blake Drayson / Draytronics + +Contact info@draytronics.co.uk + +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_numpad_5x4( \ + K00, K01, K02, K03, \ + K10, K11, K12, \ + K20, K21, K22, K13, \ + K30, K31, K32, \ + K40, K42, K33 \ +) { \ +{ K00, K01, K02, K03, }, \ +{ K10, K11, K12, K13, }, \ +{ K20, K21, K22, KC_NO, }, \ +{ K30, K31, K32, K33, }, \ +{ K40, KC_NO, K42, KC_NO, }, \ +} diff --git a/keyboards/ergodox_ez/config.h b/keyboards/ergodox_ez/config.h index eb0f2066da5..bc63f6108fc 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 6c0b74ec462..e6f48c49fb3 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 a8b02a96bdf..7bb27171473 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 00000000000..674b7bffb00 --- /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/ergodox_ez/glow/glow.h b/keyboards/ergodox_ez/glow/glow.h new file mode 100644 index 00000000000..da7a6073efc --- /dev/null +++ b/keyboards/ergodox_ez/glow/glow.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/ergodox_ez/glow/rules.mk b/keyboards/ergodox_ez/glow/rules.mk new file mode 100644 index 00000000000..aad92997d0f --- /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 f5553a8b619..fe40ab797e7 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 cfa76c1c39e..c091b6eb979 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 526cc8c4178..0d4fe5c6832 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 796e96ce531..59a2840fd04 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 9ad4eaa186e..b6311aca3e6 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 00000000000..cf4f59f3b87 --- /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 00000000000..1e3cebb1451 --- /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 00000000000..da7a6073efc --- /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/ergotravel/keymaps/via/config.h b/keyboards/ergotravel/keymaps/via/config.h new file mode 100644 index 00000000000..9b26bf4c9d4 --- /dev/null +++ b/keyboards/ergotravel/keymaps/via/config.h @@ -0,0 +1,38 @@ +/* +Copyright 2017 Pierre Constantineau + +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 + +/* Use I2C or Serial, not both */ + +#define USE_SERIAL +// #define USE_I2C + +/* Select hand configuration */ + +#define MASTER_LEFT +// #define MASTER_RIGHT +// #define EE_HANDS + +// #undef RGBLED_NUM +// #define RGBLIGHT_ANIMATIONS +// #define RGBLED_NUM 14 +// #define RGBLIGHT_HUE_STEP 8 +// #define RGBLIGHT_SAT_STEP 8 +// #define RGBLIGHT_VAL_STEP 8 + + diff --git a/keyboards/ergotravel/keymaps/via/keymap.c b/keyboards/ergotravel/keymaps/via/keymap.c new file mode 100644 index 00000000000..7cd72245474 --- /dev/null +++ b/keyboards/ergotravel/keymaps/via/keymap.c @@ -0,0 +1,66 @@ + /* Copyright HarshitGoel96 2020 + * With permission form jpconstantineau, the original maintainer of the Ergo Travel hardware. + * + * 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, + _LOWER, + _RAISE, + _ADJUST +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_QWERTY] = LAYOUT( + //,--------+--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------+--------. + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_MINS, KC_EQL, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LBRC, KC_RBRC, 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_SPC, KC_SPC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LCTL, KC_LGUI, KC_LALT, _______, _______, KC_SPC, KC_SPC, _______, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT + //`--------+--------+--------+--------+--------+--------+--------/ \--------+--------+--------+--------+--------+--------+--------' + ), + + [_LOWER] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + + ), + + [_RAISE] = LAYOUT( + +_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + + ), + + [_ADJUST] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) + +}; + diff --git a/keyboards/ergotravel/keymaps/via/rules.mk b/keyboards/ergotravel/keymaps/via/rules.mk new file mode 100644 index 00000000000..43061db1dd4 --- /dev/null +++ b/keyboards/ergotravel/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes \ No newline at end of file diff --git a/keyboards/ergotravel/rev1/config.h b/keyboards/ergotravel/rev1/config.h index 89045666be0..4bcb24e0df4 100644 --- a/keyboards/ergotravel/rev1/config.h +++ b/keyboards/ergotravel/rev1/config.h @@ -18,8 +18,8 @@ along with this program. If not, see . #pragma once /* USB Device descriptor parameter */ -#define VENDOR_ID 0xCEEB -#define PRODUCT_ID 0x1256 +#define VENDOR_ID 0x4A50 //JP +#define PRODUCT_ID 0x4554 //ET #define DEVICE_VER 0x0100 #define MANUFACTURER JPConstantineau.com #define PRODUCT ErgoTravel Keyboard diff --git a/keyboards/ergotravel/rules.mk b/keyboards/ergotravel/rules.mk index 43f93798184..5fd2a23dafb 100644 --- a/keyboards/ergotravel/rules.mk +++ b/keyboards/ergotravel/rules.mk @@ -32,4 +32,4 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend SPLIT_KEYBOARD = yes -DEFAULT_FOLDER = ergotravel/rev1 +DEFAULT_FOLDER = ergotravel/rev1 \ No newline at end of file diff --git a/keyboards/eve/meteor/config.h b/keyboards/eve/meteor/config.h index 2100c3a4580..1e8c6ca052b 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 e75b1b02c2c..15ad8a1e131 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 00000000000..28a3b5cb9d1 --- /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 00000000000..36b7ba9cbc9 --- /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 28884156eab..69d5a35ece7 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 e01221a2c5b..0a7de55ce7f 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/ferris/ferris.c b/keyboards/ferris/0_1/0_1.c similarity index 97% rename from keyboards/handwired/ferris/ferris.c rename to keyboards/ferris/0_1/0_1.c index 0e132fa9844..dbdb0b4bdc2 100644 --- a/keyboards/handwired/ferris/ferris.c +++ b/keyboards/ferris/0_1/0_1.c @@ -14,4 +14,4 @@ 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 "ferris.h" +#include "0_1.h" diff --git a/keyboards/handwired/ferris/ferris.h b/keyboards/ferris/0_1/0_1.h similarity index 100% rename from keyboards/handwired/ferris/ferris.h rename to keyboards/ferris/0_1/0_1.h diff --git a/keyboards/handwired/ferris/config.h b/keyboards/ferris/0_1/config.h similarity index 100% rename from keyboards/handwired/ferris/config.h rename to keyboards/ferris/0_1/config.h diff --git a/keyboards/handwired/ferris/matrix.c b/keyboards/ferris/0_1/matrix.c similarity index 100% rename from keyboards/handwired/ferris/matrix.c rename to keyboards/ferris/0_1/matrix.c diff --git a/keyboards/handwired/ferris/rules.mk b/keyboards/ferris/0_1/rules.mk similarity index 100% rename from keyboards/handwired/ferris/rules.mk rename to keyboards/ferris/0_1/rules.mk diff --git a/keyboards/handwired/ferris/info.json b/keyboards/ferris/info.json similarity index 100% rename from keyboards/handwired/ferris/info.json rename to keyboards/ferris/info.json diff --git a/keyboards/handwired/ferris/keymaps/default/config.h b/keyboards/ferris/keymaps/default/config.h similarity index 100% rename from keyboards/handwired/ferris/keymaps/default/config.h rename to keyboards/ferris/keymaps/default/config.h diff --git a/keyboards/handwired/ferris/keymaps/default/keymap.json b/keyboards/ferris/keymaps/default/keymap.json similarity index 100% rename from keyboards/handwired/ferris/keymaps/default/keymap.json rename to keyboards/ferris/keymaps/default/keymap.json diff --git a/keyboards/handwired/ferris/keymaps/default/readme.md b/keyboards/ferris/keymaps/default/readme.md similarity index 100% rename from keyboards/handwired/ferris/keymaps/default/readme.md rename to keyboards/ferris/keymaps/default/readme.md diff --git a/keyboards/handwired/ferris/keymaps/json2crab.py b/keyboards/ferris/keymaps/json2crab.py similarity index 100% rename from keyboards/handwired/ferris/keymaps/json2crab.py rename to keyboards/ferris/keymaps/json2crab.py diff --git a/keyboards/ferris/keymaps/pierrec83/config.h b/keyboards/ferris/keymaps/pierrec83/config.h new file mode 100644 index 00000000000..cf0fb7478ef --- /dev/null +++ b/keyboards/ferris/keymaps/pierrec83/config.h @@ -0,0 +1,39 @@ +/* +Copyright 2020 Pierre Chevalier + +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 +// Set the mouse settings to a comfortable speed/accuracy trade-off, +// assuming a screen refresh rate of 60 Htz or higher +// The default is 50. This makes the mouse ~3 times faster and more accurate +#define MOUSEKEY_INTERVAL 16 +// The default is 20. Since we made the mouse about 3 times faster with the previous setting, +// give it more time to accelerate to max speed to retain precise control over short distances. +#define MOUSEKEY_TIME_TO_MAX 40 +// The default is 300. Let's try and make this as low as possible while keeping the cursor responsive +#define MOUSEKEY_DELAY 100 +// It makes sense to use the same delay for the mouseweel +#define MOUSEKEY_WHEEL_DELAY 100 +// The default is 100 +#define MOUSEKEY_WHEEL_INTERVAL 50 +// The default is 40 +#define MOUSEKEY_WHEEL_TIME_TO_MAX 100 + +// Pick good defaults for enabling homerow modifiers +#define TAPPING_TERM 200 +#define PERMISSIVE_HOLD +#define IGNORE_MOD_TAP_INTERRUPT +#define TAPPING_FORCE_HOLD diff --git a/keyboards/ferris/keymaps/pierrec83/keymap.json b/keyboards/ferris/keymaps/pierrec83/keymap.json new file mode 100644 index 00000000000..2372e7e372f --- /dev/null +++ b/keyboards/ferris/keymaps/pierrec83/keymap.json @@ -0,0 +1,118 @@ +{ "version": 1, + "notes": "My awesome keymap", + "documentation": "\"This file is a QMK Configurator export. You can import this at . It can also be used directly with QMK's source code.\n\nTo setup your QMK environment check out the tutorial: \n\nYou can convert this file to a keymap.c using this command: `qmk json2c {keymap}`\n\nYou can compile this keymap using this command: `qmk compile {keymap}`\"\n", + "keyboard": "handwired/ferris", + "keymap": "pierrec83", + "layout": "LAYOUT", + "layers": [ + ["KC_Q" , "KC_D" , "KC_R" , "KC_W" , "KC_B", + "KC_J" , "KC_F" , "KC_U" , "KC_P" , "KC_SCLN", + + "LSFT_T(KC_A)" , "LT(6,KC_S)" , "LT(2,KC_H)" , "LT(4,KC_T)" , "KC_G", + "KC_Y" , "LT(5,KC_N)" , "LT(3,KC_E)" , "LT(7,KC_O)" , "LSFT_T(KC_I)", + + "KC_Z" , "LCTL_T(KC_X)" , "LALT_T(KC_M)" , "KC_C" , "KC_V", + "KC_K" , "KC_L" , "LALT_T(KC_COMM)", "LCTL_T(KC_DOT)" , "KC_SLSH", + + "LCA(KC_UP)" , "KC_BSPC", + "LT(8,KC_SPC)" , "LCA(KC_DOWN)" + ], + ["KC_Q" , "KC_C" , "KC_M" , "KC_Y" , "KC_COLN", + "KC_Z" , "KC_W" , "KC_COMM" , "KC_U" , "KC_J", + + "LSFT_T(KC_R)" , "LT(6,KC_S)" , "LT(2,KC_T)" , "LT(4,KC_H)" , "KC_X", + "KC_TRNS" , "LT(5,KC_N)" , "LT(3,KC_A)" , "LT(7,KC_I)" , "LSFT_T(KC_O)", + + "KC_B" , "LCTL_T(KC_F)" , "LALT_T(KC_G)" , "KC_D" , "KC_V", + "KC_ESC" , "KC_L" , "LALT_T(KC_DOT)" , "LCTL_T(KC_BSPC)" , "KC_K", + + "LCA(KC_UP)" , "KC_E", + "LT(8,KC_SPC)" , "LCA(KC_DOWN)" + ], + ["KC_TRNS" , "ANY(LCTL(LSFT(KC_C)))", "KC_TRNS" , "ANY(LCTL(LSFT(KC_V)))", "KC_TRNS", + "KC_TRNS" , "KC_BTN1" , "KC_WH_U" , "KC_BTN2" , "KC_TRNS", + + "KC_TRNS" , "KC_BTN2" , "KC_NO" , "KC_BTN1" , "KC_TRNS", + "KC_TRNS" , "KC_MS_L" , "KC_MS_D" , "KC_MS_U" , "KC_MS_R", + + "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS", + "KC_TRNS" , "KC_WH_L" , "KC_WH_D" , "KC_WH_R" , "KC_TRNS", + + "ANY(LCTL(LSFT(KC_TAB)))", "KC_TRNS", + "KC_TRNS" , "LCTL(KC_TAB)" + ], + ["KC_TRNS" , "KC_TRNS" , "KC_PGUP" , "KC_TRNS" , "KC_TRNS", + "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS", + + "KC_LEFT" , "KC_UP" , "KC_DOWN" , "KC_RGHT" , "KC_TRNS", + "KC_TRNS" , "KC_LGUI" , "KC_NO" , "LCTL(KC_LALT)" , "LCA(KC_LSFT)", + + "KC_TRNS" , "KC_HOME" , "KC_PGDN" , "KC_END" , "KC_TRNS", + "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS", + + "LGUI(KC_LEFT)" , "KC_TRNS", + "KC_TRNS" , "LGUI(KC_RGHT)" + ], + ["KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS", + "KC_TRNS" , "KC_UNDS" , "KC_PIPE" , "KC_QUOT" , "KC_TRNS", + + "KC_CIRC" , "KC_ASTR" , "KC_AMPR" , "KC_NO" , "KC_TRNS", + "KC_HASH" , "KC_TILD" , "KC_SLSH" , "KC_DQUO" , "KC_DLR", + + "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS", + "KC_TRNS" , "KC_MINS" , "KC_BSLS" , "KC_GRV" , "KC_TRNS", + + "KC_BRID" , "KC_TRNS", + "KC_TRNS" , "KC_BRIU" + ], + ["KC_TRNS" , "KC_COLN" , "KC_LT" , "KC_GT" , "KC_SCLN", + "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS", + + "KC_LCBR" , "KC_RCBR" , "KC_LPRN" , "KC_RPRN" , "KC_AT", + "KC_TRNS" , "KC_NO" , "KC_EQL" , "KC_PLUS" , "KC_PERC", + + "KC_TRNS" , "KC_EXLM" , "KC_LBRC" , "KC_RBRC" , "KC_TRNS", + "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS", + + "KC_VOLD" , "KC_TRNS", + "KC_TRNS" , "KC_VOLU" + ], + ["KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS", + "KC_TRNS" , "KC_F7" , "KC_F8" , "KC_F9" , "KC_F10", + + "KC_TRNS" , "KC_TRNS" , "LCTL(KC_LALT)" , "KC_TRNS" , "KC_TRNS", + "KC_TRNS" , "KC_F4" , "KC_F5" , "KC_F6" , "KC_F11", + + "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS", + "KC_TRNS" , "KC_F1" , "KC_F2" , "KC_F3" , "KC_F12", + + "KC_TRNS" , "KC_TRNS", + "KC_TRNS" , "KC_TRNS" + ], + ["KC_PSLS" , "KC_7" , "KC_8" , "KC_9" , "KC_PPLS", + "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS", + + "KC_0" , "KC_1" , "KC_2" , "KC_3" , "KC_PMNS", + "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_NO" , "KC_TRNS", + + "KC_PAST" , "KC_4" , "KC_5" , "KC_6" , "KC_PEQL", + "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS", + + "KC_TRNS" , "KC_TRNS", + "KC_TRNS" , "KC_TRNS" + ], + ["KC_TRNS" , "KC_ESC" , "KC_COLN" , "KC_TRNS" , "KC_TRNS", + "DF(2)" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_DEL", + + "KC_TRNS" , "KC_PERC" , "KC_SLSH" , "KC_ENT" , "KC_EXLM", + "DF(1)" , "KC_LGUI" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS", + + "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS", + "DF(0)" , "KC_TRNS" , "RALT_T(KC_COMM)", "RCTL_T(KC_DOT)" , "RESET", + + "KC_TRNS" , "KC_TAB", + "KC_NO" , "KC_TRNS" + ] + ], + "author": "@pierrec83" +} diff --git a/keyboards/ferris/keymaps/pierrec83/readme.md b/keyboards/ferris/keymaps/pierrec83/readme.md new file mode 100644 index 00000000000..d96a3bb8110 --- /dev/null +++ b/keyboards/ferris/keymaps/pierrec83/readme.md @@ -0,0 +1,43 @@ +@pierrec83's personal keymap for the Ferris keyboard +==================================================== + +This keymap shares many commonalities with the default keymap. +See its readme for a write-up on many of the decisions, including +how to generate the formatted json file with json2crab.py and the +general philosophy for each layer. + +Because this is my own keymap, I didn't refrain from using shortcuts +that make sense for me and may not make sense for most. + +Key differences from the default keymap include: + +Alpha layers: +------------- + +Because I only learned to touch type when I switched from qwerty to workman, +my base layer is workman and my layout doesn't contain a qwerty layer. + +My layer 1 hosts a variant of RSTHD that I am developing, inspired from workman's +focus on reducing side-index-motion. It should become my end game keymap eventually, +but I still haven't found the time to learn it to a working proficiency. + +Secondary thumbs: +----------------- + +Instead of a placeholder 0 and 1, the secondary thumbs on my keymap +perform the following actions: +* Navigate to previous and next workspace the base layer +* Navigate to previous and next tab on the mouse layer +* Volume control on layer +* Brightness control on layer + +Mouse layer: +------------ + +* Copy/Paste shortcuts on the left hand, on the upper row. + +Always available layer: +----------------------- + +* Esc and column are placed differently to allow easy vim navigation with the positions of w and q in the workman base layer +* Enable permanent switch to the RSTHD layer in addition to the mouse layer diff --git a/keyboards/handwired/ferris/readme.md b/keyboards/ferris/readme.md similarity index 57% rename from keyboards/handwired/ferris/readme.md rename to keyboards/ferris/readme.md index 23aeca874c5..74a08a38fe9 100644 --- a/keyboards/handwired/ferris/readme.md +++ b/keyboards/ferris/readme.md @@ -6,11 +6,14 @@ A split 34 keys column staggered keyboard named and decorated after the rustlang mascott. All PCB files and some thoughts on the design are available on the [project's github page](https://github.com/pierrechevalier83/ferris) * Keyboard Maintainer: [Pierre Chevalier](https://github.com/pierrechevalier83) -* Hardware Supported: Ferris PCB -* Hardware Availability: Still in prototype stage +* Hardware Supported: + * Ferris 0.1 (With atmega32u4 chip. Comes in 4 variants: base, low, high and compact) + * Ferris sweep (With pro-micro. Comes in a couple of PCB edge cuts shapes, but with identical pinout) +* Hardware Availability: Pierre Chevalier has been selling keyboard kits (see the #ferris channel in the 40% discord chat). Wider availability is on the horizon. -Make example for this keyboard (after setting up your build environment): +Make examples for this keyboard (after setting up your build environment): - make handwired/ferris:default + make ferris/0_1:default + make ferris/sweep:default:avrdude-split-right 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/ferris/sweep/config.h b/keyboards/ferris/sweep/config.h new file mode 100644 index 00000000000..ad960610d1d --- /dev/null +++ b/keyboards/ferris/sweep/config.h @@ -0,0 +1,74 @@ +/* Copyright 2018-2020 ENDO Katsuhiro David Philip Barr <@davidphilipbarr> Pierre Chevalier + +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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xC2AB +#define PRODUCT_ID 0x3939 +#define DEVICE_VER 0x0001 +#define MANUFACTURER DPB +#define PRODUCT Ferris sweep + +/* key matrix size */ +#define MATRIX_ROWS 8 +#define MATRIX_COLS 5 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * NO_DIODE = switches are directly connected to AVR pins + * +*/ +#define DIRECT_PINS { \ + { E6, F7, F6, F5, F4 }, \ + { B1, B3, B2, B6, D3 }, \ + { D1, D0, D4, C6, D7 }, \ + { B4, B5, NO_PIN, NO_PIN, NO_PIN } \ +} + +#define DIRECT_PINS_RIGHT { \ + { F4, F5, F6, F7, E6 }, \ + { D3,B6,B2,B3,B1 }, \ + { D7,C6,D4,D0,D1}, \ + { B5, B4, NO_PIN, NO_PIN, NO_PIN } \ +} + + + +#define UNUSED_PINS + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* Serial settings */ +#define USE_SERIAL +/* serial.c configuration for split keyboard */ +#define SOFT_SERIAL_PIN D2 + +#define EE_HANDS diff --git a/keyboards/ferris/sweep/rules.mk b/keyboards/ferris/sweep/rules.mk new file mode 100644 index 00000000000..ce4d52156d3 --- /dev/null +++ b/keyboards/ferris/sweep/rules.mk @@ -0,0 +1,24 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +UNICODE_ENABLE = yes # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +SPLIT_KEYBOARD = yes # Use shared split_common code diff --git a/keyboards/ferris/sweep/sweep.c b/keyboards/ferris/sweep/sweep.c new file mode 100644 index 00000000000..5b41bad848d --- /dev/null +++ b/keyboards/ferris/sweep/sweep.c @@ -0,0 +1,16 @@ +/* Copyright 2018-2020 ENDO Katsuhiro David Philip Barr <@davidphilipbarr> Pierre Chevalier + * + * 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 "sweep.h" diff --git a/keyboards/ferris/sweep/sweep.h b/keyboards/ferris/sweep/sweep.h new file mode 100644 index 00000000000..e8d66ebc67a --- /dev/null +++ b/keyboards/ferris/sweep/sweep.h @@ -0,0 +1,47 @@ +/* Copyright 2018-2020 ENDO Katsuhiro David Philip Barr <@davidphilipbarr> Pierre Chevalier + * + * 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 "quantum.h" + +/* This a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ + +// readability +#define ___ KC_NO + +#define LAYOUT( \ + L01, L02, L03, L04, L05, R01, R02, R03, R04, R05, \ + L06, L07, L08, L09, L10, R06, R07, R08, R09, R10, \ + L11, L12, L13, L14, L15, R11, R12, R13, R14, R15, \ + L16, L17, R16, R17 \ + ) \ + { \ + { L01, L02, L03, L04, L05 }, \ + { L06, L07, L08, L09, L10 }, \ + { L11, L12, L13, L14, L15 }, \ + { L16, L17, ___, ___ , ___}, \ + { R01, R02, R03, R04, R05 }, \ + { R06, R07, R08, R09, R10 }, \ + { R11, R12, R13, R14, R15 }, \ + { R16, R17, ___, ___, ___ } \ + } + diff --git a/keyboards/gergo/keymaps/drashna/keymap.c b/keyboards/gergo/keymaps/drashna/keymap.c index d1e62240609..7258d350d92 100644 --- a/keyboards/gergo/keymaps/drashna/keymap.c +++ b/keyboards/gergo/keymaps/drashna/keymap.c @@ -1,3 +1,19 @@ +/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@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 "drashna.h" /* diff --git a/keyboards/gh60/v1p3/config.h b/keyboards/gh60/v1p3/config.h new file mode 100644 index 00000000000..211dff948f8 --- /dev/null +++ b/keyboards/gh60/v1p3/config.h @@ -0,0 +1,72 @@ +/* +Copyright 2020 noroadsleft + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x0000 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Unknown +#define PRODUCT GH60 v1.3 + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 16 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS { B0, B1, B2, B3, F7 } +#define MATRIX_COL_PINS { C7, F6, F5, F4, F1, E6, D0, D1, D2, D3, D4, D5, D6, D7, B4, B5 } + +#define DIODE_DIRECTION COL2ROW + +#define BACKLIGHT_PIN B6 +// #define BACKLIGHT_BREATHING +#define BACKLIGHT_LEVELS 15 + +#define RGB_DI_PIN F0 +#ifdef RGB_DI_PIN + #define RGBLED_NUM 10 + #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 diff --git a/keyboards/gh60/v1p3/info.json b/keyboards/gh60/v1p3/info.json new file mode 100644 index 00000000000..11d43524105 --- /dev/null +++ b/keyboards/gh60/v1p3/info.json @@ -0,0 +1,511 @@ +{ + "keyboard_name": "GH60 v1.3", + "url": "", + "maintainer": "qmk", + "width": 15, + "height": 5, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"label":"K00 (B0,C7)", "x":0, "y":0}, + {"label":"K01 (B0,F6)", "x":1, "y":0}, + {"label":"K02 (B0,F5)", "x":2, "y":0}, + {"label":"K03 (B0,F4)", "x":3, "y":0}, + {"label":"K04 (B0,F1)", "x":4, "y":0}, + {"label":"K05 (B0,E6)", "x":5, "y":0}, + {"label":"K06 (B0,D0)", "x":6, "y":0}, + {"label":"K07 (B0,D1)", "x":7, "y":0}, + {"label":"K08 (B0,D2)", "x":8, "y":0}, + {"label":"K09 (B0,D3)", "x":9, "y":0}, + {"label":"K0A (B0,D4)", "x":10, "y":0}, + {"label":"K0B (B0,D5)", "x":11, "y":0}, + {"label":"K0C (B0,D6)", "x":12, "y":0}, + {"label":"K0D (B0,D7)", "x":13, "y":0, "w":0.667}, + {"label":"K0E (B0,B4)", "x":13.667, "y":0, "w":0.666}, + {"label":"K0F (B0,B5)", "x":14.333, "y":0, "w":0.667}, + + {"label":"K10 (B1,C7)", "x":0, "y":1, "w":1.5}, + {"label":"K11 (B1,F6)", "x":1.5, "y":1}, + {"label":"K12 (B1,F5)", "x":2.5, "y":1}, + {"label":"K13 (B1,F4)", "x":3.5, "y":1}, + {"label":"K14 (B1,F1)", "x":4.5, "y":1}, + {"label":"K15 (B1,E6)", "x":5.5, "y":1}, + {"label":"K16 (B1,D0)", "x":6.5, "y":1}, + {"label":"K17 (B1,D1)", "x":7.5, "y":1}, + {"label":"K18 (B1,D2)", "x":8.5, "y":1}, + {"label":"K19 (B1,D3)", "x":9.5, "y":1}, + {"label":"K1A (B1,D4)", "x":10.5, "y":1}, + {"label":"K1B (B1,D5)", "x":11.5, "y":1}, + {"label":"K1C (B1,D6)", "x":12.5, "y":1}, + {"label":"K1D (B1,D7)", "x":13.5, "y":1, "w":1.5}, + + {"label":"K20 (B2,C7)", "x":0, "y":2, "w":1.75}, + {"label":"K21 (B2,F6)", "x":1.75, "y":2}, + {"label":"K22 (B2,F5)", "x":2.75, "y":2}, + {"label":"K23 (B2,F4)", "x":3.75, "y":2}, + {"label":"K24 (B2,F1)", "x":4.75, "y":2}, + {"label":"K25 (B2,E6)", "x":5.75, "y":2}, + {"label":"K26 (B2,D0)", "x":6.75, "y":2}, + {"label":"K27 (B2,D1)", "x":7.75, "y":2}, + {"label":"K28 (B2,D2)", "x":8.75, "y":2}, + {"label":"K29 (B2,D3)", "x":9.75, "y":2}, + {"label":"K2A (B2,D4)", "x":10.75, "y":2}, + {"label":"K2B (B2,D5)", "x":11.75, "y":2}, + {"label":"K2C (B2,D6)", "x":12.75, "y":2}, + {"label":"K2D (B2,D7)", "x":13.75, "y":2, "w":1.25}, + + {"label":"K30 (B3,C7)", "x":0, "y":3, "w":1.25}, + {"label":"K31 (B3,F6)", "x":1.25, "y":3, "w":0.75}, + {"label":"K32 (B3,F5)", "x":2, "y":3}, + {"label":"K33 (B3,F4)", "x":3, "y":3}, + {"label":"K34 (B3,F1)", "x":4, "y":3}, + {"label":"K35 (B3,E6)", "x":5, "y":3}, + {"label":"K36 (B3,D0)", "x":6, "y":3}, + {"label":"K37 (B3,D1)", "x":7, "y":3}, + {"label":"K38 (B3,D2)", "x":8, "y":3}, + {"label":"K39 (B3,D3)", "x":9, "y":3}, + {"label":"K3A (B3,D4)", "x":10, "y":3}, + {"label":"K3B (B3,D5)", "x":11, "y":3}, + {"label":"K3C (B3,D6)", "x":12, "y":3, "w":0.75}, + {"label":"K3D (B3,D7)", "x":12.75, "y":3, "w":0.75}, + {"label":"K3E (B3,B4)", "x":13.5, "y":3, "w":0.75}, + {"label":"K3F (B3,B5)", "x":14.25, "y":3, "w":0.75}, + + {"label":"K40 (F7,C7)", "x":0, "y":4, "w":1.25}, + {"label":"K41 (F7,F6)", "x":1.25, "y":4, "w":0.75}, + {"label":"K42 (F7,F5)", "x":2, "y":4, "w":0.75}, + {"label":"K43 (F7,F4)", "x":2.75, "y":4, "w":0.75}, + {"label":"K44 (F7,F1)", "x":3.5, "y":4, "w":0.75}, + {"label":"K45 (F7,E6)", "x":4.25, "y":4, "w":1.25}, + {"label":"K48 (F7,D2)", "x":5.5, "y":4, "w":3}, + {"label":"K49 (F7,D3)", "x":8.5, "y":4, "w":1.25}, + {"label":"K4A (F7,D4)", "x":9.75, "y":4, "w":0.875}, + {"label":"K4B (F7,D5)", "x":10.625, "y":4, "w":0.875}, + {"label":"K4C (F7,D6)", "x":11.5, "y":4, "w":0.875}, + {"label":"K4D (F7,D7)", "x":12.375, "y":4, "w":0.875}, + {"label":"K4E (F7,B4)", "x":13.25, "y":4, "w":0.875}, + {"label":"K4F (F7,B5)", "x":14.125, "y":4, "w":0.875} + ] + }, + "LAYOUT_60_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":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}, + {"x":12.25, "y":3, "w":2.75}, + + {"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":12.5, "y":4, "w":1.25}, + {"x":13.75, "y":4, "w":1.25} + ] + }, + "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} + ] + }, + "LAYOUT_60_ansi_arrow_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":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} + ] + }, + "LAYOUT_60_ansi_tsangan": { + "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}, + {"x":12.25, "y":3, "w":2.75}, + + {"x":0, "y":4, "w":1.5}, + {"x":1.5, "y":4}, + {"x":2.5, "y":4, "w":1.5}, + {"x":4, "y":4, "w":7}, + {"x":11, "y":4, "w":1.5}, + {"x":12.5, "y":4}, + {"x":13.5, "y":4, "w":1.5} + ] + }, + "LAYOUT_60_hhkb": { + "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":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":1.5, "y":4}, + {"x":2.5, "y":4, "w":1.5}, + {"x":4, "y":4, "w":7}, + {"x":11, "y":4, "w":1.5}, + {"x":12.5, "y":4} + ] + }, + "LAYOUT_64_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":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}, + {"x":2, "y":3}, + {"x":3, "y":3}, + {"x":4, "y":3}, + {"x":5, "y":3}, + {"x":6, "y":3}, + {"x":7, "y":3}, + {"x":8, "y":3}, + {"x":9, "y":3}, + {"x":10, "y":3}, + {"x":11, "y":3}, + {"x":12, "y":3}, + {"x":13, "y":3}, + {"x":14, "y":3}, + + {"x":0, "y":4, "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/gh60/v1p3/keymaps/default/keymap.c b/keyboards/gh60/v1p3/keymaps/default/keymap.c new file mode 100644 index 00000000000..9ae1b5d177c --- /dev/null +++ b/keyboards/gh60/v1p3/keymaps/default/keymap.c @@ -0,0 +1,33 @@ +/* Copyright 2020 noroadsleft + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [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_HOME, KC_END, KC_END, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_TILD, KC_ENT, + KC_LSFT, KC_NUHS, 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_UP, KC_DEL, + KC_LCTL, KC_LGUI, KC_LGUI, KC_LALT, KC_LALT, MO(1), KC_SPC, MO(1), KC_RCTL, KC_APP, KC_LEFT, KC_DOWN, KC_DOWN, KC_RGHT + ), + [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_DEL, KC_DEL, KC_DEL, + _______, RGB_TOG, KC_UP, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, KC_HASH, _______, + _______, _______, RESET, BL_DEC, BL_TOGG, BL_INC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/gh60/v1p3/keymaps/default/readme.md b/keyboards/gh60/v1p3/keymaps/default/readme.md new file mode 100644 index 00000000000..ecf2a883b3a --- /dev/null +++ b/keyboards/gh60/v1p3/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for GH60 v1.3 diff --git a/keyboards/gh60/v1p3/keymaps/default_ansi/keymap.c b/keyboards/gh60/v1p3/keymaps/default_ansi/keymap.c new file mode 100644 index 00000000000..82fb774effc --- /dev/null +++ b/keyboards/gh60/v1p3/keymaps/default_ansi/keymap.c @@ -0,0 +1,35 @@ +/* Copyright 2020 noroadsleft + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +#define FN_CAPS LT(1, KC_CAPS) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_60_ansi( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_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, + FN_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL + ), + [1] = LAYOUT_60_ansi( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, + _______, _______, _______, _______, RESET, _______, KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_PSCR, KC_SLCK, KC_PAUS, + _______, _______, _______, _______, _______, _______, KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/gh60/v1p3/keymaps/default_ansi/readme.md b/keyboards/gh60/v1p3/keymaps/default_ansi/readme.md new file mode 100644 index 00000000000..7552e3d0469 --- /dev/null +++ b/keyboards/gh60/v1p3/keymaps/default_ansi/readme.md @@ -0,0 +1,34 @@ +# The default ANSI keymap for GH60 v1.3 + +## Function layer + +| Shortcut | Action | +| :----------------- | :------------------- | +| `Fn` + `Esc` | ` ~ | +| `Fn` + `1` | `F1` | +| `Fn` + `2` | `F2` | +| `Fn` + `3` | `F3` | +| `Fn` + `4` | `F4` | +| `Fn` + `5` | `F5` | +| `Fn` + `6` | `F6` | +| `Fn` + `7` | `F7` | +| `Fn` + `8` | `F8` | +| `Fn` + `9` | `F9` | +| `Fn` + `0` | `F10` | +| `Fn` + `-` | `F11` | +| `Fn` + `=` | `F12` | +| `Fn` + `Backspace` | `Delete` | +| `Fn` + `R` | `RESET` | +| `Fn` + `I` | `Up` | +| `Fn` + `J` | `Left` | +| `Fn` + `K` | `Down` | +| `Fn` + `L` | `Right` | +| `Fn` + `U` | `Home` | +| `Fn` + `O` | `End` | +| `Fn` + `Y` | `Insert` | +| `Fn` + `H` | `Delete` | +| `Fn` + `P` | `Page Up` | +| `Fn` + `;` | `Page Down` | +| `Fn` + `[` | `Print Screen` | +| `Fn` + `]` | `Scroll Lock` | +| `Fn` + `\` | `Pause` | diff --git a/keyboards/gh60/v1p3/keymaps/factory_hhkb/keymap.c b/keyboards/gh60/v1p3/keymaps/factory_hhkb/keymap.c new file mode 100644 index 00000000000..b3908e7ef71 --- /dev/null +++ b/keyboards/gh60/v1p3/keymaps/factory_hhkb/keymap.c @@ -0,0 +1,33 @@ +/* Copyright 2020 noroadsleft + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [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_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_DEL, + 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_HASH, KC_ENT, + KC_LSFT, KC_NUHS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_RSFT, MO(1), + KC_LCTL, KC_LALT, KC_LALT, KC_LGUI, KC_LGUI, KC_SPC, KC_SPC, KC_SPC, KC_RGUI, KC_RGUI, KC_RGUI, KC_RALT, KC_RALT, KC_RGHT + ), + [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_INS, _______, KC_BSPC, + _______, RGB_TOG, KC_UP, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_PSCR, KC_SLCK, KC_PAUS, KC_BSPC, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, KC_TILD, _______, + _______, _______, RESET, KC_APP, BL_DEC, BL_TOGG, BL_INC, KC_VOLD, KC_MUTE, KC_VOLU, KC_END, KC_PGDN, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/gh60/v1p3/keymaps/factory_layout5/keymap.c b/keyboards/gh60/v1p3/keymaps/factory_layout5/keymap.c new file mode 100644 index 00000000000..31003909a10 --- /dev/null +++ b/keyboards/gh60/v1p3/keymaps/factory_layout5/keymap.c @@ -0,0 +1,33 @@ +/* Copyright 2020 noroadsleft + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [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_GRV, 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_TILD, KC_ENT, + KC_LSFT, KC_NUHS, 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_UP, KC_DEL, + KC_LCTL, KC_LGUI, KC_LGUI, KC_LALT, KC_LALT, MO(1), KC_SPC, MO(1), KC_RCTL, MO(1), KC_LEFT, KC_DOWN, KC_DOWN, KC_RGHT + ), + [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_DEL, KC_DEL, + _______, RGB_TOG, KC_UP, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, KC_HASH, _______, + _______, _______, RESET, BL_DEC, BL_TOGG, BL_INC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/gh60/v1p3/keymaps/factory_layout7/keymap.c b/keyboards/gh60/v1p3/keymaps/factory_layout7/keymap.c new file mode 100644 index 00000000000..ed08a087e29 --- /dev/null +++ b/keyboards/gh60/v1p3/keymaps/factory_layout7/keymap.c @@ -0,0 +1,33 @@ +/* Copyright 2020 noroadsleft + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [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_GRV, 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_TILD, KC_ENT, + KC_LSFT, KC_NUHS, 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_UP, KC_SLSH, + KC_LCTL, KC_LGUI, KC_LGUI, KC_LALT, KC_LALT, MO(1), KC_SPC, MO(1), KC_RCTL, MO(1), KC_LEFT, KC_DOWN, KC_DOWN, KC_RGHT + ), + [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_DEL, KC_DEL, + _______, RGB_TOG, KC_UP, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, KC_HASH, _______, + _______, _______, RESET, BL_DEC, BL_TOGG, BL_INC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/gh60/v1p3/keymaps/factory_layout9/keymap.c b/keyboards/gh60/v1p3/keymaps/factory_layout9/keymap.c new file mode 100644 index 00000000000..5a779d9baff --- /dev/null +++ b/keyboards/gh60/v1p3/keymaps/factory_layout9/keymap.c @@ -0,0 +1,33 @@ +/* Copyright 2020 noroadsleft + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [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_DEL, 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_TILD, KC_ENT, + KC_LSFT, KC_NUHS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LGUI, KC_LALT, KC_LALT, MO(1), KC_SPC, MO(1), KC_RCTL, MO(1), KC_LEFT, KC_DOWN, KC_DOWN, KC_RGHT + ), + [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_DEL, _______, + _______, RGB_TOG, KC_UP, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_PSCR, KC_SLCK, KC_PAUS, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, KC_HASH, _______, + _______, _______, RESET, BL_DEC, BL_TOGG, BL_INC, _______, KC_VOLD, KC_MUTE, KC_VOLU, KC_END, KC_PGDN, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/gh60/v1p3/keymaps/factory_minila/keymap.c b/keyboards/gh60/v1p3/keymaps/factory_minila/keymap.c new file mode 100644 index 00000000000..166ddd7c193 --- /dev/null +++ b/keyboards/gh60/v1p3/keymaps/factory_minila/keymap.c @@ -0,0 +1,33 @@ +/* Copyright 2020 noroadsleft + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [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_GRV, 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_TILD, KC_ENT, + KC_LSFT, KC_NUHS, 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_UP, KC_DEL, + KC_LCTL, KC_LGUI, KC_LGUI, KC_LALT, KC_LALT, MO(1), KC_SPC, MO(1), KC_RALT, KC_APP, KC_LEFT, KC_LEFT, KC_DOWN, KC_RGHT + ), + [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, _______, _______, _______, + _______, RGB_TOG, KC_UP, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_PSCR, KC_SLCK, KC_PAUS, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, KC_HASH, _______, + _______, _______, RESET, BL_DEC, BL_TOGG, BL_INC, _______, KC_VOLD, KC_MUTE, KC_VOLU, KC_END, KC_PGDN, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/gh60/v1p3/keymaps/factory_poker/keymap.c b/keyboards/gh60/v1p3/keymaps/factory_poker/keymap.c new file mode 100644 index 00000000000..68d0ea01b43 --- /dev/null +++ b/keyboards/gh60/v1p3/keymaps/factory_poker/keymap.c @@ -0,0 +1,34 @@ +/* Copyright 2020 noroadsleft + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [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_GRV, 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_TILD, KC_ENT, + KC_LSFT, KC_NUHS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_RSFT, KC_DEL, + KC_LCTL, KC_LGUI, KC_LGUI, KC_LALT, KC_LALT, BL_TOGG, KC_SPC, BL_TOGG, KC_RALT, MO(1), MO(1), KC_APP, KC_APP, KC_RCTL + ), + [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_DEL, KC_DEL, + _______, RGB_TOG, KC_UP, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_PSCR, KC_SLCK, KC_PAUS, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, KC_HASH, _______, + _______, _______, RESET, BL_DEC, BL_TOGG, BL_INC, _______, KC_VOLD, KC_MUTE, KC_VOLU, KC_END, KC_PGDN, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + +}; diff --git a/keyboards/gh60/v1p3/readme.md b/keyboards/gh60/v1p3/readme.md new file mode 100644 index 00000000000..b0b75a78512 --- /dev/null +++ b/keyboards/gh60/v1p3/readme.md @@ -0,0 +1,25 @@ +# GH60 v1.3 + +![GH60 v1.3](https://raw.githubusercontent.com/noroadsleft/qmk_images/master/keyboards/gh60/v1p3/pcb_bottom.jpg) + +A 60% with USB Type-C, in-switch backlight, and RGB Underglow. Also called GH60 RGB. + +* Keyboard Maintainer: [The QMK Community](https://github.com/qmk) +* Hardware Supported: GH60 V1.3 PCB, ATmega32U4 +* Hardware Availability: [NPKC RGB CP Store on AliExpress](https://www.aliexpress.com/i/32851321035.html) + +Make example for this keyboard (after setting up your build environment): + + make gh60/v1p3:default + +Flashing example for this keyboard: + + make gh60/v1p3:default:flash + +## Layouts + +[Reference Image](https://raw.githubusercontent.com/noroadsleft/qmk_images/master/keyboards/gh60/v1p3/layouts.jpg) + +The `factory_*` keymaps are based on KBFirmware JSON files provided by the vendor. Layouts 1 (Minila), 3 (Poker), 5, 7, 9, and HHKB (not pictured) have keymaps present. + +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/gh60/v1p3/rules.mk b/keyboards/gh60/v1p3/rules.mk new file mode 100644 index 00000000000..c2d48dc370b --- /dev/null +++ b/keyboards/gh60/v1p3/rules.mk @@ -0,0 +1,24 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output + +LAYOUTS = 60_ansi 60_ansi_arrow 60_ansi_tsangan 60_hhkb 64_ansi diff --git a/keyboards/gh60/v1p3/v1p3.c b/keyboards/gh60/v1p3/v1p3.c new file mode 100644 index 00000000000..bf41fb21746 --- /dev/null +++ b/keyboards/gh60/v1p3/v1p3.c @@ -0,0 +1,16 @@ +/* Copyright 2020 noroadsleft + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "v1p3.h" diff --git a/keyboards/gh60/v1p3/v1p3.h b/keyboards/gh60/v1p3/v1p3.h new file mode 100644 index 00000000000..df4d126f515 --- /dev/null +++ b/keyboards/gh60/v1p3/v1p3.h @@ -0,0 +1,167 @@ +/* Copyright 2020 noroadsleft + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include "quantum.h" + +/* + * So... to be perfectly honest, I'm guessing at these based on a KBFirmware + * JSON file and photos of the PCB from a user on QMK Discord. + * + * This board has the most unusual matrix wiring I've seen on any mechanical + * keyboard PCB. The 2u Backspace doesn't share its matrix position with either + * of the keys used in a split Backspace. Left GUI and Left Alt are on + * different columns depending on how large the Left Ctrl key is (which could be + * as wide as 1.75u). I don't have much idea what's going on in the bottom right + * corner. Pretty much everything in the drawings below is basically a + * semi-educated guess. + * + * Sorry if you're coming in here after the fact. I don't have the PCB on-hand. + * + * - noroadsleft + * + * ┌───────┐ + * 2u Backspace │0E │ + * └───────┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ANSI Enter ISO Enter + * ANSI LSft │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0F │ ┌─────┐ ┌─────┐ + * ┌────────┐ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ │1D │ │2D │ + * │30 │ ─┐ │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │ ┌──┴─────┤ ┌──┴┐ │ + * └────────┘ │ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬────┤ │2D │ │2C │ │ + * ISO LSft │ │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2D │ └────────┘ └───┴────┘ + * ┌────┬───┐ │ ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬──┴┬───┤ ┌──────────┐ + * │30 │31 │ ─┼> │LSft │32 │33 │34 │35 │36 │37 │38 │39 │3A │3C │3D │3F │ │3D │ ANSI RSft + * └────┴───┘ │ ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬───┼───┼───┤ └──────────┘ + * 2u LSft │ │40 │41 │43 │48 │4A │4B │4C │4E │4F │ ┌───┬───┬───┐ + * ┌───────┐ │ └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘ │3B │3D │3F │ 3x1u "RSft" + * │30 │ ─┘ └───┴───┴───┘ + * └───────┘ ┌──────┬───┐ + * │3E │3F │ HHKB RSft + * └──────┴───┘ + * ┌──────┬────┬────┬────┬───────────┬────┬────┬───┬───┬───┬───┐ + * │40 │42 │44 │45 │48 │49 │4A │4B │4C │4E │4F │ Minila + * └──────┴────┴────┴────┴───────────┴────┴────┴───┴───┴───┴───┘ + * ┌────┬────┬────┬────────────────────────┬────┬────┬────┬────┐ + * │40 │41 │43 │48 │4A │4B │4D │4F │ Standard + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + * ┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐ + * │40 │41 │43 │48 │4B │4D │4F │ Tsangan/HHKB + * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ + * ┌─────┬───┬─────┬───────────────────────────┬───┬───┬───┬───┐ + * │40 │41 │43 │48 │4B │4C │4E │4F │ + * └─────┴───┴─────┴───────────────────────────┴───┴───┴───┴───┘ + * ┌─────┬───┬─────┬───────────────────────┬─────┬─────┬───┬───┐ + * │40 │41 │43 │48 │4A │4C │4E │4F │ + * └─────┴───┴─────┴───────────────────────┴─────┴─────┴───┴───┘ + */ + +#define LAYOUT_all( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, \ + K40, K41, K42, K43, K44, K45, K48, K49, K4A, K4B, K4C, K4D, K4E, K4F \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO, KC_NO }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, KC_NO, KC_NO }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F }, \ + { K40, K41, K42, K43, K44, K45, KC_NO, KC_NO, K48, K49, K4A, K4B, K4C, K4D, K4E, K4F }, \ +} + +#define LAYOUT_60_ansi( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \ + K40, K41, K43, K48, K4A, K4B, K4D, K4F \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, KC_NO, K0E, KC_NO }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO, KC_NO }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, KC_NO, KC_NO }, \ + { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, KC_NO, K3D, KC_NO, KC_NO }, \ + { K40, K41, KC_NO, K43, KC_NO, KC_NO, KC_NO, KC_NO, K48, KC_NO, K4A, K4B, KC_NO, K4D, KC_NO, K4F }, \ +} + +#define LAYOUT_60_ansi_arrow( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3C, K3D, K3F, \ + K40, K41, K43, K48, K4A, K4B, K4C, K4E, K4F \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, KC_NO, K0E, KC_NO }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO, KC_NO }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, KC_NO, KC_NO }, \ + { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, KC_NO, K3C, K3D, KC_NO, K3F }, \ + { K40, K41, KC_NO, K43, KC_NO, KC_NO, KC_NO, KC_NO, K48, KC_NO, K4A, K4B, K4C, KC_NO, K4E, K4F }, \ +} + +#define LAYOUT_60_ansi_arrow_split_bs( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3C, K3D, K3F, \ + K40, K41, K43, K48, K4A, K4B, K4C, K4E, K4F \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, KC_NO, K0F }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO, KC_NO }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, KC_NO, KC_NO }, \ + { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, KC_NO, K3C, K3D, KC_NO, K3F }, \ + { K40, K41, KC_NO, K43, KC_NO, KC_NO, KC_NO, KC_NO, K48, KC_NO, K4A, K4B, K4C, KC_NO, K4E, K4F }, \ +} + +#define LAYOUT_60_ansi_tsangan( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \ + K40, K41, K43, K48, K4B, K4D, K4F \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, KC_NO, K0E, KC_NO }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO, KC_NO }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, KC_NO, KC_NO }, \ + { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, KC_NO, K3D, KC_NO, KC_NO }, \ + { K40, K41, KC_NO, K43, KC_NO, KC_NO, KC_NO, KC_NO, K48, KC_NO, KC_NO, K4B, KC_NO, K4D, KC_NO, K4F }, \ +} + +#define LAYOUT_60_hhkb( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3E, K3F, \ + K41, K43, K48, K4B, K4D \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, KC_NO, K0F }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO, KC_NO }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, KC_NO, KC_NO }, \ + { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, KC_NO, KC_NO, K3E, K3F }, \ + { KC_NO, K41, KC_NO, K43, KC_NO, KC_NO, KC_NO, KC_NO, K48, KC_NO, KC_NO, K4B, KC_NO, K4D, KC_NO, KC_NO }, \ +} + +#define LAYOUT_64_ansi( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3F, \ + K40, K41, K43, K48, K4A, K4B, K4C, K4E, K4F \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, KC_NO, K0E, KC_NO }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO, KC_NO }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, KC_NO, KC_NO }, \ + { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, KC_NO, K3F }, \ + { K40, K41, KC_NO, K43, KC_NO, KC_NO, KC_NO, KC_NO, K48, KC_NO, K4A, K4B, K4C, KC_NO, K4E, K4F }, \ +} diff --git a/keyboards/handwired/onekey/bluepill/bootloader_defs.h b/keyboards/handwired/onekey/bluepill/bootloader_defs.h deleted file mode 100644 index 6b8fa9f727c..00000000000 --- 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 66ce517445d..019b1130d99 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 e6776a643cb..1c391242ba8 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 fd1d3820337..d86e9f6e469 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 55fbd280c45..8bac9970a6c 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 a9dcc82aea6..19a2b9b2c85 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 e633ab396d5..ea5530fface 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 5b7695868f7..ba6532164d1 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/helix.h b/keyboards/helix/helix.h index d3d3b04169b..b900d975d2a 100644 --- a/keyboards/helix/helix.h +++ b/keyboards/helix/helix.h @@ -8,6 +8,12 @@ #ifdef KEYBOARD_helix_rev2 #include "rev2.h" #endif +#ifdef KEYBOARD_helix_rev3_5rows + #include "rev3_5rows.h" +#endif +#ifdef KEYBOARD_helix_rev3_4rows + #include "rev3_4rows.h" +#endif #ifdef KEYBOARD_helix_pico #include "pico.h" #endif diff --git a/keyboards/helix/readme.md b/keyboards/helix/readme.md index e1161cfdf10..0c190f7626f 100644 --- a/keyboards/helix/readme.md +++ b/keyboards/helix/readme.md @@ -5,9 +5,9 @@ Helix A compact split ortholinear keyboard. -Keyboard Maintainer: [Makoto Kurauchi](https://github.com/MakotoKurauchi/) [@pluis9](https://twitter.com/pluis9) -Hardware Supported: Helix PCB Alpha, Beta, Pro Micro -Hardware Availability: [PCB & Case Data](https://github.com/MakotoKurauchi/helix), [Yushakobo Shop](https://yushakobo.jp/shop/), [Little Keyboards](https://littlekeyboards.com/collections/helix) +Keyboard Maintainer: [Makoto Kurauchi](https://github.com/MakotoKurauchi/) [@pluis9](https://twitter.com/pluis9) [yushakobo](https://github.com/yushakobo) +Hardware Supported: Helix PCB Alpha, Beta, Rev3, Pro Micro +Hardware Availability: [PCB & Case Data](https://github.com/MakotoKurauchi/helix), [Yushakobo Shop](https://yushakobo.jp/shop/), [Little Keyboards](https://littlekeyboards.com/collections/helix) ## How to build * [Helix how to Customize and Compile](rev2/keymaps/default/readme.md#customize) diff --git a/keyboards/helix/rev3_4rows/config.h b/keyboards/helix/rev3_4rows/config.h new file mode 100644 index 00000000000..bc695d99671 --- /dev/null +++ b/keyboards/helix/rev3_4rows/config.h @@ -0,0 +1,246 @@ +/* +Copyright 2020 yushakobo + +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" +#include + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x3265 //yushakobo +#define PRODUCT_ID 0x0004 //Helix rev3 4rows +#define DEVICE_VER 0x0001 +#define MANUFACTURER yushakobo +#define PRODUCT Helix rev3 4rows + +/* key matrix size */ +#define MATRIX_ROWS 8 +#define MATRIX_COLS 7 + +/* + * 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 { D4, C6, D7, E6 } +#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +/* 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} } + +/* + * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN. + */ +#define SOFT_SERIAL_PIN D2 // or D1, D2, D3, E6 + +#define RGB_DI_PIN D3 +#define RGBLED_NUM 50 // Number of LEDs + +#ifdef RGB_MATRIX_ENABLE + #define DRIVER_LED_TOTAL RGBLED_NUM +# define RGB_MATRIX_KEYPRESSES // reacts to keypresses +// # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) +// # 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_FRAMEBUFFER_EFFECTS +// # define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) +// # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) +# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash. +# define RGB_MATRIX_HUE_STEP 8 +# define RGB_MATRIX_SAT_STEP 8 +# define RGB_MATRIX_VAL_STEP 8 +# define RGB_MATRIX_SPD_STEP 10 +#endif + +#ifdef RGBLIGHT_ENABLE + #define RGBLIGHT_SPLIT + #define RGBLED_SPLIT { 25, 25 } +// #define RGBLIGHT_HUE_STEP 8 +// #define RGBLIGHT_SAT_STEP 8 +// #define RGBLIGHT_VAL_STEP 8 + #define RGBLIGHT_LIMIT_VAL 120 /* 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 + +/* Custom font */ +#define OLED_FONT_H "keyboards/helix/common/glcdfont.c" + +/* Encorder */ +#define ENCODERS_PAD_A { B6 } +#define ENCODERS_PAD_B { B5 } + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is userful for the Windows task manager shortcut (ctrl+shift+esc). + */ +// #define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Magic Key Options + * + * Magic keys are hotkey commands that allow control over firmware functions of + * the keyboard. They are best used in combination with the HID Listen program, + * found here: https://www.pjrc.com/teensy/hid_listen.html + * + * The options below allow the magic key functionality to be changed. This is + * useful if your keyboard/keypad is missing keys and you want magic key support. + * + */ + +/* key combination for magic key command */ +/* defined by default; to change, uncomment and set to the combination you want */ +// #define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT) + +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false + +/* override magic key keymap */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +//#define MAGIC_KEY_HELP H +//#define MAGIC_KEY_HELP_ALT SLASH +//#define MAGIC_KEY_DEBUG D +//#define MAGIC_KEY_DEBUG_MATRIX X +//#define MAGIC_KEY_DEBUG_KBD K +//#define MAGIC_KEY_DEBUG_MOUSE M +//#define MAGIC_KEY_VERSION V +//#define MAGIC_KEY_STATUS S +//#define MAGIC_KEY_CONSOLE C +//#define MAGIC_KEY_LAYER0 0 +//#define MAGIC_KEY_LAYER0_ALT GRAVE +//#define MAGIC_KEY_LAYER1 1 +//#define MAGIC_KEY_LAYER2 2 +//#define MAGIC_KEY_LAYER3 3 +//#define MAGIC_KEY_LAYER4 4 +//#define MAGIC_KEY_LAYER5 5 +//#define MAGIC_KEY_LAYER6 6 +//#define MAGIC_KEY_LAYER7 7 +//#define MAGIC_KEY_LAYER8 8 +//#define MAGIC_KEY_LAYER9 9 +//#define MAGIC_KEY_BOOTLOADER B +//#define MAGIC_KEY_BOOTLOADER_ALT ESC +//#define MAGIC_KEY_LOCK CAPS +//#define MAGIC_KEY_EEPROM E +//#define MAGIC_KEY_EEPROM_CLEAR BSPACE +//#define MAGIC_KEY_NKRO N +//#define MAGIC_KEY_SLEEP_LED Z + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +/* + * 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 1 + +/* Bootmagic Lite key configuration */ +// #define BOOTMAGIC_LITE_ROW 0 +// #define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/helix/rev3_4rows/info.json b/keyboards/helix/rev3_4rows/info.json new file mode 100644 index 00000000000..0ad2a7c3cac --- /dev/null +++ b/keyboards/helix/rev3_4rows/info.json @@ -0,0 +1,17 @@ +{ + "keyboard_name": "Helix rev3 4rows", + "url": "", + "maintainer": "yushakobo", + "width": 15, + "height": 4, + "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":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}, + {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"x":11, "y":2}, {"x":12, "y":2}, {"x":13, "y":2}, {"x":14, "y":2}, + {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":6, "y":3}, {"x":8, "y":3}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}, {"x":12, "y":3}, {"x":13, "y":3}, {"x":14, "y":3} + ] + } + } +} diff --git a/keyboards/helix/rev3_4rows/keymaps/default/config.h b/keyboards/helix/rev3_4rows/keymaps/default/config.h new file mode 100644 index 00000000000..ba446182d26 --- /dev/null +++ b/keyboards/helix/rev3_4rows/keymaps/default/config.h @@ -0,0 +1,19 @@ +/* Copyright 2020 yushakobo + * + * 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 + +// place overrides here diff --git a/keyboards/helix/rev3_4rows/keymaps/default/keymap.c b/keyboards/helix/rev3_4rows/keymaps/default/keymap.c new file mode 100644 index 00000000000..a9a2c4accaa --- /dev/null +++ b/keyboards/helix/rev3_4rows/keymaps/default/keymap.c @@ -0,0 +1,193 @@ +/* Copyright 2020 yushakobo + * + * 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 + + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _QWERTY = 0, + _LOWER, + _RAISE, + _ADJUST +}; + +// Defines the keycodes used by our macros in process_record_user +enum custom_keycodes { + EISU = SAFE_RANGE, + KANA, + ADJUST, + RGBRST +}; + +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Qwerty + * ,-----------------------------------------. ,-----------------------------------------. + * | Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Ctrl | A | S | D | F | G | | H | J | K | L | ; | ' | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+-------------+------+------+------+------+------+------| + * |Adjust| Esc | Alt | GUI | EISU |Lower |Space |Space |Raise | KANA | Left | Down | Up |Right | + * `-------------------------------------------------------------------------------------------------' + */ + [_QWERTY] = LAYOUT( \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , \ + ADJUST, KC_ESC, KC_LALT, KC_LGUI, EISU, LOWER, KC_SPC, KC_SPC, RAISE, KANA, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ + ), + + /* Lower + * ,-----------------------------------------. ,-----------------------------------------. + * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | F1 | F2 | F3 | F4 | F5 | | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | CAPS | F7 | F8 | F9 | F10 | F11 | | F12 | | | Home | End | | + * |------+------+------+------+------+------+-------------+------+------+------+------+------+------| + * | | | | | | | | | | | Next | Vol- | Vol+ | Play | + * `-------------------------------------------------------------------------------------------------' + */ + [_LOWER] = LAYOUT( \ + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, \ + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, \ + KC_CAPS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_HOME, KC_END, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ + ), + + /* Raise + * ,-----------------------------------------. ,-----------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | F1 | F2 | F3 | F4 | F5 | | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | CAPS | F7 | F8 | F9 | F10 | F11 | | F12 | | |PageDn|PageUp| | + * |------+------+------+------+------+------+-------------+------+------+------+------+------+------| + * | | | | | | | | | | | Next | Vol- | Vol+ | Play | + * `-------------------------------------------------------------------------------------------------' + */ + [_RAISE] = LAYOUT( \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, \ + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, \ + KC_CAPS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_PGDN, KC_PGUP, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ + ), + + /* Adjust (Lower + Raise) + * ,-----------------------------------------. ,-----------------------------------------. + * | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | Reset|RGBRST|EEPRST| | | | | | | | | Del | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | | | Mac | | Win | |RGB ON| HUE+ | SAT+ | VAL+ | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | MODE | HUE- | SAT- | VAL- | + * `-------------------------------------------------------------------------------------------------' + */ + [_ADJUST] = LAYOUT( \ + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \ + _______, RESET, RGBRST, EEP_RST, _______, _______, _______, _______, _______, _______, _______, KC_DEL, \ + _______, _______, _______, _______, _______, AG_NORM, AG_SWAP, _______, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD \ + ) + +}; + +void encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { /* Left side encoder */ + if (clockwise) { + tap_code(KC_PGDN); + } else { + tap_code(KC_PGUP); + } + } else if (index == 1) { /* Right side encoder */ + if (clockwise) { + tap_code(KC_DOWN); + } else { + tap_code(KC_UP); + } + } +} + +layer_state_t layer_state_set_user(layer_state_t state) { + return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case EISU: + if (record->event.pressed) { + if (is_mac_mode()) { + register_code(KC_LANG2); + }else{ + tap_code16(LALT(KC_GRAVE)); + } + } else { + unregister_code(KC_LANG2); + } + return false; + break; + case KANA: + if (record->event.pressed) { + if (is_mac_mode()) { + register_code(KC_LANG1); + }else{ + tap_code16(LALT(KC_GRAVE)); + } + } else { + unregister_code(KC_LANG1); + } + return false; + break; + case ADJUST: + if (record->event.pressed) { + layer_on(_LOWER); + layer_on(_RAISE); + } else { + layer_off(_LOWER); + layer_off(_RAISE); + } + break; + case RGBRST: + #ifdef RGBLIGHT_ENABLE + if (record->event.pressed) { + eeconfig_update_rgblight_default(); + rgblight_enable(); + } + #endif + break; + } + return true; +} + +/* +void matrix_init_user(void) { + +} + +void matrix_scan_user(void) { + +} + +bool led_update_user(led_t led_state) { + return true; +} +*/ diff --git a/keyboards/helix/rev3_4rows/keymaps/default/readme.md b/keyboards/helix/rev3_4rows/keymaps/default/readme.md new file mode 100644 index 00000000000..e7470968518 --- /dev/null +++ b/keyboards/helix/rev3_4rows/keymaps/default/readme.md @@ -0,0 +1,66 @@ +# The default keymap for Helix rev3 4rows + +### Qwerty Layer (Base) +``` +,-----------------------------------------. ,-----------------------------------------. +| Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| Ctrl | A | S | D | F | G | | H | J | K | L | ; | ' | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| Shift| Z | X | C | V | B | | N | M | , | . | / |Enter | +|------+------+------+------+------+------+-------------+------+------+------+------+------+------| +|Adjust| Esc | Alt | GUI | EISU |Lower |Space |Space |Raise | KANA | Left | Down | Up |Right | +`-------------------------------------------------------------------------------------------------' +``` +### Lower Layer +``` +,-----------------------------------------. ,-----------------------------------------. +| ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| | F1 | F2 | F3 | F4 | F5 | | F6 | _ | + | { | } | | | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| CAPS | F7 | F8 | F9 | F10 | F11 | | F12 | | | Home | End | | +|------+------+------+------+------+------+-------------+------+------+------+------+------+------| +| | | | | | | | | | | Next | Vol- | Vol+ | Play | +`-------------------------------------------------------------------------------------------------' +``` +### Raise Layer +``` +,-----------------------------------------. ,-----------------------------------------. +| ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| | F1 | F2 | F3 | F4 | F5 | | F6 | - | = | [ | ] | \ | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| CAPS | F7 | F8 | F9 | F10 | F11 | | F12 | | |PageDn|PageUp| | +|------+------+------+------+------+------+-------------+------+------+------+------+------+------| +| | | | | | | | | | | Next | Vol- | Vol+ | Play | +`-------------------------------------------------------------------------------------------------' +``` +### Adjust Layer (Lower + Raise) +``` +,-----------------------------------------. ,-----------------------------------------. +| F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| | Reset|RGBRST|EEPRST| | | | | | | | | Del | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| | | | | | Mac | | Win | |RGB ON| HUE+ | SAT+ | VAL+ | +|------+------+------+------+------+------+------+------+------+------+------+------+------+------| +| | | | | | | | | | | MODE | HUE- | SAT- | VAL- | +`-------------------------------------------------------------------------------------------------' +``` + +### Rotary Encoder Settings + +|L/R|Clockwise|Counter Clockwise| +|---|---|---| +|Left|Page Down|Page Up| +|Right|Down|Up| + +### DipSW Settings + +|Switch No.|| +|---|---| +|Left 1|Toggle Win/mac| +|Left 2|Not assigned| +|Right 1|Not assigned| +|Right 2|Not assigned| diff --git a/keyboards/helix/rev3_4rows/keymaps/via/config.h b/keyboards/helix/rev3_4rows/keymaps/via/config.h new file mode 100644 index 00000000000..ba446182d26 --- /dev/null +++ b/keyboards/helix/rev3_4rows/keymaps/via/config.h @@ -0,0 +1,19 @@ +/* Copyright 2020 yushakobo + * + * 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 + +// place overrides here diff --git a/keyboards/helix/rev3_4rows/keymaps/via/keymap.c b/keyboards/helix/rev3_4rows/keymaps/via/keymap.c new file mode 100644 index 00000000000..5611c96b343 --- /dev/null +++ b/keyboards/helix/rev3_4rows/keymaps/via/keymap.c @@ -0,0 +1,180 @@ +/* Copyright 2020 yushakobo + * + * 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 + + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _QWERTY = 0, + _LOWER, + _RAISE, + _ADJUST +}; + +// Defines the keycodes used by our macros in process_record_user +enum custom_keycodes { + EISU = SAFE_RANGE, + KANA, + ADJUST, + RGBRST +}; + +#define LOWER FN_MO13 +#define RAISE FN_MO23 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Qwerty + * ,-----------------------------------------. ,-----------------------------------------. + * | Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Ctrl | A | S | D | F | G | | H | J | K | L | ; | ' | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+-------------+------+------+------+------+------+------| + * |Adjust| Esc | Alt | GUI | EISU |Lower |Space |Space |Raise | KANA | Left | Down | Up |Right | + * `-------------------------------------------------------------------------------------------------' + */ + [_QWERTY] = LAYOUT( \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , \ + MO(_ADJUST), KC_ESC, KC_LALT, KC_LGUI, EISU, LOWER, KC_SPC, KC_SPC, RAISE, KANA, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ + ), + + /* Lower + * ,-----------------------------------------. ,-----------------------------------------. + * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | F1 | F2 | F3 | F4 | F5 | | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | CAPS | F7 | F8 | F9 | F10 | F11 | | F12 | | | Home | End | | + * |------+------+------+------+------+------+-------------+------+------+------+------+------+------| + * | | | | | | | | | | | Next | Vol- | Vol+ | Play | + * `-------------------------------------------------------------------------------------------------' + */ + [_LOWER] = LAYOUT( \ + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, \ + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, \ + KC_CAPS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_HOME, KC_END, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ + ), + + /* Raise + * ,-----------------------------------------. ,-----------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | F1 | F2 | F3 | F4 | F5 | | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | CAPS | F7 | F8 | F9 | F10 | F11 | | F12 | | |PageDn|PageUp| | + * |------+------+------+------+------+------+-------------+------+------+------+------+------+------| + * | | | | | | | | | | | Next | Vol- | Vol+ | Play | + * `-------------------------------------------------------------------------------------------------' + */ + [_RAISE] = LAYOUT( \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, \ + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, \ + KC_CAPS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_PGDN, KC_PGUP, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ + ), + + /* Adjust (Lower + Raise) + * ,-----------------------------------------. ,-----------------------------------------. + * | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | Reset|RGBRST| | | | | | | | | | Del | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | | | Mac | | Win | |RGB ON| HUE+ | SAT+ | VAL+ | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | MODE | HUE- | SAT- | VAL- | + * `-------------------------------------------------------------------------------------------------' + */ + [_ADJUST] = LAYOUT( \ + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \ + _______, RESET, RGBRST, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, \ + _______, _______, _______, _______, _______, AG_NORM, AG_SWAP, _______, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD \ + ) + +}; + +void encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { /* Left side encoder */ + if (clockwise) { + tap_code(KC_PGDN); + } else { + tap_code(KC_PGUP); + } + } else if (index == 1) { /* Right side encoder */ + if (clockwise) { + tap_code(KC_DOWN); + } else { + tap_code(KC_UP); + } + } +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case EISU: + if (record->event.pressed) { + if (is_mac_mode()) { + register_code(KC_LANG2); + }else{ + tap_code16(LALT(KC_GRAVE)); + } + } else { + unregister_code(KC_LANG2); + } + return false; + break; + case KANA: + if (record->event.pressed) { + if (is_mac_mode()) { + register_code(KC_LANG1); + }else{ + tap_code16(LALT(KC_GRAVE)); + } + } else { + unregister_code(KC_LANG1); + } + return false; + break; + case RGBRST: + #ifdef RGBLIGHT_ENABLE + if (record->event.pressed) { + eeconfig_update_rgblight_default(); + rgblight_enable(); + } + #endif + break; + } + return true; +} + +/* +void matrix_init_user(void) { + +} + +void matrix_scan_user(void) { + +} + +bool led_update_user(led_t led_state) { + return true; +} +*/ diff --git a/keyboards/helix/rev3_4rows/keymaps/via/readme.md b/keyboards/helix/rev3_4rows/keymaps/via/readme.md new file mode 100644 index 00000000000..34030075f87 --- /dev/null +++ b/keyboards/helix/rev3_4rows/keymaps/via/readme.md @@ -0,0 +1,66 @@ +# The default VIA keymap for Helix rev3 4rows + +### Qwerty Layer (Base) +``` +,-----------------------------------------. ,-----------------------------------------. +| Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| Ctrl | A | S | D | F | G | | H | J | K | L | ; | ' | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| Shift| Z | X | C | V | B | | N | M | , | . | / |Enter | +|------+------+------+------+------+------+-------------+------+------+------+------+------+------| +|Adjust| Esc | Alt | GUI | EISU |Lower |Space |Space |Raise | KANA | Left | Down | Up |Right | +`-------------------------------------------------------------------------------------------------' +``` +### Lower Layer +``` +,-----------------------------------------. ,-----------------------------------------. +| ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| | F1 | F2 | F3 | F4 | F5 | | F6 | _ | + | { | } | | | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| CAPS | F7 | F8 | F9 | F10 | F11 | | F12 | | | Home | End | | +|------+------+------+------+------+------+-------------+------+------+------+------+------+------| +| | | | | | | | | | | Next | Vol- | Vol+ | Play | +`-------------------------------------------------------------------------------------------------' +``` +### Raise Layer +``` +,-----------------------------------------. ,-----------------------------------------. +| ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| | F1 | F2 | F3 | F4 | F5 | | F6 | - | = | [ | ] | \ | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| CAPS | F7 | F8 | F9 | F10 | F11 | | F12 | | |PageDn|PageUp| | +|------+------+------+------+------+------+-------------+------+------+------+------+------+------| +| | | | | | | | | | | Next | Vol- | Vol+ | Play | +`-------------------------------------------------------------------------------------------------' +``` +### Adjust Layer (Lower + Raise) +``` +,-----------------------------------------. ,-----------------------------------------. +| F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| | Reset|RGBRST| | | | | | | | | | Del | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| | | | | | Mac | | Win | |RGB ON| HUE+ | SAT+ | VAL+ | +|------+------+------+------+------+------+------+------+------+------+------+------+------+------| +| | | | | | | | | | | MODE | HUE- | SAT- | VAL- | +`-------------------------------------------------------------------------------------------------' +``` + +### Rotary Encoder Settings + +|L/R|Clockwise|Counter Clockwise| +|---|---|---| +|Left|Page Down|Page Up| +|Right|Down|Up| + +### DipSW Settings + +|Switch No.|| +|---|---| +|Left 1|Toggle Win/mac| +|Left 2|Not assigned| +|Right 1|Not assigned| +|Right 2|Not assigned| diff --git a/keyboards/helix/rev3_4rows/keymaps/via/rules.mk b/keyboards/helix/rev3_4rows/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/helix/rev3_4rows/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/helix/rev3_4rows/oled_display.c b/keyboards/helix/rev3_4rows/oled_display.c new file mode 100644 index 00000000000..7716a172c93 --- /dev/null +++ b/keyboards/helix/rev3_4rows/oled_display.c @@ -0,0 +1,123 @@ +/* Copyright 2020 yushakobo + * + * 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 . + */ + +/* + How to Customize + + $ make helix/rev3_4rows:YOUR_KEYMAP:clean + $ cp keyboards/helix/rev3_4rows/oled_display.c keyboards/helix/rev3_4rows/keymaps/YOUR_KEYMAP + + $ edit keyboards/helix/rev3_4rows/keymaps/YOUR_KEYMAP/oled_display.c + $ make helix/rev3_4rows:YOUR_KEYMAP + $ make helix/rev3_4rows:YOUR_KEYMAP:flash + */ + +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _QWERTY = 0, + _LOWER, + _RAISE, + _ADJUST +}; + +#ifdef OLED_DRIVER_ENABLE + +void render_status(void) { + + // Render to mode icon + static const char os_logo[][2][3] PROGMEM ={{{0x95,0x96,0},{0xb5,0xb6,0}},{{0x97,0x98,0},{0xb7,0xb8,0}}}; + if (is_mac_mode()) { + oled_write_P(os_logo[0][0], false); + oled_write_P(PSTR("\n"), false); + oled_write_P(os_logo[0][1], false); + }else{ + oled_write_P(os_logo[1][0], false); + oled_write_P(PSTR("\n"), false); + oled_write_P(os_logo[1][1], false); + } + + oled_write_P(PSTR(" "), false); + + // Host Keyboard Layer Status + oled_write_P(PSTR("Layer: "), false); + + switch (get_highest_layer(layer_state)) { + case _QWERTY: + oled_write_P(PSTR("Default\n"), false); + break; + case _RAISE: + oled_write_P(PSTR("Raise\n"), false); + break; + case _LOWER: + oled_write_P(PSTR("Lower\n"), false); + break; + case _ADJUST: + oled_write_P(PSTR("Adjust\n"), false); + break; + default: + // Or use the write_ln shortcut over adding '\n' to the end of your string + oled_write_ln_P(PSTR("Undefined"), false); + } + + oled_write_P(PSTR("\n"), false); + + // Host Keyboard LED Status + led_t led_state = host_keyboard_led_state(); + oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false); + oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false); + oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false); +} + + +static void render_logo(void) { + static const char PROGMEM qmk_logo[] = { + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94, + 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, + 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0x00 + }; + + oled_write_P(qmk_logo, false); +} + +static void render_rgbled_status(bool full) { +#ifdef RGBLIGHT_ENABLE + char buf[30]; + if (RGBLIGHT_MODES > 1 && rgblight_is_enabled()) { + if (full) { + snprintf(buf, sizeof(buf), " LED %2d: %d,%d,%d ", + rgblight_get_mode(), + rgblight_get_hue()/RGBLIGHT_HUE_STEP, + rgblight_get_sat()/RGBLIGHT_SAT_STEP, + rgblight_get_val()/RGBLIGHT_VAL_STEP); + } else { + snprintf(buf, sizeof(buf), "[%2d] ", rgblight_get_mode()); + } + oled_write(buf, false); + } +#endif +} + +void oled_task_user(void) { + if(is_keyboard_master()){ + render_status(); + }else{ + render_logo(); + render_rgbled_status(true); + } +} +#endif diff --git a/keyboards/helix/rev3_4rows/readme.md b/keyboards/helix/rev3_4rows/readme.md new file mode 100644 index 00000000000..25e856badf8 --- /dev/null +++ b/keyboards/helix/rev3_4rows/readme.md @@ -0,0 +1,13 @@ +# Helix rev3 4rows + +A compact split ortholinear keyboard. + +* Keyboard Maintainer: [yushakobo](https://github.com/yushakobo) +* Hardware Supported: Helix rev3 PCBs, Pro Micro +* Hardware Availability: (Under preparation) + +Make example for this keyboard (after setting up your build environment): + + make helix/rev3_4rows: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/helix/rev3_4rows/rev3_4rows.c b/keyboards/helix/rev3_4rows/rev3_4rows.c new file mode 100644 index 00000000000..cf183366d6e --- /dev/null +++ b/keyboards/helix/rev3_4rows/rev3_4rows.c @@ -0,0 +1,48 @@ +/* Copyright 2020 yushakobo + * + * 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 "helix.h" + +bool is_mac_mode(void) { + return keymap_config.swap_lalt_lgui == false; +} + +void set_mac_mode(bool macmode) { + if (macmode) { + /* The result is the same as pressing the AG_NORM(=MAGIC_UNSWAP_ALT_GUI) key. */ + /* https://github.com/qmk/qmk_firmware/blob/fb4a6ad30ea7a648acd59793ed4a30c3a8d8dc32/quantum/process_keycode/process_magic.c#L123-L124 */ + keymap_config.swap_lalt_lgui = keymap_config.swap_ralt_rgui = false; + } else { + /* The result is the same as pressing the AG_SWAP(=MAGIC_SWAP_ALT_GUI) key. */ + /* https://github.com/qmk/qmk_firmware/blob/fb4a6ad30ea7a648acd59793ed4a30c3a8d8dc32/quantum/process_keycode/process_magic.c#L80-L81 */ + keymap_config.swap_lalt_lgui = keymap_config.swap_ralt_rgui = true; + } +} + +void dip_switch_update_kb(uint8_t index, bool active) { + switch (index) { + case 0: + if(active) { // Left no.1 Helix rev3 common + set_mac_mode(false); + } else { + set_mac_mode(true); + } + break; + default: // Left no.2 or Right no.1 or Right no.2 for user/keymap + dip_switch_update_user(index, active); + break; + } +} diff --git a/keyboards/helix/rev3_4rows/rev3_4rows.h b/keyboards/helix/rev3_4rows/rev3_4rows.h new file mode 100644 index 00000000000..dc1e2d5da47 --- /dev/null +++ b/keyboards/helix/rev3_4rows/rev3_4rows.h @@ -0,0 +1,47 @@ +/* Copyright 2020 yushakobo + * + * 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" + +bool is_mac_mode(void); +void set_mac_mode(bool macmode); + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT( \ + L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \ + L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \ + L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \ + L30, L31, L32, L33, L34, L35, L36, R36, R30, R31, R32, R33, R34, R35 \ + ) \ + { \ + { L00, L01, L02, L03, L04, L05, KC_NO }, \ + { L10, L11, L12, L13, L14, L15, KC_NO }, \ + { L20, L21, L22, L23, L24, L25, KC_NO }, \ + { L30, L31, L32, L33, L34, L35, L36 }, \ + { R05, R04, R03, R02, R01, R00, KC_NO }, \ + { R15, R14, R13, R12, R11, R10, KC_NO }, \ + { R25, R24, R23, R22, R21, R20, KC_NO }, \ + { R35, R34, R33, R32, R31, R30, R36 }, \ + } diff --git a/keyboards/helix/rev3_4rows/rules.mk b/keyboards/helix/rev3_4rows/rules.mk new file mode 100644 index 00000000000..7168f174fe5 --- /dev/null +++ b/keyboards/helix/rev3_4rows/rules.mk @@ -0,0 +1,10 @@ +EXTRAKEY_ENABLE = yes # Audio control and System control +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +SPLIT_KEYBOARD = yes +#RGB_MATRIX_ENABLE = WS2812 +OLED_DRIVER_ENABLE = yes +ENCODER_ENABLE = yes +DIP_SWITCH_ENABLE = yes +LTO_ENABLE = yes + +SRC += oled_display.c diff --git a/keyboards/helix/rev3_5rows/config.h b/keyboards/helix/rev3_5rows/config.h new file mode 100644 index 00000000000..bea914000a8 --- /dev/null +++ b/keyboards/helix/rev3_5rows/config.h @@ -0,0 +1,246 @@ +/* +Copyright 2020 yushakobo + +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" +#include + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x3265 //yushakobo +#define PRODUCT_ID 0x0003 //Helix rev3 5rows +#define DEVICE_VER 0x0001 +#define MANUFACTURER yushakobo +#define PRODUCT Helix rev3 5rows + +/* key matrix size */ +#define MATRIX_ROWS 10 +#define MATRIX_COLS 7 + +/* + * 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 { D4, C6, D7, E6, B4 } +#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +/* 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} } + +/* + * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN. + */ +#define SOFT_SERIAL_PIN D2 // or D1, D2, D3, E6 + +#define RGB_DI_PIN D3 +#define RGBLED_NUM 64 // Number of LEDs + +#ifdef RGB_MATRIX_ENABLE + #define DRIVER_LED_TOTAL RGBLED_NUM +# define RGB_MATRIX_KEYPRESSES // reacts to keypresses +// # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) +// # 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_FRAMEBUFFER_EFFECTS +// # define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) +// # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) +# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash. +# define RGB_MATRIX_HUE_STEP 8 +# define RGB_MATRIX_SAT_STEP 8 +# define RGB_MATRIX_VAL_STEP 8 +# define RGB_MATRIX_SPD_STEP 10 +#endif + +#ifdef RGBLIGHT_ENABLE + #define RGBLIGHT_SPLIT + #define RGBLED_SPLIT { 32, 32 } +// #define RGBLIGHT_HUE_STEP 8 +// #define RGBLIGHT_SAT_STEP 8 +// #define RGBLIGHT_VAL_STEP 8 + #define RGBLIGHT_LIMIT_VAL 120 /* 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 + +/* Custom font */ +#define OLED_FONT_H "keyboards/helix/common/glcdfont.c" + +/* Encorder */ +#define ENCODERS_PAD_A { B6 } +#define ENCODERS_PAD_B { B5 } + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is userful for the Windows task manager shortcut (ctrl+shift+esc). + */ +// #define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Magic Key Options + * + * Magic keys are hotkey commands that allow control over firmware functions of + * the keyboard. They are best used in combination with the HID Listen program, + * found here: https://www.pjrc.com/teensy/hid_listen.html + * + * The options below allow the magic key functionality to be changed. This is + * useful if your keyboard/keypad is missing keys and you want magic key support. + * + */ + +/* key combination for magic key command */ +/* defined by default; to change, uncomment and set to the combination you want */ +// #define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT) + +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false + +/* override magic key keymap */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +//#define MAGIC_KEY_HELP H +//#define MAGIC_KEY_HELP_ALT SLASH +//#define MAGIC_KEY_DEBUG D +//#define MAGIC_KEY_DEBUG_MATRIX X +//#define MAGIC_KEY_DEBUG_KBD K +//#define MAGIC_KEY_DEBUG_MOUSE M +//#define MAGIC_KEY_VERSION V +//#define MAGIC_KEY_STATUS S +//#define MAGIC_KEY_CONSOLE C +//#define MAGIC_KEY_LAYER0 0 +//#define MAGIC_KEY_LAYER0_ALT GRAVE +//#define MAGIC_KEY_LAYER1 1 +//#define MAGIC_KEY_LAYER2 2 +//#define MAGIC_KEY_LAYER3 3 +//#define MAGIC_KEY_LAYER4 4 +//#define MAGIC_KEY_LAYER5 5 +//#define MAGIC_KEY_LAYER6 6 +//#define MAGIC_KEY_LAYER7 7 +//#define MAGIC_KEY_LAYER8 8 +//#define MAGIC_KEY_LAYER9 9 +//#define MAGIC_KEY_BOOTLOADER B +//#define MAGIC_KEY_BOOTLOADER_ALT ESC +//#define MAGIC_KEY_LOCK CAPS +//#define MAGIC_KEY_EEPROM E +//#define MAGIC_KEY_EEPROM_CLEAR BSPACE +//#define MAGIC_KEY_NKRO N +//#define MAGIC_KEY_SLEEP_LED Z + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +/* + * 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 1 + +/* Bootmagic Lite key configuration */ +// #define BOOTMAGIC_LITE_ROW 0 +// #define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/helix/rev3_5rows/info.json b/keyboards/helix/rev3_5rows/info.json new file mode 100644 index 00000000000..14a61994427 --- /dev/null +++ b/keyboards/helix/rev3_5rows/info.json @@ -0,0 +1,18 @@ +{ + "keyboard_name": "Helix rev3 5rows", + "url": "", + "maintainer": "yushakobo", + "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":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}, + {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"x":11, "y":2}, {"x":12, "y":2}, {"x":13, "y":2}, {"x":14, "y":2}, + {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":6, "y":3}, {"x":8, "y":3}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}, {"x":12, "y":3}, {"x":13, "y":3}, {"x":14, "y":3}, + {"x":0, "y":4}, {"x":1, "y":4}, {"x":2, "y":4}, {"x":3, "y":4}, {"x":4, "y":4}, {"x":5, "y":4}, {"x":6, "y":4}, {"x":8, "y":4}, {"x":9, "y":4}, {"x":10, "y":4}, {"x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4} + ] + } + } +} diff --git a/keyboards/helix/rev3_5rows/keymaps/default/config.h b/keyboards/helix/rev3_5rows/keymaps/default/config.h new file mode 100644 index 00000000000..ba446182d26 --- /dev/null +++ b/keyboards/helix/rev3_5rows/keymaps/default/config.h @@ -0,0 +1,19 @@ +/* Copyright 2020 yushakobo + * + * 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 + +// place overrides here diff --git a/keyboards/helix/rev3_5rows/keymaps/default/keymap.c b/keyboards/helix/rev3_5rows/keymaps/default/keymap.c new file mode 100644 index 00000000000..18b55913737 --- /dev/null +++ b/keyboards/helix/rev3_5rows/keymaps/default/keymap.c @@ -0,0 +1,203 @@ +/* Copyright 2020 yushakobo + * + * 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 + + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _QWERTY = 0, + _LOWER, + _RAISE, + _ADJUST +}; + +// Defines the keycodes used by our macros in process_record_user +enum custom_keycodes { + EISU = SAFE_RANGE, + KANA, + ADJUST, + RGBRST +}; + +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Qwerty + * ,-----------------------------------------. ,-----------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Ctrl | A | S | D | F | G | | H | J | K | L | ; | ' | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | [ | ] | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * |Adjust| Esc | Alt | GUI | EISU |Lower |Space |Space |Raise | KANA | Left | Down | Up |Right | + * `-------------------------------------------------------------------------------------------------' + */ + [_QWERTY] = LAYOUT( \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, 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_BSPC, \ + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LBRC, KC_RBRC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , \ + ADJUST, KC_ESC, KC_LALT, KC_LGUI, EISU, LOWER, KC_SPC, KC_SPC, RAISE, KANA, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ + ), + /* Lower + * ,-----------------------------------------. ,-----------------------------------------. + * | | | | | | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | F1 | F2 | F3 | F4 | F5 | | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | CAPS | F7 | F8 | F9 | F10 | F11 | ( | ) | F12 | | | Home | End | | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | Next | Vol- | Vol+ | Play | + * `-------------------------------------------------------------------------------------------------' + */ + [_LOWER] = LAYOUT( \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, \ + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, \ + KC_CAPS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_LPRN, KC_RPRN, KC_F12, _______, _______, KC_HOME, KC_END, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ + ), + + /* Raise + * ,-----------------------------------------. ,-----------------------------------------. + * | | | | | | | | | | | | | Bksp | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | F1 | F2 | F3 | F4 | F5 | | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | CAPS | F7 | F8 | F9 | F10 | F11 | | | F12 | | |PageDn|PageUp| | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | Next | Vol- | Vol+ | Play | + * `-------------------------------------------------------------------------------------------------' + */ + [_RAISE] = LAYOUT( \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BSPC, \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, \ + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, \ + KC_CAPS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, _______, KC_F12, _______, _______, KC_PGDN, KC_PGUP, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ + ), + + /* Adjust (Lower + Raise) + * ,-----------------------------------------. ,-----------------------------------------. + * | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | Reset|RGBRST|EEPRST| | | | | | | | | Del | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | | | Mac | | Win | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | |RGB ON| HUE+ | SAT+ | VAL+ | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | MODE | HUE- | SAT- | VAL- | + * `-------------------------------------------------------------------------------------------------' + */ + [_ADJUST] = LAYOUT( \ + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \ + _______, RESET, RGBRST, EEP_RST, _______, _______, _______, _______, _______, _______, _______, KC_DEL, \ + _______, _______, _______, _______, _______, AG_NORM, AG_SWAP, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD \ + ) + +}; + +void encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { /* Left side encoder */ + if (clockwise) { + tap_code(KC_PGDN); + } else { + tap_code(KC_PGUP); + } + } else if (index == 1) { /* Right side encoder */ + if (clockwise) { + tap_code(KC_DOWN); + } else { + tap_code(KC_UP); + } + } +} + +layer_state_t layer_state_set_user(layer_state_t state) { + return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case EISU: + if (record->event.pressed) { + if (is_mac_mode()) { + register_code(KC_LANG2); + }else{ + tap_code16(LALT(KC_GRAVE)); + } + } else { + unregister_code(KC_LANG2); + } + return false; + break; + case KANA: + if (record->event.pressed) { + if (is_mac_mode()) { + register_code(KC_LANG1); + }else{ + tap_code16(LALT(KC_GRAVE)); + } + } else { + unregister_code(KC_LANG1); + } + return false; + break; + case ADJUST: + if (record->event.pressed) { + layer_on(_LOWER); + layer_on(_RAISE); + } else { + layer_off(_LOWER); + layer_off(_RAISE); + } + break; + case RGBRST: + #ifdef RGBLIGHT_ENABLE + if (record->event.pressed) { + eeconfig_update_rgblight_default(); + rgblight_enable(); + } + #endif + break; + } + return true; +} + +/* +void matrix_init_user(void) { + +} + +void matrix_scan_user(void) { + +} + +bool led_update_user(led_t led_state) { + return true; +} +*/ diff --git a/keyboards/helix/rev3_5rows/keymaps/default/readme.md b/keyboards/helix/rev3_5rows/keymaps/default/readme.md new file mode 100644 index 00000000000..423443ba715 --- /dev/null +++ b/keyboards/helix/rev3_5rows/keymaps/default/readme.md @@ -0,0 +1,81 @@ +# The default keymap for Helix rev3 5rows + +### Qwerty Layer (Base) +``` +,-----------------------------------------. ,-----------------------------------------. +| ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| Ctrl | A | S | D | F | G | | H | J | K | L | ; | ' | +|------+------+------+------+------+------+------+------+------+------+------+------+------+------| +| Shift| Z | X | C | V | B | [ | ] | N | M | , | . | / |Enter | +|------+------+------+------+------+------+------+------+------+------+------+------+------+------| +|Adjust| Esc | Alt | GUI | EISU |Lower |Space |Space |Raise | KANA | Left | Down | Up |Right | +`-------------------------------------------------------------------------------------------------' + +``` + +### Lower Layer +``` +,-----------------------------------------. ,-----------------------------------------. +| | | | | | | | | | | | | | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| | F1 | F2 | F3 | F4 | F5 | | F6 | _ | + | { | } | | | +|------+------+------+------+------+------+------+------+------+------+------+------+------+------| +| CAPS | F7 | F8 | F9 | F10 | F11 | ( | ) | F12 | | | Home | End | | +|------+------+------+------+------+------+------+------+------+------+------+------+------+------| +| | | | | | | | | | | Next | Vol- | Vol+ | Play | +`-------------------------------------------------------------------------------------------------' + +``` + + +### Raise Layer +``` +,-----------------------------------------. ,-----------------------------------------. +| | | | | | | | | | | | | Bksp | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| | F1 | F2 | F3 | F4 | F5 | | F6 | - | = | [ | ] | \ | +|------+------+------+------+------+------+------+------+------+------+------+------+------+------| +| CAPS | F7 | F8 | F9 | F10 | F11 | | | F12 | | |PageDn|PageUp| | +|------+------+------+------+------+------+------+------+------+------+------+------+------+------| +| | | | | | | | | | | Next | Vol- | Vol+ | Play | +`-------------------------------------------------------------------------------------------------' + +``` + +### Adjust Layer (Lower + Raise) +``` +,-----------------------------------------. ,-----------------------------------------. +| F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| | Reset|RGBRST|EEPRST| | | | | | | | | Del | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| | | | | | Mac | | Win | | | | | | +|------+------+------+------+------+------+------+------+------+------+------+------+------+------| +| | | | | | | | | | |RGB ON| HUE+ | SAT+ | VAL+ | +|------+------+------+------+------+------+------+------+------+------+------+------+------+------| +| | | | | | | | | | | MODE | HUE- | SAT- | VAL- | +`-------------------------------------------------------------------------------------------------' +``` + +### Rotary Encoder Settings + +|L/R|Clockwise|Counter Clockwise| +|---|---|---| +|Left|Page Down|Page Up| +|Right|Down|Up| + +### DipSW Settings + +|Switch No.|| +|---|---| +|Left 1|Toggle Win/mac| +|Left 2|Not assigned| +|Right 1|Not assigned| +|Right 2|Not assigned| diff --git a/keyboards/helix/rev3_5rows/keymaps/via/config.h b/keyboards/helix/rev3_5rows/keymaps/via/config.h new file mode 100644 index 00000000000..ba446182d26 --- /dev/null +++ b/keyboards/helix/rev3_5rows/keymaps/via/config.h @@ -0,0 +1,19 @@ +/* Copyright 2020 yushakobo + * + * 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 + +// place overrides here diff --git a/keyboards/helix/rev3_5rows/keymaps/via/keymap.c b/keyboards/helix/rev3_5rows/keymaps/via/keymap.c new file mode 100644 index 00000000000..903e2637de0 --- /dev/null +++ b/keyboards/helix/rev3_5rows/keymaps/via/keymap.c @@ -0,0 +1,190 @@ +/* Copyright 2020 yushakobo + * + * 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 + + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _QWERTY = 0, + _LOWER, + _RAISE, + _ADJUST +}; + +// Defines the keycodes used by our macros in process_record_user +enum custom_keycodes { + EISU = SAFE_RANGE, + KANA, + ADJUST, + RGBRST +}; + +#define LOWER FN_MO13 +#define RAISE FN_MO23 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Qwerty + * ,-----------------------------------------. ,-----------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Ctrl | A | S | D | F | G | | H | J | K | L | ; | ' | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | [ | ] | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * |Adjust| Esc | Alt | GUI | EISU |Lower |Space |Space |Raise | KANA | Left | Down | Up |Right | + * `-------------------------------------------------------------------------------------------------' + */ + [_QWERTY] = LAYOUT( \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, 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_BSPC, \ + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LBRC, KC_RBRC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , \ + MO(_ADJUST), KC_ESC, KC_LALT, KC_LGUI, EISU, LOWER, KC_SPC, KC_SPC, RAISE, KANA, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ + ), + /* Lower + * ,-----------------------------------------. ,-----------------------------------------. + * | | | | | | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | F1 | F2 | F3 | F4 | F5 | | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | CAPS | F7 | F8 | F9 | F10 | F11 | ( | ) | F12 | | | Home | End | | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | Next | Vol- | Vol+ | Play | + * `-------------------------------------------------------------------------------------------------' + */ + [_LOWER] = LAYOUT( \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, \ + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, \ + KC_CAPS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_LPRN, KC_RPRN, KC_F12, _______, _______, KC_HOME, KC_END, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ + ), + + /* Raise + * ,-----------------------------------------. ,-----------------------------------------. + * | | | | | | | | | | | | | Bksp | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | F1 | F2 | F3 | F4 | F5 | | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | CAPS | F7 | F8 | F9 | F10 | F11 | | | F12 | | |PageDn|PageUp| | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | Next | Vol- | Vol+ | Play | + * `-------------------------------------------------------------------------------------------------' + */ + [_RAISE] = LAYOUT( \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BSPC, \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, \ + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, \ + KC_CAPS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, _______, KC_F12, _______, _______, KC_PGDN, KC_PGUP, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ + ), + + /* Adjust (Lower + Raise) + * ,-----------------------------------------. ,-----------------------------------------. + * | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | Reset|RGBRST| | | | | | | | | | Del | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | | | Mac | | Win | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | |RGB ON| HUE+ | SAT+ | VAL+ | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | MODE | HUE- | SAT- | VAL- | + * `-------------------------------------------------------------------------------------------------' + */ + [_ADJUST] = LAYOUT( \ + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \ + _______, RESET, RGBRST, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, \ + _______, _______, _______, _______, _______, AG_NORM, AG_SWAP, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD \ + ) + +}; + +void encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { /* Left side encoder */ + if (clockwise) { + tap_code(KC_PGDN); + } else { + tap_code(KC_PGUP); + } + } else if (index == 1) { /* Right side encoder */ + if (clockwise) { + tap_code(KC_DOWN); + } else { + tap_code(KC_UP); + } + } +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case EISU: + if (record->event.pressed) { + if (is_mac_mode()) { + register_code(KC_LANG2); + }else{ + tap_code16(LALT(KC_GRAVE)); + } + } else { + unregister_code(KC_LANG2); + } + return false; + break; + case KANA: + if (record->event.pressed) { + if (is_mac_mode()) { + register_code(KC_LANG1); + }else{ + tap_code16(LALT(KC_GRAVE)); + } + } else { + unregister_code(KC_LANG1); + } + return false; + break; + case RGBRST: + #ifdef RGBLIGHT_ENABLE + if (record->event.pressed) { + eeconfig_update_rgblight_default(); + rgblight_enable(); + } + #endif + break; + } + return true; +} + +/* +void matrix_init_user(void) { + +} + +void matrix_scan_user(void) { + +} + +bool led_update_user(led_t led_state) { + return true; +} +*/ diff --git a/keyboards/helix/rev3_5rows/keymaps/via/readme.md b/keyboards/helix/rev3_5rows/keymaps/via/readme.md new file mode 100644 index 00000000000..d3ea17f1b3c --- /dev/null +++ b/keyboards/helix/rev3_5rows/keymaps/via/readme.md @@ -0,0 +1,81 @@ +# The default VIA keymap for Helix rev3 5rows + +### Qwerty Layer (Base) +``` +,-----------------------------------------. ,-----------------------------------------. +| ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| Ctrl | A | S | D | F | G | | H | J | K | L | ; | ' | +|------+------+------+------+------+------+------+------+------+------+------+------+------+------| +| Shift| Z | X | C | V | B | [ | ] | N | M | , | . | / |Enter | +|------+------+------+------+------+------+------+------+------+------+------+------+------+------| +|Adjust| Esc | Alt | GUI | EISU |Lower |Space |Space |Raise | KANA | Left | Down | Up |Right | +`-------------------------------------------------------------------------------------------------' + +``` + +### Lower Layer +``` +,-----------------------------------------. ,-----------------------------------------. +| | | | | | | | | | | | | | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| | F1 | F2 | F3 | F4 | F5 | | F6 | _ | + | { | } | | | +|------+------+------+------+------+------+------+------+------+------+------+------+------+------| +| CAPS | F7 | F8 | F9 | F10 | F11 | ( | ) | F12 | | | Home | End | | +|------+------+------+------+------+------+------+------+------+------+------+------+------+------| +| | | | | | | | | | | Next | Vol- | Vol+ | Play | +`-------------------------------------------------------------------------------------------------' + +``` + + +### Raise Layer +``` +,-----------------------------------------. ,-----------------------------------------. +| | | | | | | | | | | | | Bksp | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| | F1 | F2 | F3 | F4 | F5 | | F6 | - | = | [ | ] | \ | +|------+------+------+------+------+------+------+------+------+------+------+------+------+------| +| CAPS | F7 | F8 | F9 | F10 | F11 | | | F12 | | |PageDn|PageUp| | +|------+------+------+------+------+------+------+------+------+------+------+------+------+------| +| | | | | | | | | | | Next | Vol- | Vol+ | Play | +`-------------------------------------------------------------------------------------------------' + +``` + +### Adjust Layer (Lower + Raise) +``` +,-----------------------------------------. ,-----------------------------------------. +| F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| | Reset|RGBRST| | | | | | | | | | Del | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| | | | | | Mac | | Win | | | | | | +|------+------+------+------+------+------+------+------+------+------+------+------+------+------| +| | | | | | | | | | |RGB ON| HUE+ | SAT+ | VAL+ | +|------+------+------+------+------+------+------+------+------+------+------+------+------+------| +| | | | | | | | | | | MODE | HUE- | SAT- | VAL- | +`-------------------------------------------------------------------------------------------------' +``` + +### Rotary Encoder Settings + +|L/R|Clockwise|Counter Clockwise| +|---|---|---| +|Left|Page Down|Page Up| +|Right|Down|Up| + +### DipSW Settings + +|Switch No.|| +|---|---| +|Left 1|Toggle Win/mac| +|Left 2|Not assigned| +|Right 1|Not assigned| +|Right 2|Not assigned| diff --git a/keyboards/helix/rev3_5rows/keymaps/via/rules.mk b/keyboards/helix/rev3_5rows/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/helix/rev3_5rows/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/helix/rev3_5rows/oled_display.c b/keyboards/helix/rev3_5rows/oled_display.c new file mode 100644 index 00000000000..ffe8b594b3b --- /dev/null +++ b/keyboards/helix/rev3_5rows/oled_display.c @@ -0,0 +1,123 @@ +/* Copyright 2020 yushakobo + * + * 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 . + */ + + /* + How to Customize + + $ make helix/rev3_5rows:YOUR_KEYMAP:clean + $ cp keyboards/helix/rev3_5rows/oled_display.c keyboards/helix/rev3_5rows/keymaps/YOUR_KEYMAP + + $ edit keyboards/helix/rev3_5rows/keymaps/YOUR_KEYMAP/oled_display.c + $ make helix/rev3_5rows:YOUR_KEYMAP + $ make helix/rev3_5rows:YOUR_KEYMAP:flash + */ + +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _QWERTY = 0, + _LOWER, + _RAISE, + _ADJUST +}; + +#ifdef OLED_DRIVER_ENABLE + +void render_status(void) { + + // Render to mode icon + static const char os_logo[][2][3] PROGMEM ={{{0x95,0x96,0},{0xb5,0xb6,0}},{{0x97,0x98,0},{0xb7,0xb8,0}}}; + if (is_mac_mode()) { + oled_write_P(os_logo[0][0], false); + oled_write_P(PSTR("\n"), false); + oled_write_P(os_logo[0][1], false); + }else{ + oled_write_P(os_logo[1][0], false); + oled_write_P(PSTR("\n"), false); + oled_write_P(os_logo[1][1], false); + } + + oled_write_P(PSTR(" "), false); + + // Host Keyboard Layer Status + oled_write_P(PSTR("Layer: "), false); + + switch (get_highest_layer(layer_state)) { + case _QWERTY: + oled_write_P(PSTR("Default\n"), false); + break; + case _RAISE: + oled_write_P(PSTR("Raise\n"), false); + break; + case _LOWER: + oled_write_P(PSTR("Lower\n"), false); + break; + case _ADJUST: + oled_write_P(PSTR("Adjust\n"), false); + break; + default: + // Or use the write_ln shortcut over adding '\n' to the end of your string + oled_write_ln_P(PSTR("Undefined"), false); + } + + oled_write_P(PSTR("\n"), false); + + // Host Keyboard LED Status + led_t led_state = host_keyboard_led_state(); + oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false); + oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false); + oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false); +} + + +static void render_logo(void) { + static const char PROGMEM qmk_logo[] = { + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94, + 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, + 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0x00 + }; + + oled_write_P(qmk_logo, false); +} + +static void render_rgbled_status(bool full) { +#ifdef RGBLIGHT_ENABLE + char buf[30]; + if (RGBLIGHT_MODES > 1 && rgblight_is_enabled()) { + if (full) { + snprintf(buf, sizeof(buf), " LED %2d: %d,%d,%d ", + rgblight_get_mode(), + rgblight_get_hue()/RGBLIGHT_HUE_STEP, + rgblight_get_sat()/RGBLIGHT_SAT_STEP, + rgblight_get_val()/RGBLIGHT_VAL_STEP); + } else { + snprintf(buf, sizeof(buf), "[%2d] ", rgblight_get_mode()); + } + oled_write(buf, false); + } +#endif +} + +void oled_task_user(void) { + if(is_keyboard_master()){ + render_status(); + }else{ + render_logo(); + render_rgbled_status(true); + } +} +#endif diff --git a/keyboards/helix/rev3_5rows/readme.md b/keyboards/helix/rev3_5rows/readme.md new file mode 100644 index 00000000000..ff7e2cd59ab --- /dev/null +++ b/keyboards/helix/rev3_5rows/readme.md @@ -0,0 +1,13 @@ +# Helix rev3 5rows + +A compact split ortholinear keyboard. + +* Keyboard Maintainer: [yushakobo](https://github.com/yushakobo) +* Hardware Supported: Helix rev3 PCBs, Pro Micro +* Hardware Availability: (Under preparation) + +Make example for this keyboard (after setting up your build environment): + + make helix/rev3_5rows: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/helix/rev3_5rows/rev3_5rows.c b/keyboards/helix/rev3_5rows/rev3_5rows.c new file mode 100644 index 00000000000..cf183366d6e --- /dev/null +++ b/keyboards/helix/rev3_5rows/rev3_5rows.c @@ -0,0 +1,48 @@ +/* Copyright 2020 yushakobo + * + * 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 "helix.h" + +bool is_mac_mode(void) { + return keymap_config.swap_lalt_lgui == false; +} + +void set_mac_mode(bool macmode) { + if (macmode) { + /* The result is the same as pressing the AG_NORM(=MAGIC_UNSWAP_ALT_GUI) key. */ + /* https://github.com/qmk/qmk_firmware/blob/fb4a6ad30ea7a648acd59793ed4a30c3a8d8dc32/quantum/process_keycode/process_magic.c#L123-L124 */ + keymap_config.swap_lalt_lgui = keymap_config.swap_ralt_rgui = false; + } else { + /* The result is the same as pressing the AG_SWAP(=MAGIC_SWAP_ALT_GUI) key. */ + /* https://github.com/qmk/qmk_firmware/blob/fb4a6ad30ea7a648acd59793ed4a30c3a8d8dc32/quantum/process_keycode/process_magic.c#L80-L81 */ + keymap_config.swap_lalt_lgui = keymap_config.swap_ralt_rgui = true; + } +} + +void dip_switch_update_kb(uint8_t index, bool active) { + switch (index) { + case 0: + if(active) { // Left no.1 Helix rev3 common + set_mac_mode(false); + } else { + set_mac_mode(true); + } + break; + default: // Left no.2 or Right no.1 or Right no.2 for user/keymap + dip_switch_update_user(index, active); + break; + } +} diff --git a/keyboards/helix/rev3_5rows/rev3_5rows.h b/keyboards/helix/rev3_5rows/rev3_5rows.h new file mode 100644 index 00000000000..1e3121d7135 --- /dev/null +++ b/keyboards/helix/rev3_5rows/rev3_5rows.h @@ -0,0 +1,50 @@ +/* Copyright 2020 yushakobo + * + * 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" + +bool is_mac_mode(void); +void set_mac_mode(bool macmode); + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT( \ + L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \ + L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \ + L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \ + L30, L31, L32, L33, L34, L35, L36, R36, R30, R31, R32, R33, R34, R35, \ + L40, L41, L42, L43, L44, L45, L46, R46, R40, R41, R42, R43, R44, R45 \ + ) \ + { \ + { L00, L01, L02, L03, L04, L05, KC_NO }, \ + { L10, L11, L12, L13, L14, L15, KC_NO }, \ + { L20, L21, L22, L23, L24, L25, KC_NO }, \ + { L30, L31, L32, L33, L34, L35, L36 }, \ + { L40, L41, L42, L43, L44, L45, L46 }, \ + { R05, R04, R03, R02, R01, R00, KC_NO }, \ + { R15, R14, R13, R12, R11, R10, KC_NO }, \ + { R25, R24, R23, R22, R21, R20, KC_NO }, \ + { R35, R34, R33, R32, R31, R30, R36 }, \ + { R45, R44, R43, R42, R41, R40, R46 } \ + } diff --git a/keyboards/helix/rev3_5rows/rules.mk b/keyboards/helix/rev3_5rows/rules.mk new file mode 100644 index 00000000000..7168f174fe5 --- /dev/null +++ b/keyboards/helix/rev3_5rows/rules.mk @@ -0,0 +1,10 @@ +EXTRAKEY_ENABLE = yes # Audio control and System control +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +SPLIT_KEYBOARD = yes +#RGB_MATRIX_ENABLE = WS2812 +OLED_DRIVER_ENABLE = yes +ENCODER_ENABLE = yes +DIP_SWITCH_ENABLE = yes +LTO_ENABLE = yes + +SRC += oled_display.c diff --git a/keyboards/inett_studio/sqx/hotswap/config.h b/keyboards/inett_studio/sqx/hotswap/config.h index a59ad3e7e3f..174b948c1da 100644 --- a/keyboards/inett_studio/sqx/hotswap/config.h +++ b/keyboards/inett_studio/sqx/hotswap/config.h @@ -70,3 +70,8 @@ #if defined(RGB_MATRIX_ENABLE) && defined(RGBLIGHT_ENABLE) #define RGB_MATRIX_DISABLE_KEYCODES #endif + +#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 170 +#define DISABLE_RGB_MATRIX_BAND_VAL +#define DISABLE_RGB_MATRIX_BAND_SPIRAL_VAL +#define DISABLE_RGB_MATRIX_BAND_PINWHEEL_VAL diff --git a/keyboards/inett_studio/sqx/universal/config.h b/keyboards/inett_studio/sqx/universal/config.h index a4a5b42c4d6..7fa41fae24a 100644 --- a/keyboards/inett_studio/sqx/universal/config.h +++ b/keyboards/inett_studio/sqx/universal/config.h @@ -70,3 +70,8 @@ #if defined(RGB_MATRIX_ENABLE) && defined(RGBLIGHT_ENABLE) # define RGB_MATRIX_DISABLE_KEYCODES #endif + +#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 170 +#define DISABLE_RGB_MATRIX_BAND_VAL +#define DISABLE_RGB_MATRIX_BAND_SPIRAL_VAL +#define DISABLE_RGB_MATRIX_BAND_PINWHEEL_VAL diff --git a/keyboards/drakon/config.h b/keyboards/jagdpietr/drakon/config.h similarity index 100% rename from keyboards/drakon/config.h rename to keyboards/jagdpietr/drakon/config.h diff --git a/keyboards/drakon/keymaps/default/keymap.c b/keyboards/jagdpietr/drakon/drakon.c similarity index 81% rename from keyboards/drakon/keymaps/default/keymap.c rename to keyboards/jagdpietr/drakon/drakon.c index 04c511f2111..ca25ac3174c 100644 --- a/keyboards/drakon/keymaps/default/keymap.c +++ b/keyboards/jagdpietr/drakon/drakon.c @@ -13,43 +13,12 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -#include QMK_KEYBOARD_H + +#include "drakon.h" char wpm_str[10]; -// Defines names for use in layer keycodes and the keymap -enum Layer_names { -_Base, -_FN, -_Lyr2 -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_Base] = LAYOUT_ansi( - KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_MUTE, - 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_MPRV, KC_MPLY, KC_MNXT, - 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_MSTP, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_APP, MO(_FN), KC_LEFT, KC_DOWN, KC_RIGHT - ), - - [_FN] = LAYOUT_ansi( - 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_DEL, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END - ), - - [_Lyr2] = LAYOUT_ansi( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ) -}; - +__attribute__((weak)) void encoder_update_user(uint8_t index, bool clockwise) { if (clockwise) { tap_code(KC_VOLU); @@ -60,12 +29,20 @@ void encoder_update_user(uint8_t index, bool clockwise) { #ifdef OLED_DRIVER_ENABLE +// Defines names for use in layer keycodes and the keymap +enum Layer_names { +_Base, +_FN, +_Lyr2 +}; + +__attribute__((weak)) oled_rotation_t oled_init_user(oled_rotation_t rotation) { return OLED_ROTATION_90; // flips the display 90 degrees if offhand } -void render_status(void) { +static void render_status(void) { //Host Keyboard Layer Status oled_set_cursor(0,10); oled_write_P(PSTR("Lyr: "), false); @@ -232,6 +209,7 @@ static void render_anim(void) { } } } +__attribute__((weak)) void oled_task_user(void) { render_anim(); diff --git a/keyboards/drakon/drakon.h b/keyboards/jagdpietr/drakon/drakon.h similarity index 100% rename from keyboards/drakon/drakon.h rename to keyboards/jagdpietr/drakon/drakon.h diff --git a/keyboards/drakon/info.json b/keyboards/jagdpietr/drakon/info.json similarity index 100% rename from keyboards/drakon/info.json rename to keyboards/jagdpietr/drakon/info.json diff --git a/keyboards/drakon/keymaps/logo/keymap.c b/keyboards/jagdpietr/drakon/keymaps/default/keymap.c similarity index 56% rename from keyboards/drakon/keymaps/logo/keymap.c rename to keyboards/jagdpietr/drakon/keymaps/default/keymap.c index a20559d9e14..70ec6845b74 100644 --- a/keyboards/drakon/keymaps/logo/keymap.c +++ b/keyboards/jagdpietr/drakon/keymaps/default/keymap.c @@ -47,64 +47,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) }; - -void encoder_update_user(uint8_t index, bool clockwise) { - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } -} - -#ifdef OLED_DRIVER_ENABLE - -oled_rotation_t oled_init_user(oled_rotation_t rotation) { - return OLED_ROTATION_90; // flips the display 90 degrees if offhand - -} - -void oled_task_user(void) { - static const char PROGMEM drakon_logo[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xc0, 0x80, 0x80, 0x80, 0x80, 0x80, 0xc0, 0x40, 0x80, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 0x18, 0x18, 0x11, 0x17, 0x11, 0x12, 0x22, 0x24, 0x28, 0x59, - 0x52, 0xec, 0xf0, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1e, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, - 0x03, 0xfc, 0x01, 0x03, 0x07, 0x1e, 0x78, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x09, 0x0b, 0x06, 0x1c, 0x18, 0x10, 0x10, 0x30, - 0x2e, 0x27, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x27, 0x3c, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x1c, 0x22, 0x41, 0x41, 0xc1, 0x22, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x41, 0x47, 0x06, 0x38, - 0x38, 0x00, 0x47, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x41, 0x7f, 0x4d, 0x0c, 0x10, 0x63, 0x41, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - }; - oled_set_cursor(0,4); - oled_write_raw_P(drakon_logo, 192); - - // Host Keyboard Layer Status - oled_set_cursor(0,10); - oled_write_P(PSTR("Lyr: "), false); - - switch (get_highest_layer(layer_state)) { - case _Base: - oled_write_P(PSTR("Base\n"), false); - break; - case _FN: - oled_write_P(PSTR("FN\n"), false); - break; - case _Lyr2: - oled_write_P(PSTR("Lyr2\n"), false); - break; - default: - // Or use the write_ln shortcut over adding '\n' to the end of your string - oled_write_ln_P(PSTR("Undefined"), false); - } - // Host Keyboard LED Status - led_t led_state = host_keyboard_led_state(); - oled_set_cursor(0,12); - oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false); - - -} - -#endif diff --git a/keyboards/drakon/keymaps/default/readme.md b/keyboards/jagdpietr/drakon/keymaps/default/readme.md similarity index 100% rename from keyboards/drakon/keymaps/default/readme.md rename to keyboards/jagdpietr/drakon/keymaps/default/readme.md diff --git a/keyboards/jagdpietr/drakon/keymaps/wkl/keymap.c b/keyboards/jagdpietr/drakon/keymaps/wkl/keymap.c new file mode 100644 index 00000000000..79582353c33 --- /dev/null +++ b/keyboards/jagdpietr/drakon/keymaps/wkl/keymap.c @@ -0,0 +1,50 @@ +/* Copyright 2020 jagdpietr + * + * 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 + +// Defines names for use in layer keycodes and the keymap +enum Layer_names { +_Base, +_FN, +_Lyr2 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_Base] = LAYOUT_wkl( + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_MUTE, + 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_MPRV, KC_MPLY, KC_MNXT, + 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_MSTP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LALT, KC_SPC, KC_APP, MO(_FN), KC_LEFT, KC_DOWN, KC_RIGHT + ), + + [_FN] = LAYOUT_wkl( + 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_DEL, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END + ), + + [_Lyr2] = LAYOUT_wkl( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END + ) + +}; diff --git a/keyboards/drakon/keymaps/wkl/readme.md b/keyboards/jagdpietr/drakon/keymaps/wkl/readme.md similarity index 100% rename from keyboards/drakon/keymaps/wkl/readme.md rename to keyboards/jagdpietr/drakon/keymaps/wkl/readme.md diff --git a/keyboards/drakon/readme.md b/keyboards/jagdpietr/drakon/readme.md similarity index 100% rename from keyboards/drakon/readme.md rename to keyboards/jagdpietr/drakon/readme.md diff --git a/keyboards/drakon/rules.mk b/keyboards/jagdpietr/drakon/rules.mk similarity index 100% rename from keyboards/drakon/rules.mk rename to keyboards/jagdpietr/drakon/rules.mk diff --git a/keyboards/jisplit89/config.h b/keyboards/jisplit89/config.h index cfb6bf4ffcc..c9b55e7a037 100644 --- a/keyboards/jisplit89/config.h +++ b/keyboards/jisplit89/config.h @@ -1,6 +1,5 @@ /* -Copyright 2012 Jun Wako -Copyright 2015 Jack Humbert +Copyright 2020 Salicylic_Acid 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/jisplit89/jisplit89.c b/keyboards/jisplit89/jisplit89.c index f57f71a6fcc..0f03aa4ce27 100644 --- a/keyboards/jisplit89/jisplit89.c +++ b/keyboards/jisplit89/jisplit89.c @@ -1 +1,18 @@ +/* +Copyright 2020 Salicylic_Acid + +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 "jisplit89.h" diff --git a/keyboards/jisplit89/jisplit89.h b/keyboards/jisplit89/jisplit89.h index ab1ed00ba60..b59b5a66a2b 100644 --- a/keyboards/jisplit89/jisplit89.h +++ b/keyboards/jisplit89/jisplit89.h @@ -1,3 +1,20 @@ +/* +Copyright 2020 Salicylic_Acid + +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 KEYBOARD_jisplit89_rev1 diff --git a/keyboards/jisplit89/keymaps/default/keymap.c b/keyboards/jisplit89/keymaps/default/keymap.c index 787e74c4e9e..bfbb09898e0 100644 --- a/keyboards/jisplit89/keymaps/default/keymap.c +++ b/keyboards/jisplit89/keymaps/default/keymap.c @@ -1,3 +1,20 @@ +/* +Copyright 2020 Salicylic_Acid + +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 "keymap_jp.h" // Each layer gets a name for readability, which is then used in the keymap matrix below. @@ -46,30 +63,18 @@ LT(_ADJUST,KC_ZKHK),KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7 ) }; -int RGB_current_mode; bool process_record_user(uint16_t keycode, keyrecord_t *record) { - bool result = false; - switch (keycode) { + switch (keycode) { #ifdef RGBLIGHT_ENABLE - case RGB_MOD: - if (record->event.pressed) { - rgblight_mode(RGB_current_mode); - rgblight_step(); - RGB_current_mode = rgblight_get_mode(); - } - break; case RGB_RST: if (record->event.pressed) { - eeconfig_update_rgblight_default(); - rgblight_enable(); - RGB_current_mode = rgblight_get_mode(); + uint8_t mode = rgblight_get_mode(); + eeconfig_update_rgblight_default(); + rgblight_enable(); + rgblight_mode(mode); } - break; + break; #endif - default: - result = true; - break; - } - - return result; + } + return true; } diff --git a/keyboards/jisplit89/keymaps/salicylic/keymap.c b/keyboards/jisplit89/keymaps/salicylic/keymap.c index 350292db1c6..e41027961c2 100644 --- a/keyboards/jisplit89/keymaps/salicylic/keymap.c +++ b/keyboards/jisplit89/keymaps/salicylic/keymap.c @@ -1,3 +1,20 @@ +/* +Copyright 2020 Salicylic_Acid + +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 "keymap_jp.h" // Each layer gets a name for readability, which is then used in the keymap matrix below. @@ -110,34 +127,22 @@ SFT_T(KC_F12), KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, XXXXXXX, XXXXXXX //A description for expressing the layer position in LED mode. layer_state_t layer_state_set_user(layer_state_t state) { - state = update_tri_layer_state(state, _RAISE, _LOWER, _ADJUST); -return state; + return update_tri_layer_state(state, _RAISE, _LOWER, _ADJUST); } int RGB_current_mode; bool process_record_user(uint16_t keycode, keyrecord_t *record) { - bool result = false; - switch (keycode) { + switch (keycode) { #ifdef RGBLIGHT_ENABLE - case RGB_MOD: - if (record->event.pressed) { - rgblight_mode(RGB_current_mode); - rgblight_step(); - RGB_current_mode = rgblight_get_mode(); - } - break; case RGB_RST: if (record->event.pressed) { - eeconfig_update_rgblight_default(); - rgblight_enable(); - RGB_current_mode = rgblight_get_mode(); + uint8_t mode = rgblight_get_mode(); + eeconfig_update_rgblight_default(); + rgblight_enable(); + rgblight_mode(mode); } - break; + break; #endif - default: - result = true; - break; - } - - return result; + } + return true; } diff --git a/keyboards/jisplit89/keymaps/salicylic/rules.mk b/keyboards/jisplit89/keymaps/salicylic/rules.mk index 0bcbf86d5e4..8db2280906d 100644 --- a/keyboards/jisplit89/keymaps/salicylic/rules.mk +++ b/keyboards/jisplit89/keymaps/salicylic/rules.mk @@ -1,2 +1,2 @@ TAP_DANCE_ENABLE = yes -MOUSEKEY_ENABLE = yes \ No newline at end of file +MOUSEKEY_ENABLE = yes diff --git a/keyboards/jisplit89/keymaps/via/config.h b/keyboards/jisplit89/keymaps/via/config.h new file mode 100644 index 00000000000..08bcdab7014 --- /dev/null +++ b/keyboards/jisplit89/keymaps/via/config.h @@ -0,0 +1,21 @@ +/* Copyright 2020 Salicylic_acid3 + * + * 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 + +/* Select hand configuration */ + +#define DYNAMIC_KEYMAP_LAYER_COUNT 3 diff --git a/keyboards/jisplit89/keymaps/via/keymap.c b/keyboards/jisplit89/keymaps/via/keymap.c new file mode 100644 index 00000000000..61bcadbc7dc --- /dev/null +++ b/keyboards/jisplit89/keymaps/via/keymap.c @@ -0,0 +1,71 @@ +/* +Copyright 2020 Salicylic_Acid + +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 "keymap_jp.h" +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + //,-----------------------------------------------------| |--------------------------------------------------------------------------------. + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_PSCR, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------| +LT(1,KC_ZKHK),KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, JP_MINS, JP_EQL, JP_YEN, KC_BSPC, KC_DEL, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------| + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, JP_AT, JP_LBRC, KC_ENT, KC_HOME, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------| + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, JP_SCLN, JP_QUOT, JP_RBRC, KC_END, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------| + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, JP_BSLS, KC_PGDN, KC_UP, KC_PGUP, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------| + KC_LCTRL, KC_LGUI, KC_LALT, KC_MHEN, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_HENK, KC_KANA, KC_APP, KC_LEFT, KC_DOWN,KC_RIGHT + //`-----------------------------------------------------| |--------------------------------------------------------------------------------' + ), + [1] = LAYOUT( /* Base */ + //,-----------------------------------------------------| |--------------------------------------------------------------------------------. + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------| + MO(1), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------| + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------| + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------| + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------| + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX + //`-----------------------------------------------------| |--------------------------------------------------------------------------------' + ), + [2] = LAYOUT( /* Base */ + //,-----------------------------------------------------| |--------------------------------------------------------------------------------. + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------| + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------| + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------| + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------| + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------| + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX + //`-----------------------------------------------------| |--------------------------------------------------------------------------------' + ) +}; diff --git a/keyboards/jisplit89/keymaps/via/rules.mk b/keyboards/jisplit89/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/jisplit89/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/jisplit89/rev1/config.h b/keyboards/jisplit89/rev1/config.h index a2ba9040f71..ee5f2ca0bce 100644 --- a/keyboards/jisplit89/rev1/config.h +++ b/keyboards/jisplit89/rev1/config.h @@ -1,5 +1,5 @@ /* -Copyright 2020 Salicylic_acid3 +Copyright 2020 Salicylic_Acid 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 @@ -18,12 +18,11 @@ along with this program. If not, see . #pragma once /* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x3060 -#define DEVICE_VER 0x06ae +#define VENDOR_ID 0x04D8 +#define PRODUCT_ID 0xEB4F +#define DEVICE_VER 0x0001 #define MANUFACTURER Salicylic_Acid #define PRODUCT jisplit89 -#define DESCRIPTION A custom keyboard /* key matrix size */ #define MATRIX_ROWS 14 diff --git a/keyboards/jisplit89/rev1/rev1.c b/keyboards/jisplit89/rev1/rev1.c index 520a869e57b..13e201e63a2 100644 --- a/keyboards/jisplit89/rev1/rev1.c +++ b/keyboards/jisplit89/rev1/rev1.c @@ -1 +1,18 @@ +/* +Copyright 2020 Salicylic_Acid + +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 "rev1.h" diff --git a/keyboards/jisplit89/rev1/rev1.h b/keyboards/jisplit89/rev1/rev1.h index 13fb08dfeae..71515f5ef6d 100644 --- a/keyboards/jisplit89/rev1/rev1.h +++ b/keyboards/jisplit89/rev1/rev1.h @@ -1,12 +1,26 @@ +/* +Copyright 2020 Salicylic_Acid + +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 "jisplit89.h" #include "quantum.h" -////////////////////////////////////////////////////////////////////////////// -// When only use JISplit89. -////////////////////////////////////////////////////////////////////////////// /* * ,-------------------------------------- ----------------------------------------------------------. * | L00 | L01 | L02 | L03 | L04 | L05 | | R00 | R01 | R02 | R03 | R04 | R05 | R06 | R07 | R60 | diff --git a/keyboards/jisplit89/rules.mk b/keyboards/jisplit89/rules.mk index c78aa66ba5f..9c714e88f6e 100644 --- a/keyboards/jisplit89/rules.mk +++ b/keyboards/jisplit89/rules.mk @@ -2,20 +2,12 @@ MCU = atmega32u4 # Bootloader selection -# Teensy halfkay -# Pro Micro caterina -# Atmel DFU atmel-dfu -# LUFA DFU lufa-dfu -# QMK DFU qmk-dfu -# ATmega32A bootloadHID -# ATmega328P USBasp BOOTLOADER = caterina # Build Options # change yes to no to disable - # -BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration MOUSEKEY_ENABLE = no # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = no # Console for debug 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 00000000000..02bde2d2177 --- /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 00000000000..c77bbc756cd --- /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 00000000000..36b7ba9cbc9 --- /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 4ba28f26a86..98f8eab1a0f 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 adec3984bc3..06537cbadf5 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 d93ce1e5f47..cafa17827bd 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 31e0fcf2933..ff3294ba752 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/drashna/config.h b/keyboards/keebio/iris/keymaps/drashna/config.h index 49381b60a54..63f87b7c4e0 100644 --- a/keyboards/keebio/iris/keymaps/drashna/config.h +++ b/keyboards/keebio/iris/keymaps/drashna/config.h @@ -1,19 +1,18 @@ -/* -Copyright 2017 Danny Nguyen - -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 2020 Christopher Courtney, aka Drashna Jael're (@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 diff --git a/keyboards/keebio/iris/keymaps/drashna/keymap.c b/keyboards/keebio/iris/keymaps/drashna/keymap.c index edfcd23e795..bc34ba822f0 100644 --- a/keyboards/keebio/iris/keymaps/drashna/keymap.c +++ b/keyboards/keebio/iris/keymaps/drashna/keymap.c @@ -1,3 +1,19 @@ +/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@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 "drashna.h" /* diff --git a/keyboards/keebio/iris/keymaps/drashna_lp/config.h b/keyboards/keebio/iris/keymaps/drashna_lp/config.h index 5370d88ed4b..414acab8466 100644 --- a/keyboards/keebio/iris/keymaps/drashna_lp/config.h +++ b/keyboards/keebio/iris/keymaps/drashna_lp/config.h @@ -1,19 +1,18 @@ -/* -Copyright 2017 Danny Nguyen - -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 2020 Christopher Courtney, aka Drashna Jael're (@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 diff --git a/keyboards/keebio/iris/keymaps/drashna_old/config.h b/keyboards/keebio/iris/keymaps/drashna_old/config.h index 5adf014e356..f08b22dca07 100644 --- a/keyboards/keebio/iris/keymaps/drashna_old/config.h +++ b/keyboards/keebio/iris/keymaps/drashna_old/config.h @@ -1,19 +1,18 @@ -/* -Copyright 2017 Danny Nguyen - -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 2020 Christopher Courtney, aka Drashna Jael're (@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 diff --git a/keyboards/keebio/iris/keymaps/eosti/config.h b/keyboards/keebio/iris/keymaps/eosti/config.h index 01bb31a6e14..a7e52bf2291 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 34f75120270..c30e5c98679 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, //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ - _______, TMUX_WL, TMUX_WN,_______, KC_LBRC, KC_LPRN, KC_LCBR, _______, KC_RCBR, KC_RPRN, KC_RBRC, KC_NO, KC_NO, _______, + _______, 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, + //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + 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 0fc61a443c2..f62c9cb5ff6 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/keebio/levinson/keymaps/via/keymap.c b/keyboards/keebio/levinson/keymaps/via/keymap.c new file mode 100644 index 00000000000..f6504de3376 --- /dev/null +++ b/keyboards/keebio/levinson/keymaps/via/keymap.c @@ -0,0 +1,45 @@ +/* +Copyright 2020 Danny Nguyen +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_ortho_4x12( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + 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_ENT , + KC_GRV, KC_LCTL, KC_LALT, KC_LGUI, FN_MO13, KC_SPC, KC_SPC, FN_MO23, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), + + [1] = LAYOUT_ortho_4x12( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + BL_STEP, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),KC_HOME, KC_END, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ), + + [2] = LAYOUT_ortho_4x12( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ), + + [3] = LAYOUT_ortho_4x12( + _______, RESET, DEBUG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL , + _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/keebio/levinson/keymaps/via/rules.mk b/keyboards/keebio/levinson/keymaps/via/rules.mk new file mode 100644 index 00000000000..36b7ba9cbc9 --- /dev/null +++ b/keyboards/keebio/levinson/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/keebio/levinson/rev2/config.h b/keyboards/keebio/levinson/rev2/config.h index 5b1ae6fe1ec..5a01125527b 100644 --- a/keyboards/keebio/levinson/rev2/config.h +++ b/keyboards/keebio/levinson/rev2/config.h @@ -21,7 +21,7 @@ along with this program. If not, see . /* USB Device descriptor parameter */ #define VENDOR_ID 0xCB10 -#define PRODUCT_ID 0x1146 +#define PRODUCT_ID 0x2146 #define DEVICE_VER 0x0200 #define MANUFACTURER Keebio #define PRODUCT Levinson diff --git a/keyboards/keebio/levinson/rev3/config.h b/keyboards/keebio/levinson/rev3/config.h index da5f4e74173..45cff5d8bb3 100644 --- a/keyboards/keebio/levinson/rev3/config.h +++ b/keyboards/keebio/levinson/rev3/config.h @@ -19,10 +19,9 @@ along with this program. If not, see . #pragma once - /* USB Device descriptor parameter */ #define VENDOR_ID 0xCB10 -#define PRODUCT_ID 0x1146 +#define PRODUCT_ID 0x3146 #define DEVICE_VER 0x0300 #define MANUFACTURER Keebio #define PRODUCT Levinson diff --git a/keyboards/keebio/levinson/rules.mk b/keyboards/keebio/levinson/rules.mk index d80f94a294d..d2046720c88 100644 --- a/keyboards/keebio/levinson/rules.mk +++ b/keyboards/keebio/levinson/rules.mk @@ -19,7 +19,7 @@ BOOTMAGIC_ENABLE = no # 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 +COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality MIDI_ENABLE = no # MIDI controls diff --git a/keyboards/keebio/nyquist/keymaps/default/keymap.c b/keyboards/keebio/nyquist/keymaps/default/keymap.c index db4b53962b3..f93583d7c1e 100644 --- a/keyboards/keebio/nyquist/keymaps/default/keymap.c +++ b/keyboards/keebio/nyquist/keymaps/default/keymap.c @@ -94,7 +94,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+-------------+------+------+------+------+------| * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | | \ | | | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | |Enter | + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' @@ -103,7 +103,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, \ KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, \ KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, \ - _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),_______, _______, _______, \ + BL_STEP, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),KC_HOME,KC_END, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ ), @@ -115,7 +115,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+-------------+------+------+------+------+------| * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | |Enter | + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |Pg Up |Pg Dn | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' @@ -124,7 +124,7 @@ 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_BSPC, \ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, \ KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, \ - _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______, \ + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ ), diff --git a/keyboards/keebio/nyquist/keymaps/via/keymap.c b/keyboards/keebio/nyquist/keymaps/via/keymap.c index 43ce83bb14f..312e8c99c80 100644 --- a/keyboards/keebio/nyquist/keymaps/via/keymap.c +++ b/keyboards/keebio/nyquist/keymaps/via/keymap.c @@ -1,48 +1,46 @@ +/* +Copyright 2020 Danny Nguyen +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] = { - -/* Qwerty - * ,-----------------------------------------------------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | S | D | F | G | H | J | K | L | ; | " | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | - * `-----------------------------------------------------------------------------------' - */ -[0] = LAYOUT( - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, - 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_ENT , - KC_NO, KC_LCTL, KC_LALT, KC_LGUI, KC_NO, KC_SPC, KC_SPC, KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT -), -[1] = LAYOUT( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - 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( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS -), -[3] = LAYOUT( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS -), - + [0] = LAYOUT_ortho_5x12( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, + 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_ENT , + MO(3), KC_LCTL, KC_LALT, KC_LGUI, FN_MO13, KC_SPC, KC_SPC, FN_MO23, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), + [1] = LAYOUT_ortho_5x12( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + BL_STEP, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),KC_HOME,KC_END, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ), + [2] = LAYOUT_ortho_5x12( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ), + [3] = LAYOUT_ortho_5x12( + _______, RESET, DEBUG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) }; - diff --git a/keyboards/keebio/nyquist/rev2/config.h b/keyboards/keebio/nyquist/rev2/config.h index 2810bde7a2e..b0429f52669 100644 --- a/keyboards/keebio/nyquist/rev2/config.h +++ b/keyboards/keebio/nyquist/rev2/config.h @@ -19,7 +19,7 @@ along with this program. If not, see . /* USB Device descriptor parameter */ #define VENDOR_ID 0xCB10 -#define PRODUCT_ID 0x1156 +#define PRODUCT_ID 0x2156 #define DEVICE_VER 0x0200 #define MANUFACTURER Keebio #define PRODUCT The Nyquist Keyboard diff --git a/keyboards/keebio/nyquist/rev2/rules.mk b/keyboards/keebio/nyquist/rev2/rules.mk index 9735fbebdca..05c0f5ed034 100644 --- a/keyboards/keebio/nyquist/rev2/rules.mk +++ b/keyboards/keebio/nyquist/rev2/rules.mk @@ -18,7 +18,7 @@ BOOTMAGIC_ENABLE = no # 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 +COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality MIDI_ENABLE = no # MIDI controls diff --git a/keyboards/keebio/nyquist/rev3/config.h b/keyboards/keebio/nyquist/rev3/config.h index b2573d1dc3e..5d4000b46d3 100644 --- a/keyboards/keebio/nyquist/rev3/config.h +++ b/keyboards/keebio/nyquist/rev3/config.h @@ -19,7 +19,7 @@ along with this program. If not, see . /* USB Device descriptor parameter */ #define VENDOR_ID 0xCB10 -#define PRODUCT_ID 0x1156 +#define PRODUCT_ID 0x3156 #define DEVICE_VER 0x0300 #define MANUFACTURER Keebio #define PRODUCT The Nyquist Keyboard diff --git a/keyboards/keebio/nyquist/rev3/rules.mk b/keyboards/keebio/nyquist/rev3/rules.mk index d7db1800a06..16d445b6270 100644 --- a/keyboards/keebio/nyquist/rev3/rules.mk +++ b/keyboards/keebio/nyquist/rev3/rules.mk @@ -18,7 +18,7 @@ BOOTMAGIC_ENABLE = no # 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 +COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality MIDI_ENABLE = no # MIDI controls diff --git a/keyboards/keebio/viterbi/keymaps/drashna/config.h b/keyboards/keebio/viterbi/keymaps/drashna/config.h index 40a5bbd0e8e..5d7ffa8a1d5 100644 --- a/keyboards/keebio/viterbi/keymaps/drashna/config.h +++ b/keyboards/keebio/viterbi/keymaps/drashna/config.h @@ -1,19 +1,18 @@ -/* -Copyright 2017 Danny Nguyen - -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 2020 Christopher Courtney, aka Drashna Jael're (@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 diff --git a/keyboards/keebio/viterbi/keymaps/drashna/keymap.c b/keyboards/keebio/viterbi/keymaps/drashna/keymap.c index 3b213418d63..99e06b4defc 100644 --- a/keyboards/keebio/viterbi/keymaps/drashna/keymap.c +++ b/keyboards/keebio/viterbi/keymaps/drashna/keymap.c @@ -1,3 +1,19 @@ +/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@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 "drashna.h" // Fillers to make layering more clear diff --git a/keyboards/keyhive/maypad/info.json b/keyboards/keyhive/maypad/info.json index 89367173109..df059775b3b 100644 --- a/keyboards/keyhive/maypad/info.json +++ b/keyboards/keyhive/maypad/info.json @@ -1,16 +1,19 @@ { - "keyboard_name": "maypad", - "url": "https://keyhive.xyz/shop/may-pad", - "maintainer": "codybender", - "width": 4, - "height": 5, + "keyboard_name": "maypad", + "url": "https://keyhive.xyz/shop/may-pad", + "maintainer": "codybender", + "width": 4, + "height": 5, "layouts": { "LAYOUT_numpad_5x4": { "layout": [{"label":"Num Lock", "x":0, "y":0}, {"label":"/", "x":1, "y":0}, {"label":"*", "x":2, "y":0}, {"label":"-", "x":3, "y":0}, {"label":"7", "x":0, "y":1}, {"label":"8", "x":1, "y":1}, {"label":"9", "x":2, "y":1}, {"label":"4", "x":0, "y":2}, {"label":"5", "x":1, "y":2}, {"label":"6", "x":2, "y":2}, {"label":"+", "x":3, "y":1, "h":2}, {"label":"1", "x":0, "y":3}, {"label":"2", "x":1, "y":3}, {"label":"3", "x":2, "y":3}, {"label":"0", "x":0, "y":4, "w":2}, {"label":".", "x":2, "y":4}, {"label":"Enter", "x":3, "y":3, "h":2}] }, + "LAYOUT_numpad_5x4_split_plus": { + "layout": [{"label":"Num Lock", "x":0, "y":0}, {"label":"/", "x":1, "y":0}, {"label":"*", "x":2, "y":0}, {"label":"=", "x":3, "y":0}, {"label":"7", "x":0, "y":1}, {"label":"8", "x":1, "y":1}, {"label":"9", "x":2, "y":1}, {"label":"+", "x":3, "y":1}, {"label":"4", "x":0, "y":2}, {"label":"5", "x":1, "y":2}, {"label":"6", "x":2, "y":2}, {"label":"-", "x":3, "y":1}, {"label":"1", "x":0, "y":3}, {"label":"2", "x":1, "y":3}, {"label":"3", "x":2, "y":3}, {"label":"0", "x":0, "y":4, "w":2}, {"label":".", "x":2, "y":4}, {"label":"Enter", "x":3, "y":3, "h":2}] + }, "LAYOUT_ortho_5x4": { "layout": [{"label":"Num Lock", "x":0, "y":0}, {"label":"/", "x":1, "y":0}, {"label":"*", "x":2, "y":0}, {"label":"-", "x":3, "y":0}, {"label":"7", "x":0, "y":1}, {"label":"8", "x":1, "y":1}, {"label":"9", "x":2, "y":1}, {"label":"+", "x":3, "y":1}, {"label":"4", "x":0, "y":2}, {"label":"5", "x":1, "y":2}, {"label":"6", "x":2, "y":2}, {"label":"+", "x":3, "y":2}, {"label":"1", "x":0, "y":3}, {"label":"2", "x":1, "y":3}, {"label":"3", "x":2, "y":3}, {"label":"Enter", "x":3, "y":3}, {"label":"0", "x":0, "y":4}, {"label":"00", "x":1, "y":4}, {"label":".", "x":2, "y":4}, {"label":"Enter", "x":3, "y":4}] } - + } } diff --git a/keyboards/keyhive/maypad/keymaps/eosti/config.h b/keyboards/keyhive/maypad/keymaps/eosti/config.h new file mode 100644 index 00000000000..8e6a83b791a --- /dev/null +++ b/keyboards/keyhive/maypad/keymaps/eosti/config.h @@ -0,0 +1,17 @@ +/* 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 200 diff --git a/keyboards/keyhive/maypad/keymaps/eosti/keymap.c b/keyboards/keyhive/maypad/keymaps/eosti/keymap.c new file mode 100644 index 00000000000..e4d4b87b7a0 --- /dev/null +++ b/keyboards/keyhive/maypad/keymaps/eosti/keymap.c @@ -0,0 +1,62 @@ +/* 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, + _MOD +}; + +// Keymaps Shortcut Defines + +#define ESC_MOD LT(_MOD, KC_ESC) +#define MOD TG(_MOD) +#define SQRT RALT(KC_V) // (macOS) Prints √ +#define NEQL RALT(KC_EQL) // (macOS) Prints ≠ +#define PM RALT(KC_PLUS) // (macOS) Prints ± +#define PI RALT(KC_P) // (macOS) Prints π + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_QWERTY] = LAYOUT_numpad_5x4_split_plus( + // ┌────────┬────────┬────────┬────────┐ + ESC_MOD, KC_PSLS, KC_PAST, KC_PEQL, + // ├────────┼────────┼────────┼────────┤ + KC_P7, KC_P8, KC_P9, KC_PPLS, + // ├────────┼────────┼────────┼────────┤ + KC_P4, KC_P5, KC_P6, KC_PMNS, + // ├────────┼────────┼────────┼────────┤ + KC_P1, KC_P2, KC_P3, + // ├─────────────────┼────────┼ ┤ + KC_P0, KC_PDOT, KC_PENT + // ├─────────────────┴────────┴────────┘ + ), + [_MOD] = LAYOUT_numpad_5x4_split_plus( + // ┌────────┬────────┬────────┬────────┐ + MOD, SQRT, KC_CIRC, NEQL, + // ├────────┼────────┼────────┼────────┤ + KC_P7, KC_P8, KC_P9, PM, + // ├────────┼────────┼────────┼────────┤ + KC_P4, KC_P5, KC_P6, PI, + // ├────────┼────────┼────────┼────────┤ + KC_P1, KC_P2, KC_P3, + // ├─────────────────┼────────┼ ┤ + KC_P0, KC_BSPC, KC_TAB + // ├─────────────────┴────────┴────────┘ + ) + +}; diff --git a/keyboards/keyhive/maypad/keymaps/eosti/readme.md b/keyboards/keyhive/maypad/keymaps/eosti/readme.md new file mode 100644 index 00000000000..5b3ee3bc825 --- /dev/null +++ b/keyboards/keyhive/maypad/keymaps/eosti/readme.md @@ -0,0 +1,6 @@ +# EosTi's Maypad Layout + +## Features +* Split-plus layout (who needs a massive plus anyway) +* Tapdance ESC/mod key, giving access to special characters and mod functions +* Standard numpad base layer diff --git a/keyboards/keyhive/maypad/keymaps/eosti/rules.mk b/keyboards/keyhive/maypad/keymaps/eosti/rules.mk new file mode 100644 index 00000000000..4c1902ee995 --- /dev/null +++ b/keyboards/keyhive/maypad/keymaps/eosti/rules.mk @@ -0,0 +1,3 @@ +CONSOLE_ENABLE = no +COMMAND_ENABLE = no +LTO_ENABLE = yes diff --git a/keyboards/keyhive/maypad/maypad.h b/keyboards/keyhive/maypad/maypad.h index 42c71f41638..ac576f99ead 100644 --- a/keyboards/keyhive/maypad/maypad.h +++ b/keyboards/keyhive/maypad/maypad.h @@ -46,6 +46,20 @@ { KC_NO, k41, k42, k43 } \ } +#define LAYOUT_numpad_5x4_split_plus( \ + k00, k01, k02, k03, \ + k10, k11, k12, k13, \ + k20, k21, k22, k23, \ + k30, k31, k32, \ + k41, k42, k43 \ +) { \ + { k00, k01, k02, k03 }, \ + { k10, k11, k12, k13 }, \ + { k20, k21, k22, k23 }, \ + { k30, k31, k32, KC_NO }, \ + { KC_NO, k41, k42, k43 } \ +} + #define LAYOUT_ortho_5x4( \ k00, k01, k02, k03, \ k10, k11, k12, k13, \ diff --git a/keyboards/keyhive/maypad/readme.md b/keyboards/keyhive/maypad/readme.md index 3467827b6d6..62db1a2f414 100644 --- a/keyboards/keyhive/maypad/readme.md +++ b/keyboards/keyhive/maypad/readme.md @@ -10,4 +10,4 @@ Make example for this keyboard (after setting up your build environment): make keyhive/maypad: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). \ No newline at end of file +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/kyria/keymaps/drashna/config.h b/keyboards/kyria/keymaps/drashna/config.h index 5e9d8b010eb..1af947e7361 100644 --- a/keyboards/kyria/keymaps/drashna/config.h +++ b/keyboards/kyria/keymaps/drashna/config.h @@ -1,4 +1,4 @@ -/* Copyright 2019 Thomas Baart +/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@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/kyria/keymaps/drashna/keymap.c b/keyboards/kyria/keymaps/drashna/keymap.c index 98afff19f9f..08f32812e60 100644 --- a/keyboards/kyria/keymaps/drashna/keymap.c +++ b/keyboards/kyria/keymaps/drashna/keymap.c @@ -1,3 +1,19 @@ +/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@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 "drashna.h" uint8_t is_master; diff --git a/keyboards/launchpad/keymaps/drashna/config.h b/keyboards/launchpad/keymaps/drashna/config.h new file mode 100644 index 00000000000..212b1da805e --- /dev/null +++ b/keyboards/launchpad/keymaps/drashna/config.h @@ -0,0 +1,31 @@ +/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@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 + +/* Underlight Configuration */ +#undef RGB_DI_PIN +#define RGB_DI_PIN F5 +#define RGBLIGHT_ANIMATIONS +#undef RGBLED_NUM +#define RGBLED_NUM 8 // Number of LEDs +#define RGBLIGHT_HUE_STEP 10 +#define RGBLIGHT_SAT_STEP 17 +#define RGBLIGHT_VAL_STEP 17 + +#define DRIVER_LED_TOTAL RGBLED_NUM +#define B7_AUDIO +#define AUDIO_CLICKY diff --git a/keyboards/launchpad/keymaps/drashna/keymap.c b/keyboards/launchpad/keymaps/drashna/keymap.c new file mode 100644 index 00000000000..f8e4d1a4147 --- /dev/null +++ b/keyboards/launchpad/keymaps/drashna/keymap.c @@ -0,0 +1,107 @@ +/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@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 QMK_KEYBOARD_H + +enum local_layers { + _QWERTY, + _RGB, + _FUNC, +}; + +// Defines for task manager and such +#define CALTDEL LCTL(LALT(KC_DEL)) +#define TSKMGR LCTL(LSFT(KC_ESC)) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Qwerty + * ,-------------. + * | 1 | 2 | + * |------+------| + * | 3 | 4 | + * |------+------| + * | 5 | 6 | + * |------+------| + * | FUNC | RGB | + * `-------------' + */ + [_QWERTY] = LAYOUT( \ + KC_1, KC_2, \ + KC_3, KC_4, \ + KC_5, KC_6, \ + MO(_FUNC), TG(_RGB) \ + ), + + /* RGB + * ,-------------. + * | Mode-| Mode+| + * |------+------| + * | HUE- | HUE+ | + * |------+------| + * | SAT- | SAT+ | + * |------+------| + * |RGBTOG| | + * `-------------' + */ + [_RGB] = LAYOUT( \ + RGB_RMOD, RGB_MOD, \ + RGB_HUD, RGB_HUI, \ + RGB_SAD, RGB_SAI, \ + RGB_TOG, KC_TRNS \ + ), + + /* Function + * ,-------------. + * | Q |CALDEL| + * |------+------| + * | A |TSKMGR| + * |------+------| + * | Z | X | + * |------+------| + * | | C | + * `-------------' + */ + [_FUNC] = LAYOUT( \ + KC_Q, CALTDEL, \ + KC_A, TSKMGR, \ + KC_Z, KC_X, \ + _______, RESET \ + ) + +}; + + + + +#ifdef RGB_MATRIX_ENABLE + led_config_t g_led_config = { + { + { 7, 0 }, + { 6, 1 }, + { 5, 2 }, + { 4, 3 }, + },{ + { 121, 2 }, { 121, 23 }, + { 121, 41 }, { 121, 60 }, + { 103, 2 }, { 103, 23 }, + { 103, 41 }, { 103, 60 }, + },{ + 1, 1, 1, 1, + 1, 1, 1, 1, + } + }; +#endif diff --git a/keyboards/launchpad/keymaps/drashna/rules.mk b/keyboards/launchpad/keymaps/drashna/rules.mk new file mode 100644 index 00000000000..463b8559916 --- /dev/null +++ b/keyboards/launchpad/keymaps/drashna/rules.mk @@ -0,0 +1,6 @@ +BOOTLOADER = atmel-dfu + +RGBLIGHT_ENABLE = no +AUDIO_ENABLE = no +BOOTMAGIC_ENABLE = lite +RGB_MATRIX_ENABLE = WS2812 diff --git a/keyboards/melgeek/mj63/config.h b/keyboards/melgeek/mj63/config.h new file mode 100644 index 00000000000..452b1c8728e --- /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 00000000000..f608b984e2b --- /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 00000000000..2829ae8fc96 --- /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 00000000000..37e25a83493 --- /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 00000000000..36b7ba9cbc9 --- /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 00000000000..8b1ff386511 --- /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 00000000000..1b12b7b47de --- /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 00000000000..59f8b5417c3 --- /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 00000000000..4cd8d6a9dc1 --- /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 00000000000..e9f75739c6b --- /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 00000000000..998f1275a47 --- /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/melgeek/mj64/config.h b/keyboards/melgeek/mj64/config.h new file mode 100644 index 00000000000..29cb95f171b --- /dev/null +++ b/keyboards/melgeek/mj64/config.h @@ -0,0 +1,51 @@ +/* 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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xEDED +#define PRODUCT_ID 0x6064 +#define DEVICE_VER 0x0001 +#define MANUFACTURER MelGeek +#define PRODUCT MJ64 + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 14 + +/* 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 diff --git a/keyboards/melgeek/mj64/info.json b/keyboards/melgeek/mj64/info.json new file mode 100644 index 00000000000..a9a8a5040b7 --- /dev/null +++ b/keyboards/melgeek/mj64/info.json @@ -0,0 +1,81 @@ +{ + "keyboard_name": "MJ64", + "url": "", + "maintainer": "melgeek001365", + "width": 15, + "height": 5, + "layouts": { + "LAYOUT_64_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":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}, + {"x":2, "y":3}, + {"x":3, "y":3}, + {"x":4, "y":3}, + {"x":5, "y":3}, + {"x":6, "y":3}, + {"x":7, "y":3}, + {"x":8, "y":3}, + {"x":9, "y":3}, + {"x":10, "y":3}, + {"x":11, "y":3}, + {"x":12, "y":3}, + {"x":13, "y":3}, + {"x":14, "y":3}, + + {"x":0, "y":4, "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/mj64/keymaps/default/keymap.c b/keyboards/melgeek/mj64/keymaps/default/keymap.c new file mode 100644 index 00000000000..6f4d66c52b5 --- /dev/null +++ b/keyboards/melgeek/mj64/keymaps/default/keymap.c @@ -0,0 +1,34 @@ +/* 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_64_ansi( /* Base */ + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_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_BSLASH, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_DEL, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT + ), + [1] = LAYOUT_64_ansi( /* FN */ + KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, + _______, RGB_TOG, _______, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, KC_PSCR, KC_SLCK, KC_PAUS, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, RGB_SPD, KC_HOME, KC_PGUP, EEP_RST, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, KC_INS, KC_END, KC_PGDN, KC_VOLU, KC_MUTE, + _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT + ) +}; diff --git a/keyboards/melgeek/mj64/keymaps/via/keymap.c b/keyboards/melgeek/mj64/keymaps/via/keymap.c new file mode 100644 index 00000000000..79a58b49d4a --- /dev/null +++ b/keyboards/melgeek/mj64/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_64_ansi( /* Base */ + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_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_BSLASH, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_DEL, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT + ), + [1] = LAYOUT_64_ansi( /* FN */ + KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, + _______, RGB_TOG, _______, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, KC_PSCR, KC_SLCK, KC_PAUS, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, RGB_SPD, KC_HOME, KC_PGUP, EEP_RST, + _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, KC_INS, KC_END, KC_PGDN, KC_VOLU, KC_MUTE, + _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT + ), + [2] = LAYOUT_64_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT_64_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/melgeek/mj64/keymaps/via/rules.mk b/keyboards/melgeek/mj64/keymaps/via/rules.mk new file mode 100644 index 00000000000..36b7ba9cbc9 --- /dev/null +++ b/keyboards/melgeek/mj64/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/melgeek/mj64/mj64.c b/keyboards/melgeek/mj64/mj64.c new file mode 100644 index 00000000000..8e57f682327 --- /dev/null +++ b/keyboards/melgeek/mj64/mj64.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 "mj64.h" diff --git a/keyboards/melgeek/mj64/mj64.h b/keyboards/melgeek/mj64/mj64.h new file mode 100644 index 00000000000..a2f9a5865f9 --- /dev/null +++ b/keyboards/melgeek/mj64/mj64.h @@ -0,0 +1,36 @@ + +/* 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_64_ansi( \ + 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, K3A, 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, K3A, K3B, K3C, K3D }, \ + { K40, K41, K42, XXX, XXX, K45, XXX, XXX, XXX, K49, K4A, K4B, K4C, K4D } \ +} diff --git a/keyboards/melgeek/mj64/readme.md b/keyboards/melgeek/mj64/readme.md new file mode 100644 index 00000000000..933115ae3ae --- /dev/null +++ b/keyboards/melgeek/mj64/readme.md @@ -0,0 +1,16 @@ +# MelGeek MJ64 + +![MJ64](https://cdn.shopifycdn.net/s/files/1/0078/2863/5712/products/1ecb2c575968e4a661825ad3ec97a1ae_1024x1024@2x.jpg?v=1600672890) + +A hotswap 60% RGB Custom Mechanical keyboard with arrow. + +* Keyboard Maintainer: [melgeek001365](https://github.com/melgeek001365) +* Hardware Supported: MJ64 V1.0.2 20200612 +* Hardware Availability: [MelGeek](https://www.melgeek.com/) + +Make example for this keyboard (after setting up your build environment): + + make melgeek/mj64/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/mj64/rev1/config.h b/keyboards/melgeek/mj64/rev1/config.h new file mode 100644 index 00000000000..fb45ef3582a --- /dev/null +++ b/keyboards/melgeek/mj64/rev1/config.h @@ -0,0 +1,39 @@ +/* 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 + +/* + * 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 + +#define DRIVER_1_LED_TOTAL 64 +#define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL +#define DRIVER_INDICATOR_LED_TOTAL 0 diff --git a/keyboards/melgeek/mj64/rev1/rev1.c b/keyboards/melgeek/mj64/rev1/rev1.c new file mode 100644 index 00000000000..e01765b6945 --- /dev/null +++ b/keyboards/melgeek/mj64/rev1/rev1.c @@ -0,0 +1,127 @@ +/* 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 "mj64.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, CS21_SW9, CS20_SW9, CS19_SW9}, /* RGB45 */ + {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, CS27_SW1, CS26_SW1, CS25_SW1}, /* 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, CS27_SW7, CS26_SW7, CS25_SW7}, /* RGB61 */ + {0, CS27_SW8, CS26_SW8, CS25_SW8}, /* RGB62 */ + {0, CS27_SW9, CS26_SW9, CS25_SW9}, /* RGB63 */ + {0, CS30_SW1, CS29_SW1, CS28_SW1}, /* RGB64 */ +}; + +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 */ + { 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41 }, /* R3 */ + { 62, 61, 60, NO_LED, 64, 63, 65, NO_LED, NO_LED, 59, 58, 57, 56, 55 }, /* 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}, {208, 48}, + {0, 64}, {16, 64}, {32, 64}, {48, 64}, {64, 64}, {96, 64}, {112, 64}, {128, 64}, {144, 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, + } +}; + +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/mj64/rev1/rules.mk b/keyboards/melgeek/mj64/rev1/rules.mk new file mode 100644 index 00000000000..6893fe2ef47 --- /dev/null +++ b/keyboards/melgeek/mj64/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 = 64_ansi diff --git a/keyboards/melgeek/mj64/rev2/config.h b/keyboards/melgeek/mj64/rev2/config.h new file mode 100644 index 00000000000..8af6833b218 --- /dev/null +++ b/keyboards/melgeek/mj64/rev2/config.h @@ -0,0 +1,39 @@ +/* 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 + +/* + * 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 + +#define DRIVER_1_LED_TOTAL 66 +#define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL +#define DRIVER_INDICATOR_LED_TOTAL 0 diff --git a/keyboards/melgeek/mj64/rev2/rev2.c b/keyboards/melgeek/mj64/rev2/rev2.c new file mode 100644 index 00000000000..c5334d4487c --- /dev/null +++ b/keyboards/melgeek/mj64/rev2/rev2.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 "mj64.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 */ + {1, 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, CS21_SW9, CS20_SW9, CS19_SW9}, /* RGB45 */ + {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 */ + { 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41 }, /* R3 */ + { 62, 61, 60, NO_LED, 64, 63, 65, NO_LED, NO_LED, 59, 58, 57, 56, 55 }, /* 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}, {208, 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, 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/mj64/rev2/rules.mk b/keyboards/melgeek/mj64/rev2/rules.mk new file mode 100644 index 00000000000..6893fe2ef47 --- /dev/null +++ b/keyboards/melgeek/mj64/rev2/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 = 64_ansi diff --git a/keyboards/melgeek/z70ultra/config.h b/keyboards/melgeek/z70ultra/config.h new file mode 100644 index 00000000000..d5a9d0a8944 --- /dev/null +++ b/keyboards/melgeek/z70ultra/config.h @@ -0,0 +1,53 @@ +/* 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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xEDED +#define PRODUCT_ID 0x6570 +#define DEVICE_VER 0x0001 +#define MANUFACTURER MelGeek +#define PRODUCT Z70Ultra + +/* 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 69 +#define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL +#define DRIVER_INDICATOR_LED_TOTAL 6 diff --git a/keyboards/melgeek/z70ultra/info.json b/keyboards/melgeek/z70ultra/info.json new file mode 100644 index 00000000000..9959e638498 --- /dev/null +++ b/keyboards/melgeek/z70ultra/info.json @@ -0,0 +1,160 @@ +{ + "keyboard_name": "Z70Ultra", + "url": "", + "maintainer": "melgeek001365", + "width": 16, + "height": 5, + "layouts": { + "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_ansi_split_space": { + "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":3}, + {"x":6.75, "y":4, "w":3}, + {"x":9.75, "y":4, "w":1.5}, + {"x":11.25, "y":4, "w":1.25}, + {"x":13, "y":4}, + {"x":14, "y":4}, + {"x":15, "y":4} + ] + } + } +} diff --git a/keyboards/melgeek/z70ultra/keymaps/default/keymap.c b/keyboards/melgeek/z70ultra/keymaps/default/keymap.c new file mode 100644 index 00000000000..e954776dbef --- /dev/null +++ b/keyboards/melgeek/z70ultra/keymaps/default/keymap.c @@ -0,0 +1,34 @@ +/* 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_65_ansi_blocker( /* Base */ + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_65_ansi_blocker( /* 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, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, KC_PSCR, KC_SLCK, KC_PAUS, RESET, _______, + _______, RGB_SPI, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, EEP_RST, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, KC_VOLU, _______, + _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT + ), +}; diff --git a/keyboards/melgeek/z70ultra/keymaps/via/keymap.c b/keyboards/melgeek/z70ultra/keymaps/via/keymap.c new file mode 100644 index 00000000000..a822ecdefae --- /dev/null +++ b/keyboards/melgeek/z70ultra/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_65_ansi_blocker( /* Base */ + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_65_ansi_blocker( /* 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, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, KC_PSCR, KC_SLCK, KC_PAUS, RESET, _______, + _______, RGB_SPI, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, EEP_RST, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, KC_VOLU, _______, + _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT + ), + [2] = LAYOUT_65_ansi_blocker( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT_65_ansi_blocker( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/melgeek/z70ultra/keymaps/via/rules.mk b/keyboards/melgeek/z70ultra/keymaps/via/rules.mk new file mode 100644 index 00000000000..36b7ba9cbc9 --- /dev/null +++ b/keyboards/melgeek/z70ultra/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/melgeek/z70ultra/readme.md b/keyboards/melgeek/z70ultra/readme.md new file mode 100644 index 00000000000..f772fcf0693 --- /dev/null +++ b/keyboards/melgeek/z70ultra/readme.md @@ -0,0 +1,15 @@ +# Z70 Ultra + +![z70ultra](https://cdn.shopify.cn/s/files/1/0078/2863/5712/products/7aef4938a6ebf273c53516f8f9579858_1024x1024@2x.jpg?v=1574605157) + +A hotswap 65% RGB Custom Mechanical keyboard. + +* Keyboard Maintainer: [MelGeek](https://github.com/melgeek001365) +* Hardware Supported: Z70 Ultra V1.4 20200422 +* Hardware Availability: [MelGeek](https://www.melgeek.com/) + +Make example for this keyboard (after setting up your build environment): + + make melgeek/z70ultra/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/z70ultra/rev1/config.h b/keyboards/melgeek/z70ultra/rev1/config.h new file mode 100644 index 00000000000..45930517588 --- /dev/null +++ b/keyboards/melgeek/z70ultra/rev1/config.h @@ -0,0 +1,37 @@ +/* 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 + +/* key matrix size */ +#define MATRIX_ROWS 6 +#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, B13, B14, B15, A3, B9 } +#define MATRIX_COL_PINS { B11, B10, B1, A10, B5, B4, B3, A15, A2, A1, A0, C15, C14, C13 } +#define UNUSED_PINS + diff --git a/keyboards/melgeek/z70ultra/rev1/rules.mk b/keyboards/melgeek/z70ultra/rev1/rules.mk new file mode 100644 index 00000000000..cd262021bc3 --- /dev/null +++ b/keyboards/melgeek/z70ultra/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 = 65_ansi_blocker diff --git a/keyboards/melgeek/z70ultra/rules.mk b/keyboards/melgeek/z70ultra/rules.mk new file mode 100644 index 00000000000..8cc384b91f7 --- /dev/null +++ b/keyboards/melgeek/z70ultra/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = melgeek/z70ultra/rev1 diff --git a/keyboards/melgeek/z70ultra/z70ultra.c b/keyboards/melgeek/z70ultra/z70ultra.c new file mode 100644 index 00000000000..a98edd9390a --- /dev/null +++ b/keyboards/melgeek/z70ultra/z70ultra.c @@ -0,0 +1,181 @@ +/* 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 "z70ultra.h" + + +#ifdef RGB_MATRIX_ENABLE +const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { + {0, CS28_SW1, CS30_SW1, CS29_SW1}, /* RGB10 */ + {0, CS28_SW2, CS30_SW2, CS29_SW2}, /* RGB11 */ + {0, CS28_SW3, CS30_SW3, CS29_SW3}, /* RGB12 */ + {0, CS28_SW4, CS30_SW4, CS29_SW4}, /* RGB13 */ + {0, CS28_SW5, CS30_SW5, CS29_SW5}, /* RGB14 */ + {0, CS28_SW6, CS30_SW6, CS29_SW6}, /* RGB15 */ + {0, CS28_SW7, CS30_SW7, CS29_SW7}, /* RGB16 */ + {0, CS28_SW8, CS30_SW8, CS29_SW8}, /* RGB17 */ + {0, CS28_SW9, CS30_SW9, CS29_SW9}, /* RGB18 */ + {0, CS31_SW1, CS33_SW1, CS32_SW1}, /* RGB28 */ + {0, CS31_SW2, CS33_SW2, CS32_SW2}, /* RGB29 */ + {0, CS31_SW3, CS33_SW3, CS32_SW3}, /* RGB30 */ + {0, CS31_SW4, CS33_SW4, CS32_SW4}, /* RGB31 */ + {0, CS31_SW5, CS33_SW5, CS32_SW5}, /* RGB32 */ + {0, CS31_SW6, CS33_SW6, CS32_SW6}, /* RGB33 */ + {0, CS25_SW1, CS27_SW1, CS26_SW1}, /* RGB1 */ + {0, CS25_SW2, CS27_SW2, CS26_SW2}, /* RGB2 */ + {0, CS25_SW3, CS27_SW3, CS26_SW3}, /* RGB3 */ + {0, CS25_SW4, CS27_SW4, CS26_SW4}, /* RGB4 */ + {0, CS25_SW5, CS27_SW5, CS26_SW5}, /* RGB5 */ + {0, CS25_SW6, CS27_SW6, CS26_SW6}, /* RGB6 */ + {0, CS25_SW7, CS27_SW7, CS26_SW7}, /* RGB7 */ + {0, CS25_SW8, CS27_SW8, CS26_SW8}, /* RGB8 */ + {0, CS25_SW9, CS27_SW9, CS26_SW9}, /* RGB9 */ + {0, CS34_SW1, CS36_SW1, CS35_SW1}, /* RGB46 */ + {0, CS34_SW2, CS36_SW2, CS35_SW2}, /* RGB47 */ + {0, CS34_SW3, CS36_SW3, CS35_SW3}, /* RGB48 */ + {0, CS34_SW4, CS36_SW4, CS35_SW4}, /* RGB49 */ + {0, CS34_SW5, CS36_SW5, CS35_SW5}, /* RGB50 */ + {0, CS31_SW7, CS33_SW7, CS32_SW7}, /* RGB34 */ + {0, CS22_SW1, CS24_SW1, CS23_SW1}, /* RGB37 */ + {0, CS22_SW2, CS24_SW2, CS23_SW2}, /* RGB38 */ + {0, CS22_SW3, CS24_SW3, CS23_SW3}, /* RGB39 */ + {0, CS22_SW4, CS24_SW4, CS23_SW4}, /* RGB40 */ + {0, CS22_SW5, CS24_SW5, CS23_SW5}, /* RGB41 */ + {0, CS22_SW6, CS24_SW6, CS23_SW6}, /* RGB42 */ + {0, CS22_SW7, CS24_SW7, CS23_SW7}, /* RGB43 */ + {0, CS22_SW8, CS24_SW8, CS23_SW8}, /* RGB44 */ + {0, CS22_SW9, CS24_SW9, CS23_SW9}, /* RGB45 */ + {0, CS34_SW9, CS36_SW9, CS35_SW9}, /* RGB54 */ + {0, CS34_SW8, CS36_SW8, CS35_SW8}, /* RGB53 */ + {0, CS34_SW7, CS36_SW7, CS35_SW7}, /* RGB52 */ + {0, CS34_SW6, CS36_SW6, CS35_SW6}, /* RGB51 */ + {0, CS31_SW8, CS33_SW8, CS32_SW8}, /* RGB35 */ + {0, CS19_SW2, CS21_SW2, CS20_SW2}, /* RGB56 */ + {0, CS19_SW4, CS21_SW4, CS20_SW4}, /* RGB60 */ + {0, CS19_SW5, CS21_SW5, CS20_SW5}, /* RGB59 */ + {0, CS19_SW6, CS21_SW6, CS20_SW6}, /* RGB60 */ + {0, CS19_SW7, CS21_SW7, CS20_SW7}, /* RGB61 */ + {0, CS19_SW8, CS21_SW8, CS20_SW8}, /* RGB62 */ + {0, CS19_SW9, CS21_SW9, CS20_SW9}, /* RGB63 */ + {0, CS19_SW3, CS21_SW3, CS20_SW3}, /* RGB57 */ + {0, CS19_SW1, CS21_SW1, CS20_SW1}, /* RGB55 */ + {0, CS37_SW5, CS39_SW5, CS38_SW5}, /* RGB23 */ + {0, CS37_SW6, CS39_SW6, CS38_SW6}, /* RGB24 */ + {0, CS37_SW7, CS39_SW7, CS38_SW7}, /* RGB25 */ + {0, CS37_SW8, CS39_SW8, CS38_SW8}, /* RGB26 */ + {0, CS31_SW9, CS33_SW9, CS32_SW9}, /* RGB36 */ + + {0, CS6_SW1, CS8_SW1, CS7_SW1}, /* RGB64 */ + {0, CS6_SW3, CS8_SW3, CS7_SW3}, /* RGB66 */ + {0, CS6_SW4, CS8_SW4, CS7_SW4}, /* RGB67 */ + {0, CS6_SW5, CS8_SW5, CS7_SW5}, /* RGB69 */ + {0, CS6_SW6, CS8_SW6, CS7_SW6}, /* RGB70 */ + {0, CS6_SW2, CS8_SW2, CS7_SW2}, /* RGB65 */ + + {0, CS37_SW1, CS39_SW1, CS38_SW1}, /* RGB19 */ + {0, CS37_SW2, CS39_SW2, CS38_SW2}, /* RGB20 */ + {0, CS37_SW3, CS39_SW3, CS38_SW3}, /* RGB21 */ + {0, CS37_SW4, CS39_SW4, CS38_SW4}, /* RGB22 */ + {0, CS37_SW9, CS39_SW9, CS38_SW9}, /* RGB27 */ +}; +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 */ + { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, }, /* R1 */ + { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED, 42, }, /* R2 */ + { 44, NO_LED, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, NO_LED, }, /* R3 */ + { 58, 59, 60, NO_LED, 61, 62, 63, NO_LED, NO_LED, 64, 65, NO_LED, NO_LED, NO_LED, }, /* R4 */ + { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 14, 29, 56, 43, 57, 66, 67, 68, }, /* R5 */ + }, { + {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}, + {0, 64}, {16, 64}, {32, 64}, {48, 64}, {64, 64}, {80, 64}, {96, 64}, {112, 64}, + {0, 80}, {16, 80}, {32, 80}, {48, 80}, {64, 80}, {80, 80}, {96, 80}, {112, 80}, + }, { + 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, 4, 4, 4, 4, + } +}; + +const is31_led g_is31_indicator_leds[6] = { + {0, CS5_SW1, CS3_SW1, CS4_SW1}, /* RGB71 */ + {0, CS5_SW2, CS3_SW2, CS4_SW2}, /* RGB72 */ + {0, CS5_SW3, CS3_SW3, CS4_SW3}, /* RGB73 */ + {0, CS5_SW4, CS3_SW4, CS4_SW4}, /* RGB74 */ + {0, CS5_SW5, CS3_SW5, CS4_SW5}, /* RGB75 */ + {0, CS5_SW6, CS3_SW6, CS4_SW6}, /* RGB76 */ +}; + +bool led_update_kb(led_t led_state) { + if (led_update_user(led_state)) { + if (led_state.caps_lock) { + IS31FL3741_set_pwm_buffer(&g_is31_indicator_leds[2], 0xff, 0x00, 0x00); + IS31FL3741_set_pwm_buffer(&g_is31_indicator_leds[3], 0xff, 0x00, 0x00); + } else { + IS31FL3741_set_pwm_buffer(&g_is31_indicator_leds[2], 0x00, 0x00, 0x00); + IS31FL3741_set_pwm_buffer(&g_is31_indicator_leds[3], 0x00, 0x00, 0x00); + } + + if (led_state.num_lock) { + IS31FL3741_set_pwm_buffer(&g_is31_indicator_leds[1], 0x00, 0xff, 0x00); + IS31FL3741_set_pwm_buffer(&g_is31_indicator_leds[4], 0x00, 0xff, 0x00); + } else { + IS31FL3741_set_pwm_buffer(&g_is31_indicator_leds[1], 0x00, 0x00, 0x00); + IS31FL3741_set_pwm_buffer(&g_is31_indicator_leds[4], 0x00, 0x00, 0x00); + } + + if (led_state.scroll_lock) { + IS31FL3741_set_pwm_buffer(&g_is31_indicator_leds[0], 0x00, 0x00, 0xff); + IS31FL3741_set_pwm_buffer(&g_is31_indicator_leds[5], 0x00, 0x00, 0xff); + } else { + IS31FL3741_set_pwm_buffer(&g_is31_indicator_leds[0], 0x00, 0x00, 0x00); + IS31FL3741_set_pwm_buffer(&g_is31_indicator_leds[5], 0x00, 0x00, 0x00); + } + + // flush the indicator to the buffer + IS31FL3741_update_pwm_buffers(DRIVER_ADDR_1, DRIVER_ADDR_1); + } + return true; +} + +void matrix_init_kb(void) { + for (int i = 0; i < DRIVER_INDICATOR_LED_TOTAL; ++i) { + is31_led led = g_is31_indicator_leds[i]; + IS31FL3741_set_scaling_registers(&led, 0xFF, 0xFF, 0xFF); + } + + IS31FL3741_update_led_control_registers(DRIVER_ADDR_1, 0); + + matrix_init_user(); +} + +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(); +} +#endif diff --git a/keyboards/melgeek/z70ultra/z70ultra.h b/keyboards/melgeek/z70ultra/z70ultra.h new file mode 100644 index 00000000000..8f7a84584fa --- /dev/null +++ b/keyboards/melgeek/z70ultra/z70ultra.h @@ -0,0 +1,51 @@ +/* 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_65_ansi_blocker( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ + K40, K41, K42, K45, K49, K4A, K4C, K4D, K4E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, XXX, K2D }, \ + { K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, XXX }, \ + { K40, K41, K42, XXX, XXX, K45, XXX, XXX, XXX, K49, K4A, XXX, XXX, XXX }, \ + { XXX, XXX, XXX, XXX, XXX, XXX, K0E, K1E, K3D, K2E, K3E, K4C, K4D, K4E } \ +} + +#define LAYOUT_ansi_split_space( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ + K40, K41, K42, K44, K46, K49, K4A, K4C, K4D, K4E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, XXX, K2D }, \ + { K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, XXX }, \ + { K40, K41, K42, XXX, K44, XXX, K46, XXX, XXX, K49, K4A, XXX, XXX, XXX }, \ + { XXX, XXX, XXX, XXX, XXX, XXX, K0E, K1E, K3D, K2E, K3E, K4C, K4D, K4E } \ +} diff --git a/keyboards/minimacro5/keymaps/kabraxcis/keymap.c b/keyboards/minimacro5/keymaps/kabraxcis/keymap.c new file mode 100644 index 00000000000..a65bc9ff4a2 --- /dev/null +++ b/keyboards/minimacro5/keymaps/kabraxcis/keymap.c @@ -0,0 +1,62 @@ +/* Copyright 2020 dezlidezlidezli + * + * 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 layers { + _MAIN, +}; + +void encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { /* First encoder*/ + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } else if (index == 1) { /* Second encoder*/ + if (clockwise) { + tap_code(KC_3); + } else { + tap_code(KC_4); + } + } else if (index == 2) { /* Third encoder*/ + if (clockwise) { + tap_code(KC_5); + } else { + tap_code(KC_6); + } + } else if (index == 3) { /* Fourth encoder*/ + if (clockwise) { + tap_code(KC_7); + } else { + tap_code(KC_8); + } + } else if (index == 4) { /* Fifth encoder*/ + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } +} + +// +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_MAIN] = LAYOUT_ortho_1x5( + KC_CAPS, KC_MNXT, KC_MPLY, KC_MPRV, KC_CAPS + ) +}; diff --git a/keyboards/minimacro5/keymaps/voaraq/keymap.c b/keyboards/minimacro5/keymaps/voaraq/keymap.c new file mode 100644 index 00000000000..e0dca9777b2 --- /dev/null +++ b/keyboards/minimacro5/keymaps/voaraq/keymap.c @@ -0,0 +1,62 @@ +/* Copyright 2020 dezlidezlidezli + * + * 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 layers { + _MAIN, +}; + +void encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { /* First encoder*/ + if (clockwise) { + tap_code(KC_1); + } else { + tap_code(KC_2); + } + } else if (index == 1) { /* Second encoder*/ + if (clockwise) { + tap_code(KC_3); + } else { + tap_code(KC_4); + } + } else if (index == 2) { /* Third encoder*/ + if (clockwise) { + tap_code(KC_5); + } else { + tap_code(KC_6); + } + } else if (index == 3) { /* Fourth encoder*/ + if (clockwise) { + tap_code(KC_7); + } else { + tap_code(KC_8); + } + } else if (index == 4) { /* Fifth encoder*/ + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } +} + +// +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //buttion closest to usb is first + [_MAIN] = LAYOUT_ortho_1x5( + KC_MSEL, KC_MPRV, KC_MNXT, KC_MPLY, KC_MUTE + ) +}; diff --git a/keyboards/moonlander/config.h b/keyboards/moonlander/config.h index b77fcbd1e04..d1c685280f9 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 95b05a5a61b..576aae9f52f 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 67a2cd53a8e..6d98a8607e4 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/keymaps/drashna/config.h b/keyboards/moonlander/keymaps/drashna/config.h index dd49eaf4b4c..e022722fecd 100644 --- a/keyboards/moonlander/keymaps/drashna/config.h +++ b/keyboards/moonlander/keymaps/drashna/config.h @@ -1,4 +1,4 @@ -/* Copyright 2020 Drashna Jael're +/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@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,7 +15,8 @@ */ - #pragma once #define TAPPING_TERM_PER_KEY +#define WAIT_FOR_USB +// #define NO_USB_STARTUP_CHECK diff --git a/keyboards/moonlander/keymaps/drashna/keymap.c b/keyboards/moonlander/keymaps/drashna/keymap.c index b8754673be1..7daa5248f38 100644 --- a/keyboards/moonlander/keymaps/drashna/keymap.c +++ b/keyboards/moonlander/keymaps/drashna/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2020 Drashna Jael're +/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@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 @@ -14,8 +14,6 @@ * along with this program. If not, see . */ - - #include "drashna.h" #ifndef UNICODE_ENABLE diff --git a/keyboards/moonlander/keymaps/shahn-neo/config.h b/keyboards/moonlander/keymaps/shahn-neo/config.h new file mode 100644 index 00000000000..1fbac325174 --- /dev/null +++ b/keyboards/moonlander/keymaps/shahn-neo/config.h @@ -0,0 +1,19 @@ +/* Copyright 2020 Sönke Hahn + * + * 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 ORYX_CONFIGURATOR diff --git a/keyboards/moonlander/keymaps/shahn-neo/keymap.c b/keyboards/moonlander/keymaps/shahn-neo/keymap.c new file mode 100644 index 00000000000..27ccdbb6292 --- /dev/null +++ b/keyboards/moonlander/keymaps/shahn-neo/keymap.c @@ -0,0 +1,121 @@ +/* Copyright 2020 Sönke Hahn + * + * 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 "version.h" + +enum layers { + BASE, // default layer + L_3, + L_4, +}; + +enum custom_keycodes { + a_umlaut = ML_SAFE_RANGE, + o_umlaut, + u_umlaut, + eszett, +}; + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [BASE] = LAYOUT_moonlander( + XXXXXXX, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , XXXXXXX, XXXXXXX, KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , XXXXXXX, + KC_TAB , KC_X , KC_V , KC_L , KC_C , KC_W , XXXXXXX, XXXXXXX, KC_K , KC_H , KC_G , KC_F , KC_Q , eszett , + XXXXXXX, KC_U , KC_I , KC_A , KC_E , KC_O , XXXXXXX, XXXXXXX, KC_S , KC_N , KC_R , KC_T , KC_D , KC_Y , + XXXXXXX, u_umlaut, o_umlaut, a_umlaut, KC_P , KC_Z , KC_B , KC_M , KC_COMM, KC_DOT , KC_J , XXXXXXX, + XXXXXXX, XXXXXXX , XXXXXXX , KC_LGUI , MO(L_4), XXXXXXX, XXXXXXX, MO(L_4), KC_RGUI, XXXXXXX, XXXXXXX, XXXXXXX, + KC_LCTL, KC_LSFT, MO(L_3), MO(L_3), KC_RSFT, KC_SPC + ), + + [L_3] = LAYOUT_moonlander( + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, KC_UNDS, KC_LBRC, KC_RBRC, KC_CIRC, XXXXXXX, XXXXXXX, KC_EXLM, KC_LABK, KC_RABK, KC_EQL , KC_AMPR, XXXXXXX, + XXXXXXX, KC_BSLS, KC_SLSH, KC_LCBR, KC_RCBR, KC_ASTR, XXXXXXX, XXXXXXX, KC_QUES, KC_LPRN, KC_RPRN, KC_MINS, KC_COLN, KC_AT , + XXXXXXX, KC_HASH, KC_DLR , KC_PIPE, KC_TILD, KC_GRV , KC_PLUS, KC_PERC, KC_DQUO, KC_QUOT, KC_SCLN, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX + ), + + [L_4] = LAYOUT_moonlander( + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, KC_PGUP, KC_BSPC, KC_UP , KC_DEL , KC_PGDN, XXXXXXX, XXXXXXX, XXXXXXX, KC_7 , KC_8 , KC_9 , XXXXXXX, XXXXXXX, + XXXXXXX, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END , XXXXXXX, XXXXXXX, XXXXXXX, KC_4 , KC_5 , KC_6 , XXXXXXX, XXXXXXX, + XXXXXXX, KC_ESC , KC_TAB , XXXXXXX, KC_ENT , XXXXXXX, XXXXXXX, KC_1 , KC_2 , KC_3 , XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_0 + ), +}; + +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; +} + +// only works after executing +// $ xmodmap -e "keycode 138 = Multi_key" +#define compose_key SS_TAP(X_MENU) + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + switch (keycode) { + case a_umlaut: + SEND_STRING(compose_key "\"a"); + return false; + case o_umlaut: + SEND_STRING(compose_key "\"o"); + return false; + case u_umlaut: + SEND_STRING(compose_key "\"u"); + return false; + case eszett: + SEND_STRING(compose_key "ss"); + return false; + } + } + return true; +} diff --git a/keyboards/moonlander/keymaps/shahn-neo/readme.md b/keyboards/moonlander/keymaps/shahn-neo/readme.md new file mode 100644 index 00000000000..d2c9c887469 --- /dev/null +++ b/keyboards/moonlander/keymaps/shahn-neo/readme.md @@ -0,0 +1,16 @@ +# Sönke Hahn's Neo layout for the Moonlander keyboard + +This is my personal keyboard layout based on the Neo keyboard layout: +https://en.wikipedia.org/wiki/Neo_(keyboard_layout) +This layout is not meant as a general layout for other people using the +Neo keyboard layout. It's very specific to my personal needs. +It still might be useful as inspiration to other people who want to +create a Neo layout. + +Some notes: + +- I've put the ctrl key, the shift keys and the modifiers to switch to + layer 4 in the middle to be operated by the thumbs. I wanted to avoid + having to use my pinkies on the outer rows of the keyboard. +- The umlauts (äöü) and the ß only work on linux when configuring the + compose key properly. See `compose_key` in `./keymap.c`. diff --git a/keyboards/moonlander/matrix.c b/keyboards/moonlander/matrix.c index 774b01187d3..df498bd6e38 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 403e6aef8b3..39f61b5c406 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 0e2dc880e98..08bec5c070e 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/opus/config.h b/keyboards/opus/config.h new file mode 100644 index 00000000000..52ed10bc5ac --- /dev/null +++ b/keyboards/opus/config.h @@ -0,0 +1,45 @@ +/* Copyright 2020 rtwayland + * + * 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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x434B +#define PRODUCT_ID 0x4F50 +#define DEVICE_VER 0x0001 +#define MANUFACTURER rtwayland +#define PRODUCT Opus + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 12 + +/* PCB pin-out */ +#define MATRIX_ROW_PINS {B1, B3, B2, B6} +#define MATRIX_COL_PINS {D1, D0, D4, C6, D7, E6, B4, B5, F4, F5, F6, F7} +#define UNUSED_PINS + +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE diff --git a/keyboards/opus/info.json b/keyboards/opus/info.json new file mode 100644 index 00000000000..1b2da113674 --- /dev/null +++ b/keyboards/opus/info.json @@ -0,0 +1,59 @@ +{ + "keyboard_name": "opus", + "maintainer": "rtwayland", + "layouts": { + "LAYOUT": { + "layout": [ + { "label": "Tab", "x": 0, "y": 0.4 }, + { "label": "Q", "x": 1, "y": 0.4 }, + { "label": "W", "x": 2, "y": 0.2 }, + { "label": "E", "x": 3, "y": 0 }, + { "label": "R", "x": 4, "y": 0.4 }, + { "label": "T", "x": 5, "y": 0.5 }, + + { "label": "Y", "x": 10, "y": 0.5 }, + { "label": "U", "x": 11, "y": 0.4 }, + { "label": "I", "x": 12, "y": 0 }, + { "label": "O", "x": 13, "y": 0.2 }, + { "label": "P", "x": 14, "y": 0.4 }, + { "label": "Back Space", "x": 15, "y": 0.4 }, + + { "label": "Ctrl / Esc", "x": 0, "y": 1.4 }, + { "label": "A", "x": 1, "y": 1.4 }, + { "label": "S", "x": 2, "y": 1.2 }, + { "label": "D", "x": 3, "y": 1 }, + { "label": "F", "x": 4, "y": 1.4 }, + { "label": "G", "x": 5, "y": 1.5 }, + + { "label": "H", "x": 10, "y": 1.5 }, + { "label": "J", "x": 11, "y": 1.4 }, + { "label": "K", "x": 12, "y": 1 }, + { "label": "L", "x": 13, "y": 1.2 }, + { "label": ";", "x": 14, "y": 1.4 }, + { "label": "'", "x": 15, "y": 1.4 }, + + { "label": "GUI", "x": 0, "y": 2.4 }, + { "label": "Z", "x": 1, "y": 2.4 }, + { "label": "X", "x": 2, "y": 2.2 }, + { "label": "C", "x": 3, "y": 2 }, + { "label": "V", "x": 4, "y": 2.4 }, + { "label": "B", "x": 5, "y": 2.5 }, + + { "label": "N", "x": 10, "y": 2.5 }, + { "label": "M", "x": 11, "y": 2.4 }, + { "label": ",", "x": 12, "y": 2 }, + { "label": ".", "x": 13, "y": 2.2 }, + { "label": "/", "x": 14, "y": 2.4 }, + { "label": "Enter", "x": 15, "y": 2.4 }, + + { "label": "Lower", "x": 4.8, "y": 3.7 }, + { "label": "Shift", "x": 5.8, "y": 3.5 }, + { "label": "Tab", "x": 6.8, "y": 3.6 }, + + { "label": "Enter", "x": 8.2, "y": 3.6 }, + { "label": "Space", "x": 9.2, "y": 3.5 }, + { "label": "Raise", "x": 10.2, "y": 3.7 } + ] + } + } +} diff --git a/keyboards/opus/keymaps/default/keymap.c b/keyboards/opus/keymaps/default/keymap.c new file mode 100644 index 00000000000..aaa1a899a21 --- /dev/null +++ b/keyboards/opus/keymaps/default/keymap.c @@ -0,0 +1,51 @@ +/* Copyright 2020 rtwayland + * + * 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 { + _BASE, + _SYMBOL, + _NUM, + _NAV, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + LCTL_T(KC_ESC), KC_A, KC_S, KC_D, LT(2,KC_F), KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LALT, LGUI_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, LGUI_T(KC_SLSH), KC_ENT, + MO(3), KC_LSFT, LALT_T(KC_TAB), LT(3,KC_ENT), LT(1,KC_SPC), KC_BSPC + ), + [_SYMBOL] = LAYOUT( + LCTL(KC_C), KC_TILD, KC_AT, KC_LCBR, KC_RCBR, KC_HASH, KC_ASTR, KC_CIRC, KC_AMPR, KC_PIPE, KC_BSLS, LCTL(KC_GRV), + KC_LCTL, KC_GRV, KC_MINS, KC_LPRN, KC_RPRN, KC_EXLM, KC_QUES, KC_DLR, KC_LT, KC_GT, KC_SLSH, KC_DQUO, + KC_LALT, KC_LGUI, KC_UNDS, KC_LBRC, KC_RBRC, KC_PLUS, KC_P0, KC_EQL, KC_PERC, KC_COLN, KC_NO, KC_NO, + KC_TRNS, KC_LSFT, KC_NO, KC_TRNS, KC_TRNS, KC_NO + ), + [_NUM] = LAYOUT( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_ASTR, KC_7, KC_8, KC_9, KC_SLSH, KC_EQL, + KC_LCTL, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_PLUS, KC_4, KC_5, KC_6, KC_MINS, KC_PERC, + KC_LALT, KC_LGUI, KC_NO, KC_NO, KC_NO, KC_NO, KC_0, KC_1, KC_2, KC_3, KC_DOT, KC_PENT, + KC_NO, KC_NO, KC_NO, KC_NO, KC_SPC, KC_BSPC + ), + [_NAV] = LAYOUT( + KC_NO, KC_NO, LALT(KC_RGHT), SGUI(KC_LBRC), SGUI(KC_RBRC), KC_NO, KC_HOME, KC_PGDN, KC_PGUP, KC_NO, KC_NO, KC_NO, + KC_NO, KC_LCTL, KC_LALT, KC_LSFT, KC_LGUI, KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, LALT(KC_LEFT), KC_END, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_TRNS, KC_NO, KC_NO, KC_NO, KC_SPC, KC_BSPC + ) +}; diff --git a/keyboards/opus/keymaps/default/readme.md b/keyboards/opus/keymaps/default/readme.md new file mode 100644 index 00000000000..ba3f26edacc --- /dev/null +++ b/keyboards/opus/keymaps/default/readme.md @@ -0,0 +1,17 @@ +# The default keymap for Opus + +## Base Layer + +![opus base layer](https://i.imgur.com/zsmlS96.png) + +## Symbol Layer + +![opus symbol layer](https://i.imgur.com/Fu10HBx.jpg) + +## Num Layer + +![opus num layer](https://i.imgur.com/1hvYqi0.jpg) + +## Nav Layer + +![opus nav layer](https://i.imgur.com/JqOdXhG.jpg) diff --git a/keyboards/opus/keymaps/thefoxcodes/config.h b/keyboards/opus/keymaps/thefoxcodes/config.h new file mode 100644 index 00000000000..824ec5bd18e --- /dev/null +++ b/keyboards/opus/keymaps/thefoxcodes/config.h @@ -0,0 +1,21 @@ +/* Copyright 2020 rtwayland + * + * 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 + +// place overrides here +#define USB_MAX_POWER_CONSUMPTION 100 +#define TAPPING_TERM 200 \ No newline at end of file diff --git a/keyboards/opus/keymaps/thefoxcodes/keymap.c b/keyboards/opus/keymaps/thefoxcodes/keymap.c new file mode 100644 index 00000000000..e0adb2af32a --- /dev/null +++ b/keyboards/opus/keymaps/thefoxcodes/keymap.c @@ -0,0 +1,94 @@ +/* Copyright 2020 rtwayland + * + * 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 { + _BASE, + _SYMBOL, + _NUM, + _NAV, + _MEDIA, + _WORD, + _FKEYS, + _NUMPAD, + _MOUSE +}; + +enum { + TD_PLAY_DO_NOT_DISTURB +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT( + LT(4, KC_TAB), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, TD(TD_PLAY_DO_NOT_DISTURB), + LCTL_T(KC_ESC), KC_A, KC_S, KC_D, LT(2, KC_F), KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, LT(4, KC_QUOT), + MO(5), LGUI_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, LGUI_T(KC_SLSH), MO(5), + MO(3), KC_LSFT, LALT_T(KC_TAB), LT(3, KC_ENT), LT(1, KC_SPC), KC_BSPC + ), + [_SYMBOL] = LAYOUT( + LCTL(KC_C), KC_TILD, KC_AT, KC_LCBR, KC_RCBR, KC_HASH, KC_ASTR, KC_CIRC, KC_AMPR, KC_PIPE, KC_BSLS, LCTL(KC_GRV), + KC_LCTL, KC_GRV, KC_MINS, KC_LPRN, KC_RPRN, KC_EXLM, KC_QUES, KC_DLR, KC_LT, KC_GT, KC_SLSH, KC_DQUO, + KC_LALT, KC_LGUI, KC_UNDS, KC_LBRC, KC_RBRC, KC_PLUS, KC_P0, KC_EQL, KC_PERC, KC_COLN, KC_NO, KC_NO, + KC_NO, KC_LSFT, LALT_T(KC_TAB), KC_NO, KC_TRNS, KC_NO + ), + [_NUM] = LAYOUT( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_ASTR, KC_7, KC_8, KC_9, KC_SLSH, KC_EQL, + KC_LCTL, KC_NO, MO(7), MO(6), KC_TRNS, KC_NO, KC_PLUS, KC_4, KC_5, KC_6, KC_MINS, KC_PERC, + KC_LALT, KC_LGUI, KC_NO, KC_NO, KC_NO, KC_NO, KC_0, KC_1, KC_2, KC_3, KC_DOT, KC_PENT, + KC_NO, KC_LSFT, LALT_T(KC_TAB), KC_NO, KC_SPC, KC_BSPC + ), + [_NAV] = LAYOUT( + KC_NO, KC_NO, LALT(KC_RGHT), SGUI(KC_LBRC), SGUI(KC_RBRC), KC_NO, KC_HOME, KC_PGDN, KC_PGUP, KC_NO, KC_NO, KC_NO, + KC_NO, KC_LCTL, KC_LALT, KC_LSFT, KC_LGUI, KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, LALT(KC_LEFT), KC_END, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_TRNS, KC_NO, KC_NO, KC_NO, KC_SPC, KC_BSPC + ), + [_MEDIA] = LAYOUT( + KC_TRNS, SGUI(KC_5), SGUI(KC_3), SGUI(KC_4), MEH(KC_4), KC_VOLU, LCA(KC_U), LCAG(KC_LEFT), LCAG(KC_RGHT), LCA(KC_I), LCA(KC_EQL), LALT(LGUI(KC_POWER)), + KC_CAPS, KC_F11, KC_MPRV, KC_MNXT, KC_MPLY, KC_VOLD, LCA(KC_LEFT), LCA(KC_DOWN), LCA(KC_UP), LCA(KC_RIGHT), LCA(KC_MINS), KC_TRNS, + KC_BRID, KC_BRIU, LGUI(KC_MINS), LGUI(KC_PLUS), LGUI(KC_GRV), KC_MUTE, LCA(KC_J), LCA(KC_ENT), LCA(KC_C), LCA(KC_K), MEH(KC_UP), RESET, + LCTL(LSFT(KC_TAB)), LCTL(KC_TAB), KC_NO, KC_NO, MEH(KC_RGHT), MEH(KC_LEFT) + ), + [_WORD] = LAYOUT( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, LALT(LSFT(KC_MINS)), KC_NO, LALT(LGUI(KC_F)), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_TRNS, KC_NO, LALT(KC_MINS), KC_NO, SGUI(LALT(KC_V)), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_DEL + ), + [_FKEYS] = LAYOUT( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, KC_F7, KC_F8, KC_F9, KC_F17, KC_F20, + KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_NO, KC_F11, KC_F4, KC_F5, KC_F6, KC_F16, KC_F19, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_F10, KC_F1, KC_F2, KC_F3, KC_F13, KC_F18, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO + ), + [_NUMPAD] = LAYOUT( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PAST, KC_P7, KC_P8, KC_P9, KC_PSLS, KC_PEQL, + KC_LCTL, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PPLS, KC_P4, KC_P5, KC_P6, KC_PMNS, KC_PERC, + KC_LALT, KC_LGUI, KC_NO, KC_NO, KC_NO, KC_NO, KC_P0, KC_P1, KC_P2, KC_P3, KC_PDOT, KC_PENT, + KC_NO, KC_TRNS, KC_NO, KC_NO, KC_LPRN, KC_RPRN + ), + [_MOUSE] = LAYOUT( + KC_NO, KC_NO, KC_NO, SGUI(KC_LBRC), SGUI(KC_RBRC), KC_NO, KC_HOME, KC_WH_U, KC_WH_D, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_ACL2, KC_WWW_BACK, KC_ACL0, KC_WWW_FORWARD, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_END, KC_WH_R, KC_WH_L, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_BTN1, KC_BTN2 + ), +}; + +qk_tap_dance_action_t tap_dance_actions[] = { + [TD_PLAY_DO_NOT_DISTURB] = ACTION_TAP_DANCE_DOUBLE(KC_MPLY, KC_F6) +}; \ No newline at end of file diff --git a/keyboards/opus/keymaps/thefoxcodes/readme.md b/keyboards/opus/keymaps/thefoxcodes/readme.md new file mode 100644 index 00000000000..c1d2a0b9ec1 --- /dev/null +++ b/keyboards/opus/keymaps/thefoxcodes/readme.md @@ -0,0 +1 @@ +# thefoxcodes keymap diff --git a/keyboards/opus/keymaps/thefoxcodes/rules.mk b/keyboards/opus/keymaps/thefoxcodes/rules.mk new file mode 100644 index 00000000000..1ba2fa8fbef --- /dev/null +++ b/keyboards/opus/keymaps/thefoxcodes/rules.mk @@ -0,0 +1 @@ +TAP_DANCE_ENABLE = yes \ No newline at end of file diff --git a/keyboards/drakon/drakon.c b/keyboards/opus/opus.c similarity index 93% rename from keyboards/drakon/drakon.c rename to keyboards/opus/opus.c index 29fe65f46b2..5a188cf8a0b 100644 --- a/keyboards/drakon/drakon.c +++ b/keyboards/opus/opus.c @@ -1,4 +1,4 @@ -/* Copyright 2020 jagdpietr +/* Copyright 2020 rtwayland * * 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 @@ -14,4 +14,4 @@ * along with this program. If not, see . */ -#include "drakon.h" +#include "opus.h" diff --git a/keyboards/opus/opus.h b/keyboards/opus/opus.h new file mode 100644 index 00000000000..ec82c5bc9a1 --- /dev/null +++ b/keyboards/opus/opus.h @@ -0,0 +1,39 @@ +/* Copyright 2020 rtwayland + * + * 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" + +/* This a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ + k33, k34, k35, k36, k37, k38 \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \ + { KC_NO, KC_NO, KC_NO, k33, k34, k35, k36, k37, k38, KC_NO, KC_NO, KC_NO } \ +} diff --git a/keyboards/opus/readme.md b/keyboards/opus/readme.md new file mode 100644 index 00000000000..aebe3162d45 --- /dev/null +++ b/keyboards/opus/readme.md @@ -0,0 +1,15 @@ +# Opus + +![opus](https://i.imgur.com/1jXSUbrl.jpg) + +This is a 40%, non-split, ergonomic, hot-swap keyboard. +The columns are angled to follow the natural angle of the hand. + +* Keyboard Maintainer: [rtwayland](https://github.com/rtwayland) +* Hardware Supported: Pro-micro. Elite-C. + +Make example for this keyboard (after setting up your build environment): + + make opus: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/opus/rules.mk b/keyboards/opus/rules.mk new file mode 100644 index 00000000000..ad6298c9fed --- /dev/null +++ b/keyboards/opus/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/planck/ez/config.h b/keyboards/planck/ez/config.h index 0cb428dd858..91723e185c1 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 8369ce50c10..5371c785351 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 352deb64765..f989cd93863 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 00000000000..21a339da289 --- /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 00000000000..1813ccae093 --- /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 00000000000..d8a01f43592 --- /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 00000000000..575a9c8fa41 --- /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 df8d1b46bb9..247bf7448af 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 ff4d8daedc6..cd8354b2622 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 00000000000..54813bf06f6 --- /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 00000000000..3f1c750cfcd --- /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 00000000000..eb775c52ce1 --- /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 00000000000..dcf16bef399 --- /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 b4b983d9c0e..0bc0d9e030c 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 3d1cec74b8d..2d2a252b23b 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/primekb/prime_e/config.h b/keyboards/primekb/prime_e/config.h index 4a355efd72d..343a9dc0bff 100644 --- a/keyboards/primekb/prime_e/config.h +++ b/keyboards/primekb/prime_e/config.h @@ -21,11 +21,7 @@ along with this program. If not, see . /* USB Device descriptor parameter */ #define VENDOR_ID 0x5052 -#define PRODUCT_ID 0x0051 -#define DEVICE_VER 0x0001 #define MANUFACTURER PrimeKB -#define PRODUCT Prime_E -#define DESCRIPTION Ergo_45 /* key matrix size */ #define MATRIX_ROWS 4 @@ -34,15 +30,10 @@ along with this program. If not, see . /* Keyboard Matrix Assignments */ #define MATRIX_ROW_PINS { E6, C7, B5, B4 } #define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, D6, D4, D5, D3, D2, D1, D0 } -#define UNUSED_PINS /* COL2ROW, ROW2COL */ #define DIODE_DIRECTION COL2ROW -#define BACKLIGHT_PIN B7 -#define BACKLIGHT_LEVELS 5 - - /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 5 diff --git a/keyboards/primekb/prime_e/prime_e.h b/keyboards/primekb/prime_e/prime_e.h index 4af70fbe177..8de0af46227 100644 --- a/keyboards/primekb/prime_e/prime_e.h +++ b/keyboards/primekb/prime_e/prime_e.h @@ -19,7 +19,6 @@ #include "quantum.h" - #define LAYOUT( \ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, \ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K112, \ @@ -31,4 +30,3 @@ { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212 }, \ { K300, K301, KC_NO, K303, K304, KC_NO, K306, KC_NO, K308, KC_NO, KC_NO, K311, K312 } \ } - diff --git a/keyboards/primekb/prime_e/readme.md b/keyboards/primekb/prime_e/readme.md index 6abe0bed019..3503ad419c2 100644 --- a/keyboards/primekb/prime_e/readme.md +++ b/keyboards/primekb/prime_e/readme.md @@ -4,13 +4,17 @@ An ergonomic 45%. -Keyboard Maintainer: [Holtenc](https://github.com/holtenc/) -Hardware Supported: Prime_E PCB, ATMega32u4 -Hardware Availability: Group Buy, Retail +*Keyboard Maintainer: [Holtenc](https://github.com/holtenc/) +*Hardware Supported: + * [Prime_E Standard](std/) PCBs, ATmega32u4 (in switch LED backlights) + * [Prime_E RGB](rgb/) PCBs, Atmega32u4 (RGB underglow) +*Hardware Availability: [Store Link](https://www.primekb.com) Make example for this keyboard (after setting up your build environment): - make prime_e:default - make prime_e:via (when using VIA configurator) + *make primekb/prime_e/std:default + *make primekb/prime_e/rgb:default + *make primekb/prime_e/std:via + *make primekb/prime_e/rgb:via 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/primekb/prime_e/rgb/config.h b/keyboards/primekb/prime_e/rgb/config.h new file mode 100644 index 00000000000..a562ffba813 --- /dev/null +++ b/keyboards/primekb/prime_e/rgb/config.h @@ -0,0 +1,29 @@ +/* +Copyright 2019 Holten Campbell + +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" + +/* USB Device descriptor parameter */ +#define PRODUCT_ID 0x0052 +#define DEVICE_VER 0x0001 +#define PRODUCT Prime_E RGB + +#define RGB_DI_PIN B7 +#define RGBLED_NUM 8 +#define RGBLIGHT_ANIMATIONS diff --git a/keyboards/primekb/prime_e/rgb/readme.md b/keyboards/primekb/prime_e/rgb/readme.md new file mode 100644 index 00000000000..7d7c5332d36 --- /dev/null +++ b/keyboards/primekb/prime_e/rgb/readme.md @@ -0,0 +1,15 @@ +# Prime_E + +![Prime_E](https://imgur.com/7Rl4JOA.jpg) + +An ergonomic 45%. + +* Keyboard Maintainer: [Holtenc](https://github.com/holtenc/) +* Hardware Supported:Prime_E RGB PCBs, ATmega32u4 +* Hardware Availability: [Store Link](https://www.primekb.com) + +Make example for this keyboard (after setting up your build environment): + + make primekb/prime_e/rgb: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/primekb/prime_e/rgb/rules.mk b/keyboards/primekb/prime_e/rgb/rules.mk new file mode 100644 index 00000000000..725c0cebcc5 --- /dev/null +++ b/keyboards/primekb/prime_e/rgb/rules.mk @@ -0,0 +1,2 @@ +BACKLIGHT_ENABLE = no +RGBLIGHT_ENABLE = yes diff --git a/keyboards/primekb/prime_e/rules.mk b/keyboards/primekb/prime_e/rules.mk index 0a08cc2ccda..e9045dba93a 100644 --- a/keyboards/primekb/prime_e/rules.mk +++ b/keyboards/primekb/prime_e/rules.mk @@ -23,11 +23,7 @@ COMMAND_ENABLE = no # Commands for debug and configuration SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work NKRO_ENABLE = yes # USB Nkey Rollover -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -MIDI_ENABLE = no # MIDI support -UNICODE_ENABLE = no # Unicode -BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches -HD44780_ENABLE = no # Enable support for HD44780 based LCDs +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output + +DEFAULT_FOLDER = primekb/prime_e/std diff --git a/keyboards/primekb/prime_e/std/config.h b/keyboards/primekb/prime_e/std/config.h new file mode 100644 index 00000000000..a711e35b21b --- /dev/null +++ b/keyboards/primekb/prime_e/std/config.h @@ -0,0 +1,28 @@ +/* +Copyright 2019 Holten Campbell + +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" + +/* USB Device descriptor parameter */ +#define PRODUCT_ID 0x0051 +#define DEVICE_VER 0x0001 +#define PRODUCT Prime_E + +#define BACKLIGHT_PIN B7 +#define BACKLIGHT_LEVELS 5 diff --git a/keyboards/primekb/prime_e/std/readme.md b/keyboards/primekb/prime_e/std/readme.md new file mode 100644 index 00000000000..d1c2fd8402f --- /dev/null +++ b/keyboards/primekb/prime_e/std/readme.md @@ -0,0 +1,15 @@ +# Prime_E + +![Prime_E](https://imgur.com/7Rl4JOA.jpg) + +An ergonomic 45%. + +* Keyboard Maintainer: [Holtenc](https://github.com/holtenc/) +* Hardware Supported: Prime_E Standard PCBs, Atmega32u4 +* Hardware Availability: [Store Link](https://www.primekb.com) + +Make example for this keyboard (after setting up your build environment): + + make primekb/prime_e/std: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/primekb/prime_e/std/rules.mk b/keyboards/primekb/prime_e/std/rules.mk new file mode 100644 index 00000000000..f938676f448 --- /dev/null +++ b/keyboards/primekb/prime_e/std/rules.mk @@ -0,0 +1,2 @@ +BACKLIGHT_ENABLE = yes +RGBLIGHT_ENABLE = no diff --git a/keyboards/ramonimbao/aelith/aelith.c b/keyboards/ramonimbao/aelith/aelith.c new file mode 100644 index 00000000000..e2153f76453 --- /dev/null +++ b/keyboards/ramonimbao/aelith/aelith.c @@ -0,0 +1,17 @@ +/* Copyright 2020 Ramon Imbao + * + * 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 "aelith.h" diff --git a/keyboards/ramonimbao/aelith/aelith.h b/keyboards/ramonimbao/aelith/aelith.h new file mode 100644 index 00000000000..47fe9a90ed7 --- /dev/null +++ b/keyboards/ramonimbao/aelith/aelith.h @@ -0,0 +1,64 @@ +/* Copyright 2020 Ramon Imbao + * + * 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" + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ + +#define XXX KC_NO + +// Split backspace +// Split right shift +#define LAYOUT_alice_split_bs( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, \ + k10, k11, k12, k13, k14, k15, k16, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, \ + k20, k21, k22, k23, k24, k25, k26, k28, k29, k2a, k2b, k2c, k2d, k2f, \ + k31, k32, k33, k34, k35, k36, k38, k39, k3a, k3b, k3c, k3d, k3e, k3f, \ + k41, k43, k44, k46, k49, k4b, k4f \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f }, \ + { k10, k11, k12, k13, k14, k15, k16, XXX, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f }, \ + { k20, k21, k22, k23, k24, k25, k26, XXX, k28, k29, k2a, k2b, k2c, k2d, XXX, k2f }, \ + { XXX, k31, k32, k33, k34, k35, k36, XXX, k38, k39, k3a, k3b, k3c, k3d, k3e, k3f }, \ + { XXX, k41, XXX, k43, k44, XXX, k46, XXX, XXX, k49, XXX, k4b, XXX, XXX, XXX, k4f }, \ +} + +// 2u backspace +// Split right shift +#define LAYOUT_alice( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0f, \ + k10, k11, k12, k13, k14, k15, k16, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, \ + k20, k21, k22, k23, k24, k25, k26, k28, k29, k2a, k2b, k2c, k2d, k2f, \ + k31, k32, k33, k34, k35, k36, k38, k39, k3a, k3b, k3c, k3d, k3e, k3f, \ + k41, k43, k44, k46, k49, k4b, k4f \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, XXX, k0f }, \ + { k10, k11, k12, k13, k14, k15, k16, XXX, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f }, \ + { k20, k21, k22, k23, k24, k25, k26, XXX, k28, k29, k2a, k2b, k2c, k2d, XXX, k2f }, \ + { XXX, k31, k32, k33, k34, k35, k36, XXX, k38, k39, k3a, k3b, k3c, k3d, k3e, k3f }, \ + { XXX, k41, XXX, k43, k44, XXX, k46, XXX, XXX, k49, XXX, k4b, XXX, XXX, XXX, k4f }, \ +} diff --git a/keyboards/ramonimbao/aelith/config.h b/keyboards/ramonimbao/aelith/config.h new file mode 100644 index 00000000000..0c4c2285d5b --- /dev/null +++ b/keyboards/ramonimbao/aelith/config.h @@ -0,0 +1,105 @@ +/* +Copyright 2020 Ramon Imbao + +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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xB16B +#define PRODUCT_ID 0xE460 +#define DEVICE_VER 0x0012 +#define MANUFACTURER Ramon Imbao +#define PRODUCT AELITH + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 16 + +/* + * 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 { D5, D1, D0, D6, A7 } +#define MATRIX_COL_PINS { D7, C0, C1, C2, C3, C4, C5, C6, C7, A6, A5, A0, A1, A2, A3, A4 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is useful for the Windows task manager shortcut (ctrl+shift+esc). + */ +//#define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION diff --git a/keyboards/ramonimbao/aelith/info.json b/keyboards/ramonimbao/aelith/info.json new file mode 100644 index 00000000000..e001c1d4d1f --- /dev/null +++ b/keyboards/ramonimbao/aelith/info.json @@ -0,0 +1,90 @@ +{ + "keyboard_name": "AELITH", + "url": "", + "maintainer": "Ramon Imbao", + "width": 19, + "height": 5, + "layouts": { + "LAYOUT_alice_split_bs": { + "layout": [ + {"x":0.5, "y":0}, + + {"x":1.75, "y":0}, + {"x":2.75, "y":0}, + {"x":3.75, "y":0}, + {"x":4.75, "y":0}, + {"x":5.75, "y":0}, + {"x":6.75, "y":0}, + {"x":7.75, "y":0}, + + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + {"x":15, "y":0}, + {"x":16, "y":0}, + {"x":17, "y":0}, + {"x":18, "y":0}, + + {"x":0.25, "y":1}, + {"x":1.75, "y":1, "w":1.5}, + {"x":3.25, "y":1}, + {"x":4.25, "y":1}, + {"x":5.25, "y":1}, + {"x":6.25, "y":1}, + {"x":7.25, "y":1}, + + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":13.5, "y":1}, + {"x":14.5, "y":1}, + {"x":15.5, "y":1}, + {"x":16.5, "y":1}, + {"x":17.5, "y":1, "w":1.5}, + + {"x":0, "y":2}, + + {"x":1.75, "y":2, "w":1.75}, + {"x":3.5, "y":2}, + {"x":4.5, "y":2}, + {"x":5.5, "y":2}, + {"x":6.5, "y":2}, + {"x":7.5, "y":2}, + + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2}, + {"x":13.75, "y":2}, + {"x":14.75, "y":2}, + {"x":15.75, "y":2}, + {"x":16.75, "y":2, "w":2.25}, + + {"x":1.75, "y":3, "w":2.25}, + {"x":4, "y":3}, + {"x":5, "y":3}, + {"x":6, "y":3}, + {"x":7, "y":3}, + {"x":8, "y":3}, + + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3}, + {"x":13.25, "y":3}, + {"x":14.25, "y":3}, + {"x":15.25, "y":3}, + {"x":16.25, "y":3, "w":1.75}, + {"x":18, "y":3}, + + {"x":1.75, "y":4, "w":1.5}, + {"x":4.5, "y":4, "w":1.5}, + {"x":6, "y":4, "w":2.25}, + {"x":8.25, "y":4}, + + {"x":10.25, "y":4, "w":2.75}, + {"x":13, "y":4, "w":1.5}, + {"x":17.5, "y":4, "w":1.5} + ] + } + } +} diff --git a/keyboards/ramonimbao/aelith/keymaps/default/keymap.c b/keyboards/ramonimbao/aelith/keymaps/default/keymap.c new file mode 100644 index 00000000000..ff9319e4faa --- /dev/null +++ b/keyboards/ramonimbao/aelith/keymaps/default/keymap.c @@ -0,0 +1,33 @@ +/* Copyright 2020 Ramon Imbao + * + * 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_alice_split_bs( + KC_ESC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, + KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_RCTL + ), + [1] = LAYOUT_alice_split_bs( + 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, + KC_HOME, _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_END, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/ramonimbao/aelith/keymaps/via/keymap.c b/keyboards/ramonimbao/aelith/keymaps/via/keymap.c new file mode 100644 index 00000000000..7c48ffa0d30 --- /dev/null +++ b/keyboards/ramonimbao/aelith/keymaps/via/keymap.c @@ -0,0 +1,47 @@ +/* Copyright 2020 Ramon Imbao + * + * 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_alice_split_bs( + KC_ESC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, + KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_RCTL + ), + [1] = LAYOUT_alice_split_bs( + 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, + KC_HOME, _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_END, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT_alice_split_bs( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT_alice_split_bs( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/ramonimbao/aelith/keymaps/via/rules.mk b/keyboards/ramonimbao/aelith/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/ramonimbao/aelith/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/ramonimbao/aelith/readme.md b/keyboards/ramonimbao/aelith/readme.md new file mode 100644 index 00000000000..243d58e292d --- /dev/null +++ b/keyboards/ramonimbao/aelith/readme.md @@ -0,0 +1,14 @@ +# ÆLITH + +![ÆLITH](https://i.imgur.com/wG1OWLol.png) + +A through-hole Alice-layout keyboard. + +* Keyboard Maintainer: [Ramon Imbao](https://github.com/ramonimbao) +* Hardware Supported: ATmega32A + +Make example for this keyboard (after setting up your build environment): + + make ramonimbao/aelith: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/ramonimbao/aelith/rules.mk b/keyboards/ramonimbao/aelith/rules.mk new file mode 100644 index 00000000000..5e4cc3d6893 --- /dev/null +++ b/keyboards/ramonimbao/aelith/rules.mk @@ -0,0 +1,27 @@ +# MCU name +MCU = atmega32a + +# Processor frequency +F_CPU = 16000000 + +# Bootloader selection +BOOTLOADER = USBasp + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output + +LAYOUTS = alice diff --git a/keyboards/redox_w/config.h b/keyboards/redox_w/config.h index 349185ed30a..fb416c8e27b 100644 --- a/keyboards/redox_w/config.h +++ b/keyboards/redox_w/config.h @@ -20,8 +20,8 @@ /* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 +#define VENDOR_ID 0x4D44 //MD +#define PRODUCT_ID 0x5257 //RW #define DEVICE_VER 0x0001 #define MANUFACTURER Mattia Dal Ben #define PRODUCT Redox_wireless diff --git a/keyboards/redox_w/keymaps/via/keymap.c b/keyboards/redox_w/keymaps/via/keymap.c new file mode 100644 index 00000000000..406bc1b8e11 --- /dev/null +++ b/keyboards/redox_w/keymaps/via/keymap.c @@ -0,0 +1,89 @@ + /* Copyright HarshitGoel96 2020 + * With permission from mattdibi, the original maintainer of the Redox hardware. + * + * 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 + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. + +enum custom_keycodes { + _QWERTY, + _SYMB, + _NAV, + _ADJUST, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_QWERTY] = LAYOUT( + //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐ + XXXXXXX ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 , KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,XXXXXXX , + //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + KC_TAB ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,XXXXXXX , MO(_ADJUST) ,KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,KC_EQL , + //├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + KC_ESC ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G ,KC_LBRC , KC_RBRC ,KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN ,KC_QUOT , + //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + KC_LSFT ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,XXXXXXX ,KC_PGDN , KC_HOME ,XXXXXXX ,KC_N ,KC_M ,KC_COMM ,KC_DOT ,KC_SLSH ,KC_RSFT , + //├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤ ├────────┼────────┼───┬────┴───┬────┼────────┼────────┼────────┼────────┤ + KC_LGUI ,KC_PPLS ,KC_PMNS ,MO(_SYMB) , MO(_NAV) , KC_BSPC ,KC_DEL , KC_ENT ,KC_SPC , KC_RALT , KC_LEFT ,KC_DOWN ,KC_UP ,KC_RGHT + //└────────┴────────┴────────┴────────┘ └────────┘ └────────┴────────┘ └────────┴────────┘ └────────┘ └────────┴────────┴────────┴────────┘ + ), + + [_SYMB] = LAYOUT( + //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐ + _______ ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 , KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,XXXXXXX , + //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + _______ ,KC_EXLM ,KC_AT ,KC_LCBR ,KC_RCBR ,KC_PIPE ,_______ , _______ ,KC_PSLS ,KC_P7 ,KC_P8 ,KC_P9 ,KC_PMNS ,XXXXXXX , + //├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + _______ ,KC_HASH ,KC_DLR ,KC_LBRC ,KC_RBRC ,KC_GRV ,_______ , _______ ,KC_PAST ,KC_P4 ,KC_P5 ,KC_P6 ,KC_PPLS ,XXXXXXX , + //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + _______ ,KC_PERC ,KC_CIRC ,KC_LPRN ,KC_RPRN ,KC_TILD ,_______ ,_______ , _______ ,_______ ,XXXXXXX ,KC_P1 ,KC_P2 ,KC_P3 ,KC_PENT ,XXXXXXX , + //├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤ ├────────┼────────┼───┬────┴───┬────┼────────┼────────┼────────┼────────┤ + _______ ,_______ ,_______ ,_______ , _______ , _______ ,_______ , _______ ,_______ , KC_P0 , KC_P0 ,KC_PDOT ,KC_PENT ,XXXXXXX + //└────────┴────────┴────────┴────────┘ └────────┘ └────────┴────────┘ └────────┴────────┘ └────────┘ └────────┴────────┴────────┴────────┘ + ), + + [_NAV] = LAYOUT( + //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐ + _______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______ ,_______ ,_______ ,_______ ,_______ ,_______ , + //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + XXXXXXX ,XXXXXXX ,KC_MS_U ,XXXXXXX ,KC_WH_U ,XXXXXXX ,_______ , _______ ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , + //├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + XXXXXXX ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_WH_D ,XXXXXXX ,_______ , _______ ,KC_LEFT ,KC_DOWN ,KC_UP ,KC_RIGHT,XXXXXXX ,XXXXXXX , + //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,_______ ,_______ , _______ ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , + //├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤ ├────────┼────────┼───┬────┴───┬────┼────────┼────────┼────────┼────────┤ + XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , KC_BTN1 , KC_BTN2 ,_______ , _______ ,_______ , XXXXXXX , XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX + //└────────┴────────┴────────┴────────┘ └────────┘ └────────┴────────┘ └────────┴────────┘ └────────┘ └────────┴────────┴────────┴────────┘ + ), + + [_ADJUST] = LAYOUT( + //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐ + XXXXXXX ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 , KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,XXXXXXX , + //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + XXXXXXX ,RESET ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , + //├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , + //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,_______ ,XXXXXXX , XXXXXXX ,_______ ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , + //├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤ ├────────┼────────┼───┬────┴───┬────┼────────┼────────┼────────┼────────┤ + XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , XXXXXXX , XXXXXXX ,XXXXXXX , XXXXXXX ,XXXXXXX , XXXXXXX , XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX + //└────────┴────────┴────────┴────────┘ └────────┘ └────────┴────────┘ └────────┴────────┘ └────────┘ └────────┴────────┴────────┴────────┘ + ) + +}; \ No newline at end of file diff --git a/keyboards/redox_w/keymaps/via/readme.md b/keyboards/redox_w/keymaps/via/readme.md new file mode 100644 index 00000000000..32ab1253d7a --- /dev/null +++ b/keyboards/redox_w/keymaps/via/readme.md @@ -0,0 +1 @@ +# Default keymap for Redox Wireless diff --git a/keyboards/redox_w/keymaps/via/rules.mk b/keyboards/redox_w/keymaps/via/rules.mk new file mode 100644 index 00000000000..43061db1dd4 --- /dev/null +++ b/keyboards/redox_w/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes \ No newline at end of file diff --git a/keyboards/reviung34/config.h b/keyboards/reviung34/config.h index 5ebb631209a..5cd46caba9c 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/sp111/sp111.h b/keyboards/sp111/sp111.h deleted file mode 100644 index fb7e3394ac0..00000000000 --- a/keyboards/sp111/sp111.h +++ /dev/null @@ -1,41 +0,0 @@ -/* Copyright 2020 blindassassin111 - * - * 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 ___ KC_NO - -#define LAYOUT_all( \ - L00, L01, L02, L03, L04, L05, L06, L07, L08, L09, L0A, R01, R02, R03, R04, R05, R06, R07, R08, R09, \ - L10, L11, L12, L13, L14, L15, L16, L17, L18, L19, L0B, R10, R11, R12, R13, R14, R15, R16, R17, R18, R19, \ - L20, L21, L22, L23, L24, L25, L26, L27, L28, L29, R20, R21, R22, R23, R24, R25, R26, R27, R28, R29, \ - L30, L31, L32, L33, L34, L35, L36, L37, L38, L39, R30, R31, R32, R33, R34, R35, R36, R37, R38, R39, \ - L40, L41, L42, L43, L44, L45, L46, L47, L48, L49, R41, R42, R43, R44, R45, R46, R47, R48, \ - L50, L51, L52, L53, L54, L55, L56, L57, L58, R52, R53, R54, R55, R56, R57, R49, R59 \ -) { \ - { L00, L01, L02, L03, L04, L05, L06, L07, L08, L09, L0A }, \ - { L10, L11, L12, L13, L14, L15, L16, L17, L18, L19, L0B }, \ - { L20, L21, L22, L23, L24, L25, L26, L27, L28, L29, ___ }, \ - { L30, L31, L32, L33, L34, L35, L36, L37, L38, L39, ___ }, \ - { L40, L41, L42, L43, L44, L45, L46, L47, L48, L49, ___ }, \ - { L50, L51, L52, L53, L54, L55, L56, L57, L58, ___, ___ }, \ - { ___, R01, R02, R03, R04, R05, R06, R07, R08, R09, ___ }, \ - { R10, R11, R12, R13, R14, R15, R16, R17, R18, R19, ___ }, \ - { R20, R21, R22, R23, R24, R25, R26, R27, R28, R29, ___ }, \ - { R30, R31, R32, R33, R34, R35, R36, R37, R38, R39, ___ }, \ - { ___, R41, R42, R43, R44, R45, R46, R47, R48, ___, ___ }, \ - { ___, ___, R52, R53, R54, R55, R56, R57, R49, R59, ___ } \ -} diff --git a/keyboards/spaceman/pancake/config.h b/keyboards/spaceman/pancake/config.h index 5a01a572e4d..69fcd958ab5 100644 --- a/keyboards/spaceman/pancake/config.h +++ b/keyboards/spaceman/pancake/config.h @@ -17,8 +17,8 @@ #include "config_common.h" /* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0xB195 +#define VENDOR_ID 0x5342 // SB +#define PRODUCT_ID 0x504B // PK #define DEVICE_VER 0x0001 #define MANUFACTURER Spaceman #define PRODUCT Pancake @@ -28,4 +28,4 @@ #define MATRIX_ROWS 4 #define MATRIX_COLS 12 -#define DIODE_DIRECTION COL2ROW \ No newline at end of file +#define DIODE_DIRECTION COL2ROW diff --git a/keyboards/spaceman/pancake/feather/rules.mk b/keyboards/spaceman/pancake/feather/rules.mk index c54fbf06e0a..a7331959c86 100644 --- a/keyboards/spaceman/pancake/feather/rules.mk +++ b/keyboards/spaceman/pancake/feather/rules.mk @@ -20,7 +20,7 @@ BOOTLOADER = caterina BLUETOOTH = AdafruitBLE BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = no # Audio control and System control +EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = yes # Console for debug COMMAND_ENABLE = yes # Commands for debug and configuration SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend diff --git a/keyboards/spaceman/pancake/keymaps/via/keymap.c b/keyboards/spaceman/pancake/keymaps/via/keymap.c new file mode 100644 index 00000000000..a0cda2ee7c0 --- /dev/null +++ b/keyboards/spaceman/pancake/keymaps/via/keymap.c @@ -0,0 +1,105 @@ +/* Copyright 2020 Spaceman + * + * 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 layers { + _DEFAULT, + _LOWER, + _RAISE, + _FN +}; + +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) +#define FN MO(_FN) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Default + * ,-----------------------------------------------------------------------------------. + * | Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Tab | A | S | D | F | G | H | J | K | L | " | ; | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | Up |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | Alt | GUI | FN | Lower| Space |Raise | / | Left | Down |Right | + * `-----------------------------------------------------------------------------------' + */ +[_DEFAULT] = LAYOUT_ortho_4x12( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_SCLN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_ENT , + KC_LCTL, KC_LALT, KC_LGUI, FN, LOWER, KC_SPC, KC_SPC, RAISE, KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT +), + + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | _ | + | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | { | } | Vol+ | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | ? | | Vol- | | + * `-----------------------------------------------------------------------------------' + */ +[_LOWER] = LAYOUT_ortho_4x12( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + _______, _______, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, _______, KC_PIPE, + _______, _______, _______, _______, _______, _______, _______, _______, KC_LCBR, KC_RCBR, KC_VOLU, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_QUES, _______, KC_VOLD, _______ +), + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | | | | | | | - | = | | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | | | | | | [ | ] | Vol- | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | Vol+ | | + * `-----------------------------------------------------------------------------------' + */ +[_RAISE] = LAYOUT_ortho_4x12( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, _______, KC_BSLS, + _______, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_VOLU, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, _______ +), + + /* FN + * ,-----------------------------------------------------------------------------------. + * | Reset| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | | | | | | | | F11 | F12 | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | TRNS | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_FN] = LAYOUT_ortho_4x12( + 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, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +), + + +}; + diff --git a/keyboards/spaceman/pancake/keymaps/via/rules.mk b/keyboards/spaceman/pancake/keymaps/via/rules.mk new file mode 100644 index 00000000000..36b7ba9cbc9 --- /dev/null +++ b/keyboards/spaceman/pancake/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/spaceman/pancake/promicro/rules.mk b/keyboards/spaceman/pancake/promicro/rules.mk index 6ed9e88e990..09daaf4dafd 100644 --- a/keyboards/spaceman/pancake/promicro/rules.mk +++ b/keyboards/spaceman/pancake/promicro/rules.mk @@ -16,7 +16,7 @@ BOOTLOADER = caterina # BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = no # Audio control and System control +EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = yes # Console for debug COMMAND_ENABLE = yes # Commands for debug and configuration SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend diff --git a/keyboards/tkc/candybar/bootloader_defs.h b/keyboards/tkc/candybar/bootloader_defs.h deleted file mode 100644 index 43eb7b2f628..00000000000 --- 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/viktus/readme.md b/keyboards/viktus/readme.md new file mode 100644 index 00000000000..e65a030a1b3 --- /dev/null +++ b/keyboards/viktus/readme.md @@ -0,0 +1 @@ +# Viktus Design diff --git a/keyboards/sp111/config.h b/keyboards/viktus/sp111/config.h similarity index 97% rename from keyboards/sp111/config.h rename to keyboards/viktus/sp111/config.h index ee765dc8fb3..7dda6457f66 100644 --- a/keyboards/sp111/config.h +++ b/keyboards/viktus/sp111/config.h @@ -18,10 +18,10 @@ #include "config_common.h" /* USB Device descriptor parameter */ -#define VENDOR_ID 0x544B //TK +#define VENDOR_ID 0x5644 //VD #define PRODUCT_ID 0x5111 #define DEVICE_VER 0x0001 -#define MANUFACTURER The Key Company +#define MANUFACTURER Viktus Design #define PRODUCT SP111 /* key matrix size */ diff --git a/keyboards/sp111/info.json b/keyboards/viktus/sp111/info.json similarity index 95% rename from keyboards/sp111/info.json rename to keyboards/viktus/sp111/info.json index e478a322082..0061062f56f 100644 --- a/keyboards/sp111/info.json +++ b/keyboards/viktus/sp111/info.json @@ -10,7 +10,7 @@ {"label":"F13", "x":0, "y":0}, {"label":"F14", "x":1, "y":0}, {"label":"F15", "x":2, "y":0}, {"label":"F16", "x":3, "y":0}, {"label":"Esc", "x":4.5, "y":0}, {"label":"F1", "x":5.75, "y":0}, {"label":"F2", "x":6.75, "y":0}, {"label":"F3", "x":7.75, "y":0}, {"label":"F4", "x":8.75, "y":0}, {"label":"F5", "x":10, "y":0}, {"label":"F6", "x":11, "y":0}, {"label":"F7", "x":12.75, "y":0}, {"label":"F8", "x":13.75, "y":0}, {"label":"F9", "x":15, "y":0}, {"label":"F10", "x":16, "y":0}, {"label":"F11", "x":17, "y":0}, {"label":"F12", "x":18, "y":0}, {"label":"Prt Scn", "x":19.25, "y":0}, {"label":"Scl Lck", "x":20.5, "y":0}, {"label":"Pause", "x":21.5, "y":0}, {"label":"Num Lock", "x":0, "y":1.5}, {"label":"/", "x":1, "y":1.5}, {"label":"*", "x":2, "y":1.5}, {"label":"-", "x":3, "y":1.5}, {"label":"~", "x":4.5, "y":1.5}, {"label":"!", "x":5.5, "y":1.5}, {"label":"@", "x":6.5, "y":1.5}, {"label":"#", "x":7.5, "y":1.5}, {"label":"$", "x":8.5, "y":1.5}, {"label":"%", "x":9.5, "y":1.5}, {"label":"^", "x":10.5, "y":1.5}, {"label":"&", "x":12.25, "y":1.5}, {"label":"*", "x":13.25, "y":1.5}, {"label":"(", "x":14.25, "y":1.5}, {"label":")", "x":15.25, "y":1.5}, {"label":"_", "x":16.25, "y":1.5}, {"label":"+", "x":17.25, "y":1.5}, {"label":"Backspace", "x":18.25, "y":1.5}, {"label":"Backspace2", "x":19.25, "y":1.5}, {"label":"Home", "x":20.5, "y":1.5}, {"label":"Insert", "x":21.5, "y":1.5}, {"label":"7", "x":0, "y":2.5}, {"label":"8", "x":1, "y":2.5}, {"label":"9", "x":2, "y":2.5}, {"label":"+", "x":3, "y":2.5}, {"label":"Tab", "x":4.5, "y":2.5, "w":1.5}, {"label":"Q", "x":6, "y":2.5}, {"label":"W", "x":7, "y":2.5}, {"label":"E", "x":8, "y":2.5}, {"label":"R", "x":9, "y":2.5}, {"label":"T", "x":10, "y":2.5}, {"label":"Y", "x":11.75, "y":2.5}, {"label":"U", "x":12.75, "y":2.5}, {"label":"I", "x":13.75, "y":2.5}, {"label":"O", "x":14.75, "y":2.5}, {"label":"P", "x":15.75, "y":2.5}, {"label":"{", "x":16.75, "y":2.5}, {"label":"}", "x":17.75, "y":2.5}, {"label":"|", "x":18.75, "y":2.5, "w":1.5}, {"label":"End", "x":20.5, "y":2.5}, {"label":"Delete", "x":21.5, "y":2.5}, - {"label":"4", "x":0, "y":3.5}, {"label":"5", "x":1, "y":3.5}, {"label":"6", "x":2, "y":3.5}, {"label":"=", "x":3, "y":3.5}, {"label":"Caps Lock", "x":4.5, "y":3.5, "w":1.75}, {"label":"A", "x":6.25, "y":3.5}, {"label":"S", "x":7.25, "y":3.5}, {"label":"D", "x":8.25, "y":3.5}, {"label":"F", "x":9.25, "y":3.5}, {"label":"G", "x":10.25, "y":3.5}, {"label":"H", "x":12, "y":3.5}, {"label":"J", "x":13, "y":3.5}, {"label":"K", "x":14, "y":3.5}, {"label":"L", "x":15, "y":3.5}, {"label":":", "x":16, "y":3.5}, {"label":"\"", "x":17, "y":3.5}, {"label":"Enter", "x":18, "y":3.5, "w":2.25}, {"label":"PgUp", "x":20.5, "y":3.5}, {"label":"PgDn", "x":21.5, "y":3.5}, + {"label":"4", "x":0, "y":3.5}, {"label":"5", "x":1, "y":3.5}, {"label":"6", "x":2, "y":3.5}, {"label":"=", "x":3, "y":3.5}, {"label":"Caps Lock", "x":4.5, "y":3.5, "w":1.75}, {"label":"A", "x":6.25, "y":3.5}, {"label":"S", "x":7.25, "y":3.5}, {"label":"D", "x":8.25, "y":3.5}, {"label":"F", "x":9.25, "y":3.5}, {"label":"G", "x":10.25, "y":3.5}, {"label":"H", "x":12, "y":3.5}, {"label":"J", "x":13, "y":3.5}, {"label":"K", "x":14, "y":3.5}, {"label":"L", "x":15, "y":3.5}, {"label":":", "x":16, "y":3.5}, {"label":"\"", "x":17, "y":3.5}, {"label":"#", "x":18, "y":3.5, "w":1}, {"label":"Enter", "x":19, "y":3.5, "w":1.25}, {"label":"PgUp", "x":20.5, "y":3.5}, {"label":"PgDn", "x":21.5, "y":3.5}, {"label":"1", "x":0, "y":4.5}, {"label":"2", "x":1, "y":4.5}, {"label":"3", "x":2, "y":4.5}, {"label":"Enter", "x":3, "y":4.5}, {"label":"Shift", "x":4.5, "y":4.5, "w":1.25}, {"label":"numbs", "x":5.75, "y":4.5, "w":1}, {"label":"Z", "x":6.75, "y":4.5}, {"label":"X", "x":7.75, "y":4.5}, {"label":"C", "x":8.75, "y":4.5}, {"label":"V", "x":9.75, "y":4.5}, {"label":"B", "x":10.75, "y":4.5}, {"label":"N", "x":12.5, "y":4.5}, {"label":"M", "x":13.5, "y":4.5}, {"label":"<", "x":14.5, "y":4.5}, {"label":">", "x":15.5, "y":4.5}, {"label":"?", "x":16.5, "y":4.5}, {"label":"Shift", "x":17.5, "y":4.5, "w":1.75}, {"label":"Fn", "x":19.25, "y":4.5}, {"label":"\u2191", "x":20.5, "y":4.75}, {"label":"0", "x":0, "y":5.5}, {"label":"00", "x":1, "y":5.5}, {"label":".", "x":2, "y":5.5}, {"label":"..", "x":3, "y":5.5}, {"label":"Ctrl", "x":4.5, "y":5.5, "w":1.25}, {"label":"Code", "x":5.75, "y":5.5, "w":1.25}, {"label":"Alt", "x":7, "y":5.5, "w":1.25}, {"label":"Fn", "x":8.25, "y":5.5, "w":1}, {"label":"", "x":9.25, "y":5.5, "w":2.25}, {"label":"", "x":12.25, "y":5.5, "w":2.25}, {"label":"", "x":14.5, "y":5.5, "w":1}, {"label":"Alt", "x":15.5, "y":5.5, "w":1.25}, {"label":"Code", "x":16.75, "y":5.5, "w":1.25}, {"label":"Ctrl", "x":18, "y":5.5, "w":1.25}, {"label":"\u2190", "x":19.5, "y":5.75}, {"label":"\u2193", "x":20.5, "y":5.75}, {"label":"\u2192", "x":21.5, "y":5.75} ] diff --git a/keyboards/sp111/keymaps/default/keymap.c b/keyboards/viktus/sp111/keymaps/default/keymap.c similarity index 96% rename from keyboards/sp111/keymaps/default/keymap.c rename to keyboards/viktus/sp111/keymaps/default/keymap.c index 0cb29f42a09..11571e37a2b 100644 --- a/keyboards/sp111/keymaps/default/keymap.c +++ b/keyboards/viktus/sp111/keymaps/default/keymap.c @@ -31,7 +31,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_MUTE, KC_MPRV, KC_MPLY, KC_MNXT, KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_HOME, KC_INS, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_END, KC_DEL, - KC_P4, KC_P5, KC_P6, KC_PEQL, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, KC_PGDN, + KC_P4, KC_P5, KC_P6, KC_PEQL, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGUP, KC_PGDN, KC_P1, KC_P2, KC_P3, KC_PENT, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN), KC_UP, KC_P0, KC_P0, KC_P00, KC_PDOT, KC_LCTL, KC_LGUI, KC_LALT, KC_MUTE, KC_SPC, KC_SPC, KC_APP, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), @@ -39,7 +39,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), }; diff --git a/keyboards/sp111/keymaps/via/config.h b/keyboards/viktus/sp111/keymaps/via/config.h similarity index 100% rename from keyboards/sp111/keymaps/via/config.h rename to keyboards/viktus/sp111/keymaps/via/config.h diff --git a/keyboards/sp111/keymaps/via/keymap.c b/keyboards/viktus/sp111/keymaps/via/keymap.c similarity index 94% rename from keyboards/sp111/keymaps/via/keymap.c rename to keyboards/viktus/sp111/keymaps/via/keymap.c index 1cb4380dd5e..37dacc38356 100644 --- a/keyboards/sp111/keymaps/via/keymap.c +++ b/keyboards/viktus/sp111/keymaps/via/keymap.c @@ -20,15 +20,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_MUTE, KC_MPRV, KC_MPLY, KC_MNXT, KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_HOME, KC_INS, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_END, KC_DEL, - KC_P4, KC_P5, KC_P6, KC_PEQL, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, KC_PGDN, + KC_P4, KC_P5, KC_P6, KC_PEQL, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGUP, KC_PGDN, KC_P1, KC_P2, KC_P3, KC_PENT, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP, - KC_P0, KC_P0, KC_P0, KC_PDOT, KC_LCTL, KC_LGUI, KC_LALT, KC_MUTE, KC_SPC, KC_SPC, KC_APP, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + KC_P0, KC_P0, KC_PDOT, KC_PDOT, KC_LCTL, KC_LGUI, KC_LALT, KC_MUTE, KC_SPC, KC_SPC, KC_APP, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), [1] = LAYOUT_all( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), @@ -36,7 +36,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), }; diff --git a/keyboards/viktus/sp111/keymaps/via/rules.mk b/keyboards/viktus/sp111/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/viktus/sp111/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/sp111/matrix.c b/keyboards/viktus/sp111/matrix.c similarity index 100% rename from keyboards/sp111/matrix.c rename to keyboards/viktus/sp111/matrix.c diff --git a/keyboards/sp111/mcp23018.c b/keyboards/viktus/sp111/mcp23018.c similarity index 100% rename from keyboards/sp111/mcp23018.c rename to keyboards/viktus/sp111/mcp23018.c diff --git a/keyboards/sp111/mcp23018.h b/keyboards/viktus/sp111/mcp23018.h similarity index 100% rename from keyboards/sp111/mcp23018.h rename to keyboards/viktus/sp111/mcp23018.h diff --git a/keyboards/sp111/readme.md b/keyboards/viktus/sp111/readme.md similarity index 92% rename from keyboards/sp111/readme.md rename to keyboards/viktus/sp111/readme.md index b9f8f02e07a..608fd402b6f 100644 --- a/keyboards/sp111/readme.md +++ b/keyboards/viktus/sp111/readme.md @@ -12,10 +12,10 @@ Right side layout to maintain the functionality of a full size board in a much m Make example for this keyboard (after setting up your build environment): - make sp111:default + make viktus/sp111:default Flashing example for this keyboard: - make sp111:default:flash + make viktus/sp111: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/sp111/rules.mk b/keyboards/viktus/sp111/rules.mk similarity index 100% rename from keyboards/sp111/rules.mk rename to keyboards/viktus/sp111/rules.mk diff --git a/keyboards/sp111/sp111.c b/keyboards/viktus/sp111/sp111.c similarity index 100% rename from keyboards/sp111/sp111.c rename to keyboards/viktus/sp111/sp111.c diff --git a/keyboards/viktus/sp111/sp111.h b/keyboards/viktus/sp111/sp111.h new file mode 100644 index 00000000000..b5f3a97d85e --- /dev/null +++ b/keyboards/viktus/sp111/sp111.h @@ -0,0 +1,41 @@ +/* Copyright 2020 blindassassin111 + * + * 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 ___ KC_NO + +#define LAYOUT_all( \ + L00, L01, L02, L03, L04, L05, L06, L07, L08, L09, L0A, R01, R02, R03, R04, R05, R06, R07, R08, R09, \ + L10, L11, L12, L13, L14, L15, L16, L17, L18, L19, L0B, R10, R11, R12, R13, R14, R15, R16, R17, R18, R19, \ + L20, L21, L22, L23, L24, L25, L26, L27, L28, L29, R20, R21, R22, R23, R24, R25, R26, R27, R28, R29, \ + L30, L31, L32, L33, L34, L35, L36, L37, L38, L39, R30, R31, R32, R33, R34, R35, R36, R37, R38, R39, \ + L40, L41, L42, L43, L44, L45, L46, L47, L48, L49, L4A, R41, R42, R43, R44, R45, R46, R47, R48, \ + L50, L51, L52, L53, L54, L55, L56, L57, L58, R52, R53, R54, R55, R56, R57, R49, R59 \ +) { \ + { L00, L01, L02, L03, L04, L05, L06, L07, L08, L09, L0A }, \ + { L10, L11, L12, L13, L14, L15, L16, L17, L18, L19, L0B }, \ + { L20, L21, L22, L23, L24, L25, L26, L27, L28, L29, ___ }, \ + { L30, L31, L32, L33, L34, L35, L36, L37, L38, L39, ___ }, \ + { L40, L41, L42, L43, L44, L45, L46, L47, L48, L49, L4A }, \ + { L50, L51, L52, L53, L54, L55, L56, L57, L58, ___, ___ }, \ + { ___, R01, R02, R03, R04, R05, R06, R07, R08, R09, ___ }, \ + { R10, R11, R12, R13, R14, R15, R16, R17, R18, R19, ___ }, \ + { R20, R21, R22, R23, R24, R25, R26, R27, R28, R29, ___ }, \ + { R30, R31, R32, R33, R34, R35, R36, R37, R38, R39, ___ }, \ + { ___, R41, R42, R43, R44, R45, R46, R47, R48, ___, ___ }, \ + { ___, ___, R52, R53, R54, R55, R56, R57, R49, R59, ___ } \ +} diff --git a/keyboards/whitefox/config.h b/keyboards/whitefox/config.h index 87af4edcfcb..4d7a460d266 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 */ +/* 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 -/* Set 0 if debouncing isn't needed */ -#define DEBOUNCE 6 - /* 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 -/* Keymap for Infinity 1.1a (first revision with LED support) */ -//#define INFINITY_LED +#define LED_BRIGHTNESS_LO 100 +#define LED_BRIGHTNESS_HI 255 + +/* 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 fc2ffea12f3..715f728104d 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}] - }, + "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}, - "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}] - }, + {"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}, - "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} - ] + {"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 d0f329ebaf7..30b21c39d2d 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 c6f2c8d621c..00000000000 --- 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 2555dc2025c..ea083c6e09c 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(); -}; - diff --git a/keyboards/whitefox/whitefox.h b/keyboards/whitefox/whitefox.h index 0c19e2daa4a..19d59ad663b 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 \ -) { \ - { 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 } \ -} - -/* 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( \ + 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, 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, k74, 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_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_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, 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, 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 } \ } -/* 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_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_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 }, \ - { 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, 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 } \ } -#endif +/* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ + * │   │   │   │   │   │   │   │   │   │   │   │   │   │       │   │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ + * │     │   │   │   │   │   │   │   │   │   │   │   │   │     │   │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐    ├───┤ + * │      │   │   │   │   │   │   │   │   │   │   │   │   │    │   │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┼───┤ + * │    │   │   │   │   │   │   │   │   │   │   │   │      │   │   │ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤ + * │    │    │    │                        │   │   │   │   │   │   │ + * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘ + */ +#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, 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 } \ +} + +/* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ + * │   │   │   │   │   │   │   │   │   │   │   │   │   │       │   │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ + * │     │   │   │   │   │   │   │   │   │   │   │   │   │     │   │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐    ├───┤ + * │      │   │   │   │   │   │   │   │   │   │   │   │   │    │   │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┼───┤ + * │    │   │   │   │   │   │   │   │   │   │   │   │      │   │   │ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ + * │    │    │    │                        │    │    │ │   │   │   │ + * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ + */ +#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_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, 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 } \ +} + +#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 393d70fdc6e..00000000000 --- 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 fcd4da1affc..d0a9f226601 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/kangaroo/chconf.h b/keyboards/xelus/kangaroo/chconf.h new file mode 100644 index 00000000000..03f63da36a8 --- /dev/null +++ b/keyboards/xelus/kangaroo/chconf.h @@ -0,0 +1,714 @@ +/* + ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +/** + * @file rt/templates/chconf.h + * @brief Configuration file template. + * @details A copy of this file must be placed in each project directory, it + * contains the application specific kernel settings. + * + * @addtogroup config + * @details Kernel related settings and hooks. + * @{ + */ + +#ifndef CHCONF_H +#define CHCONF_H + +#define _CHIBIOS_RT_CONF_ +#define _CHIBIOS_RT_CONF_VER_6_0_ + +/*===========================================================================*/ +/** + * @name System timers settings + * @{ + */ +/*===========================================================================*/ + +/** + * @brief System time counter resolution. + * @note Allowed values are 16 or 32 bits. + */ +#if !defined(CH_CFG_ST_RESOLUTION) +#define CH_CFG_ST_RESOLUTION 32 +#endif + +/** + * @brief System tick frequency. + * @details Frequency of the system timer that drives the system ticks. This + * setting also defines the system tick time unit. + */ +#if !defined(CH_CFG_ST_FREQUENCY) +#define CH_CFG_ST_FREQUENCY 10000 +#endif + +/** + * @brief Time intervals data size. + * @note Allowed values are 16, 32 or 64 bits. + */ +#if !defined(CH_CFG_INTERVALS_SIZE) +#define CH_CFG_INTERVALS_SIZE 32 +#endif + +/** + * @brief Time types data size. + * @note Allowed values are 16 or 32 bits. + */ +#if !defined(CH_CFG_TIME_TYPES_SIZE) +#define CH_CFG_TIME_TYPES_SIZE 32 +#endif + +/** + * @brief Time delta constant for the tick-less mode. + * @note If this value is zero then the system uses the classic + * periodic tick. This value represents the minimum number + * of ticks that is safe to specify in a timeout directive. + * The value one is not valid, timeouts are rounded up to + * this value. + */ +#if !defined(CH_CFG_ST_TIMEDELTA) +#define CH_CFG_ST_TIMEDELTA 2 +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Kernel parameters and options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Round robin interval. + * @details This constant is the number of system ticks allowed for the + * threads before preemption occurs. Setting this value to zero + * disables the preemption for threads with equal priority and the + * round robin becomes cooperative. Note that higher priority + * threads can still preempt, the kernel is always preemptive. + * @note Disabling the round robin preemption makes the kernel more compact + * and generally faster. + * @note The round robin preemption is not supported in tickless mode and + * must be set to zero in that case. + */ +#if !defined(CH_CFG_TIME_QUANTUM) +#define CH_CFG_TIME_QUANTUM 0 +#endif + +/** + * @brief Managed RAM size. + * @details Size of the RAM area to be managed by the OS. If set to zero + * then the whole available RAM is used. The core memory is made + * available to the heap allocator and/or can be used directly through + * the simplified core memory allocator. + * + * @note In order to let the OS manage the whole RAM the linker script must + * provide the @p __heap_base__ and @p __heap_end__ symbols. + * @note Requires @p CH_CFG_USE_MEMCORE. + */ +#if !defined(CH_CFG_MEMCORE_SIZE) +#define CH_CFG_MEMCORE_SIZE 0 +#endif + +/** + * @brief Idle thread automatic spawn suppression. + * @details When this option is activated the function @p chSysInit() + * does not spawn the idle thread. The application @p main() + * function becomes the idle thread and must implement an + * infinite loop. + */ +#if !defined(CH_CFG_NO_IDLE_THREAD) +#define CH_CFG_NO_IDLE_THREAD FALSE +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Performance options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief OS optimization. + * @details If enabled then time efficient rather than space efficient code + * is used when two possible implementations exist. + * + * @note This is not related to the compiler optimization options. + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_OPTIMIZE_SPEED) +#define CH_CFG_OPTIMIZE_SPEED FALSE +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Subsystem options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Time Measurement APIs. + * @details If enabled then the time measurement APIs are included in + * the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_TM) +#define CH_CFG_USE_TM FALSE +#endif + +/** + * @brief Threads registry APIs. + * @details If enabled then the registry APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_REGISTRY) +#define CH_CFG_USE_REGISTRY TRUE +#endif + +/** + * @brief Threads synchronization APIs. + * @details If enabled then the @p chThdWait() function is included in + * the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_WAITEXIT) +#define CH_CFG_USE_WAITEXIT TRUE +#endif + +/** + * @brief Semaphores APIs. + * @details If enabled then the Semaphores APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_SEMAPHORES) +#define CH_CFG_USE_SEMAPHORES TRUE +#endif + +/** + * @brief Semaphores queuing mode. + * @details If enabled then the threads are enqueued on semaphores by + * priority rather than in FIFO order. + * + * @note The default is @p FALSE. Enable this if you have special + * requirements. + * @note Requires @p CH_CFG_USE_SEMAPHORES. + */ +#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY) +#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE +#endif + +/** + * @brief Mutexes APIs. + * @details If enabled then the mutexes APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_MUTEXES) +#define CH_CFG_USE_MUTEXES TRUE +#endif + +/** + * @brief Enables recursive behavior on mutexes. + * @note Recursive mutexes are heavier and have an increased + * memory footprint. + * + * @note The default is @p FALSE. + * @note Requires @p CH_CFG_USE_MUTEXES. + */ +#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE) +#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE +#endif + +/** + * @brief Conditional Variables APIs. + * @details If enabled then the conditional variables APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_MUTEXES. + */ +#if !defined(CH_CFG_USE_CONDVARS) +#define CH_CFG_USE_CONDVARS TRUE +#endif + +/** + * @brief Conditional Variables APIs with timeout. + * @details If enabled then the conditional variables APIs with timeout + * specification are included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_CONDVARS. + */ +#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT) +#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE +#endif + +/** + * @brief Events Flags APIs. + * @details If enabled then the event flags APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_EVENTS) +#define CH_CFG_USE_EVENTS TRUE +#endif + +/** + * @brief Events Flags APIs with timeout. + * @details If enabled then the events APIs with timeout specification + * are included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_EVENTS. + */ +#if !defined(CH_CFG_USE_EVENTS_TIMEOUT) +#define CH_CFG_USE_EVENTS_TIMEOUT TRUE +#endif + +/** + * @brief Synchronous Messages APIs. + * @details If enabled then the synchronous messages APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_MESSAGES) +#define CH_CFG_USE_MESSAGES TRUE +#endif + +/** + * @brief Synchronous Messages queuing mode. + * @details If enabled then messages are served by priority rather than in + * FIFO order. + * + * @note The default is @p FALSE. Enable this if you have special + * requirements. + * @note Requires @p CH_CFG_USE_MESSAGES. + */ +#if !defined(CH_CFG_USE_MESSAGES_PRIORITY) +#define CH_CFG_USE_MESSAGES_PRIORITY FALSE +#endif + +/** + * @brief Mailboxes APIs. + * @details If enabled then the asynchronous messages (mailboxes) APIs are + * included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_SEMAPHORES. + */ +#if !defined(CH_CFG_USE_MAILBOXES) +#define CH_CFG_USE_MAILBOXES TRUE +#endif + +/** + * @brief Core Memory Manager APIs. + * @details If enabled then the core memory manager APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_MEMCORE) +#define CH_CFG_USE_MEMCORE TRUE +#endif + +/** + * @brief Heap Allocator APIs. + * @details If enabled then the memory heap allocator APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or + * @p CH_CFG_USE_SEMAPHORES. + * @note Mutexes are recommended. + */ +#if !defined(CH_CFG_USE_HEAP) +#define CH_CFG_USE_HEAP FALSE +#endif + +/** + * @brief Memory Pools Allocator APIs. + * @details If enabled then the memory pools allocator APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_MEMPOOLS) +#define CH_CFG_USE_MEMPOOLS FALSE +#endif + +/** + * @brief Objects FIFOs APIs. + * @details If enabled then the objects FIFOs APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_OBJ_FIFOS) +#define CH_CFG_USE_OBJ_FIFOS FALSE +#endif + +/** + * @brief Pipes APIs. + * @details If enabled then the pipes APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_PIPES) +#define CH_CFG_USE_PIPES FALSE +#endif + +/** + * @brief Dynamic Threads APIs. + * @details If enabled then the dynamic threads creation APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_WAITEXIT. + * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS. + */ +#if !defined(CH_CFG_USE_DYNAMIC) +#define CH_CFG_USE_DYNAMIC FALSE +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Objects factory options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Objects Factory APIs. + * @details If enabled then the objects factory APIs are included in the + * kernel. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_CFG_USE_FACTORY) +#define CH_CFG_USE_FACTORY FALSE +#endif + +/** + * @brief Maximum length for object names. + * @details If the specified length is zero then the name is stored by + * pointer but this could have unintended side effects. + */ +#if !defined(CH_CFG_FACTORY_MAX_NAMES_LENGTH) +#define CH_CFG_FACTORY_MAX_NAMES_LENGTH 8 +#endif + +/** + * @brief Enables the registry of generic objects. + */ +#if !defined(CH_CFG_FACTORY_OBJECTS_REGISTRY) +#define CH_CFG_FACTORY_OBJECTS_REGISTRY FALSE +#endif + +/** + * @brief Enables factory for generic buffers. + */ +#if !defined(CH_CFG_FACTORY_GENERIC_BUFFERS) +#define CH_CFG_FACTORY_GENERIC_BUFFERS FALSE +#endif + +/** + * @brief Enables factory for semaphores. + */ +#if !defined(CH_CFG_FACTORY_SEMAPHORES) +#define CH_CFG_FACTORY_SEMAPHORES FALSE +#endif + +/** + * @brief Enables factory for mailboxes. + */ +#if !defined(CH_CFG_FACTORY_MAILBOXES) +#define CH_CFG_FACTORY_MAILBOXES FALSE +#endif + +/** + * @brief Enables factory for objects FIFOs. + */ +#if !defined(CH_CFG_FACTORY_OBJ_FIFOS) +#define CH_CFG_FACTORY_OBJ_FIFOS FALSE +#endif + +/** + * @brief Enables factory for Pipes. + */ +#if !defined(CH_CFG_FACTORY_PIPES) || defined(__DOXYGEN__) +#define CH_CFG_FACTORY_PIPES FALSE +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Debug options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Debug option, kernel statistics. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_STATISTICS) +#define CH_DBG_STATISTICS FALSE +#endif + +/** + * @brief Debug option, system state check. + * @details If enabled the correct call protocol for system APIs is checked + * at runtime. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_SYSTEM_STATE_CHECK) +#define CH_DBG_SYSTEM_STATE_CHECK FALSE +#endif + +/** + * @brief Debug option, parameters checks. + * @details If enabled then the checks on the API functions input + * parameters are activated. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_ENABLE_CHECKS) +#define CH_DBG_ENABLE_CHECKS FALSE +#endif + +/** + * @brief Debug option, consistency checks. + * @details If enabled then all the assertions in the kernel code are + * activated. This includes consistency checks inside the kernel, + * runtime anomalies and port-defined checks. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_ENABLE_ASSERTS) +#define CH_DBG_ENABLE_ASSERTS FALSE +#endif + +/** + * @brief Debug option, trace buffer. + * @details If enabled then the trace buffer is activated. + * + * @note The default is @p CH_DBG_TRACE_MASK_DISABLED. + */ +#if !defined(CH_DBG_TRACE_MASK) +#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED +#endif + +/** + * @brief Trace buffer entries. + * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is + * different from @p CH_DBG_TRACE_MASK_DISABLED. + */ +#if !defined(CH_DBG_TRACE_BUFFER_SIZE) +#define CH_DBG_TRACE_BUFFER_SIZE 128 +#endif + +/** + * @brief Debug option, stack checks. + * @details If enabled then a runtime stack check is performed. + * + * @note The default is @p FALSE. + * @note The stack check is performed in a architecture/port dependent way. + * It may not be implemented or some ports. + * @note The default failure mode is to halt the system with the global + * @p panic_msg variable set to @p NULL. + */ +#if !defined(CH_DBG_ENABLE_STACK_CHECK) +#define CH_DBG_ENABLE_STACK_CHECK FALSE +#endif + +/** + * @brief Debug option, stacks initialization. + * @details If enabled then the threads working area is filled with a byte + * value when a thread is created. This can be useful for the + * runtime measurement of the used stack. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_FILL_THREADS) +#define CH_DBG_FILL_THREADS FALSE +#endif + +/** + * @brief Debug option, threads profiling. + * @details If enabled then a field is added to the @p thread_t structure that + * counts the system ticks occurred while executing the thread. + * + * @note The default is @p FALSE. + * @note This debug option is not currently compatible with the + * tickless mode. + */ +#if !defined(CH_DBG_THREADS_PROFILING) +#define CH_DBG_THREADS_PROFILING FALSE +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Kernel hooks + * @{ + */ +/*===========================================================================*/ + +/** + * @brief System structure extension. + * @details User fields added to the end of the @p ch_system_t structure. + */ +#define CH_CFG_SYSTEM_EXTRA_FIELDS \ + /* Add threads custom fields here.*/ + +/** + * @brief System initialization hook. + * @details User initialization code added to the @p chSysInit() function + * just before interrupts are enabled globally. + */ +#define CH_CFG_SYSTEM_INIT_HOOK() { \ + /* Add threads initialization code here.*/ \ +} + +/** + * @brief Threads descriptor structure extension. + * @details User fields added to the end of the @p thread_t structure. + */ +#define CH_CFG_THREAD_EXTRA_FIELDS \ + /* Add threads custom fields here.*/ + +/** + * @brief Threads initialization hook. + * @details User initialization code added to the @p _thread_init() function. + * + * @note It is invoked from within @p _thread_init() and implicitly from all + * the threads creation APIs. + */ +#define CH_CFG_THREAD_INIT_HOOK(tp) { \ + /* Add threads initialization code here.*/ \ +} + +/** + * @brief Threads finalization hook. + * @details User finalization code added to the @p chThdExit() API. + */ +#define CH_CFG_THREAD_EXIT_HOOK(tp) { \ + /* Add threads finalization code here.*/ \ +} + +/** + * @brief Context switch hook. + * @details This hook is invoked just before switching between threads. + */ +#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \ + /* Context switch code here.*/ \ +} + +/** + * @brief ISR enter hook. + */ +#define CH_CFG_IRQ_PROLOGUE_HOOK() { \ + /* IRQ prologue code here.*/ \ +} + +/** + * @brief ISR exit hook. + */ +#define CH_CFG_IRQ_EPILOGUE_HOOK() { \ + /* IRQ epilogue code here.*/ \ +} + +/** + * @brief Idle thread enter hook. + * @note This hook is invoked within a critical zone, no OS functions + * should be invoked from here. + * @note This macro can be used to activate a power saving mode. + */ +#define CH_CFG_IDLE_ENTER_HOOK() { \ + /* Idle-enter code here.*/ \ +} + +/** + * @brief Idle thread leave hook. + * @note This hook is invoked within a critical zone, no OS functions + * should be invoked from here. + * @note This macro can be used to deactivate a power saving mode. + */ +#define CH_CFG_IDLE_LEAVE_HOOK() { \ + /* Idle-leave code here.*/ \ +} + +/** + * @brief Idle Loop hook. + * @details This hook is continuously invoked by the idle thread loop. + */ +#define CH_CFG_IDLE_LOOP_HOOK() { \ + /* Idle loop code here.*/ \ +} + +/** + * @brief System tick event hook. + * @details This hook is invoked in the system tick handler immediately + * after processing the virtual timers queue. + */ +#define CH_CFG_SYSTEM_TICK_HOOK() { \ + /* System tick event code here.*/ \ +} + +/** + * @brief System halt hook. + * @details This hook is invoked in case to a system halting error before + * the system is halted. + */ +#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \ + /* System halt code here.*/ \ +} + +/** + * @brief Trace hook. + * @details This hook is invoked each time a new record is written in the + * trace buffer. + */ +#define CH_CFG_TRACE_HOOK(tep) { \ + /* Trace code here.*/ \ +} + +/** @} */ + +/*===========================================================================*/ +/* Port-specific settings (override port settings defaulted in chcore.h). */ +/*===========================================================================*/ + +#endif /* CHCONF_H */ + +/** @} */ diff --git a/keyboards/xelus/kangaroo/config.h b/keyboards/xelus/kangaroo/config.h new file mode 100644 index 00000000000..0c3e6e291b3 --- /dev/null +++ b/keyboards/xelus/kangaroo/config.h @@ -0,0 +1,62 @@ +/* Copyright 2020 Harrison Chan (Xelus) + * + * 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 0x5845 // XE +#define PRODUCT_ID 0x524F // RO +#define DEVICE_VER 0x0001 +#define MANUFACTURER Xelus +#define PRODUCT Kangaroo + +/* key matrix size */ +#define MATRIX_ROWS 12 +#define MATRIX_COLS 11 + +#define MATRIX_COL_PINS { B10, B2, B11, A10, B7, B6, B5, B4, B3, A15, A14 } +#define MATRIX_ROW_PINS { A9, A8, B15, B14, B13, B12, A4, A5, A6, A7, B0, B1 } +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +// I2C OLED defines +#define I2C1_SCL 8 +#define I2C1_SDA 9 + +#define I2C1_SCL_PAL_MODE 1 +#define I2C1_SDA_PAL_MODE 1 + +#define I2C1_TIMINGR_PRESC 0U +#define I2C1_TIMINGR_SCLDEL 3U +#define I2C1_TIMINGR_SDADEL 1U +#define I2C1_TIMINGR_SCLH 3U +#define I2C1_TIMINGR_SCLL 9U + +// I2C EEPROM +#define EEPROM_I2C_CAT24C512 + +// Dynamic EEPROM +#define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 65535 diff --git a/keyboards/xelus/kangaroo/halconf.h b/keyboards/xelus/kangaroo/halconf.h new file mode 100644 index 00000000000..de0f29ce6ed --- /dev/null +++ b/keyboards/xelus/kangaroo/halconf.h @@ -0,0 +1,525 @@ +/* + ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +/** + * @file templates/halconf.h + * @brief HAL configuration header. + * @details HAL configuration file, this file allows to enable or disable the + * various device drivers from your application. You may also use + * this file in order to override the device drivers default settings. + * + * @addtogroup HAL_CONF + * @{ + */ + +#ifndef HALCONF_H +#define HALCONF_H + +#define _CHIBIOS_HAL_CONF_ +#define _CHIBIOS_HAL_CONF_VER_7_0_ + +#include "mcuconf.h" + +/** + * @brief Enables the PAL subsystem. + */ +#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) +#define HAL_USE_PAL TRUE +#endif + +/** + * @brief Enables the ADC subsystem. + */ +#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) +#define HAL_USE_ADC FALSE +#endif + +/** + * @brief Enables the CAN subsystem. + */ +#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) +#define HAL_USE_CAN FALSE +#endif + +/** + * @brief Enables the cryptographic subsystem. + */ +#if !defined(HAL_USE_CRY) || defined(__DOXYGEN__) +#define HAL_USE_CRY FALSE +#endif + +/** + * @brief Enables the DAC subsystem. + */ +#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__) +#define HAL_USE_DAC FALSE +#endif + +/** + * @brief Enables the GPT subsystem. + */ +#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) +#define HAL_USE_GPT FALSE +#endif + +/** + * @brief Enables the I2C subsystem. + */ +#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) +#define HAL_USE_I2C TRUE +#endif + +/** + * @brief Enables the I2S subsystem. + */ +#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__) +#define HAL_USE_I2S FALSE +#endif + +/** + * @brief Enables the ICU subsystem. + */ +#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) +#define HAL_USE_ICU FALSE +#endif + +/** + * @brief Enables the MAC subsystem. + */ +#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) +#define HAL_USE_MAC FALSE +#endif + +/** + * @brief Enables the MMC_SPI subsystem. + */ +#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) +#define HAL_USE_MMC_SPI FALSE +#endif + +/** + * @brief Enables the PWM subsystem. + */ +#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) +#define HAL_USE_PWM FALSE +#endif + +/** + * @brief Enables the RTC subsystem. + */ +#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) +#define HAL_USE_RTC FALSE +#endif + +/** + * @brief Enables the SDC subsystem. + */ +#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) +#define HAL_USE_SDC FALSE +#endif + +/** + * @brief Enables the SERIAL subsystem. + */ +#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) +#define HAL_USE_SERIAL FALSE +#endif + +/** + * @brief Enables the SERIAL over USB subsystem. + */ +#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) +#define HAL_USE_SERIAL_USB FALSE +#endif + +/** + * @brief Enables the SIO subsystem. + */ +#if !defined(HAL_USE_SIO) || defined(__DOXYGEN__) +#define HAL_USE_SIO FALSE +#endif + +/** + * @brief Enables the SPI subsystem. + */ +#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) +#define HAL_USE_SPI FALSE +#endif + +/** + * @brief Enables the TRNG subsystem. + */ +#if !defined(HAL_USE_TRNG) || defined(__DOXYGEN__) +#define HAL_USE_TRNG FALSE +#endif + +/** + * @brief Enables the UART subsystem. + */ +#if !defined(HAL_USE_UART) || defined(__DOXYGEN__) +#define HAL_USE_UART FALSE +#endif + +/** + * @brief Enables the USB subsystem. + */ +#if !defined(HAL_USE_USB) || defined(__DOXYGEN__) +#define HAL_USE_USB TRUE +#endif + +/** + * @brief Enables the WDG subsystem. + */ +#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__) +#define HAL_USE_WDG FALSE +#endif + +/** + * @brief Enables the WSPI subsystem. + */ +#if !defined(HAL_USE_WSPI) || defined(__DOXYGEN__) +#define HAL_USE_WSPI FALSE +#endif + +/*===========================================================================*/ +/* PAL driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(PAL_USE_CALLBACKS) || defined(__DOXYGEN__) +#define PAL_USE_CALLBACKS FALSE +#endif + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(PAL_USE_WAIT) || defined(__DOXYGEN__) +#define PAL_USE_WAIT FALSE +#endif + +/*===========================================================================*/ +/* ADC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__) +#define ADC_USE_WAIT TRUE +#endif + +/** + * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define ADC_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* CAN driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Sleep mode related APIs inclusion switch. + */ +#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__) +#define CAN_USE_SLEEP_MODE TRUE +#endif + +/** + * @brief Enforces the driver to use direct callbacks rather than OSAL events. + */ +#if !defined(CAN_ENFORCE_USE_CALLBACKS) || defined(__DOXYGEN__) +#define CAN_ENFORCE_USE_CALLBACKS FALSE +#endif + +/*===========================================================================*/ +/* CRY driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the SW fall-back of the cryptographic driver. + * @details When enabled, this option, activates a fall-back software + * implementation for algorithms not supported by the underlying + * hardware. + * @note Fall-back implementations may not be present for all algorithms. + */ +#if !defined(HAL_CRY_USE_FALLBACK) || defined(__DOXYGEN__) +#define HAL_CRY_USE_FALLBACK FALSE +#endif + +/** + * @brief Makes the driver forcibly use the fall-back implementations. + */ +#if !defined(HAL_CRY_ENFORCE_FALLBACK) || defined(__DOXYGEN__) +#define HAL_CRY_ENFORCE_FALLBACK FALSE +#endif + +/*===========================================================================*/ +/* DAC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(DAC_USE_WAIT) || defined(__DOXYGEN__) +#define DAC_USE_WAIT TRUE +#endif + +/** + * @brief Enables the @p dacAcquireBus() and @p dacReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(DAC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define DAC_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* I2C driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the mutual exclusion APIs on the I2C bus. + */ +#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define I2C_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* MAC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the zero-copy API. + */ +#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__) +#define MAC_USE_ZERO_COPY FALSE +#endif + +/** + * @brief Enables an event sources for incoming packets. + */ +#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__) +#define MAC_USE_EVENTS TRUE +#endif + +/*===========================================================================*/ +/* MMC_SPI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Delays insertions. + * @details If enabled this options inserts delays into the MMC waiting + * routines releasing some extra CPU time for the threads with + * lower priority, this may slow down the driver a bit however. + * This option is recommended also if the SPI driver does not + * use a DMA channel and heavily loads the CPU. + */ +#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__) +#define MMC_NICE_WAITING TRUE +#endif + +/*===========================================================================*/ +/* SDC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Number of initialization attempts before rejecting the card. + * @note Attempts are performed at 10mS intervals. + */ +#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__) +#define SDC_INIT_RETRY 100 +#endif + +/** + * @brief Include support for MMC cards. + * @note MMC support is not yet implemented so this option must be kept + * at @p FALSE. + */ +#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__) +#define SDC_MMC_SUPPORT FALSE +#endif + +/** + * @brief Delays insertions. + * @details If enabled this options inserts delays into the MMC waiting + * routines releasing some extra CPU time for the threads with + * lower priority, this may slow down the driver a bit however. + */ +#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__) +#define SDC_NICE_WAITING TRUE +#endif + +/** + * @brief OCR initialization constant for V20 cards. + */ +#if !defined(SDC_INIT_OCR_V20) || defined(__DOXYGEN__) +#define SDC_INIT_OCR_V20 0x50FF8000U +#endif + +/** + * @brief OCR initialization constant for non-V20 cards. + */ +#if !defined(SDC_INIT_OCR) || defined(__DOXYGEN__) +#define SDC_INIT_OCR 0x80100000U +#endif + +/*===========================================================================*/ +/* SERIAL driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Default bit rate. + * @details Configuration parameter, this is the baud rate selected for the + * default configuration. + */ +#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__) +#define SERIAL_DEFAULT_BITRATE 38400 +#endif + +/** + * @brief Serial buffers size. + * @details Configuration parameter, you can change the depth of the queue + * buffers depending on the requirements of your application. + * @note The default is 16 bytes for both the transmission and receive + * buffers. + */ +#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) +#define SERIAL_BUFFERS_SIZE 16 +#endif + +/*===========================================================================*/ +/* SERIAL_USB driver related setting. */ +/*===========================================================================*/ + +/** + * @brief Serial over USB buffers size. + * @details Configuration parameter, the buffer size must be a multiple of + * the USB data endpoint maximum packet size. + * @note The default is 256 bytes for both the transmission and receive + * buffers. + */ +#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__) +#define SERIAL_USB_BUFFERS_SIZE 1 +#endif + +/** + * @brief Serial over USB number of buffers. + * @note The default is 2 buffers. + */ +#if !defined(SERIAL_USB_BUFFERS_NUMBER) || defined(__DOXYGEN__) +#define SERIAL_USB_BUFFERS_NUMBER 2 +#endif + +/*===========================================================================*/ +/* SPI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__) +#define SPI_USE_WAIT TRUE +#endif + +/** + * @brief Enables circular transfers APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(SPI_USE_CIRCULAR) || defined(__DOXYGEN__) +#define SPI_USE_CIRCULAR FALSE +#endif + + +/** + * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define SPI_USE_MUTUAL_EXCLUSION TRUE +#endif + +/** + * @brief Handling method for SPI CS line. + * @note Disabling this option saves both code and data space. + */ +#if !defined(SPI_SELECT_MODE) || defined(__DOXYGEN__) +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD +#endif + +/*===========================================================================*/ +/* UART driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(UART_USE_WAIT) || defined(__DOXYGEN__) +#define UART_USE_WAIT FALSE +#endif + +/** + * @brief Enables the @p uartAcquireBus() and @p uartReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(UART_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define UART_USE_MUTUAL_EXCLUSION FALSE +#endif + +/*===========================================================================*/ +/* USB driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__) +#define USB_USE_WAIT TRUE +#endif + +/*===========================================================================*/ +/* WSPI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(WSPI_USE_WAIT) || defined(__DOXYGEN__) +#define WSPI_USE_WAIT TRUE +#endif + +/** + * @brief Enables the @p wspiAcquireBus() and @p wspiReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(WSPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define WSPI_USE_MUTUAL_EXCLUSION TRUE +#endif + +#endif /* HALCONF_H */ + +/** @} */ diff --git a/keyboards/xelus/kangaroo/info.json b/keyboards/xelus/kangaroo/info.json new file mode 100644 index 00000000000..3a29eb1b1f3 --- /dev/null +++ b/keyboards/xelus/kangaroo/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "Kangaroo", + "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/xelus/kangaroo", + "maintainer": "qmk", + "width": 22.5, + "height": 6.25, + "layouts": { + "LAYOUT": { + "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"label":"PrtSc", "x":4.25, "y":0}, {"label":"Scroll Lock", "x":5.25, "y":0}, {"label":"Pause", "x":6.25, "y":0}, {"label":"Esc", "x":7.5, "y":0}, {"label":"F1", "x":9.5, "y":0}, {"label":"F2", "x":10.5, "y":0}, {"label":"F3", "x":11.5, "y":0}, {"label":"F4", "x":12.5, "y":0}, {"label":"F5", "x":14, "y":0}, {"label":"F6", "x":15, "y":0}, {"label":"F7", "x":16, "y":0}, {"label":"F8", "x":17, "y":0}, {"label":"F9", "x":18.5, "y":0}, {"label":"F10", "x":19.5, "y":0}, {"label":"F11", "x":20.5, "y":0}, {"label":"F12", "x":21.5, "y":0}, {"x":0, "y":1.25}, {"x":1, "y":1.25}, {"x":2, "y":1.25}, {"x":3, "y":1.25}, {"label":"Insert", "x":4.25, "y":1.25}, {"label":"Home", "x":5.25, "y":1.25}, {"label":"PgUp", "x":6.25, "y":1.25}, {"label":"~", "x":7.5, "y":1.25}, {"label":"!", "x":8.5, "y":1.25}, {"label":"@", "x":9.5, "y":1.25}, {"label":"#", "x":10.5, "y":1.25}, {"label":"$", "x":11.5, "y":1.25}, {"label":"%", "x":12.5, "y":1.25}, {"label":"^", "x":13.5, "y":1.25}, {"label":"&", "x":14.5, "y":1.25}, {"label":"*", "x":15.5, "y":1.25}, {"label":"(", "x":16.5, "y":1.25}, {"label":")", "x":17.5, "y":1.25}, {"label":"_", "x":18.5, "y":1.25}, {"label":"+", "x":19.5, "y":1.25}, {"x":20.5, "y":1.25}, {"x":21.5, "y":1.25}, {"x":0, "y":2.25}, {"x":1, "y":2.25}, {"x":2, "y":2.25}, {"x":3, "y":2.25}, {"label":"Delete", "x":4.25, "y":2.25}, {"label":"End", "x":5.25, "y":2.25}, {"label":"PgDn", "x":6.25, "y":2.25}, {"label":"Tab", "x":7.5, "y":2.25, "w":1.5}, {"label":"Q", "x":9, "y":2.25}, {"label":"W", "x":10, "y":2.25}, {"label":"E", "x":11, "y":2.25}, {"label":"R", "x":12, "y":2.25}, {"label":"T", "x":13, "y":2.25}, {"label":"Y", "x":14, "y":2.25}, {"label":"U", "x":15, "y":2.25}, {"label":"I", "x":16, "y":2.25}, {"label":"O", "x":17, "y":2.25}, {"label":"P", "x":18, "y":2.25}, {"label":"{", "x":19, "y":2.25}, {"label":"}", "x":20, "y":2.25}, {"label":"|", "x":21, "y":2.25, "w":1.5}, {"x":0, "y":3.25}, {"x":1, "y":3.25}, {"x":2, "y":3.25}, {"x":3, "y":3.25}, {"label":"Caps Lock", "x":7.5, "y":3.25, "w":1.75}, {"label":"A", "x":9.25, "y":3.25}, {"label":"S", "x":10.25, "y":3.25}, {"label":"D", "x":11.25, "y":3.25}, {"label":"F", "x":12.25, "y":3.25}, {"label":"G", "x":13.25, "y":3.25}, {"label":"H", "x":14.25, "y":3.25}, {"label":"J", "x":15.25, "y":3.25}, {"label":"K", "x":16.25, "y":3.25}, {"label":"L", "x":17.25, "y":3.25}, {"label":":", "x":18.25, "y":3.25}, {"label":"\"", "x":19.25, "y":3.25}, {"label":"Enter", "x":20.25, "y":3.25, "w":2.25}, {"x":0, "y":4.25}, {"x":1, "y":4.25}, {"x":2, "y":4.25}, {"x":3, "y":4.25}, {"label":"\u2191", "x":5.25, "y":4.25}, {"label":"Shift", "x":7.5, "y":4.25, "w":2.25}, {"label":"Z", "x":9.75, "y":4.25}, {"label":"X", "x":10.75, "y":4.25}, {"label":"C", "x":11.75, "y":4.25}, {"label":"V", "x":12.75, "y":4.25}, {"label":"B", "x":13.75, "y":4.25}, {"label":"N", "x":14.75, "y":4.25}, {"label":"M", "x":15.75, "y":4.25}, {"label":"<", "x":16.75, "y":4.25}, {"label":">", "x":17.75, "y":4.25}, {"label":"?", "x":18.75, "y":4.25}, {"x":19.75, "y":4.25, "w":1.75}, {"x":21.5, "y":4.25}, {"x":0, "y":5.25}, {"x":1, "y":5.25}, {"x":2, "y":5.25}, {"x":3, "y":5.25}, {"label":"\u2190", "x":4.25, "y":5.25}, {"label":"\u2193", "x":5.25, "y":5.25}, {"label":"\u2192", "x":6.25, "y":5.25}, {"label":"Ctrl", "x":7.5, "y":5.25, "w":1.25}, {"label":"Win", "x":8.75, "y":5.25, "w":1.25}, {"label":"Alt", "x":10, "y":5.25, "w":1.25}, {"x":11.25, "y":5.25, "w":6.25}, {"label":"Alt", "x":17.5, "y":5.25, "w":1.25}, {"label":"Win", "x":18.75, "y":5.25, "w":1.25}, {"label":"Menu", "x":20, "y":5.25, "w":1.25}, {"label":"Ctrl", "x":21.25, "y":5.25, "w":1.25}] + } + } +} \ No newline at end of file diff --git a/keyboards/xelus/kangaroo/kangaroo.c b/keyboards/xelus/kangaroo/kangaroo.c new file mode 100644 index 00000000000..a7a3d24800b --- /dev/null +++ b/keyboards/xelus/kangaroo/kangaroo.c @@ -0,0 +1,24 @@ +/* Copyright 2020 Harrison Chan (Xelus) + * + * 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 "kangaroo.h" + +void board_init(void) { + SYSCFG->CFGR1 |= SYSCFG_CFGR1_I2C1_DMA_RMP; + SYSCFG->CFGR1 &= ~(SYSCFG_CFGR1_SPI2_DMA_RMP); +} + +void matrix_io_delay(void) { __asm__ volatile("nop\nnop\nnop\n"); } diff --git a/keyboards/xelus/kangaroo/kangaroo.h b/keyboards/xelus/kangaroo/kangaroo.h new file mode 100644 index 00000000000..f8aebc4f90f --- /dev/null +++ b/keyboards/xelus/kangaroo/kangaroo.h @@ -0,0 +1,43 @@ +/* Copyright 2020 Harrison Chan (Xelus) + * + * 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 _____ KC_NO + +#define LAYOUT_all( \ + K0000, K0100, K0001, K0101, K0002, K0102, K0003, K0103, K0004, K0104, K0005, K0105, K0006, K0106, K0007, K0107, K0008, K0108, K0009, K0109, \ + K0200, K0300, K0201, K0301, K0202, K0302, K0203, K0303, K0204, K0304, K0205, K0305, K0206, K0306, K0207, K0307, K0208, K0308, K0209, K0309, K0210, K0010, \ + K0400, K0500, K0401, K0501, K0402, K0502, K0403, K0503, K0404, K0504, K0405, K0505, K0406, K0506, K0407, K0507, K0408, K0508, K0409, K0509, K0410, \ + K0600, K0700, K0601, K0701, K0703, K0604, K0704, K0605, K0705, K0606, K0706, K0607, K0707, K0608, K0708, K0609, K0709, \ + K0800, K0900, K0801, K0901, K0902, K0903, K0804, K0904, K0805, K0905, K0806, K0906, K0807, K0907, K0808, K0908, K0809, K0909, \ + K1000, K1100, K1001, K1101, K1002, K1102, K1003, K1103, K1004, K1104, K1106, K1008, K1108, K1009, K1109 \ +) { \ + { K0000, K0001, K0002, K0003, K0004, K0005, K0006, K0007, K0008, K0009, K0010 }, \ + { K0100, K0101, K0102, K0103, K0104, K0105, K0106, K0107, K0108, K0109, _____ }, \ + { K0200, K0201, K0202, K0203, K0204, K0205, K0206, K0207, K0208, K0209, K0210 }, \ + { K0300, K0301, K0302, K0303, K0304, K0305, K0306, K0307, K0308, K0309, _____ }, \ + { K0400, K0401, K0402, K0403, K0404, K0405, K0406, K0407, K0408, K0409, K0410 }, \ + { K0500, K0501, K0502, K0503, K0504, K0505, K0506, K0507, K0508, K0509, _____ }, \ + { K0600, K0601, _____, _____, K0604, K0605, K0606, K0607, K0608, K0609, _____ }, \ + { K0700, K0701, _____, K0703, K0704, K0705, K0706, K0707, K0708, K0709, _____ }, \ + { K0800, K0801, _____, _____, K0804, K0805, K0806, K0807, K0808, K0809, _____ }, \ + { K0900, K0901, K0902, K0903, K0904, K0905, K0906, K0907, K0908, K0909, _____ }, \ + { K1000, K1001, K1002, K1003, K1004, _____, _____, _____, K1008, K1009, _____ }, \ + { K1100, K1101, K1102, K1103, K1104, _____, K1106, _____, K1108, K1109, _____ } \ +} diff --git a/keyboards/xelus/kangaroo/keymaps/default/keymap.c b/keyboards/xelus/kangaroo/keymaps/default/keymap.c new file mode 100644 index 00000000000..2e877c4fc18 --- /dev/null +++ b/keyboards/xelus/kangaroo/keymaps/default/keymap.c @@ -0,0 +1,35 @@ +/* Copyright 2020 Harrison Chan (Xelus) + * + * 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_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, 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_NLCK, KC_PSLS, KC_PAST, KC_PMNS, KC_INS, KC_HOME, KC_PGUP, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, + KC_PPLS, KC_P7, KC_P8, KC_P9, KC_DEL, KC_END, KC_PGDN, 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_PPLS, KC_P4, KC_P5, KC_P6, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_PENT, KC_P1, KC_P2, KC_P3, KC_UP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_PENT, KC_PDOT, KC_P0, KC_P0, KC_LEFT, KC_DOWN, KC_RGHT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL), + + [1] = LAYOUT_all( + 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +}; diff --git a/keyboards/xelus/kangaroo/keymaps/via/keymap.c b/keyboards/xelus/kangaroo/keymaps/via/keymap.c new file mode 100644 index 00000000000..ca29e199527 --- /dev/null +++ b/keyboards/xelus/kangaroo/keymaps/via/keymap.c @@ -0,0 +1,51 @@ +/* Copyright 2020 Harrison Chan (Xelus) + * + * 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_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, 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_NLCK, KC_PSLS, KC_PAST, KC_PMNS, KC_INS, KC_HOME, KC_PGUP, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, + KC_PPLS, KC_P7, KC_P8, KC_P9, KC_DEL, KC_END, KC_PGDN, 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_PPLS, KC_P4, KC_P5, KC_P6, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_PENT, KC_P1, KC_P2, KC_P3, KC_UP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_PENT, KC_PDOT, KC_P0, KC_P0, KC_LEFT, KC_DOWN, KC_RGHT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL), + + [1] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, 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( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + + [3] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +}; diff --git a/keyboards/xelus/kangaroo/keymaps/via/rules.mk b/keyboards/xelus/kangaroo/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/xelus/kangaroo/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/xelus/kangaroo/mcuconf.h b/keyboards/xelus/kangaroo/mcuconf.h new file mode 100644 index 00000000000..8d706de2ae8 --- /dev/null +++ b/keyboards/xelus/kangaroo/mcuconf.h @@ -0,0 +1,176 @@ +/* + ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#ifndef _MCUCONF_H_ +#define _MCUCONF_H_ + +/* + * STM32F0xx drivers configuration. + * The following settings override the default settings present in + * the various device driver implementation headers. + * Note that the settings for each driver only have effect if the whole + * driver is enabled in halconf.h. + * + * IRQ priorities: + * 3...0 Lowest...Highest. + * + * DMA priorities: + * 0...3 Lowest...Highest. + */ + +#define STM32F0xx_MCUCONF +// #define STM32F070xB + +/* + * HAL driver system settings. + */ +#define STM32_NO_INIT FALSE +#define STM32_PVD_ENABLE FALSE +#define STM32_PLS STM32_PLS_LEV0 +#define STM32_HSI_ENABLED TRUE +#define STM32_HSI14_ENABLED TRUE +#define STM32_HSI48_ENABLED FALSE +#define STM32_LSI_ENABLED TRUE +#define STM32_HSE_ENABLED FALSE +#define STM32_LSE_ENABLED FALSE +#define STM32_SW STM32_SW_PLL +#define STM32_PLLSRC STM32_PLLSRC_HSI_DIV2 +#define STM32_PREDIV_VALUE 1 +#define STM32_PLLMUL_VALUE 12 +#define STM32_HPRE STM32_HPRE_DIV1 +#define STM32_PPRE STM32_PPRE_DIV1 +#define STM32_ADCSW STM32_ADCSW_HSI14 +#define STM32_ADCPRE STM32_ADCPRE_DIV4 +#define STM32_MCOSEL STM32_MCOSEL_NOCLOCK +#define STM32_ADCPRE STM32_ADCPRE_DIV4 +#define STM32_ADCSW STM32_ADCSW_HSI14 +#define STM32_USBSW STM32_USBSW_HSI48 +#define STM32_CECSW STM32_CECSW_HSI +#define STM32_I2C1SW STM32_I2C1SW_HSI +#define STM32_USART1SW STM32_USART1SW_PCLK +#define STM32_RTCSEL STM32_RTCSEL_LSI + +/* + * ADC driver system settings. + */ +#define STM32_ADC_USE_ADC1 FALSE +#define STM32_ADC_ADC1_DMA_PRIORITY 2 +#define STM32_ADC_IRQ_PRIORITY 2 +#define STM32_ADC_ADC1_DMA_IRQ_PRIORITY 2 + +/* + * EXT driver system settings. + */ +#define STM32_EXT_EXTI0_1_IRQ_PRIORITY 3 +#define STM32_EXT_EXTI2_3_IRQ_PRIORITY 3 +#define STM32_EXT_EXTI4_15_IRQ_PRIORITY 3 +#define STM32_EXT_EXTI16_IRQ_PRIORITY 3 +#define STM32_EXT_EXTI17_IRQ_PRIORITY 3 + +/* + * GPT driver system settings. + */ +#define STM32_GPT_USE_TIM1 FALSE +#define STM32_GPT_USE_TIM2 FALSE +#define STM32_GPT_USE_TIM3 FALSE +#define STM32_GPT_USE_TIM14 FALSE +#define STM32_GPT_TIM1_IRQ_PRIORITY 2 +#define STM32_GPT_TIM2_IRQ_PRIORITY 2 +#define STM32_GPT_TIM3_IRQ_PRIORITY 2 +#define STM32_GPT_TIM14_IRQ_PRIORITY 2 + +/* + * I2C driver system settings. + */ +#define STM32_I2C_USE_I2C1 TRUE +#define STM32_I2C_USE_I2C2 FALSE +#define STM32_I2C_BUSY_TIMEOUT 50 +#define STM32_I2C_I2C1_IRQ_PRIORITY 3 +#define STM32_I2C_I2C2_IRQ_PRIORITY 3 +#define STM32_I2C_USE_DMA TRUE +#define STM32_I2C_I2C1_DMA_PRIORITY 1 +#define STM32_I2C_I2C2_DMA_PRIORITY 1 +#define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7) +#define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6) +#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure") + +/* + * ICU driver system settings. + */ +#define STM32_ICU_USE_TIM1 FALSE +#define STM32_ICU_USE_TIM2 FALSE +#define STM32_ICU_USE_TIM3 FALSE +#define STM32_ICU_TIM1_IRQ_PRIORITY 3 +#define STM32_ICU_TIM2_IRQ_PRIORITY 3 +#define STM32_ICU_TIM3_IRQ_PRIORITY 3 + +/* + * PWM driver system settings. + */ +#define STM32_PWM_USE_ADVANCED FALSE +#define STM32_PWM_USE_TIM1 FALSE +#define STM32_PWM_USE_TIM2 FALSE +#define STM32_PWM_USE_TIM3 FALSE +#define STM32_PWM_TIM1_IRQ_PRIORITY 3 +#define STM32_PWM_TIM2_IRQ_PRIORITY 3 +#define STM32_PWM_TIM3_IRQ_PRIORITY 3 + +/* + * SERIAL driver system settings. + */ +#define STM32_SERIAL_USE_USART1 FALSE +#define STM32_SERIAL_USE_USART2 FALSE +#define STM32_SERIAL_USART1_PRIORITY 3 +#define STM32_SERIAL_USART2_PRIORITY 3 + +/* + * SPI driver system settings. + */ +#define STM32_SPI_USE_SPI1 FALSE +#define STM32_SPI_USE_SPI2 FALSE +#define STM32_SPI_SPI1_DMA_PRIORITY 1 +#define STM32_SPI_SPI2_DMA_PRIORITY 1 +#define STM32_SPI_SPI1_IRQ_PRIORITY 2 +#define STM32_SPI_SPI2_IRQ_PRIORITY 2 +#define STM32_SPI_SPI2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4) +#define STM32_SPI_SPI2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 5) +#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure") + +/* + * ST driver system settings. + */ +#define STM32_ST_IRQ_PRIORITY 2 +#define STM32_ST_USE_TIMER 2 + +/* + * UART driver system settings. + */ +#define STM32_UART_USE_USART1 FALSE +#define STM32_UART_USE_USART2 FALSE +#define STM32_UART_USART1_IRQ_PRIORITY 3 +#define STM32_UART_USART2_IRQ_PRIORITY 3 +#define STM32_UART_USART1_DMA_PRIORITY 0 +#define STM32_UART_USART2_DMA_PRIORITY 0 +#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure") + +/* + * USB driver system settings. + */ +#define STM32_USB_USE_USB1 TRUE +#define STM32_USB_LOW_POWER_ON_SUSPEND FALSE +#define STM32_USB_USB1_LP_IRQ_PRIORITY 3 + +#endif /* _MCUCONF_H_ */ diff --git a/keyboards/xelus/kangaroo/readme.md b/keyboards/xelus/kangaroo/readme.md new file mode 100644 index 00000000000..e91f32f96a9 --- /dev/null +++ b/keyboards/xelus/kangaroo/readme.md @@ -0,0 +1,13 @@ +# Kangaroo + +Left Hand Fullsized Keyboard designed by Jono. + +* Keyboard Maintainer: [Xelus22](https://github.com/Xelus22) +* Hardware Supported: Kangaroo +* Hardware Availability: Custom keyboard group buys + +Make example for this keyboard (after setting up your build environment): + + make xelus/kangaroo: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/xelus/kangaroo/rules.mk b/keyboards/xelus/kangaroo/rules.mk new file mode 100644 index 00000000000..2a0281f946d --- /dev/null +++ b/keyboards/xelus/kangaroo/rules.mk @@ -0,0 +1,21 @@ +# MCU name +MCU = STM32F072 + +# Build Options +# comment out to disable the options. +# + +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +NKRO_ENABLE = yes # USB Nkey Rollover +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +EEPROM_DRIVER = i2c + +# Enter lower-power sleep mode when on the ChibiOS idle thread +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/xelus/trinityxttkl/bootloader_defs.h b/keyboards/xelus/trinityxttkl/bootloader_defs.h deleted file mode 100644 index 02c48c4e6dc..00000000000 --- 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 6feec7dd97a..55bca894ef9 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/layouts/community/60_ansi_arrow/mrsendyyk/keymap.c b/layouts/community/60_ansi_arrow/mrsendyyk/keymap.c index 0f6bef4e488..09b3c285883 100644 --- a/layouts/community/60_ansi_arrow/mrsendyyk/keymap.c +++ b/layouts/community/60_ansi_arrow/mrsendyyk/keymap.c @@ -1,5 +1,7 @@ /* - * Copyright (C) 2020 Sendy YK . + * 60 ANSI Arrow Keymap with RGB Lighting/LED/Underglow as Caps Lock, Num Lock, Scroll Lock, and Layer Indicator + * + * Copyright (C) 2020 Sendy YK * * 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,50 +17,35 @@ * along with this program. If not, see . */ -/* - * 60% ANSI Arrow Keyboard Layout and Keymap - * with RGB Lighting/LED/Underglow as Caps Lock, Num Lock, Scroll Lock, and Layer Indicator - * by Sendy YK . - */ - #include QMK_KEYBOARD_H enum layer_names { _BASE, // Default Layer - _FN, // Fn Layer 1 - _SETTINGS // Fn Layer 2 + _FN // Fn Layer }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Default Layer [_BASE] = 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, KC_RSFT, KC_UP, KC_SLSH, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, LT(2, KC_RALT), LT(1, KC_RCTL), KC_LEFT, KC_DOWN, KC_RGHT + 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, KC_RSFT, KC_UP, KC_SLSH, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN), KC_LEFT, KC_DOWN, KC_RGHT ), - // Fn Layer 1 + // Fn Layer [_FN] = 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_BRIU, KC_TRNS, KC_TRNS, KC_END, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_TRNS, KC_PSCR, KC_TRNS, KC_TRNS, KC_EJCT, - KC_BRID, KC_TRNS, KC_SLCK, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, - KC_VOLU, KC_TRNS, KC_TRNS, KC_CALC, KC_TRNS, KC_TRNS, KC_NLCK, KC_MAIL, KC_TRNS, KC_TRNS, KC_PAUS, KC_PGUP, KC_TRNS, - KC_VOLD, KC_MRWD, KC_MFFD, KC_MPLY, KC_MSTP, KC_TRNS, KC_MPRV, KC_PGDN, KC_MNXT - ), - // Fn Layer 2 - [_SETTINGS] = LAYOUT_60_ansi_arrow( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_TOGG, BL_INC, BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + KC_BRIU, _______, _______, KC_END, RESET, _______, _______, _______, KC_INS, _______, KC_PSCR, _______, _______, KC_EJCT, + KC_BRID, _______, KC_SLCK, _______, _______, _______, KC_HOME, _______, _______, _______, _______, _______, KC_MUTE, + KC_VOLU, _______, _______, KC_CALC, _______, _______, KC_NLCK, KC_MAIL, _______, _______, KC_PAUS, KC_PGUP, _______, + KC_VOLD, KC_MRWD, KC_MFFD, KC_MPLY, KC_MSTP, _______, KC_MPRV, KC_PGDN, KC_MNXT ) }; void keyboard_post_init_user(void) { rgblight_enable_noeeprom(); - rgblight_sethsv_noeeprom(0, 0, 0); + rgblight_setrgb(100, 255, 100); } // RGB Lighting/LED/Underglow as Caps Lock, Num Lock, Scroll Lock, and Layer Indicator @@ -69,7 +56,7 @@ void update_led(void) { } // Scroll Lock Indicator if (host_keyboard_led_state().scroll_lock) { - rgblight_setrgb(255, 110, 0); + rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT + 2); } } @@ -77,22 +64,18 @@ void led_set_user(uint8_t usb_led) { // Caps Lock Indicator if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) { writePinLow(B2); - rgblight_setrgb(100, 255, 100); + rgblight_setrgb(255, 110, 0); } // Layer Indicator else { switch (get_highest_layer(layer_state)) { - // Fn Layer 1 Indicator + // Fn Layer Indicator case _FN: - rgblight_setrgb(100, 255, 100); - break; - // Fn Layer 2 Indicator - case _SETTINGS: - rgblight_setrgb(100, 255, 100); + rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT + 1); break; // Default Layer Indicator case _BASE: - rgblight_setrgb(0, 0, 0); + rgblight_setrgb(100, 255, 100); break; } update_led(); diff --git a/layouts/community/60_ansi_arrow/mrsendyyk/readme.md b/layouts/community/60_ansi_arrow/mrsendyyk/readme.md index a6985cfb9cf..a2dedd4cc91 100644 --- a/layouts/community/60_ansi_arrow/mrsendyyk/readme.md +++ b/layouts/community/60_ansi_arrow/mrsendyyk/readme.md @@ -1,42 +1,28 @@ -# Sendy YK's 60% ANSI Arrow Layout and Keymap +# 60 ANSI Arrow Keymap by [Sendy YK](https://mr.sendyyk.com) -60% ANSI Arrow keyboard layout and keymap with RGB lighting/LED/underglow as Caps Lock, Num Lock, Scroll Lock, and layer indicator by [Sendy YK](https://mr.sendyyk.com). +With RGB Lighting/LED/Underglow as Caps Lock, Num Lock, Scroll Lock, and Layer Indicator. -## 60% ANSI Arrow Layout +## Default Layer -![LAYOUT_60_ansi_arrow](https://raw.githubusercontent.com/mrsendyyk/files/public/qmk/firmware/layouts/community/60_ansi_arrow/mrsendyyk/images/layout-60-ansi-arrow.png) +![_BASE](https://raw.githubusercontent.com/mrsendyyk/qmk_firmware/development/images/60_ansi_arrow_keymap_base.png) -## Keymap +## Fn Layer -### Default Layer +![_FN](https://raw.githubusercontent.com/mrsendyyk/qmk_firmware/development/images/60_ansi_arrow_keymap_fn.png) -![_BASE](https://raw.githubusercontent.com/mrsendyyk/files/public/qmk/firmware/layouts/community/60_ansi_arrow/mrsendyyk/images/layout-60-ansi-arrow-keymap---layer-0.png) +## RGB Lighting/LED/Underglow as Caps Lock, Num Lock, Scroll Lock, and Layer Indicator -### Fn Layer 1 - -Press and hold *right* **Ctrl** key. - -![_FN](https://raw.githubusercontent.com/mrsendyyk/files/public/qmk/firmware/layouts/community/60_ansi_arrow/mrsendyyk/images/layout-60-ansi-arrow-keymap---layer-1.png) - -### Fn Layer 2 - -Press and hold *right* **Alt** key. - -![_SETTINGS](https://raw.githubusercontent.com/mrsendyyk/files/public/qmk/firmware/layouts/community/60_ansi_arrow/mrsendyyk/images/layout-60-ansi-arrow-keymap---layer-2.png) - -### RGB Lighting/LED/Underglow as Caps Lock, Num Lock, Scroll Lock, and Layer Indicator - -#### Caps Lock Indicator +### Caps Lock Indicator ```c // Caps Lock Indicator if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) { writePinLow(B2); - rgblight_setrgb(100, 255, 100); + rgblight_setrgb(255, 110, 0); } ``` -#### Num Lock Indicator +### Num Lock Indicator ```c // Num Lock Indicator @@ -45,31 +31,27 @@ Press and hold *right* **Alt** key. } ``` -#### Scroll Lock Indicator +### Scroll Lock Indicator ```c // Scroll Lock Indicator if (host_keyboard_led_state().scroll_lock) { - rgblight_setrgb(255, 110, 0); + rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT + 2); } ``` -#### Layer Indicator +### Layer Indicator ```c // Layer Indicator else { switch (get_highest_layer(layer_state)) { - // Fn Layer 1 Indicator + // Fn Layer Indicator case _FN: - rgblight_setrgb(100, 255, 100); - break; - // Fn Layer 2 Indicator - case _SETTINGS: - rgblight_setrgb(100, 255, 100); + rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT + 1); break; // Default Layer Indicator case _BASE: - rgblight_setrgb(0, 0, 0); + rgblight_setrgb(100, 255, 100); break; } update_led(); diff --git a/layouts/community/ergodox/drashna/config.h b/layouts/community/ergodox/drashna/config.h index 8ad589f9381..a595a93c43f 100644 --- a/layouts/community/ergodox/drashna/config.h +++ b/layouts/community/ergodox/drashna/config.h @@ -1,3 +1,19 @@ +/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@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 #ifdef RGBLIGHT_ENABLE @@ -15,7 +31,7 @@ #define PRODUCT DrashnaDox - Hacked ErgoDox EZ Hybrid Monstrosity #undef DEBOUNCE -#define DEBOUNCE 15 +#define DEBOUNCE 20 #define TAPPING_TERM_PER_KEY @@ -25,8 +41,7 @@ # undef RGB_MATRIX_LED_PROCESS_LIMIT # undef RGB_MATRIX_LED_FLUSH_LIMIT # if defined(RGBLIGHT_ENABLE) && defined(RGB_MATRIX_ENABLE) -# define RGBLIGHT_LIMIT_VAL 175 -# define RGB_MATRIX_MAXIMUM_BRIGHTNESS (RGBLIGHT_LIMIT_VAL + 25) +# define RGBLIGHT_LIMIT_VAL 100 # undef RGBLIGHT_SLEEP # endif #endif diff --git a/layouts/community/ergodox/drashna/keymap.c b/layouts/community/ergodox/drashna/keymap.c index 8f5aaf6cdc5..5f1c0c8a09a 100644 --- a/layouts/community/ergodox/drashna/keymap.c +++ b/layouts/community/ergodox/drashna/keymap.c @@ -1,3 +1,19 @@ +/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@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 "drashna.h" #ifdef UNICODEMAP_ENABLE @@ -6,9 +22,6 @@ #ifndef UNICODE_ENABLE # define UC(x) KC_NO #endif -#ifdef RGBLIGHT_ENABLE -extern rgblight_config_t rgblight_config; -#endif enum more_custom_keycodes { KC_SWAP_NUM = NEW_SAFE_RANGE, @@ -315,8 +328,21 @@ void keyboard_post_init_keymap(void) { void shutdown_keymap(void) { trackball_set_rgbw(RGB_RED, 0x00); } + +static bool mouse_button_one, trackball_button_one; + +void trackball_check_click(bool pressed, report_mouse_t* mouse) { + if (mouse_button_one | pressed) { + mouse->buttons |= MOUSE_BTN1; + } else { + mouse->buttons &= ~MOUSE_BTN1; + } + trackball_button_one = pressed; +} #endif + + bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case KC_1: @@ -358,33 +384,20 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { } run_trackball_cleanup(); break; -#if !defined(MOUSEKEY_ENABLE) && defined(POINTING_DEVICE_ENABLE) - case KC_BTN1 ... KC_BTN3: - { - report_mouse_t currentReport = pointing_device_get_report(); - if (record->event.pressed) { - currentReport.buttons |= (1 << (keycode - KC_BTN1)); // this is defined in report.h - } else { - currentReport.buttons &= ~(1 << (keycode - KC_BTN1)); - } - pointing_device_set_report(currentReport); - pointing_device_send(); - break; - } +#if !defined(MOUSEKEY_ENABLE) + case KC_MS_BTN1: + mouse_button_one = record->event.pressed; + trackball_register_button(mouse_button_one | trackball_button_one, MOUSE_BTN1); + break; + case KC_MS_BTN2: + trackball_register_button(record->event.pressed, MOUSE_BTN2); + break; + case KC_MS_BTN3: + trackball_register_button(record->event.pressed, MOUSE_BTN3); + break; # endif #endif } - // switch (keycode) { - // case KC_P00: - // if (!record->event.pressed) { - // register_code(KC_KP_0); - // unregister_code(KC_KP_0); - // register_code(KC_KP_0); - // unregister_code(KC_KP_0); - // } - // return false; - // break; - //} return true; } @@ -457,7 +470,8 @@ void rgb_matrix_indicators_user(void) { if (userspace_config.rgb_layer_change) # endif { - switch (get_highest_layer(layer_state)) { + bool mods_enabled = IS_LAYER_ON(_MODS); + switch (get_highest_layer(layer_state|default_layer_state)) { case _GAMEPAD: rgb_matrix_layer_helper(HSV_ORANGE, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER); break; @@ -473,36 +487,30 @@ void rgb_matrix_indicators_user(void) { case _ADJUST: rgb_matrix_layer_helper(HSV_RED, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER); break; - default: { - bool mods_enabled = IS_LAYER_ON(_MODS); - switch (get_highest_layer(default_layer_state)) { - case _QWERTY: - rgb_matrix_layer_helper(HSV_CYAN, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER); - break; - case _COLEMAK: - rgb_matrix_layer_helper(HSV_MAGENTA, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER); - break; - case _DVORAK: - rgb_matrix_layer_helper(HSV_SPRINGGREEN, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER); - break; - case _WORKMAN: - rgb_matrix_layer_helper(HSV_GOLDENROD, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER); - break; - case _NORMAN: - rgb_matrix_layer_helper(HSV_CORAL, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER); - break; - case _MALTRON: - rgb_matrix_layer_helper(HSV_YELLOW, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER); - break; - case _EUCALYN: - rgb_matrix_layer_helper(HSV_PINK, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER); - break; - case _CARPLAX: - rgb_matrix_layer_helper(HSV_BLUE, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER); - break; - } + case _QWERTY: + rgb_matrix_layer_helper(HSV_CYAN, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER); + break; + case _COLEMAK: + rgb_matrix_layer_helper(HSV_MAGENTA, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER); + break; + case _DVORAK: + rgb_matrix_layer_helper(HSV_SPRINGGREEN, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER); + break; + case _WORKMAN: + rgb_matrix_layer_helper(HSV_GOLDENROD, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER); + break; + case _NORMAN: + rgb_matrix_layer_helper(HSV_CORAL, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER); + break; + case _MALTRON: + rgb_matrix_layer_helper(HSV_YELLOW, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER); + break; + case _EUCALYN: + rgb_matrix_layer_helper(HSV_PINK, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER); + break; + case _CARPLAX: + rgb_matrix_layer_helper(HSV_BLUE, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER); break; - } } } } diff --git a/layouts/community/numpad_5x4/mrsendyyk/keymap.c b/layouts/community/numpad_5x4/mrsendyyk/keymap.c index 7854b12b457..2b013b6c74b 100644 --- a/layouts/community/numpad_5x4/mrsendyyk/keymap.c +++ b/layouts/community/numpad_5x4/mrsendyyk/keymap.c @@ -1,5 +1,7 @@ /* - * Copyright (C) 2020 Sendy YK . + * Numpad 5x4 Keymap + * + * Copyright (C) 2020 Sendy YK * * 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,8 +17,6 @@ * along with this program. If not, see . */ -// Number Pad 5x4 Layout and Keymap by Sendy YK . - #include QMK_KEYBOARD_H enum layer_names { diff --git a/layouts/community/numpad_5x4/mrsendyyk/readme.md b/layouts/community/numpad_5x4/mrsendyyk/readme.md index a3c8a75283a..9669c8fcc0c 100644 --- a/layouts/community/numpad_5x4/mrsendyyk/readme.md +++ b/layouts/community/numpad_5x4/mrsendyyk/readme.md @@ -1,14 +1,6 @@ -# Sendy YK's Numpad 5x4 Layout and Keymap +# Numpad 5x4 Keymap by [Sendy YK](https://mr.sendyyk.com). -Number Pad 5x4 layout and keymap by [Sendy YK](https://mr.sendyyk.com). - -## Numpad 5x4 Layout - -![LAYOUT_numpad_5x4](https://raw.githubusercontent.com/mrsendyyk/files/public/qmk/firmware/layouts/community/numpad_5x4/mrsendyyk/images/layout-numpad-5x4.png) - -## Keymap - -![_BASE](https://raw.githubusercontent.com/mrsendyyk/files/public/qmk/firmware/layouts/community/numpad_5x4/mrsendyyk/images/layout-numpad-5x4-keymap.png) +![_BASE](https://raw.githubusercontent.com/mrsendyyk/qmk_firmware/development/images/numpad_5x4_keymap.png) ## Build The Firmware diff --git a/layouts/community/numpad_5x6/drashna/config.h b/layouts/community/numpad_5x6/drashna/config.h index 29045148e31..97c1170d787 100644 --- a/layouts/community/numpad_5x6/drashna/config.h +++ b/layouts/community/numpad_5x6/drashna/config.h @@ -1,3 +1,19 @@ +/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@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 // #define B6_AUDIO diff --git a/layouts/community/numpad_5x6/drashna/keymap.c b/layouts/community/numpad_5x6/drashna/keymap.c index 3d325a4c11d..5c87ebf7612 100644 --- a/layouts/community/numpad_5x6/drashna/keymap.c +++ b/layouts/community/numpad_5x6/drashna/keymap.c @@ -1,3 +1,19 @@ +/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@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 "drashna.h" #define F2_MCRO LT(_GAMEPAD, KC_F2) diff --git a/layouts/community/ortho_4x12/drashna/config.h b/layouts/community/ortho_4x12/drashna/config.h index 5342549e548..6a99fcda01b 100644 --- a/layouts/community/ortho_4x12/drashna/config.h +++ b/layouts/community/ortho_4x12/drashna/config.h @@ -1,3 +1,19 @@ +/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@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(RGBLIGHT_ENABLE) && !defined(RGBLED_NUM) diff --git a/layouts/community/ortho_4x12/drashna/keymap.c b/layouts/community/ortho_4x12/drashna/keymap.c index d2957d8fdca..8070a7d35e6 100644 --- a/layouts/community/ortho_4x12/drashna/keymap.c +++ b/layouts/community/ortho_4x12/drashna/keymap.c @@ -1,3 +1,19 @@ +/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@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 "drashna.h" #ifdef RGBLIGHT_ENABLE diff --git a/layouts/community/ortho_4x12/jotix/keymap.c b/layouts/community/ortho_4x12/jotix/keymap.c index 63a0494742d..9d208f0a7ab 100644 --- a/layouts/community/ortho_4x12/jotix/keymap.c +++ b/layouts/community/ortho_4x12/jotix/keymap.c @@ -2,17 +2,12 @@ enum layers { _QWERTY, - _RAISE, _LOWER, - _FN, + _RAISE, }; #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) -#define FN MO(_FN) -#define TGLOWER TG(LOWER) -#define TGRAISE TG(_RAISE) -#define RALTDEL RALT_T(KC_DEL) static bool is_ctl_pressed; static bool is_esc_pressed; @@ -24,47 +19,35 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // ┌───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┐ KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, // ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤ - KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_ENT, + KC_TAB, 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_UP, KC_SLSH, + KC_LSFT,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH,KC_ENT, // ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤ - KC_LCTL,KC_LGUI,KC_LALT,FN, LOWER, KC_SPC, KC_SPC, RAISE, RALTDEL,KC_LEFT,KC_DOWN,KC_RGHT + KC_LCTL,KC_LGUI,KC_LALT,KC_RALT,LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT,KC_DOWN,KC_UP, KC_RGHT // └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘ ), [_LOWER] = LAYOUT_ortho_4x12 ( -// ┌───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┐ - KC_TILD,KC_EXLM,KC_AT, KC_HASH,KC_DLR, KC_PERC,KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN,_______, -// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤ - _______,KC_VOLD,KC_MUTE,KC_VOLU,KC_HOME,KC_PGUP,KC_LCBR,KC_RCBR,KC_PIPE,KC_DQUO,_______,_______, -// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤ - _______,KC_MPRV,KC_MPLY,KC_MNXT,KC_END, KC_PGDN,KC_UNDS,KC_PLUS,KC_WH_U,KC_BTN1,KC_MS_U,KC_BTN2, -// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤ - _______,_______,_______,_______,_______,_______,_______,_______,KC_WH_D,KC_MS_L,KC_MS_D,KC_MS_R -// └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘ -), - -[_RAISE] = LAYOUT_ortho_4x12 ( // ┌───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┐ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, // ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤ - KC_CAPS,_______,_______,_______,_______,_______,KC_LBRC,KC_RBRC,KC_BSLS,KC_QUOT,_______,_______, + _______,KC_VOLD,KC_MUTE,KC_VOLU,DM_PLY1,DM_REC1,DM_RSTP,KC_PSCR,KC_SLCK,KC_PAUS,_______,_______, // ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤ - _______,DM_REC1,DM_REC2,DM_RSTP,DM_PLY1,DM_PLY2,KC_MINS,KC_EQL, _______,_______,_______,_______, + _______,KC_MPRV,KC_MPLY,KC_MNXT,DM_PLY2,DM_REC2,KC_INS, KC_APP, _______,_______,_______,_______, // ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤ _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______ // └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘ ), -[_FN] = LAYOUT_ortho_4x12 ( +[_RAISE] = LAYOUT_ortho_4x12 ( // ┌───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┐ - _______,KC_F1, KC_F2, KC_F3, KC_F4, KC_PSCR,KC_INS, KC_P7, KC_P8, KC_P9, KC_PMNS,_______, + KC_TILD,KC_EXLM,KC_AT, KC_HASH,KC_DLR, KC_PERC,KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN,KC_DEL, // ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤ - _______,KC_F5, KC_F6, KC_F7, KC_F8, KC_SLCK,KC_APP, KC_P4, KC_P5, KC_P6, KC_PPLS,KC_PENT, + KC_CAPS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS,KC_EQL, KC_LBRC,KC_RBRC,KC_BSLS, // ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤ - _______,KC_F9, KC_F10, KC_F11, KC_F12, KC_PAUS,KC_NLCK,KC_P1, KC_P2, KC_P3, KC_PAST,KC_PSLS, + _______,KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_UNDS,KC_PLUS,KC_LCBR,KC_RCBR,KC_PIPE, // ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤ - _______,_______,_______,_______,TGLOWER,_______,_______,TGRAISE,KC_P0, KC_PDOT,KC_LPRN,KC_RPRN + _______,_______,_______,_______,_______,_______,_______,_______,KC_HOME,KC_PGDN,KC_PGUP,KC_END // └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘ ), }; diff --git a/layouts/community/ortho_4x12/jotix/rules.mk b/layouts/community/ortho_4x12/jotix/rules.mk index a1adef2a650..9e6797ed307 100644 --- a/layouts/community/ortho_4x12/jotix/rules.mk +++ b/layouts/community/ortho_4x12/jotix/rules.mk @@ -1,2 +1 @@ -MOUSEKEY_ENABLE = yes DYNAMIC_MACRO_ENABLE = yes diff --git a/layouts/community/ortho_5x12/drashna/config.h b/layouts/community/ortho_5x12/drashna/config.h index 7504338fff4..76bd642a32c 100644 --- a/layouts/community/ortho_5x12/drashna/config.h +++ b/layouts/community/ortho_5x12/drashna/config.h @@ -1,3 +1,19 @@ +/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@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 /* ws2812 RGB LED */ diff --git a/layouts/community/ortho_5x12/drashna/keymap.c b/layouts/community/ortho_5x12/drashna/keymap.c index 0ee9dfb10c6..98c349b2e80 100644 --- a/layouts/community/ortho_5x12/drashna/keymap.c +++ b/layouts/community/ortho_5x12/drashna/keymap.c @@ -1,3 +1,19 @@ +/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@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 "drashna.h" /* diff --git a/keyboards/crkbd/keymaps/drashna/config.h b/layouts/community/split_3x6_3/drashna/config.h similarity index 68% rename from keyboards/crkbd/keymaps/drashna/config.h rename to layouts/community/split_3x6_3/drashna/config.h index 26af029573b..7db51fb6e93 100644 --- a/keyboards/crkbd/keymaps/drashna/config.h +++ b/layouts/community/split_3x6_3/drashna/config.h @@ -1,22 +1,18 @@ -/* -This is the c configuration file for the keymap - -Copyright 2012 Jun Wako -Copyright 2015 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 . -*/ +/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@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 @@ -70,7 +66,7 @@ along with this program. If not, see . #undef PRODUCT #define PRODUCT Drashna Hacked Corne Keyboard -#define OLED_FONT_H "keyboards/crkbd/keymaps/drashna/glcdfont.c" +#define OLED_FONT_H "layouts/community/split_3x6_3/drashna/glcdfont.c" // #define OLED_FONT_WIDTH 5 // #define OLED_FONT_HEIGHT 7 diff --git a/keyboards/crkbd/keymaps/drashna/glcdfont.c b/layouts/community/split_3x6_3/drashna/glcdfont.c similarity index 100% rename from keyboards/crkbd/keymaps/drashna/glcdfont.c rename to layouts/community/split_3x6_3/drashna/glcdfont.c diff --git a/keyboards/crkbd/keymaps/drashna/keymap.c b/layouts/community/split_3x6_3/drashna/keymap.c similarity index 86% rename from keyboards/crkbd/keymaps/drashna/keymap.c rename to layouts/community/split_3x6_3/drashna/keymap.c index d9c1605ce98..30e3958febc 100644 --- a/keyboards/crkbd/keymaps/drashna/keymap.c +++ b/layouts/community/split_3x6_3/drashna/keymap.c @@ -1,3 +1,19 @@ +/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@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 "drashna.h" extern uint8_t is_master; @@ -17,90 +33,90 @@ enum crkbd_keycodes { RGBRST = NEW_SAFE_RANGE }; * of use. K## is a placeholder to pass through the individual keycodes */ -#define LAYOUT_crkbd_base( \ +#define LAYOUT_split_3x6_3_base( \ K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \ K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \ K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \ ) \ - LAYOUT_wrapper( \ + LAYOUT_split_3x6_3_wrapper( \ KC_ESC, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_MINS, \ ALT_T(KC_TAB), K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, RALT_T(KC_QUOT), \ OS_LSFT, CTL_T(K21), K22, K23, K24, K25, K26, K27, K28, K29, RCTL_T(K2A), OS_RSFT, \ KC_GRV, KC_SPC, BK_LWER, DL_RAIS, KC_ENT, OS_RGUI \ ) -#define LAYOUT_crkbd_base_wrapper(...) LAYOUT_crkbd_base(__VA_ARGS__) +#define LAYOUT_split_3x6_3_base_wrapper(...) LAYOUT_split_3x6_3_base(__VA_ARGS__) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = LAYOUT_crkbd_base_wrapper( + [_QWERTY] = LAYOUT_split_3x6_3_base_wrapper( _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, _________________QWERTY_L3_________________, _________________QWERTY_R3_________________ ), - [_COLEMAK] = LAYOUT_crkbd_base_wrapper( + [_COLEMAK] = LAYOUT_split_3x6_3_base_wrapper( _________________COLEMAK_L1________________, _________________COLEMAK_R1________________, _________________COLEMAK_L2________________, _________________COLEMAK_R2________________, _________________COLEMAK_L3________________, _________________COLEMAK_R3________________ ), - [_DVORAK] = LAYOUT_crkbd_base_wrapper( + [_DVORAK] = LAYOUT_split_3x6_3_base_wrapper( _________________DVORAK_L1_________________, _________________DVORAK_R1_________________, _________________DVORAK_L2_________________, _________________DVORAK_R2_________________, _________________DVORAK_L3_________________, _________________DVORAK_R3_________________ ), - [_WORKMAN] = LAYOUT_crkbd_base_wrapper( + [_WORKMAN] = LAYOUT_split_3x6_3_base_wrapper( _________________WORKMAN_L1________________, _________________WORKMAN_R1________________, _________________WORKMAN_L2________________, _________________WORKMAN_R2________________, _________________WORKMAN_L3________________, _________________WORKMAN_R3________________ ), - [_NORMAN] = LAYOUT_crkbd_base_wrapper( + [_NORMAN] = LAYOUT_split_3x6_3_base_wrapper( _________________NORMAN_L1_________________, _________________NORMAN_L1_________________, _________________NORMAN_L2_________________, _________________NORMAN_R2_________________, _________________NORMAN_L3_________________, _________________NORMAN_R3_________________ ), - [_MALTRON] = LAYOUT_crkbd_base_wrapper( + [_MALTRON] = LAYOUT_split_3x6_3_base_wrapper( _________________MALTRON_L1________________, _________________MALTRON_R1________________, _________________MALTRON_L2________________, _________________MALTRON_R2________________, _________________MALTRON_L3________________, _________________MALTRON_R3________________ ), - [_EUCALYN] = LAYOUT_crkbd_base_wrapper( + [_EUCALYN] = LAYOUT_split_3x6_3_base_wrapper( _________________EUCALYN_L1________________, _________________EUCALYN_R1________________, _________________EUCALYN_L2________________, _________________EUCALYN_R2________________, _________________EUCALYN_L3________________, _________________EUCALYN_R3________________ ), - [_CARPLAX] = LAYOUT_crkbd_base_wrapper( + [_CARPLAX] = LAYOUT_split_3x6_3_base_wrapper( _____________CARPLAX_QFMLWY_L1_____________, _____________CARPLAX_QFMLWY_R1_____________, _____________CARPLAX_QFMLWY_L2_____________, _____________CARPLAX_QFMLWY_R2_____________, _____________CARPLAX_QFMLWY_L3_____________, _____________CARPLAX_QFMLWY_R3_____________ ), - [_MODS] = LAYOUT_wrapper( + [_MODS] = LAYOUT_split_3x6_3_wrapper( _______, ___________________BLANK___________________, ___________________BLANK___________________, _______, _______, ___________________BLANK___________________, ___________________BLANK___________________, _______, KC_LSFT, ___________________BLANK___________________, ___________________BLANK___________________, KC_RSFT, _______, _______, _______, _______, _______, _______ ), - [_LOWER] = LAYOUT_wrapper( + [_LOWER] = LAYOUT_split_3x6_3_wrapper( KC_F11, _________________LOWER_L1__________________, _________________LOWER_R1__________________, KC_F11, KC_F12, _________________LOWER_L2__________________, _________________LOWER_R2__________________, KC_PIPE, _______, _________________LOWER_L3__________________, _________________LOWER_R3__________________, _______, _______, _______, _______, _______, _______, _______ ), - [_RAISE] = LAYOUT_wrapper( \ + [_RAISE] = LAYOUT_split_3x6_3_wrapper( \ _______, _________________RAISE_L1__________________, _________________RAISE_R1__________________, _______, _______, _________________RAISE_L2__________________, _________________RAISE_R2__________________, KC_BSLS, _______, _________________RAISE_L3__________________, _________________RAISE_R3__________________, _______, _______, _______, _______, _______, _______, _______ ), - [_ADJUST] = LAYOUT_wrapper( \ + [_ADJUST] = LAYOUT_split_3x6_3_wrapper( \ KC_MAKE, _________________ADJUST_L1_________________, _________________ADJUST_R1_________________, KC_RESET, VRSN, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, EEP_RST, MG_NKRO, _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, RGB_IDL, diff --git a/keyboards/crkbd/keymaps/drashna/rules.mk b/layouts/community/split_3x6_3/drashna/rules.mk similarity index 88% rename from keyboards/crkbd/keymaps/drashna/rules.mk rename to layouts/community/split_3x6_3/drashna/rules.mk index 492c17e20fe..6ac1554b330 100644 --- a/keyboards/crkbd/keymaps/drashna/rules.mk +++ b/layouts/community/split_3x6_3/drashna/rules.mk @@ -16,12 +16,13 @@ UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. SWAP_HANDS_ENABLE = no # Enable one-hand typing -RGB_MATRIX_ENABLE = WS2812 -HAPTIC_ENABLE = SOLENOID # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend -BOOTLOADER = qmk-dfu - -OLED_DRIVER_ENABLE = yes +ifeq ($(strip $(KEYBOARD)), crkbd/rev1) + OLED_DRIVER_ENABLE = yes + RGB_MATRIX_ENABLE = WS2812 + HAPTIC_ENABLE = SOLENOID + BOOTLOADER = qmk-dfu +endif diff --git a/layouts/default/60_ansi_arrow/default_60_ansi_arrow/keymap.c b/layouts/default/60_ansi_arrow/default_60_ansi_arrow/keymap.c index 75f2f1a7cbb..565e9990a2b 100644 --- a/layouts/default/60_ansi_arrow/default_60_ansi_arrow/keymap.c +++ b/layouts/default/60_ansi_arrow/default_60_ansi_arrow/keymap.c @@ -1,5 +1,7 @@ /* - * Copyright (C) 2020 Sendy YK . + * 60_ansi_arrow Keymap + * + * Copyright (C) 2020 Sendy YK * * 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,39 +17,28 @@ * along with this program. If not, see . */ -// Default 60% ANSI Arrow Keyboard Layout and Keymap by Sendy YK . - #include QMK_KEYBOARD_H enum layer_names { _BASE, // Default Layer - _FN, // Fn Layer 1 - _SETTINGS // Fn Layer 2 + _FN // Fn Layer }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Default Layer [_BASE] = 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, KC_RSFT, KC_UP, KC_SLSH, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, LT(2, KC_RALT), LT(1, KC_RCTL), KC_LEFT, KC_DOWN, KC_RGHT + 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, KC_RSFT, KC_UP, KC_SLSH, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN), KC_LEFT, KC_DOWN, KC_RGHT ), - // Fn Layer 1 + // Fn Layer [_FN] = 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_BRIU, KC_TRNS, KC_TRNS, KC_END, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_TRNS, KC_PSCR, KC_TRNS, KC_TRNS, KC_EJCT, - KC_BRID, KC_TRNS, KC_SLCK, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, - KC_VOLU, KC_TRNS, KC_TRNS, KC_CALC, KC_TRNS, KC_TRNS, KC_NLCK, KC_MAIL, KC_TRNS, KC_TRNS, KC_PAUS, KC_PGUP, KC_TRNS, - KC_VOLD, KC_MRWD, KC_MFFD, KC_MPLY, KC_MSTP, KC_TRNS, KC_MPRV, KC_PGDN, KC_MNXT - ), - // Fn Layer 2 - [_SETTINGS] = LAYOUT_60_ansi_arrow( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_TOGG, BL_INC, BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + KC_BRIU, _______, _______, KC_END, RESET, _______, _______, _______, KC_INS, _______, KC_PSCR, _______, _______, KC_EJCT, + KC_BRID, _______, KC_SLCK, _______, _______, _______, KC_HOME, _______, _______, _______, _______, _______, KC_MUTE, + KC_VOLU, _______, _______, KC_CALC, _______, _______, KC_NLCK, KC_MAIL, _______, _______, KC_PAUS, KC_PGUP, _______, + KC_VOLD, KC_MRWD, KC_MFFD, KC_MPLY, KC_MSTP, _______, KC_MPRV, KC_PGDN, KC_MNXT ) }; diff --git a/layouts/default/60_ansi_arrow/readme.md b/layouts/default/60_ansi_arrow/readme.md index 76c5cb4994b..e379caa34a2 100644 --- a/layouts/default/60_ansi_arrow/readme.md +++ b/layouts/default/60_ansi_arrow/readme.md @@ -1,28 +1,14 @@ -# 60_ansi_arrow and Keymap +# 60_ansi_arrow Keymap -Default 60% ANSI Arrow keyboard layout and keymap by [Sendy YK](https://mr.sendyyk.com). +by [Sendy YK](https://mr.sendyyk.com). -## 60% ANSI Arrow Layout +## Default Layer -![LAYOUT_60_ansi_arrow](https://raw.githubusercontent.com/mrsendyyk/files/public/qmk/firmware/layouts/community/60_ansi_arrow/mrsendyyk/images/layout-60-ansi-arrow.png) +![_BASE](https://raw.githubusercontent.com/mrsendyyk/qmk_firmware/development/images/60_ansi_arrow_keymap_base.png) -## Keymap +## Fn Layer -### Default Layer - -![_BASE](https://raw.githubusercontent.com/mrsendyyk/files/public/qmk/firmware/layouts/community/60_ansi_arrow/mrsendyyk/images/layout-60-ansi-arrow-keymap---layer-0.png) - -### Fn Layer 1 - -Press and hold *right* **Ctrl** key. - -![_FN](https://raw.githubusercontent.com/mrsendyyk/files/public/qmk/firmware/layouts/community/60_ansi_arrow/mrsendyyk/images/layout-60-ansi-arrow-keymap---layer-1.png) - -### Fn Layer 2 - -Press and hold *right* **Alt** key. - -![_SETTINGS](https://raw.githubusercontent.com/mrsendyyk/files/public/qmk/firmware/layouts/community/60_ansi_arrow/mrsendyyk/images/layout-60-ansi-arrow-keymap---layer-2.png) +![_FN](https://raw.githubusercontent.com/mrsendyyk/qmk_firmware/development/images/60_ansi_arrow_keymap_fn.png) ## Build The Firmware diff --git a/layouts/default/alice/default_alice/keymap.c b/layouts/default/alice/default_alice/keymap.c new file mode 100644 index 00000000000..67651b2c5f5 --- /dev/null +++ b/layouts/default/alice/default_alice/keymap.c @@ -0,0 +1,39 @@ +/* Copyright 2020 MudkipMao + * + * 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] = { + /* + * ┌───┐  ┌───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┬───────┐ + * │Esc│ │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ + * ┌┴──┬┘ ┌┴───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┘ ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┴┐ + * │PUp│ │ Tab │ Q │ W │ E │ R │ T │ │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ + * ┌┴──┬┘ ┌┴─────┼───┼───┼───┼───┼───┤ └┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴──────┴┐ + * │PDn│ │ Caps │ A │ S │ D │ F │ G │ │ H │ J │ K │ L │ ; │ ' │ Enter │ + * └───┘ ┌┴──────┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───────┬──┴┐ + * │ Shift │ Z │ X │ C │ V │ B │ │ B │ N │ M │ , │ . │ / │ Shift │Shf│ + * ├─────┬──┴──┬┴───┴┬──┴───┴┬──┴──┐ ├───┴───┴──┬┴───┴┬──┴───┴──────┬──┴──┬┘ + * │ Ctl │ │ Alt │ │ GUI │ │ │ Alt │ │ Ctl │ + * └─────┘ └─────┴───────┴─────┘ └──────────┴─────┘ └─────┘ + */ + [0] = LAYOUT_alice( + KC_ESC, 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_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, + KC_LCTL, KC_LALT, KC_SPC, KC_LGUI, KC_SPC, KC_RALT, KC_RCTL + ) +}; diff --git a/layouts/default/alice/info.json b/layouts/default/alice/info.json new file mode 100644 index 00000000000..3521a4b7c08 --- /dev/null +++ b/layouts/default/alice/info.json @@ -0,0 +1,82 @@ +{ + "keyboard_name": "Alice layout", + "url": "", + "maintainer": "qmk", + "width": 18.35, + "height": 5.1, + "layouts": { + "LAYOUT_alice": { + "layout": [ + {"x":0.4, "y":0}, + {"x":1.55, "y":0.1}, + {"x":2.55, "y":0.1}, + {"x":3.55, "y":0}, + {"x":4.55, "y":0.1}, + {"x":5.55, "y":0.1}, + {"x":6.55, "y":0.1}, + {"x":7.55, "y":0.1}, + {"x":9.75, "y":0.1}, + {"x":10.75, "y":0.1}, + {"x":11.75, "y":0.1}, + {"x":12.75, "y":0.1}, + {"x":13.75, "y":0}, + {"x":14.75, "y":0.1}, + {"x":15.75, "y":0.1, "w":2}, + + {"x":0.2, "y":1.0}, + {"x":1.35, "y":1.1, "w":1.5}, + {"x":2.85, "y":1.1}, + {"x":3.85, "y":1.1}, + {"x":4.85, "y":1.1}, + {"x":5.85, "y":1.1}, + {"x":6.85, "y":1.1}, + {"x":9.45, "y":1.1}, + {"x":10.45, "y":1.1}, + {"x":11.45, "y":1.1}, + {"x":12.45, "y":1.1}, + {"x":13.45, "y":1.1}, + {"x":14.45, "y":1.1}, + {"x":15.45, "y":1.1}, + {"x":16.45, "y":1.1, "w":1.5}, + + {"x":0, "y":2.0}, + {"x":1.15, "y":2.1, "w":1.75}, + {"x":2.9, "y":2.1}, + {"x":3.9, "y":2.1}, + {"x":4.9, "y":2.1}, + {"x":5.9, "y":2.1}, + {"x":6.9, "y":2.1}, + {"x":9.9, "y":2.1}, + {"x":10.9, "y":2.1}, + {"x":11.9, "y":2.1}, + {"x":12.9, "y":2.1}, + {"x":13.9, "y":2.1}, + {"x":14.9, "y":2.1}, + {"x":15.9, "y":2.1, "w":2.25}, + + {"x":0.95, "y":3.1, "w":2.25}, + {"x":3.2, "y":3.1}, + {"x":4.2, "y":3.1}, + {"x":5.2, "y":3.1}, + {"x":6.2, "y":3.1}, + {"x":7.2, "y":3.1}, + {"x":9.6, "y":3.1}, + {"x":10.6, "y":3.1}, + {"x":11.6, "y":3.1}, + {"x":12.6, "y":3.1}, + {"x":13.6, "y":3.1}, + {"x":14.6, "y":3.1}, + {"x":15.6, "y":3.1, "w":1.75}, + {"x":17.35, "y":3.1}, + + {"x":0.95, "y":4.1, "w":1.5}, + {"x":3.85, "y":4.1, "w":1.5}, + {"x":5.35, "y":4.1, "w":2}, + {"x":7.35, "y":4.1, "w":1.25}, + {"x":9.6, "y":4.1, "w":2.75}, + {"x":12.35, "y":4.1, "w":1.5}, + {"x":16.65, "y":4.1, "w":1.5} + ] + } + } +} diff --git a/layouts/default/alice/layout.json b/layouts/default/alice/layout.json new file mode 100644 index 00000000000..b399ccf0ff2 --- /dev/null +++ b/layouts/default/alice/layout.json @@ -0,0 +1,21 @@ +[{y:0.9,x:0.55,a:7},"",{x:2.15},"",{x:8.55},""], +[{y:-0.9,x:1.7},"","",{x:10.55},"",{w:2},""], +[{y:-0.1,x:0.35},""], +[{y:-0.95,x:12.95},""], +[{y:-0.95,x:1.5,w:1.5},"","",{x:9.95},"","",{w:1.5},""], +[{y:-0.1,x:0.15},""], +[{y:-0.9,x:1.3,w:1.75},"","",{x:9.35},"",{x:0},"",{w:2.25},""], +[{x:1.1,w:2.25},"","",{x:8.75},"","",{w:1.75},"",""], +[{x:1.1,w:1.5},"",{x:13.55,w:1.5},""], +[{r:12,y:-6,x:5},"","","",""], +[{x:4.5},"","","",""], +[{x:4.8},"","","",""], +[{x:5.3},"","","",""], +[{x:6.45,w:2},"",{w:1.25},""], +[{y:-0.95,x:4.95,w:1.5},""], +[{r:-12,y:-1.45,x:8.55},"","","",""], +[{x:8.05},"","","",""], +[{x:8.2},"","","",""], +[{x:7.75},"","","",""], +[{x:7.75,w:2.75},""], +[{y:-0.95,x:10.5,w:1.5},""] diff --git a/layouts/default/alice/readme.md b/layouts/default/alice/readme.md new file mode 100644 index 00000000000..a52d4971692 --- /dev/null +++ b/layouts/default/alice/readme.md @@ -0,0 +1,3 @@ +# alice + + LAYOUT_alice diff --git a/layouts/default/readme.md b/layouts/default/readme.md index 881b1ec5bdc..f1e5b56d018 100644 --- a/layouts/default/readme.md +++ b/layouts/default/readme.md @@ -451,6 +451,21 @@ LAYOUT_fullsize_iso ### Split Layouts +``` +LAYOUT_alice + ┌───┐  ┌───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┬───────┐ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + ┌┴──┬┘ ┌┴───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┘ ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┴┐ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +┌┴──┬┘ ┌┴─────┼───┼───┼───┼───┼───┤ └┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴──────┴┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +└───┘ ┌┴──────┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───────┬──┴┐ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + ├─────┬──┴──┬┴───┴┬──┴───┴┬──┴──┐ ├───┴───┴──┬┴───┴┬──┴───┴──────┬──┴──┬┘ + │ │ │ │ │ │ │ │ │ │ │ + └─────┘ └─────┴───────┴─────┘ └──────────┴─────┘ └─────┘ +``` + ``` LAYOUT_ergodox ┌─────┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┬─────┐ diff --git a/lib/python/milc.py b/lib/python/milc.py index eb18984eb3f..0cdd43dc893 100644 --- a/lib/python/milc.py +++ b/lib/python/milc.py @@ -18,9 +18,11 @@ import logging import os import re import shlex +import subprocess import sys from decimal import Decimal from pathlib import Path +from platform import platform from tempfile import NamedTemporaryFile from time import sleep @@ -94,29 +96,54 @@ def format_ansi(text): return text + ansi_colors['style_reset_all'] -class ANSIFormatter(logging.Formatter): - """A log formatter that inserts ANSI color. +class ANSIFormatterMixin(object): + """A log formatter mixin that inserts ANSI color. """ def format(self, record): - msg = super(ANSIFormatter, self).format(record) + msg = super(ANSIFormatterMixin, self).format(record) return format_ansi(msg) -class ANSIEmojiLoglevelFormatter(ANSIFormatter): - """A log formatter that makes the loglevel an emoji on UTF capable terminals. +class ANSIStrippingMixin(object): + """A log formatter mixin that strips ANSI. + """ + def format(self, record): + msg = super(ANSIStrippingMixin, self).format(record) + record.levelname = ansi_escape.sub('', record.levelname) + return ansi_escape.sub('', msg) + + +class EmojiLoglevelMixin(object): + """A log formatter mixin that makes the loglevel an emoji on UTF capable terminals. """ def format(self, record): if UNICODE_SUPPORT: record.levelname = EMOJI_LOGLEVELS[record.levelname].format(**ansi_colors) - return super(ANSIEmojiLoglevelFormatter, self).format(record) + return super(EmojiLoglevelMixin, self).format(record) -class ANSIStrippingFormatter(ANSIFormatter): - """A log formatter that strips ANSI. +class ANSIFormatter(ANSIFormatterMixin, logging.Formatter): + """A log formatter that colorizes output. """ - def format(self, record): - msg = super(ANSIStrippingFormatter, self).format(record) - return ansi_escape.sub('', msg) + pass + + +class ANSIStrippingFormatter(ANSIStrippingMixin, ANSIFormatterMixin, logging.Formatter): + """A log formatter that strips ANSI + """ + pass + + +class ANSIEmojiLoglevelFormatter(EmojiLoglevelMixin, ANSIFormatterMixin, logging.Formatter): + """A log formatter that adds Emoji and ANSI + """ + pass + + +class ANSIStrippingEmojiLoglevelFormatter(ANSIStrippingMixin, EmojiLoglevelMixin, ANSIFormatterMixin, logging.Formatter): + """A log formatter that adds Emoji and strips ANSI + """ + pass class Configuration(object): @@ -288,11 +315,12 @@ class MILC(object): self.config_file = None self.default_arguments = {} self.version = 'unknown' - self.release_lock() + self.platform = platform() # Figure out our program name self.prog_name = sys.argv[0][:-3] if sys.argv[0].endswith('.py') else sys.argv[0] self.prog_name = self.prog_name.split('/')[-1] + self.release_lock() # Initialize all the things self.read_config_file() @@ -315,6 +343,8 @@ class MILC(object): strings. If *args or **kwargs are passed they will be used to %-format the strings. + + If `self.config.general.color` is False any ANSI escape sequences in the text will be stripped. """ if args and kwargs: raise RuntimeError('You can only specify *args or **kwargs, not both!') @@ -322,8 +352,27 @@ class MILC(object): args = args or kwargs text = format_ansi(text) + if not self.config.general.color: + text = ansi_escape.sub('', text) + print(text % args) + def run(self, command, *args, **kwargs): + """Run a command with subprocess.run + The *args and **kwargs arguments get passed directly to `subprocess.run`. + """ + if isinstance(command, str): + raise TypeError('`command` must be a non-text sequence such as list or tuple.') + + if 'windows' in self.platform.lower(): + safecmd = map(shlex.quote, command) + safecmd = ' '.join(safecmd) + command = [os.environ['SHELL'], '-c', safecmd] + + self.log.debug('Running command: %s', command) + + return subprocess.run(command, *args, **kwargs) + def initialize_argparse(self): """Prepare to process arguments from sys.argv. """ @@ -678,14 +727,13 @@ class MILC(object): self.log_print_level = logging.DEBUG self.log_file = self.config['general']['log_file'] or self.log_file - self.log_file_format = self.config['general']['log_file_fmt'] self.log_file_format = ANSIStrippingFormatter(self.config['general']['log_file_fmt'], self.config['general']['datetime_fmt']) self.log_format = self.config['general']['log_fmt'] if self.config.general.color: - self.log_format = ANSIEmojiLoglevelFormatter(self.args.log_fmt, self.config.general.datetime_fmt) + self.log_format = ANSIEmojiLoglevelFormatter(self.config.general.log_fmt, self.config.general.datetime_fmt) else: - self.log_format = ANSIStrippingFormatter(self.args.log_fmt, self.config.general.datetime_fmt) + self.log_format = ANSIStrippingEmojiLoglevelFormatter(self.config.general.log_fmt, self.config.general.datetime_fmt) if self.log_file: self.log_file_handler = logging.FileHandler(self.log_file, self.log_file_mode) diff --git a/lib/python/qmk/cli/doctor.py b/lib/python/qmk/cli/doctor.py index 7fafd57575d..9983865b314 100755 --- a/lib/python/qmk/cli/doctor.py +++ b/lib/python/qmk/cli/doctor.py @@ -156,24 +156,16 @@ def check_udev_rules(): _udev_rule("03EB", "2FF3"), # ATmega16U4 _udev_rule("03EB", "2FF4"), # ATmega32U4 _udev_rule("03EB", "2FF9"), # AT90USB64 - _udev_rule("03EB", "2FFB") # AT90USB128 - }, - 'kiibohd': { - _udev_rule("1C11", "B007") + _udev_rule("03EB", "2FFB") # AT90USB128 }, + 'kiibohd': {_udev_rule("1C11", "B007")}, 'stm32': { _udev_rule("1EAF", "0003"), # STM32duino - _udev_rule("0483", "DF11") # STM32 DFU - }, - 'bootloadhid': { - _udev_rule("16C0", "05DF") - }, - 'usbasploader': { - _udev_rule("16C0", "05DC") - }, - 'massdrop': { - _udev_rule("03EB", "6124") + _udev_rule("0483", "DF11") # STM32 DFU }, + 'bootloadhid': {_udev_rule("16C0", "05DF")}, + 'usbasploader': {_udev_rule("16C0", "05DC")}, + 'massdrop': {_udev_rule("03EB", "6124")}, 'caterina': { # Spark Fun Electronics _udev_rule("1B4F", "9203", 'ENV{ID_MM_DEVICE_IGNORE}="1"'), # Pro Micro 3V3/8MHz @@ -190,7 +182,7 @@ def check_udev_rules(): _udev_rule("239A", "000E", 'ENV{ID_MM_DEVICE_IGNORE}="1"'), # ItsyBitsy 32U4 5V/16MHz # dog hunter AG _udev_rule("2A03", "0036", 'ENV{ID_MM_DEVICE_IGNORE}="1"'), # Leonardo - _udev_rule("2A03", "0037", 'ENV{ID_MM_DEVICE_IGNORE}="1"') # Micro + _udev_rule("2A03", "0037", 'ENV{ID_MM_DEVICE_IGNORE}="1"') # Micro } } diff --git a/lib/python/qmk/info.py b/lib/python/qmk/info.py index 15a5c097a5b..0e540c00a82 100644 --- a/lib/python/qmk/info.py +++ b/lib/python/qmk/info.py @@ -161,8 +161,6 @@ def arm_processor_rules(info_data, rules): if info_data['bootloader'] == 'unknown': if 'STM32' in info_data['processor']: info_data['bootloader'] = 'stm32-dfu' - elif info_data.get('manufacturer') == 'Input Club': - info_data['bootloader'] = 'kiibohd-dfu' if 'STM32' in info_data['processor']: info_data['platform'] = 'STM32' diff --git a/lib/python/qmk/questions.py b/lib/python/qmk/questions.py index 27f43ac1e94..865c6bbdc51 100644 --- a/lib/python/qmk/questions.py +++ b/lib/python/qmk/questions.py @@ -1,7 +1,12 @@ """Functions to collect user input. """ -from milc import cli, format_ansi +from milc import cli + +try: + from milc import format_ansi +except ImportError: + from milc.ansi import format_ansi def yesno(prompt, *args, default=None, **kwargs): diff --git a/quantum/keymap_extras/sendstring_french.h b/quantum/keymap_extras/sendstring_french.h index 17ea3ed4545..ab65f28eb7a 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/drashna/config.h b/users/drashna/config.h index 7d83c788444..9fc65e5c903 100644 --- a/users/drashna/config.h +++ b/users/drashna/config.h @@ -1,3 +1,19 @@ +/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@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 // Use custom magic number so that when switching branches, EEPROM always gets reset @@ -7,11 +23,6 @@ #define USB_POLLING_INTERVAL_MS 1 #ifdef AUDIO_ENABLE -# if __GNUC__ > 5 -# if __has_include("drashna_song_list.h") -# include "drashna_song_list.h" -# endif // if file exists -# endif // __GNUC__ # define AUDIO_CLICKY # define STARTUP_SONG SONG(RICK_ROLL) @@ -49,7 +60,7 @@ // # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255 // # define EECONFIG_RGB_MATRIX (uint32_t *)16 -# if defined(__AVR__) && !defined(__AVR_AT90USB1286__) +# if defined(__AVR__) && !defined(__AVR_AT90USB1286__) && !defined(KEYBOARD_launchpad) # define DISABLE_RGB_MATRIX_ALPHAS_MODS # define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN # define DISABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT @@ -63,7 +74,7 @@ # define DISABLE_RGB_MATRIX_CYCLE_ALL # define DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT # define DISABLE_RGB_MATRIX_CYCLE_UP_DOWN -# define DISABLE_RGB_MATRIX_CYCLE_OUT_IN +// # define DISABLE_RGB_MATRIX_CYCLE_OUT_IN // # define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL # define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON # define DISABLE_RGB_MATRIX_DUAL_BEACON @@ -100,7 +111,7 @@ #ifdef QMK_KEYS_PER_SCAN # undef QMK_KEYS_PER_SCAN -# define QMK_KEYS_PER_SCAN 1 +# define QMK_KEYS_PER_SCAN 2 #endif // !QMK_KEYS_PER_SCAN // this makes it possible to do rolling combos (zx) with keys that @@ -111,6 +122,7 @@ #undef PERMISSIVE_HOLD //#define TAPPING_FORCE_HOLD //#define RETRO_TAPPING +#define TAPPING_TERM_PER_KEY #define FORCE_NKRO diff --git a/users/drashna/drashna.c b/users/drashna/drashna.c index 5c0f180278e..ec6484621d4 100644 --- a/users/drashna/drashna.c +++ b/users/drashna/drashna.c @@ -1,19 +1,18 @@ -/* -Copyright 2017 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 . -*/ +/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@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 "drashna.h" diff --git a/users/drashna/drashna.h b/users/drashna/drashna.h index dd2b0225841..772005a0343 100644 --- a/users/drashna/drashna.h +++ b/users/drashna/drashna.h @@ -1,19 +1,18 @@ -/* -Copyright 2017 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 . -*/ +/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@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 QMK_KEYBOARD_H diff --git a/users/drashna/oled_stuff.c b/users/drashna/oled_stuff.c index 6503b970e25..46288aad2f9 100644 --- a/users/drashna/oled_stuff.c +++ b/users/drashna/oled_stuff.c @@ -1,3 +1,19 @@ +/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@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 "drashna.h" extern uint8_t is_master; diff --git a/users/drashna/oled_stuff.h b/users/drashna/oled_stuff.h index 662e206b760..7f2786d00c1 100644 --- a/users/drashna/oled_stuff.h +++ b/users/drashna/oled_stuff.h @@ -1,3 +1,19 @@ +/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@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" diff --git a/users/drashna/pimoroni_trackball.c b/users/drashna/pimoroni_trackball.c index c5bb560b354..9ae094c05ab 100644 --- a/users/drashna/pimoroni_trackball.c +++ b/users/drashna/pimoroni_trackball.c @@ -1,3 +1,19 @@ +/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@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 "pimoroni_trackball.h" #include "i2c_master.h" @@ -6,7 +22,7 @@ static int16_t x_offset = 0; static int16_t y_offset = 0; static int16_t h_offset = 0; static int16_t v_offset = 0; -static float precisionSpeed = 1; +static float precisionSpeed = 1; #ifndef I2C_TIMEOUT # define I2C_TIMEOUT 100 @@ -47,17 +63,37 @@ __attribute__((weak)) void trackball_check_click(bool pressed, report_mouse_t* m } } -float trackball_get_precision(void) { return precisionSpeed; } -void trackball_set_precision(float precision) { precisionSpeed = precision; } -bool trackball_is_scrolling(void) { return scrolling; } -void trackball_set_scrolling(bool scroll) { scrolling = scroll; } +void trackball_register_button(bool pressed, enum mouse_buttons button) { + report_mouse_t currentReport = pointing_device_get_report(); + if (pressed) { + currentReport.buttons |= button; + } else { + currentReport.buttons &= ~button; + } + pointing_device_set_report(currentReport); +} -__attribute__((weak)) void pointing_device_init(void) { trackball_set_rgbw(0x00,0x00,0x00,0x4F); } +float trackball_get_precision(void) { return precisionSpeed; } +void trackball_set_precision(float precision) { precisionSpeed = precision; } +bool trackball_is_scrolling(void) { return scrolling; } +void trackball_set_scrolling(bool scroll) { scrolling = scroll; } + +bool has_report_changed (report_mouse_t first, report_mouse_t second) { + return !( + (!first.buttons && first.buttons == second.buttons) && + (!first.x && first.x == second.x) && + (!first.y && first.y == second.y) && + (!first.h && first.h == second.h) && + (!first.v && first.v == second.v) ); +} + + +__attribute__((weak)) void pointing_device_init(void) { trackball_set_rgbw(0x00, 0x00, 0x00, 0x4F); } void pointing_device_task(void) { - static bool debounce; + static bool debounce; static uint16_t debounce_timer; - uint8_t state[5] = {}; + uint8_t state[5] = {}; if (i2c_readReg(TRACKBALL_WRITE, 0x04, state, 5, I2C_TIMEOUT) == I2C_STATUS_SUCCESS) { if (!state[4] && !debounce) { if (scrolling) { @@ -85,7 +121,7 @@ void pointing_device_task(void) { } } else { if (state[4]) { - debounce = true; + debounce = true; debounce_timer = timer_read(); } } @@ -97,7 +133,6 @@ void pointing_device_task(void) { trackball_check_click(state[4] & (1 << 7), &mouse); - #ifndef PIMORONI_TRACKBALL_ROTATE update_member(&mouse.x, &x_offset); update_member(&mouse.y, &y_offset); @@ -110,5 +145,7 @@ void pointing_device_task(void) { update_member(&mouse.v, &h_offset); #endif pointing_device_set_report(mouse); - pointing_device_send(); + if (has_report_changed(mouse, pointing_device_get_report())) { + pointing_device_send(); + } } diff --git a/users/drashna/pimoroni_trackball.h b/users/drashna/pimoroni_trackball.h index 7e8a7cc8163..83d248d3ff9 100644 --- a/users/drashna/pimoroni_trackball.h +++ b/users/drashna/pimoroni_trackball.h @@ -1,3 +1,19 @@ +/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@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" @@ -11,6 +27,7 @@ void trackball_set_rgbw(uint8_t red, uint8_t green, uint8_t blue, uint8_t white); void trackball_check_click(bool pressed, report_mouse_t *mouse); +void trackball_register_button(bool pressed, enum mouse_buttons button); float trackball_get_precision(void); void trackball_set_precision(float precision); diff --git a/users/drashna/process_records.c b/users/drashna/process_records.c index 8e3d3356eef..19bdef73f1b 100644 --- a/users/drashna/process_records.c +++ b/users/drashna/process_records.c @@ -1,3 +1,19 @@ +/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@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 "drashna.h" uint16_t copy_paste_timer; @@ -21,304 +37,171 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { process_record_user_oled(keycode, record); #endif // OLED - if (process_record_keymap(keycode, record) && process_record_secrets(keycode, record) + if (!(process_record_keymap(keycode, record) && process_record_secrets(keycode, record) #ifdef RGB_MATRIX_ENABLE && process_record_user_rgb_matrix(keycode, record) #endif #ifdef RGBLIGHT_ENABLE && process_record_user_rgb_light(keycode, record) #endif - ) { - switch (keycode) { - case KC_QWERTY ... KC_WORKMAN: - if (record->event.pressed) { - uint8_t mods = mod_config(get_mods() | get_oneshot_mods()); - if (!mods) { - set_single_persistent_default_layer(keycode - KC_QWERTY); - } else if (mods & MOD_MASK_SHIFT) { - set_single_persistent_default_layer(keycode - KC_QWERTY + 4); - } else if (mods & MOD_MASK_CTRL) { - set_single_persistent_default_layer(keycode - KC_QWERTY + 8); - } - } - break; + && true)) { + return false; + } - case KC_MAKE: // Compiles the firmware, and adds the flash command based on keyboard bootloader - if (!record->event.pressed) { + switch (keycode) { + case KC_QWERTY ... KC_WORKMAN: + if (record->event.pressed) { + uint8_t mods = mod_config(get_mods() | get_oneshot_mods()); + if (!mods) { + set_single_persistent_default_layer(keycode - KC_QWERTY); + } else if (mods & MOD_MASK_SHIFT) { + set_single_persistent_default_layer(keycode - KC_QWERTY + 4); + } else if (mods & MOD_MASK_CTRL) { + set_single_persistent_default_layer(keycode - KC_QWERTY + 8); + } + } + break; + + case KC_MAKE: // Compiles the firmware, and adds the flash command based on keyboard bootloader + if (!record->event.pressed) { #ifndef MAKE_BOOTLOADER - uint8_t temp_mod = mod_config(get_mods()); - uint8_t temp_osm = mod_config(get_oneshot_mods()); - clear_mods(); - clear_oneshot_mods(); + uint8_t temp_mod = mod_config(get_mods()); + uint8_t temp_osm = mod_config(get_oneshot_mods()); + clear_mods(); + clear_oneshot_mods(); #endif - send_string_with_delay_P(PSTR("qmk"), TAP_CODE_DELAY); + send_string_with_delay_P(PSTR("qmk"), TAP_CODE_DELAY); #ifndef MAKE_BOOTLOADER - if ((temp_mod | temp_osm) & MOD_MASK_SHIFT) + if ((temp_mod | temp_osm) & MOD_MASK_SHIFT) #endif - { - send_string_with_delay_P(PSTR(" flash "), TAP_CODE_DELAY); + { + send_string_with_delay_P(PSTR(" flash "), TAP_CODE_DELAY); #ifndef MAKE_BOOTLOADER - } else { - send_string_with_delay_P(PSTR(" compile "), TAP_CODE_DELAY); -#endif - } - send_string_with_delay_P(PSTR("-kb " QMK_KEYBOARD " -km " QMK_KEYMAP), TAP_CODE_DELAY); -#ifdef RGB_MATRIX_SPLIT_RIGHT - send_string_with_delay_P(PSTR(" RGB_MATRIX_SPLIT_RIGHT=yes"), TAP_CODE_DELAY); -# ifndef OLED_DRIVER_ENABLE - send_string_with_delay_P(PSTR(" OLED_DRIVER_ENABLE=no"), TAP_CODE_DELAY); -# endif -#endif - send_string_with_delay_P(PSTR(SS_TAP(X_ENTER)), TAP_CODE_DELAY); - } - - break; - - case VRSN: // Prints firmware version - if (record->event.pressed) { - send_string_with_delay_P(PSTR(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION ", Built on: " QMK_BUILDDATE), TAP_CODE_DELAY); - } - break; - - case KC_DIABLO_CLEAR: // reset all Diablo timers, disabling them -#ifdef TAP_DANCE_ENABLE - if (record->event.pressed) { - for (uint8_t index = 0; index < 4; index++) { - diablo_timer[index].key_interval = 0; - } - } -#endif // TAP_DANCE_ENABLE - break; - - case KC_CCCV: // One key copy/paste - if (record->event.pressed) { - copy_paste_timer = timer_read(); } else { - if (timer_elapsed(copy_paste_timer) > TAPPING_TERM) { // Hold, copy - tap_code16(LCTL(KC_C)); - } else { // Tap, paste - tap_code16(LCTL(KC_V)); - } - } - break; -#ifdef UNICODE_ENABLE - case UC_FLIP: // (ノಠ痊ಠ)ノ彡┻━┻ - if (record->event.pressed) { - send_unicode_string("(ノಠ痊ಠ)ノ彡┻━┻"); - } - break; - case UC_TABL: // ┬─┬ノ( º _ ºノ) - if (record->event.pressed) { - send_unicode_string("┬─┬ノ( º _ ºノ)"); - } - break; - case UC_SHRG: // ¯\_(ツ)_/¯ - if (record->event.pressed) { - send_unicode_string("¯\\_(ツ)_/¯"); - } - break; - case UC_DISA: // ಠ_ಠ - if (record->event.pressed) { - send_unicode_string("ಠ_ಠ"); - } - break; + send_string_with_delay_P(PSTR(" compile "), TAP_CODE_DELAY); #endif - case KC_RGB_T: // This allows me to use underglow as layer indication, or as normal -#if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE) - if (record->event.pressed) { - userspace_config.rgb_layer_change ^= 1; - dprintf("rgblight layer change [EEPROM]: %u\n", userspace_config.rgb_layer_change); - eeconfig_update_user(userspace_config.raw); - if (userspace_config.rgb_layer_change) { -# if defined(RGBLIGHT_ENABLE) && defined(RGB_MATRIX_ENABLE) - rgblight_enable_noeeprom(); -# endif - layer_state_set(layer_state); // This is needed to immediately set the layer color (looks better) -# if defined(RGBLIGHT_ENABLE) && defined(RGB_MATRIX_ENABLE) - } else { - rgblight_disable_noeeprom(); -# endif - } } + send_string_with_delay_P(PSTR("-kb " QMK_KEYBOARD " -km " QMK_KEYMAP), TAP_CODE_DELAY); +#ifdef RGB_MATRIX_SPLIT_RIGHT + send_string_with_delay_P(PSTR(" RGB_MATRIX_SPLIT_RIGHT=yes"), TAP_CODE_DELAY); +# ifndef OLED_DRIVER_ENABLE + send_string_with_delay_P(PSTR(" OLED_DRIVER_ENABLE=no"), TAP_CODE_DELAY); +# endif +#endif + send_string_with_delay_P(PSTR(SS_TAP(X_ENTER)), TAP_CODE_DELAY); + } + + break; + + case VRSN: // Prints firmware version + if (record->event.pressed) { + send_string_with_delay_P(PSTR(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION ", Built on: " QMK_BUILDDATE), TAP_CODE_DELAY); + } + break; + + case KC_DIABLO_CLEAR: // reset all Diablo timers, disabling them +#ifdef TAP_DANCE_ENABLE + if (record->event.pressed) { + for (uint8_t index = 0; index < 4; index++) { + diablo_timer[index].key_interval = 0; + } + } +#endif // TAP_DANCE_ENABLE + break; + + case KC_CCCV: // One key copy/paste + if (record->event.pressed) { + copy_paste_timer = timer_read(); + } else { + if (timer_elapsed(copy_paste_timer) > TAPPING_TERM) { // Hold, copy + tap_code16(LCTL(KC_C)); + } else { // Tap, paste + tap_code16(LCTL(KC_V)); + } + } + break; +#ifdef UNICODE_ENABLE + case UC_FLIP: // (ノಠ痊ಠ)ノ彡┻━┻ + if (record->event.pressed) { + send_unicode_string("(ノಠ痊ಠ)ノ彡┻━┻"); + } + break; + case UC_TABL: // ┬─┬ノ( º _ ºノ) + if (record->event.pressed) { + send_unicode_string("┬─┬ノ( º _ ºノ)"); + } + break; + case UC_SHRG: // ¯\_(ツ)_/¯ + if (record->event.pressed) { + send_unicode_string("¯\\_(ツ)_/¯"); + } + break; + case UC_DISA: // ಠ_ಠ + if (record->event.pressed) { + send_unicode_string("ಠ_ಠ"); + } + break; +#endif + case KC_RGB_T: // This allows me to use underglow as layer indication, or as normal +#if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE) + if (record->event.pressed) { + userspace_config.rgb_layer_change ^= 1; + dprintf("rgblight layer change [EEPROM]: %u\n", userspace_config.rgb_layer_change); + eeconfig_update_user(userspace_config.raw); + if (userspace_config.rgb_layer_change) { +# if defined(RGBLIGHT_ENABLE) && defined(RGB_MATRIX_ENABLE) + rgblight_enable_noeeprom(); +# endif + layer_state_set(layer_state); // This is needed to immediately set the layer color (looks better) +# if defined(RGBLIGHT_ENABLE) && defined(RGB_MATRIX_ENABLE) + } else { + rgblight_disable_noeeprom(); +# endif + } + } #endif // RGBLIGHT_ENABLE - break; + break; #if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE) - case RGB_TOG: - // Split keyboards need to trigger on key-up for edge-case issue + case RGB_TOG: + // Split keyboards need to trigger on key-up for edge-case issue # ifndef SPLIT_KEYBOARD - if (record->event.pressed) { + if (record->event.pressed) { # else - if (!record->event.pressed) { + if (!record->event.pressed) { # endif # if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES) - rgblight_toggle(); + rgblight_toggle(); # endif # if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES) - rgb_matrix_toggle(); + rgb_matrix_toggle(); # endif - } - return false; - break; - case RGB_MODE_FORWARD ... RGB_MODE_GRADIENT: // quantum_keycodes.h L400 for definitions - if (record->event.pressed) { - bool is_eeprom_updated; + } + return false; + break; + case RGB_MODE_FORWARD ... RGB_MODE_GRADIENT: // quantum_keycodes.h L400 for definitions + if (record->event.pressed) { + bool is_eeprom_updated; # if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES) - // This disables layer indication, as it's assumed that if you're changing this ... you want that disabled - if (userspace_config.rgb_layer_change) { - userspace_config.rgb_layer_change = false; - dprintf("rgblight layer change [EEPROM]: %u\n", userspace_config.rgb_layer_change); - is_eeprom_updated = true; - } + // This disables layer indication, as it's assumed that if you're changing this ... you want that disabled + if (userspace_config.rgb_layer_change) { + userspace_config.rgb_layer_change = false; + dprintf("rgblight layer change [EEPROM]: %u\n", userspace_config.rgb_layer_change); + is_eeprom_updated = true; + } # endif # if defined(RGB_MATRIX_ENABLE) && defined(RGB_MATRIX_FRAMEBUFFER_EFFECTS) - if (userspace_config.rgb_matrix_idle_anim) { - userspace_config.rgb_matrix_idle_anim = false; - dprintf("RGB Matrix Idle Animation [EEPROM]: %u\n", userspace_config.rgb_matrix_idle_anim); - is_eeprom_updated = true; - } -# endif - if (is_eeprom_updated) { - eeconfig_update_user(userspace_config.raw); - } + if (userspace_config.rgb_matrix_idle_anim) { + userspace_config.rgb_matrix_idle_anim = false; + dprintf("RGB Matrix Idle Animation [EEPROM]: %u\n", userspace_config.rgb_matrix_idle_anim); + is_eeprom_updated = true; } - -# if defined(RGBLIGHT_DISABLE_KEYCODES) || defined(RGB_MATRIX_DISABLE_KEYCODES) - if (keycode == RGB_MODE_FORWARD && record->event.pressed) { - uint8_t shifted = get_mods() & (MOD_MASK_SHIFT); - if (shifted) { -# if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES) - rgblight_step_reverse(); -# endif -# if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES) - rgb_matrix_step_reverse(); -# endif - } else { -# if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES) - rgblight_step(); -# endif -# if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES) - rgb_matrix_step(); -# endif - } - } else if (keycode == RGB_MODE_REVERSE && record->event.pressed) { - uint8_t shifted = get_mods() & (MOD_MASK_SHIFT); - if (shifted) { -# if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES) - rgblight_step(); -# endif -# if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES) - rgb_matrix_step(); -# endif - } else { -# if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES) - rgblight_step_reverse(); -# endif -# if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES) - rgb_matrix_step_reverse(); -# endif - } - } else if (keycode == RGB_HUI) { -# ifndef SPLIT_KEYBOARD - if (record->event.pressed) { -# else - if (!record->event.pressed) { -# endif -# if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES) - rgblight_increase_hue(); -# endif -# if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES) - rgb_matrix_increase_hue(); -# endif - } - } else if (keycode == RGB_HUD) { -# ifndef SPLIT_KEYBOARD - if (record->event.pressed) { -# else - if (!record->event.pressed) { -# endif -# if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES) - rgblight_decrease_hue(); -# endif -# if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES) - rgb_matrix_decrease_hue(); -# endif - } - } else if (keycode == RGB_SAI) { -# ifndef SPLIT_KEYBOARD - if (record->event.pressed) { -# else - if (!record->event.pressed) { -# endif -# if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES) - rgblight_increase_sat(); -# endif -# if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES) - rgb_matrix_increase_sat(); -# endif - } - } else if (keycode == RGB_SAD) { -# ifndef SPLIT_KEYBOARD - if (record->event.pressed) { -# else - if (!record->event.pressed) { -# endif -# if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES) - rgblight_decrease_sat(); -# endif -# if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES) - rgb_matrix_decrease_sat(); -# endif - } - } else if (keycode == RGB_VAI) { -# ifndef SPLIT_KEYBOARD - if (record->event.pressed) { -# else - if (!record->event.pressed) { -# endif -# if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES) - rgblight_increase_val(); -# endif -# if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES) - rgb_matrix_increase_val(); -# endif - } - } else if (keycode == RGB_VAD) { -# ifndef SPLIT_KEYBOARD - if (record->event.pressed) { -# else - if (!record->event.pressed) { -# endif -# if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES) - rgblight_decrease_val(); -# endif -# if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES) - rgb_matrix_decrease_val(); -# endif - } - } else if (keycode == RGB_SPI) { - if (record->event.pressed) { -# if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES) - rgblight_increase_speed(); -# endif -# if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES) - rgb_matrix_increase_speed(); -# endif - } - } else if (keycode == RGB_SPD) { - if (record->event.pressed) { -# if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES) - rgblight_decrease_speed(); -# endif -# if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES) - rgb_matrix_decrease_speed(); -# endif - } - } - return false; # endif + if (is_eeprom_updated) { + eeconfig_update_user(userspace_config.raw); + } + } #endif - } } return true; } diff --git a/users/drashna/process_records.h b/users/drashna/process_records.h index 999882d4bc9..d41be962df9 100644 --- a/users/drashna/process_records.h +++ b/users/drashna/process_records.h @@ -1,3 +1,19 @@ +/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@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 "drashna.h" diff --git a/users/drashna/rgb_matrix_stuff.c b/users/drashna/rgb_matrix_stuff.c index c9c3224fa56..52e26123406 100644 --- a/users/drashna/rgb_matrix_stuff.c +++ b/users/drashna/rgb_matrix_stuff.c @@ -1,5 +1,21 @@ -#include "drashna.h" +/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@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 "drashna.h" +#include "rgb_matrix.h" #include "lib/lib8tion/lib8tion.h" extern led_config_t g_led_config; diff --git a/users/drashna/rgb_matrix_stuff.h b/users/drashna/rgb_matrix_stuff.h index 35b01047b65..592f9c9e63f 100644 --- a/users/drashna/rgb_matrix_stuff.h +++ b/users/drashna/rgb_matrix_stuff.h @@ -1,3 +1,19 @@ +/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@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" diff --git a/users/drashna/rgb_stuff.c b/users/drashna/rgb_stuff.c index defee9ac182..d98f7cc2f8a 100644 --- a/users/drashna/rgb_stuff.c +++ b/users/drashna/rgb_stuff.c @@ -1,3 +1,19 @@ +/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@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 "drashna.h" #include "rgb_stuff.h" #include "eeprom.h" @@ -152,14 +168,15 @@ void matrix_scan_rgb_light(void) { void rgblight_set_hsv_and_mode(uint8_t hue, uint8_t sat, uint8_t val, uint8_t mode) { rgblight_sethsv_noeeprom(hue, sat, val); - wait_us(175); // Add a slight delay between color and mode to ensure it's processed correctly + // wait_us(175); // Add a slight delay between color and mode to ensure it's processed correctly rgblight_mode_noeeprom(mode); } layer_state_t layer_state_set_rgb_light(layer_state_t state) { #ifdef RGBLIGHT_ENABLE if (userspace_config.rgb_layer_change) { - switch (get_highest_layer(state)) { + uint8_t mode = layer_state_cmp(state,_MODS) ? RGBLIGHT_MODE_BREATHING : RGBLIGHT_MODE_STATIC_LIGHT; + switch (get_highest_layer(state|default_layer_state)) { case _MACROS: rgblight_set_hsv_and_mode(HSV_ORANGE, userspace_config.is_overwatch ? RGBLIGHT_MODE_SNAKE + 2 : RGBLIGHT_MODE_SNAKE + 3); break; @@ -181,37 +198,30 @@ layer_state_t layer_state_set_rgb_light(layer_state_t state) { case _ADJUST: rgblight_set_hsv_and_mode(HSV_RED, RGBLIGHT_MODE_KNIGHT + 2); break; - default: // for any other layers, or the default layer - { - uint8_t mode = get_highest_layer(state) == _MODS ? RGBLIGHT_MODE_BREATHING : RGBLIGHT_MODE_STATIC_LIGHT; - switch (get_highest_layer(default_layer_state)) { - case _COLEMAK: - rgblight_set_hsv_and_mode(HSV_MAGENTA, mode); - break; - case _DVORAK: - rgblight_set_hsv_and_mode(HSV_SPRINGGREEN, mode); - break; - case _WORKMAN: - rgblight_set_hsv_and_mode(HSV_GOLDENROD, mode); - break; - case _NORMAN: - rgblight_set_hsv_and_mode(HSV_CORAL, mode); - break; - case _MALTRON: - rgblight_set_hsv_and_mode(HSV_YELLOW, mode); - break; - case _EUCALYN: - rgblight_set_hsv_and_mode(HSV_PINK, mode); - break; - case _CARPLAX: - rgblight_set_hsv_and_mode(HSV_BLUE, mode); - break; - default: - rgblight_set_hsv_and_mode(HSV_CYAN, mode); - break; - } + case _COLEMAK: + rgblight_set_hsv_and_mode(HSV_MAGENTA, mode); + break; + case _DVORAK: + rgblight_set_hsv_and_mode(HSV_SPRINGGREEN, mode); + break; + case _WORKMAN: + rgblight_set_hsv_and_mode(HSV_GOLDENROD, mode); + break; + case _NORMAN: + rgblight_set_hsv_and_mode(HSV_CORAL, mode); + break; + case _MALTRON: + rgblight_set_hsv_and_mode(HSV_YELLOW, mode); + break; + case _EUCALYN: + rgblight_set_hsv_and_mode(HSV_PINK, mode); + break; + case _CARPLAX: + rgblight_set_hsv_and_mode(HSV_BLUE, mode); + break; + default: + rgblight_set_hsv_and_mode(HSV_CYAN, mode); break; - } } } #endif // RGBLIGHT_ENABLE diff --git a/users/drashna/rgb_stuff.h b/users/drashna/rgb_stuff.h index 98a552db1b8..0153adb5438 100644 --- a/users/drashna/rgb_stuff.h +++ b/users/drashna/rgb_stuff.h @@ -1,3 +1,19 @@ +/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@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" diff --git a/users/drashna/rgblight_breathe_table.h b/users/drashna/rgblight_breathe_table.h index 4c6ae38faa4..b6f7a13ac19 100644 --- a/users/drashna/rgblight_breathe_table.h +++ b/users/drashna/rgblight_breathe_table.h @@ -1,3 +1,19 @@ +/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@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 . + */ + #ifndef RGBLIGHT_EFFECT_BREATHE_TABLE #define RGBLIGHT_EFFECT_BREATHE_TABLE diff --git a/users/drashna/tap_dances.c b/users/drashna/tap_dances.c index 65019ab7512..01873489d8c 100644 --- a/users/drashna/tap_dances.c +++ b/users/drashna/tap_dances.c @@ -1,3 +1,19 @@ +/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@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 "tap_dances.h" #define NUM_OF_DIABLO_KEYS 4 diff --git a/users/drashna/tap_dances.h b/users/drashna/tap_dances.h index 44fa0b93487..7f73f28036d 100644 --- a/users/drashna/tap_dances.h +++ b/users/drashna/tap_dances.h @@ -1,3 +1,19 @@ +/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@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 "drashna.h" diff --git a/users/drashna/template.c b/users/drashna/template.c index 833447daac4..f98964ae4f1 100644 --- a/users/drashna/template.c +++ b/users/drashna/template.c @@ -1,3 +1,19 @@ +/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@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 "template.h" // Add reconfigurable functions here, for keymap customization diff --git a/users/drashna/template.h b/users/drashna/template.h index 178f96e2201..cb1ad75d8aa 100644 --- a/users/drashna/template.h +++ b/users/drashna/template.h @@ -1,3 +1,19 @@ +/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@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 QMK_KEYBOARD_H diff --git a/users/drashna/wrappers.h b/users/drashna/wrappers.h index d22e2959cfc..ed4022aaabc 100644 --- a/users/drashna/wrappers.h +++ b/users/drashna/wrappers.h @@ -1,3 +1,19 @@ +/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@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 "drashna.h" /* @@ -17,6 +33,7 @@ expanded before being used as arguments to the LAYOUT_xxx macro. #define LAYOUT_ortho_4x12_wrapper(...) LAYOUT_ortho_4x12(__VA_ARGS__) #define LAYOUT_ortho_5x12_wrapper(...) LAYOUT_ortho_5x12(__VA_ARGS__) #define LAYOUT_gergo_wrapper(...) LAYOUT_gergo(__VA_ARGS__) +#define LAYOUT_split_3x6_3_wrapper(...) LAYOUT_split_3x6_3(__VA_ARGS__) /* Blocks for each of the four major keyboard layouts diff --git a/users/dudeofawesome/dudeofawesome.h b/users/dudeofawesome/dudeofawesome.h index 91557925a85..dbbbd21ede0 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 3182ab026a7..6adc6706386 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 }; diff --git a/util/activate_msys2.sh b/util/activate_msys2.sh deleted file mode 100755 index b37bee8597d..00000000000 --- a/util/activate_msys2.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash - -function export_variables { - local util_dir=~/qmk_utils - export PATH=$PATH:$util_dir -} - -export_variables diff --git a/util/activate_wsl.sh b/util/activate_wsl.sh deleted file mode 100755 index 45cd945efb9..00000000000 --- a/util/activate_wsl.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash - -function export_variables { - local util_dir=~/qmk_utils - local download_dir=$util_dir/wsl_downloaded -} - -export_variables diff --git a/util/linux_install.sh b/util/linux_install.sh index 0343b07e6f6..fb8968386b8 100755 --- a/util/linux_install.sh +++ b/util/linux_install.sh @@ -235,3 +235,17 @@ fi # Global install tasks install_bootloadhid pip3 install --user -r ${util_dir}/../requirements.txt + +if uname -a | grep -qi microsoft; then + echo "********************************************************************************" + echo "* Detected Windows Subsystem for Linux. *" + echo "* Currently, WSL has no access to USB devices and so flashing from within the *" + echo "* WSL terminal will not work. *" + echo "* *" + echo "* Please install the QMK Toolbox instead: *" + echo "* https://github.com/qmk/qmk_toolbox/releases *" + echo "* Then, map your WSL filesystem as a network drive: *" + echo "* \\\\\\\\wsl$\\ *" + echo "********************************************************************************" + echo +fi diff --git a/util/msys2_install.sh b/util/msys2_install.sh index c223e52faee..5abe4a597b8 100755 --- a/util/msys2_install.sh +++ b/util/msys2_install.sh @@ -1,7 +1,5 @@ #!/bin/bash -dir=$(cd -P -- "$(dirname -- "$0")" && pwd -P) -download_dir=~/qmk_utils util_dir=$(dirname "$0") echo "Installing dependencies needed for the installation" @@ -12,26 +10,13 @@ pacman --needed --noconfirm --disable-download-timeout -Sy \ mingw-w64-x86_64-arm-none-eabi-binutils mingw-w64-x86_64-arm-none-eabi-gcc mingw-w64-x86_64-arm-none-eabi-newlib \ mingw-w64-x86_64-avrdude mingw-w64-x86_64-bootloadhid mingw-w64-x86_64-dfu-programmer mingw-w64-x86_64-dfu-util mingw-w64-x86_64-teensy-loader-cli -source "$dir/win_shared_install.sh" +echo "Installing drivers" +tmpdir=$(mktemp -d) +cp "${util_dir}/drivers.txt" $tmpdir +pushd $tmpdir > /dev/null +wget "https://github.com/qmk/qmk_driver_installer/releases/download/v1.01/qmk_driver_installer.exe" +cmd.exe //c "qmk_driver_installer.exe --all --force drivers.txt" +popd > /dev/null +rm -r $tmpdir pip3 install -r "${util_dir}/../requirements.txt" - -cp -f "$dir/activate_msys2.sh" "$download_dir/" - -if grep "^source ~/qmk_utils/activate_msys2.sh$" ~/.bashrc -then - echo - echo "The line source ~/qmk_utils/activate_msys2.sh is already added to your /.bashrc" - echo "Not adding it twice!" -else - echo - echo "Adding 'source ~/qmk_utils/activate_msys2.sh' to the end of your" - echo ".bashrc file. Without this make won't find the needed utils." - echo "source ~/qmk_utils/activate_msys2.sh" >> ~/.bashrc; -fi - -echo -echo "******************************************************************************" -echo "Installation completed!" -echo "Please close this Window and restart MSYS2 MinGW" -echo "******************************************************************************" diff --git a/util/qmk_install.sh b/util/qmk_install.sh index 76ecf5fc01d..714ee914454 100755 --- a/util/qmk_install.sh +++ b/util/qmk_install.sh @@ -7,19 +7,21 @@ case $(uname -a) in *Darwin*) exec "${util_dir}/macos_install.sh" ;; - *Linux*Microsoft*) - exec "${util_dir}/wsl_install.sh" - ;; *FreeBSD*) exec "${util_dir}/freebsd_install.sh" ;; *Linux*) exec "${util_dir}/linux_install.sh" ;; - MSYS_NT*|MINGW64_NT*|MINGW32_NT*) + MINGW64_NT*) exec "${util_dir}/msys2_install.sh" ;; + MSYS_NT*|MINGW32_NT*) + echo "Please open a MinGW 64-bit terminal window and re-run this script." + exit 1 + ;; *) echo "Environment not supported. Please see https://docs.qmk.fm for details on how to configure the QMK Firmware build tools manually." + exit 1 ;; esac diff --git a/util/udev/50-qmk.rules b/util/udev/50-qmk.rules new file mode 100644 index 00000000000..d2abf490d68 --- /dev/null +++ b/util/udev/50-qmk.rules @@ -0,0 +1,60 @@ +# 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" + +# Input Club +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" + +# ModemManager should ignore the following devices +# 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" +### 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" diff --git a/util/win_shared_install.sh b/util/win_shared_install.sh deleted file mode 100755 index f45ca35170e..00000000000 --- a/util/win_shared_install.sh +++ /dev/null @@ -1,63 +0,0 @@ -#!/bin/bash - -function install_utils { - rm -f -r "$download_dir" - mkdir "$download_dir" - - pushd "$download_dir" - - echo "Downloading the QMK driver installer" - wget -qO- https://api.github.com/repos/qmk/qmk_driver_installer/releases | grep browser_download_url | head -n 1 | cut -d '"' -f 4 | wget -i - - - rm -f *.zip - - popd > /dev/null -} - -function install_drivers { - pushd "$download_dir" - cp -f "$dir/drivers.txt" . - echo - cmd.exe //c "qmk_driver_installer.exe $1 $2 drivers.txt" - popd > /dev/null -} - -pushd "$dir" - -if [ ! -d "$download_dir" ]; then - install_utils -else - while true; do - echo - echo "The utils seem to already be downloaded." - read -p "Do you want to re-download them and update to the newest version (Y/N) " res - case $res in - [Yy]* ) install_utils; break;; - [Nn]* ) break;; - * ) echo "Invalid answer";; - esac - done -fi - -while true; do - echo - echo "Which USB drivers do you want to install?" - echo "(A)ll - All supported drivers will be installed" - echo "(C)onnected - Only drivers for connected keyboards (in bootloader/flashing mode)" - echo " will be installed" - echo "(F)orce - Like all, but will also override existing drivers for connected" - echo " keyboards" - echo "(N)one - No drivers will be installed," - echo " flashing your keyboard will most likely not work" - read -p "(a/c/f/N)? " res - case $res in - [AaYy]* ) install_drivers --all; break;; - [Cc]* ) install_drivers; break;; - [Ff]* ) install_drivers --all --force; break;; - [Nn]* | "" ) break;; - * ) echo "Invalid answer";; - esac -done - - -popd > /dev/null diff --git a/util/wsl_install.sh b/util/wsl_install.sh deleted file mode 100755 index 8ed177ca3e9..00000000000 --- a/util/wsl_install.sh +++ /dev/null @@ -1,80 +0,0 @@ -#!/bin/bash - -util_dir=$(dirname "$0") -dir=$(cd -P -- "$util_dir" && pwd -P) -pushd "$dir"; - -if [[ $dir != /mnt/* ]]; -then - echo - echo "You need to clone the qmk_firmware repository outside the linux filesystem." - echo "Otherwise the windows executables can't be run." - exit 1 -fi - - -while true; do - echo - echo "Do you want to install all toolchain dependencies needed for compiling QMK?" - echo "If you don't want that, you can install the dependencies manually." - read -p "(Y/N) " res - case $res in - [Yy]* ) ./linux_install.sh; break;; - [Nn]* ) break;; - * ) echo "Invalid answer";; - esac -done - -download_dir=wsl_downloaded - -source "$dir/win_shared_install.sh" - -pip3 install -r ${util_dir}/../requirements.txt - -echo -echo "Creating a softlink to the utils directory as ~/qmk_utils." -echo "This is needed so that the the make system can find all utils it need." -read -p "Press enter to continue (ctrl-c to abort)" -ln -sfn "$dir" ~/qmk_utils - -if grep "^source ~/qmk_utils/activate_wsl.sh$" ~/.bashrc -then - echo - echo "The line source ~/qmk_utils/activate_wsl.sh is already added to your /.bashrc" - echo "Not adding it twice" -else - while true; do - echo - echo "Do you want to add 'source ~/qmk_utils/activate_wsl.sh' to the end of your" - echo ".bashrc file? Without this make won't find the needed utils, so if you don't" - echo "want to do it automatically, then you have to do it manually later." - read -p "(Y/N)? " res - case $res in - [Yy]* ) echo "source ~/qmk_utils/activate_wsl.sh" >> ~/.bashrc; break;; - [Nn]* ) break;; - * ) echo "Invalid answer";; - esac - done -fi - -while true; do - echo - echo "Do you want to add a symlink to the QMK repository in your home directory for" - echo "convenience? This will create a folder 'qmk_firmware' in your home directory." - echo "In the future you can use this folder instead of the full path on your Windows" - echo "file system." - read -p "(Y/N)? " res - case $res in - [Yy]* ) ln -sfn "$dir/.." ~/qmk_firmware; break;; - [Nn]* ) break;; - * ) echo "Invalid answer";; - esac -done - -echo -echo "******************************************************************************" -echo "Installation completed!" -echo "You need to open a new bash command prompt for all the utils to work properly" -echo "******************************************************************************" - -popd > /dev/null