diff --git a/.github/workflows/format.yaml b/.github/workflows/format.yaml index 0bb87010684..645e0ce106d 100644 --- a/.github/workflows/format.yaml +++ b/.github/workflows/format.yaml @@ -19,7 +19,9 @@ jobs: container: qmkfm/qmk_cli steps: - - uses: rlespinasse/github-slug-action@v3.x + - name: Install dependencies + run: | + apt-get update && apt-get install -y dos2unix - uses: actions/checkout@v2 with: @@ -31,12 +33,17 @@ jobs: output: ' ' fileOutput: ' ' - - name: Run qmk format-c and qmk format-python + - name: Run qmk formatters shell: 'bash {0}' run: | - qmk format-c --core-only -n $(< ~/files.txt) - format_c_exit=$? - qmk format-python -n - format_python_exit=$? + qmk format-c --core-only $(< ~/files.txt) + qmk format-python $(< ~/files.txt) + qmk format-text $(< ~/files.txt) + git diff - exit $((format_c_exit + format_python_exit)) + - name: Fail when formatting required + run: | + for file in $(git diff --name-only); do + echo "::error file=${file}::::File Requires Formatting" + done + test -z "$(git diff --name-only)" diff --git a/.github/workflows/format_push.yaml b/.github/workflows/format_push.yaml new file mode 100644 index 00000000000..b79130f17a7 --- /dev/null +++ b/.github/workflows/format_push.yaml @@ -0,0 +1,49 @@ +name: Lint Format + +on: + push: + branches: + - master + - develop + +jobs: + lint: + runs-on: ubuntu-latest + + container: qmkfm/qmk_cli + + steps: + - name: Install dependencies + run: | + apt-get update && apt-get install -y dos2unix + + - uses: actions/checkout@v2 + with: + fetch-depth: 0 + + - name: Run qmk formatters + shell: 'bash {0}' + run: | + qmk format-c -a + qmk format-python -a + qmk format-text -a + git diff + + - uses: rlespinasse/github-slug-action@v3.x + + - name: Become QMK Bot + run: | + git config user.name 'QMK Bot' + git config user.email 'hello@qmk.fm' + + - name: Create Pull Request + uses: peter-evans/create-pull-request@v3 + if: ${{ github.repository == 'qmk/qmk_firmware'}} + with: + token: ${{ secrets.QMK_BOT_TOKEN }} + delete-branch: true + branch: bugfix/format_${{ env.GITHUB_REF_SLUG }} + author: QMK Bot + committer: QMK Bot + commit-message: Format code according to conventions + title: '[CI] Format code according to conventions' diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 697686cd596..889d9d610eb 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -5,7 +5,6 @@ "xaver.clang-format", "ms-vscode.cpptools", "bierner.github-markdown-preview", - "donjayamanne.git-extension-pack", - "CoenraadS.bracket-pair-colorizer-2" + "donjayamanne.git-extension-pack" ] } diff --git a/Makefile b/Makefile index bb2201e8522..5f25eef14b2 100644 --- a/Makefile +++ b/Makefile @@ -303,37 +303,8 @@ define PARSE_KEYBOARD KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_3)/keymaps/*/.))) KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_4)/keymaps/*/.))) KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_5)/keymaps/*/.))) - # this might be needed, but in a different form - #KEYMAPS := $$(sort $$(filter-out $$(KEYBOARD_FOLDER_1) $$(KEYBOARD_FOLDER_2) \ - $$(KEYBOARD_FOLDER_3) $$(KEYBOARD_FOLDER_4) $$(KEYBOARD_FOLDER_5), $$(KEYMAPS))) - - KEYBOARD_LAYOUTS := - ifneq ("$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_5)/rules.mk)","") - LAYOUTS := - $$(eval include $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_5)/rules.mk) - KEYBOARD_LAYOUTS := $$(sort $$(LAYOUTS) $$(KEYBOARD_LAYOUTS)) - endif - ifneq ("$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_4)/rules.mk)","") - LAYOUTS := - $$(eval include $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_4)/rules.mk) - KEYBOARD_LAYOUTS := $$(sort $$(LAYOUTS) $$(KEYBOARD_LAYOUTS)) - endif - ifneq ("$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_3)/rules.mk)","") - LAYOUTS := - $$(eval include $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_3)/rules.mk) - KEYBOARD_LAYOUTS := $$(sort $$(LAYOUTS) $$(KEYBOARD_LAYOUTS)) - endif - ifneq ("$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_2)/rules.mk)","") - LAYOUTS := - $$(eval include $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_2)/rules.mk) - KEYBOARD_LAYOUTS := $$(sort $$(LAYOUTS) $$(KEYBOARD_LAYOUTS)) - endif - ifneq ("$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_1)/rules.mk)","") - LAYOUTS := - $$(eval include $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_1)/rules.mk) - KEYBOARD_LAYOUTS := $$(sort $$(LAYOUTS) $$(KEYBOARD_LAYOUTS)) - endif + KEYBOARD_LAYOUTS := $(shell $(QMK_BIN) list-layouts --keyboard $1) LAYOUT_KEYMAPS := $$(foreach LAYOUT,$$(KEYBOARD_LAYOUTS),$$(eval LAYOUT_KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/layouts/*/$$(LAYOUT)/*/.))))) diff --git a/bootloader.mk b/bootloader.mk index 2bcca6bb811..5ba118fb443 100644 --- a/bootloader.mk +++ b/bootloader.mk @@ -52,26 +52,26 @@ ifeq ($(strip $(BOOTLOADER)), lufa-dfu) OPT_DEFS += -DBOOTLOADER_LUFA_DFU OPT_DEFS += -DBOOTLOADER_DFU ifneq (,$(filter $(MCU), at90usb162 atmega16u2 atmega32u2 atmega16u4 atmega32u4 at90usb646 at90usb647)) - BOOTLOADER_SIZE = 4096 + BOOTLOADER_SIZE ?= 4096 endif ifneq (,$(filter $(MCU), at90usb1286 at90usb1287)) - BOOTLOADER_SIZE = 8192 + BOOTLOADER_SIZE ?= 8192 endif endif ifeq ($(strip $(BOOTLOADER)), qmk-dfu) OPT_DEFS += -DBOOTLOADER_QMK_DFU OPT_DEFS += -DBOOTLOADER_DFU ifneq (,$(filter $(MCU), at90usb162 atmega16u2 atmega32u2 atmega16u4 atmega32u4 at90usb646 at90usb647)) - BOOTLOADER_SIZE = 4096 + BOOTLOADER_SIZE ?= 4096 endif ifneq (,$(filter $(MCU), at90usb1286 at90usb1287)) - BOOTLOADER_SIZE = 8192 + BOOTLOADER_SIZE ?= 8192 endif endif ifeq ($(strip $(BOOTLOADER)), qmk-hid) OPT_DEFS += -DBOOTLOADER_QMK_HID OPT_DEFS += -DBOOTLOADER_HID - BOOTLOADER_SIZE = 4096 + BOOTLOADER_SIZE ?= 4096 endif ifeq ($(strip $(BOOTLOADER)), halfkay) OPT_DEFS += -DBOOTLOADER_HALFKAY diff --git a/data/templates/avr/config.h b/data/templates/avr/config.h index 4192bbcfa23..7c15e8e7046 100644 --- a/data/templates/avr/config.h +++ b/data/templates/avr/config.h @@ -1,19 +1,5 @@ -/* -Copyright %YEAR% %YOUR_NAME% - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General 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 %(YEAR)s %(YOUR_NAME)s (@%(USER_NAME)s) +// SPDX-License-Identifier: GPL-2.0-or-later #pragma once @@ -23,8 +9,8 @@ along with this program. If not, see . #define VENDOR_ID 0xFEED #define PRODUCT_ID 0x0000 #define DEVICE_VER 0x0001 -#define MANUFACTURER %YOUR_NAME% -#define PRODUCT %KEYBOARD% +#define MANUFACTURER %(USER_NAME)s +#define PRODUCT %(KEYBOARD)s /* key matrix size */ #define MATRIX_ROWS 2 diff --git a/data/templates/avr/readme.md b/data/templates/avr/readme.md index b099ed726d2..207850e0656 100644 --- a/data/templates/avr/readme.md +++ b/data/templates/avr/readme.md @@ -1,20 +1,20 @@ -# %KEYBOARD% +# %(KEYBOARD)s -![%KEYBOARD%](imgur.com image replace me!) +![%(KEYBOARD)s](imgur.com image replace me!) *A short description of the keyboard/project* -* Keyboard Maintainer: [%YOUR_NAME%](https://github.com/yourusername) +* Keyboard Maintainer: [%(YOUR_NAME)s](https://github.com/%(USER_NAME)s) * Hardware Supported: *The PCBs, controllers supported* * Hardware Availability: *Links to where you can find this hardware* Make example for this keyboard (after setting up your build environment): - make %KEYBOARD%:default + make %(KEYBOARD)s:default Flashing example for this keyboard: - make %KEYBOARD%:default:flash + make %(KEYBOARD)s: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/data/templates/base/%(KEYBOARD)s.c b/data/templates/base/%(KEYBOARD)s.c new file mode 100644 index 00000000000..0c509aff658 --- /dev/null +++ b/data/templates/base/%(KEYBOARD)s.c @@ -0,0 +1,4 @@ +// Copyright %(YEAR)s %(YOUR_NAME)s (@%(USER_NAME)s) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "%(KEYBOARD)s.h" diff --git a/data/templates/base/%(KEYBOARD)s.h b/data/templates/base/%(KEYBOARD)s.h new file mode 100644 index 00000000000..3e8ca3912dc --- /dev/null +++ b/data/templates/base/%(KEYBOARD)s.h @@ -0,0 +1,22 @@ +// Copyright %(YEAR)s %(YOUR_NAME)s (@%(USER_NAME)s) +// SPDX-License-Identifier: GPL-2.0-or-later + +#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( \ + k00, k01, k02, \ + k10, k12 \ +) { \ + { k00, k01, k02 }, \ + { k10, KC_NO, k12 } \ +} diff --git a/data/templates/base/info.json b/data/templates/base/info.json index 3993d854673..a50ccba7bf9 100644 --- a/data/templates/base/info.json +++ b/data/templates/base/info.json @@ -1,7 +1,7 @@ { - "keyboard_name": "%KEYBOARD%", + "keyboard_name": "%(KEYBOARD)s", "url": "", - "maintainer": "%YOUR_NAME%", + "maintainer": "%(USER_NAME)s", "layouts": { "LAYOUT": { "layout": [ diff --git a/data/templates/base/keymaps/default/keymap.c b/data/templates/base/keymaps/default/keymap.c index d8020ab3e33..3fec3d51203 100644 --- a/data/templates/base/keymaps/default/keymap.c +++ b/data/templates/base/keymaps/default/keymap.c @@ -1,18 +1,6 @@ -/* Copyright %YEAR% %YOUR_NAME% - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General 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 %(YEAR)s %(YOUR_NAME)s (@%(USER_NAME)s) +// SPDX-License-Identifier: GPL-2.0-or-later + #include QMK_KEYBOARD_H // Defines names for use in layer keycodes and the keymap @@ -21,12 +9,6 @@ enum layer_names { _FN }; -// Defines the keycodes used by our macros in process_record_user -enum custom_keycodes { - QMKBEST = SAFE_RANGE, - QMKURL -}; - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Base */ [_BASE] = LAYOUT( @@ -34,29 +16,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TAB, KC_SPC ), [_FN] = LAYOUT( - QMKBEST, QMKURL, _______, + _______, _______, _______, RESET, XXXXXXX ) }; - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case QMKBEST: - if (record->event.pressed) { - // when keycode QMKBEST is pressed - SEND_STRING("QMK is the best thing ever!"); - } else { - // when keycode QMKBEST is released - } - break; - case QMKURL: - if (record->event.pressed) { - // when keycode QMKURL is pressed - SEND_STRING("https://qmk.fm/\n"); - } else { - // when keycode QMKURL is released - } - break; - } - return true; -} diff --git a/data/templates/base/keymaps/default/readme.md b/data/templates/base/keymaps/default/readme.md index e052ed80f14..63a06432757 100644 --- a/data/templates/base/keymaps/default/readme.md +++ b/data/templates/base/keymaps/default/readme.md @@ -1 +1 @@ -# The default keymap for %KEYBOARD% +# The default keymap for %(KEYBOARD)s diff --git a/data/templates/ps2avrgb/config.h b/data/templates/ps2avrgb/config.h index 6150bcce6d1..876a60252f0 100644 --- a/data/templates/ps2avrgb/config.h +++ b/data/templates/ps2avrgb/config.h @@ -1,19 +1,5 @@ -/* -Copyright %YEAR% %YOUR_NAME% - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General 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 %(YEAR)s %(YOUR_NAME)s (@%(USER_NAME)s) +// SPDX-License-Identifier: GPL-2.0-or-later #pragma once @@ -23,8 +9,8 @@ along with this program. If not, see . #define VENDOR_ID 0xFEED #define PRODUCT_ID 0x0000 #define DEVICE_VER 0x0001 -#define MANUFACTURER %YOUR_NAME% -#define PRODUCT %KEYBOARD% +#define MANUFACTURER %(USER_NAME)s +#define PRODUCT %(KEYBOARD)s /* key matrix size */ #define MATRIX_ROWS 8 diff --git a/data/templates/ps2avrgb/readme.md b/data/templates/ps2avrgb/readme.md index 94063f9ebc4..a2ac4495b68 100644 --- a/data/templates/ps2avrgb/readme.md +++ b/data/templates/ps2avrgb/readme.md @@ -1,20 +1,20 @@ -# %KEYBOARD% +# %(KEYBOARD)s -![%KEYBOARD%](imgur.com image replace me!) +![%(KEYBOARD)s](imgur.com image replace me!) *A short description of the keyboard/project* -* Keyboard Maintainer: [%YOUR_NAME%](https://github.com/yourusername) +* Keyboard Maintainer: [%(YOUR_NAME)s](https://github.com/yourusername) * Hardware Supported: *The PCBs, controllers supported* * Hardware Availability: *Links to where you can find this hardware* Make example for this keyboard (after setting up your build environment): - make %KEYBOARD%:default + make %(KEYBOARD)s:default Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) - make %KEYBOARD%:default:flash + make %(KEYBOARD)s: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/docs/_langs.md b/docs/_langs.md index f7b375fb945..3fecd72da63 100644 --- a/docs/_langs.md +++ b/docs/_langs.md @@ -3,7 +3,7 @@ - [:cn: 中文](/zh-cn/) - [:es: Español](/es/) - [:fr: Français](/fr-fr/) - - [:he: עברית](/he-il/) + - [:israel: עברית](/he-il/) - [:brazil: Português](/pt-br/) - [:ru: Русский](/ru-ru/) - [:jp: 日本語](/ja/) diff --git a/docs/cli_commands.md b/docs/cli_commands.md index 8fa7ad41dc8..8f5117633f7 100644 --- a/docs/cli_commands.md +++ b/docs/cli_commands.md @@ -118,6 +118,20 @@ This command lets you configure the behavior of QMK. For the full `qmk config` d qmk config [-ro] [config_token1] [config_token2] [...] [config_tokenN] ``` +## `qmk cd` + +This command opens a new shell in your `qmk_firmware` directory. + +Note that if you are already somewhere within `QMK_HOME` (for example, the `keyboards/` folder), nothing will happen. + +To exit out into the parent shell, simply type `exit`. + +**Usage**: + +``` +qmk cd +``` + ## `qmk console` This command lets you connect to keyboard consoles to get debugging messages. It only works if your keyboard firmware has been compiled with `CONSOLE_ENABLE=yes`. @@ -373,6 +387,8 @@ qmk format-c -b branch_name This command starts a local HTTP server which you can use for browsing or improving the docs. Default port is 8936. Use the `-b`/`--browser` flag to automatically open the local webserver in your default browser. +This command runs `docsify serve` if `docsify-cli` is installed (which provides live reload), otherwise Python's builtin HTTP server module will be used. + **Usage**: ``` diff --git a/docs/cli_tab_complete.md b/docs/cli_tab_complete.md index 2217d4fd3bc..200477624ed 100644 --- a/docs/cli_tab_complete.md +++ b/docs/cli_tab_complete.md @@ -18,7 +18,7 @@ If you put `qmk_firmware` into another location you will need to adjust this pat If you want the tab completion available to all users of the system you can add a symlink to the `qmk_tab_complete.sh` script: - `ln -s ~/qmk_firmware/util/qmk_tab_complete.sh /etc/profile.d/qmk_tab_complete.sh` + ln -s ~/qmk_firmware/util/qmk_tab_complete.sh /etc/profile.d/qmk_tab_complete.sh ### System Wide Copy diff --git a/docs/coding_conventions_python.md b/docs/coding_conventions_python.md index 47dff7f8eea..960b9cb49e9 100644 --- a/docs/coding_conventions_python.md +++ b/docs/coding_conventions_python.md @@ -2,7 +2,7 @@ Most of our style follows PEP8 with some local modifications to make things less nit-picky. -* We target Python 3.6 for compatability with all supported platforms. +* We target Python 3.7 for compatability with all supported platforms. * We indent using four (4) spaces (soft tabs) * We encourage liberal use of comments * Think of them as a story describing the feature diff --git a/docs/config_options.md b/docs/config_options.md index 7584d3584eb..cfbe39f0d32 100644 --- a/docs/config_options.md +++ b/docs/config_options.md @@ -404,6 +404,8 @@ However, this will automatically disable the legacy TMK Macros and Functions fea Use these to enable or disable building certain features. The more you have enabled the bigger your firmware will be, and you run the risk of building a firmware too large for your MCU. +* `MAGIC_ENABLE` + * MAGIC actions (BOOTMAGIC without the boot) * `BOOTMAGIC_ENABLE` * Virtual DIP switch configuration * `MOUSEKEY_ENABLE` @@ -418,6 +420,8 @@ Use these to enable or disable building certain features. The more you have enab * Key combo feature * `NKRO_ENABLE` * USB N-Key Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +* `RING_BUFFERED_6KRO_REPORT_ENABLE` + * USB 6-Key Rollover - Instead of stopping any new input once 6 keys are pressed, the oldest key is released and the new key is pressed. * `AUDIO_ENABLE` * Enable the audio subsystem. * `KEY_OVERRIDE_ENABLE` diff --git a/docs/feature_haptic_feedback.md b/docs/feature_haptic_feedback.md index 469c9c79815..1f36f5b054f 100644 --- a/docs/feature_haptic_feedback.md +++ b/docs/feature_haptic_feedback.md @@ -168,10 +168,16 @@ This mode sets continuous haptic feedback with the option to increase or decreas The Haptic Exclusion is implemented as `__attribute__((weak)) bool get_haptic_enabled_key(uint16_t keycode, keyrecord_t *record)` in haptic.c. This allows a re-definition at the required level with the specific requirement / exclusion. ### NO_HAPTIC_MOD -With the entry of `#define NO_HAPTIC_MOD` in config.h, modifiers from Left Control to Right GUI will not trigger a feedback. This also includes modifiers in a Mod Tap configuration. +With the entry of `#define NO_HAPTIC_MOD` in config.h, the following keys will not trigger feedback: + +* Usual modifier keys such as Control/Shift/Alt/Gui (For example `KC_LCTRL`) +* `MO()` momentary keys. See also [Layers](feature_layers.md). +* `LT()` layer tap keys, when held to activate a layer. However when tapped, and the key is quickly released, and sends a keycode, haptic feedback is still triggered. +* `TT()` layer tap toggle keys, when held to activate a layer. However when tapped `TAPPING_TOGGLE` times to permanently toggle the layer, on the last tap haptic feedback is still triggered. +* `MT()` mod tap keys, when held to keep a usual modifier key pressed. However when tapped, and the key is quickly released, and sends a keycode, haptic feedback is still triggered. See also [Mod-Tap](mod_tap.md). ### NO_HAPTIC_FN -With the entry of `#define NO_HAPTIC_FN` in config.h, layer keys will not rigger a feedback. +With the entry of `#define NO_HAPTIC_FN` in config.h, deprecated `fn_actions` type function keys will not trigger a feedback. ### NO_HAPTIC_ALPHA With the entry of `#define NO_HAPTIC_ALPHA` in config.h, none of the alpha keys (A ... Z) will trigger a feedback. diff --git a/docs/feature_oled_driver.md b/docs/feature_oled_driver.md index 908bd801c44..6d82aa0f59a 100644 --- a/docs/feature_oled_driver.md +++ b/docs/feature_oled_driver.md @@ -146,6 +146,11 @@ void oled_task_user(void) { ## Basic Configuration +These configuration options should be placed in `config.h`. Example: +```c +#define OLED_BRIGHTNESS 128 +``` + |Define |Default |Description | |---------------------------|-----------------|--------------------------------------------------------------------------------------------------------------------------| |`OLED_DISPLAY_ADDRESS` |`0x3C` |The i2c address of the OLED Display | diff --git a/docs/feature_rgb_matrix.md b/docs/feature_rgb_matrix.md index 2dbd32fbdb9..fe72d063e4f 100644 --- a/docs/feature_rgb_matrix.md +++ b/docs/feature_rgb_matrix.md @@ -780,3 +780,13 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { } } ``` + +#### Indicators without RGB Matrix Effect + +If you want to just use RGB indicators without RGB matrix effect, it is not possible to disable the latter because toggling RGB off will disable everything. You can workaround it with solid effect and colors off using this init function: +```c +void keyboard_post_init_user(void) { + rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_COLOR); + rgb_matrix_sethsv_noeeprom(HSV_OFF); +} +``` diff --git a/docs/feature_stenography.md b/docs/feature_stenography.md index af4754ed783..d5445b7f8df 100644 --- a/docs/feature_stenography.md +++ b/docs/feature_stenography.md @@ -40,8 +40,8 @@ MOUSEKEY_ENABLE = no In your keymap create a new layer for Plover. You will need to include `keymap_steno.h`. See `planck/keymaps/steno/keymap.c` for an example. Remember to create a key to switch to the layer as well as a key for exiting the layer. If you would like to switch modes on the fly you can use the keycodes `QK_STENO_BOLT` and `QK_STENO_GEMINI`. If you only want to use one of the protocols you may set it up in your initialization function: ```c -void matrix_init_user() { - steno_set_mode(STENO_MODE_GEMINI); // or STENO_MODE_BOLT +void eeconfig_init_user() { + steno_set_mode(STENO_MODE_GEMINI); // or STENO_MODE_BOLT } ``` @@ -129,7 +129,8 @@ As defined in `keymap_steno.h`. |`STN_RES2`||(GeminiPR only)| |`STN_PWR`||(GeminiPR only)| -If you do not want to hit two keys with one finger combined keycodes can be used. These are also defined in `keymap_steno.h`, and causes both keys to be reported as pressed or released. To use these keycodes define `STENO_COMBINEDMAP` in your `config.h` file +If you do not want to hit two keys with one finger combined keycodes can be used. These are also defined in `keymap_steno.h`, and causes both keys to be reported as pressed or released. To use these keycodes define `STENO_COMBINEDMAP` in your `config.h` file. + |Combined key | Key1 | Key 2 | |---------------|--------|----------| |STN_S3 | STN_S1 | STN_S2 | diff --git a/docs/feature_tap_dance.md b/docs/feature_tap_dance.md index f4e989921f2..d1988b9b7d3 100644 --- a/docs/feature_tap_dance.md +++ b/docs/feature_tap_dance.md @@ -29,7 +29,7 @@ After this, you'll want to use the `tap_dance_actions` array to specify what act * `ACTION_TAP_DANCE_FN(fn)`: Calls the specified function - defined in the user keymap - with the final tap count of the tap dance action. * `ACTION_TAP_DANCE_FN_ADVANCED(on_each_tap_fn, on_dance_finished_fn, on_dance_reset_fn)`: Calls the first specified function - defined in the user keymap - on every tap, the second function when the dance action finishes (like the previous option), and the last function when the tap dance action resets. * ~~`ACTION_TAP_DANCE_FN_ADVANCED_TIME(on_each_tap_fn, on_dance_finished_fn, on_dance_reset_fn, tap_specific_tapping_term)`~~: This functions identically to the `ACTION_TAP_DANCE_FN_ADVANCED` function, but uses a custom tapping term for it, instead of the predefined `TAPPING_TERM`. - * This is deprecated in favor of the Per Key Tapping Term functionality, as outlined [here](custom_quantum_functions.md#Custom_Tapping_Term). You'd want to check for the specific `TD()` macro that you want to use (such as `TD(TD_ESC_CAPS)`) instead of using this specific Tap Dance function. + * This is deprecated in favor of the Per Key Tapping Term functionality, as outlined [here](tap_hold.md#tapping-term). You'd want to check for the specific `TD()` macro that you want to use (such as `TD(TD_ESC_CAPS)`) instead of using this specific Tap Dance function. The first option is enough for a lot of cases, that just want dual roles. For example, `ACTION_TAP_DANCE_DOUBLE(KC_SPC, KC_ENT)` will result in `Space` being sent on single-tap, `Enter` otherwise. @@ -393,6 +393,9 @@ void altlp_finished(qk_tap_dance_state_t *state, void *user_data) { case TD_DOUBLE_SINGLE_TAP: // Allow nesting of 2 parens `((` within tapping term tap_code16(KC_LPRN); register_code16(KC_LPRN); + break; + default: + break; } } @@ -406,6 +409,9 @@ void altlp_reset(qk_tap_dance_state_t *state, void *user_data) { break; case TD_DOUBLE_SINGLE_TAP: unregister_code16(KC_LPRN); + break; + default: + break; } } diff --git a/docs/internals_gpio_control.md b/docs/internals_gpio_control.md index dcff928c703..21a3bd661e7 100644 --- a/docs/internals_gpio_control.md +++ b/docs/internals_gpio_control.md @@ -4,7 +4,7 @@ QMK has a GPIO control abstraction layer which is microcontroller agnostic. This ## Functions :id=functions -The following functions can provide basic control of GPIOs and are found in `quantum/quantum.h`. +The following functions provide basic control of GPIOs and are found in `tmk_core/common//gpio.h`. |Function |Description | Old AVR Examples | Old ChibiOS/ARM Examples | |------------------------|--------------------------------------------------|-------------------------------------------------|-------------------------------------------------| diff --git a/docs/isp_flashing_guide.md b/docs/isp_flashing_guide.md index 7efcd9ee357..384aaf72298 100644 --- a/docs/isp_flashing_guide.md +++ b/docs/isp_flashing_guide.md @@ -1,263 +1,242 @@ # ISP Flashing Guide -ISP flashing (also known as ICSP flashing) is the process of programming a microcontroller directly. This allows you to replace the bootloader, or change the "fuses" on the controller, which control a number of hardware- and software-related functions, such as the speed of the controller, how it boots, and other options. +In order to flash a microcontroller over USB, it needs something called a bootloader. This bootloader lives in a specific section of the flash memory, and allows you to load the actual application firmware (in this case, QMK) into the rest of the flash. -The main use of ISP flashing for QMK is flashing or replacing the bootloader on your AVR-based controller (Pro Micros, or V-USB chips). +However, it can sometimes happen that the bootloader becomes corrupted and needs reflashing, or you may want to change the bootloader to another one. It's not possible to do this with the existing bootloader, because, of course, it is already running, and cannot overwrite itself. Instead, you will need to ISP flash the microcontroller. -?> This is only for programming AVR based boards, such as the Pro Micro or other ATmega controllers. It is not for Arm controllers, such as the Proton C. +There are several different kinds of bootloaders available for AVR microcontrollers. Most STM32 ARM-based microcontrollers already have a USB-capable bootloader in ROM, so generally do not need to be ISP flashed. -## Dealing with Corrupted Bootloaders +## Hardware -If you're having trouble flashing/erasing your board, and running into cryptic error messages like any of the following for a DFU based controller: +One of the following devices is required to perform the ISP flashing. The product links are to the official versions, however you can certainly source them elsewhere. - 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) +You'll also need some jumper wires to connect the ISP flasher and the target board. Some boards have an ISP header with the necessary pins broken out. If not, then you will need to temporarily solder the wires to the PCB -- usually to switch pins or directly to the MCU. +The wiring is fairly straightforward; for the most part, you'll be connecting like to like. Refer to the target MCU's datasheet for the exact `RESET`, `SCLK`, `MOSI` and `MISO` pins. - 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 as ISP -Or, if you see this sort of message for a Pro Micro based controller: +[SparkFun Pro Micro](https://www.sparkfun.com/products/12640) - 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 +To use a 5V/16MHz Pro Micro as an ISP flashing tool, you will first need to load a [special firmware](https://github.com/qmk/qmk_firmware/blob/master/util/pro_micro_ISP_B6_10.hex) onto it that emulates a hardware ISP flasher. +**AVRDUDE Programmer**: `avrisp` +**AVRDUDE Port**: Serial -You're likely going to need to ISP flash your board/device to get it working again. +#### Wiring -## Hardware Needed +|Pro Micro |Keyboard| +|-----------|--------| +|`VCC` |`VCC` | +|`GND` |`GND` | +|`10` (`B6`)|`RESET` | +|`15` (`B1`)|`SCLK` | +|`16` (`B2`)|`MOSI` | +|`14` (`B3`)|`MISO` | -You'll need one of the following to actually perform the ISP flashing (followed by the protocol they use): +!> Note that the `10` pin on the Pro Micro should be wired to the `RESET` pin on the keyboard's controller. ***DO NOT*** connect the `RESET` pin on the Pro Micro to the `RESET` on the keyboard. -* [SparkFun PocketAVR](https://www.sparkfun.com/products/9825) - (USB Tiny) -* [USBtinyISP AVR Programmer Kit](https://www.adafruit.com/product/46) - (USB Tiny) -* [USBasp](https://www.fischl.de/usbasp/) - (usbasp) -* [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) +### Teensy 2.0 as ISP -There are other devices that can be used to ISP flash, but these are the main ones. Also, all product links are to the official versions. You can source them elsewhere. +[PJRC Teensy 2.0](https://www.pjrc.com/store/teensy.html) -You'll also need something to wire your "ISP Programmer" to the device that you're programming. Some PCBs may have ISP headers that you can use directly, but this often isn't the case, so you'll likely need to solder to the controller itself or to different switches or other components. +To use a Teensy 2.0 as an ISP flashing tool, you will first need to load a [special firmware](https://github.com/qmk/qmk_firmware/blob/master/util/teensy_2.0_ISP_B0.hex) onto it that emulates a hardware ISP flasher. -### The ISP Firmware +**AVRDUDE Programmer**: `avrisp` +**AVRDUDE Port**: Serial -The Teensy and Pro Micro controllers will need you to flash the ISP firmware to the controllers before you can use them as an ISP programmer. The rest of the hardware should come preprogrammed. So, for these controllers, download the correct hex file, and flash it first. +#### Wiring -* 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`) +|Teensy|Keyboard| +|------|--------| +|`VCC` |`VCC` | +|`GND` |`GND` | +|`B0` |`RESET` | +|`B1` |`SCLK` | +|`B2` |`MOSI` | +|`B3` |`MISO` | -Once you've flashed your controller, you won't need this hex file anymore. +!> Note that the `B0` pin on the Teensy should be wired to the `RESET` pin on the keyboard's controller. ***DO NOT*** connect the `RESET` pin on the Teensy to the `RESET` on the keyboard. -## Software Needed +### SparkFun PocketAVR / USBtinyISP / USBasp -The QMK Toolbox can be used for most (all) of this. +[SparkFun PocketAVR](https://www.sparkfun.com/products/9825) +[Adafruit USBtinyISP](https://www.adafruit.com/product/46) +[Thomas Fischl's USBasp](https://www.fischl.de/usbasp/) -However, you can grab the [Teensy Loader](https://www.pjrc.com/teensy/loader.html) to flash your Teensy 2.0 board, if you are using that. Or you can use `avrdude` (installed as part of `qmk_install.sh`), or [AVRDUDESS](https://blog.zakkemble.net/avrdudess-a-gui-for-avrdude/) (for Windows) to flash the Pro Micro, and the ISP flashing. +**AVRDUDE Programmer**: `usbtiny` / `usbasp` +**AVRDUDE Port**: `usb` +#### Wiring -## Wiring +|ISP |Keyboard| +|---------|--------| +|`VCC` |`VCC` | +|`GND` |`GND` | +|`RST` |`RESET` | +|`SCLK` |`SCLK` | +|`MOSI` |`MOSI` | +|`MISO` |`MISO` | -This is pretty straight-forward - we'll be connecting like-things to like-things in the following manner. -### SparkFun Pocket AVR +### Bus Pirate - 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 +[Adafruit Bus Pirate](https://www.adafruit.com/product/237) -### USBasp +!> The 5-pin "ICSP" header is for ISP flashing the PIC microcontroller of the Bus Pirate. Connect your target board to the 10-pin header opposite the USB connector instead. - USBasp RST <-> Keyboard RESET - USBasp SCLK <-> Keyboard B1 (SCLK) - USBasp MOSI <-> Keyboard B2 (MOSI) - USBasp MISO <-> Keyboard B3 (MISO) - USBasp VCC <-> Keyboard VCC - USBasp GND <-> Keyboard GND +**AVRDUDE Programmer**: `buspirate` +**AVRDUDE Port**: Serial -### Teensy 2.0 +#### Wiring - 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 - -!> Note that the B0 pin on the Teensy is wired to the RESET/RST pin on the keyboard's controller. ***DO NOT*** wire the RESET pin on the Teensy to the RESET on the keyboard. - -### 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 - -!> Note that the 10/B6 pin on the Pro Micro is wired to the RESET/RST pin on the keyboard's controller. ***DO NOT*** wire the RESET pin on the Pro Micro to the RESET on the keyboard. - - -## Flashing Your Keyboard - -After you have your ISP programmer set up, and wired to your keyboard, it's time to flash your keyboard. - -### The Bootloader File - -The simplest and quickest way to get things back to normal is to flash only a bootloader to the keyboard. Once this is done, you can connect the keyboard normally and flash the keyboard like you normally would. - -You can find the stock bootloaders in the [`util/` folder](https://github.com/qmk/qmk_firmware/tree/master/util). Be sure to flash the correct bootloader for your chip: - -* **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) - -If you're not sure what your board uses, look in the `rules.mk` file for the keyboard in QMK. The `MCU` and `BOOTLOADER` lines will have the value you need. It may differ between different versions of the board. - -### Production Techniques - -If you'd like to flash both the bootloader **and** the regular firmware at the same time, there are two options to do so. Manually, or with the `:production` target when compiling. - -To do this manually: - -1. Open the original firmware .hex file in a text editor -2. Remove the last line (which should be `:00000001FF` - this is an EOF message) -3. Copy the entire bootloader's contents onto a new line (with no empty lines between) and paste it at the end of the original file -4. Save it as a new file by naming it `__production.hex` +|Bus Pirate|Keyboard| +|----------|--------| +|`+5V` |`VCC` | +|`GND` |`GND` | +|`RST` |`RESET` | +|`CLK` |`SCLK` | +|`MOSI` |`MOSI` | +|`MISO` |`MISO` | -?> It's possible to use other bootloaders here in the same way, but __you need a bootloader__, otherwise you'll have to use ISP again to write new firmware to your keyboard. +## Software -#### Create QMK DFU Bootloader and Production images +[QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) supports flashing both the ISP firmware and bootloader, but note that it cannot (currently) set the AVR fuse bytes for the actual ISP flashing step, so you may want to work with `avrdude` directly instead. -You can create the firmware, the QMK DFU Bootloader and the production firmware images for the board using the `:production` target when compiling. Once this is done, you'll see three files: -* `_.hex` -* `__bootloader.hex` -* `__production.hex` +Setting up the [QMK environment](newbs.md) is highly recommended, as it automatically installs `avrdude` along with a host of other tools. -The QMK DFU bootloader has only really been tested on `atmega32u4` controllers (such as the AVR based Planck boards, and the Pro Micro), and hasn't been tested on other controllers. However, it will definitely not work on V-USB controllers, such as the `atmega32a` or `atmega328p`. +## Bootloader Firmware -You can flash either the bootloader or the production firmware file. The production firmware file will take a lot longer to flash, since it's flashing a lot more data. +One of these files is what you will be ISP flashing onto the board. The default fuses are also listed. -?> Note: You should stay with the same bootloader. If you're using DFU already, switching to QMK DFU is fine. But flashing QMK DFU onto a Pro Micro, for instance, has additional steps needed. +If you're not sure what your board uses, look in the `rules.mk` file for the keyboard in QMK. The `MCU` and `BOOTLOADER` lines will have the values you need. It may differ between different versions of the board. -## Flashing Your Bootloader/Production File +### Atmel DFU -Make sure your keyboard is unplugged from any device, and plug in your ISP Programmer. +These are the [factory default bootloaders](https://www.microchip.com/content/dam/mchp/documents/OTH/ProductDocuments/SoftwareLibraries/Firmware/megaUSB_DFU_Bootloaders.zip) shipped by Atmel (now Microchip). Note that the AT90USB64 and AT90USB128 bootloaders are [slightly modified](https://github.com/qmk/qmk_firmware/pull/14064), due to a bug causing them to not enumerate properly in Windows 8 and later. -If you want to change bootloader types, You'll need to use the command line. +|MCU |Low |High |Extended|USB ID | +|--------------------------------------------------------------------------------------------------|------|-------------------------------|--------|-----------| +|[ATmega16U4](https://github.com/qmk/qmk_firmware/blob/master/util/bootloader_atmega16u4_1.0.1.hex)|`0x5E`|`0x99` / `0xD9` (JTAG disabled)|`0xF3` |`03EB:2FF3`| +|[ATmega32U4](https://github.com/qmk/qmk_firmware/blob/master/util/bootloader_atmega32u4_1.0.0.hex)|`0x5E`|`0x99` / `0xD9` (JTAG disabled)|`0xF3` |`03EB:2FF4`| +|[AT90USB64](https://github.com/qmk/qmk_firmware/blob/master/util/bootloader_at90usb64_1.0.0.hex) |`0x5E`|`0x9B` / `0xDB` (JTAG disabled)|`0xF3` |`03EB:2FF9`| +|[AT90USB128](https://github.com/qmk/qmk_firmware/blob/master/util/bootloader_at90usb128_1.0.1.hex)|`0x5E`|`0x99` / `0xD9` (JTAG disabled)|`0xF3` |`03EB:2FFB`| -### QMK Toolbox +### Caterina -1. `AVRISP device connected` or `USB Tiny device connected` will show up in yellow -2. Select the correct bootloader/production .hex file with the `Open` dialog (spaces can't be in the path) -3. Be sure the correct `Microcontroller` option for the keyboard you're flashing (not the ISP programmer) is selected -4. Hit `Flash` -5. Wait, as nothing will output for a while, especially with production files +This is the default Arduino-style bootloader derived from the [LUFA CDC bootloader](https://github.com/abcminiuser/lufa/tree/master/Bootloaders/CDC), and is only for the ATmega32U4. -If the verification and fuse checks are ok, you're done! Your board may restart automatically, otherwise, unplug your Teensy and plug in your keyboard - you can leave your Teensy wired to your keyboard while testing things, but it's recommended that you desolder it/remove the wiring once you're sure everything works. +There are several variants depending on the vendor, but they all mostly work the same way. The SparkFun variants, for example, require the `RESET` pin to be [grounded twice quickly](https://learn.sparkfun.com/tutorials/pro-micro--fio-v3-hookup-guide#ts-reset) in order to stay in bootloader mode for more than 750 ms. -### Command Line +|MCU |Low |High |Extended|USB ID | +|-----------------------------------------------------------------------------------------------------------------------------------------------------------------|------|------|--------|-----------| +|[SparkFun Pro Micro (3V3/8MHz)](https://github.com/sparkfun/Arduino_Boards/blob/master/sparkfun/avr/bootloaders/caterina/Caterina-promicro8.hex) |`0xFF`|`0xD8`|`0xFE` |`1B4F:9203`| +|[SparkFun Pro Micro (5V/16MHz)](https://github.com/sparkfun/Arduino_Boards/blob/master/sparkfun/avr/bootloaders/caterina/Caterina-promicro16.hex) |`0xFF`|`0xD8`|`0xFB` |`1B4F:9205`| +|[SparkFun LilyPadUSB (and some Pro Micro clones)](https://github.com/sparkfun/Arduino_Boards/blob/main/sparkfun/avr/bootloaders/caterina/Caterina-lilypadusb.hex)|`0xFF`|`0xD8`|`0xFE` |`1B4F:9207`| +|[Pololu A-Star 32U4](https://github.com/pololu/a-star/blob/master/bootloaders/caterina/Caterina-A-Star.hex)* |`0xFF`|`0xD0`|`0xF8` |`1FFB:0101`| +|[Adafruit Feather 32U4](https://github.com/adafruit/Caterina-Bootloader/blob/master/Built%20Firmwares/Caterina-Feather32u4.hex) |`0xFF`|`0xD8`|`0xFB` |`239A:000C`| +|[Adafruit ItsyBitsy 32U4 (3V3/8MHz)](https://github.com/adafruit/Caterina-Bootloader/blob/master/Caterina_itsybitsy3V.hex)* |`0xFF`|`0xD8`|`0xFB` |`239A:000D`| +|[Adafruit ItsyBitsy 32U4 (5V/16MHz)](https://github.com/adafruit/Caterina-Bootloader/blob/master/Caterina_itsybitsy5V.hex) |`0xFF`|`0xD8`|`0xFB` |`239A:000E`| +|[Arduino Leonardo](https://github.com/arduino/ArduinoCore-avr/blob/master/bootloaders/caterina/Caterina-Leonardo.hex)* |`0xFF`|`0xD8`|`0xFB` |`2341:0036`| +|[Arduino Micro](https://github.com/arduino/ArduinoCore-avr/blob/master/bootloaders/caterina/Caterina-Micro.hex)* |`0xFF`|`0xD8`|`0xFB` |`2341:0037`| -Open a terminal (`cmd` on Windows, for instance) and navigate to your where your modified .hex file is. We'll pretend this file is called `main.hex`, and that your Teensy 2.0 is on the `COM3` port - if you're unsure, you can open your Device Manager, and look for `Ports > USB Serial Device`. Use that COM port here. You can confirm it's the right port with: +?> Files marked with a * have combined Arduino sketches, which runs by default and also appears as a serial port. However, this is *not* the bootloader device. - avrdude -c avrisp -P COM3 -p atmega32u4 +### BootloadHID (PS2AVRGB) -and you should get something like the following output: +This bootloader is primarily for keyboards originally designed for the PS2AVRGB firmware and Bootmapper Client. It is not recommended for use in new designs. - avrdude: AVR device initialized and ready to accept instructions +|MCU |Low |High |USB ID | +|-----------------------------------------------------------------------------------------------------------|------|------|-----------| +|[ATmega32A](https://github.com/qmk/qmk_firmware/blob/master/util/bootloader_ps2avrgb_bootloadhid_1.0.1.hex)|`0x0F`|`0xD0`|`16C0:05DF`| - Reading | ################################################## | 100% 0.02s +### USBaspLoader - avrdude: Device signature = 0x1e9587 +USBaspLoader is a bootloader based on V-USB that emulates a hardware USBasp device. It runs on ATmega32A and ATmega328P MCUs. - avrdude: safemode: Fuses OK +Precompiled `.hex` files are generally not available, but you can compile it yourself by setting up the QMK environment and following Coseyfannitutti's guide for the appropriate MCU: - avrdude done. Thank you. +|MCU |Low |High |Extended|USB ID | +|-------------------------------------------------------------------------------------|------|------|--------|-----------| +|[ATmega32A](https://github.com/coseyfannitutti/discipline/tree/master/doc/bootloader)|`0x1F`|`0xC0`|*n/a* |`16C0:05DC`| +|[ATmega328P](https://github.com/coseyfannitutti/discipad/tree/master/doc/bootloader) |`0xD7`|`0xD0`|`0x04` |`16C0:05DC`| -Since our keyboard uses an `atmega32u4` (common), that is the chip we'll specify. This is the full command: +Note that some boards may have their own specialized build of this bootloader in a separate repository. This will usually be linked to in the board's readme. - avrdude -c avrisp -P COM3 -p atmega32u4 -U flash:w:main.hex:i +## Flashing the Bootloader -If your board uses an `atmega32a` (e.g. on a jj40), the command is this (the extra code at the end sets the fuses correctly): +Open a new Terminal window - if you are on Windows, use MSYS2 or QMK MSYS, not the Command Prompt. Navigate to the directory your bootloader `.hex` is in. Now it's time to run the `avrdude` command. - avrdude -c avrisp -P COM3 -p atmega32 -U flash:w:main.hex:i -U hfuse:w:0xD0:m -U lfuse:w:0x0F:m +The syntax of `avrdude` is: -You should see a couple of progress bars, then you should see: +``` +avrdude -c -P -p -U flash:w::i +``` - avrdude: verifying ... - avrdude: 32768 bytes of flash verified + * `` corresponds to the programmer type listed for each ISP flasher in the [Hardware](#hardware) section, for example `avrisp`. + * `` is the serial port that appears when you plug the ISP flasher in, if any. For some programmers this is simply `usb` (or you can omit the `-P` argument completely) since they do not operate as a serial device. + * Windows: `COMx` - check Device Manager, under the "Ports (COM & LPT)" section + * Linux: `/dev/ttyACMx` + * macOS: `/dev/tty.usbmodemXXXXXX` + * `` should be the lowercase name of the target AVR microcontroller, for example `atmega32u4`. + * `` is the absolute or relative path to the bootloader to be flashed, for example `Caterina-Micro.hex`. - avrdude: safemode: Fuses OK +You can also run `man avrdude` for more information. - avrdude done. Thank you. +If all goes well, you should get output similar to the following: -Which means everything should be ok! Your board may restart automatically, otherwise, unplug your Teensy and plug in your keyboard - you can leave your Teensy wired to your keyboard while testing things, but it's recommended that you desolder it/remove the wiring once you're sure everything works. +``` +avrdude: AVR device initialized and ready to accept instructions -If you're using a SparkFun PocketAVR Programmer, or another USB Tiny based ISP programmer, you will want to use something like this: +Reading | ################################################## | 100% 0.00s - avrdude -c usbtiny -P usb -p atmega32u4 +avrdude: Device signature = 0x1e9587 (probably m32u4) +avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed + To disable this feature, specify the -D option. +avrdude: erasing chip +avrdude: reading input file "Caterina-Micro.hex" +avrdude: writing flash (32730 bytes): -#### Advanced: Changing Fuses +Writing | ################################################## | 100% 11.58s -If you're switching bootloaders, such as flashing QMK DFU on a Pro Micro, you will need to change the fuses, in additional to flashing the bootloader hex file. This is because `caterina` (the Pro Micro bootloader) and `dfu` handle the startup routines differently, and that behavior is controlled by the fuses. +avrdude: 32730 bytes of flash written +avrdude: verifying flash memory against Caterina-Micro.hex: +avrdude: load data flash data from input file Caterina-Micro.hex: +avrdude: input file Caterina-Micro.hex contains 32730 bytes +avrdude: reading on-chip flash data: -!> This is one area that it is very important to be careful, as changing fuses is one of the ways that you can permanently brick your controller. +Reading | ################################################## | 100% 10.33s -For this, we are assuming the 5V 16MHz versions of the `atmega32u4` (such as the 5V Pro Micro). +avrdude: verifying ... +avrdude: 32730 bytes of flash verified -For DFU on the `atmega32u4`, these are the fuse settings that you want: +avrdude: safemode: Fuses OK (E:CB, H:D8, L:FF) -| Fuse | Setting | -|----------|------------------| -| Low | `0x5E` | -| High | `0xD9` or `0x99` | -| Extended | `0xC3` | +avrdude done. Thank you. +``` -The High fuse can be 0xD9 or 0x99. The difference is that 0xD9 disables JTAG, which QMK Firmware disables via software as well, while 0x99 doesn't disable JTAG. +### Setting the Fuses -To set this add `-U lfuse:w:0x5E:m -U hfuse:w:0xD9:m -U efuse:w:0xC3:m` to your command. So the final command should look something like: +This is a slightly more advanced topic, but may be necessary if you are switching from one bootloader to another (for example, Caterina to Atmel/QMK DFU on a Pro Micro). Fuses control some of the low-level functionality of the AVR microcontroller, such as clock speed, whether JTAG is enabled, and the size of the section of flash memory reserved for the bootloader, among other things. You can find a fuse calculator for many AVR parts [here](https://www.engbedded.com/conffuse/). - 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 +!> **WARNING:** Setting incorrect fuse values, in particular the clock-related bits, may render the MCU practically unrecoverable without high voltage programming (not covered here)! Make sure to double check the commands you enter before you execute them. -For Caterina on the `atmega32u4`, these are the fuse settings that you want: +To set the fuses, add the following to the `avrdude` command: -| Fuse | Setting| -|----------|--------| -| Low | `0xFF` | -| High | `0xD8` | -| Extended | `0xCB` | +``` +-U lfuse:w:0xXX:m -U hfuse:w:0xXX:m -U efuse:w:0xXX:m +``` -To set this add `-U lfuse:w:0xFF:m -U hfuse:w:0xD8:m -U efuse:w:0xCB:m` to your command. So the final command should look something like: +where the `lfuse`, `hfuse` and `efuse` arguments represent the low, high and extended fuse bytes as listed in the [Hardware](#hardware) section. - 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 +?> You may get a warning from `avrdude` that the extended fuse byte does not match what you provided when reading it back. If the second hex digit matches, this can usually be safely ignored, because the top four bits of this fuse do not actually exist on many AVR parts, and may read back as anything. +## Creating a "Production" Firmware -If you are using a different controller or want different configuration, you can use [this AVR Fuse Calculator](https://www.engbedded.com/fusecalc/) to find a better value for you. +For mass production purposes, it is possible to join the bootloader and QMK firmware together into a single file, due to the way the [Intel Hex format](https://en.wikipedia.org/wiki/Intel_HEX) works: -## Help + 1. Open the QMK firmware and bootloader `.hex` files in a text editor. + 2. Remove the last line of the QMK firmware (which should be `:00000001FF` - this is just an "end of file" marker). + 3. Paste the contents of the bootloader `.hex` file onto a new line at the end of the QMK firmware file, with no empty lines between. + 4. Save it as a new file, for example `__production.hex`. -If you have any questions/problems, feel free to [open an issue](https://github.com/qmk/qmk_firmware/issues/new)! +You can then ISP flash this combined firmware instead, which allows you to skip the extra step of flashing the QMK firmware over USB. diff --git a/docs/ja/config_options.md b/docs/ja/config_options.md index 6d7c4771729..18fe9489b96 100644 --- a/docs/ja/config_options.md +++ b/docs/ja/config_options.md @@ -141,7 +141,7 @@ QMK での全ての利用可能な設定にはデフォルトがあります。 * `#define STRICT_LAYER_RELEASE` * キーリリースがどのレイヤーから来たのかを覚えるのではなく、現在のレイヤースタックを使って強制的に評価されるようにします (高度なケースに使われます) -## 設定可能な挙動 +## 設定可能な挙動 :id=behaviors-that-can-be-configured * `#define TAPPING_TERM 200` * タップがホールドになるまでの時間。500以上に設定された場合、タップ期間中にタップされたキーもホールドになります。(訳注: PERMISSIVE_HOLDも参照) diff --git a/docs/ja/contributing.md b/docs/ja/contributing.md index 14ef598ea91..56cc4d312da 100644 --- a/docs/ja/contributing.md +++ b/docs/ja/contributing.md @@ -1,8 +1,8 @@ # 貢献方法 👍🎉 まず、これを読み貢献する時間を作ってくれてありがとうございます!🎉👍 @@ -79,7 +79,7 @@ QMK には幾つかの異なるタイプの変更があり、それぞれ異な ``` kerpleplork の fronzlebop を調整します -kerpleplork はエラーコード 23 で連続的に失敗していました。根本的な原因は fronzlebop 設定で、これにより kerpleplork はN回の繰り返しごとにアクティブになります。 +kerpleplork はエラーコード 23 で連続的に失敗していました。根本的な原因は fronzlebop 設定で、これにより kerpleplork は N 回の繰り返しごとにアクティブになります。 私が使用できるデバイスの限られた実験では、kerpleplork の混乱を避けるために 7 は十分高い値であることを示していますが、念のため ARM デバイスを持つ人たちからフィードバックを得たいです。 ``` @@ -122,7 +122,7 @@ enum my_keycodes { ほとんどの初めての QMK 貢献者は、個人のキーマップから始めます。キーマップの標準はかなりカジュアルなものにしようとしています(キーマップは結局のところ作成者の性格を反映しています)が、他の人があなたのキーマップを簡単に見つけて学ぶことができるように、これらのガイドラインに従うようにお願いします。 -* [テンプレート](documentation_templates.md) を使って `readme.md` を書きます。 +* [テンプレート](ja/documentation_templates.md) を使って `readme.md` を書きます。 * 全てのキーマップの PR は squash されるため、コミットがどのように squash されるかを気にする場合は、自分で行う必要があります。 * キーマップの PR に機能をまとめないでください。最初に機能をサブミットし、次にキーマップのための2つ目の PR をサブミットします。 * `Makefile` をキーマップフォルダに含めないでください(もう使われていません)。 diff --git a/docs/ja/feature_led_indicators.md b/docs/ja/feature_led_indicators.md index 307603f0a4c..764b478c31f 100644 --- a/docs/ja/feature_led_indicators.md +++ b/docs/ja/feature_led_indicators.md @@ -25,7 +25,7 @@ LED の状態を `uint8_t` として提供する2つの非推奨の関数があ * `uint8_t led_set_kb(uint8_t usb_led)` と `_user(uint8_t usb_led)` * `uint8_t host_keyboard_leds()` -## 設定オプション +## 設定オプション :id=configuration-options インジケータを設定するには、`config.h` で以下の `#define` をします: diff --git a/docs/ja/feature_stenography.md b/docs/ja/feature_stenography.md index 46698bdb3d4..f8f7df11e1f 100644 --- a/docs/ja/feature_stenography.md +++ b/docs/ja/feature_stenography.md @@ -45,8 +45,8 @@ MOUSEKEY_ENABLE = no キーマップで Plover 用の新しいレイヤーを作成します。`keymap_steno.h` をインクルードする必要があります。例については `planck/keymaps/steno/keymap.c` を見てください。レイヤーに切り替えるためのキーとレイヤーから抜けるためのキーを作成することを忘れないでください。その場でモードを切り替えたい場合は、キーコード `QK_STENO_BOLT` および `QK_STENO_GEMINI` を使うことができます。プロトコルのうちの1つのみを使う場合は、初期化関数の中でそれをセットアップすることができます: ```c -void matrix_init_user() { - steno_set_mode(STENO_MODE_GEMINI); // あるいは STENO_MODE_BOLT +void eeconfig_init_user() { + steno_set_mode(STENO_MODE_GEMINI); // あるいは STENO_MODE_BOLT } ``` diff --git a/docs/ja/ja_doc_status.sh b/docs/ja/ja_doc_status.sh new file mode 100644 index 00000000000..3dfbbd2bc6f --- /dev/null +++ b/docs/ja/ja_doc_status.sh @@ -0,0 +1,34 @@ +#! /bin/sh +# +# Script to display the Japanese translation status of documents +# +if [ ! -d docs/ja ]; then + echo "'docs/ja' not found." + echo "do:" + echo " cd \$(QMK_TOP)" + echo " ./docs/ja/ja_doc_status.sh" + exit 1 +fi + +en_docs=`cd docs;ls -1 [a-z]*.md` +ja_docs=`cd docs/ja;ls -1 [a-z]*.md` +en_count=`echo $en_docs | wc -w` +ja_count=`echo $ja_docs | wc -w` +echo "English documents $en_count files." +echo "Japanese documents $ja_count files." + +echo "Files that have not been translated yet:" +for docfile in $en_docs +do + if [ ! -f docs/ja/$docfile ]; then + wc docs/$docfile + fi +done | sort +echo "Files that have not been updated yet:" +grep --no-filename "^[ ]*git diff" docs/ja/*.md | while read cmd +do + cline=`echo $cmd | sh | wc -l` + if [ $cline -gt 0 ]; then + echo "$cline $cmd" + fi +done | sort diff --git a/docs/ja/keycodes_us_ansi_shifted.md b/docs/ja/keycodes_us_ansi_shifted.md new file mode 100644 index 00000000000..3a574d0bed5 --- /dev/null +++ b/docs/ja/keycodes_us_ansi_shifted.md @@ -0,0 +1,41 @@ +# US ANSI シフト記号 + + +これらのキーコードは、標準の US ANSI 配列のキーボードで「シフトされる」文字に対応します。これらのキーコードは自身のキーコードを持たず、`LSFT(kc)` の単なるショートカットであり、記号自体ではなく Shift キー抜きのキーコードと左 Shift キーを送信します。 + +## 注意書き + +残念ながら、これらのキーコードは、モッドタップやレイヤータップの中で使えません。キーコードで指定されたモディファイアは無視されるからです。 + +さらに、Windows でリモートデスクトップ接続を使う場合に、問題が発生する場合があります。なぜならば、これらのコードは Shift キーを非常に速く送信するため、リモートデスクトップがコードを見落とすかもしれないからです。 + +この問題を解決するには、リモートデスクトップ接続を開いて「オプションの表示」をクリックし、「ローカル リソース」タブを開きます。キーボードセクションでドロップダウンを「このコンピュータ」に変更します。これで問題が解決され、文字が正しく機能するようになります。 + +## キーコード + +|キー |エイリアス |説明 | +|------------------------|-------------------|-----------| +|`KC_TILDE` |`KC_TILD` |`~` | +|`KC_EXCLAIM` |`KC_EXLM` |`!` | +|`KC_AT` | |`@` | +|`KC_HASH` | |`#` | +|`KC_DOLLAR` |`KC_DLR` |`$` | +|`KC_PERCENT` |`KC_PERC` |`%` | +|`KC_CIRCUMFLEX` |`KC_CIRC` |`^` | +|`KC_AMPERSAND` |`KC_AMPR` |`&` | +|`KC_ASTERISK` |`KC_ASTR` |`*` | +|`KC_LEFT_PAREN` |`KC_LPRN` |`(` | +|`KC_RIGHT_PAREN` |`KC_RPRN` |`)` | +|`KC_UNDERSCORE` |`KC_UNDS` |`_` | +|`KC_PLUS` | |`+` | +|`KC_LEFT_CURLY_BRACE` |`KC_LCBR` |`{` | +|`KC_RIGHT_CURLY_BRACE` |`KC_RCBR` |`}` | +|`KC_PIPE` | |`\|` | +|`KC_COLON` |`KC_COLN` |`:` | +|`KC_DOUBLE_QUOTE` |`KC_DQUO`, `KC_DQT`|`"` | +|`KC_LEFT_ANGLE_BRACKET` |`KC_LABK`, `KC_LT` |`<` | +|`KC_RIGHT_ANGLE_BRACKET`|`KC_RABK`, `KC_GT` |`>` | +|`KC_QUESTION` |`KC_QUES` |`?` | diff --git a/docs/ja/mod_tap.md b/docs/ja/mod_tap.md index 371870abd6f..1d96ed1ee86 100644 --- a/docs/ja/mod_tap.md +++ b/docs/ja/mod_tap.md @@ -1,8 +1,8 @@ # モッドタップ モッドタップキー `MT(mod, kc)` は、押したままの時にモディファイアのように機能し、タップされた時に通常のキーのように振舞います。別の言い方をすると、タップした時に Escape を送信しますが、押したままの時に Control あるいは Shift キーとして機能するキーを持つことができます。 @@ -42,7 +42,10 @@ MT(MOD_LCTL | MOD_LSFT, KC_ESC) | `RSFT_T(kc)` | | 押したままの場合は右 Shift、タップした場合は `kc` | | `RALT_T(kc)` | `ROPT_T(kc)`, `ALGR_T(kc)` | 押したままの場合は右 Alt、タップした場合は `kc` | | `RGUI_T(kc)` | `RCMD_T(kc)`, `RWIN_T(kc)` | 押したままの場合は右 GUI、タップした場合は `kc` | -| `SGUI_T(kc)` | `SCMD_T(kc)`, `SWIN_T(kc)` | 押したままの場合は左 Shift と左 GUI、タップした場合は `kc` | +| `LSG_T(kc)` | `SGUI_T(kc)`, `SCMD_T(kc)`, `SWIN_T(kc)` | 押したままの場合は左 Shift と左 GUI、タップした場合は `kc` | +| `LAG_T(kc)` | | 押したままの場合は左 Alt と左 GUI、タップした場合は `kc` | +| `RSG_T(kc)` | | 押したままの場合は右 Shift と右 GUI、タップした場合は `kc` | +| `RAG_T(kc)` | | 押したままの場合は右 Alt と右 GUI、タップした場合は `kc` | | `LCA_T(kc)` | | 押したままの場合は左 Control と左 Alt、タップした場合は `kc` | | `LSA_T(kc)` | | 押したままの場合は左 Shift と Alt、タップした場合は `kc` | | `RSA_T(kc)` | `SAGR_T(kc)` | 押したままの場合は右 Shift と Alt (AltGr)、タップした場合は `kc` | @@ -55,11 +58,13 @@ MT(MOD_LCTL | MOD_LSFT, KC_ESC) ## 注意事項 -残念ながら、キーコードで指定されたモディファイアは無視されるため、これらのキーコードはモッドタップまたはレイヤータップで使うことができません。 +現在のところ、`MT()` の引数 `kc` は[基本的なキーコードセット](ja/keycodes_basic.md)に制限されています。つまり、`LCTL()`、`KC_TILD`、あるいは `0xFF` より大きなキーコードを使うことができません。これは、QMK が16ビットのキーコードを使うためです。3ビットは機能の識別のために使われ、1ビットは右または左の mod を選択するために使われ、4ビットはどの mod かを区別するために使われ、キーコードには8ビットしか残されていません。さらに、モッドタップで少なくとも1つの右手用のモディファイアが指定された場合、指定された全てのモディファイアが右手用になるため、2つをうまく組み合わせて一致させることはできません。例えば、左 Control と右 Shift は、右 Control と右 Shift になります。 -さらに、Windows でリモートデスクトップ接続を使う場合に、問題が発生する場合があります。これらのコードはシフトを非常に高速に送信するため、リモートデスクトップはコードを見逃すかもしれません。 +これを拡張してもせいぜい複雑になるだけでしょう。32ビットキーコードに移行すると、これの多くが解決されますが、キーマップマトリックスが使用する領域が2倍になります。また、問題が起きる可能性もあります。タップしたキーコードにモディファイアを適用する必要がある場合は、[タップダンス](ja/feature_tap_dance.md#example-5)を使うことができます。 -これを修正するには、リモートデスクトップ接続を開き、「オプションの表示」を開き、「ローカル リソース」タブを開きます。キーボードセクションで、ドロップダウンを「このコンピューター」に変更します。これにより問題が修正され、キャラクタが正しく動作するようになります。 +さらに、Windows でリモートデスクトップ接続を使う場合に、問題が発生する場合があります。なぜならば、これらのキーコードは人よりも速くキーイベントを送信するため、リモートデスクトップがキーコードを見落とすかもしれないからです。 +この問題を解決するには、リモートデスクトップ接続を開いて「オプションの表示」をクリックし、「ローカル リソース」タブを開きます。キーボードセクションで、ドロップダウンを「このコンピューター」に変更します。これで問題が解決され、文字が正しく機能するようになります。 +[`TAP_CODE_DELAY`](ja/config_options.md#behaviors-that-can-be-configured) を増やすことで緩和することもできます。 ## 他のリソース diff --git a/docs/ja/pr_checklist.md b/docs/ja/pr_checklist.md index 9026ac48669..18dbeccebbc 100644 --- a/docs/ja/pr_checklist.md +++ b/docs/ja/pr_checklist.md @@ -1,8 +1,8 @@ # PR チェックリスト これは、提出された PR を QMK の協力者がレビューする際に何をチェックするのかの非網羅的なチェックリストです。 @@ -73,11 +73,13 @@ https://github.com/qmk/qmk_firmware/pulls?q=is%3Apr+is%3Aclosed+label%3Akeyboard - キーボードが QMK で起動するために最低限必要なコードが存在する必要があります - マトリックスと重要なデバイスの初期化コード - (カスタムキーコードや特別なアニメーションなど)商用キーボードの既存の機能をミラーリングする場合は、`default` ではないキーマップを使って処理する必要があります + - Vial 関連のファイルまたは変更は QMK ファームウェアで使用されないため受け入れられません (Vial 固有のコアコードは提出またはマージされていません) - `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) を参照してください + - 可能な場合は、独自の `led_update_*()` 実装よりも LED インジケータの[設定オプション](https://docs.qmk.fm/#/ja/feature_led_indicators?id=configuration-options)を優先してください。 - `keyboard.h` - 先頭に `#include "quantum.h"` を置きます - `LAYOUT` マクロは、該当する場合は標準の定義を使用してください @@ -95,9 +97,12 @@ https://github.com/qmk/qmk_firmware/pulls?q=is%3Apr+is%3Aclosed+label%3Akeyboard ...キーマップの `process_record_user()` 内で `layer_on()`、 `update_tri_layer()` を手動で処理する代わりに。 - default (および via) のキーマップは「素朴」でなければなりません。 - 他のユーザーが独自のユーザー固有のキーマップを開発するための「クリーンな状態」として使用するための最低限のもの。 - - これらのキーマップで推奨される標準レイアウト(可能な場合) + - これらのキーマップでは標準のレイアウトが推奨されます(可能な場合) + - デフォルトのキーマップは VIA を有効にするべきではありません -- VIA の統合ドキュメント類には `via` という名前のキーマップが必要です。 - PR の提出者は、同じ PR に機能を紹介する個人的な(または豪華な)キーマップを持たせることができますが、「デフォルト」のキーマップに埋め込むべきではありません - PR の提出者はまた、既存の商用キーボードへ QMK を移植する場合、その商用製品の既存の機能を反映する「製造業者に一致する」キーマップを持つことができます +- PR に VIA の json ファイルを含めないでください。これらは QMK ファームウェアで使われないため QMK リポジトリに属しません -- それらは [VIA のキーボードリポジトリ](https://github.com/the-via/keyboards)に属します。 + さらに、ChibiOS に固有で: - 既存の ChibiOS ボード定義を使用することを**強く**推奨します。 @@ -132,3 +137,9 @@ There are instructions on how to keep your fork updated here: Thanks for contributing! ``` + +## レビュープロセス + +一般的に、PR がマージの対象となる前に、意味のある(例えば、コードを検査した)2つ(またはそれ以上)の承認を確認したいと考えています。これらのレビューはコラボレータに限られません -- 時間を割いてくれるコミュニティメンバーは誰でも歓迎(奨励)されます。唯一の違いは、チェックマークが緑にならないことですが、それは問題ありません。 + +また、PR レビューは自由な時間に行われるものです。それは好意で行われるものなので、私たちはレビューに費やす時間に対して、報酬はうけとっていませんし埋め合わせもありません。そのため、私たちがあなたのプルリクエストに取り掛かるのには時間がかかります。家族や生活のことで PR に手が回らなくなることもあり、そして燃え尽き症候群は深刻な懸念です。QMK ファームウェアリポジトリは、毎月平均200件の PR が開かれ、200件の PR がマージされますので、しばらくお待ちください。 diff --git a/docs/ja/syllabus.md b/docs/ja/syllabus.md index 14e743ee9c4..9209cb49e08 100644 --- a/docs/ja/syllabus.md +++ b/docs/ja/syllabus.md @@ -1,8 +1,8 @@ # QMK シラバス このページは最初に基本を紹介し、そして、QMK に習熟するために必要な全ての概念を理解するように導くことで、QMK の知識を構築するのに役立ちます。 @@ -45,6 +45,7 @@ * [タップダンス](ja/feature_tap_dance.md) * [コンボ](ja/feature_combo.md) * [ユーザスペース](ja/feature_userspace.md) + * [キーオーバーライド](ja/feature_key_overrides.md) # 上級トピック @@ -58,7 +59,7 @@ * **高度な機能** * [ユニコード](ja/feature_unicode.md) * [API](ja/api_overview.md) - * [ブートマジック](ja/feature_bootmagic.md) + * [ブートマジックライト](ja/feature_bootmagic.md) * **ハードウェア** * [キーボードがどのように動作するか](ja/how_keyboards_work.md) * [キーボードマトリックスの仕組み](ja/how_a_matrix_works.md) diff --git a/docs/ja/understanding_qmk.md b/docs/ja/understanding_qmk.md index 5fcb7be8566..109876961b0 100644 --- a/docs/ja/understanding_qmk.md +++ b/docs/ja/understanding_qmk.md @@ -1,15 +1,15 @@ # QMK のコードの理解 このドキュメントでは、QMK ファームウェアがどのように機能するかを非常に高いレベルから説明しようとしています。基本的なプログラミングの概念を理解していることを前提としていますが、(実例を示す必要がある場合を除き) C に精通していることを前提にはしていません。以下のドキュメントの基本的な知識があることを前提としています。 * [入門](ja/getting_started_introduction.md) * [キーボードがどのように動作するか](ja/how_keyboards_work.md) -* [FAQ](ja/faq.md) +* [FAQ](ja/faq_general.md) ## スタートアップ @@ -138,41 +138,42 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { `process_record()` 関数自体は一見簡単に見えますが、その内部は QMK の様々なレベルで機能を上書きするためのゲートウェイが隠されています。キーボード/キーマップレベルの機能について調べる必要があるときは、以下に列挙した一連のイベントを手引帳として使います。`rules.mk` またはほかの場所で設定されたオプションに応じて、最終的なファームウェアに以下の関数のサブセットのみが含まれます。 * [`void process_record(keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/tmk_core/common/action.c#L172) - * [`bool process_record_quantum(keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/quantum.c#L206) - * [このレコードをキーコードにマップする](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/quantum.c#L226) - * [`void velocikey_accelerate(void)`](https://github.com/qmk/qmk_firmware/blob/c1c5922aae7b60b7c7d13d3769350eed9dda17ab/quantum/velocikey.c#L27) - * [`void preprocess_tap_dance(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/process_keycode/process_tap_dance.c#L119) - * [`bool process_key_lock(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/process_keycode/process_key_lock.c#L62) - * [`bool process_clicky(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/process_keycode/process_clicky.c#L79) - * [`bool process_haptic(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/2cee371bf125a6ec541dd7c5a809573facc7c456/drivers/haptic/haptic.c#L216) - * [`bool process_record_kb(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/keyboards/clueboard/card/card.c#L20) - * [`bool process_record_user(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/keyboards/clueboard/card/keymaps/default/keymap.c#L58) - * [`bool process_midi(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/process_keycode/process_midi.c#L81) - * [`bool process_audio(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/process_keycode/process_audio.c#L19) - * [`bool process_steno(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/process_keycode/process_steno.c#L160) - * [`bool process_music(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/process_keycode/process_music.c#L114) - * [`bool process_tap_dance(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/process_keycode/process_tap_dance.c#L141) - * [`bool process_unicode_common(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/process_keycode/process_unicode_common.c#L169) は、以下のいずれかを呼び出します: - * [`bool process_unicode(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/process_keycode/process_unicode.c#L20) - * [`bool process_unicodemap(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/process_keycode/process_unicodemap.c#L46) - * [`bool process_ucis(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/process_keycode/process_ucis.c#L95) - * [`bool process_leader(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/process_keycode/process_leader.c#L51) - * [`bool process_combo(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/process_keycode/process_combo.c#L115) - * [`bool process_printer(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/process_keycode/process_printer.c#L77) - * [`bool process_auto_shift(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/process_keycode/process_auto_shift.c#L94) - * [`bool process_terminal(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/process_keycode/process_terminal.c#L264) - * [Quantum 固有のキーコードを識別して処理する](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/quantum.c#L291) + * [`bool process_record_quantum(keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/quantum.c#L206) + * [このレコードをキーコードにマップする](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/quantum.c#L226) + * [`void velocikey_accelerate(void)`](https://github.com/qmk/qmk_firmware/blob/c1c5922aae7b60b7c7d13d3769350eed9dda17ab/quantum/velocikey.c#L27) + * [`void preprocess_tap_dance(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/process_keycode/process_tap_dance.c#L119) + * [`bool process_key_lock(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/process_keycode/process_key_lock.c#L62) + * [`bool process_clicky(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/process_keycode/process_clicky.c#L79) + * [`bool process_haptic(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/2cee371bf125a6ec541dd7c5a809573facc7c456/drivers/haptic/haptic.c#L216) + * [`bool process_record_kb(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/keyboards/clueboard/card/card.c#L20) + * [`bool process_record_user(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/keyboards/clueboard/card/keymaps/default/keymap.c#L58) + * [`bool process_midi(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/process_keycode/process_midi.c#L81) + * [`bool process_audio(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/process_keycode/process_audio.c#L19) + * [`bool process_steno(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/process_keycode/process_steno.c#L160) + * [`bool process_music(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/process_keycode/process_music.c#L114) + * [`bool process_key_override(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/5a1b857dea45a17698f6baa7dd1b7a7ea907fb0a/quantum/process_keycode/process_key_override.c#L397) + * [`bool process_tap_dance(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/process_keycode/process_tap_dance.c#L141) + * [`bool process_unicode_common(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/process_keycode/process_unicode_common.c#L169) は、以下のいずれかを呼び出します: + * [`bool process_unicode(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/process_keycode/process_unicode.c#L20) + * [`bool process_unicodemap(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/process_keycode/process_unicodemap.c#L46) + * [`bool process_ucis(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/process_keycode/process_ucis.c#L95) + * [`bool process_leader(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/process_keycode/process_leader.c#L51) + * [`bool process_combo(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/process_keycode/process_combo.c#L115) + * [`bool process_printer(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/process_keycode/process_printer.c#L77) + * [`bool process_auto_shift(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/process_keycode/process_auto_shift.c#L94) + * [`bool process_terminal(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/process_keycode/process_terminal.c#L264) + * [Quantum 固有のキーコードを識別して処理する](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/quantum.c#L291) この一連のイベントの中の任意のステップで (`process_record_kb()` のような)関数は `false` を返して、以降の処理を停止することができます。 この呼び出しの後で、`post_process_record()` が呼ばれます。これはキーコードが通常処理された後に実行する必要がある追加のクリーンアップを処理するために使うことができます。 * [`void post_process_record(keyrecord_t *record)`]() - * [`void post_process_record_quantum(keyrecord_t *record)`]() - * [このレコードをキーコードにマップする]() - * [`void post_process_clicky(uint16_t keycode, keyrecord_t *record)`]() - * [`void post_process_record_kb(uint16_t keycode, keyrecord_t *record)`]() - * [`void post_process_record_user(uint16_t keycode, keyrecord_t *record)`]() + * [`void post_process_record_quantum(keyrecord_t *record)`]() + * [このレコードをキーコードにマップする]() + * [`void post_process_clicky(uint16_t keycode, keyrecord_t *record)`]() + * [`void post_process_record_kb(uint16_t keycode, keyrecord_t *record)`]() + * [`void post_process_record_user(uint16_t keycode, keyrecord_t *record)`]() This keymap makes use of user/jonavin userspace + +Features + - Split spacebars, Split Backspace + - Inverted Num Lock indicator (LED on when num lock if off) + - RGB Winlock indicator (requires LED stripto be installed) + - RGB Layer indicators: FN/MO1 - Purple; LOWER/MO2 - Yellow; RAISE/MO3/NumPad - Green + - quick demo https://youtu.be/gR1awbsouLk + +- Add PrtScr, Scroll Lock, Break, NumLock to Fn layer +- Implement Win key lock using Fn+Win +- Layer 2 (LOWER) when right B is held -- for emoticons +- Layer 2 RGB functions, and EEPROM Reset +- Layer 3 (RAISE) mod on Caps Lock with double-tap to switch to this layer, double tap to switch back + - provides arrows on WASD and additional nav keys + right hand numpad with 00; an be used for Alt Code entry + - left spacebar Backspace +- add double tap of Left Shift to toggle Caps Lock +- Up arrow is also Shift when held +- Pushing the encoder switches the default encoder scroll between volume control and Alt-Tab + + +rules.mk OPTIONS - Active features from userspace +-------------------------------------------------- + +STARTUP_NUMLOCK_ON = yes +- turns on NUMLOCK by default + +ENCODER_DEFAULTACTIONS_ENABLE = yes +- Enables default encoder funtions + - holding Left shift, change layers + - holding right shift, Navigate page up/down + - holding Left Ctrl, navigate prev/next word + - holding Left Alt, change media prev/next track + - default is change volume + +TD_LSFT_CAPSLOCK_ENABLE = yes + - This will enable double tap on Left Shift to toggle CAPSLOCK when using KC_LSFTCAPS + +IDLE_TIMEOUT_ENABLE = yes + - Enables Timer functionality; for RGB idle timeouts that can be changed dynamically + +EMOTICON_ENABLE + - adds EMO_ keycodes for text emojis + +INVERT_NUMLOCK_INDICATOR + - inverts the Num lock indicator, LED is on when num lokc is off + +ALTTAB_SCROLL_ENABLE + - bind KS_TSTOG to a different key to change how this toggle happens + +## All layers diagram +![image](https://user-images.githubusercontent.com/71780717/137356366-6b23c71b-9499-473e-a1e3-c65644135fc6.png) diff --git a/keyboards/mechwild/obe/keymaps/jonavin/rules.mk b/keyboards/mechwild/obe/keymaps/jonavin/rules.mk new file mode 100644 index 00000000000..6a9acf5d071 --- /dev/null +++ b/keyboards/mechwild/obe/keymaps/jonavin/rules.mk @@ -0,0 +1,14 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes +RGBLIGHT_ENABLE = yes + +MOUSEKEY_ENABLE = no +TAP_DANCE_ENABLE = yes + +TD_LSFT_CAPSLOCK_ENABLE = yes +STARTUP_NUMLOCK_ON = yes +ENCODER_DEFAULTACTIONS_ENABLE = yes +EMOTICON_ENABLE = yes +INVERT_NUMLOCK_INDICATOR = yes + +ALTTAB_SCROLL_ENABLE = yes diff --git a/keyboards/mechwild/obe/obe.c b/keyboards/mechwild/obe/obe.c index 195d4a76790..8612764ae5a 100644 --- a/keyboards/mechwild/obe/obe.c +++ b/keyboards/mechwild/obe/obe.c @@ -16,6 +16,12 @@ #include "obe.h" +void board_init(void) { + // B9 is configured as I2C1_SDA in the board file; that function must be + // disabled before using B7 as I2C1_SDA. + setPinInputHigh(B9); +} + #ifdef ENCODER_ENABLE bool encoder_update_kb(uint8_t index, bool clockwise) { if (!encoder_update_user(index, clockwise)) { return false; } diff --git a/keyboards/mechwild/obe/rules.mk b/keyboards/mechwild/obe/rules.mk index 8271e9d1d65..fb66887e62a 100644 --- a/keyboards/mechwild/obe/rules.mk +++ b/keyboards/mechwild/obe/rules.mk @@ -11,7 +11,7 @@ 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 +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes # Encoder Enabled diff --git a/keyboards/meira/featherble/config.h b/keyboards/meira/featherble/config.h index b3ee9547491..61f90d46a0a 100644 --- a/keyboards/meira/featherble/config.h +++ b/keyboards/meira/featherble/config.h @@ -79,54 +79,6 @@ along with this program. If not, see . */ //#define FORCE_NKRO -/* - * Magic Key Options - * - * Magic keys are hotkey commands that allow control over firmware functions of - * the keyboard. They are best used in combination with the HID Listen program, - * found here: https://www.pjrc.com/teensy/hid_listen.html - * - * The options below allow the magic key functionality to be changed. This is - * useful if your keyboard/keypad is missing keys and you want magic key support. - * - */ - -/* control how magic key switches layers */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false - -/* override magic key keymap */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM -//#define MAGIC_KEY_HELP1 H -//#define MAGIC_KEY_HELP2 SLASH -//#define MAGIC_KEY_DEBUG D -//#define MAGIC_KEY_DEBUG_MATRIX X -//#define MAGIC_KEY_DEBUG_KBD K -//#define MAGIC_KEY_DEBUG_MOUSE M -//#define MAGIC_KEY_VERSION V -//#define MAGIC_KEY_STATUS S -//#define MAGIC_KEY_CONSOLE C -//#define MAGIC_KEY_LAYER0_ALT1 ESC -//#define MAGIC_KEY_LAYER0_ALT2 GRAVE -//#define MAGIC_KEY_LAYER0 0 -//#define MAGIC_KEY_LAYER1 1 -//#define MAGIC_KEY_LAYER2 2 -//#define MAGIC_KEY_LAYER3 3 -//#define MAGIC_KEY_LAYER4 4 -//#define MAGIC_KEY_LAYER5 5 -//#define MAGIC_KEY_LAYER6 6 -//#define MAGIC_KEY_LAYER7 7 -//#define MAGIC_KEY_LAYER8 8 -//#define MAGIC_KEY_LAYER9 9 -//#define MAGIC_KEY_BOOTLOADER PAUSE -//#define MAGIC_KEY_LOCK CAPS -//#define MAGIC_KEY_EEPROM E -//#define MAGIC_KEY_NKRO N -//#define MAGIC_KEY_SLEEP_LED Z - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/meira/promicro/config.h b/keyboards/meira/promicro/config.h index 53844745b04..4682a4104c7 100644 --- a/keyboards/meira/promicro/config.h +++ b/keyboards/meira/promicro/config.h @@ -70,54 +70,6 @@ along with this program. If not, see . */ //#define FORCE_NKRO -/* - * Magic Key Options - * - * Magic keys are hotkey commands that allow control over firmware functions of - * the keyboard. They are best used in combination with the HID Listen program, - * found here: https://www.pjrc.com/teensy/hid_listen.html - * - * The options below allow the magic key functionality to be changed. This is - * useful if your keyboard/keypad is missing keys and you want magic key support. - * - */ - -/* control how magic key switches layers */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false - -/* override magic key keymap */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM -//#define MAGIC_KEY_HELP1 H -//#define MAGIC_KEY_HELP2 SLASH -//#define MAGIC_KEY_DEBUG D -//#define MAGIC_KEY_DEBUG_MATRIX X -//#define MAGIC_KEY_DEBUG_KBD K -//#define MAGIC_KEY_DEBUG_MOUSE M -//#define MAGIC_KEY_VERSION V -//#define MAGIC_KEY_STATUS S -//#define MAGIC_KEY_CONSOLE C -//#define MAGIC_KEY_LAYER0_ALT1 ESC -//#define MAGIC_KEY_LAYER0_ALT2 GRAVE -//#define MAGIC_KEY_LAYER0 0 -//#define MAGIC_KEY_LAYER1 1 -//#define MAGIC_KEY_LAYER2 2 -//#define MAGIC_KEY_LAYER3 3 -//#define MAGIC_KEY_LAYER4 4 -//#define MAGIC_KEY_LAYER5 5 -//#define MAGIC_KEY_LAYER6 6 -//#define MAGIC_KEY_LAYER7 7 -//#define MAGIC_KEY_LAYER8 8 -//#define MAGIC_KEY_LAYER9 9 -//#define MAGIC_KEY_BOOTLOADER PAUSE -//#define MAGIC_KEY_LOCK CAPS -//#define MAGIC_KEY_EEPROM E -//#define MAGIC_KEY_NKRO N -//#define MAGIC_KEY_SLEEP_LED Z - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/meishi/config.h b/keyboards/meishi/config.h index a32dd11efc0..6664e371a19 100644 --- a/keyboards/meishi/config.h +++ b/keyboards/meishi/config.h @@ -91,54 +91,6 @@ along with this program. If not, see . */ //#define FORCE_NKRO -/* - * Magic Key Options - * - * Magic keys are hotkey commands that allow control over firmware functions of - * the keyboard. They are best used in combination with the HID Listen program, - * found here: https://www.pjrc.com/teensy/hid_listen.html - * - * The options below allow the magic key functionality to be changed. This is - * useful if your keyboard/keypad is missing keys and you want magic key support. - * - */ - -/* control how magic key switches layers */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false - -/* override magic key keymap */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM -//#define MAGIC_KEY_HELP1 H -//#define MAGIC_KEY_HELP2 SLASH -//#define MAGIC_KEY_DEBUG D -//#define MAGIC_KEY_DEBUG_MATRIX X -//#define MAGIC_KEY_DEBUG_KBD K -//#define MAGIC_KEY_DEBUG_MOUSE M -//#define MAGIC_KEY_VERSION V -//#define MAGIC_KEY_STATUS S -//#define MAGIC_KEY_CONSOLE C -//#define MAGIC_KEY_LAYER0_ALT1 ESC -//#define MAGIC_KEY_LAYER0_ALT2 GRAVE -//#define MAGIC_KEY_LAYER0 0 -//#define MAGIC_KEY_LAYER1 1 -//#define MAGIC_KEY_LAYER2 2 -//#define MAGIC_KEY_LAYER3 3 -//#define MAGIC_KEY_LAYER4 4 -//#define MAGIC_KEY_LAYER5 5 -//#define MAGIC_KEY_LAYER6 6 -//#define MAGIC_KEY_LAYER7 7 -//#define MAGIC_KEY_LAYER8 8 -//#define MAGIC_KEY_LAYER9 9 -//#define MAGIC_KEY_BOOTLOADER PAUSE -//#define MAGIC_KEY_LOCK CAPS -//#define MAGIC_KEY_EEPROM E -//#define MAGIC_KEY_NKRO N -//#define MAGIC_KEY_SLEEP_LED Z - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/meishi/rules.mk b/keyboards/meishi/rules.mk index ec207ad3ffe..0f5e7479f65 100644 --- a/keyboards/meishi/rules.mk +++ b/keyboards/meishi/rules.mk @@ -17,5 +17,4 @@ 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 -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output diff --git a/keyboards/meishi2/config.h b/keyboards/meishi2/config.h index 3a31952aa56..df3203991cd 100644 --- a/keyboards/meishi2/config.h +++ b/keyboards/meishi2/config.h @@ -123,59 +123,6 @@ along with this program. If not, see . */ //#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_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) - -/* 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. diff --git a/keyboards/meishi2/keymaps/via/keymap.c b/keyboards/meishi2/keymaps/via/keymap.c new file mode 100644 index 00000000000..be706ea09a6 --- /dev/null +++ b/keyboards/meishi2/keymaps/via/keymap.c @@ -0,0 +1,31 @@ +/* Copyright 2019 Biacco42 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 */ + LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V) + ), + [1] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [2] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [3] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), +}; diff --git a/keyboards/meishi2/keymaps/via/rules.mk b/keyboards/meishi2/keymaps/via/rules.mk new file mode 100644 index 00000000000..c859353a464 --- /dev/null +++ b/keyboards/meishi2/keymaps/via/rules.mk @@ -0,0 +1,3 @@ +VIA_ENABLE = yes +CONSOLE_ENABLE = no +COMMAND_ENABLE = no diff --git a/keyboards/meishi2/rules.mk b/keyboards/meishi2/rules.mk index 8fde4f64f1e..0099557cbe5 100644 --- a/keyboards/meishi2/rules.mk +++ b/keyboards/meishi2/rules.mk @@ -18,5 +18,4 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = no # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output diff --git a/keyboards/meletrix/zoom65/config.h b/keyboards/meletrix/zoom65/config.h new file mode 100644 index 00000000000..4eb85aeb496 --- /dev/null +++ b/keyboards/meletrix/zoom65/config.h @@ -0,0 +1,51 @@ +/* Copyright 2021 meletrix + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 0x806B +#define PRODUCT_ID 0x0004 +#define DEVICE_VER 0x0001 +#define MANUFACTURER meletrix +#define PRODUCT zoom65 + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +#define MATRIX_ROW_PINS { F0, E6, D5, F1, F4 } +#define MATRIX_COL_PINS { C7, D3, D2, D1, D0, B7, B3, B2, C6, B6, B5, B4, D7, D6, D4 } + +#define DIODE_DIRECTION COL2ROW + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Enable encoder */ +#define ENCODERS_PAD_A { B1 } +#define ENCODERS_PAD_B { B0 } + +#define ENCODERS 1 +// Note: array is { col, row ) +#define ENCODERS_CW_KEY { { 5, 4 } } +#define ENCODERS_CCW_KEY { { 3, 4 } } + +#define LED_CAPS_LOCK_PIN F7 +#define LED_PIN_ON_STATE 0 + diff --git a/keyboards/meletrix/zoom65/info.json b/keyboards/meletrix/zoom65/info.json new file mode 100644 index 00000000000..49535c106e9 --- /dev/null +++ b/keyboards/meletrix/zoom65/info.json @@ -0,0 +1,467 @@ +{ + "keyboard_name": "zoom65", + "url": "https://zoom65.com/", + "maintainer": "qmk", + "layouts": { + "LAYOUT_all": { + "layout": [ + { "label": "Esc", "x": 0, "y": 0 }, + { "label": "1", "x": 1, "y": 0 }, + { "label": "2", "x": 2, "y": 0 }, + { "label": "3", "x": 3, "y": 0 }, + { "label": "4", "x": 4, "y": 0 }, + { "label": "5", "x": 5, "y": 0 }, + { "label": "6", "x": 6, "y": 0 }, + { "label": "7", "x": 7, "y": 0 }, + { "label": "8", "x": 8, "y": 0 }, + { "label": "9", "x": 9, "y": 0 }, + { "label": "0", "x": 10, "y": 0 }, + { "label": "-", "x": 11, "y": 0 }, + { "label": "=", "x": 12, "y": 0 }, + { "label": "Backspace", "x": 13, "y": 0 }, + { "label": "EncoderRotateL", "x": 15, "y": 0, "w": 0.5 }, + { "label": "EncoderClick", "x": 15.5, "y": 0 }, + { "label": "EncoderRotateR", "x": 16.5, "y": 0, "w": 0.5 }, + + { "label": "Tab", "x": 0, "y": 1, "w": 1.5 }, + { "label": "Q", "x": 1.5, "y": 1 }, + { "label": "W", "x": 2.5, "y": 1 }, + { "label": "E", "x": 3.5, "y": 1 }, + { "label": "R", "x": 4.5, "y": 1 }, + { "label": "T", "x": 5.5, "y": 1 }, + { "label": "Y", "x": 6.5, "y": 1 }, + { "label": "U", "x": 7.5, "y": 1 }, + { "label": "I", "x": 8.5, "y": 1 }, + { "label": "O", "x": 9.5, "y": 1 }, + { "label": "P", "x": 10.5, "y": 1 }, + { "label": "[", "x": 11.5, "y": 1 }, + { "label": "]", "x": 12.5, "y": 1 }, + { "label": "\\", "x": 13.5, "y": 1, "w": 1.5 }, + { "label": "Delete", "x": 15, "y": 1 }, + + { "label": "Caps Lock", "x": 0, "y": 2, "w": 1.75 }, + { "label": "A", "x": 1.75, "y": 2 }, + { "label": "S", "x": 2.75, "y": 2 }, + { "label": "D", "x": 3.75, "y": 2 }, + { "label": "F", "x": 4.75, "y": 2 }, + { "label": "G", "x": 5.75, "y": 2 }, + { "label": "H", "x": 6.75, "y": 2 }, + { "label": "J", "x": 7.75, "y": 2 }, + { "label": "K", "x": 8.75, "y": 2 }, + { "label": "L", "x": 9.75, "y": 2 }, + { "label": ";", "x": 10.75, "y": 2 }, + { "label": "'", "x": 11.75, "y": 2 }, + { "label": "Enter", "x": 12.75, "y": 2, "w": 2.25 }, + { "label": "Backspace", "x": 14, "y": 0 }, + { "label": "PageUp", "x": 15, "y": 2 }, + + { "label": "Shift1", "x": 0, "y": 3, "w": 1.25 }, + { "label": "Shift2", "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 }, + { "label": "\u2191", "x": 14, "y": 3 }, + { "label": "End", "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": 2.25 }, + { "x": 6, "y": 4, "w": 1.25 }, + { "x": 7.25, "y": 4, "w": 2.75 }, + { "label": "Alt", "x": 10, "y": 4, "w": 1.25 }, + { "label": "Fn", "x": 11.25, "y": 4, "w": 1.25 }, + { "label": "\u2190", "x": 13, "y": 4 }, + { "label": "\u2193", "x": 14, "y": 4 }, + { "label": "\u2192", "x": 15, "y": 4 } + ] + }, + "LAYOUT_65_ansi_blocker": { + "layout": [ + { "label": "Esc", "x": 0, "y": 0 }, + { "label": "1", "x": 1, "y": 0 }, + { "label": "2", "x": 2, "y": 0 }, + { "label": "3", "x": 3, "y": 0 }, + { "label": "4", "x": 4, "y": 0 }, + { "label": "5", "x": 5, "y": 0 }, + { "label": "6", "x": 6, "y": 0 }, + { "label": "7", "x": 7, "y": 0 }, + { "label": "8", "x": 8, "y": 0 }, + { "label": "9", "x": 9, "y": 0 }, + { "label": "0", "x": 10, "y": 0 }, + { "label": "-", "x": 11, "y": 0 }, + { "label": "=", "x": 12, "y": 0 }, + { "label": "Backspace", "x": 13, "y": 0, "w": 2 }, + { "label": "Encode", "x": 15, "y": 0 }, + + { "label": "Tab", "x": 0, "y": 1, "w": 1.5 }, + { "label": "Q", "x": 1.5, "y": 1 }, + { "label": "W", "x": 2.5, "y": 1 }, + { "label": "E", "x": 3.5, "y": 1 }, + { "label": "R", "x": 4.5, "y": 1 }, + { "label": "T", "x": 5.5, "y": 1 }, + { "label": "Y", "x": 6.5, "y": 1 }, + { "label": "U", "x": 7.5, "y": 1 }, + { "label": "I", "x": 8.5, "y": 1 }, + { "label": "O", "x": 9.5, "y": 1 }, + { "label": "P", "x": 10.5, "y": 1 }, + { "label": "[", "x": 11.5, "y": 1 }, + { "label": "]", "x": 12.5, "y": 1 }, + { "label": "\\", "x": 13.5, "y": 1, "w": 1.5 }, + { "label": "Delete", "x": 15, "y": 1 }, + + { "label": "Caps Lock", "x": 0, "y": 2, "w": 1.75 }, + { "label": "A", "x": 1.75, "y": 2 }, + { "label": "S", "x": 2.75, "y": 2 }, + { "label": "D", "x": 3.75, "y": 2 }, + { "label": "F", "x": 4.75, "y": 2 }, + { "label": "G", "x": 5.75, "y": 2 }, + { "label": "H", "x": 6.75, "y": 2 }, + { "label": "J", "x": 7.75, "y": 2 }, + { "label": "K", "x": 8.75, "y": 2 }, + { "label": "L", "x": 9.75, "y": 2 }, + { "label": ";", "x": 10.75, "y": 2 }, + { "label": "'", "x": 11.75, "y": 2 }, + { "label": "Enter", "x": 12.75, "y": 2, "w": 2.25 }, + { "label": "PageUp", "x": 15, "y": 2 }, + + { "label": "Shift", "x": 0, "y": 3, "w": 2.25 }, + { "label": "Z", "x": 2.25, "y": 3 }, + { "label": "X", "x": 3.25, "y": 3 }, + { "label": "C", "x": 4.25, "y": 3 }, + { "label": "V", "x": 5.25, "y": 3 }, + { "label": "B", "x": 6.25, "y": 3 }, + { "label": "N", "x": 7.25, "y": 3 }, + { "label": "M", "x": 8.25, "y": 3 }, + { "label": ",", "x": 9.25, "y": 3 }, + { "label": ".", "x": 10.25, "y": 3 }, + { "label": "/", "x": 11.25, "y": 3 }, + { "label": "Shift", "x": 12.25, "y": 3, "w": 1.75 }, + { "label": "\u2191", "x": 14, "y": 3 }, + { "label": "End", "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": "Fn", "x": 11.25, "y": 4, "w": 1.25 }, + { "label": "\u2190", "x": 13, "y": 4 }, + { "label": "\u2193", "x": 14, "y": 4 }, + { "label": "\u2192", "x": 15, "y": 4 } + ] + }, + "LAYOUT_65_iso_blocker": { + "layout": [ + { "label": "Esc", "x": 0, "y": 0 }, + { "label": "1", "x": 1, "y": 0 }, + { "label": "2", "x": 2, "y": 0 }, + { "label": "3", "x": 3, "y": 0 }, + { "label": "4", "x": 4, "y": 0 }, + { "label": "5", "x": 5, "y": 0 }, + { "label": "6", "x": 6, "y": 0 }, + { "label": "7", "x": 7, "y": 0 }, + { "label": "8", "x": 8, "y": 0 }, + { "label": "9", "x": 9, "y": 0 }, + { "label": "0", "x": 10, "y": 0 }, + { "label": "-", "x": 11, "y": 0 }, + { "label": "=", "x": 12, "y": 0 }, + { "label": "Backspace", "x": 13, "y": 0, "w": 2 }, + { "label": "Encode", "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": "ISO", "x": 13.75, "y": 1, "w": 1.25, "h": 2 }, + { "label": "Delete", "x": 15, "y": 1 }, + + { "label": "Caps Lock", "x": 0, "y": 2, "w": 1.75 }, + { "label": "A", "x": 1.75, "y": 2 }, + { "label": "S", "x": 2.75, "y": 2 }, + { "label": "D", "x": 3.75, "y": 2 }, + { "label": "F", "x": 4.75, "y": 2 }, + { "label": "G", "x": 5.75, "y": 2 }, + { "label": "H", "x": 6.75, "y": 2 }, + { "label": "J", "x": 7.75, "y": 2 }, + { "label": "K", "x": 8.75, "y": 2 }, + { "label": "L", "x": 9.75, "y": 2 }, + { "label": ";", "x": 10.75, "y": 2 }, + { "label": "'", "x": 11.75, "y": 2 }, + { "label": "\\", "x": 12.75, "y": 2 }, + { "label": "PageUp", "x": 15, "y": 2 }, + + { "label": "Shift", "x": 0, "y": 3, "w": 2.25 }, + { "label": "Z", "x": 2.25, "y": 3 }, + { "label": "X", "x": 3.25, "y": 3 }, + { "label": "C", "x": 4.25, "y": 3 }, + { "label": "V", "x": 5.25, "y": 3 }, + { "label": "B", "x": 6.25, "y": 3 }, + { "label": "N", "x": 7.25, "y": 3 }, + { "label": "M", "x": 8.25, "y": 3 }, + { "label": ",", "x": 9.25, "y": 3 }, + { "label": ".", "x": 10.25, "y": 3 }, + { "label": "/", "x": 11.25, "y": 3 }, + { "label": "Shift", "x": 12.25, "y": 3, "w": 1.75 }, + { "label": "\u2191", "x": 14, "y": 3 }, + { "label": "End", "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": "Fn", "x": 11.25, "y": 4, "w": 1.25 }, + { "label": "\u2190", "x": 13, "y": 4 }, + { "label": "\u2193", "x": 14, "y": 4 }, + { "label": "\u2192", "x": 15, "y": 4 } + ] + }, + "LAYOUT_65_ansi_split_bs": { + "layout": [ + { "label": "Esc", "x": 0, "y": 0 }, + { "label": "1", "x": 1, "y": 0 }, + { "label": "2", "x": 2, "y": 0 }, + { "label": "3", "x": 3, "y": 0 }, + { "label": "4", "x": 4, "y": 0 }, + { "label": "5", "x": 5, "y": 0 }, + { "label": "6", "x": 6, "y": 0 }, + { "label": "7", "x": 7, "y": 0 }, + { "label": "8", "x": 8, "y": 0 }, + { "label": "9", "x": 9, "y": 0 }, + { "label": "0", "x": 10, "y": 0 }, + { "label": "-", "x": 11, "y": 0 }, + { "label": "=", "x": 12, "y": 0 }, + { "label": "Backspace", "x": 13, "y": 0 }, + { "label": "Encode", "x": 15, "y": 0 }, + + { "label": "Tab", "x": 0, "y": 1, "w": 1.5 }, + { "label": "Q", "x": 1.5, "y": 1 }, + { "label": "W", "x": 2.5, "y": 1 }, + { "label": "E", "x": 3.5, "y": 1 }, + { "label": "R", "x": 4.5, "y": 1 }, + { "label": "T", "x": 5.5, "y": 1 }, + { "label": "Y", "x": 6.5, "y": 1 }, + { "label": "U", "x": 7.5, "y": 1 }, + { "label": "I", "x": 8.5, "y": 1 }, + { "label": "O", "x": 9.5, "y": 1 }, + { "label": "P", "x": 10.5, "y": 1 }, + { "label": "[", "x": 11.5, "y": 1 }, + { "label": "]", "x": 12.5, "y": 1 }, + { "label": "\\", "x": 13.5, "y": 1, "w": 1.5 }, + { "label": "Delete", "x": 15, "y": 1 }, + + { "label": "Caps Lock", "x": 0, "y": 2, "w": 1.75 }, + { "label": "A", "x": 1.75, "y": 2 }, + { "label": "S", "x": 2.75, "y": 2 }, + { "label": "D", "x": 3.75, "y": 2 }, + { "label": "F", "x": 4.75, "y": 2 }, + { "label": "G", "x": 5.75, "y": 2 }, + { "label": "H", "x": 6.75, "y": 2 }, + { "label": "J", "x": 7.75, "y": 2 }, + { "label": "K", "x": 8.75, "y": 2 }, + { "label": "L", "x": 9.75, "y": 2 }, + { "label": ";", "x": 10.75, "y": 2 }, + { "label": "'", "x": 11.75, "y": 2 }, + { "label": "Enter", "x": 12.75, "y": 2, "w": 2.25 }, + { "label": "Backspace", "x": 14, "y": 0 }, + { "label": "PageUp", "x": 15, "y": 2 }, + + { "label": "Shift", "x": 0, "y": 3, "w": 2.25 }, + { "label": "Z", "x": 2.25, "y": 3 }, + { "label": "X", "x": 3.25, "y": 3 }, + { "label": "C", "x": 4.25, "y": 3 }, + { "label": "V", "x": 5.25, "y": 3 }, + { "label": "B", "x": 6.25, "y": 3 }, + { "label": "N", "x": 7.25, "y": 3 }, + { "label": "M", "x": 8.25, "y": 3 }, + { "label": ",", "x": 9.25, "y": 3 }, + { "label": ".", "x": 10.25, "y": 3 }, + { "label": "/", "x": 11.25, "y": 3 }, + { "label": "Shift", "x": 12.25, "y": 3, "w": 1.75 }, + { "label": "\u2191", "x": 14, "y": 3 }, + { "label": "End", "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": "Fn", "x": 11.25, "y": 4, "w": 1.25 }, + { "label": "\u2190", "x": 13, "y": 4 }, + { "label": "\u2193", "x": 14, "y": 4 }, + { "label": "\u2192", "x": 15, "y": 4 } + ] + }, + "LAYOUT_65_ansi_split_lshift": { + "layout": [ + { "label": "Esc", "x": 0, "y": 0 }, + { "label": "1", "x": 1, "y": 0 }, + { "label": "2", "x": 2, "y": 0 }, + { "label": "3", "x": 3, "y": 0 }, + { "label": "4", "x": 4, "y": 0 }, + { "label": "5", "x": 5, "y": 0 }, + { "label": "6", "x": 6, "y": 0 }, + { "label": "7", "x": 7, "y": 0 }, + { "label": "8", "x": 8, "y": 0 }, + { "label": "9", "x": 9, "y": 0 }, + { "label": "0", "x": 10, "y": 0 }, + { "label": "-", "x": 11, "y": 0 }, + { "label": "=", "x": 12, "y": 0 }, + { "label": "Backspace", "x": 13, "y": 0, "w": 2 }, + { "label": "Encode", "x": 15, "y": 0 }, + + { "label": "Tab", "x": 0, "y": 1, "w": 1.5 }, + { "label": "Q", "x": 1.5, "y": 1 }, + { "label": "W", "x": 2.5, "y": 1 }, + { "label": "E", "x": 3.5, "y": 1 }, + { "label": "R", "x": 4.5, "y": 1 }, + { "label": "T", "x": 5.5, "y": 1 }, + { "label": "Y", "x": 6.5, "y": 1 }, + { "label": "U", "x": 7.5, "y": 1 }, + { "label": "I", "x": 8.5, "y": 1 }, + { "label": "O", "x": 9.5, "y": 1 }, + { "label": "P", "x": 10.5, "y": 1 }, + { "label": "[", "x": 11.5, "y": 1 }, + { "label": "]", "x": 12.5, "y": 1 }, + { "label": "\\", "x": 13.5, "y": 1, "w": 1.5 }, + { "label": "Delete", "x": 15, "y": 1 }, + + { "label": "Caps Lock", "x": 0, "y": 2, "w": 1.75 }, + { "label": "A", "x": 1.75, "y": 2 }, + { "label": "S", "x": 2.75, "y": 2 }, + { "label": "D", "x": 3.75, "y": 2 }, + { "label": "F", "x": 4.75, "y": 2 }, + { "label": "G", "x": 5.75, "y": 2 }, + { "label": "H", "x": 6.75, "y": 2 }, + { "label": "J", "x": 7.75, "y": 2 }, + { "label": "K", "x": 8.75, "y": 2 }, + { "label": "L", "x": 9.75, "y": 2 }, + { "label": ";", "x": 10.75, "y": 2 }, + { "label": "'", "x": 11.75, "y": 2 }, + { "label": "Enter", "x": 12.75, "y": 2, "w": 2.25 }, + { "label": "PageUp", "x": 15, "y": 2 }, + + { "label": "Shift1", "x": 0, "y": 3, "w": 1.25 }, + { "label": "Shift2", "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 }, + { "label": "\u2191", "x": 14, "y": 3 }, + { "label": "End", "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": "Fn", "x": 11.25, "y": 4, "w": 1.25 }, + { "label": "\u2190", "x": 13, "y": 4 }, + { "label": "\u2193", "x": 14, "y": 4 }, + { "label": "\u2192", "x": 15, "y": 4 } + ] + }, + "LAYOUT_65_split_space": { + "layout": [ + { "label": "Esc", "x": 0, "y": 0 }, + { "label": "1", "x": 1, "y": 0 }, + { "label": "2", "x": 2, "y": 0 }, + { "label": "3", "x": 3, "y": 0 }, + { "label": "4", "x": 4, "y": 0 }, + { "label": "5", "x": 5, "y": 0 }, + { "label": "6", "x": 6, "y": 0 }, + { "label": "7", "x": 7, "y": 0 }, + { "label": "8", "x": 8, "y": 0 }, + { "label": "9", "x": 9, "y": 0 }, + { "label": "0", "x": 10, "y": 0 }, + { "label": "-", "x": 11, "y": 0 }, + { "label": "=", "x": 12, "y": 0 }, + { "label": "Backspace", "x": 13, "y": 0, "w": 2 }, + { "label": "Encode", "x": 15, "y": 0 }, + + { "label": "Tab", "x": 0, "y": 1, "w": 1.5 }, + { "label": "Q", "x": 1.5, "y": 1 }, + { "label": "W", "x": 2.5, "y": 1 }, + { "label": "E", "x": 3.5, "y": 1 }, + { "label": "R", "x": 4.5, "y": 1 }, + { "label": "T", "x": 5.5, "y": 1 }, + { "label": "Y", "x": 6.5, "y": 1 }, + { "label": "U", "x": 7.5, "y": 1 }, + { "label": "I", "x": 8.5, "y": 1 }, + { "label": "O", "x": 9.5, "y": 1 }, + { "label": "P", "x": 10.5, "y": 1 }, + { "label": "[", "x": 11.5, "y": 1 }, + { "label": "]", "x": 12.5, "y": 1 }, + { "label": "\\", "x": 13.5, "y": 1, "w": 1.5 }, + { "label": "Delete", "x": 15, "y": 1 }, + + { "label": "Caps Lock", "x": 0, "y": 2, "w": 1.75 }, + { "label": "A", "x": 1.75, "y": 2 }, + { "label": "S", "x": 2.75, "y": 2 }, + { "label": "D", "x": 3.75, "y": 2 }, + { "label": "F", "x": 4.75, "y": 2 }, + { "label": "G", "x": 5.75, "y": 2 }, + { "label": "H", "x": 6.75, "y": 2 }, + { "label": "J", "x": 7.75, "y": 2 }, + { "label": "K", "x": 8.75, "y": 2 }, + { "label": "L", "x": 9.75, "y": 2 }, + { "label": ";", "x": 10.75, "y": 2 }, + { "label": "'", "x": 11.75, "y": 2 }, + { "label": "Enter", "x": 12.75, "y": 2, "w": 2.25 }, + { "label": "PageUp", "x": 15, "y": 2 }, + + { "label": "Shift", "x": 0, "y": 3, "w": 2.25 }, + { "label": "Z", "x": 2.25, "y": 3 }, + { "label": "X", "x": 3.25, "y": 3 }, + { "label": "C", "x": 4.25, "y": 3 }, + { "label": "V", "x": 5.25, "y": 3 }, + { "label": "B", "x": 6.25, "y": 3 }, + { "label": "N", "x": 7.25, "y": 3 }, + { "label": "M", "x": 8.25, "y": 3 }, + { "label": ",", "x": 9.25, "y": 3 }, + { "label": ".", "x": 10.25, "y": 3 }, + { "label": "/", "x": 11.25, "y": 3 }, + { "label": "Shift", "x": 12.25, "y": 3, "w": 1.75 }, + { "label": "\u2191", "x": 14, "y": 3 }, + { "label": "End", "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": 2.25 }, + { "x": 6, "y": 4, "w": 1.25 }, + { "x": 7.25, "y": 4, "w": 2.75 }, + { "label": "Alt", "x": 10, "y": 4, "w": 1.25 }, + { "label": "Fn", "x": 11.25, "y": 4, "w": 1.25 }, + { "label": "\u2190", "x": 13, "y": 4 }, + { "label": "\u2193", "x": 14, "y": 4 }, + { "label": "\u2192", "x": 15, "y": 4 } + ] + } + } +} diff --git a/keyboards/meletrix/zoom65/keymaps/65_ansi/keymap.c b/keyboards/meletrix/zoom65/keymaps/65_ansi/keymap.c new file mode 100644 index 00000000000..07d58e9d2b9 --- /dev/null +++ b/keyboards/meletrix/zoom65/keymaps/65_ansi/keymap.c @@ -0,0 +1,34 @@ +/* Copyright 2021 meletrix + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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( + 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_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_DEL, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, + KC_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( + 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_MPLY, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/meletrix/zoom65/keymaps/65_ansi/readme.md b/keyboards/meletrix/zoom65/keymaps/65_ansi/readme.md new file mode 100644 index 00000000000..f9dd323673e --- /dev/null +++ b/keyboards/meletrix/zoom65/keymaps/65_ansi/readme.md @@ -0,0 +1 @@ +# The 65_ansi_blocker keymap for zoom65 diff --git a/keyboards/meletrix/zoom65/keymaps/65_iso/keymap.c b/keyboards/meletrix/zoom65/keymaps/65_iso/keymap.c new file mode 100644 index 00000000000..ccdfb6fc2ff --- /dev/null +++ b/keyboards/meletrix/zoom65/keymaps/65_iso/keymap.c @@ -0,0 +1,34 @@ +/* Copyright 2021 meletrix + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_iso_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_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_ENT, 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_BSLS, 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_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_65_iso_blocker( + 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_MPLY, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/meletrix/zoom65/keymaps/65_iso/readme.md b/keyboards/meletrix/zoom65/keymaps/65_iso/readme.md new file mode 100644 index 00000000000..fd70c950505 --- /dev/null +++ b/keyboards/meletrix/zoom65/keymaps/65_iso/readme.md @@ -0,0 +1 @@ +# The 65_iso_blocker for zoom65 diff --git a/keyboards/meletrix/zoom65/keymaps/65_split_bs/keymap.c b/keyboards/meletrix/zoom65/keymaps/65_split_bs/keymap.c new file mode 100644 index 00000000000..a930987720c --- /dev/null +++ b/keyboards/meletrix/zoom65/keymaps/65_split_bs/keymap.c @@ -0,0 +1,34 @@ +/* Copyright 2021 meletrix + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_split_bs( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, 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_DEL, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_BSPC, 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_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_65_ansi_split_bs( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_MPLY, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/meletrix/zoom65/keymaps/65_split_bs/readme.md b/keyboards/meletrix/zoom65/keymaps/65_split_bs/readme.md new file mode 100644 index 00000000000..34c59ba014c --- /dev/null +++ b/keyboards/meletrix/zoom65/keymaps/65_split_bs/readme.md @@ -0,0 +1 @@ +# The 65_split_bs keymap for zoom65 diff --git a/keyboards/meletrix/zoom65/keymaps/65_split_lshift/keymap.c b/keyboards/meletrix/zoom65/keymaps/65_split_lshift/keymap.c new file mode 100644 index 00000000000..91c91795168 --- /dev/null +++ b/keyboards/meletrix/zoom65/keymaps/65_split_lshift/keymap.c @@ -0,0 +1,34 @@ +/* Copyright 2021 meletrix + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_split_lshift( + 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_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_DEL, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, + KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_65_ansi_split_lshift( + 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_MPLY, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/meletrix/zoom65/keymaps/65_split_lshift/readme.md b/keyboards/meletrix/zoom65/keymaps/65_split_lshift/readme.md new file mode 100644 index 00000000000..e56989b24a6 --- /dev/null +++ b/keyboards/meletrix/zoom65/keymaps/65_split_lshift/readme.md @@ -0,0 +1 @@ +# The 65_split_lshift keymap for zoom65 diff --git a/keyboards/meletrix/zoom65/keymaps/65_split_space/keymap.c b/keyboards/meletrix/zoom65/keymaps/65_split_space/keymap.c new file mode 100644 index 00000000000..b63aff9a9e5 --- /dev/null +++ b/keyboards/meletrix/zoom65/keymaps/65_split_space/keymap.c @@ -0,0 +1,34 @@ +/* Copyright 2021 meletrix + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_split_space( + 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_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_DEL, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, + KC_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_SPC, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_65_split_space( + 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_MPLY, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/meletrix/zoom65/keymaps/65_split_space/readme.md b/keyboards/meletrix/zoom65/keymaps/65_split_space/readme.md new file mode 100644 index 00000000000..4bd0ee67dbc --- /dev/null +++ b/keyboards/meletrix/zoom65/keymaps/65_split_space/readme.md @@ -0,0 +1 @@ +# The 65_split_space keymap for zoom65 diff --git a/keyboards/meletrix/zoom65/keymaps/default/keymap.c b/keyboards/meletrix/zoom65/keymaps/default/keymap.c new file mode 100644 index 00000000000..a0a62d29675 --- /dev/null +++ b/keyboards/meletrix/zoom65/keymaps/default/keymap.c @@ -0,0 +1,34 @@ +/* Copyright 2021 meletrix + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_BSPC, KC_VOLD, KC_MUTE, KC_VOLU, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_BSPC, KC_PGUP, + KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_all( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_MPRV, KC_MPLY, KC_MNXT, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/meletrix/zoom65/keymaps/default/readme.md b/keyboards/meletrix/zoom65/keymaps/default/readme.md new file mode 100644 index 00000000000..32dfecc2657 --- /dev/null +++ b/keyboards/meletrix/zoom65/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for zoom65 diff --git a/keyboards/meletrix/zoom65/keymaps/via/keymap.c b/keyboards/meletrix/zoom65/keymaps/via/keymap.c new file mode 100644 index 00000000000..f7038229066 --- /dev/null +++ b/keyboards/meletrix/zoom65/keymaps/via/keymap.c @@ -0,0 +1,48 @@ +/* Copyright 2021 meletrix + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_BSPC, KC_VOLD, KC_MUTE, KC_VOLU, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_BSPC, KC_PGUP, + KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_all( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_MPRV, KC_MPLY, KC_MNXT, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/meletrix/zoom65/keymaps/via/readme.md b/keyboards/meletrix/zoom65/keymaps/via/readme.md new file mode 100644 index 00000000000..5bc43e82b3b --- /dev/null +++ b/keyboards/meletrix/zoom65/keymaps/via/readme.md @@ -0,0 +1 @@ +# The via keymap for zoom65 diff --git a/keyboards/meletrix/zoom65/keymaps/via/rules.mk b/keyboards/meletrix/zoom65/keymaps/via/rules.mk new file mode 100644 index 00000000000..43061db1dd4 --- /dev/null +++ b/keyboards/meletrix/zoom65/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes \ No newline at end of file diff --git a/keyboards/meletrix/zoom65/readme.md b/keyboards/meletrix/zoom65/readme.md new file mode 100644 index 00000000000..dc56f699498 --- /dev/null +++ b/keyboards/meletrix/zoom65/readme.md @@ -0,0 +1,26 @@ +# zoom65 + +![zoom65](https://i.imgur.com/NIbreqdh.jpeg) + +Meletrix's first mass-produced mechanical keyboard. +More Info at [zoom](https://zoom65.com/). +​ +* Keyboard Maintainer: [spbgzh](https://github.com/spbgzh) +* Hardware Supported: zoom65 Standard +* Hardware Availability: [zoom](https://zoom65.com/) +​ +Make example for this keyboard (after setting up your build environment): + + make meletrix/zoom65:default + +Flashing example for this keyboard: + + make meletrix/zoom65:default:flash + +To reset the board into bootloader mode, do one of the following: + +* Tap the Reset switch mounted on the PCB +* In the case of the default keymap, use the key combination Fn + End +* Hold the Esc key while connecting the USB cable (also erases persistent settings) + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/meletrix/zoom65/rules.mk b/keyboards/meletrix/zoom65/rules.mk new file mode 100644 index 00000000000..b481714b723 --- /dev/null +++ b/keyboards/meletrix/zoom65/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 = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output +ENCODER_ENABLE = yes # Enable Encoder + +LAYOUT = 65_ansi_blocker 65_iso_blocker diff --git a/keyboards/meletrix/zoom65/zoom65.c b/keyboards/meletrix/zoom65/zoom65.c new file mode 100644 index 00000000000..f69ed547eff --- /dev/null +++ b/keyboards/meletrix/zoom65/zoom65.c @@ -0,0 +1,66 @@ +/* Copyright 2021 meletrix + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 "zoom65.h" + +#ifdef VIA_ENABLE +static uint8_t encoder_state[ENCODERS] = {0}; +static keypos_t encoder_cw[ENCODERS] = ENCODERS_CW_KEY; +static keypos_t encoder_ccw[ENCODERS] = ENCODERS_CCW_KEY; + +void encoder_action_unregister(void) +{ + for (int index = 0; index < ENCODERS; ++index) + { + if (encoder_state[index]) + { + keyevent_t encoder_event = (keyevent_t){ + .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index], + .pressed = false, + .time = (timer_read() | 1)}; + encoder_state[index] = 0; + action_exec(encoder_event); + } + } +} +void encoder_action_register(uint8_t index, bool clockwise) +{ + keyevent_t encoder_event = (keyevent_t){ + .key = clockwise ? encoder_cw[index] : encoder_ccw[index], + .pressed = true, + .time = (timer_read() | 1)}; + encoder_state[index] = (clockwise ^ 1) | (clockwise << 1); + action_exec(encoder_event); +} + +void matrix_scan_kb(void) +{ + encoder_action_unregister(); + matrix_scan_user(); +} + +bool encoder_update_kb(uint8_t index, bool clockwise) +{ + encoder_action_register(index, clockwise); + return true; +}; +#else +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { return false; } + tap_code_delay(clockwise ? KC_VOLU : KC_VOLD, 10); + return true; +} +#endif diff --git a/keyboards/meletrix/zoom65/zoom65.h b/keyboards/meletrix/zoom65/zoom65.h new file mode 100644 index 00000000000..400fdcbf3b0 --- /dev/null +++ b/keyboards/meletrix/zoom65/zoom65.h @@ -0,0 +1,187 @@ +/* Copyright 2021 meletrix + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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" + + +/* Standard Arrangement + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │2d │ ◯ ISO + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┐ ┌─────┐ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d │1e │ │1d │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ ┌──┴┐ │ + * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │2e │ │2c │ │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ └───┴────┘ + * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c │3d │3e │ + * ├────┼───┴┬──┴─┬─┴───┴──┬┴───┼───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ + * │40 │41 │42 │44 │46 │48 │4a │4b │ │4c │4d │4e │ + * └────┴────┴────┴────────┴────┴──────────┴────┴────┘ └───┴───┴───┘ + */ +#define LAYOUT_all( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K43, K0E, K45, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ + K40, K41, K42, K44, K46, K48, K4A, K4B, K4C, K4D, K4E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ + { K40, K41, K42, K43, K44, K45, K46, KC_NO, K48, KC_NO, K4A, K4B, K4C, K4D, K4E }, \ +} + + +/* LAYOUT_65_ansi_blocker + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │ ◯ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┐ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d │1e │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ + * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │2e │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + * │30 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c │3d │3e │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ + * │40 │41 │42 │46 │4a │4b │ │4c │4d │4e │ + * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ + */ +#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, K2C, K2E, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ + K40, K41, K42, K46, K4A, K4B, K4C, K4D, K4E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, KC_NO, K2E }, \ + { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ + { K40, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D, K4E }, \ +} + + +/* LAYOUT_65_iso_blocker + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │ ◯ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┐ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d │1e │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ ├───┤ + * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │ │2e │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┼───┤ + * │30 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c │3d │3e │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ + * │40 │41 │42 │46 │4a │4b │ │4c │4d │4e │ + * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ + */ +#define LAYOUT_65_iso_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, K2C, K2E, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ + K40, K41, K42, K46, K4A, K4B, K4C, K4D, K4E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, KC_NO, K2E }, \ + { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ + { K40, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D, K4E }, \ +} + + +/* LAYOUT_65_ansi_split_bs + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │2d │ ◯ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┐ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d │1e │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ + * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │2e │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + * │30 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c │3d │3e │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ + * │40 │41 │42 │46 │4a │4b │ │4c │4d │4e │ + * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ + */ +#define LAYOUT_65_ansi_split_bs( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ + K40, K41, K42, K46, K4A, K4B, K4C, K4D, K4E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E }, \ + { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ + { K40, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D, K4E }, \ +} + + +/* LAYOUT_65_ansi_split_lshift + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │ ◯ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┐ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d │1e │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ + * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │2e │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c │3d │3e │ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ + * │40 │41 │42 │46 │4a │4b │ │4c │4d │4e │ + * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ + */ +#define LAYOUT_65_ansi_split_lshift( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ + K40, K41, K42, K46, K4A, K4B, K4C, K4D, K4E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, KC_NO, K2E }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ + { K40, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D, K4E }, \ +} + + +/* LAYOUT_65_split_space + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │ ◯ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┐ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d │1e │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ + * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │2e │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + * │30 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c │3d │3e │ + * ├────┬───┴┬──┴─┬─┴───┴──┬┴───┼───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ + * │40 │41 │42 │44 │46 │48 │4a │4b │ │4c │4d │4e │ + * └────┴────┴────┴────────┴────┴──────────┴────┴────┘ └───┴───┴───┘ + */ +#define LAYOUT_65_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, K2C, K2E, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ + K40, K41, K42, K44, K46, K48, K4A, K4B, K4C, K4D, K4E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, KC_NO, K2E }, \ + { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ + { K40, K41, K42, KC_NO, K44, KC_NO, K46, KC_NO, K48, KC_NO, K4A, K4B, K4C, K4D, K4E }, \ +} diff --git a/keyboards/melgeek/mach80/info.json b/keyboards/melgeek/mach80/info.json index e786df7c176..ea7c628c6f5 100755 --- a/keyboards/melgeek/mach80/info.json +++ b/keyboards/melgeek/mach80/info.json @@ -4,192 +4,192 @@ "maintainer": "melgeek001365", "layouts": { "LAYOUT_tkl_ansi": { - "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":15.25, "y":0}, - {"x":16.25, "y":0}, - {"x":17.25, "y":0}, + "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": 15.25, "y": 0}, + {"x": 16.25, "y": 0}, + {"x": 17.25, "y": 0}, - {"x":0, "y":1}, - {"x":1, "y":1}, - {"x":2, "y":1}, - {"x":3, "y":1}, - {"x":4, "y":1}, - {"x":5, "y":1}, - {"x":6, "y":1}, - {"x":7, "y":1}, - {"x":8, "y":1}, - {"x":9, "y":1}, - {"x":10, "y":1}, - {"x":11, "y":1}, - {"x":12, "y":1}, - {"x":13, "y":1, "w":2.0}, - {"x":15.25, "y":1}, - {"x":16.25, "y":1}, - {"x":17.25, "y":1}, + {"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.0}, + {"x": 15.25, "y": 1.5}, + {"x": 16.25, "y": 1.5}, + {"x": 17.25, "y": 1.5}, - {"x":0, "y":2, "w":1.5}, - {"x":1.5, "y":2}, - {"x":2.5, "y":2}, - {"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":8.5, "y":2}, - {"x":9.5, "y":2}, - {"x":10.5, "y":2}, - {"x":11.5, "y":2}, - {"x":12.5, "y":2}, - {"x":13.5, "y":2, "w":1.5}, - {"x":15.25, "y":2}, - {"x":16.25, "y":2}, - {"x":17.25, "y":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": 15.25, "y": 2.5}, + {"x": 16.25, "y": 2.5}, + {"x": 17.25, "y": 2.5}, - {"x":0, "y":3, "w":1.75}, - {"x":1.75, "y":3}, - {"x":2.75, "y":3}, - {"x":3.75, "y":3}, - {"x":4.75, "y":3}, - {"x":5.75, "y":3}, - {"x":6.75, "y":3}, - {"x":7.75, "y":3}, - {"x":8.75, "y":3}, - {"x":9.75, "y":3}, - {"x":10.75, "y":3}, - {"x":11.75, "y":3}, - {"x":12.75, "y":3, "w":2.25}, - - {"x":0, "y":4, "w":2.25}, - {"x":2.25, "y":4}, - {"x":3.25, "y":4}, - {"x":4.25, "y":4}, - {"x":5.25, "y":4}, - {"x":6.25, "y":4}, - {"x":7.25, "y":4}, - {"x":8.25, "y":4}, - {"x":9.25, "y":4}, - {"x":10.25, "y":4}, - {"x":11.25, "y":4}, - {"x":12.25, "y":4, "w":2.75}, - {"x":16.25, "y":4}, + {"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":5, "w":1.25}, - {"x":1.25, "y":5, "w":1.25}, - {"x":2.5, "y":5, "w":1.25}, - {"x":3.75, "y":5, "w":6.25}, - {"x":10, "y":5, "w":1.25}, - {"x":11.25, "y":5, "w":1.25}, - {"x":12.5, "y":5, "w":1.25}, - {"x":13.75, "y":5, "w":1.25}, - {"x":15.25, "y":5}, - {"x":16.25, "y":5}, - {"x":17.25, "y":5} + {"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}, + {"x": 12.25, "y": 4.5, "w": 2.75}, + {"x": 16.25, "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, "w": 1.25}, + {"x": 11.25, "y": 5.5, "w": 1.25}, + {"x": 12.5, "y": 5.5, "w": 1.25}, + {"x": 13.75, "y": 5.5, "w": 1.25}, + {"x": 15.25, "y": 5.5}, + {"x": 16.25, "y": 5.5}, + {"x": 17.25, "y": 5.5} ] }, "LAYOUT_tkl_ansi_wkl": { - "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":15.25, "y":0}, - {"x":16.25, "y":0}, - {"x":17.25, "y":0}, + "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": 15.25, "y": 0}, + {"x": 16.25, "y": 0}, + {"x": 17.25, "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.0}, + {"x": 15.25, "y": 1.5}, + {"x": 16.25, "y": 1.5}, + {"x": 17.25, "y": 1.5}, - {"x":0, "y":1}, - {"x":1, "y":1}, - {"x":2, "y":1}, - {"x":3, "y":1}, - {"x":4, "y":1}, - {"x":5, "y":1}, - {"x":6, "y":1}, - {"x":7, "y":1}, - {"x":8, "y":1}, - {"x":9, "y":1}, - {"x":10, "y":1}, - {"x":11, "y":1}, - {"x":12, "y":1}, - {"x":13, "y":1, "w":2.0}, - {"x":15.25, "y":1}, - {"x":16.25, "y":1}, - {"x":17.25, "y":1}, + {"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": 15.25, "y": 2.5}, + {"x": 16.25, "y": 2.5}, + {"x": 17.25, "y": 2.5}, - {"x":0, "y":2, "w":1.5}, - {"x":1.5, "y":2}, - {"x":2.5, "y":2}, - {"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":8.5, "y":2}, - {"x":9.5, "y":2}, - {"x":10.5, "y":2}, - {"x":11.5, "y":2}, - {"x":12.5, "y":2}, - {"x":13.5, "y":2, "w":1.5}, - {"x":15.25, "y":2}, - {"x":16.25, "y":2}, - {"x":17.25, "y":2}, + {"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":3, "w":1.75}, - {"x":1.75, "y":3}, - {"x":2.75, "y":3}, - {"x":3.75, "y":3}, - {"x":4.75, "y":3}, - {"x":5.75, "y":3}, - {"x":6.75, "y":3}, - {"x":7.75, "y":3}, - {"x":8.75, "y":3}, - {"x":9.75, "y":3}, - {"x":10.75, "y":3}, - {"x":11.75, "y":3}, - {"x":12.75, "y":3, "w":2.25}, - - {"x":0, "y":4, "w":2.25}, - {"x":2.25, "y":4}, - {"x":3.25, "y":4}, - {"x":4.25, "y":4}, - {"x":5.25, "y":4}, - {"x":6.25, "y":4}, - {"x":7.25, "y":4}, - {"x":8.25, "y":4}, - {"x":9.25, "y":4}, - {"x":10.25, "y":4}, - {"x":11.25, "y":4}, - {"x":12.25, "y":4, "w":2.75}, - {"x":16.25, "y":4}, + {"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}, + {"x": 12.25, "y": 4.5, "w": 2.75}, + {"x": 16.25, "y": 4.5}, - {"x":0, "y":5, "w":1.5}, - {"x":2.5, "y":5, "w":1.5}, - {"x":4, "y":5, "w":7}, - {"x":11, "y":5, "w":1.5}, - {"x":13.5, "y":5, "w":1.5}, - {"x":15.25, "y":5}, - {"x":16.25, "y":5}, - {"x":17.25, "y":5} + {"x": 0, "y": 5.5, "w": 1.5}, + {"x": 2.5, "y": 5.5, "w": 1.5}, + {"x": 4, "y": 5.5, "w": 7}, + {"x": 11, "y": 5.5, "w": 1.5}, + {"x": 13.5, "y": 5.5, "w": 1.5}, + {"x": 15.25, "y": 5.5}, + {"x": 16.25, "y": 5.5}, + {"x": 17.25, "y": 5.5} ] } } diff --git a/keyboards/melody96/keymaps/dvz/config.h b/keyboards/melody96/keymaps/dvz/config.h new file mode 100644 index 00000000000..be786464bc7 --- /dev/null +++ b/keyboards/melody96/keymaps/dvz/config.h @@ -0,0 +1,34 @@ + /* Copyright 2021 Milan Düwel + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 COMBO_COUNT 4 +#define COMBO_TERM 100 + +//#define UNICODE_SELECTED_MODES UC_WINC + +#define RGBLIGHT_LAYERS +#define RGBLIGHT_LAYER_BLINK + +#undef RGBLIGHT_ANIMATIONS +#define RGBLIGHT_EFFECT_ALTERNATING +#define RGBLIGHT_EFFECT_BREATHING +#define RGBLIGHT_EFFECT_CHRISTMAS +#define RGBLIGHT_EFFECT_KNIGHT +#define RGBLIGHT_EFFECT_SNAKE +#define RGBLIGHT_EFFECT_TWINKLE + diff --git a/keyboards/melody96/keymaps/dvz/keymap.c b/keyboards/melody96/keymaps/dvz/keymap.c new file mode 100644 index 00000000000..cea3970e188 --- /dev/null +++ b/keyboards/melody96/keymaps/dvz/keymap.c @@ -0,0 +1,161 @@ + /* Copyright 2021 Milan Düwel + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 + + /* This keymap is designed for use with a German keyboard layout. + * It is essentially the same as the default via keymap but adds combo functionality to type umlauts as well as lighting layers for various actions. + * Toggling the combo feature also disables KC_LGUI so both can be turned off for gaming. If you want to get rid of it without reflashing new firmware, use KC_RGUI instead. + * Layers 2 and 3 are currently unused but are configurable within via. + */ + +enum combos { + UML_AE, + UML_OE, + UML_UE, + UML_SZ +}; + +const uint16_t PROGMEM ae_combo[] = {KC_A, KC_E, COMBO_END}; +const uint16_t PROGMEM oe_combo[] = {KC_O, KC_E, COMBO_END}; +const uint16_t PROGMEM ue_combo[] = {KC_U, KC_E, COMBO_END}; +const uint16_t PROGMEM sz_combo[] = {KC_S, KC_Y, COMBO_END}; + +combo_t key_combos[COMBO_COUNT] = { + [UML_AE] = COMBO(ae_combo, KC_QUOT), + [UML_OE] = COMBO(oe_combo, KC_SCLN), + [UML_UE] = COMBO(ue_combo, KC_LBRC), + [UML_SZ] = COMBO(sz_combo, KC_MINS) +}; + +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_HOME, KC_END, KC_PGUP, KC_PGDN, 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_BSLS, KC_BSPC, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, KC_PMNS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), MO(1), KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), + + [1] = LAYOUT( + 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_VOLD, + KC_TRNS, RGB_TOG, KC_TRNS, 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_VOLD, + BL_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_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, CMB_TOG, BL_TOGG, BL_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END, KC_TRNS, KC_TRNS, KC_MUTE), + + [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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, 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 lighting layers feature a caps indicator as well as layer blinks for mute and the function layer (blink only to allow unhindered adjustment of the RGB backlight settings). + Sadly these colours can not be customized within VIA. +*/ + +const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 1, HSV_RED}, + {15, 17, HSV_RED} +); + +const rgblight_segment_t PROGMEM my_function_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {10, 12, HSV_YELLOW} +); + +const rgblight_segment_t PROGMEM my_f2_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 17, HSV_CYAN} +); + +const rgblight_segment_t PROGMEM my_f3_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 17, HSV_PURPLE} +); + +const rgblight_segment_t PROGMEM my_flash_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 17, HSV_RED} +); + +// Now define the array of layers. Later layers take precedence +const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( + my_capslock_layer, + my_function_layer, // Overrides caps lock layer + my_f2_layer, + my_f3_layer, + my_flash_layer +); + +void keyboard_post_init_user(void) { + // Enable the LED layers + rgblight_layers = my_rgb_layers; +}; + +bool led_update_user(led_t led_state) { + rgblight_set_layer_state(0, led_state.caps_lock); + return true; +}; + +layer_state_t layer_state_set_user(layer_state_t state) { + //rgblight_set_layer_state(1, layer_state_cmp(state, 1)); + rgblight_set_layer_state(2, layer_state_cmp(state, 2)); + rgblight_set_layer_state(3, layer_state_cmp(state, 3)); + return state; +}; + +// Note we user post_process_record_user because we want the state +// after the flag has been flipped... +void post_process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KC_CAPS: + case KC_MUTE: + case CMB_TOG: + if (record->event.pressed) { + rgblight_blink_layer(4, 250); + } + break; + case MO(1): + if (record->event.pressed) { + rgblight_blink_layer(1, 250); + } + break; + } +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KC_LGUI: //use combo toggle to disable the win key while gaming + if (record->event.pressed) { + if (is_combo_enabled()==false) { + return false; + } + } + return true; // Let QMK send the enter press/release events + default: + return true; // Process all other keycodes normally + } +}; diff --git a/keyboards/melody96/keymaps/dvz/readme.md b/keyboards/melody96/keymaps/dvz/readme.md new file mode 100644 index 00000000000..d82055244eb --- /dev/null +++ b/keyboards/melody96/keymaps/dvz/readme.md @@ -0,0 +1,3 @@ +# DvZ's VIA compatible keymap with rolling umlauts for german typists + +Added by: [devilzmods](https://github.com/devilzmods) diff --git a/keyboards/melody96/keymaps/dvz/rules.mk b/keyboards/melody96/keymaps/dvz/rules.mk new file mode 100644 index 00000000000..a1e85f13f4e --- /dev/null +++ b/keyboards/melody96/keymaps/dvz/rules.mk @@ -0,0 +1,5 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes # reduce firmware size +COMBO_ENABLE = yes +#UNICODE_ENABLE = yes +BOOTLOADER = caterina diff --git a/keyboards/meme/config.h b/keyboards/meme/config.h index e157ade9adf..34624d2b6a9 100644 --- a/keyboards/meme/config.h +++ b/keyboards/meme/config.h @@ -91,54 +91,6 @@ along with this program. If not, see . */ //#define FORCE_NKRO -/* - * Magic Key Options - * - * Magic keys are hotkey commands that allow control over firmware functions of - * the keyboard. They are best used in combination with the HID Listen program, - * found here: https://www.pjrc.com/teensy/hid_listen.html - * - * The options below allow the magic key functionality to be changed. This is - * useful if your keyboard/keypad is missing keys and you want magic key support. - * - */ - -/* control how magic key switches layers */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false - -/* override magic key keymap */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM -//#define MAGIC_KEY_HELP1 H -//#define MAGIC_KEY_HELP2 SLASH -//#define MAGIC_KEY_DEBUG D -//#define MAGIC_KEY_DEBUG_MATRIX X -//#define MAGIC_KEY_DEBUG_KBD K -//#define MAGIC_KEY_DEBUG_MOUSE M -//#define MAGIC_KEY_VERSION V -//#define MAGIC_KEY_STATUS S -//#define MAGIC_KEY_CONSOLE C -//#define MAGIC_KEY_LAYER0_ALT1 ESC -//#define MAGIC_KEY_LAYER0_ALT2 GRAVE -//#define MAGIC_KEY_LAYER0 0 -//#define MAGIC_KEY_LAYER1 1 -//#define MAGIC_KEY_LAYER2 2 -//#define MAGIC_KEY_LAYER3 3 -//#define MAGIC_KEY_LAYER4 4 -//#define MAGIC_KEY_LAYER5 5 -//#define MAGIC_KEY_LAYER6 6 -//#define MAGIC_KEY_LAYER7 7 -//#define MAGIC_KEY_LAYER8 8 -//#define MAGIC_KEY_LAYER9 9 -//#define MAGIC_KEY_BOOTLOADER PAUSE -//#define MAGIC_KEY_LOCK CAPS -//#define MAGIC_KEY_EEPROM E -//#define MAGIC_KEY_NKRO N -//#define MAGIC_KEY_SLEEP_LED Z - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/meme/rules.mk b/keyboards/meme/rules.mk index b22c8dd9910..9008320b15b 100644 --- a/keyboards/meme/rules.mk +++ b/keyboards/meme/rules.mk @@ -17,5 +17,4 @@ 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 -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output diff --git a/keyboards/meson/config.h b/keyboards/meson/config.h index facadbdab23..e777320487c 100644 --- a/keyboards/meson/config.h +++ b/keyboards/meson/config.h @@ -94,59 +94,6 @@ along with this program. If not, see . */ //#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_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) - -/* 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. diff --git a/keyboards/meson/rules.mk b/keyboards/meson/rules.mk index de896f1973c..3b3aa04ba67 100644 --- a/keyboards/meson/rules.mk +++ b/keyboards/meson/rules.mk @@ -19,5 +19,4 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = yes # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output diff --git a/keyboards/metamechs/timberwolf/config.h b/keyboards/metamechs/timberwolf/config.h index 0a1179d107b..fa0791a8ea3 100644 --- a/keyboards/metamechs/timberwolf/config.h +++ b/keyboards/metamechs/timberwolf/config.h @@ -95,59 +95,6 @@ along with this program. If not, see . */ //#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. diff --git a/keyboards/miniaxe/config.h b/keyboards/miniaxe/config.h index f9843d4b746..b9295bad9fc 100644 --- a/keyboards/miniaxe/config.h +++ b/keyboards/miniaxe/config.h @@ -107,54 +107,6 @@ along with this program. If not, see . */ //#define FORCE_NKRO -/* - * Magic Key Options - * - * Magic keys are hotkey commands that allow control over firmware functions of - * the keyboard. They are best used in combination with the HID Listen program, - * found here: https://www.pjrc.com/teensy/hid_listen.html - * - * The options below allow the magic key functionality to be changed. This is - * useful if your keyboard/keypad is missing keys and you want magic key support. - * - */ - -/* control how magic key switches layers */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false - -/* override magic key keymap */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM -//#define MAGIC_KEY_HELP1 H -//#define MAGIC_KEY_HELP2 SLASH -//#define MAGIC_KEY_DEBUG D -//#define MAGIC_KEY_DEBUG_MATRIX X -//#define MAGIC_KEY_DEBUG_KBD K -//#define MAGIC_KEY_DEBUG_MOUSE M -//#define MAGIC_KEY_VERSION V -//#define MAGIC_KEY_STATUS S -//#define MAGIC_KEY_CONSOLE C -//#define MAGIC_KEY_LAYER0_ALT1 ESC -//#define MAGIC_KEY_LAYER0_ALT2 GRAVE -//#define MAGIC_KEY_LAYER0 0 -//#define MAGIC_KEY_LAYER1 1 -//#define MAGIC_KEY_LAYER2 2 -//#define MAGIC_KEY_LAYER3 3 -//#define MAGIC_KEY_LAYER4 4 -//#define MAGIC_KEY_LAYER5 5 -//#define MAGIC_KEY_LAYER6 6 -//#define MAGIC_KEY_LAYER7 7 -//#define MAGIC_KEY_LAYER8 8 -//#define MAGIC_KEY_LAYER9 9 -//#define MAGIC_KEY_BOOTLOADER PAUSE -//#define MAGIC_KEY_LOCK CAPS -//#define MAGIC_KEY_EEPROM E -//#define MAGIC_KEY_NKRO N -//#define MAGIC_KEY_SLEEP_LED Z - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/miniaxe/rules.mk b/keyboards/miniaxe/rules.mk index 03fc910d352..b501d791b18 100644 --- a/keyboards/miniaxe/rules.mk +++ b/keyboards/miniaxe/rules.mk @@ -18,7 +18,6 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = no # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output DEBUG_ENABLE = no diff --git a/keyboards/minimon/index_tab/config.h b/keyboards/minimon/index_tab/config.h new file mode 100644 index 00000000000..fc02185545d --- /dev/null +++ b/keyboards/minimon/index_tab/config.h @@ -0,0 +1,64 @@ +/* +Copyright 2020 Kyrre Havik Eriksen + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 0x4B49 +#define PRODUCT_ID 0x1306 +#define DEVICE_VER 0x0001 +#define PRODUCT Index Tab + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 13 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { D3, B7, B3, B2, B1, B0 } +#define MATRIX_COL_PINS { F7, C7, C6, B6, B5, B4, D7, D6, D4, D5, D2, F1, F0 } +#define UNUSED_PINS { F4, F5, F6, D1, D0 } + + +/* 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 + +#define RGB_DI_PIN E6 +#define RGBLED_NUM 10 +#define RGBLIGHT_SLEEP + +#define RGBLIGHT_EFFECT_BREATHING +#define RGBLIGHT_EFFECT_RAINBOW_MOOD +#define RGBLIGHT_EFFECT_RAINBOW_SWIRL +#define RGBLIGHT_EFFECT_SNAKE +#define RGBLIGHT_EFFECT_KNIGHT +#define RGBLIGHT_EFFECT_CHRISTMAS +#define RGBLIGHT_EFFECT_STATIC_GRADIENT +#define RGBLIGHT_EFFECT_RGB_TEST +#define RGBLIGHT_EFFECT_ALTERNATING +#define RGBLIGHT_EFFECT_TWINKLE diff --git a/keyboards/minimon/index_tab/index_tab.c b/keyboards/minimon/index_tab/index_tab.c new file mode 100644 index 00000000000..a0d8377e972 --- /dev/null +++ b/keyboards/minimon/index_tab/index_tab.c @@ -0,0 +1,14 @@ +/* +Copyright 2020 Kyrre Havik Eriksen +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 "index_tab.h" diff --git a/keyboards/minimon/index_tab/index_tab.h b/keyboards/minimon/index_tab/index_tab.h new file mode 100644 index 00000000000..cb9d3c5ae6b --- /dev/null +++ b/keyboards/minimon/index_tab/index_tab.h @@ -0,0 +1,36 @@ +/* Copyright 2020 Kyrre Havik Eriksen + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0a, K0b, K0c, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1a, K1b, K1c, \ + 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, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4a, K4b, K4c, \ + K50, K51, K52, K53, K54, K55, K56, K57, K58, K59, K5a, K5b, K5c \ +) \ + { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0a, K0b, K0c }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1a, K1b, K1c }, \ + { 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 }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4a, K4b, K4c }, \ + { K50, K51, K52, K53, K54, K55, K56, K57, K58, K59, K5a, K5b, K5c } \ + } diff --git a/keyboards/minimon/index_tab/info.json b/keyboards/minimon/index_tab/info.json new file mode 100644 index 00000000000..21ff5a3cde1 --- /dev/null +++ b/keyboards/minimon/index_tab/info.json @@ -0,0 +1,17 @@ +{ + "keyboard_name": "Index Tab", + "maintainer": "kyrremann", + "url": "https://github.com/Kyrremann/index-tab", + "layouts": { + "LAYOUT_all": { + "layout": [ + {"label":"CAPS", "x":0, "y":0}, {"label":"F1", "x":1, "y":0}, {"label":"F2", "x":2, "y":0}, {"label":"F3", "x":3, "y":0}, {"label":"F4", "x":4, "y":0}, {"label":"F5", "x":5, "y":0}, {"label":"F6", "x":6, "y":0}, {"label":"F7", "x":7, "y":0}, {"label":"F8", "x":8, "y":0}, {"label":"F9", "x":9, "y":0}, {"label":"F10", "x":10, "y":0}, {"label":"F11", "x":11, "y":0}, {"label":"F12", "x":12, "y":0}, + {"label":"<", "x":0, "y":1}, {"label":"1", "x":1, "y":1}, {"label":"2", "x":2, "y":1}, {"label":"3", "x":3, "y":1}, {"label":"4", "x":4, "y":1}, {"label":"5", "x":5, "y":1}, {"label":"6", "x":6, "y":1}, {"label":"7", "x":7, "y":1}, {"label":"8", "x":8, "y":1}, {"label":"9", "x":9, "y":1}, {"label":"0", "x":10, "y":1}, {"label":"+", "x":11, "y":1}, {"label":"\u00b4", "x":12, "y":1}, + {"label":"TAB", "x":0, "y":2}, {"label":"q", "x":1, "y":2}, {"label":"w", "x":2, "y":2}, {"label":"e", "x":3, "y":2}, {"label":"r", "x":4, "y":2}, {"label":"t", "x":5, "y":2}, {"label":"y", "x":6, "y":2}, {"label":"u", "x":7, "y":2}, {"label":"i", "x":8, "y":2}, {"label":"o", "x":9, "y":2}, {"label":"p", "x":10, "y":2}, {"label":"\u00e5", "x":11, "y":2}, {"label":"BKSP", "x":12, "y":2}, + {"label":"CTRL", "x":0, "y":3}, {"label":"a", "x":1, "y":3}, {"label":"s", "x":2, "y":3}, {"label":"d", "x":3, "y":3}, {"label":"f", "x":4, "y":3}, {"label":"g", "x":5, "y":3}, {"label":"h", "x":6, "y":3}, {"label":"j", "x":7, "y":3}, {"label":"k", "x":8, "y":3}, {"label":"l", "x":9, "y":3}, {"label":"\u00f8", "x":10, "y":3}, {"label":"\u00e6", "x":11, "y":3}, {"label":"\u00a8", "x":12, "y":3}, + {"label":"SHIFT", "x":0, "y":4}, {"label":"z", "x":1, "y":4}, {"label":"x", "x":2, "y":4}, {"label":"c", "x":3, "y":4}, {"label":"v", "x":4, "y":4}, {"label":"b", "x":5, "y":4}, {"label":"n", "x":6, "y":4}, {"label":"m", "x":7, "y":4}, {"label":",", "x":8, "y":4}, {"label":".", "x":9, "y":4}, {"label":"-", "x":10, "y":4}, {"label":"\u2191", "x":11, "y":4}, {"label":"\u21b2", "x":12, "y":4}, + {"label":"ESC", "x":0, "y":5}, {"label":"\u00a7", "x":1, "y":5}, {"label":"WIN", "x":2, "y":5}, {"label":"LALT", "x":3, "y":5}, {"x":4, "y":5, "w":2}, {"x":6, "y":5, "w":2}, {"label":"FN", "x":8, "y":5}, {"label":"@", "x":9, "y":5}, {"label":"\u2190", "x":10, "y":5}, {"label":"\u2193", "x":11, "y":5}, {"label":"\u2192", "x":12, "y":5} + ] + } + } +} diff --git a/keyboards/minimon/index_tab/keymaps/default/keymap.c b/keyboards/minimon/index_tab/keymaps/default/keymap.c new file mode 100644 index 00000000000..9f2a3d1320e --- /dev/null +++ b/keyboards/minimon/index_tab/keymaps/default/keymap.c @@ -0,0 +1,44 @@ +/* +Copyright 2020 Kyrre Havik Eriksen +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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( + 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_F12, + KC_NUBS, 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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, 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_RBRC, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_ENT, + KC_ESC, KC_GRV, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, TG(1), KC_BSLS, KC_LEFT, KC_DOWN, KC_RGHT + ), + +[1] = LAYOUT( + KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD,RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_P4, KC_P5, KC_P6, KC_PCMM, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MSTP, KC_VOLD, KC_MUTE, KC_VOLU, KC_MNXT, KC_P1, KC_P2, KC_P3, KC_PEQL, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MPLY, KC_MPLY, KC_MPLY, KC_TRNS, KC_P0, KC_P0, KC_PDOT, KC_PENT + ), + +[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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, 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/minimon/index_tab/keymaps/default/readme.md b/keyboards/minimon/index_tab/keymaps/default/readme.md new file mode 100644 index 00000000000..3633ffcd08d --- /dev/null +++ b/keyboards/minimon/index_tab/keymaps/default/readme.md @@ -0,0 +1,6 @@ +Index Tab default keymap +======================== + +![Index Tab layout image](https://i.imgur.com/BSsNGL9.png) + +[Keyboard layout editor](http://www.keyboard-layout-editor.com/##@@_a:7%3B&=CAPS&=F1&=F2&=F3&=F4&=F5&=F6&=F7&=F8&=F9&=F10&=F11&=F12%3B&@=%3C&=1&=2&=3&=4&=5&=6&=7&=8&=9&=0&=+&=%C2%B4%3B&@=TAB&=q&=w&=e&=r&=t&=y&=u&=i&=o&=p&=%C3%A5&=BKSP%3B&@=CTRL&=a&=s&=d&=f&=g&=h&=j&=k&=l&=%C3%B8&=%C3%A6&=%C2%A8%3B&@=SHIFT&=z&=x&=c&=v&=b&=n&=m&=,&=.&=-&=%E2%86%91&=%E2%86%B2%3B&@=ESC&=%C2%A7&=WIN&=LALT&_w:2%3B&=&_w:2%3B&=&=FN&=%2F@&=%E2%86%90&=%E2%86%93&=%E2%86%92) diff --git a/keyboards/minimon/index_tab/keymaps/via/keymap.c b/keyboards/minimon/index_tab/keymaps/via/keymap.c new file mode 100644 index 00000000000..f6f0e0da1ef --- /dev/null +++ b/keyboards/minimon/index_tab/keymaps/via/keymap.c @@ -0,0 +1,53 @@ +/* +Copyright 2020 Kyrre Havik Eriksen +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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( + 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_F12, + KC_NUBS, 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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, 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_RBRC, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NUHS, KC_SFTENT, + KC_ESC, KC_GRV, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, TG(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), + +[1] = LAYOUT( + KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD,RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSLS, KC_PAST, KC_PMNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MRWD, KC_TRNS, KC_MSTP, KC_TRNS, KC_MFFD, KC_P4, KC_P5, KC_P6, KC_PCMM, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MUTE, KC_VOLU, KC_MNXT, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_TRNS, KC_TRNS, KC_MPLY, KC_TRNS, KC_P0, KC_P0, KC_PDOT, KC_PEQL + ), + +[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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, 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/minimon/index_tab/keymaps/via/rules.mk b/keyboards/minimon/index_tab/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/minimon/index_tab/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/minimon/index_tab/readme.md b/keyboards/minimon/index_tab/readme.md new file mode 100644 index 00000000000..31ad51aa552 --- /dev/null +++ b/keyboards/minimon/index_tab/readme.md @@ -0,0 +1,35 @@ +# Index Tab + +Not just another ortho-keyboard. but one catering to the northern marked with our extra letters. +This is a 13x6 ortho keyboard; giving you enough space for all the numbers, all the F-keys, and our precious extraordinary letters. + +![Picture of the keyboard in the wild](https://raw.githubusercontent.com/Kyrremann/index-tab/master/images/rev5-dsa-vilebloom.JPG) + +Keyboard Maintainer: [Kyrremann](https://github.com/Kyrremann) + +The keyboard files can be found here: https://github.com/Kyrremann/index-tab + + +## Instructions + +To create a hex file for the Index Tab, run: + + make minimon/index_tab:default + +Flash the keyboard with QMK Toolbox or run: + + make minimon/index_tab:default:flash + +How to enter bootloader (DFU): + +Press the reset button on the underside of the board, near the USB port. + +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 the [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + + +## Default layout + +![Index Tab layout image](https://raw.githubusercontent.com/Kyrremann/index-tab/master/images/index-tab.png) + +[Keyboard layout editor](http://www.keyboard-layout-editor.com/#/gists/2577189f7cf19d980fff8177d14dc3ec) diff --git a/keyboards/minimon/index_tab/rules.mk b/keyboards/minimon/index_tab/rules.mk new file mode 100644 index 00000000000..dcc5fd8be86 --- /dev/null +++ b/keyboards/minimon/index_tab/rules.mk @@ -0,0 +1,21 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/minimon/info.json b/keyboards/minimon/info.json new file mode 100644 index 00000000000..6740fa750ff --- /dev/null +++ b/keyboards/minimon/info.json @@ -0,0 +1,4 @@ +{ + "maintainer": "Kyrremann", + "manufacturer": "Minimon" +} diff --git a/keyboards/minimon/readme.md b/keyboards/minimon/readme.md new file mode 100644 index 00000000000..cd020a11108 --- /dev/null +++ b/keyboards/minimon/readme.md @@ -0,0 +1,9 @@ +![Minimon logo](https://i.imgur.com/4SWEH5Kh.png) + +Having fun making keyboards for the northern marked, as we need an extra column for our extended alphabets. + +Maintained by [Kyrremann](https://github.com/Kyrremann). + +## Keyboards + +* [Index Tab](index_tab/) - 13x6 ortho keyboard diff --git a/keyboards/mint60/config.h b/keyboards/mint60/config.h index a21ffc6486b..b421349d868 100644 --- a/keyboards/mint60/config.h +++ b/keyboards/mint60/config.h @@ -95,54 +95,6 @@ along with this program. If not, see . */ //#define FORCE_NKRO -/* - * Magic Key Options - * - * Magic keys are hotkey commands that allow control over firmware functions of - * the keyboard. They are best used in combination with the HID Listen program, - * found here: https://www.pjrc.com/teensy/hid_listen.html - * - * The options below allow the magic key functionality to be changed. This is - * useful if your keyboard/keypad is missing keys and you want magic key support. - * - */ - -/* control how magic key switches layers */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false - -/* override magic key keymap */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM -//#define MAGIC_KEY_HELP1 H -//#define MAGIC_KEY_HELP2 SLASH -//#define MAGIC_KEY_DEBUG D -//#define MAGIC_KEY_DEBUG_MATRIX X -//#define MAGIC_KEY_DEBUG_KBD K -//#define MAGIC_KEY_DEBUG_MOUSE M -//#define MAGIC_KEY_VERSION V -//#define MAGIC_KEY_STATUS S -//#define MAGIC_KEY_CONSOLE C -//#define MAGIC_KEY_LAYER0_ALT1 ESC -//#define MAGIC_KEY_LAYER0_ALT2 GRAVE -//#define MAGIC_KEY_LAYER0 0 -//#define MAGIC_KEY_LAYER1 1 -//#define MAGIC_KEY_LAYER2 2 -//#define MAGIC_KEY_LAYER3 3 -//#define MAGIC_KEY_LAYER4 4 -//#define MAGIC_KEY_LAYER5 5 -//#define MAGIC_KEY_LAYER6 6 -//#define MAGIC_KEY_LAYER7 7 -//#define MAGIC_KEY_LAYER8 8 -//#define MAGIC_KEY_LAYER9 9 -//#define MAGIC_KEY_BOOTLOADER PAUSE -//#define MAGIC_KEY_LOCK CAPS -//#define MAGIC_KEY_EEPROM E -//#define MAGIC_KEY_NKRO N -//#define MAGIC_KEY_SLEEP_LED Z - /* ws2812 RGB LED */ #define RGB_DI_PIN D3 @@ -171,4 +123,3 @@ along with this program. If not, see . //#define NO_ACTION_ONESHOT //#define NO_ACTION_MACRO //#define NO_ACTION_FUNCTION - diff --git a/keyboards/mint60/rules.mk b/keyboards/mint60/rules.mk index cc98a5dd9de..cda78154a60 100644 --- a/keyboards/mint60/rules.mk +++ b/keyboards/mint60/rules.mk @@ -18,7 +18,6 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = no # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output SPLIT_KEYBOARD = yes diff --git a/keyboards/mitosis/rules.mk b/keyboards/mitosis/rules.mk index 02c042a4e42..c989d6d52ec 100644 --- a/keyboards/mitosis/rules.mk +++ b/keyboards/mitosis/rules.mk @@ -17,7 +17,6 @@ CUSTOM_MATRIX = yes # Remote matrix from the wireless bridge # SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend NKRO_ENABLE = yes # USB Nkey Rollover - not yet supported in LUFA # BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = yes # Unicode # # project specific files diff --git a/keyboards/miuni32/config.h b/keyboards/miuni32/config.h index c2a40cf1baa..d2b98a92841 100644 --- a/keyboards/miuni32/config.h +++ b/keyboards/miuni32/config.h @@ -86,54 +86,6 @@ along with this program. If not, see . */ //#define FORCE_NKRO -/* - * Magic Key Options - * - * Magic keys are hotkey commands that allow control over firmware functions of - * the keyboard. They are best used in combination with the HID Listen program, - * found here: https://www.pjrc.com/teensy/hid_listen.html - * - * The options below allow the magic key functionality to be changed. This is - * useful if your keyboard/keypad is missing keys and you want magic key support. - * - */ - -/* control how magic key switches layers */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false - -/* override magic key keymap */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM -//#define MAGIC_KEY_HELP1 H -//#define MAGIC_KEY_HELP2 SLASH -//#define MAGIC_KEY_DEBUG D -//#define MAGIC_KEY_DEBUG_MATRIX X -//#define MAGIC_KEY_DEBUG_KBD K -//#define MAGIC_KEY_DEBUG_MOUSE M -//#define MAGIC_KEY_VERSION V -//#define MAGIC_KEY_STATUS S -//#define MAGIC_KEY_CONSOLE C -//#define MAGIC_KEY_LAYER0_ALT1 ESC -//#define MAGIC_KEY_LAYER0_ALT2 GRAVE -//#define MAGIC_KEY_LAYER0 0 -//#define MAGIC_KEY_LAYER1 1 -//#define MAGIC_KEY_LAYER2 2 -//#define MAGIC_KEY_LAYER3 3 -//#define MAGIC_KEY_LAYER4 4 -//#define MAGIC_KEY_LAYER5 5 -//#define MAGIC_KEY_LAYER6 6 -//#define MAGIC_KEY_LAYER7 7 -//#define MAGIC_KEY_LAYER8 8 -//#define MAGIC_KEY_LAYER9 9 -//#define MAGIC_KEY_BOOTLOADER PAUSE -//#define MAGIC_KEY_LOCK CAPS -//#define MAGIC_KEY_EEPROM E -//#define MAGIC_KEY_NKRO N -//#define MAGIC_KEY_SLEEP_LED Z - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/miuni32/rules.mk b/keyboards/miuni32/rules.mk index a4b3bef7b1e..a8a8ce7af8f 100644 --- a/keyboards/miuni32/rules.mk +++ b/keyboards/miuni32/rules.mk @@ -17,6 +17,5 @@ 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 -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output RGBLIGHT_ENABLE = yes diff --git a/keyboards/mode/m65s/info.json b/keyboards/mode/m65s/info.json new file mode 100644 index 00000000000..cb0cf8c12cd --- /dev/null +++ b/keyboards/mode/m65s/info.json @@ -0,0 +1,85 @@ +{ + "keyboard_name": "Mode SixtyFive S", + "url": "", + "maintainer": "Gondolindrim", + "layouts": { + "LAYOUT_all": { + "layout": [ + { "label": "K00", "x": 0, "y": 0 }, + { "label": "K01", "x": 1, "y": 0 }, + { "label": "K02", "x": 2, "y": 0 }, + { "label": "K03", "x": 3, "y": 0 }, + { "label": "K04", "x": 4, "y": 0 }, + { "label": "K05", "x": 5, "y": 0 }, + { "label": "K06", "x": 6, "y": 0 }, + { "label": "K07", "x": 7, "y": 0 }, + { "label": "K08", "x": 8, "y": 0 }, + { "label": "K09", "x": 9, "y": 0 }, + { "label": "K0A", "x": 10, "y": 0 }, + { "label": "K0B", "x": 11, "y": 0 }, + { "label": "K0C", "x": 12, "y": 0 }, + { "label": "K0D", "x": 13, "y": 0 }, + { "label": "K0E", "x": 14, "y": 0 }, + { "label": "K0F", "x": 15, "y": 0 }, + + { "label": "K10", "x": 0, "y": 1, "w": 1.5 }, + { "label": "K11", "x": 1.5, "y": 1 }, + { "label": "K12", "x": 2.5, "y": 1 }, + { "label": "K13", "x": 3.5, "y": 1 }, + { "label": "K14", "x": 4.5, "y": 1 }, + { "label": "K15", "x": 5.5, "y": 1 }, + { "label": "K16", "x": 6.5, "y": 1 }, + { "label": "K17", "x": 7.5, "y": 1 }, + { "label": "K18", "x": 8.5, "y": 1 }, + { "label": "K19", "x": 9.5, "y": 1 }, + { "label": "K1A", "x": 10.5, "y": 1 }, + { "label": "K1B", "x": 11.5, "y": 1 }, + { "label": "K1C", "x": 12.5, "y": 1 }, + { "label": "K1E", "x": 13.5, "y": 1, "w": 1.5}, + { "label": "K1F", "x": 15, "y": 1 }, + + { "label": "K20", "x": 0, "y": 2, "w": 1.75 }, + { "label": "K21", "x": 1.75, "y": 2 }, + { "label": "K22", "x": 2.75, "y": 2 }, + { "label": "K23", "x": 3.75, "y": 2 }, + { "label": "K24", "x": 4.75, "y": 2 }, + { "label": "K25", "x": 5.75, "y": 2 }, + { "label": "K26", "x": 6.75, "y": 2 }, + { "label": "K27", "x": 7.75, "y": 2 }, + { "label": "K28", "x": 8.75, "y": 2 }, + { "label": "K29", "x": 9.75, "y": 2 }, + { "label": "K2A", "x": 10.75, "y": 2 }, + { "label": "K2B", "x": 11.75, "y": 2 }, + { "label": "K2D", "x": 12.75, "y": 2 }, + { "label": "K2E", "x": 13.75, "y": 2, "w": 1.25 }, + { "label": "K2F", "x": 15, "y": 2 }, + + { "label": "K30", "x": 0, "y": 3, "w": 1.25 }, + { "label": "K31", "x": 1.25, "y": 3 }, + { "label": "K32", "x": 2.25, "y": 3 }, + { "label": "K33", "x": 3.25, "y": 3 }, + { "label": "K34", "x": 4.25, "y": 3 }, + { "label": "K35", "x": 5.25, "y": 3 }, + { "label": "K36", "x": 6.25, "y": 3 }, + { "label": "K37", "x": 7.25, "y": 3 }, + { "label": "K38", "x": 8.25, "y": 3 }, + { "label": "K39", "x": 9.25, "y": 3 }, + { "label": "K3A", "x": 10.25, "y": 3 }, + { "label": "K3B", "x": 11.25, "y": 3 }, + { "label": "K3C", "x": 12.25, "y": 3, "w": 1.75 }, + { "label": "K3E", "x": 14, "y": 3 }, + { "label": "K3F", "x": 15, "y": 3 }, + + { "label": "K40", "x": 0, "y": 4, "w": 1.25 }, + { "label": "K41", "x": 1.25, "y": 4, "w": 1.25 }, + { "label": "K42", "x": 2.5, "y": 4, "w": 1.25 }, + { "label": "K56", "x": 3.75, "y": 4, "w": 6.25 }, + { "label": "K5A", "x": 10, "y": 4, "w": 1.25 }, + { "label": "K5B", "x": 11.25, "y": 4, "w": 1.25 }, + { "label": "K5D", "x": 13, "y": 4 }, + { "label": "K5E", "x": 14, "y": 4 }, + { "label": "K5F", "x": 15, "y": 4 } + ] + } + } +} diff --git a/keyboards/mode/m65s/README.md b/keyboards/mode/m65s/readme.md similarity index 65% rename from keyboards/mode/m65s/README.md rename to keyboards/mode/m65s/readme.md index 2fa0ed1681f..92e0b8421ec 100644 --- a/keyboards/mode/m65s/README.md +++ b/keyboards/mode/m65s/readme.md @@ -1,12 +1,12 @@ # Mode SixtyFive M65S -![MODE65](https://raw.githubusercontent.com/Gondolindrim/file_hosting/main/mode_sixtyfive/Group_95_1024x1024.jpg)\ +![MODE65](https://raw.githubusercontent.com/Gondolindrim/file_hosting/main/mode_sixtyfive/Group_95_1024x1024.jpg) -The M65S is the sodlerable PCB for the Mode SixtyFive keyboard, s sixty-five-percent high-end keyboard sold by [Mode Designs](https://shop.modedesigns.com/). +The M65S is the solderable PCB for the Mode SixtyFive keyboard, a sixty-five-percent high-end keyboard sold by [Mode Designs](https://shop.modedesigns.com/). -* Keyboard Maintainer: [Gondolindrim](https://github.com/gondolindrim) +* Keyboard Maintainer: [Gondolindrim](https://github.com/Gondolindrim) * Hardware Supported: proprietary PCB using STM32F401RBT6 controller -* Hardware Availability: you can get a Mode SixtyFive as of today (august. 2021) through the in stock sales or special groupbuy editions at https://shop.modedesigns.com/ +* Hardware Availability: you can get a Mode SixtyFive as of today (August 2021) through the in-stock sales or special group buy editions at [Mode Designs](https://shop.modedesigns.com/) Make example for this keyboard (after setting up your build environment): diff --git a/keyboards/mokey/README.md b/keyboards/mokey/README.md index 3a878ea8ee9..f66e1ed71af 100644 --- a/keyboards/mokey/README.md +++ b/keyboards/mokey/README.md @@ -2,6 +2,6 @@ This is a series of PCB * Mokey63 multi-column,The chip is ATmega32U4 -* Mokey64 The chip is STM32F401 +* Mokey64 The chip is ATmega32U4 diff --git a/keyboards/mokey/ginkgo65/config.h b/keyboards/mokey/ginkgo65/config.h new file mode 100644 index 00000000000..36609892678 --- /dev/null +++ b/keyboards/mokey/ginkgo65/config.h @@ -0,0 +1,41 @@ +/* +Copyright 2021 Kyle McCreery +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 0x6653 +#define PRODUCT_ID 0x3365 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Mokey +#define PRODUCT ginkgo 65 + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 16 + /* 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ +#define MATRIX_ROW_PINS { F7, B7, F5, F1, B0 } +#define MATRIX_COL_PINS { C7, F6, B2, F4, B3, E6, D0, D1, D2, D3, D5, D4, D6, D7, B4, B1 } +#define UNUSED_PINS +#define DIODE_DIRECTION COL2ROW + +#define BACKLIGHT_PIN B6 +#define BACKLIGHT_LEVELS 6 +#define BACKLIGHT_CAPS_LOCK +#define BACKLIGHT_BREATHING +#define BREATHING_PERIOD 5 + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 diff --git a/keyboards/mokey/ginkgo65/ginkgo65.c b/keyboards/mokey/ginkgo65/ginkgo65.c new file mode 100644 index 00000000000..4ab3aae51f1 --- /dev/null +++ b/keyboards/mokey/ginkgo65/ginkgo65.c @@ -0,0 +1,16 @@ +/* Copyright 2021 Ocean + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 "ginkgo65.h" + diff --git a/keyboards/mokey/ginkgo65/ginkgo65.h b/keyboards/mokey/ginkgo65/ginkgo65.h new file mode 100644 index 00000000000..72342f08bb2 --- /dev/null +++ b/keyboards/mokey/ginkgo65/ginkgo65.h @@ -0,0 +1,188 @@ +/* Copyright 2021 Ocean + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 + +/*LAYOUT + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ + * │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 │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 │k49 │k4A │ │k4C│k4D│k4E│ + * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 +*/ +#define LAYOUT( \ + 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, 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, k49, k4A, k4C, k4D, k4E \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, XXX, k0F }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, XXX }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, XXX, k2D, k2E, XXX }, \ + { k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, XXX }, \ + { k40, k41, k42, XXX, k44, XXX, XXX, XXX, XXX, k49, k4A, XXX, k4C, k4D, k4E, XXX }, \ +} + +/*LAYOUT_iso + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │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│ K2D │k1E│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ ├───┤ + * │ k20 │k21│k22│k23│k24│k25│k26│k27│k28│k29│k2A│k2B│k1D│ │k2E│ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┼───┤ + * │ k30 │k32│k33│k34│k35│k36│k37│k38│k39│k3A│k3B│ k3C │k3D│k3E│ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ + * │k40 │k41 │k42 │ k44 │k49 │k4A │ │k4C│k4D│k4E│ + * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 +*/ +#define LAYOUT_iso( \ + 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, k2D, k1E, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k1D, k2E, \ + k30, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, \ + k40, k41, k42, k44, k49, k4A, k4C, k4D, k4E \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k2D, k1E, XXX }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, XXX, k2D, k2E, XXX }, \ + { k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, XXX }, \ + { k40, k41, k42, XXX, k44, XXX, XXX, XXX, XXX, k49, k4A, XXX, k4C, k4D, k4E, XXX }, \ +} + +/*LAYOUT_split_left_shift + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │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│ K2D │k1E│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ ├───┤ + * │ k20 │k21│k22│k23│k24│k25│k26│k27│k28│k29│k2A│k2B│k1D│ │k2E│ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┼───┤ + * │k30 │k31│k32│k33│k34│k35│k36│k37│k38│k39│k3A│k3B│ k3C │k3D│k3E│ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ + * │k40 │k41 │k42 │ k44 │k49 │k4A │ │k4C│k4D│k4E│ + * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 +*/ +#define LAYOUT_split_left_shift( \ + 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, k2D, k1E, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k1D, k2E, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, \ + k40, k41, k42, k44, k49, k4A, k4C, k4D, k4E \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k2D, k1E, XXX, }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, XXX, k2D, k2E, XXX }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, XXX }, \ + { k40, k41, k42, XXX, k44, XXX, XXX, XXX, XXX, k49, k4A, XXX, k4C, k4D, k4E, XXX }, \ +} + +/*LAYOUT_7u_space + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │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│ K2D │k1E│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ ├───┤ + * │ k20 │k21│k22│k23│k24│k25│k26│k27│k28│k29│k2A│k2B│k1D│ │k2E│ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┼───┤ + * │k30 │k31│k32│k33│k34│k35│k36│k37│k38│k39│k3A│k3B│ k3C │k3D│k3E│ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬─┬───┼───┼───┤ + * │k40 │k41 │k42 │ k44 │k4A │ │k4C│k4D│k4E│ + * └────┴────┴────┴────────────────────────────┴─────┘ └───┴───┴───┘ + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 +*/ +#define LAYOUT_7u_space( \ + 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, k2D, k1E, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k1D, k2E, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, \ + k40, k41, k42, k44, k4A, k4C, k4D, k4E \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k2D, k1E, XXX, }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, XXX, k2D, k2E, XXX }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, XXX }, \ + { k40, k41, k42, XXX, k44, XXX, XXX, XXX, XXX, XXX, k4A, XXX, k4C, k4D, k4E, XXX }, \ +} + +/*LAYOUT_split_space_1 + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │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│ K2D │k1E│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ ├───┤ + * │ k20 │k21│k22│k23│k24│k25│k26│k27│k28│k29│k2A│k2B│k1D│ │k2E│ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┼───┤ + * │k30 │k31│k32│k33│k34│k35│k36│k37│k38│k39│k3A│k3B│ k3C │k3D│k3E│ + * ├────┼───┴┬──┴─┬─┴───┴───┴┬──┴─┬─┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ + * │k40 │k41 │k42 │k43 │K44 │ K46 │K49 │k4A │ │k4C│k4D│k4E│ + * └────┴────┴────┴──────────┴────┴────────┴────┴────┘ └───┴───┴───┘ + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 +*/ +#define LAYOUT_split_space_1( \ + 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, k2D, k1E, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k1D, k2E, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, \ + k40, k41, k42, K43, k44, K46, K49, k4A, k4C, k4D, k4E \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k2D, k1E, XXX, }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, XXX, k2D, k2E, XXX }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, XXX }, \ + { k40, k41, k42, K43, k44, XXX, K46, XXX, XXX, XXX, k4A, XXX, k4C, k4D, k4E, XXX }, \ +} + +/*LAYOUT_split_space_2 + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │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│ K2D │k1E│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ ├───┤ + * │ k20 │k21│k22│k23│k24│k25│k26│k27│k28│k29│k2A│k2B│k1D│ │k2E│ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┼───┤ + * │k30 │k31│k32│k33│k34│k35│k36│k37│k38│k39│k3A│k3B│ k3C │k3D│k3E│ + * ├────┼───┴┬──┴─┬─┴───┴──┬┴───┼───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ + * │k40 │k41 │k42 │k43 │K44 │ K46 │K49 │k4A │ │k4C│k4D│k4E│ + * └────┴────┴────┴────────┴────┴──────────┴────┴────┘ └───┴───┴───┘ + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 +*/ +#define LAYOUT_split_space_2( \ + 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, k2D, k1E, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k1D, k2E, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, \ + k40, k41, k42, K43, k44, K46, K49, k4A, k4C, k4D, k4E \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k2D, k1E, XXX, }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, XXX, k2D, k2E, XXX }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, XXX }, \ + { k40, k41, k42, K43, k44, XXX, K46, XXX, XXX, XXX, k4A, XXX, k4C, k4D, k4E, XXX }, \ +} diff --git a/keyboards/mokey/ginkgo65/info.json b/keyboards/mokey/ginkgo65/info.json new file mode 100644 index 00000000000..116b3e057aa --- /dev/null +++ b/keyboards/mokey/ginkgo65/info.json @@ -0,0 +1,469 @@ +{ + "keyboard_name": "ginkgo65", + "url": "", + "maintainer": "mokey", + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"k00", "x":0, "y":0}, + {"label":"k01", "x":1, "y":0}, + {"label":"k02", "x":2, "y":0}, + {"label":"k03", "x":3, "y":0}, + {"label":"k04", "x":4, "y":0}, + {"label":"k05", "x":5, "y":0}, + {"label":"k06", "x":6, "y":0}, + {"label":"k07", "x":7, "y":0}, + {"label":"k08", "x":8, "y":0}, + {"label":"k09", "x":9, "y":0}, + {"label":"k0a", "x":10, "y":0}, + {"label":"k0b", "x":11, "y":0}, + {"label":"k0c", "x":12, "y":0}, + {"label":"k0e", "x":13, "y":0, "w":2}, + {"label":"k0f", "x":15, "y":0}, + + {"label":"k10", "x":0, "y":1, "w":1.5}, + {"label":"k11", "x":1.5, "y":1}, + {"label":"k12", "x":2.5, "y":1}, + {"label":"k13", "x":3.5, "y":1}, + {"label":"k14", "x":4.5, "y":1}, + {"label":"k15", "x":5.5, "y":1}, + {"label":"k16", "x":6.5, "y":1}, + {"label":"k17", "x":7.5, "y":1}, + {"label":"k18", "x":8.5, "y":1}, + {"label":"k19", "x":9.5, "y":1}, + {"label":"k1a", "x":10.5, "y":1}, + {"label":"k1b", "x":11.5, "y":1}, + {"label":"k1c", "x":12.5, "y":1}, + {"label":"k1d", "x":13.5, "y":1, "w":1.5}, + {"label":"k1e", "x":15, "y":1,}, + + {"label":"k20", "x":0, "y":2, "w":1.75}, + {"label":"k21", "x":1.75, "y":2}, + {"label":"k22", "x":2.75, "y":2}, + {"label":"k23", "x":3.75, "y":2}, + {"label":"k24", "x":4.75, "y":2}, + {"label":"k25", "x":5.75, "y":2}, + {"label":"k26", "x":6.75, "y":2}, + {"label":"k27", "x":7.75, "y":2}, + {"label":"k28", "x":8.75, "y":2}, + {"label":"k29", "x":9.75, "y":2}, + {"label":"k2a", "x":10.75, "y":2}, + {"label":"k2b", "x":11.75, "y":2}, + {"label":"k2d", "x":12.75, "y":2, "w":2.25}, + {"label":"k2e", "x":15, "y":2}, + + {"label":"k30", "x":0, "y":3, "w":2.25}, + {"label":"k32", "x":2.25, "y":3}, + {"label":"k33", "x":3.25, "y":3}, + {"label":"k34", "x":4.25, "y":3}, + {"label":"k35", "x":5.25, "y":3}, + {"label":"k36", "x":6.25, "y":3}, + {"label":"k37", "x":7.25, "y":3}, + {"label":"k38", "x":8.25, "y":3}, + {"label":"k39", "x":9.25, "y":3}, + {"label":"k3a", "x":10.25, "y":3}, + {"label":"k3b", "x":11.25, "y":3}, + {"label":"k3c", "x":12.25, "y":3, "w":1.75}, + {"label":"k3d", "x":14, "y":3}, + {"label":"k3e", "x":15, "y":3}, + + {"label":"k40", "x":0, "y":4, "w":1.25}, + {"label":"k41", "x":1.25, "y":4, "w":1.25}, + {"label":"k42", "x":2.5, "y":4, "w":1.25}, + {"label":"k44", "x":3.75, "y":4, "w":6.25}, + {"label":"k49", "x":10, "y":4, "w":1.25}, + {"label":"k4a", "x":11.25, "y":4, "w":1.25}, + {"label":"k4c", "x":13, "y":4}, + {"label":"k4d", "x":14, "y":4}, + {"label":"k4e", "x":15, "y":4} + ] + }, + "LAYOUT_iso":{ + "layout": [ + {"label":"k00", "x":0, "y":0}, + {"label":"k01", "x":1, "y":0}, + {"label":"k02", "x":2, "y":0}, + {"label":"k03", "x":3, "y":0}, + {"label":"k04", "x":4, "y":0}, + {"label":"k05", "x":5, "y":0}, + {"label":"k06", "x":6, "y":0}, + {"label":"k07", "x":7, "y":0}, + {"label":"k08", "x":8, "y":0}, + {"label":"k09", "x":9, "y":0}, + {"label":"k0a", "x":10, "y":0}, + {"label":"k0b", "x":11, "y":0}, + {"label":"k0c", "x":12, "y":0}, + {"label":"k0d", "x":13, "y":0}, + {"label":"k0e", "x":14, "y":0}, + {"label":"k0f", "x":15, "y":0}, + + {"label":"k10", "x":0, "y":1, "w":1.5}, + {"label":"k11", "x":1.5, "y":1}, + {"label":"k12", "x":2.5, "y":1}, + {"label":"k13", "x":3.5, "y":1}, + {"label":"k14", "x":4.5, "y":1}, + {"label":"k15", "x":5.5, "y":1}, + {"label":"k16", "x":6.5, "y":1}, + {"label":"k17", "x":7.5, "y":1}, + {"label":"k18", "x":8.5, "y":1}, + {"label":"k19", "x":9.5, "y":1}, + {"label":"k1a", "x":10.5, "y":1}, + {"label":"k1b", "x":11.5, "y":1}, + {"label":"k1c", "x":12.5, "y":1}, + {"label":"k2d", "x":13.75, "y":1, "w":1.25}, + {"label":"k1e", "x":15, "y":1,}, + + {"label":"k20", "x":0, "y":2, "w":1.75}, + {"label":"k21", "x":1.75, "y":2}, + {"label":"k22", "x":2.75, "y":2}, + {"label":"k23", "x":3.75, "y":2}, + {"label":"k24", "x":4.75, "y":2}, + {"label":"k25", "x":5.75, "y":2}, + {"label":"k26", "x":6.75, "y":2}, + {"label":"k27", "x":7.75, "y":2}, + {"label":"k28", "x":8.75, "y":2}, + {"label":"k29", "x":9.75, "y":2}, + {"label":"k2a", "x":10.75, "y":2}, + {"label":"k2b", "x":11.75, "y":2}, + {"label":"k1d", "x":12.75, "y":2}, + {"label":"k2e", "x":15, "y":2}, + + {"label":"k30", "x":0, "y":3, "w":2.25}, + {"label":"k32", "x":2.25, "y":3}, + {"label":"k33", "x":3.25, "y":3}, + {"label":"k34", "x":4.25, "y":3}, + {"label":"k35", "x":5.25, "y":3}, + {"label":"k36", "x":6.25, "y":3}, + {"label":"k37", "x":7.25, "y":3}, + {"label":"k38", "x":8.25, "y":3}, + {"label":"k39", "x":9.25, "y":3}, + {"label":"k3a", "x":10.25, "y":3}, + {"label":"k3b", "x":11.25, "y":3}, + {"label":"k3c", "x":12.25, "y":3, "w":1.75}, + {"label":"k3d", "x":14, "y":3}, + {"label":"k3e", "x":15, "y":3}, + + {"label":"k40", "x":0, "y":4, "w":1.25}, + {"label":"k41", "x":1.25, "y":4, "w":1.25}, + {"label":"k42", "x":2.5, "y":4, "w":1.25}, + {"label":"k44", "x":3.75, "y":4, "w":6.25}, + {"label":"k49", "x":10, "y":4, "w":1.25}, + {"label":"k4a", "x":11.25, "y":4, "w":1.25}, + {"label":"k4c", "x":13, "y":4}, + {"label":"k4d", "x":14, "y":4}, + {"label":"k4e", "x":15, "y":4} + ] + }, + "LAYOUT_split_left_shift":{ + "layout": [ + {"label":"k00", "x":0, "y":0}, + {"label":"k01", "x":1, "y":0}, + {"label":"k02", "x":2, "y":0}, + {"label":"k03", "x":3, "y":0}, + {"label":"k04", "x":4, "y":0}, + {"label":"k05", "x":5, "y":0}, + {"label":"k06", "x":6, "y":0}, + {"label":"k07", "x":7, "y":0}, + {"label":"k08", "x":8, "y":0}, + {"label":"k09", "x":9, "y":0}, + {"label":"k0a", "x":10, "y":0}, + {"label":"k0b", "x":11, "y":0}, + {"label":"k0c", "x":12, "y":0}, + {"label":"k0d", "x":13, "y":0}, + {"label":"k0e", "x":14, "y":0}, + {"label":"k0f", "x":15, "y":0}, + + {"label":"k10", "x":0, "y":1, "w":1.5}, + {"label":"k11", "x":1.5, "y":1}, + {"label":"k12", "x":2.5, "y":1}, + {"label":"k13", "x":3.5, "y":1}, + {"label":"k14", "x":4.5, "y":1}, + {"label":"k15", "x":5.5, "y":1}, + {"label":"k16", "x":6.5, "y":1}, + {"label":"k17", "x":7.5, "y":1}, + {"label":"k18", "x":8.5, "y":1}, + {"label":"k19", "x":9.5, "y":1}, + {"label":"k1a", "x":10.5, "y":1}, + {"label":"k1b", "x":11.5, "y":1}, + {"label":"k1c", "x":12.5, "y":1}, + {"label":"k2d", "x":13.75, "y":1, "w":1.25}, + {"label":"k1e", "x":15, "y":1,}, + + {"label":"k20", "x":0, "y":2, "w":1.75}, + {"label":"k21", "x":1.75, "y":2}, + {"label":"k22", "x":2.75, "y":2}, + {"label":"k23", "x":3.75, "y":2}, + {"label":"k24", "x":4.75, "y":2}, + {"label":"k25", "x":5.75, "y":2}, + {"label":"k26", "x":6.75, "y":2}, + {"label":"k27", "x":7.75, "y":2}, + {"label":"k28", "x":8.75, "y":2}, + {"label":"k29", "x":9.75, "y":2}, + {"label":"k2a", "x":10.75, "y":2}, + {"label":"k2b", "x":11.75, "y":2}, + {"label":"k1d", "x":12.75, "y":2}, + {"label":"k2e", "x":15, "y":2}, + + {"label":"k30", "x":0, "y":3, "w":1.25}, + {"label":"k31", "x":1.25, "y":3}, + {"label":"k32", "x":2.25, "y":3}, + {"label":"k33", "x":3.25, "y":3}, + {"label":"k34", "x":4.25, "y":3}, + {"label":"k35", "x":5.25, "y":3}, + {"label":"k36", "x":6.25, "y":3}, + {"label":"k37", "x":7.25, "y":3}, + {"label":"k38", "x":8.25, "y":3}, + {"label":"k39", "x":9.25, "y":3}, + {"label":"k3a", "x":10.25, "y":3}, + {"label":"k3b", "x":11.25, "y":3}, + {"label":"k3c", "x":12.25, "y":3, "w":1.75}, + {"label":"k3d", "x":14, "y":3}, + {"label":"k3e", "x":15, "y":3}, + + {"label":"k40", "x":0, "y":4, "w":1.25}, + {"label":"k41", "x":1.25, "y":4, "w":1.25}, + {"label":"k42", "x":2.5, "y":4, "w":1.25}, + {"label":"k44", "x":3.75, "y":4, "w":6.25}, + {"label":"k49", "x":10, "y":4, "w":1.25}, + {"label":"k4a", "x":11.25, "y":4, "w":1.25}, + {"label":"k4c", "x":13, "y":4}, + {"label":"k4d", "x":14, "y":4}, + {"label":"k4e", "x":15, "y":4} + ] + }, + "LAYOUT_7u_space":{ + "layout": [ + {"label":"k00", "x":0, "y":0}, + {"label":"k01", "x":1, "y":0}, + {"label":"k02", "x":2, "y":0}, + {"label":"k03", "x":3, "y":0}, + {"label":"k04", "x":4, "y":0}, + {"label":"k05", "x":5, "y":0}, + {"label":"k06", "x":6, "y":0}, + {"label":"k07", "x":7, "y":0}, + {"label":"k08", "x":8, "y":0}, + {"label":"k09", "x":9, "y":0}, + {"label":"k0a", "x":10, "y":0}, + {"label":"k0b", "x":11, "y":0}, + {"label":"k0c", "x":12, "y":0}, + {"label":"k0d", "x":13, "y":0}, + {"label":"k0e", "x":14, "y":0}, + {"label":"k0f", "x":15, "y":0}, + + {"label":"k10", "x":0, "y":1, "w":1.5}, + {"label":"k11", "x":1.5, "y":1}, + {"label":"k12", "x":2.5, "y":1}, + {"label":"k13", "x":3.5, "y":1}, + {"label":"k14", "x":4.5, "y":1}, + {"label":"k15", "x":5.5, "y":1}, + {"label":"k16", "x":6.5, "y":1}, + {"label":"k17", "x":7.5, "y":1}, + {"label":"k18", "x":8.5, "y":1}, + {"label":"k19", "x":9.5, "y":1}, + {"label":"k1a", "x":10.5, "y":1}, + {"label":"k1b", "x":11.5, "y":1}, + {"label":"k1c", "x":12.5, "y":1}, + {"label":"k2d", "x":13.75, "y":1, "w":1.25}, + {"label":"k1e", "x":15, "y":1,}, + + {"label":"k20", "x":0, "y":2, "w":1.75}, + {"label":"k21", "x":1.75, "y":2}, + {"label":"k22", "x":2.75, "y":2}, + {"label":"k23", "x":3.75, "y":2}, + {"label":"k24", "x":4.75, "y":2}, + {"label":"k25", "x":5.75, "y":2}, + {"label":"k26", "x":6.75, "y":2}, + {"label":"k27", "x":7.75, "y":2}, + {"label":"k28", "x":8.75, "y":2}, + {"label":"k29", "x":9.75, "y":2}, + {"label":"k2a", "x":10.75, "y":2}, + {"label":"k2b", "x":11.75, "y":2}, + {"label":"k1d", "x":12.75, "y":2}, + {"label":"k2e", "x":15, "y":2}, + + {"label":"k30", "x":0, "y":3, "w":1.25}, + {"label":"k31", "x":1.25, "y":3}, + {"label":"k32", "x":2.25, "y":3}, + {"label":"k33", "x":3.25, "y":3}, + {"label":"k34", "x":4.25, "y":3}, + {"label":"k35", "x":5.25, "y":3}, + {"label":"k36", "x":6.25, "y":3}, + {"label":"k37", "x":7.25, "y":3}, + {"label":"k38", "x":8.25, "y":3}, + {"label":"k39", "x":9.25, "y":3}, + {"label":"k3a", "x":10.25, "y":3}, + {"label":"k3b", "x":11.25, "y":3}, + {"label":"k3c", "x":12.25, "y":3, "w":1.75}, + {"label":"k3d", "x":14, "y":3}, + {"label":"k3e", "x":15, "y":3}, + + {"label":"k40", "x":0, "y":4, "w":1.5}, + {"label":"k41", "x":1.5, "y":4,}, + {"label":"k42", "x":2.5, "y":4, "w":1.5}, + {"label":"k44", "x":4, "y":4, "w":7}, + {"label":"k49", "x":11, "y":4, "w":1.5}, + {"label":"k4c", "x":13, "y":4}, + {"label":"k4d", "x":14, "y":4}, + {"label":"k4e", "x":15, "y":4} + ] + }, + "LAYOUT_split_space_1":{ + "layout": [ + {"label":"k00", "x":0, "y":0}, + {"label":"k01", "x":1, "y":0}, + {"label":"k02", "x":2, "y":0}, + {"label":"k03", "x":3, "y":0}, + {"label":"k04", "x":4, "y":0}, + {"label":"k05", "x":5, "y":0}, + {"label":"k06", "x":6, "y":0}, + {"label":"k07", "x":7, "y":0}, + {"label":"k08", "x":8, "y":0}, + {"label":"k09", "x":9, "y":0}, + {"label":"k0a", "x":10, "y":0}, + {"label":"k0b", "x":11, "y":0}, + {"label":"k0c", "x":12, "y":0}, + {"label":"k0d", "x":13, "y":0}, + {"label":"k0e", "x":14, "y":0}, + {"label":"k0f", "x":15, "y":0}, + + {"label":"k10", "x":0, "y":1, "w":1.5}, + {"label":"k11", "x":1.5, "y":1}, + {"label":"k12", "x":2.5, "y":1}, + {"label":"k13", "x":3.5, "y":1}, + {"label":"k14", "x":4.5, "y":1}, + {"label":"k15", "x":5.5, "y":1}, + {"label":"k16", "x":6.5, "y":1}, + {"label":"k17", "x":7.5, "y":1}, + {"label":"k18", "x":8.5, "y":1}, + {"label":"k19", "x":9.5, "y":1}, + {"label":"k1a", "x":10.5, "y":1}, + {"label":"k1b", "x":11.5, "y":1}, + {"label":"k1c", "x":12.5, "y":1}, + {"label":"k2d", "x":13.75, "y":1, "w":1.25}, + {"label":"k1e", "x":15, "y":1,}, + + {"label":"k20", "x":0, "y":2, "w":1.75}, + {"label":"k21", "x":1.75, "y":2}, + {"label":"k22", "x":2.75, "y":2}, + {"label":"k23", "x":3.75, "y":2}, + {"label":"k24", "x":4.75, "y":2}, + {"label":"k25", "x":5.75, "y":2}, + {"label":"k26", "x":6.75, "y":2}, + {"label":"k27", "x":7.75, "y":2}, + {"label":"k28", "x":8.75, "y":2}, + {"label":"k29", "x":9.75, "y":2}, + {"label":"k2a", "x":10.75, "y":2}, + {"label":"k2b", "x":11.75, "y":2}, + {"label":"k1d", "x":12.75, "y":2}, + {"label":"k2e", "x":15, "y":2}, + + {"label":"k30", "x":0, "y":3, "w":1.25}, + {"label":"k31", "x":1.25, "y":3}, + {"label":"k32", "x":2.25, "y":3}, + {"label":"k33", "x":3.25, "y":3}, + {"label":"k34", "x":4.25, "y":3}, + {"label":"k35", "x":5.25, "y":3}, + {"label":"k36", "x":6.25, "y":3}, + {"label":"k37", "x":7.25, "y":3}, + {"label":"k38", "x":8.25, "y":3}, + {"label":"k39", "x":9.25, "y":3}, + {"label":"k3a", "x":10.25, "y":3}, + {"label":"k3b", "x":11.25, "y":3}, + {"label":"k3c", "x":12.25, "y":3, "w":1.75}, + {"label":"k3d", "x":14, "y":3}, + {"label":"k3e", "x":15, "y":3}, + + {"label":"k40", "x":0, "y":4, "w":1.25}, + {"label":"k41", "x":1.25, "y":4, "w":1.25}, + {"label":"k42", "x":2.5, "y":4, "w":1.25}, + {"label":"k43", "x":3.75, "y":4, "w":2.75}, + {"label":"k44", "x":6.5, "y":4, "w":1.25}, + {"label":"k46", "x":7.75, "y":4, "w":2.25}, + {"label":"k49", "x":10, "y":4, "w":1.25}, + {"label":"k4a", "x":11.25, "y":4, "w":1.25}, + {"label":"k4c", "x":13, "y":4}, + {"label":"k4d", "x":14, "y":4}, + {"label":"k4e", "x":15, "y":4} + ] + }, + "LAYOUT_split_space_2":{ + "layout": [ + {"label":"k00", "x":0, "y":0}, + {"label":"k01", "x":1, "y":0}, + {"label":"k02", "x":2, "y":0}, + {"label":"k03", "x":3, "y":0}, + {"label":"k04", "x":4, "y":0}, + {"label":"k05", "x":5, "y":0}, + {"label":"k06", "x":6, "y":0}, + {"label":"k07", "x":7, "y":0}, + {"label":"k08", "x":8, "y":0}, + {"label":"k09", "x":9, "y":0}, + {"label":"k0a", "x":10, "y":0}, + {"label":"k0b", "x":11, "y":0}, + {"label":"k0c", "x":12, "y":0}, + {"label":"k0d", "x":13, "y":0}, + {"label":"k0e", "x":14, "y":0}, + {"label":"k0f", "x":15, "y":0}, + + {"label":"k10", "x":0, "y":1, "w":1.5}, + {"label":"k11", "x":1.5, "y":1}, + {"label":"k12", "x":2.5, "y":1}, + {"label":"k13", "x":3.5, "y":1}, + {"label":"k14", "x":4.5, "y":1}, + {"label":"k15", "x":5.5, "y":1}, + {"label":"k16", "x":6.5, "y":1}, + {"label":"k17", "x":7.5, "y":1}, + {"label":"k18", "x":8.5, "y":1}, + {"label":"k19", "x":9.5, "y":1}, + {"label":"k1a", "x":10.5, "y":1}, + {"label":"k1b", "x":11.5, "y":1}, + {"label":"k1c", "x":12.5, "y":1}, + {"label":"k2d", "x":13.75, "y":1, "w":1.25}, + {"label":"k1e", "x":15, "y":1,}, + + {"label":"k20", "x":0, "y":2, "w":1.75}, + {"label":"k21", "x":1.75, "y":2}, + {"label":"k22", "x":2.75, "y":2}, + {"label":"k23", "x":3.75, "y":2}, + {"label":"k24", "x":4.75, "y":2}, + {"label":"k25", "x":5.75, "y":2}, + {"label":"k26", "x":6.75, "y":2}, + {"label":"k27", "x":7.75, "y":2}, + {"label":"k28", "x":8.75, "y":2}, + {"label":"k29", "x":9.75, "y":2}, + {"label":"k2a", "x":10.75, "y":2}, + {"label":"k2b", "x":11.75, "y":2}, + {"label":"k1d", "x":12.75, "y":2}, + {"label":"k2e", "x":15, "y":2}, + + {"label":"k30", "x":0, "y":3, "w":1.25}, + {"label":"k31", "x":1.25, "y":3}, + {"label":"k32", "x":2.25, "y":3}, + {"label":"k33", "x":3.25, "y":3}, + {"label":"k34", "x":4.25, "y":3}, + {"label":"k35", "x":5.25, "y":3}, + {"label":"k36", "x":6.25, "y":3}, + {"label":"k37", "x":7.25, "y":3}, + {"label":"k38", "x":8.25, "y":3}, + {"label":"k39", "x":9.25, "y":3}, + {"label":"k3a", "x":10.25, "y":3}, + {"label":"k3b", "x":11.25, "y":3}, + {"label":"k3c", "x":12.25, "y":3, "w":1.75}, + {"label":"k3d", "x":14, "y":3}, + {"label":"k3e", "x":15, "y":3}, + + {"label":"k40", "x":0, "y":4, "w":1.25}, + {"label":"k41", "x":1.25, "y":4, "w":1.25}, + {"label":"k42", "x":2.5, "y":4, "w":1.25}, + {"label":"k43", "x":3.75, "y":4, "w":2.25}, + {"label":"k44", "x":6, "y":4, "w":1.25}, + {"label":"k46", "x":7.25, "y":4, "w":2.75}, + {"label":"k49", "x":10, "y":4, "w":1.25}, + {"label":"k4a", "x":11.25, "y":4, "w":1.25}, + {"label":"k4c", "x":13, "y":4}, + {"label":"k4d", "x":14, "y":4}, + {"label":"k4e", "x":15, "y":4} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/mokey/ginkgo65/keymaps/default/keymap.c b/keyboards/mokey/ginkgo65/keymaps/default/keymap.c new file mode 100644 index 00000000000..0d411bc9d23 --- /dev/null +++ b/keyboards/mokey/ginkgo65/keymaps/default/keymap.c @@ -0,0 +1,43 @@ +/* Copyright 2021 Ocean + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 │ - │ = │Bspace │Ins│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │Del│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │PgU│ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + * │ LShift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │RShift│ ↑ │PgD│ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ + * │LCtl│LGui│LAlt│ Space │RAlt│ Fn │ │ ← │ ↓ │ → │ + * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ + */ + + LAYOUT( + /* 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), +}; diff --git a/keyboards/mokey/ginkgo65/keymaps/via/keymap.c b/keyboards/mokey/ginkgo65/keymaps/via/keymap.c new file mode 100644 index 00000000000..90e7a8e9047 --- /dev/null +++ b/keyboards/mokey/ginkgo65/keymaps/via/keymap.c @@ -0,0 +1,50 @@ +/* Copyright 2021 Ocean + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + + [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, _______, _______, + BL_TOGG, BL_STEP, BL_DEC, BL_INC, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [2] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [3] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/mokey/ginkgo65/keymaps/via/rules.mk b/keyboards/mokey/ginkgo65/keymaps/via/rules.mk new file mode 100644 index 00000000000..36b7ba9cbc9 --- /dev/null +++ b/keyboards/mokey/ginkgo65/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/mokey/ginkgo65/readme.md b/keyboards/mokey/ginkgo65/readme.md new file mode 100644 index 00000000000..8caa629aefe --- /dev/null +++ b/keyboards/mokey/ginkgo65/readme.md @@ -0,0 +1,21 @@ +# Ginkgo65 Multi PCB + +![Ginkgo65](https://raw.githubusercontent.com/rhmokey/123.github.io/main/2021/08/15/hello-world/ginkgo65.png) + +Support Atmega32u4 keyboard,With a variety of configurations + +* Keyboard Maintainer: [mokey](https://github.com/rhmokey) +* Hardware Supported: Atmega32u4 +## Bootloader +* **Physical reset button**: Short press the button on the back of the PCB to enter the Bootloader and flash the firmware + + +Make example for this keyboard (after setting up your build environment): + + make mokey/ginkgo65:default + +Flashing example for this keyboard: + + make mokey/ginkgo65: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). \ No newline at end of file diff --git a/keyboards/mokey/ginkgo65/rules.mk b/keyboards/mokey/ginkgo65/rules.mk new file mode 100644 index 00000000000..4f1faaec800 --- /dev/null +++ b/keyboards/mokey/ginkgo65/rules.mk @@ -0,0 +1,21 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = 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 = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/mokey/mokey64/config.h b/keyboards/mokey/mokey64/config.h index d410f8fafea..52345ed9733 100644 --- a/keyboards/mokey/mokey64/config.h +++ b/keyboards/mokey/mokey64/config.h @@ -24,21 +24,14 @@ along with this program. If not, see . #define PRODUCT MOKEY64 #define MATRIX_ROWS 5 -#define MATRIX_COLS 14 +#define MATRIX_COLS 15 -#define MATRIX_ROW_PINS { A1, A2, A3, A4, A5 } -#define MATRIX_COL_PINS { B0, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13 } +#define MATRIX_ROW_PINS { B1, B2, B3, B4, B5 } +#define MATRIX_COL_PINS { C7, F6, F5, F4, F1, E6, D0, D2, D1, D3, D5, D4, D6, D7, B6 } #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 RGB_DI_PIN A7 -#define RGBLED_NUM 68 - -/* 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 \ No newline at end of file diff --git a/keyboards/mokey/mokey64/info.json b/keyboards/mokey/mokey64/info.json index 3c70b559c9d..62b9c904930 100644 --- a/keyboards/mokey/mokey64/info.json +++ b/keyboards/mokey/mokey64/info.json @@ -18,62 +18,62 @@ {"label":"k0a", "x":10, "y":0}, {"label":"k0b", "x":11, "y":0}, {"label":"k0c", "x":12, "y":0}, - {"label":"k0d", "x":13, "y":0, "w":2}, - + {"label":"k0e", "x":13, "y":0, "w":2}, + {"label":"k10", "x":0, "y":1, "w":1.5}, - {"label":"k11", "x":1.5, "y":1}, - {"label":"k12", "x":2.5, "y":1}, - {"label":"k13", "x":3.5, "y":1}, - {"label":"k14", "x":4.5, "y":1}, - {"label":"k15", "x":5.5, "y":1}, - {"label":"k16", "x":6.5, "y":1}, - {"label":"k17", "x":7.5, "y":1}, - {"label":"k18", "x":8.5, "y":1}, - {"label":"k19", "x":9.5, "y":1}, - {"label":"k1a", "x":10.5, "y":1}, - {"label":"k1b", "x":11.5, "y":1}, - {"label":"k1c", "x":12.5, "y":1}, - {"label":"k1d", "x":13.5, "y":1, "w":1.5}, - + {"label":"k12", "x":1.5, "y":1}, + {"label":"k13", "x":2.5, "y":1}, + {"label":"k14", "x":3.5, "y":1}, + {"label":"k15", "x":4.5, "y":1}, + {"label":"k16", "x":5.5, "y":1}, + {"label":"k17", "x":6.5, "y":1}, + {"label":"k18", "x":7.5, "y":1}, + {"label":"k19", "x":8.5, "y":1}, + {"label":"k1a", "x":9.5, "y":1}, + {"label":"k1b", "x":10.5, "y":1}, + {"label":"k1c", "x":11.5, "y":1}, + {"label":"k1d", "x":12.5, "y":1}, + {"label":"k1e", "x":13.5, "y":1, "w":1.5}, + {"label":"k20", "x":0, "y":2, "w":1.75}, - {"label":"k21", "x":1.75, "y":2}, - {"label":"k22", "x":2.75, "y":2}, - {"label":"k23", "x":3.75, "y":2}, - {"label":"k24", "x":4.75, "y":2}, - {"label":"k25", "x":5.75, "y":2}, - {"label":"k26", "x":6.75, "y":2}, - {"label":"k27", "x":7.75, "y":2}, - {"label":"k28", "x":8.75, "y":2}, - {"label":"k29", "x":9.75, "y":2}, - {"label":"k2a", "x":10.75, "y":2}, - {"label":"k2b", "x":11.75, "y":2}, - {"label":"k2c", "x":12.75, "y":2, "w":2.25}, - + {"label":"k22", "x":1.75, "y":2}, + {"label":"k23", "x":2.75, "y":2}, + {"label":"k24", "x":3.75, "y":2}, + {"label":"k25", "x":4.75, "y":2}, + {"label":"k26", "x":5.75, "y":2}, + {"label":"k27", "x":6.75, "y":2}, + {"label":"k28", "x":7.75, "y":2}, + {"label":"k29", "x":8.75, "y":2}, + {"label":"k2a", "x":9.75, "y":2}, + {"label":"k2b", "x":10.75, "y":2}, + {"label":"k2c", "x":11.75, "y":2}, + {"label":"k2d", "x":12.75, "y":2, "w":2.25}, + {"label":"k30", "x":0, "y":3, "w":2}, - {"label":"k31", "x":2, "y":3}, - {"label":"k32", "x":3, "y":3}, - {"label":"k33", "x":4, "y":3}, - {"label":"k34", "x":5, "y":3}, - {"label":"k35", "x":6, "y":3}, - {"label":"k36", "x":7, "y":3}, - {"label":"k37", "x":8, "y":3}, - {"label":"k38", "x":9, "y":3}, - {"label":"k39", "x":10, "y":3}, - {"label":"k3a", "x":11, "y":3}, - {"label":"k3b", "x":12, "y":3}, - {"label":"k3c", "x":13, "y":3}, - {"label":"k3d", "x":14, "y":3}, + {"label":"k32", "x":2, "y":3}, + {"label":"k33", "x":3, "y":3}, + {"label":"k34", "x":4, "y":3}, + {"label":"k35", "x":5, "y":3}, + {"label":"k36", "x":6, "y":3}, + {"label":"k37", "x":7, "y":3}, + {"label":"k38", "x":8, "y":3}, + {"label":"k39", "x":9, "y":3}, + {"label":"k3a", "x":10, "y":3}, + {"label":"k3b", "x":11, "y":3}, + {"label":"k3c", "x":12, "y":3}, + {"label":"k3d", "x":13, "y":3}, + {"label":"k3e", "x":14, "y":3}, {"label":"k40", "x":0, "y":4, "w":1.25}, {"label":"k41", "x":1.25, "y":4, "w":1.25}, - {"label":"k42", "x":2.5, "y":4, "w":1.25}, - {"label":"k43", "x":3.75, "y":4, "w":6.25}, - {"label":"k44", "x":10, "y":4}, - {"label":"k45", "x":11, "y":4}, - {"label":"k46", "x":12, "y":4}, - {"label":"k47", "x":13, "y":4}, - {"label":"k48", "x":14, "y":4} + {"label":"k43", "x":2.5, "y":4, "w":1.25}, + {"label":"k46", "x":3.75, "y":4, "w":6.25}, + {"label":"k4a", "x":10, "y":4}, + {"label":"k4b", "x":11, "y":4}, + {"label":"k4c", "x":12, "y":4}, + {"label":"k4d", "x":13, "y":4}, + {"label":"k4e", "x":14, "y":4} ] } } -} \ No newline at end of file +} diff --git a/keyboards/mokey/mokey64/keymaps/default/keymap.c b/keyboards/mokey/mokey64/keymaps/default/keymap.c index 5d6e8f4d432..de38570e911 100644 --- a/keyboards/mokey/mokey64/keymaps/default/keymap.c +++ b/keyboards/mokey/mokey64/keymaps/default/keymap.c @@ -18,7 +18,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { LAYOUT( - /*0 1 2 3 4 5 6 7 8 9 a b c d*/ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_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, diff --git a/keyboards/mokey/mokey64/keymaps/via/keymap.c b/keyboards/mokey/mokey64/keymaps/via/keymap.c index 8a1ae3dba70..f44f38e8eaf 100644 --- a/keyboards/mokey/mokey64/keymaps/via/keymap.c +++ b/keyboards/mokey/mokey64/keymaps/via/keymap.c @@ -18,12 +18,32 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - LAYOUT( - /*0 1 2 3 4 5 6 7 8 9 a b c d*/ + [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_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_SLSH, KC_RSFT, KC_UP, KC_DEL, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_GRV, KC_LEFT, KC_DOWN, KC_RGHT) + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_GRV, KC_LEFT, KC_DOWN, 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, 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, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) }; diff --git a/keyboards/mokey/mokey64/mokey64.h b/keyboards/mokey/mokey64/mokey64.h index 966d19a48e3..8dddc4faefe 100644 --- a/keyboards/mokey/mokey64/mokey64.h +++ b/keyboards/mokey/mokey64/mokey64.h @@ -20,29 +20,29 @@ #define XXX KC_NO -/* +/* * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ - * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │ + * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0e │ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ - * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d │ + * │10 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d │1e │ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ - * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │ + * │20 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │2d │ * ├──────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬───┬───┤ - * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c │3d │ + * │30 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c │3d │3e │ * ├────┬──┴─┬─┴──┬┴───┴───┴───┴───┴───┴───┼───┼───┼───┼───┼───┤ - * │40 │41 │42 │ 43 │44 │45 │46 │47 │48 │ + * │40 │41 │43 │ 46 │4a │4b │4c │4d │4e │ * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘ */ #define LAYOUT( \ - k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \ - k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \ - k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \ - k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \ - k40, k41, k42, k43, k44, k45, k46, k47, k48 \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0e, \ + k10, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, \ + k20, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \ + k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, \ + k40, k41, k43, k46, k4a, k4b, k4c, k4d, k4e \ ) { \ - { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d }, \ - { 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, k43, k44, k45, k46, k47, k48, XXX, XXX, XXX, XXX, XXX } \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, XXX, k0e }, \ + { k10, XXX, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e }, \ + { k20, XXX, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, XXX }, \ + { k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e }, \ + { k40, k41, k43, XXX, XXX, XXX, k46, XXX, XXX, XXX, k4a, k4b, k4c, k4d, k4e } \ } diff --git a/keyboards/mokey/mokey64/readme.md b/keyboards/mokey/mokey64/readme.md index c25f61c0404..e56d86f0db6 100644 --- a/keyboards/mokey/mokey64/readme.md +++ b/keyboards/mokey/mokey64/readme.md @@ -2,10 +2,11 @@ ![mokey](https://rhmokey.github.io/update/index/64v13.jpg) -Support STM32F401 keyboard. +Support Atmega32u4 keyboard. * Keyboard Maintainer: [rhmokey](https://github.com/rhmokey) -* Hardware Supported: STM32F401 +* Hardware Supported: Atmega32u4 + ## Bootloader * **Physical reset button**: Short press the button on the back of the PCB to enter the Bootloader and flash the firmware @@ -18,4 +19,4 @@ Flashing example for this keyboard: make mokey/mokey64: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). \ 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/mokey/mokey64/rules.mk b/keyboards/mokey/mokey64/rules.mk index 186091bf2f0..a1818950958 100644 --- a/keyboards/mokey/mokey64/rules.mk +++ b/keyboards/mokey/mokey64/rules.mk @@ -1,23 +1,21 @@ # MCU name -MCU = STM32F401 +MCU = atmega32u4 # Bootloader selection -BOOTLOADER = stm32-dfu +BOOTLOADER = atmel-dfu # Build Options # change yes to no to disable # BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration -MOUSEKEY_ENABLE = yes # Mouse keys +MOUSEKEY_ENABLE = no # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control -KEYBOARD_SHARED_EP = yes 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 +NKRO_ENABLE = no # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output - diff --git a/keyboards/monstargear/xo87/rgb/rules.mk b/keyboards/monstargear/xo87/rgb/rules.mk index c1ec8e0835f..dcb663e8fd9 100644 --- a/keyboards/monstargear/xo87/rgb/rules.mk +++ b/keyboards/monstargear/xo87/rgb/rules.mk @@ -17,7 +17,6 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = yes # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output RGB_MATRIX_ENABLE = yes RGB_MATRIX_DRIVER = WS2812 diff --git a/keyboards/moon/rules.mk b/keyboards/moon/rules.mk index a7f830bdd2d..df5135333bf 100644 --- a/keyboards/moon/rules.mk +++ b/keyboards/moon/rules.mk @@ -18,7 +18,6 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = yes # USB Nkey Rollover BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output # custom matrix setup diff --git a/keyboards/moonlander/config.h b/keyboards/moonlander/config.h index 522cb0ab275..f2e5088a34a 100644 --- a/keyboards/moonlander/config.h +++ b/keyboards/moonlander/config.h @@ -99,8 +99,9 @@ #define DYNAMIC_KEYMAP_EEPROM_ADDR (EECONFIG_SIZE + FIRMWARE_VERSION_SIZE) #ifdef EEPROM_I2C # define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 16383 -# define DYNAMIC_KEYMAP_LAYER_COUNT 32 +# define DYNAMIC_KEYMAP_LAYER_COUNT 8 #endif +#define VIA_QMK_RGBLIGHT_ENABLE #define AUDIO_PIN A5 #define AUDIO_PIN_ALT A4 diff --git a/keyboards/moonlander/keymaps/drashna/keymap.c b/keyboards/moonlander/keymaps/drashna/keymap.c index f6af7e53af2..2d90a3172b5 100644 --- a/keyboards/moonlander/keymaps/drashna/keymap.c +++ b/keyboards/moonlander/keymaps/drashna/keymap.c @@ -82,6 +82,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_NO, KC_NO, KC_L, KC_J, KC_F, KC_PSCR, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_DIABLO_CLEAR, SFT_T(KC_SPACE), ALT_T(KC_Q), KC_PGDN, KC_DEL, KC_ENT ), + [_DIABLOII] = LAYOUT_moonlander_wrapper( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_GRV, KC_NO, KC_TRNS, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO, + KC_TAB, KC_A, KC_T, KC_Q, KC_I, KC_M, TG(_DIABLOII), KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_S, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_LCTL, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_N, KC_M, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_G, KC_F, KC_L, KC_V, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_G, KC_LSFT, KC_LCTL, KC_PGDN, KC_DEL, KC_ENT + ), [_LOWER] = LAYOUT_moonlander_wrapper( KC_F12, _________________FUNC_LEFT_________________, _______, _______, _________________FUNC_RIGHT________________, KC_F11, @@ -103,9 +111,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_ADJUST] = LAYOUT_moonlander_wrapper( KC_MAKE, _________________FUNC_LEFT_________________, UC_MOD, KC_NUKE, _________________ADJUST_R1_________________, KC_RST, - VRSN, _________________ADJUST_L1_________________, _______, _______, _________________ADJUST_R1_________________, EEP_RST, + VRSN, _________________ADJUST_L1_________________, TG(_DIABLOII), _______, _________________ADJUST_R1_________________, EEP_RST, _______, _________________ADJUST_L2_________________, _______, _______, _________________ADJUST_R2_________________, RGB_IDL, - _______, _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, TG_MODS, + KEYLOCK, _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, TG_MODS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PAUS, _______, _______, _______, _______, _______, _______ ), diff --git a/keyboards/moonlander/keymaps/manna-harbour_miryoku/config.h b/keyboards/moonlander/keymaps/manna-harbour_miryoku/config.h index ad6eee36823..6ea1541da29 100644 --- a/keyboards/moonlander/keymaps/manna-harbour_miryoku/config.h +++ b/keyboards/moonlander/keymaps/manna-harbour_miryoku/config.h @@ -1,6 +1,6 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/keyboards/moonlander/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/moonlander/keymaps/manna-harbour_miryoku/keymap.c index 1520387e888..7c5717a0fee 100644 --- a/keyboards/moonlander/keymaps/manna-harbour_miryoku/keymap.c +++ b/keyboards/moonlander/keymaps/manna-harbour_miryoku/keymap.c @@ -1,5 +1,5 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/keyboards/moonlander/keymaps/via/keymap.c b/keyboards/moonlander/keymaps/via/keymap.c new file mode 100644 index 00000000000..13a299b434c --- /dev/null +++ b/keyboards/moonlander/keymaps/via/keymap.c @@ -0,0 +1,126 @@ +/* Copyright 2020 ZSA Technology Labs, Inc <@zsa> + * Copyright 2020 Jack Humbert + * 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 +#include "version.h" + +enum layers { + BASE, // default layer + SYMB, // symbols + MDIA, // media keys +}; + +// clang-format off +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_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( + USER00, 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, _______, + _______, _______, _______, _______, _______, RGB_VAI, RGB_TOG, _______, KC_DOT, KC_0, KC_EQL, _______, + RGB_HUD, RGB_VAD, RGB_HUI, _______, _______, _______ + ), + + [MDIA] = LAYOUT_moonlander( + USER01, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + _______, _______, _______, KC_MS_U, _______, _______, _______, _______, _______, _______, _______, _______, _______, EEP_RST, + _______, _______, 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, _______, _______, + _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT_moonlander( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______ + ), + [4] = LAYOUT_moonlander( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______ + ), + [5] = LAYOUT_moonlander( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______ + ), + [6] = LAYOUT_moonlander( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______ + ), + [7] = LAYOUT_moonlander( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______ + ), +}; +// clang-format on + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case USER00: + if (record->event.pressed) { + SEND_STRING(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); + } + return false; + case USER01: + 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; + } + return true; +} diff --git a/keyboards/moonlander/keymaps/via/readme.md b/keyboards/moonlander/keymaps/via/readme.md new file mode 100644 index 00000000000..8bede7bee36 --- /dev/null +++ b/keyboards/moonlander/keymaps/via/readme.md @@ -0,0 +1,7 @@ +# VIA Keymap for the Moonlander + +This is based on the default layout for the Moonlander keyboard from ZSA Techonology Labs. + +ZSA does not provide any support for VIA (the app or firmware feature). Any and all issues should be directed to [VIA](https://github.com/the-via). + +Initial flash and reflash may make the keyboard look like it has locked up. This is because it can take a while to load the EEPROM data (the keymap), and is halted by that process until it's finished. diff --git a/keyboards/moonlander/keymaps/via/rules.mk b/keyboards/moonlander/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/moonlander/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/moonlander/matrix.c b/keyboards/moonlander/matrix.c index 8f2610fc6c7..782f131a501 100644 --- a/keyboards/moonlander/matrix.c +++ b/keyboards/moonlander/matrix.c @@ -16,55 +16,26 @@ * along with this program. If not, see . */ - - -#include -#include -#include -#include -#include "timer.h" -#include "wait.h" -#include "print.h" -#include "matrix.h" -#include "action.h" -#include "keycode.h" -#include #include "moonlander.h" #include "i2c_master.h" -#include "debounce.h" /* #define MATRIX_ROW_PINS { B10, B11, B12, B13, B14, B15 } outputs #define MATRIX_COL_PINS { A0, A1, A2, A3, A6, A7, B0 } inputs */ /* matrix state(1:on, 0:off) */ -static matrix_row_t matrix[MATRIX_ROWS]; -static matrix_row_t matrix_debouncing[MATRIX_ROWS]; -static matrix_row_t matrix_debouncing_right[MATRIX_COLS]; -static bool debouncing = false; -static uint16_t debouncing_time = 0; -static bool debouncing_right = false; -static uint16_t debouncing_time_right = 0; +extern matrix_row_t matrix[MATRIX_ROWS]; // debounced values +extern matrix_row_t raw_matrix[MATRIX_ROWS]; // raw values +static matrix_row_t raw_matrix_right[MATRIX_COLS]; #define ROWS_PER_HAND (MATRIX_ROWS / 2) - -#ifndef MATRIX_IO_DELAY -# define MATRIX_IO_DELAY 20 +#ifndef MOONLANDER_I2C_TIMEOUT +# define MOONLANDER_I2C_TIMEOUT 100 #endif extern bool mcp23018_leds[3]; extern bool is_launching; -__attribute__((weak)) void matrix_init_user(void) {} - -__attribute__((weak)) void matrix_scan_user(void) {} - -__attribute__((weak)) void matrix_init_kb(void) { matrix_init_user(); } - -__attribute__((weak)) void matrix_scan_kb(void) { matrix_scan_user(); } - -__attribute__((weak)) void matrix_io_delay(void) { wait_us(MATRIX_IO_DELAY); } - bool mcp23018_initd = false; static uint8_t mcp23018_reset_loop; @@ -81,14 +52,14 @@ void mcp23018_init(void) { mcp23018_tx[1] = 0b00000000; // A is output mcp23018_tx[2] = 0b00111111; // B is inputs - if (MSG_OK != i2c_transmit(MCP23018_DEFAULT_ADDRESS << 1, mcp23018_tx, 3, I2C_TIMEOUT)) { + if (MSG_OK != i2c_transmit(MCP23018_DEFAULT_ADDRESS << 1, mcp23018_tx, 3, MOONLANDER_I2C_TIMEOUT)) { dprintf("error hori\n"); } else { mcp23018_tx[0] = 0x0C; // GPPUA mcp23018_tx[1] = 0b10000000; // A is not pulled-up mcp23018_tx[2] = 0b11111111; // B is pulled-up - if (MSG_OK != i2c_transmit(MCP23018_DEFAULT_ADDRESS << 1, mcp23018_tx, 3, I2C_TIMEOUT)) { + if (MSG_OK != i2c_transmit(MCP23018_DEFAULT_ADDRESS << 1, mcp23018_tx, 3, MOONLANDER_I2C_TIMEOUT)) { dprintf("error hori\n"); } else { mcp23018_initd = is_launching = true; @@ -96,10 +67,9 @@ void mcp23018_init(void) { } } -void matrix_init(void) { +void matrix_init_custom(void) { dprintf("matrix init\n"); // debug_matrix = true; - // outputs setPinOutput(B10); setPinOutput(B11); @@ -117,16 +87,10 @@ void matrix_init(void) { setPinInputLow(A7); setPinInputLow(B0); - memset(matrix, 0, MATRIX_ROWS * sizeof(matrix_row_t)); - memset(matrix_debouncing, 0, MATRIX_ROWS * sizeof(matrix_row_t)); - memset(matrix_debouncing_right, 0, MATRIX_COLS * sizeof(matrix_row_t)); - mcp23018_init(); - - matrix_init_quantum(); } -uint8_t matrix_scan(void) { +bool matrix_scan_custom(matrix_row_t current_matrix[]) { bool changed = false; // Try to re-init right side @@ -151,7 +115,7 @@ uint8_t matrix_scan(void) { matrix_row_t data = 0; // actual matrix for (uint8_t row = 0; row <= ROWS_PER_HAND; row++) { - // strobe row + // strobe row switch (row) { case 0: writePinHigh(B10); break; case 1: writePinHigh(B11); break; @@ -172,7 +136,7 @@ uint8_t matrix_scan(void) { mcp23018_tx[1] = (0b01111111 & ~(1 << (row))) | ((uint8_t)!mcp23018_leds[2] << 7); // activate row mcp23018_tx[2] = ((uint8_t)!mcp23018_leds[1] << 6) | ((uint8_t)!mcp23018_leds[0] << 7); // activate row - if (MSG_OK != i2c_transmit(MCP23018_DEFAULT_ADDRESS << 1, mcp23018_tx, 3, I2C_TIMEOUT)) { + if (MSG_OK != i2c_transmit(MCP23018_DEFAULT_ADDRESS << 1, mcp23018_tx, 3, MOONLANDER_I2C_TIMEOUT)) { dprintf("error hori\n"); mcp23018_initd = false; } @@ -180,22 +144,23 @@ uint8_t matrix_scan(void) { // read col mcp23018_tx[0] = 0x13; // GPIOB - if (MSG_OK != i2c_readReg(MCP23018_DEFAULT_ADDRESS << 1, mcp23018_tx[0], &mcp23018_rx[0], 1, I2C_TIMEOUT)) { + if (MSG_OK != i2c_readReg(MCP23018_DEFAULT_ADDRESS << 1, mcp23018_tx[0], &mcp23018_rx[0], 1, MOONLANDER_I2C_TIMEOUT)) { dprintf("error vert\n"); mcp23018_initd = false; } data = ~(mcp23018_rx[0] & 0b00111111); // data = 0x01; + } else { + data = 0; + } - if (matrix_debouncing_right[row] != data) { - matrix_debouncing_right[row] = data; - debouncing_right = true; - debouncing_time_right = timer_read(); - changed = true; - } + if (raw_matrix_right[row] != data) { + raw_matrix_right[row] = data; + changed = true; } + // left side if (row < ROWS_PER_HAND) { // i2c comm incur enough wait time @@ -224,79 +189,28 @@ uint8_t matrix_scan(void) { case 6: break; } - if (matrix_debouncing[row] != data) { - matrix_debouncing[row] = data; - debouncing = true; - debouncing_time = timer_read(); + if (current_matrix[row] != data) { + current_matrix[row] = data; changed = true; } } } - - // Debounce both hands - if (debouncing && timer_elapsed(debouncing_time) > DEBOUNCE) { - for (int row = 0; row < ROWS_PER_HAND; row++) { - matrix[row] = matrix_debouncing[row]; - } - debouncing = false; - } - - if (debouncing_right && timer_elapsed(debouncing_time_right) > DEBOUNCE && mcp23018_initd) { - for (int row = 0; row < ROWS_PER_HAND; row++) { - matrix[11 - row] = 0; - for (int col = 0; col < MATRIX_COLS; col++) { - matrix[11 - row] |= ((matrix_debouncing_right[6 - col] & (1 << row) ? 1 : 0) << col); - } - } - debouncing_right = false; - } - - matrix_scan_quantum(); - - return (uint8_t)changed; -} - -bool matrix_is_on(uint8_t row, uint8_t col) { return (matrix[row] & (1 << col)); } - -matrix_row_t matrix_get_row(uint8_t row) { return matrix[row]; } - -void matrix_print(void) { - dprintf("\nr/c 01234567\n"); - for (uint8_t row = 0; row < MATRIX_ROWS; row++) { - dprintf("%X0: ", row); - matrix_row_t data = matrix_get_row(row); - for (int col = 0; col < MATRIX_COLS; col++) { - if (data & (1 << col)) - dprintf("1"); - else - dprintf("0"); + for (uint8_t row = 0; row < ROWS_PER_HAND; row++) { + current_matrix[11 - row] = 0; + for (uint8_t col = 0; col < MATRIX_COLS; col++) { + current_matrix[11 - row] |= ((raw_matrix_right[6 - col] & (1 << row) ? 1 : 0) << col); } - dprintf("\n"); } + return changed; } // DO NOT REMOVE // Needed for proper wake/sleep void matrix_power_up(void) { bool temp_launching = is_launching; - // 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); + matrix_init_custom(); - mcp23018_init(); is_launching = temp_launching; if (!is_launching) { ML_LED_1(false); diff --git a/keyboards/moonlander/rules.mk b/keyboards/moonlander/rules.mk index 23bf7b7087b..ed448ff4348 100644 --- a/keyboards/moonlander/rules.mk +++ b/keyboards/moonlander/rules.mk @@ -19,8 +19,7 @@ NKRO_ENABLE = yes # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = yes # Audio output -CUSTOM_MATRIX = yes -DEBOUNCE_TYPE = custom +CUSTOM_MATRIX = lite SWAP_HANDS_ENABLE = yes RGB_MATRIX_ENABLE = yes RGB_MATRIX_DRIVER = IS31FL3731 diff --git a/keyboards/mountainblocks/mb17/config.h b/keyboards/mountainblocks/mb17/config.h index c67db7a7d1b..aef58dc5da4 100644 --- a/keyboards/mountainblocks/mb17/config.h +++ b/keyboards/mountainblocks/mb17/config.h @@ -91,59 +91,6 @@ along with this program. If not, see . */ //#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 - /* disable these deprecated features by default */ #define NO_ACTION_MACRO diff --git a/keyboards/mt40/config.h b/keyboards/mt40/config.h index 8e04fe38c48..84e1cb507c0 100644 --- a/keyboards/mt40/config.h +++ b/keyboards/mt40/config.h @@ -100,54 +100,6 @@ along with this program. If not, see . */ //#define FORCE_NKRO -/* - * Magic Key Options - * - * Magic keys are hotkey commands that allow control over firmware functions of - * the keyboard. They are best used in combination with the HID Listen program, - * found here: https://www.pjrc.com/teensy/hid_listen.html - * - * The options below allow the magic key functionality to be changed. This is - * useful if your keyboard/keypad is missing keys and you want magic key support. - * - */ - -/* control how magic key switches layers */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false - -/* override magic key keymap */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM -//#define MAGIC_KEY_HELP1 H -//#define MAGIC_KEY_HELP2 SLASH -//#define MAGIC_KEY_DEBUG D -//#define MAGIC_KEY_DEBUG_MATRIX X -//#define MAGIC_KEY_DEBUG_KBD K -//#define MAGIC_KEY_DEBUG_MOUSE M -//#define MAGIC_KEY_VERSION V -//#define MAGIC_KEY_STATUS S -//#define MAGIC_KEY_CONSOLE C -//#define MAGIC_KEY_LAYER0_ALT1 ESC -//#define MAGIC_KEY_LAYER0_ALT2 GRAVE -//#define MAGIC_KEY_LAYER0 0 -//#define MAGIC_KEY_LAYER1 1 -//#define MAGIC_KEY_LAYER2 2 -//#define MAGIC_KEY_LAYER3 3 -//#define MAGIC_KEY_LAYER4 4 -//#define MAGIC_KEY_LAYER5 5 -//#define MAGIC_KEY_LAYER6 6 -//#define MAGIC_KEY_LAYER7 7 -//#define MAGIC_KEY_LAYER8 8 -//#define MAGIC_KEY_LAYER9 9 -//#define MAGIC_KEY_BOOTLOADER PAUSE -//#define MAGIC_KEY_LOCK CAPS -//#define MAGIC_KEY_EEPROM E -//#define MAGIC_KEY_NKRO N -//#define MAGIC_KEY_SLEEP_LED Z - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/mt40/rules.mk b/keyboards/mt40/rules.mk index 68e8d09ab14..8df082b02ce 100644 --- a/keyboards/mt40/rules.mk +++ b/keyboards/mt40/rules.mk @@ -13,7 +13,6 @@ 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 AUDIO_ENABLE = no # Audio output -UNICODE_ENABLE = no # Unicode RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. WS2812_DRIVER = i2c diff --git a/keyboards/mwstudio/mw65_rgb/config.h b/keyboards/mwstudio/mw65_rgb/config.h new file mode 100644 index 00000000000..8a320664a9a --- /dev/null +++ b/keyboards/mwstudio/mw65_rgb/config.h @@ -0,0 +1,61 @@ +/* Copyright 2021 TW59420 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 0x7BA1 +#define PRODUCT_ID 0x6502 +#define DEVICE_VER 0x0001 +#define MANUFACTURER MWStudio +#define PRODUCT MW65 + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 15 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { D0, D1, D2, D3, B7, B0 } +#define MATRIX_COL_PINS { C6, B6, B5, B4, D7, D6, D4, C7, F7, F6, F5, F4, F1, F0, E6 } + +#define BOOTMAGIC_LITE_ROW 0 +#define BOOTMAGIC_LITE_COLUMN 0 + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +#define RGB_DI_PIN B3 +#ifdef RGB_DI_PIN + #define RGBLIGHT_SLEEP + + #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 + #define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS + #define DRIVER_LED_TOTAL 83 + #define RGBLED_NUM 83 + #define RGB_MATRIX_KEYPRESSES + + #define RGBLIGHT_HUE_STEP 8 + #define RGBLIGHT_SAT_STEP 8 + #define RGBLIGHT_VAL_STEP 8 +#endif + +#define ENCODERS_PAD_A { B1 } +#define ENCODERS_PAD_B { B2 } diff --git a/keyboards/mwstudio/mw65_rgb/info.json b/keyboards/mwstudio/mw65_rgb/info.json new file mode 100644 index 00000000000..affcdadbc0f --- /dev/null +++ b/keyboards/mwstudio/mw65_rgb/info.json @@ -0,0 +1,84 @@ +{ + "keyboard_name": "MW65_RGB", + "url": "", + "maintainer": "qmk", + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"ESC", "x":0, "y":0}, + {"label":"1", "x":1, "y":0}, + {"label":"2", "x":2, "y":0}, + {"label":"3", "x":3, "y":0}, + {"label":"4", "x":4, "y":0}, + {"label":"5", "x":5, "y":0}, + {"label":"6", "x":6, "y":0}, + {"label":"7", "x":7, "y":0}, + {"label":"8", "x":8, "y":0}, + {"label":"9", "x":9, "y":0}, + {"label":"0", "x":10, "y":0}, + {"label":"-", "x":11, "y":0}, + {"label":"=", "x":12, "y":0}, + {"label":"Backspace", "x":13, "y":0, "w":2}, + {"label":"Delete", "x":15, "y":0}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"[", "x":11.5, "y":1}, + {"label":"]", "x":12.5, "y":1}, + {"label":"\\", "x":13.5, "y":1, "w":1.5}, + {"label":"PgUp", "x":15, "y":1}, + + {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":";", "x":10.75, "y":2}, + {"label":"'", "x":11.75, "y":2}, + {"label":"Enter", "x":12.75, "y":2, "w":2.25}, + {"label":"PgDn", "x":15, "y":2}, + + {"label":"Shift", "x":0, "y":3, "w":2.25}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":",", "x":9.25, "y":3}, + {"label":".", "x":10.25, "y":3}, + {"label":"/", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":1.75}, + {"label":"\u2191", "x":14, "y":3}, + {"label":"End", "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}, + {"label":"Vol-", "x":3.75, "y":4 }, + {"label":"Vol+", "x":4.75, "y":4 }, + {"x":5.75, "y":4, "w":4.25}, + {"label":"Alt", "x":10, "y":4, "w":1.25}, + {"label":"Fn", "x":11.25, "y":4, "w":1.25}, + {"label":"\u2190", "x":13, "y":4}, + {"label":"\u2193", "x":14, "y":4}, + {"label":"\u2192", "x":15, "y":4} + ] + } + } +} diff --git a/keyboards/mwstudio/mw65_rgb/keymaps/default/keymap.c b/keyboards/mwstudio/mw65_rgb/keymaps/default/keymap.c new file mode 100644 index 00000000000..9466b0f2836 --- /dev/null +++ b/keyboards/mwstudio/mw65_rgb/keymaps/default/keymap.c @@ -0,0 +1,51 @@ +/* Copyright 2021 TW59420 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_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, RGB_TOG, + KC_LCTL, KC_LGUI, KC_LALT, KC_VOLU, KC_VOLD, KC_SPACE, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT + ), + + [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, _______, RGB_HUI, + RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, RGB_SAD, + _______, _______, _______, _______, _______, _______, RGB_MOD, _______, RGB_SPD, RGB_VAD, RGB_SPI + ), + + [2] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [3] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/mwstudio/mw65_rgb/keymaps/via/keymap.c b/keyboards/mwstudio/mw65_rgb/keymaps/via/keymap.c new file mode 100644 index 00000000000..6506433998e --- /dev/null +++ b/keyboards/mwstudio/mw65_rgb/keymaps/via/keymap.c @@ -0,0 +1,128 @@ +/* Copyright 2021 TW59420 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 + +typedef union { + uint32_t raw; + struct { + bool top_rgb_change :1; + bool bottom_rgb_change :1; + }; +} user_config_t; + +user_config_t user_config; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_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, RGB_TOG, + KC_LCTL, KC_LGUI, KC_LALT, KC_VOLU, KC_VOLD, KC_SPACE, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT + ), + + [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, _______, RGB_HUI, + RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, USER00, RGB_SAI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, USER01, RGB_VAI, RGB_SAD, + _______, _______, _______, _______, _______, _______, RGB_MOD, _______, RGB_SPD, RGB_VAD, RGB_SPI + ), + + [2] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [3] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; + +void keyboard_post_init_user(void) { + // Read the user config from EEPROM + user_config.raw = eeconfig_read_user(); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case USER00: + if (record->event.pressed) { + // Do something when pressed + user_config.top_rgb_change ^= 1; // Toggles the status + eeconfig_update_user(user_config.raw); // Writes the new status to EEPROM + } else { + // Do something else when release + } + return false; // Skip all further processing of this key + case USER01: + if (record->event.pressed) { + // Do something when pressed + user_config.bottom_rgb_change ^= 1; // Toggles the status + eeconfig_update_user(user_config.raw); // Writes the new status to EEPROM + } else { + // Do something else when release + } + return false; // Skip all further processing of this key + default: + return true; // Process all other keycodes normally + } +} + +#ifdef ENCODER_ENABLE +bool encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { + if (clockwise) { + tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 4, 3)); + } else { + tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 4, 4)); + } + } + return true; +} +#endif + +void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { + + if (user_config.top_rgb_change) + { + for (size_t i = 16; i < 83; i++) + { + RGB_MATRIX_INDICATOR_SET_COLOR(i, 0, 0, 0); + } + } + + if (host_keyboard_led_state().caps_lock) { + RGB_MATRIX_INDICATOR_SET_COLOR(52, 0, 255, 255); // assuming caps lock is at led #5 + } + + if (user_config.bottom_rgb_change) + { + for (size_t i = 0; i < 16; i++) + { + RGB_MATRIX_INDICATOR_SET_COLOR(i, 0, 0, 0); + } + } +} diff --git a/keyboards/mwstudio/mw65_rgb/keymaps/via/rules.mk b/keyboards/mwstudio/mw65_rgb/keymaps/via/rules.mk new file mode 100644 index 00000000000..36b7ba9cbc9 --- /dev/null +++ b/keyboards/mwstudio/mw65_rgb/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/mwstudio/mw65_rgb/mw65_rgb.c b/keyboards/mwstudio/mw65_rgb/mw65_rgb.c new file mode 100644 index 00000000000..e49944f1ce2 --- /dev/null +++ b/keyboards/mwstudio/mw65_rgb/mw65_rgb.c @@ -0,0 +1,45 @@ +/* Copyright 2021 TW59420 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 "mw65_rgb.h" + +#ifdef RGB_MATRIX_ENABLE +led_config_t g_led_config = { { + { 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68 }, + { 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67 }, + { 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, NO_LED, 40, 39 }, + { 25, NO_LED, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38 }, + { 24, 23, 22, NO_LED, NO_LED, NO_LED, 21, NO_LED, NO_LED, 15, 20, 19, 18, 17, 16 }, + + { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 } +}, { + { 175, 45 },{ 130, 45 },{ 85, 45 }, { 50, 45 }, { 15, 45 }, { 15, 35 }, { 15, 25 }, { 15, 10 }, + { 50, 10 }, { 85, 10 }, { 130, 10 }, { 175, 10 }, { 210, 10 }, { 210, 25 }, { 210, 35 }, { 210, 45 }, + { 217, 54 }, { 203, 54 }, { 189, 54 }, { 166, 54 }, { 150, 54 }, { 95, 54 }, { 40, 54 }, { 24, 54 }, { 8, 54 }, + { 17, 42 }, { 39, 42 }, { 53, 42 }, { 67, 42 }, { 81, 42 }, { 95, 42 }, { 109, 42 }, { 123, 42 }, { 137, 42 }, { 151, 42 }, { 165, 42 }, { 184, 42 }, { 203, 42 }, { 217, 42 }, + { 217, 30 }, { 195, 30 }, { 172, 30 }, { 158, 30 }, { 144, 30 }, { 130, 30 }, { 116, 30 }, { 102, 30 }, { 88, 30 }, { 74, 30 }, { 60, 30 }, { 46, 30 }, { 32, 30 },{ 13, 30 }, + { 9, 18 }, { 25, 18 }, { 39, 18 }, { 53, 18 }, { 67, 18 }, { 81, 18 }, { 95, 18 }, { 109, 18 }, { 123, 18 }, { 137, 18 }, { 151, 18 }, { 165, 18 }, { 181, 18 }, { 199, 18 }, { 217, 18 }, + { 217, 6 }, { 196, 6 }, { 175, 6 }, { 161, 6 }, { 147, 6 }, { 133, 6 }, { 119, 6 }, { 105, 6 }, { 91, 6 }, { 77, 6 }, { 63, 6 }, { 49, 6 }, { 35, 6 }, { 21, 6 }, { 7, 6 }, +}, { + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 +} }; +#endif + diff --git a/keyboards/mwstudio/mw65_rgb/mw65_rgb.h b/keyboards/mwstudio/mw65_rgb/mw65_rgb.h new file mode 100644 index 00000000000..b491e324e28 --- /dev/null +++ b/keyboards/mwstudio/mw65_rgb/mw65_rgb.h @@ -0,0 +1,33 @@ +/* Copyright 2021 TW59420 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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, K014, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K213, K214, \ + K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, \ + K400, K401, K402, K403, K404, K406, K410, K411, K412, K413, K414 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, KC_NO, K213, K214 }, \ + { K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314 }, \ + { K400, K401, K402, K403, K404, KC_NO, K406, KC_NO, KC_NO, KC_NO, K410, K411, K412, K413, K414 }, \ + { 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, KC_NO } \ +} diff --git a/keyboards/mwstudio/mw65_rgb/readme.md b/keyboards/mwstudio/mw65_rgb/readme.md new file mode 100644 index 00000000000..e15b5f9de9b --- /dev/null +++ b/keyboards/mwstudio/mw65_rgb/readme.md @@ -0,0 +1,22 @@ +# MW65_RGB + +![MW65_RGB](https://i.imgur.com/MPb8Lba.jpg?2) + +Support Atmega32u4 keyboard. + +* Keyboard Maintainer: [TW59420](https://github.com/TW59420) +* Hardware Supported: Atmega32u4 + +Make example for this keyboard (after setting up your build environment): + + make mwstudio/mw65_rgb:default + +Flashing example for this keyboard: + + make mwstudio/mw65_rgb: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). + +## Bootloader +* **Physical reset button**: Short press the button on the back of the PCB to enter the Bootloader and flash the firmware +* **Keycode in layout**: Press the key mapped to RESET if it is available diff --git a/keyboards/mwstudio/mw65_rgb/rules.mk b/keyboards/mwstudio/mw65_rgb/rules.mk new file mode 100644 index 00000000000..58d8da3e898 --- /dev/null +++ b/keyboards/mwstudio/mw65_rgb/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 = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = WS2812 +ENCODER_ENABLE = yes diff --git a/keyboards/mwstudio/mw75/config.h b/keyboards/mwstudio/mw75/config.h new file mode 100644 index 00000000000..58fcdf2c7c0 --- /dev/null +++ b/keyboards/mwstudio/mw75/config.h @@ -0,0 +1,75 @@ +/* Copyright 2021 TW59420 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 0x7BA1 +#define PRODUCT_ID 0x7501 +#define DEVICE_VER 0x0001 +#define MANUFACTURER MWStudio +#define PRODUCT MW75 + +/* key matrix size */ +#define MATRIX_ROWS 7 +#define MATRIX_COLS 15 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { B7, D0, D1, D2, D3, D5, B0} +#define MATRIX_COL_PINS { D4, D6, D7, B4, B5, B6, C6, C7, F7, F6, F5, F4, F1, F0, E6 } + +#define BOOTMAGIC_LITE_ROW 0 +#define BOOTMAGIC_LITE_COLUMN 1 + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +#define RGB_DI_PIN B3 +#define RGBLIGHT_SLEEP + +#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 +#define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS +#define DRIVER_LED_TOTAL 97 +#define RGBLED_NUM 97 +#define RGB_MATRIX_KEYPRESSES + +// #define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN +// #define DISABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT +// #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +// #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +// #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +// #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +// #define DISABLE_RGB_MATRIX_TYPING_HEATMAP +// #define DISABLE_RGB_MATRIX_DIGITAL_RAIN +// #define DISABLE_RGB_MATRIX_BAND_SAT +// #define DISABLE_RGB_MATRIX_BAND_VAL +// #define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT +// #define DISABLE_RGB_MATRIX_BAND_PINWHEEL_VAL +// #define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT +// #define DISABLE_RGB_MATRIX_BAND_SPIRAL_VAL + +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 + +#define ENCODERS_PAD_A { B1 } +#define ENCODERS_PAD_B { B2 } diff --git a/keyboards/mwstudio/mw75/info.json b/keyboards/mwstudio/mw75/info.json new file mode 100644 index 00000000000..0c53689865b --- /dev/null +++ b/keyboards/mwstudio/mw75/info.json @@ -0,0 +1,99 @@ +{ + "keyboard_name": "MW75", + "url": "", + "maintainer": "qmk", + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":1.5, "y":0}, + {"label":"F2", "x":2.5, "y":0}, + {"label":"F3", "x":3.5, "y":0}, + {"label":"F4", "x":4.5, "y":0}, + {"label":"F5", "x":6, "y":0}, + {"label":"F6", "x":7, "y":0}, + {"label":"F7", "x":8, "y":0}, + {"label":"F8", "x":9, "y":0}, + {"label":"F9", "x":10.5, "y":0}, + {"label":"F10", "x":11.5, "y":0}, + {"label":"F11", "x":12.5, "y":0}, + {"label":"F12", "x":13.5, "y":0}, + {"label":"DEL", "x":15, "y":0}, + + {"label":"`", "x":0, "y":1.5}, + {"label":"1", "x":1, "y":1.5}, + {"label":"2", "x":2, "y":1.5}, + {"label":"3", "x":3, "y":1.5}, + {"label":"4", "x":4, "y":1.5}, + {"label":"5", "x":5, "y":1.5}, + {"label":"6", "x":6, "y":1.5}, + {"label":"7", "x":7, "y":1.5}, + {"label":"8", "x":8, "y":1.5}, + {"label":"9", "x":9, "y":1.5}, + {"label":"0", "x":10, "y":1.5}, + {"label":"-", "x":11, "y":1.5}, + {"label":"=", "x":12, "y":1.5}, + {"label":"Backspace", "x":13, "y":1.5, "w":2}, + {"label":"Delete", "x":15, "y":1.5}, + + {"label":"Tab", "x":0, "y":2.5, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.5}, + {"label":"W", "x":2.5, "y":2.5}, + {"label":"E", "x":3.5, "y":2.5}, + {"label":"R", "x":4.5, "y":2.5}, + {"label":"T", "x":5.5, "y":2.5}, + {"label":"Y", "x":6.5, "y":2.5}, + {"label":"U", "x":7.5, "y":2.5}, + {"label":"I", "x":8.5, "y":2.5}, + {"label":"O", "x":9.5, "y":2.5}, + {"label":"P", "x":10.5, "y":2.5}, + {"label":"[", "x":11.5, "y":2.5}, + {"label":"]", "x":12.5, "y":2.5}, + {"label":"\\", "x":13.5, "y":2.5, "w":1.5}, + {"label":"PgUp", "x":15, "y":2.5}, + + {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, + {"label":"A", "x":1.75, "y":3.5}, + {"label":"S", "x":2.75, "y":3.5}, + {"label":"D", "x":3.75, "y":3.5}, + {"label":"F", "x":4.75, "y":3.5}, + {"label":"G", "x":5.75, "y":3.5}, + {"label":"H", "x":6.75, "y":3.5}, + {"label":"J", "x":7.75, "y":3.5}, + {"label":"K", "x":8.75, "y":3.5}, + {"label":"L", "x":9.75, "y":3.5}, + {"label":";", "x":10.75, "y":3.5}, + {"label":"'", "x":11.75, "y":3.5}, + {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, + {"label":"PgDn", "x":15, "y":3.5}, + + {"label":"Shift", "x":0, "y":4.5, "w":2.25}, + {"label":"Z", "x":2.25, "y":4.5}, + {"label":"X", "x":3.25, "y":4.5}, + {"label":"C", "x":4.25, "y":4.5}, + {"label":"V", "x":5.25, "y":4.5}, + {"label":"B", "x":6.25, "y":4.5}, + {"label":"N", "x":7.25, "y":4.5}, + {"label":"M", "x":8.25, "y":4.5}, + {"label":",", "x":9.25, "y":4.5}, + {"label":".", "x":10.25, "y":4.5}, + {"label":"/", "x":11.25, "y":4.5}, + {"label":"Shift", "x":12.25, "y":4.5, "w":1.75}, + {"label":"\u2191", "x":14, "y":4.5}, + {"label":"End", "x":15, "y":4.5}, + + {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, + {"label":"Win", "x":1.25, "y":5.5, "w":1.25}, + {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, + {"label":"Vol-", "x":3.75, "y":5.5 }, + {"label":"Vol+", "x":4.75, "y":5.5 }, + {"x":5.75, "y":5.5, "w":4.25}, + {"label":"Alt", "x":10, "y":5.5, "w":1.25}, + {"label":"Fn", "x":11.25, "y":5.5, "w":1.25}, + {"label":"\u2190", "x":13, "y":5.5}, + {"label":"\u2193", "x":14, "y":5.5}, + {"label":"\u2192", "x":15, "y":5.5} + ] + } + } +} diff --git a/keyboards/mwstudio/mw75/keymaps/default/keymap.c b/keyboards/mwstudio/mw75/keymaps/default/keymap.c new file mode 100644 index 00000000000..44eb8d0c04a --- /dev/null +++ b/keyboards/mwstudio/mw75/keymaps/default/keymap.c @@ -0,0 +1,57 @@ +/* Copyright 2021 TW59420 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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( + 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, RGB_TOG, + 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_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_VOLU, KC_VOLD, KC_SPACE, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT + ), + + [1] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, + RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, RGB_SAD, + _______, _______, _______, _______, _______, _______, RGB_MOD, _______, RGB_SPD, RGB_VAD, RGB_SPI + ), + + [2] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [3] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/mwstudio/mw75/keymaps/via/keymap.c b/keyboards/mwstudio/mw75/keymaps/via/keymap.c new file mode 100644 index 00000000000..44eb8d0c04a --- /dev/null +++ b/keyboards/mwstudio/mw75/keymaps/via/keymap.c @@ -0,0 +1,57 @@ +/* Copyright 2021 TW59420 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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( + 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, RGB_TOG, + 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_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_VOLU, KC_VOLD, KC_SPACE, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT + ), + + [1] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, + RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, RGB_SAD, + _______, _______, _______, _______, _______, _______, RGB_MOD, _______, RGB_SPD, RGB_VAD, RGB_SPI + ), + + [2] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [3] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/mwstudio/mw75/keymaps/via/rules.mk b/keyboards/mwstudio/mw75/keymaps/via/rules.mk new file mode 100644 index 00000000000..36b7ba9cbc9 --- /dev/null +++ b/keyboards/mwstudio/mw75/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/mwstudio/mw75/mw75.c b/keyboards/mwstudio/mw75/mw75.c new file mode 100644 index 00000000000..7e6641d5dbd --- /dev/null +++ b/keyboards/mwstudio/mw75/mw75.c @@ -0,0 +1,47 @@ +/* Copyright 2021 TW59420 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 "mw75.h" + +#ifdef RGB_MATRIX_ENABLE +led_config_t g_led_config = { { + { 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67 }, + { 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52 }, + { 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37 }, + { 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, NO_LED, 24, 23 }, + { 22, NO_LED, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9 }, + { 8, 7, 6, NO_LED, NO_LED, NO_LED, 5, NO_LED, NO_LED, NO_LED, 4, 3, 2, 1, 0 }, + { 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96 } +}, { + { 217, 60 }, { 203, 60 }, { 189, 60 }, { 166, 60 }, { 150, 60 }, { 95, 60 }, { 40, 60 }, { 24, 60 }, { 8, 60 }, + { 217, 50 }, { 203, 50 }, { 184, 50 }, { 165, 50 }, { 151, 50 }, { 137, 50 }, { 123, 50 }, { 109, 50 }, { 95, 50 }, { 81, 50 }, { 67, 50 }, { 53, 50 }, { 39, 50 }, { 17, 50 }, + { 217, 40 }, { 195, 40 }, { 172, 40 }, { 158, 40 }, { 144, 40 }, { 130, 40 }, { 116, 40 }, { 102, 40 }, { 88, 40 }, { 74, 40 }, { 60, 40 }, { 46, 40 }, { 32, 40 }, { 13, 40 }, + { 217, 30 }, { 199, 30 }, { 181, 30 }, { 165, 30 }, { 151, 30 }, { 137, 30 }, { 123, 30 }, { 109, 30 }, { 95, 30 }, { 81, 30 }, { 67, 30 }, { 53, 30 }, { 39, 30 }, { 25, 30 }, { 9, 30 }, + { 217, 20 }, { 196, 20 }, { 175, 20 }, { 161, 20 }, { 147, 20 }, { 133, 20 }, { 119, 20 }, { 105, 20 }, { 91, 20 }, { 77, 20 }, { 63, 20 }, { 49, 20 }, { 35, 20 }, { 21, 20 }, { 7, 20 }, + { 217, 5 }, { 196, 5 }, { 182, 5 }, { 168, 5 }, { 154, 5 }, { 133, 5 }, { 119, 5 }, { 105, 5 }, { 91, 5 }, { 70, 5 }, { 56, 5 }, { 42, 5 }, { 28, 5 }, { 7, 5 }, + + { 14, 14 }, { 42, 14 }, { 98, 14 }, { 154, 14 }, { 182, 14 }, { 210, 14 }, { 210, 25 }, { 210, 40 }, + { 210, 55 },{ 182, 55 },{ 126, 55 },{ 98, 55 }, { 42, 55 }, { 14, 55 }, { 14, 40 }, { 14, 25 } +}, { + 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 +} }; +#endif diff --git a/keyboards/mwstudio/mw75/mw75.h b/keyboards/mwstudio/mw75/mw75.h new file mode 100644 index 00000000000..a322ed4a1b6 --- /dev/null +++ b/keyboards/mwstudio/mw75/mw75.h @@ -0,0 +1,36 @@ +/* Copyright 2021 TW59420 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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( \ + K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014,\ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114,\ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214,\ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, K314,\ + K400, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, K414,\ + K500, K501, K502, K503, K504, K506, K510, K511, K512, K513, K514\ +) { \ + { KC_NO, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 },\ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 },\ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214 },\ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, KC_NO, K313, K314 },\ + { K400, KC_NO, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, K414 },\ + { K500, K501, K502, K503, K504, KC_NO, K506, KC_NO, KC_NO, KC_NO, K510, K511, K512, K513, K514 },\ + { 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, KC_NO } \ +} diff --git a/keyboards/mwstudio/mw75/readme.md b/keyboards/mwstudio/mw75/readme.md new file mode 100644 index 00000000000..ecabf568aa5 --- /dev/null +++ b/keyboards/mwstudio/mw75/readme.md @@ -0,0 +1,22 @@ +# MW75 + +![MW75](https://i.imgur.com/TdVxYNE.jpg?2) + +Support Atmega32u4 keyboard. + +* Keyboard Maintainer: [TW59420](https://github.com/TW59420) +* Hardware Supported: Atmega32u4 + +Make example for this keyboard (after setting up your build environment): + + make mwstudio/mw75:default + +Flashing example for this keyboard: + + make mwstudio/mw75: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). + +## Bootloader +* **Physical reset button**: Short press the button on the back of the PCB to enter the Bootloader and flash the firmware +* **Keycode in layout**: Press the key mapped to RESET if it is available diff --git a/keyboards/mwstudio/mw75/rules.mk b/keyboards/mwstudio/mw75/rules.mk new file mode 100644 index 00000000000..58d8da3e898 --- /dev/null +++ b/keyboards/mwstudio/mw75/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 = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = WS2812 +ENCODER_ENABLE = yes diff --git a/keyboards/mwstudio/readme.md b/keyboards/mwstudio/readme.md new file mode 100644 index 00000000000..1962a97d821 --- /dev/null +++ b/keyboards/mwstudio/readme.md @@ -0,0 +1,7 @@ +# MWStudio pcb + +This is a series of PCB +* MW75 The chip is ATmega32U4 +* MW65_RGB The chip is ATmega32U4 + + diff --git a/keyboards/mxss/config.h b/keyboards/mxss/config.h index b0aef681168..8cb21569422 100644 --- a/keyboards/mxss/config.h +++ b/keyboards/mxss/config.h @@ -88,52 +88,4 @@ along with this program. If not, see . */ //#define FORCE_NKRO -/* - * Magic Key Options - * - * Magic keys are hotkey commands that allow control over firmware functions of - * the keyboard. They are best used in combination with the HID Listen program, - * found here: https://www.pjrc.com/teensy/hid_listen.html - * - * The options below allow the magic key functionality to be changed. This is - * useful if your keyboard/keypad is missing keys and you want magic key support. - * - */ - -/* control how magic key switches layers */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false - -/* override magic key keymap */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM -//#define MAGIC_KEY_HELP1 H -//#define MAGIC_KEY_HELP2 SLASH -//#define MAGIC_KEY_DEBUG D -//#define MAGIC_KEY_DEBUG_MATRIX X -//#define MAGIC_KEY_DEBUG_KBD K -//#define MAGIC_KEY_DEBUG_MOUSE M -//#define MAGIC_KEY_VERSION V -//#define MAGIC_KEY_STATUS S -//#define MAGIC_KEY_CONSOLE C -//#define MAGIC_KEY_LAYER0_ALT1 ESC -//#define MAGIC_KEY_LAYER0_ALT2 GRAVE -//#define MAGIC_KEY_LAYER0 0 -//#define MAGIC_KEY_LAYER1 1 -//#define MAGIC_KEY_LAYER2 2 -//#define MAGIC_KEY_LAYER3 3 -//#define MAGIC_KEY_LAYER4 4 -//#define MAGIC_KEY_LAYER5 5 -//#define MAGIC_KEY_LAYER6 6 -//#define MAGIC_KEY_LAYER7 7 -//#define MAGIC_KEY_LAYER8 8 -//#define MAGIC_KEY_LAYER9 9 -//#define MAGIC_KEY_BOOTLOADER PAUSE -//#define MAGIC_KEY_LOCK CAPS -//#define MAGIC_KEY_EEPROM E -//#define MAGIC_KEY_NKRO N -//#define MAGIC_KEY_SLEEP_LED Z - #endif diff --git a/keyboards/nafuda/rules.mk b/keyboards/nafuda/rules.mk index e2c48f3760d..6ef5d58b1ad 100644 --- a/keyboards/nafuda/rules.mk +++ b/keyboards/nafuda/rules.mk @@ -15,7 +15,6 @@ COMMAND_ENABLE = yes # 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 = no # Enable keyboard backlight functionality AUDIO_ENABLE = no # Audio output -UNICODE_ENABLE = no # Unicode RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. OLED_ENABLE = no # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE diff --git a/keyboards/naked64/rules.mk b/keyboards/naked64/rules.mk index ae6a1b69b49..fc417211cf4 100644 --- a/keyboards/naked64/rules.mk +++ b/keyboards/naked64/rules.mk @@ -15,7 +15,6 @@ COMMAND_ENABLE = yes # 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 = no # Enable keyboard backlight functionality AUDIO_ENABLE = no # Audio output -UNICODE_ENABLE = no # Unicode RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. OLED_ENABLE = no USE_I2C = no diff --git a/keyboards/namecard2x4/rev1/config.h b/keyboards/namecard2x4/rev1/config.h index 0ca114a750f..d743c0e339b 100644 --- a/keyboards/namecard2x4/rev1/config.h +++ b/keyboards/namecard2x4/rev1/config.h @@ -97,54 +97,6 @@ along with this program. If not, see . */ //#define FORCE_NKRO -/* - * Magic Key Options - * - * Magic keys are hotkey commands that allow control over firmware functions of - * the keyboard. They are best used in combination with the HID Listen program, - * found here: https://www.pjrc.com/teensy/hid_listen.html - * - * The options below allow the magic key functionality to be changed. This is - * useful if your keyboard/keypad is missing keys and you want magic key support. - * - */ - -/* control how magic key switches layers */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false - -/* override magic key keymap */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM -//#define MAGIC_KEY_HELP1 H -//#define MAGIC_KEY_HELP2 SLASH -//#define MAGIC_KEY_DEBUG D -//#define MAGIC_KEY_DEBUG_MATRIX X -//#define MAGIC_KEY_DEBUG_KBD K -//#define MAGIC_KEY_DEBUG_MOUSE M -//#define MAGIC_KEY_VERSION V -//#define MAGIC_KEY_STATUS S -//#define MAGIC_KEY_CONSOLE C -//#define MAGIC_KEY_LAYER0_ALT1 ESC -//#define MAGIC_KEY_LAYER0_ALT2 GRAVE -//#define MAGIC_KEY_LAYER0 0 -//#define MAGIC_KEY_LAYER1 1 -//#define MAGIC_KEY_LAYER2 2 -//#define MAGIC_KEY_LAYER3 3 -//#define MAGIC_KEY_LAYER4 4 -//#define MAGIC_KEY_LAYER5 5 -//#define MAGIC_KEY_LAYER6 6 -//#define MAGIC_KEY_LAYER7 7 -//#define MAGIC_KEY_LAYER8 8 -//#define MAGIC_KEY_LAYER9 9 -//#define MAGIC_KEY_BOOTLOADER PAUSE -//#define MAGIC_KEY_LOCK CAPS -//#define MAGIC_KEY_EEPROM E -//#define MAGIC_KEY_NKRO N -//#define MAGIC_KEY_SLEEP_LED Z - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/namecard2x4/rev2/config.h b/keyboards/namecard2x4/rev2/config.h index 44b8a712a31..37434d41a08 100644 --- a/keyboards/namecard2x4/rev2/config.h +++ b/keyboards/namecard2x4/rev2/config.h @@ -97,54 +97,6 @@ along with this program. If not, see . */ //#define FORCE_NKRO -/* - * Magic Key Options - * - * Magic keys are hotkey commands that allow control over firmware functions of - * the keyboard. They are best used in combination with the HID Listen program, - * found here: https://www.pjrc.com/teensy/hid_listen.html - * - * The options below allow the magic key functionality to be changed. This is - * useful if your keyboard/keypad is missing keys and you want magic key support. - * - */ - -/* control how magic key switches layers */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false - -/* override magic key keymap */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM -//#define MAGIC_KEY_HELP1 H -//#define MAGIC_KEY_HELP2 SLASH -//#define MAGIC_KEY_DEBUG D -//#define MAGIC_KEY_DEBUG_MATRIX X -//#define MAGIC_KEY_DEBUG_KBD K -//#define MAGIC_KEY_DEBUG_MOUSE M -//#define MAGIC_KEY_VERSION V -//#define MAGIC_KEY_STATUS S -//#define MAGIC_KEY_CONSOLE C -//#define MAGIC_KEY_LAYER0_ALT1 ESC -//#define MAGIC_KEY_LAYER0_ALT2 GRAVE -//#define MAGIC_KEY_LAYER0 0 -//#define MAGIC_KEY_LAYER1 1 -//#define MAGIC_KEY_LAYER2 2 -//#define MAGIC_KEY_LAYER3 3 -//#define MAGIC_KEY_LAYER4 4 -//#define MAGIC_KEY_LAYER5 5 -//#define MAGIC_KEY_LAYER6 6 -//#define MAGIC_KEY_LAYER7 7 -//#define MAGIC_KEY_LAYER8 8 -//#define MAGIC_KEY_LAYER9 9 -//#define MAGIC_KEY_BOOTLOADER PAUSE -//#define MAGIC_KEY_LOCK CAPS -//#define MAGIC_KEY_EEPROM E -//#define MAGIC_KEY_NKRO N -//#define MAGIC_KEY_SLEEP_LED Z - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/namecard2x4/rules.mk b/keyboards/namecard2x4/rules.mk index 8cb73fc1147..a7f2822ce5b 100644 --- a/keyboards/namecard2x4/rules.mk +++ b/keyboards/namecard2x4/rules.mk @@ -17,10 +17,8 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work NKRO_ENABLE = no # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output -#UNICODEMAP_ENABLE = yes # for emoji user #RGBLIGHT_ENABLE = yes # uncomment if you want addressable led strips DEFAULT_FOLDER = namecard2x4/rev2 diff --git a/keyboards/navi10/rev0/rules.mk b/keyboards/navi10/rev0/rules.mk index 8901cf62f83..1aea059dc14 100644 --- a/keyboards/navi10/rev0/rules.mk +++ b/keyboards/navi10/rev0/rules.mk @@ -18,5 +18,4 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = no # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output diff --git a/keyboards/navi10/rev2/rules.mk b/keyboards/navi10/rev2/rules.mk index 8901cf62f83..1aea059dc14 100644 --- a/keyboards/navi10/rev2/rules.mk +++ b/keyboards/navi10/rev2/rules.mk @@ -18,5 +18,4 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = no # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output diff --git a/keyboards/navi10/rev3/rules.mk b/keyboards/navi10/rev3/rules.mk index 8901cf62f83..1aea059dc14 100644 --- a/keyboards/navi10/rev3/rules.mk +++ b/keyboards/navi10/rev3/rules.mk @@ -18,5 +18,4 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = no # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output diff --git a/keyboards/nek_type_a/rules.mk b/keyboards/nek_type_a/rules.mk index 91b2e320047..55baa97712b 100644 --- a/keyboards/nek_type_a/rules.mk +++ b/keyboards/nek_type_a/rules.mk @@ -18,7 +18,6 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = no # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output CUSTOM_MATRIX = yes diff --git a/keyboards/neokeys/g67/element_hs/config.h b/keyboards/neokeys/g67/element_hs/config.h new file mode 100644 index 00000000000..3efc322d8d1 --- /dev/null +++ b/keyboards/neokeys/g67/element_hs/config.h @@ -0,0 +1,66 @@ +/* Copyright 2021 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 . + */ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4E4B // "NK" +#define PRODUCT_ID 0x5049 +#define DEVICE_VER 0x0100 +#define MANUFACTURER NEO Keys +#define PRODUCT Element G67 Hotswap + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS { B0, B1, B2, B3, F7 } +#define MATRIX_COL_PINS { C7, F6, F5, F4, F1, B7, D5, D1, D2, D3, D4, D0, D6, D7, B4 } + +#define DIODE_DIRECTION COL2ROW + +#if defined(RGBLIGHT_ENABLE) + #define RGB_DI_PIN F0 + #define RGBLED_NUM 77 + #define RGBLIGHT_HUE_STEP 8 + #define RGBLIGHT_SAT_STEP 8 + #define RGBLIGHT_VAL_STEP 8 + #define RGBLIGHT_LIMIT_VAL 150 /* 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_EFFECT_BREATHING +#define RGBLIGHT_EFFECT_RAINBOW_MOOD +#define RGBLIGHT_EFFECT_RAINBOW_SWIRL +#define RGBLIGHT_EFFECT_SNAKE +#define RGBLIGHT_EFFECT_KNIGHT +#define RGBLIGHT_EFFECT_CHRISTMAS +#define RGBLIGHT_EFFECT_STATIC_GRADIENT +#define RGBLIGHT_EFFECT_RGB_TEST +#define RGBLIGHT_EFFECT_ALTERNATING +#define RGBLIGHT_EFFECT_TWINKLE +#endif diff --git a/keyboards/neokeys/g67/element_hs/element_hs.c b/keyboards/neokeys/g67/element_hs/element_hs.c new file mode 100644 index 00000000000..c5dd40fe6a9 --- /dev/null +++ b/keyboards/neokeys/g67/element_hs/element_hs.c @@ -0,0 +1,17 @@ +/* Copyright 2021 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 "element_hs.h" diff --git a/keyboards/neokeys/g67/element_hs/element_hs.h b/keyboards/neokeys/g67/element_hs/element_hs.h new file mode 100644 index 00000000000..cfb7d67b60c --- /dev/null +++ b/keyboards/neokeys/g67/element_hs/element_hs.h @@ -0,0 +1,34 @@ +/* Copyright 2021 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 . + */ + +#pragma once + +#include "quantum.h" + +#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, K43, K46, K4A, K4B, K4C, K4D, K4E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, K2E }, \ + { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ + { K40, K41, KC_NO, K43, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D, K4E }, \ +} + diff --git a/keyboards/neokeys/g67/element_hs/info.json b/keyboards/neokeys/g67/element_hs/info.json new file mode 100644 index 00000000000..3b20d104024 --- /dev/null +++ b/keyboards/neokeys/g67/element_hs/info.json @@ -0,0 +1,82 @@ +{ + "keyboard_name": "NEO Keys Element Hotswap", + "url": "", + "maintainer": "qmk", + "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} + ] + } + } +} diff --git a/keyboards/neokeys/g67/element_hs/keymaps/default/keymap.c b/keyboards/neokeys/g67/element_hs/keymaps/default/keymap.c new file mode 100644 index 00000000000..e617a80b523 --- /dev/null +++ b/keyboards/neokeys/g67/element_hs/keymaps/default/keymap.c @@ -0,0 +1,34 @@ +/* Copyright 2021 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_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_TILD, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = 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_HOME, + _______, 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_END, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, KC_INS, KC_HOME, KC_PGUP, _______, KC_PGUP, + _______, RESET, BL_DEC, BL_TOGG, BL_INC, KC_VOLD, KC_MUTE, KC_VOLU, _______, KC_DEL, KC_END, KC_PGDN, _______, KC_PGDN, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/neokeys/g67/element_hs/keymaps/via/keymap.c b/keyboards/neokeys/g67/element_hs/keymaps/via/keymap.c new file mode 100644 index 00000000000..5fb2edac5e0 --- /dev/null +++ b/keyboards/neokeys/g67/element_hs/keymaps/via/keymap.c @@ -0,0 +1,49 @@ +/* Copyright 2021 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_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_TILD, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = 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_HOME, + _______, 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_END, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, KC_INS, KC_HOME, KC_PGUP, _______, KC_PGUP, + _______, RESET, BL_DEC, BL_TOGG, BL_INC, KC_VOLD, KC_MUTE, KC_VOLU, _______, KC_DEL, KC_END, KC_PGDN, _______, KC_PGDN, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT_65_ansi_blocker( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + + ), + [3] = LAYOUT_65_ansi_blocker( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/neokeys/g67/element_hs/keymaps/via/rules.mk b/keyboards/neokeys/g67/element_hs/keymaps/via/rules.mk new file mode 100644 index 00000000000..152460f3047 --- /dev/null +++ b/keyboards/neokeys/g67/element_hs/keymaps/via/rules.mk @@ -0,0 +1,3 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes +KEY_LOCK_ENABLE = no diff --git a/keyboards/neokeys/g67/element_hs/readme.md b/keyboards/neokeys/g67/element_hs/readme.md new file mode 100644 index 00000000000..02f63e9f9e4 --- /dev/null +++ b/keyboards/neokeys/g67/element_hs/readme.md @@ -0,0 +1,19 @@ +# Element G67 Hotswap + +A blockered 65% with per-key RGB, underglow, and USB Type C. + +* Keyboard Maintainer: [MechMerlin](https://github.com/mechmerlin) +* Hardware Supported: Element G67 Hotswap (ATmega32U4) +* Hardware Availability: [NEO Keys](https://www.neokeys.net/) + +Make example for this keyboard (after setting up your build environment): + + make neokeys/g67/element_hs:default + +Flashing example for this keyboard: + + make neokeys/g67/element_hs:default:flash + +To reset the board into bootloader mode, hold the key at the top left of the keyboard while connecting the USB cable (also erases persistent settings). + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/neokeys/g67/element_hs/rules.mk b/keyboards/neokeys/g67/element_hs/rules.mk new file mode 100644 index 00000000000..bf105353e17 --- /dev/null +++ b/keyboards/neokeys/g67/element_hs/rules.mk @@ -0,0 +1,25 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output + +KEY_LOCK_ENABLE = yes # Enable KC_LOCK support + +LAYOUTS = 65_ansi_blocker diff --git a/keyboards/nightly_boards/n87/config.h b/keyboards/nightly_boards/n87/config.h index 7d81bf7fd86..543399e71a0 100644 --- a/keyboards/nightly_boards/n87/config.h +++ b/keyboards/nightly_boards/n87/config.h @@ -127,59 +127,6 @@ along with this program. If not, see . */ //#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. diff --git a/keyboards/nightmare/config.h b/keyboards/nightmare/config.h index 3282c8ae26e..14477ee4de9 100644 --- a/keyboards/nightmare/config.h +++ b/keyboards/nightmare/config.h @@ -121,59 +121,6 @@ along with this program. If not, see . */ //#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. diff --git a/keyboards/nightmare/rules.mk b/keyboards/nightmare/rules.mk index 86bb4c7592d..077733ea876 100644 --- a/keyboards/nightmare/rules.mk +++ b/keyboards/nightmare/rules.mk @@ -18,5 +18,4 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = no # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output diff --git a/keyboards/niu_mini/rules.mk b/keyboards/niu_mini/rules.mk index 3a5ec5f68cb..38d3e225aa3 100644 --- a/keyboards/niu_mini/rules.mk +++ b/keyboards/niu_mini/rules.mk @@ -16,7 +16,6 @@ COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = yes # 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 AUDIO_ENABLE = no # Audio output -UNICODE_ENABLE = no # Unicode RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE diff --git a/keyboards/nomu30/rev1/rules.mk b/keyboards/nomu30/rev1/rules.mk index 6153a4a6159..f7d33ff70a6 100644 --- a/keyboards/nomu30/rev1/rules.mk +++ b/keyboards/nomu30/rev1/rules.mk @@ -18,5 +18,4 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = no # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output diff --git a/keyboards/novelpad/config.h b/keyboards/novelpad/config.h index 0b8edcf193b..a7947220ffa 100755 --- a/keyboards/novelpad/config.h +++ b/keyboards/novelpad/config.h @@ -121,59 +121,6 @@ along with this program. If not, see . */ //#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_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) - -/* 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. diff --git a/keyboards/noxary/220/config.h b/keyboards/noxary/220/config.h index d935d2fe41e..522d1beca85 100644 --- a/keyboards/noxary/220/config.h +++ b/keyboards/noxary/220/config.h @@ -94,59 +94,6 @@ along with this program. If not, see . */ //#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_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) - -/* 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. diff --git a/keyboards/noxary/220/rules.mk b/keyboards/noxary/220/rules.mk index 1fd873d1da2..04660de94a2 100644 --- a/keyboards/noxary/220/rules.mk +++ b/keyboards/noxary/220/rules.mk @@ -18,7 +18,6 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = no # USB Nkey Rollover BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output LAYOUTS = ortho_6x4 diff --git a/keyboards/noxary/260/config.h b/keyboards/noxary/260/config.h index e6d5e78b472..2a9ac07bdb4 100644 --- a/keyboards/noxary/260/config.h +++ b/keyboards/noxary/260/config.h @@ -127,59 +127,6 @@ along with this program. If not, see . */ //#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_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) - -/* 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. diff --git a/keyboards/noxary/260/rules.mk b/keyboards/noxary/260/rules.mk index 0b59b053019..f3c72a4c408 100644 --- a/keyboards/noxary/260/rules.mk +++ b/keyboards/noxary/260/rules.mk @@ -18,7 +18,6 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = no # USB Nkey Rollover BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output EXTRAFLAGS += -flto diff --git a/keyboards/noxary/268/rules.mk b/keyboards/noxary/268/rules.mk index cb1e5c3e186..6785f2fb501 100644 --- a/keyboards/noxary/268/rules.mk +++ b/keyboards/noxary/268/rules.mk @@ -18,5 +18,4 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = no # USB Nkey Rollover BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output diff --git a/keyboards/noxary/268_2/config.h b/keyboards/noxary/268_2/config.h index d7baf3b6a4c..c8fbdd3bf4e 100644 --- a/keyboards/noxary/268_2/config.h +++ b/keyboards/noxary/268_2/config.h @@ -95,59 +95,6 @@ along with this program. If not, see . */ //#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_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) - -/* 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. diff --git a/keyboards/noxary/268_2/rules.mk b/keyboards/noxary/268_2/rules.mk index 07364ca8b75..4236ca3806b 100644 --- a/keyboards/noxary/268_2/rules.mk +++ b/keyboards/noxary/268_2/rules.mk @@ -18,7 +18,6 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = yes # USB Nkey Rollover BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output LAYOUTS = 65_ansi_blocker diff --git a/keyboards/noxary/280/config.h b/keyboards/noxary/280/config.h index b1b123a633f..15de7028597 100644 --- a/keyboards/noxary/280/config.h +++ b/keyboards/noxary/280/config.h @@ -94,59 +94,6 @@ along with this program. If not, see . */ //#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_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) - -/* 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. diff --git a/keyboards/noxary/280/rules.mk b/keyboards/noxary/280/rules.mk index cb1e5c3e186..6785f2fb501 100644 --- a/keyboards/noxary/280/rules.mk +++ b/keyboards/noxary/280/rules.mk @@ -18,5 +18,4 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = no # USB Nkey Rollover BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output diff --git a/keyboards/noxary/x268/config.h b/keyboards/noxary/x268/config.h index a6da7ef832e..5f33c18e812 100644 --- a/keyboards/noxary/x268/config.h +++ b/keyboards/noxary/x268/config.h @@ -102,54 +102,6 @@ along with this program. If not, see . */ //#define FORCE_NKRO -/* - * Magic Key Options - * - * Magic keys are hotkey commands that allow control over firmware functions of - * the keyboard. They are best used in combination with the HID Listen program, - * found here: https://www.pjrc.com/teensy/hid_listen.html - * - * The options below allow the magic key functionality to be changed. This is - * useful if your keyboard/keypad is missing keys and you want magic key support. - * - */ - -/* control how magic key switches layers */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false - -/* override magic key keymap */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM -//#define MAGIC_KEY_HELP1 H -//#define MAGIC_KEY_HELP2 SLASH -//#define MAGIC_KEY_DEBUG D -//#define MAGIC_KEY_DEBUG_MATRIX X -//#define MAGIC_KEY_DEBUG_KBD K -//#define MAGIC_KEY_DEBUG_MOUSE M -//#define MAGIC_KEY_VERSION V -//#define MAGIC_KEY_STATUS S -//#define MAGIC_KEY_CONSOLE C -//#define MAGIC_KEY_LAYER0_ALT1 ESC -//#define MAGIC_KEY_LAYER0_ALT2 GRAVE -//#define MAGIC_KEY_LAYER0 0 -//#define MAGIC_KEY_LAYER1 1 -//#define MAGIC_KEY_LAYER2 2 -//#define MAGIC_KEY_LAYER3 3 -//#define MAGIC_KEY_LAYER4 4 -//#define MAGIC_KEY_LAYER5 5 -//#define MAGIC_KEY_LAYER6 6 -//#define MAGIC_KEY_LAYER7 7 -//#define MAGIC_KEY_LAYER8 8 -//#define MAGIC_KEY_LAYER9 9 -//#define MAGIC_KEY_BOOTLOADER PAUSE -//#define MAGIC_KEY_LOCK CAPS -//#define MAGIC_KEY_EEPROM E -//#define MAGIC_KEY_NKRO N -//#define MAGIC_KEY_SLEEP_LED Z - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/noxary/x268/rules.mk b/keyboards/noxary/x268/rules.mk index 4c9e6546d64..fcc43a2f73a 100644 --- a/keyboards/noxary/x268/rules.mk +++ b/keyboards/noxary/x268/rules.mk @@ -18,5 +18,4 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = yes # USB Nkey Rollover BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output diff --git a/keyboards/nullbitsco/nibble/bitc_led.c b/keyboards/nullbitsco/common/bitc_led.c similarity index 97% rename from keyboards/nullbitsco/nibble/bitc_led.c rename to keyboards/nullbitsco/common/bitc_led.c index 60ffeea2789..64d7c7160a7 100644 --- a/keyboards/nullbitsco/nibble/bitc_led.c +++ b/keyboards/nullbitsco/common/bitc_led.c @@ -1,4 +1,4 @@ -/* Copyright 2020 Jay Greco +/* Copyright 2021 Jay Greco * * This 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/nullbitsco/nibble/bitc_led.h b/keyboards/nullbitsco/common/bitc_led.h similarity index 93% rename from keyboards/nullbitsco/nibble/bitc_led.h rename to keyboards/nullbitsco/common/bitc_led.h index b3552a7d198..14cd4f15b7d 100644 --- a/keyboards/nullbitsco/nibble/bitc_led.h +++ b/keyboards/nullbitsco/common/bitc_led.h @@ -1,4 +1,4 @@ -/* Copyright 2020 Jay Greco +/* Copyright 2021 Jay Greco * * This 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/nullbitsco/nibble/remote_kb.c b/keyboards/nullbitsco/common/remote_kb.c similarity index 99% rename from keyboards/nullbitsco/nibble/remote_kb.c rename to keyboards/nullbitsco/common/remote_kb.c index 7a914993f31..89cbf9a92a9 100644 --- a/keyboards/nullbitsco/nibble/remote_kb.c +++ b/keyboards/nullbitsco/common/remote_kb.c @@ -1,4 +1,4 @@ -/* Copyright 2020 Jay Greco +/* Copyright 2021 Jay Greco * * This 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/nullbitsco/nibble/remote_kb.h b/keyboards/nullbitsco/common/remote_kb.h similarity index 95% rename from keyboards/nullbitsco/nibble/remote_kb.h rename to keyboards/nullbitsco/common/remote_kb.h index f4b5c43f5da..6270e8f9f1e 100644 --- a/keyboards/nullbitsco/nibble/remote_kb.h +++ b/keyboards/nullbitsco/common/remote_kb.h @@ -1,4 +1,4 @@ -/* Copyright 2020 Jay Greco +/* Copyright 2021 Jay Greco * * This 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/nullbitsco/nibble/big_led.c b/keyboards/nullbitsco/nibble/big_led.c index 9fd06a5de17..d66a8081539 100644 --- a/keyboards/nullbitsco/nibble/big_led.c +++ b/keyboards/nullbitsco/nibble/big_led.c @@ -1,4 +1,4 @@ -/* Copyright 2020 Jay Greco +/* Copyright 2021 Jay Greco * * This 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/nullbitsco/nibble/big_led.h b/keyboards/nullbitsco/nibble/big_led.h index b4b0650787a..4ebcc35f08e 100644 --- a/keyboards/nullbitsco/nibble/big_led.h +++ b/keyboards/nullbitsco/nibble/big_led.h @@ -1,4 +1,4 @@ -/* Copyright 2020 Jay Greco +/* Copyright 2021 Jay Greco * * This 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/nullbitsco/nibble/config.h b/keyboards/nullbitsco/nibble/config.h index 3e0adce454a..b88d4bc360f 100644 --- a/keyboards/nullbitsco/nibble/config.h +++ b/keyboards/nullbitsco/nibble/config.h @@ -1,4 +1,4 @@ -/* Copyright 2020 Jay Greco +/* Copyright 2021 Jay Greco * * This 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/nullbitsco/nibble/keymaps/default/keymap.c b/keyboards/nullbitsco/nibble/keymaps/default/keymap.c index beac1c55a20..f9fc56e7026 100644 --- a/keyboards/nullbitsco/nibble/keymaps/default/keymap.c +++ b/keyboards/nullbitsco/nibble/keymaps/default/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2020 Jay Greco +/* Copyright 2021 Jay Greco * * This 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/nullbitsco/nibble/keymaps/iso/keymap.c b/keyboards/nullbitsco/nibble/keymaps/iso/keymap.c index 270350ca0f7..0f0ed590a4e 100644 --- a/keyboards/nullbitsco/nibble/keymaps/iso/keymap.c +++ b/keyboards/nullbitsco/nibble/keymaps/iso/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2020 Jay Greco +/* Copyright 2021 Jay Greco * * This 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/nullbitsco/nibble/keymaps/oled/keymap.c b/keyboards/nullbitsco/nibble/keymaps/oled/keymap.c index 0e0a152ec13..14f79f5fbfa 100644 --- a/keyboards/nullbitsco/nibble/keymaps/oled/keymap.c +++ b/keyboards/nullbitsco/nibble/keymaps/oled/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2020 Jay Greco +/* Copyright 2021 Jay Greco * * This 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/nullbitsco/nibble/keymaps/via/keymap.c b/keyboards/nullbitsco/nibble/keymaps/via/keymap.c index 67a53f241ba..b1c9242b9ad 100644 --- a/keyboards/nullbitsco/nibble/keymaps/via/keymap.c +++ b/keyboards/nullbitsco/nibble/keymaps/via/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2020 Jay Greco +/* Copyright 2021 Jay Greco * * This 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/nullbitsco/nibble/matrix.c b/keyboards/nullbitsco/nibble/matrix.c index 8ec9da2844c..496c5dbe322 100644 --- a/keyboards/nullbitsco/nibble/matrix.c +++ b/keyboards/nullbitsco/nibble/matrix.c @@ -1,4 +1,4 @@ -/* Copyright 2020 Jay Greco +/* Copyright 2021 Jay Greco * * This 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/nullbitsco/nibble/nibble.c b/keyboards/nullbitsco/nibble/nibble.c index 409edd44a01..43918c13e64 100644 --- a/keyboards/nullbitsco/nibble/nibble.c +++ b/keyboards/nullbitsco/nibble/nibble.c @@ -1,4 +1,4 @@ -/* Copyright 2020 Jay Greco +/* Copyright 2021 Jay Greco * * This 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,7 +14,6 @@ * along with this program. If not, see . */ #include QMK_KEYBOARD_H -#include "bitc_led.h" // Use Bit-C LED to show CAPS LOCK status bool led_update_kb(led_t led_state) { diff --git a/keyboards/nullbitsco/nibble/nibble.h b/keyboards/nullbitsco/nibble/nibble.h index b974edaba5c..58ac8044511 100644 --- a/keyboards/nullbitsco/nibble/nibble.h +++ b/keyboards/nullbitsco/nibble/nibble.h @@ -1,4 +1,4 @@ -/* Copyright 2020 Jay Greco +/* Copyright 2021 Jay Greco * * This 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,7 +18,8 @@ #define ___ KC_NO #include "quantum.h" -#include "remote_kb.h" +#include "common/remote_kb.h" +#include "common/bitc_led.h" #define LAYOUT_all( \ K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ diff --git a/keyboards/nullbitsco/nibble/rules.mk b/keyboards/nullbitsco/nibble/rules.mk index dd4d36c981c..ab20cfa2461 100644 --- a/keyboards/nullbitsco/nibble/rules.mk +++ b/keyboards/nullbitsco/nibble/rules.mk @@ -23,7 +23,7 @@ CUSTOM_MATRIX = lite # Lite custom matrix # Project specific files SRC += matrix.c \ - bitc_led.c \ + common/bitc_led.c \ big_led.c \ - remote_kb.c + common/remote_kb.c QUANTUM_LIB_SRC += uart.c diff --git a/keyboards/nullbitsco/scramble/config.h b/keyboards/nullbitsco/scramble/config.h index 949c280263f..811f28e6be1 100644 --- a/keyboards/nullbitsco/scramble/config.h +++ b/keyboards/nullbitsco/scramble/config.h @@ -1,5 +1,5 @@ /* -Copyright 2020 Jay Greco +Copyright 2021 Jay Greco This 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/nullbitsco/scramble/keymaps/default/keymap.c b/keyboards/nullbitsco/scramble/keymaps/default/keymap.c index b80214110a6..a798bd3cb80 100644 --- a/keyboards/nullbitsco/scramble/keymaps/default/keymap.c +++ b/keyboards/nullbitsco/scramble/keymaps/default/keymap.c @@ -1,5 +1,5 @@ /* -Copyright 2020 Jay Greco +Copyright 2021 Jay Greco This 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/nullbitsco/scramble/keymaps/oled/config.h b/keyboards/nullbitsco/scramble/keymaps/oled/config.h index 5bfc9cff759..cd980b09366 100644 --- a/keyboards/nullbitsco/scramble/keymaps/oled/config.h +++ b/keyboards/nullbitsco/scramble/keymaps/oled/config.h @@ -1,5 +1,5 @@ /* -Copyright 2020 Jay Greco +Copyright 2021 Jay Greco This 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/nullbitsco/scramble/keymaps/oled/keymap.c b/keyboards/nullbitsco/scramble/keymaps/oled/keymap.c index 41356631af2..109da78ad6f 100644 --- a/keyboards/nullbitsco/scramble/keymaps/oled/keymap.c +++ b/keyboards/nullbitsco/scramble/keymaps/oled/keymap.c @@ -1,5 +1,5 @@ /* -Copyright 2020 Jay Greco +Copyright 2021 Jay Greco This 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/nullbitsco/scramble/keymaps/via/keymap.c b/keyboards/nullbitsco/scramble/keymaps/via/keymap.c index d5b97855a5f..4c0ffbe2ebe 100644 --- a/keyboards/nullbitsco/scramble/keymaps/via/keymap.c +++ b/keyboards/nullbitsco/scramble/keymaps/via/keymap.c @@ -1,5 +1,5 @@ /* -Copyright 2020 Jay Greco +Copyright 2021 Jay Greco This 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/nullbitsco/scramble/scramble.c b/keyboards/nullbitsco/scramble/scramble.c index 3e981cfbb32..f9f28d2c31b 100644 --- a/keyboards/nullbitsco/scramble/scramble.c +++ b/keyboards/nullbitsco/scramble/scramble.c @@ -1,5 +1,5 @@ /* -Copyright 2020 Jay Greco +Copyright 2021 Jay Greco This 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/nullbitsco/scramble/scramble.h b/keyboards/nullbitsco/scramble/scramble.h index 5d3e1b01035..101645e51d2 100644 --- a/keyboards/nullbitsco/scramble/scramble.h +++ b/keyboards/nullbitsco/scramble/scramble.h @@ -1,4 +1,4 @@ -/* Copyright 2020 Jay Greco +/* Copyright 2021 Jay Greco * * This 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/ok60/rules.mk b/keyboards/ok60/rules.mk index 1b6a9b6cd50..b8967270096 100644 --- a/keyboards/ok60/rules.mk +++ b/keyboards/ok60/rules.mk @@ -12,11 +12,8 @@ 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 -KEYBOARD_LOCK_ENABLE = yes # Allow locking of keyboard via magic key NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable the RGB backlight -MIDI_ENABLE = no # MIDI support -# UNICODE_ENABLE = YES # Unicode LAYOUTS = 60_ansi 60_iso 60_hhkb diff --git a/keyboards/org60/rules.mk b/keyboards/org60/rules.mk index e27e158ef21..35de172038d 100644 --- a/keyboards/org60/rules.mk +++ b/keyboards/org60/rules.mk @@ -15,6 +15,5 @@ MOUSEKEY_ENABLE = yes # Mouse keys NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend -UNICODE_ENABLE = no # Unicode LAYOUTS = 60_ansi diff --git a/keyboards/ortho5by12/rules.mk b/keyboards/ortho5by12/rules.mk index 645e99bec3d..0712246c027 100644 --- a/keyboards/ortho5by12/rules.mk +++ b/keyboards/ortho5by12/rules.mk @@ -18,6 +18,5 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = no # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output LAYOUTS_HAS_RGB = no diff --git a/keyboards/orthodox/keymaps/shaymdev/config.h b/keyboards/orthodox/keymaps/shaymdev/config.h new file mode 100644 index 00000000000..749302284a2 --- /dev/null +++ b/keyboards/orthodox/keymaps/shaymdev/config.h @@ -0,0 +1,60 @@ +/* +This is the c configuration file for the keymap + +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert +Copyright 2017 Art Ortenburger + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 + +#define EE_HANDS + +#undef RGBLED_NUM +#define RGBLED_NUM 14 +// #define RGBLIGHT_ANIMATIONS + +#define RGBLIGHT_EFFECT_BREATHING +#define RGBLIGHT_EFFECT_RAINBOW_MOOD +#define RGBLIGHT_EFFECT_RAINBOW_SWIRL +#define RGBLIGHT_EFFECT_KNIGHT + +// #define RGBLED_SPLIT { 5, 5 } +#undef RGB_DI_PIN +#define RGB_DI_PIN D3 +#define RGBLIGHT_LAYERS +#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF +#define RGBLIGHT_SLEEP + +#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 + +#define COMBO_COUNT 1 + +#define IGNORE_MOD_TAP_INTERRUPT +#define TAPPING_TERM 220 + diff --git a/keyboards/orthodox/keymaps/shaymdev/keymap.c b/keyboards/orthodox/keymaps/shaymdev/keymap.c new file mode 100644 index 00000000000..54ae7e39728 --- /dev/null +++ b/keyboards/orthodox/keymaps/shaymdev/keymap.c @@ -0,0 +1,196 @@ +/* +This is the keymap for the keyboard + +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert +Copyright 2017 Art Ortenburger + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 orthodox_layers +{ + _DVORAK, + _QWERTY, + _LOWER, + _RAISE, + _ADJUST, +}; + +enum combos //match combo_count in config.h +{ + EU_ENT, +}; + +const uint16_t PROGMEM eu_combo[] = {KC_E, KC_U, COMBO_END}; + +combo_t key_combos[COMBO_COUNT] = { + [EU_ENT] = COMBO_ACTION(eu_combo), +}; + +void process_combo_event(uint16_t combo_index, bool pressed) { + switch(combo_index) { + case EU_ENT: + if (pressed) { + tap_code16(KC_ENT); + } + break; + } +} + + +enum custom_keycodes { + DVORAK = SAFE_RANGE, + QWERTY, + VELOCI +}; + +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) + +#define TO_DV TO(_DVORAK) +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + +[_DVORAK] = LAYOUT( + KC_ESC, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, + KC_TAB, GUI_T(KC_A), ALT_T(KC_O), KC_E, KC_U, KC_I, KC_ENT, KC_LALT, KC_DEL, KC_LGUI, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, + KC_EQL, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, TT(LOWER), KC_LSFT, KC_LCTL, KC_BSPC, ALT_T(KC_SPC), TT(RAISE), KC_B, KC_M, KC_W, KC_V, KC_Z, KC_BSLS +), + +[_QWERTY] = LAYOUT( + 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_QUOT, + KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, _______, _______, _______, _______, _______, _______, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT +), + +[_LOWER] = LAYOUT( + _______, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_AMPR, _______, KC_P7, KC_P8, KC_P9, KC_PMNS, _______, + _______, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_ASTR, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_PPLS, _______, + _______, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_GRV, _______, _______, _______, _______, _______, KC_KP_0, _______, KC_P1, KC_P2, KC_P3, KC_PENT, _______ +), + +[_RAISE] = LAYOUT( + _______, KC_PSCR, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_VOLU, KC_F7, KC_F8, KC_F9, KC_F10, XXXXXXX, + KC_CAPS, KC_INS, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, _______, _______, _______, KC_VOLD, KC_F4, KC_F5, KC_F6, KC_F11, XXXXXXX, + _______, KC_NLCK, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_F1, KC_F2, KC_F3, KC_F12, XXXXXXX +), + +[_ADJUST] = LAYOUT( + TO_DV, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_SLEP, + RGB_TOG, RGB_MOD, VLK_TOG, AU_ON, AU_OFF, AG_NORM, _______, _______, _______, _______, AG_SWAP, QWERTY, DVORAK, _______, _______, _______, + RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY +) + + +}; + +const key_override_t delete_key_override = ko_make_basic(MOD_MASK_SHIFT, KC_BSPACE, KC_DELETE); + +// This globally defines all key overrides to be used +const key_override_t **key_overrides = (const key_override_t *[]){ + &delete_key_override, + NULL // Null terminate the array of overrides! +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + break; + case DVORAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_DVORAK); + } + return false; + break; +// case VELOCI: +// #ifdef VELOCIKEY_ENABLE +// velocikey_toggle(); +// return false; +// #endif +// break; + } + return true; +} + +#ifdef RGBLIGHT_ENABLE + +const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {4, 6, HSV_RED} // Light 6 LEDs, starting with LED 4 +); + +const rgblight_segment_t PROGMEM my_qwerty_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 3, HSV_CHARTREUSE} // Light 3 LEDs, starting with LED 0 +); + +const rgblight_segment_t PROGMEM my_lower_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {4, 3, HSV_BLUE} // Light LEDs 5-6 +); + +const rgblight_segment_t PROGMEM my_raise_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {7, 3, HSV_ORANGE} // Light LEDs 7-8 +); + +const rgblight_segment_t PROGMEM my_adjust_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {4, 6, HSV_GREEN} // Light 10 LEDs, starting with LED 0 +); + + +// Later layers take precedence. This array corresponds to the magic numbers used in rgblight_set_layer_state(i, onOff) +const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( + my_capslock_layer, + my_qwerty_layer, // Overrides other layers + my_lower_layer, // Overrides other layers + my_raise_layer, // Overrides other layers + my_adjust_layer // Overrides other layers +); + +void keyboard_post_init_user(void) { + // Enable the LED layers + rgblight_layers = my_rgb_layers; + rgblight_enable_noeeprom(); // Enables RGB, without saving settings + //rgblight_sethsv_noeeprom(HSV_CYAN); + //rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); + rgblight_mode_noeeprom(RGBLIGHT_MODE_RAINBOW_SWIRL); +} + +bool led_update_user(led_t led_state) { + rgblight_set_layer_state(0, led_state.caps_lock); + return true; +} + +layer_state_t default_layer_state_set_user(layer_state_t state) { + rgblight_set_layer_state(1, layer_state_cmp(state, _QWERTY)); + return state; +} + +#endif + +layer_state_t layer_state_set_user(layer_state_t state) { + state = update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); + +#ifdef RGBLIGHT_ENABLE + rgblight_set_layer_state(2, layer_state_cmp(state, _LOWER)); + rgblight_set_layer_state(3, layer_state_cmp(state, _RAISE)); + rgblight_set_layer_state(4, layer_state_cmp(state, _ADJUST)); +#endif + + return state; +} diff --git a/keyboards/orthodox/keymaps/shaymdev/rules.mk b/keyboards/orthodox/keymaps/shaymdev/rules.mk new file mode 100644 index 00000000000..c6ecb2372fb --- /dev/null +++ b/keyboards/orthodox/keymaps/shaymdev/rules.mk @@ -0,0 +1,6 @@ +MOUSEKEY_ENABLE = no +RGBLIGHT_ENABLE = yes +VELOCIKEY_ENABLE = yes +KEY_OVERRIDE_ENABLE = yes +COMBO_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/orthodox/rules.mk b/keyboards/orthodox/rules.mk index 96fa8b33dcf..7a8c4f94885 100644 --- a/keyboards/orthodox/rules.mk +++ b/keyboards/orthodox/rules.mk @@ -13,7 +13,6 @@ COMMAND_ENABLE = yes # 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 = no # Enable keyboard backlight functionality AUDIO_ENABLE = no # Audio output -UNICODE_ENABLE = no # Unicode RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend diff --git a/keyboards/otaku_split/rev0/config.h b/keyboards/otaku_split/rev0/config.h index 00e003e3b58..454f4866e66 100644 --- a/keyboards/otaku_split/rev0/config.h +++ b/keyboards/otaku_split/rev0/config.h @@ -123,59 +123,6 @@ along with this program. If not, see . */ //#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_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) - -/* 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. diff --git a/keyboards/otaku_split/rev0/rules.mk b/keyboards/otaku_split/rev0/rules.mk index 6f20c13a392..bd1b93c5c89 100644 --- a/keyboards/otaku_split/rev0/rules.mk +++ b/keyboards/otaku_split/rev0/rules.mk @@ -18,6 +18,5 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = no # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output SPLIT_KEYBOARD=yes diff --git a/keyboards/otaku_split/rev1/config.h b/keyboards/otaku_split/rev1/config.h index ce9a78db71e..7ae6155d8c3 100644 --- a/keyboards/otaku_split/rev1/config.h +++ b/keyboards/otaku_split/rev1/config.h @@ -127,59 +127,6 @@ along with this program. If not, see . */ //#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_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) - -/* 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. diff --git a/keyboards/otaku_split/rev1/rules.mk b/keyboards/otaku_split/rev1/rules.mk index 6f20c13a392..bd1b93c5c89 100644 --- a/keyboards/otaku_split/rev1/rules.mk +++ b/keyboards/otaku_split/rev1/rules.mk @@ -18,6 +18,5 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = no # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output SPLIT_KEYBOARD=yes diff --git a/keyboards/owlab/suit80/ansi/ansi.c b/keyboards/owlab/suit80/ansi/ansi.c new file mode 100644 index 00000000000..7e75773f1dc --- /dev/null +++ b/keyboards/owlab/suit80/ansi/ansi.c @@ -0,0 +1,17 @@ +/* +Copyright 2021 owlab + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 "ansi.h" diff --git a/keyboards/owlab/suit80/ansi/ansi.h b/keyboards/owlab/suit80/ansi/ansi.h new file mode 100644 index 00000000000..d01296f2c1d --- /dev/null +++ b/keyboards/owlab/suit80/ansi/ansi.h @@ -0,0 +1,36 @@ +/* +Copyright 2021 owlab + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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_ansi( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K114, K214, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K313, K314, K412, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K413, K414, K510, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, \ + K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K511, \ + K500, K501, K502, K504, K507, K508, K509, K512, K513, K514 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314 }, \ + { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, K414 }, \ + { K500, K501, K502, KC_NO, K504, KC_NO, KC_NO, K507, K508, K509, K510, K511, K512, K513, K514 } \ +} diff --git a/keyboards/owlab/suit80/ansi/config.h b/keyboards/owlab/suit80/ansi/config.h new file mode 100644 index 00000000000..02c44da2126 --- /dev/null +++ b/keyboards/owlab/suit80/ansi/config.h @@ -0,0 +1,46 @@ +/* +Copyright 2021 owlab + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 0x4F53 //0x4F53 OS for owl studio +#define PRODUCT_ID 0x5355 //0x5355 SU for SUIT +#define DEVICE_VER 0x0001 +#define MANUFACTURER OwLab +#define PRODUCT SUIT80 + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 15 + +/* Keyboard Matrix Assignments */ +#define MATRIX_ROW_PINS { E6, B0, B7, D0, D1, D2 } +#define MATRIX_COL_PINS { D5, D4, D6, D7, B4, B5, B6, C6, C7, F4, F7, F6, F5, F1, F0 } + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* NKRO */ +#ifdef NKRO_ENABLE +# define FORCE_NKRO +#endif \ No newline at end of file diff --git a/keyboards/owlab/suit80/ansi/info.json b/keyboards/owlab/suit80/ansi/info.json new file mode 100644 index 00000000000..b5833c6a600 --- /dev/null +++ b/keyboards/owlab/suit80/ansi/info.json @@ -0,0 +1,98 @@ +{ + "keyboard_name": "suit80", + "url": "", + "maintainer": "Owlab", + "layouts": { + "LAYOUT_ansi": { + "layout": [ + {"x":0, "y":0}, + {"x":1.25, "y":0}, + {"x":2.25, "y":0}, + {"x":3.25, "y":0}, + {"x":4.25, "y":0}, + {"x":5.5, "y":0}, + {"x":6.5, "y":0}, + {"x":7.5, "y":0}, + {"x":8.5, "y":0}, + {"x":9.75, "y":0}, + {"x":10.75, "y":0}, + {"x":11.75, "y":0}, + {"x":12.75, "y":0}, + {"x":14, "y":0}, + {"x":15.25, "y":0}, + {"x":16.25, "y":0}, + {"x":17.25, "y":0}, + {"x":0, "y":1.25}, + {"x":1, "y":1.25}, + {"x":2, "y":1.25}, + {"x":3, "y":1.25}, + {"x":4, "y":1.25}, + {"x":5, "y":1.25}, + {"x":6, "y":1.25}, + {"x":7, "y":1.25}, + {"x":8, "y":1.25}, + {"x":9, "y":1.25}, + {"x":10, "y":1.25}, + {"x":11, "y":1.25}, + {"x":12, "y":1.25}, + {"x":13, "y":1.25, "w":2}, + {"x":15.25, "y":1.25}, + {"x":16.25, "y":1.25}, + {"x":17.25, "y":1.25}, + {"x":0, "y":2.25, "w":1.5}, + {"x":1.5, "y":2.25}, + {"x":2.5, "y":2.25}, + {"x":3.5, "y":2.25}, + {"x":4.5, "y":2.25}, + {"x":5.5, "y":2.25}, + {"x":6.5, "y":2.25}, + {"x":7.5, "y":2.25}, + {"x":8.5, "y":2.25}, + {"x":9.5, "y":2.25}, + {"x":10.5, "y":2.25}, + {"x":11.5, "y":2.25}, + {"x":12.5, "y":2.25}, + {"x":13.5, "y":2.25, "w":1.5}, + {"x":15.25, "y":2.25}, + {"x":16.25, "y":2.25}, + {"x":17.25, "y":2.25}, + {"x":0, "y":3.25, "w":1.75}, + {"x":1.75, "y":3.25}, + {"x":2.75, "y":3.25}, + {"x":3.75, "y":3.25}, + {"x":4.75, "y":3.25}, + {"x":5.75, "y":3.25}, + {"x":6.75, "y":3.25}, + {"x":7.75, "y":3.25}, + {"x":8.75, "y":3.25}, + {"x":9.75, "y":3.25}, + {"x":10.75, "y":3.25}, + {"x":11.75, "y":3.25}, + {"x":12.75, "y":3.25, "w":2.25}, + {"x":0, "y":4.25, "w":2.25}, + {"x":2.25, "y":4.25}, + {"x":3.25, "y":4.25}, + {"x":4.25, "y":4.25}, + {"x":5.25, "y":4.25}, + {"x":6.25, "y":4.25}, + {"x":7.25, "y":4.25}, + {"x":8.25, "y":4.25}, + {"x":9.25, "y":4.25}, + {"x":10.25, "y":4.25}, + {"x":11.25, "y":4.25}, + {"x":12.25, "y":4.25, "w":2.75}, + {"x":16.25, "y":4.25}, + {"x":0, "y":5.25, "w":1.5}, + {"x":1.5, "y":5.25}, + {"x":2.5, "y":5.25, "w":1.5}, + {"x":4, "y":5.25, "w":7}, + {"x":11, "y":5.25, "w":1.5}, + {"x":12.5, "y":5.25}, + {"x":13.5, "y":5.25, "w":1.5}, + {"x":15.25, "y":5.25}, + {"x":16.25, "y":5.25}, + {"x":17.25, "y":5.25} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/owlab/suit80/ansi/keymaps/default/keymap.c b/keyboards/owlab/suit80/ansi/keymaps/default/keymap.c new file mode 100644 index 00000000000..e9ab5f323f4 --- /dev/null +++ b/keyboards/owlab/suit80/ansi/keymaps/default/keymap.c @@ -0,0 +1,41 @@ +/* +Copyright 2021 owlab + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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_ansi( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT + ), + [1] = 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, 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 + ) +}; diff --git a/keyboards/owlab/suit80/ansi/keymaps/via/keymap.c b/keyboards/owlab/suit80/ansi/keymaps/via/keymap.c new file mode 100644 index 00000000000..d438aea4096 --- /dev/null +++ b/keyboards/owlab/suit80/ansi/keymaps/via/keymap.c @@ -0,0 +1,57 @@ +/* +Copyright 2021 owlab + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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_ansi( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT + ), + [1] = 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, 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 + ), + + [2] = 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; \ No newline at end of file diff --git a/keyboards/owlab/suit80/ansi/keymaps/via/rules.mk b/keyboards/owlab/suit80/ansi/keymaps/via/rules.mk new file mode 100644 index 00000000000..36b7ba9cbc9 --- /dev/null +++ b/keyboards/owlab/suit80/ansi/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/owlab/suit80/ansi/readme.md b/keyboards/owlab/suit80/ansi/readme.md new file mode 100644 index 00000000000..7d10fe1a57d --- /dev/null +++ b/keyboards/owlab/suit80/ansi/readme.md @@ -0,0 +1,21 @@ +# Suit80 - ANSI PCB + +![suit80](https://i.imgur.com/0QN23oc.png) + +A 80% made by Owlab. + +* Keyboard Maintainer: [owlab](https://github.com/owlab-git) +* Hardware Supported: Suit80 ANSI PCB +* Hardware Availability: Ended groupbuy: https://www.zfrontier.com/app/flow/2Q1YEKykXmYZ + +Make example for this keyboard (after setting up your build environment): + + make owlab/suit80/ansi:default + +Flashing example for this keyboard: + + make owlab/suit80/ansi:default:flash + +**Bootloader:** Press the physical reset button on the bottom side of the PCB (labeled SW1) or hold down ESC while plugging in the board. + +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/owlab/suit80/ansi/rules.mk b/keyboards/owlab/suit80/ansi/rules.mk new file mode 100644 index 00000000000..001898bf4c7 --- /dev/null +++ b/keyboards/owlab/suit80/ansi/rules.mk @@ -0,0 +1,21 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output \ No newline at end of file diff --git a/keyboards/owlab/suit80/iso/config.h b/keyboards/owlab/suit80/iso/config.h new file mode 100644 index 00000000000..22968bac158 --- /dev/null +++ b/keyboards/owlab/suit80/iso/config.h @@ -0,0 +1,46 @@ +/* +Copyright 2021 owlab + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 0x4F53 // 0x4F53 OS for owl studio +#define PRODUCT_ID 0x5349 //0x5355 SI for SUIT ISO +#define DEVICE_VER 0x0001 +#define MANUFACTURER OwLab +#define PRODUCT SUIT80 ISO + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 15 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { E6, B0, B7, D0, D1, D2 } +#define MATRIX_COL_PINS { D5, D4, D6, D7, B4, B5, B6, C6, C7, F4, F7, F6, F5, F1, F0 } + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* NKRO */ +#ifdef NKRO_ENABLE +# define FORCE_NKRO +#endif diff --git a/keyboards/owlab/suit80/iso/info.json b/keyboards/owlab/suit80/iso/info.json new file mode 100644 index 00000000000..7c911fe361a --- /dev/null +++ b/keyboards/owlab/suit80/iso/info.json @@ -0,0 +1,192 @@ +{ + "keyboard_name": "suit80", + "url": "", + "maintainer": "Owlab", + "layouts": { + "LAYOUT_all": { + "layout": [ + {"x":0, "y":0}, + {"x":1.25, "y":0}, + {"x":2.25, "y":0}, + {"x":3.25, "y":0}, + {"x":4.25, "y":0}, + {"x":5.5, "y":0}, + {"x":6.5, "y":0}, + {"x":7.5, "y":0}, + {"x":8.5, "y":0}, + {"x":9.75, "y":0}, + {"x":10.75, "y":0}, + {"x":11.75, "y":0}, + {"x":12.75, "y":0}, + {"x":14, "y":0}, + {"x":15.25, "y":0}, + {"x":16.25, "y":0}, + {"x":17.25, "y":0}, + {"x":0, "y":1.25}, + {"x":1, "y":1.25}, + {"x":2, "y":1.25}, + {"x":3, "y":1.25}, + {"x":4, "y":1.25}, + {"x":5, "y":1.25}, + {"x":6, "y":1.25}, + {"x":7, "y":1.25}, + {"x":8, "y":1.25}, + {"x":9, "y":1.25}, + {"x":10, "y":1.25}, + {"x":11, "y":1.25}, + {"x":12, "y":1.25}, + {"x":13, "y":1.25}, + {"x":14, "y":1.25}, + {"x":15.25, "y":1.25}, + {"x":16.25, "y":1.25}, + {"x":17.25, "y":1.25}, + {"x":0, "y":2.25, "w":1.5}, + {"x":1.5, "y":2.25}, + {"x":2.5, "y":2.25}, + {"x":3.5, "y":2.25}, + {"x":4.5, "y":2.25}, + {"x":5.5, "y":2.25}, + {"x":6.5, "y":2.25}, + {"x":7.5, "y":2.25}, + {"x":8.5, "y":2.25}, + {"x":9.5, "y":2.25}, + {"x":10.5, "y":2.25}, + {"x":11.5, "y":2.25}, + {"x":12.5, "y":2.25}, + {"x":15.25, "y":2.25}, + {"x":16.25, "y":2.25}, + {"x":17.25, "y":2.25}, + {"x":0, "y":3.25, "w":1.75}, + {"x":1.75, "y":3.25}, + {"x":2.75, "y":3.25}, + {"x":3.75, "y":3.25}, + {"x":4.75, "y":3.25}, + {"x":5.75, "y":3.25}, + {"x":6.75, "y":3.25}, + {"x":7.75, "y":3.25}, + {"x":8.75, "y":3.25}, + {"x":9.75, "y":3.25}, + {"x":10.75, "y":3.25}, + {"x":11.75, "y":3.25}, + {"x":12.75, "y":3.25}, + {"x":13.75, "y":2.25, "w":1.25, "h":2}, + {"x":0, "y":4.25, "w":1.25}, + {"x":1.25, "y":4.25}, + {"x":2.25, "y":4.25}, + {"x":3.25, "y":4.25}, + {"x":4.25, "y":4.25}, + {"x":5.25, "y":4.25}, + {"x":6.25, "y":4.25}, + {"x":7.25, "y":4.25}, + {"x":8.25, "y":4.25}, + {"x":9.25, "y":4.25}, + {"x":10.25, "y":4.25}, + {"x":11.25, "y":4.25}, + {"x":12.25, "y":4.25, "w":2.75}, + {"x":16.25, "y":4.25}, + {"x":0, "y":5.25, "w":1.5}, + {"x":1.5, "y":5.25}, + {"x":2.5, "y":5.25, "w":1.5}, + {"x":4, "y":5.25, "w":7}, + {"x":11, "y":5.25, "w":1.5}, + {"x":12.5, "y":5.25}, + {"x":13.5, "y":5.25, "w":1.5}, + {"x":15.25, "y":5.25}, + {"x":16.25, "y":5.25}, + {"x":17.25, "y":5.25} + ] + }, + "LAYOUT_iso": { + "layout": [ + {"x":0, "y":0}, + {"x":1.25, "y":0}, + {"x":2.25, "y":0}, + {"x":3.25, "y":0}, + {"x":4.25, "y":0}, + {"x":5.5, "y":0}, + {"x":6.5, "y":0}, + {"x":7.5, "y":0}, + {"x":8.5, "y":0}, + {"x":9.75, "y":0}, + {"x":10.75, "y":0}, + {"x":11.75, "y":0}, + {"x":12.75, "y":0}, + {"x":14, "y":0}, + {"x":15.25, "y":0}, + {"x":16.25, "y":0}, + {"x":17.25, "y":0}, + {"x":0, "y":1.25}, + {"x":1, "y":1.25}, + {"x":2, "y":1.25}, + {"x":3, "y":1.25}, + {"x":4, "y":1.25}, + {"x":5, "y":1.25}, + {"x":6, "y":1.25}, + {"x":7, "y":1.25}, + {"x":8, "y":1.25}, + {"x":9, "y":1.25}, + {"x":10, "y":1.25}, + {"x":11, "y":1.25}, + {"x":12, "y":1.25}, + {"x":13, "y":1.25, "w":2}, + {"x":15.25, "y":1.25}, + {"x":16.25, "y":1.25}, + {"x":17.25, "y":1.25}, + {"x":0, "y":2.25, "w":1.5}, + {"x":1.5, "y":2.25}, + {"x":2.5, "y":2.25}, + {"x":3.5, "y":2.25}, + {"x":4.5, "y":2.25}, + {"x":5.5, "y":2.25}, + {"x":6.5, "y":2.25}, + {"x":7.5, "y":2.25}, + {"x":8.5, "y":2.25}, + {"x":9.5, "y":2.25}, + {"x":10.5, "y":2.25}, + {"x":11.5, "y":2.25}, + {"x":12.5, "y":2.25}, + {"x":15.25, "y":2.25}, + {"x":16.25, "y":2.25}, + {"x":17.25, "y":2.25}, + {"x":0, "y":3.25, "w":1.75}, + {"x":1.75, "y":3.25}, + {"x":2.75, "y":3.25}, + {"x":3.75, "y":3.25}, + {"x":4.75, "y":3.25}, + {"x":5.75, "y":3.25}, + {"x":6.75, "y":3.25}, + {"x":7.75, "y":3.25}, + {"x":8.75, "y":3.25}, + {"x":9.75, "y":3.25}, + {"x":10.75, "y":3.25}, + {"x":11.75, "y":3.25}, + {"x":12.75, "y":3.25}, + {"x":13.75, "y":2.25, "w":1.25, "h":2}, + {"x":0, "y":4.25, "w":1.25}, + {"x":1.25, "y":4.25}, + {"x":2.25, "y":4.25}, + {"x":3.25, "y":4.25}, + {"x":4.25, "y":4.25}, + {"x":5.25, "y":4.25}, + {"x":6.25, "y":4.25}, + {"x":7.25, "y":4.25}, + {"x":8.25, "y":4.25}, + {"x":9.25, "y":4.25}, + {"x":10.25, "y":4.25}, + {"x":11.25, "y":4.25}, + {"x":12.25, "y":4.25, "w":2.75}, + {"x":16.25, "y":4.25}, + {"x":0, "y":5.25, "w":1.5}, + {"x":1.5, "y":5.25}, + {"x":2.5, "y":5.25, "w":1.5}, + {"x":4, "y":5.25, "w":7}, + {"x":11, "y":5.25, "w":1.5}, + {"x":12.5, "y":5.25}, + {"x":13.5, "y":5.25, "w":1.5}, + {"x":15.25, "y":5.25}, + {"x":16.25, "y":5.25}, + {"x":17.25, "y":5.25} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/owlab/suit80/iso/iso.c b/keyboards/owlab/suit80/iso/iso.c new file mode 100644 index 00000000000..e8f326d37ec --- /dev/null +++ b/keyboards/owlab/suit80/iso/iso.c @@ -0,0 +1,19 @@ + + +/* +Copyright 2021 owlab + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 "iso.h" diff --git a/keyboards/owlab/suit80/iso/iso.h b/keyboards/owlab/suit80/iso/iso.h new file mode 100644 index 00000000000..f50236d01a1 --- /dev/null +++ b/keyboards/owlab/suit80/iso/iso.h @@ -0,0 +1,52 @@ +/* +Copyright 2021 owlab + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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_all( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K114, K214, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K213, K113, K313, K314, K412, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K413, K414, K510, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K506, K312, \ + K400, K503, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K511, \ + K500, K501, K502, K504, K507, K508, K509, K512, K513, K514 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314 }, \ + { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, K414 }, \ + { K500, K501, K502, K503, K504, KC_NO, K506, K507, K508, K509, K510, K511, K512, K513, K514 } \ +} + +#define LAYOUT_iso( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K114, K214, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K313, K314, K412, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K413, K414, K510, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K506, K312, \ + K400, K503, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K511, \ + K500, K501, K502, K504, K507, K508, K509, K512, K513, K514 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, KC_NO, K214 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314 }, \ + { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, K414 }, \ + { K500, K501, K502, K503, K504, KC_NO, K506, K507, K508, K509, K510, K511, K512, K513, K514 } \ +} diff --git a/keyboards/owlab/suit80/iso/keymaps/default/keymap.c b/keyboards/owlab/suit80/iso/keymaps/default/keymap.c new file mode 100644 index 00000000000..84cfcc4ad27 --- /dev/null +++ b/keyboards/owlab/suit80/iso/keymaps/default/keymap.c @@ -0,0 +1,41 @@ +/* +Copyright 2021 owlab + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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_iso( + 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_F13, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_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_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT + ), + [1] = LAYOUT_iso( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; + + diff --git a/keyboards/owlab/suit80/iso/keymaps/via/keymap.c b/keyboards/owlab/suit80/iso/keymaps/via/keymap.c new file mode 100644 index 00000000000..d392b797e83 --- /dev/null +++ b/keyboards/owlab/suit80/iso/keymaps/via/keymap.c @@ -0,0 +1,56 @@ +/* +Copyright 2021 owlab + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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_F9, KC_F10, KC_F11, KC_F12, KC_F13, 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_BSLS, 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_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_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT + ), + [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, 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 + ), + [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 + ), + [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 + ) +}; diff --git a/keyboards/owlab/suit80/iso/keymaps/via/rules.mk b/keyboards/owlab/suit80/iso/keymaps/via/rules.mk new file mode 100644 index 00000000000..36b7ba9cbc9 --- /dev/null +++ b/keyboards/owlab/suit80/iso/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/owlab/suit80/iso/readme.md b/keyboards/owlab/suit80/iso/readme.md new file mode 100644 index 00000000000..c16dfa255df --- /dev/null +++ b/keyboards/owlab/suit80/iso/readme.md @@ -0,0 +1,21 @@ +# Suit80 - ISO PCB + +![suit80](https://i.imgur.com/wTUPZFB.jpg) + +A 80% made by Owlab. + +* Keyboard Maintainer: [owlab](https://github.com/owlab-git) +* Hardware Supported: Suit80 ISO PCB +* Hardware Availability: Ended groupbuy: https://www.zfrontier.com/app/flow/2Q1YEKykXmYZ + +Make example for this keyboard (after setting up your build environment): + + make owlab/suit80/iso:default + +Flashing example for this keyboard: + + make owlab/suit80/iso:default:flash + +**Bootloader:** Press the physical reset button on the bottom side of the PCB (labeled SW1) or hold down ESC while plugging in the board. + +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/owlab/suit80/iso/rules.mk b/keyboards/owlab/suit80/iso/rules.mk new file mode 100644 index 00000000000..001898bf4c7 --- /dev/null +++ b/keyboards/owlab/suit80/iso/rules.mk @@ -0,0 +1,21 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output \ No newline at end of file diff --git a/keyboards/packrat/config.h b/keyboards/packrat/config.h new file mode 100644 index 00000000000..c69ecdafcb8 --- /dev/null +++ b/keyboards/packrat/config.h @@ -0,0 +1,59 @@ +/* Copyright 2021 drhigsby + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 MANUFACTURER DrHigsby +#define PRODUCT Packrat +#define VENDOR_ID 0x0007 +#define PRODUCT_ID 0x0004 +#define DEVICE_VER 0x0001 + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 11 + +/* + * 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) + * + */ + +/* key matrix pins */ +#define MATRIX_ROW_PINS { F7, B1, B6, B2 } +#define MATRIX_COL_PINS { D3, D2, D1, D0, D4, C6, D7, E6, B4, B5, B3 } +#define UNUSED_PINS { F6 } + +/* COL2ROW or ROW2COL */ +#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 + +#define ENCODERS_PAD_A { F5 } +#define ENCODERS_PAD_B { F4 } diff --git a/keyboards/packrat/info.json b/keyboards/packrat/info.json new file mode 100644 index 00000000000..e4e3d869f17 --- /dev/null +++ b/keyboards/packrat/info.json @@ -0,0 +1,26 @@ +{ + "keyboard_name": "packrat", + "url": "http://www.keyboard-layout-editor.com/#/gists/43d838a3b2e0344d75dd67abfc508038", + "maintainer": "drhigsby", + "layouts": { + "LAYOUT_3uc": { + "layout": [{"label":"Q", "x":0, "y":0}, {"label":"W", "x":1, "y":0}, {"label":"E", "x":2, "y":0}, {"label":"R", "x":3, "y":0}, {"label":"T", "x":4, "y":0}, {"label":"KNOB!", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"A", "x":0, "y":1}, {"label":"S", "x":1, "y":1}, {"label":"D", "x":2, "y":1}, {"label":"F", "x":3, "y":1}, {"label":"G", "x":4, "y":1}, {"label":"Any", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":":", "x":10, "y":1}, {"label":"Z", "x":0, "y":2}, {"label":"X", "x":1, "y":2}, {"label":"C", "x":2, "y":2}, {"label":"V", "x":3, "y":2}, {"label":"B", "x":4, "y":2}, {"label":"Any", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":"<", "x":8, "y":2}, {"label":">", "x":9, "y":2}, {"label":"?", "x":10, "y":2}, {"label":"Ctrl", "x":0.5, "y":3, "w":1.25}, {"label":"Alt", "x":1.75, "y":3, "w":1.25}, {"label":"Raise", "x":3, "y":3}, {"label":"", "x":4, "y":3, "w":3}, {"label":"Lower", "x":7, "y":3}, {"label":"Win", "x":8, "y":3, "w":1.25}, {"label":"Fn", "x":9.25, "y":3, "w":1.25}] + }, + + "LAYOUT_2x2uc": { + "layout": [{"label":"Q", "x":0, "y":0}, {"label":"W", "x":1, "y":0}, {"label":"E", "x":2, "y":0}, {"label":"R", "x":3, "y":0}, {"label":"T", "x":4, "y":0}, {"label":"KNOB!", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"A", "x":0, "y":1}, {"label":"S", "x":1, "y":1}, {"label":"D", "x":2, "y":1}, {"label":"F", "x":3, "y":1}, {"label":"G", "x":4, "y":1}, {"label":"Any", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":":", "x":10, "y":1}, {"label":"Z", "x":0, "y":2}, {"label":"X", "x":1, "y":2}, {"label":"C", "x":2, "y":2}, {"label":"V", "x":3, "y":2}, {"label":"B", "x":4, "y":2}, {"label":"Any", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":"<", "x":8, "y":2}, {"label":">", "x":9, "y":2}, {"label":"?", "x":10, "y":2}, {"label":"Ctrl", "x":0.5, "y":3, "w":1.25}, {"label":"Alt", "x":1.75, "y":3, "w":1.25}, {"label":"", "x":3, "y":3, "w":2}, {"label":"Any", "x":5, "y":3}, {"label":"", "x":6, "y":3, "w":2}, {"label":"Win", "x":8, "y":3, "w":1.25}, {"label":"Fn", "x":9.25, "y":3, "w":1.25}] + }, + + "LAYOUT_7uc": { + "layout": [{"label":"Q", "x":0, "y":0}, {"label":"W", "x":1, "y":0}, {"label":"E", "x":2, "y":0}, {"label":"R", "x":3, "y":0}, {"label":"T", "x":4, "y":0}, {"label":"KNOB!", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"A", "x":0, "y":1}, {"label":"S", "x":1, "y":1}, {"label":"D", "x":2, "y":1}, {"label":"F", "x":3, "y":1}, {"label":"G", "x":4, "y":1}, {"label":"Any", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":":", "x":10, "y":1}, {"label":"Z", "x":0, "y":2}, {"label":"X", "x":1, "y":2}, {"label":"C", "x":2, "y":2}, {"label":"V", "x":3, "y":2}, {"label":"B", "x":4, "y":2}, {"label":"Any", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":"<", "x":8, "y":2}, {"label":">", "x":9, "y":2}, {"label":"?", "x":10, "y":2}, {"label":"Ctrl", "x":0.5, "y":3, "w":1.5}, {"label":"", "x":2, "y":3, "w":7}, {"label":"Alt", "x":9, "y":3, "w":1.5}] + }, + + "LAYOUT_2x3uc": { + "layout": [{"label":"Q", "x":0, "y":0}, {"label":"W", "x":1, "y":0}, {"label":"E", "x":2, "y":0}, {"label":"R", "x":3, "y":0}, {"label":"T", "x":4, "y":0}, {"label":"KNOB!", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"A", "x":0, "y":1}, {"label":"S", "x":1, "y":1}, {"label":"D", "x":2, "y":1}, {"label":"F", "x":3, "y":1}, {"label":"G", "x":4, "y":1}, {"label":"Any", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":":", "x":10, "y":1}, {"label":"Z", "x":0, "y":2}, {"label":"X", "x":1, "y":2}, {"label":"C", "x":2, "y":2}, {"label":"V", "x":3, "y":2}, {"label":"B", "x":4, "y":2}, {"label":"Any", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":"<", "x":8, "y":2}, {"label":">", "x":9, "y":2}, {"label":"?", "x":10, "y":2}, {"label":"Ctrl", "x":0.5, "y":3}, {"label":"Alt", "x":1.5, "y":3}, {"label":"", "x":2.5, "y":3, "w":3}, {"label":"", "x":5.5, "y":3, "w":3}, {"label":"Win", "x":8.5, "y":3}, {"label":"Fn", "x":9.5, "y":3}] + }, + + "LAYOUT_6uc": { + "layout": [{"label":"Q", "x":0, "y":0}, {"label":"W", "x":1, "y":0}, {"label":"E", "x":2, "y":0}, {"label":"R", "x":3, "y":0}, {"label":"T", "x":4, "y":0}, {"label":"KNOB!", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"A", "x":0, "y":1}, {"label":"S", "x":1, "y":1}, {"label":"D", "x":2, "y":1}, {"label":"F", "x":3, "y":1}, {"label":"G", "x":4, "y":1}, {"label":"Any", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":":", "x":10, "y":1}, {"label":"Z", "x":0, "y":2}, {"label":"X", "x":1, "y":2}, {"label":"C", "x":2, "y":2}, {"label":"V", "x":3, "y":2}, {"label":"B", "x":4, "y":2}, {"label":"Any", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":"<", "x":8, "y":2}, {"label":">", "x":9, "y":2}, {"label":"?", "x":10, "y":2}, {"label":"Ctrl", "x":0.5, "y":3}, {"label":"Alt", "x":1.5, "y":3}, {"label":"", "x":2.5, "y":3, "w":6}, {"label":"Win", "x":8.5, "y":3}, {"label":"Fn", "x":9.5, "y":3}] + } + } +} diff --git a/keyboards/packrat/keymaps/3uc/config.h b/keyboards/packrat/keymaps/3uc/config.h new file mode 100644 index 00000000000..9ff2d89acc8 --- /dev/null +++ b/keyboards/packrat/keymaps/3uc/config.h @@ -0,0 +1,19 @@ +/* Copyright 2021 drhigsby + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 COMBO_COUNT 7 +#define COMBO_TERM 40 diff --git a/keyboards/packrat/keymaps/3uc/keymap.c b/keyboards/packrat/keymaps/3uc/keymap.c new file mode 100644 index 00000000000..f037a47acba --- /dev/null +++ b/keyboards/packrat/keymaps/3uc/keymap.c @@ -0,0 +1,92 @@ +/* Copyright 2021 drhigsby + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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{ + _BASE, + _CODE, + _MATH, + _FUNC +}; + +enum combo_events { + combo_ESC, + combo_BACK, + combo_TAB, + combo_DELETE, + combo_ENTER, + combo_LPRN, + combo_RPRN, +}; + +const uint16_t PROGMEM esc_combo[] = {KC_Q, KC_W, COMBO_END}; +const uint16_t PROGMEM bspc_combo[] = {KC_O, KC_P, COMBO_END}; +const uint16_t PROGMEM tab_combo[] = {KC_A, KC_S, COMBO_END}; +const uint16_t PROGMEM del_combo[] = {KC_I, KC_O, COMBO_END}; +const uint16_t PROGMEM enter_combo[] = {KC_L, KC_SCLN, COMBO_END}; +const uint16_t PROGMEM lprn_combo[] = {KC_X, KC_C, COMBO_END}; +const uint16_t PROGMEM rprn_combo[] = {KC_COMM, KC_DOT, COMBO_END}; + + +combo_t key_combos[COMBO_COUNT] = { + [combo_ESC] = COMBO(esc_combo, KC_ESC), + [combo_BACK] = COMBO(bspc_combo, KC_BSPC), + [combo_TAB] = COMBO(tab_combo, KC_TAB), + [combo_DELETE] = COMBO(del_combo, KC_DEL), + [combo_ENTER] = COMBO(enter_combo, KC_ENT), + [combo_LPRN] = COMBO(lprn_combo, KC_LPRN), + [combo_RPRN] = COMBO(rprn_combo, KC_RPRN), +}; + +#define BASE TO(_BASE) +#define CODE MO(_CODE) +#define MATH TG(_MATH) +#define FUNC MO(_FUNC) +#define xxx KC_TRNS + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_3uc( + KC_Q, KC_W, KC_E, KC_R, KC_T, MATH, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_A, KC_S, KC_D, KC_F, KC_G, KC_HOME, KC_H, KC_J, KC_K, KC_L, KC_SCLN, + LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_END, KC_N, KC_M, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), + KC_LALT, KC_LCTL, CODE, KC_SPC, CODE, KC_RGUI, FUNC + ), + + [_CODE] = LAYOUT_3uc( + KC_1, KC_2, KC_3, KC_4, KC_5, xxx, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_PGUP, KC_CIRC, KC_AMPR, KC_ASTR, KC_MINS, KC_EQL, + KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, xxx, KC_PGDN, xxx, KC_PIPE, KC_BSLS, KC_DQUO, KC_QUOT, + xxx, xxx, xxx, xxx, xxx, KC_PGUP, KC_PGDN + ), + + [_MATH] = LAYOUT_3uc( + xxx, xxx, xxx, xxx, xxx, BASE, xxx, KC_P7, KC_P8, KC_P9, KC_PPLS, + xxx, xxx, xxx, xxx, xxx, xxx, xxx, KC_P4, KC_P5, KC_P6, KC_PCMM, + xxx, xxx, xxx, xxx, xxx, xxx, xxx, KC_P1, KC_P2, KC_P3, KC_PEQL, + xxx, xxx, xxx, xxx, KC_P0, KC_PDOT, KC_PENT + + ), + + [_FUNC] = LAYOUT_3uc( + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, xxx, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, + xxx, xxx, xxx, xxx, xxx, xxx, xxx, xxx, xxx, KC_F11, KC_F12, + xxx, xxx, xxx, xxx, xxx, xxx, xxx, xxx, xxx, xxx, xxx, + xxx, xxx, xxx, xxx, xxx, xxx, xxx + ) + +}; + diff --git a/keyboards/packrat/keymaps/3uc/readme.md b/keyboards/packrat/keymaps/3uc/readme.md new file mode 100644 index 00000000000..603f82a812a --- /dev/null +++ b/keyboards/packrat/keymaps/3uc/readme.md @@ -0,0 +1 @@ +# Centered 3uC Packrat Keymap diff --git a/keyboards/packrat/keymaps/3uc/rules.mk b/keyboards/packrat/keymaps/3uc/rules.mk new file mode 100644 index 00000000000..ab1e438182a --- /dev/null +++ b/keyboards/packrat/keymaps/3uc/rules.mk @@ -0,0 +1 @@ +COMBO_ENABLE = yes diff --git a/keyboards/packrat/keymaps/default/config.h b/keyboards/packrat/keymaps/default/config.h new file mode 100644 index 00000000000..9ff2d89acc8 --- /dev/null +++ b/keyboards/packrat/keymaps/default/config.h @@ -0,0 +1,19 @@ +/* Copyright 2021 drhigsby + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 COMBO_COUNT 7 +#define COMBO_TERM 40 diff --git a/keyboards/packrat/keymaps/default/keymap.c b/keyboards/packrat/keymaps/default/keymap.c new file mode 100644 index 00000000000..74df6a73e60 --- /dev/null +++ b/keyboards/packrat/keymaps/default/keymap.c @@ -0,0 +1,81 @@ +/* Copyright 2021 drhigsby + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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{ + _BASE, + _CODE, + _FUNC +}; + +enum combo_events { + combo_ESC, + combo_BACK, + combo_TAB, + combo_DELETE, + combo_ENTER, + combo_LPRN, + combo_RPRN, +}; + +const uint16_t PROGMEM esc_combo[] = {KC_Q, KC_W, COMBO_END}; +const uint16_t PROGMEM bspc_combo[] = {KC_O, KC_P, COMBO_END}; +const uint16_t PROGMEM tab_combo[] = {KC_A, KC_S, COMBO_END}; +const uint16_t PROGMEM del_combo[] = {KC_I, KC_O, COMBO_END}; +const uint16_t PROGMEM enter_combo[] = {KC_L, KC_SCLN, COMBO_END}; +const uint16_t PROGMEM lprn_combo[] = {KC_X, KC_C, COMBO_END}; +const uint16_t PROGMEM rprn_combo[] = {KC_COMM, KC_DOT, COMBO_END}; + + +combo_t key_combos[COMBO_COUNT] = { + [combo_ESC] = COMBO(esc_combo, KC_ESC), + [combo_BACK] = COMBO(bspc_combo, KC_BSPC), + [combo_TAB] = COMBO(tab_combo, KC_TAB), + [combo_DELETE] = COMBO(del_combo, KC_DEL), + [combo_ENTER] = COMBO(enter_combo, KC_ENT), + [combo_LPRN] = COMBO(lprn_combo, KC_LPRN), + [combo_RPRN] = COMBO(rprn_combo, KC_RPRN), +}; + +#define CODE MO(_CODE) +#define FUNC MO(_FUNC) +#define xxx KC_TRNS + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_2x3uc( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_DEL, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_A, KC_S, KC_D, KC_F, KC_G, KC_HOME, KC_H, KC_J, KC_K, KC_L, KC_SCLN, + LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_END, KC_N, KC_M, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), + KC_LCTL, KC_LALT, CODE, KC_SPC, KC_RGUI, FUNC + ), + + [_CODE] = LAYOUT_2x3uc( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_GRV, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CAPS, KC_CIRC, KC_AMPR, KC_ASTR, KC_MINS, KC_EQL, + KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, xxx, xxx, xxx, KC_PIPE, KC_BSLS, KC_DQUO, KC_QUOT, + xxx, xxx, xxx, xxx, KC_PGUP, KC_PGDN + ), + + [_FUNC] = LAYOUT_2x3uc( + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, xxx, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, + xxx, xxx, xxx, xxx, xxx, xxx, xxx, xxx, xxx, KC_F11, KC_F12, + xxx, xxx, xxx, xxx, xxx, xxx, xxx, xxx, xxx, xxx, xxx, + xxx, xxx, xxx, xxx, xxx, xxx + ) + +}; + diff --git a/keyboards/packrat/keymaps/default/readme.md b/keyboards/packrat/keymaps/default/readme.md new file mode 100644 index 00000000000..3e6ed27b579 --- /dev/null +++ b/keyboards/packrat/keymaps/default/readme.md @@ -0,0 +1,3 @@ +# Default Packrat Keymap + +The default Packrat Keymap uses the 2x3uC layout. diff --git a/keyboards/packrat/keymaps/default/rules.mk b/keyboards/packrat/keymaps/default/rules.mk new file mode 100644 index 00000000000..ab1e438182a --- /dev/null +++ b/keyboards/packrat/keymaps/default/rules.mk @@ -0,0 +1 @@ +COMBO_ENABLE = yes diff --git a/keyboards/packrat/packrat.c b/keyboards/packrat/packrat.c new file mode 100644 index 00000000000..0f4a479956a --- /dev/null +++ b/keyboards/packrat/packrat.c @@ -0,0 +1,28 @@ +/* Copyright 2021 drhigsby + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 "packrat.h" + +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { return false; } + if (index == 0) { + if (clockwise) { + tap_code_delay(KC_VOLU, 10); + } else { + tap_code_delay(KC_VOLD, 10); + } + } + return true; +} diff --git a/keyboards/packrat/packrat.h b/keyboards/packrat/packrat.h new file mode 100644 index 00000000000..91d0af7b7ad --- /dev/null +++ b/keyboards/packrat/packrat.h @@ -0,0 +1,79 @@ +/* Copyright 2021 drhigsby + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_3uc( \ + k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, \ + k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, \ + k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, \ + k301, k302, k303, k305, k307, k308, k309 \ +) { \ + { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010 }, \ + { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110 }, \ + { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210 }, \ + { KC_NO, k301, k302, k303, KC_NO, k305, KC_NO, k307, k308, k309 } \ +} + +#define LAYOUT_2x2uc( \ + k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, \ + k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, \ + k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, \ + k301, k302, k303, k305, k307, k308, k309 \ +) { \ + { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010 }, \ + { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110 }, \ + { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210 }, \ + { KC_NO, k301, k302, k303, KC_NO, k305, KC_NO, k307, k308, k309 } \ +} + +#define LAYOUT_7uc( \ + k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, \ + k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, \ + k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, \ + k301, k305, k309 \ +) { \ + { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010 }, \ + { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110 }, \ + { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210 }, \ + { KC_NO, k301, KC_NO, KC_NO, KC_NO, k305, KC_NO, KC_NO, KC_NO, k309 } \ +} + +#define LAYOUT_2x3uc( \ + k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, \ + k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, \ + k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, \ + k301, k302, k303, k307, k308, k309 \ +) { \ + { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010 }, \ + { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110 }, \ + { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210 }, \ + { KC_NO, k301, k302, k303, KC_NO, KC_NO, KC_NO, k307, k308, k309 } \ +} + +#define LAYOUT_6uc( \ + k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, \ + k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, \ + k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, \ + k301, k302, k305, k308, k309 \ +) { \ + { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010 }, \ + { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110 }, \ + { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210 }, \ + { KC_NO, k301, k302, KC_NO, KC_NO, k305, KC_NO, KC_NO, k308, k309 } \ +} diff --git a/keyboards/packrat/readme.md b/keyboards/packrat/readme.md new file mode 100644 index 00000000000..a53377f870a --- /dev/null +++ b/keyboards/packrat/readme.md @@ -0,0 +1,25 @@ +# Packrat + +![Packrat](https://i.imgur.com/t6vWYIbh.jpeg) + +Full Gallery: https://imgur.com/gallery/fZklCG6 + +Packrat is an 11u wide ortholinear keyboard featuring multiple bottom row options and top-centered rotary encoder support. + +* Keyboard Maintainer: [H. Bond](https://github.com/drhigsby) +* Hardware Supported: Packrat (https://github.com/drhigsby/packrat) +* Hardware Availability: cases available at TBD / make your own + +Make example for this keyboard (after setting up your build environment): + + make packrat: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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `RESET` if it is available diff --git a/keyboards/packrat/rules.mk b/keyboards/packrat/rules.mk new file mode 100644 index 00000000000..d43cd106b6c --- /dev/null +++ b/keyboards/packrat/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output +LTO_ENABLE = no # Use link time optimization +ENCODER_ENABLE = yes diff --git a/keyboards/pdxkbc/config.h b/keyboards/pdxkbc/config.h index 2748b6309cd..dad03963301 100644 --- a/keyboards/pdxkbc/config.h +++ b/keyboards/pdxkbc/config.h @@ -123,59 +123,6 @@ along with this program. If not, see . */ //#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_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) - -/* 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. diff --git a/keyboards/pdxkbc/rules.mk b/keyboards/pdxkbc/rules.mk index 92e108d29d8..71e5c41e745 100644 --- a/keyboards/pdxkbc/rules.mk +++ b/keyboards/pdxkbc/rules.mk @@ -18,5 +18,4 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = no # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output diff --git a/keyboards/percent/booster/rules.mk b/keyboards/percent/booster/rules.mk index cf1cd9cea65..388026dfcbf 100644 --- a/keyboards/percent/booster/rules.mk +++ b/keyboards/percent/booster/rules.mk @@ -18,7 +18,6 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = no # USB Nkey Rollover BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output EXTRAFLAGS += -flto diff --git a/keyboards/phrygian/ph100/chconf.h b/keyboards/phrygian/ph100/chconf.h new file mode 100644 index 00000000000..1c9cc323642 --- /dev/null +++ b/keyboards/phrygian/ph100/chconf.h @@ -0,0 +1,61 @@ +/* Copyright 2020 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/phrygian/ph100/chconf.h -r platforms/chibios/common/configs/chconf.h` + */ + +#pragma once + +#define CH_CFG_ST_FREQUENCY 10000 + +#define CH_CFG_USE_REGISTRY TRUE + +#define CH_CFG_USE_WAITEXIT TRUE + +#define CH_CFG_USE_CONDVARS TRUE + +#define CH_CFG_USE_MESSAGES TRUE + +#define CH_CFG_USE_MAILBOXES TRUE + +#define CH_CFG_USE_HEAP TRUE + +#define CH_CFG_USE_MEMPOOLS TRUE + +#define CH_CFG_USE_OBJ_FIFOS TRUE + +#define CH_CFG_USE_PIPES TRUE + +#define CH_CFG_USE_DYNAMIC TRUE + +#define CH_CFG_USE_FACTORY TRUE + +#define CH_CFG_FACTORY_OBJECTS_REGISTRY TRUE + +#define CH_CFG_FACTORY_GENERIC_BUFFERS TRUE + +#define CH_CFG_FACTORY_SEMAPHORES TRUE + +#define CH_CFG_FACTORY_MAILBOXES TRUE + +#define CH_CFG_FACTORY_OBJ_FIFOS TRUE + +#define CH_CFG_FACTORY_PIPES TRUE + +#include_next + diff --git a/keyboards/phrygian/ph100/config.h b/keyboards/phrygian/ph100/config.h new file mode 100644 index 00000000000..68bd430736c --- /dev/null +++ b/keyboards/phrygian/ph100/config.h @@ -0,0 +1,43 @@ +/* Copyright 2021 Phrygian Design + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x0C61 +#define DEVICE_VER 0x0100 +#define MANUFACTURER PhrygianDesign +#define PRODUCT ph100 + +/* key matrix size */ +#define MATRIX_ROWS 10 +#define MATRIX_COLS 10 + +#define MATRIX_ROW_PINS { B0, B1, B2, B3, B4, B5, B6, B7, B8, B9 } +#define MATRIX_COL_PINS { A0, A1, A2, A3, A4, A5, A6, A7, A8, A9 } + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Define capslock and numlock */ +#define LED_NUM_LOCK_PIN B14 +#define LED_CAPS_LOCK_PIN B15 + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 10 diff --git a/keyboards/phrygian/ph100/halconf.h b/keyboards/phrygian/ph100/halconf.h new file mode 100644 index 00000000000..f6be8c0ff32 --- /dev/null +++ b/keyboards/phrygian/ph100/halconf.h @@ -0,0 +1,37 @@ +/* Copyright 2020 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/phrygian/ph100/halconf.h -r platforms/chibios/common/configs/halconf.h` + */ + +#pragma once + +#define HAL_USE_SERIAL_USB TRUE + +#define ADC_USE_WAIT FALSE + +#define ADC_USE_MUTUAL_EXCLUSION FALSE + +#define SERIAL_USB_BUFFERS_SIZE 256 + +#define SPI_USE_WAIT FALSE + +#define SPI_USE_MUTUAL_EXCLUSION FALSE + +#include_next + diff --git a/keyboards/phrygian/ph100/info.json b/keyboards/phrygian/ph100/info.json new file mode 100644 index 00000000000..054e3955e0a --- /dev/null +++ b/keyboards/phrygian/ph100/info.json @@ -0,0 +1,111 @@ +{ + "keyboard_name": "ph100", + "url": "https://phrygiandesign.com/products/ph100-mechanical-keyboard", + "maintainer": "phrygiandesign", + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"ESCAPE", "x":0, "y":0}, + {"label":"F1", "x":2, "y":0}, + {"label":"F2", "x":3, "y":0}, + {"label":"F3", "x":4, "y":0}, + {"label":"F4", "x":5, "y":0}, + {"label":"F5", "x":6.5, "y":0}, + {"label":"F6", "x":7.5, "y":0}, + {"label":"F7", "x":8.5, "y":0}, + {"label":"F8", "x":9.5, "y":0}, + {"label":"F9", "x":11, "y":0}, + {"label":"F10", "x":12, "y":0}, + {"label":"F11", "x":13, "y":0}, + {"label":"F12", "x":14, "y":0}, + {"label":"HOME", "x":15.25, "y":0}, + {"label":"PRINT SCREEN", "x":16.25, "y":0}, + {"label":"BACKTICK", "x":0, "y":1}, + {"label":"1", "x":1, "y":1}, + {"label":"2", "x":2, "y":1}, + {"label":"3", "x":3, "y":1}, + {"label":"4", "x":4, "y":1}, + {"label":"5", "x":5, "y":1}, + {"label":"6", "x":6, "y":1}, + {"label":"7", "x":7, "y":1}, + {"label":"8", "x":8, "y":1}, + {"label":"9", "x":9, "y":1}, + {"label":"0", "x":10, "y":1}, + {"label":"MINUS", "x":11, "y":1}, + {"label":"EQUALS", "x":12, "y":1}, + {"label":"BACKSPACE", "x":13, "y":1, "w":2}, + {"label":"END", "x":15.25, "y":1}, + {"label":"PAGE UP", "x":16.25, "y":1}, + {"label":"NUM LOCK", "x":17.5, "y":1}, + {"label":"/", "x":18.5, "y":1}, + {"label":"*", "x":19.5, "y":1}, + {"label":"-", "x":20.5, "y":1}, + {"label":"TAB", "x":0, "y":2, "w":1.5}, + {"label":"Q", "x":1.5, "y":2}, + {"label":"W", "x":2.5, "y":2}, + {"label":"E", "x":3.5, "y":2}, + {"label":"R", "x":4.5, "y":2}, + {"label":"T", "x":5.5, "y":2}, + {"label":"Y", "x":6.5, "y":2}, + {"label":"U", "x":7.5, "y":2}, + {"label":"I", "x":8.5, "y":2}, + {"label":"O", "x":9.5, "y":2}, + {"label":"P", "x":10.5, "y":2}, + {"label":"LEFT BRACKET", "x":11.5, "y":2}, + {"label":"RIGHT BRACKET", "x":12.5, "y":2}, + {"label":"BACK SLASH", "x":13.5, "y":2, "w":1.5}, + {"label":"DELETE", "x":15.25, "y":2}, + {"label":"PAGE DOWN", "x":16.25, "y":2}, + {"label":"7", "x":17.5, "y":2}, + {"label":"8", "x":18.5, "y":2}, + {"label":"9", "x":19.5, "y":2}, + {"label":"+", "x":20.5, "y":2, "h":2}, + {"label":"CAPS LOCK", "x":0, "y":3, "w":1.75}, + {"label":"A", "x":1.75, "y":3}, + {"label":"S", "x":2.75, "y":3}, + {"label":"D", "x":3.75, "y":3}, + {"label":"F", "x":4.75, "y":3}, + {"label":"G", "x":5.75, "y":3}, + {"label":"H", "x":6.75, "y":3}, + {"label":"J", "x":7.75, "y":3}, + {"label":"K", "x":8.75, "y":3}, + {"label":"L", "x":9.75, "y":3}, + {"label":"SEMICOLON", "x":10.75, "y":3}, + {"label":"SINGLE TICK", "x":11.75, "y":3}, + {"label":"ENTER", "x":12.75, "y":3, "w":2.25}, + {"label":"4", "x":17.5, "y":3}, + {"label":"5", "x":18.5, "y":3}, + {"label":"6", "x":19.5, "y":3}, + {"label":"LEFT SHIFT", "x":0, "y":4, "w":2.25}, + {"label":"Z", "x":2.25, "y":4}, + {"label":"X", "x":3.25, "y":4}, + {"label":"C", "x":4.25, "y":4}, + {"label":"V", "x":5.25, "y":4}, + {"label":"B", "x":6.25, "y":4}, + {"label":"N", "x":7.25, "y":4}, + {"label":"M", "x":8.25, "y":4}, + {"label":"COMMA", "x":9.25, "y":4}, + {"label":"PERIOD", "x":10.25, "y":4}, + {"label":"FORWARD SLASH", "x":11.25, "y":4}, + {"label":"RIGHT SHIFT", "x":12.25, "y":4, "w":2.25}, + {"label":"UP ARROW", "x":15.25, "y":4}, + {"label":"1", "x":17.5, "y":4}, + {"label":"2", "x":18.5, "y":4}, + {"label":"3", "x":19.5, "y":4}, + {"label":"ENTER", "x":20.5, "y":4, "h":2}, + {"label":"LEFT CTRL", "x":0, "y":5, "w":1.25}, + {"label":"LEFT WIN", "x":1.25, "y":5, "w":1.25}, + {"label":"LEFT ALT", "x":2.5, "y":5, "w":1.25}, + {"label":"SPACEBAR", "x":3.75, "y":5, "w":6.25}, + {"label":"RIGHT ALT", "x":10, "y":5, "w":1.25}, + {"label":"RIGHT CTRL", "x":11.25, "y":5, "w":1.25}, + {"label":"FN", "x":12.5, "y":5}, + {"label":"LEFT ARROW", "x":14.25, "y":5}, + {"label":"DOWN ARROW", "x":15.25, "y":5}, + {"label":"RIGHT ARROW", "x":16.25, "y":5}, + {"label":"0", "x":17.5, "y":5, "w":2}, + {"label":".", "x":19.5, "y":5} + ] + } + } +} diff --git a/keyboards/phrygian/ph100/keymaps/default/keymap.c b/keyboards/phrygian/ph100/keymaps/default/keymap.c new file mode 100644 index 00000000000..0350aec538c --- /dev/null +++ b/keyboards/phrygian/ph100/keymaps/default/keymap.c @@ -0,0 +1,27 @@ +/* Copyright 2021 Phrygian Design + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = LAYOUT( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_PGUP, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_PGDN, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_HOME, KC_END, KC_P7, KC_P8, KC_P9, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_APP, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT) +}; \ No newline at end of file diff --git a/keyboards/phrygian/ph100/ph100.c b/keyboards/phrygian/ph100/ph100.c new file mode 100644 index 00000000000..45c2426961c --- /dev/null +++ b/keyboards/phrygian/ph100/ph100.c @@ -0,0 +1,19 @@ +/* Copyright 2021 Phrygian Design + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "ph100.h" + +//Put software here \ No newline at end of file diff --git a/keyboards/phrygian/ph100/ph100.h b/keyboards/phrygian/ph100/ph100.h new file mode 100644 index 00000000000..bd18bfd1902 --- /dev/null +++ b/keyboards/phrygian/ph100/ph100.h @@ -0,0 +1,44 @@ +/* Copyright 2021 Phrygian Design + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define XXX KC_NO + +#include "quantum.h" + +// This a shortcut to help you visually see your layout. + +#define LAYOUT(\ + K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K61, K62, K63, K64, K65, \ + K11, K12, K13, K14, K15, K16, K17, K18, K19, K20, K71, K72, K73, K74, K75, K76, K66, K67, K68, K69, \ + K21, K22, K23, K24, K25, K26, K27, K28, K29, K30, K81, K82, K83, K84, K85, K86, K77, K78, K79, \ + K31, K32, K33, K34, K35, K36, K37, K38, K39, K40, K91, K93, K95, K87, K88, K80, K70, \ + K41, K42, K43, K44, K45, K46, K47, K48, K49, K50, K92, K94, K96, K97, K89, K90, \ + K51, K52, K53, K54, K55, K56, K57, K58, K59, K60, K98, K99, K100\ +){ \ + { K01, K02, K03, K04, K05, K06, K07, K08, K09, K10 }, \ + { K11, K12, K13, K14, K15, K16, K17, K18, K19, K20 }, \ + { K21, K22, K23, K24, K25, K26, K27, K28, K29, K30 }, \ + { K31, K32, K33, K34, K35, K36, K37, K38, K39, K40 }, \ + { K41, K42, K43, K44, K45, K46, K47, K48, K49, K50 }, \ + { K51, K52, K53, K54, K55, K56, K57, K58, K59, K60 }, \ + { K61, K62, K63, K64, K65, K66, K67, K68, K69, K70 }, \ + { K71, K72, K73, K74, K75, K76, K77, K78, K79, K80 }, \ + { K81, K82, K83, K84, K85, K86, K87, K88, K89, K90 }, \ + { K91, K92, K93, K94, K95, K96, K97, K98, K99, K100 }, \ +} + diff --git a/keyboards/phrygian/ph100/readme.md b/keyboards/phrygian/ph100/readme.md new file mode 100644 index 00000000000..f6419880e6a --- /dev/null +++ b/keyboards/phrygian/ph100/readme.md @@ -0,0 +1,20 @@ +## Phrygian Design ph100 + +![ph100](https://cdn.shopify.com/s/files/1/0470/8814/0443/products/DSCF0064_1080x.png) + +The ph100 is a 100-key modular keyboard from Phrygian Design. + +* Keyboard Maintainer: https://github.com/phrygiandesign +* Hardware Supported: ph100 PCB +* Hardware Availability: https://phrygiandesign.com/products/ph100-mechanical-keyboard +* Keyboard support: contact@phrygiandesign.com + +Make example for this keyboard: + + make phrygian/ph100:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +#### Note: Booting into the STM32 USB Bootloader +The STM32F042 range of microcontrollers have problems with entering into the USB bootloader with QMK's bootloader key sequence. +To boot into the bootloader, apply power to the keyboard while holding down "SW0" on the bottom of PCB near the USB port. diff --git a/keyboards/phrygian/ph100/rules.mk b/keyboards/phrygian/ph100/rules.mk new file mode 100644 index 00000000000..ca4c47452f7 --- /dev/null +++ b/keyboards/phrygian/ph100/rules.mk @@ -0,0 +1,25 @@ +# MCU name +MCU = STM32F042 + +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output + + +# Enter lower-power sleep mode when on the ChibiOS idle thread +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/pico/rules.mk b/keyboards/pico/rules.mk index 7f6bb76c854..fc4eaf4196b 100644 --- a/keyboards/pico/rules.mk +++ b/keyboards/pico/rules.mk @@ -17,7 +17,6 @@ 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 -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. diff --git a/keyboards/planck/keymaps/ajp10304/readme.md b/keyboards/planck/keymaps/ajp10304/readme.md index 97f0a009319..c68ba49283b 100644 --- a/keyboards/planck/keymaps/ajp10304/readme.md +++ b/keyboards/planck/keymaps/ajp10304/readme.md @@ -7,9 +7,7 @@ the second is the output when shift is applied. **Note:** The below tables assume a UK layout. #### Flashing -Rev <=5: `make planck:ajp10304:flash` - -Rev 6: `make planck/rev6:ajp10304:flash` +Refer to the README.md of the keyboard you want to flash. ##### Main Qwerty Layer @@ -103,7 +101,7 @@ Activated when `fn` and `raise` held together. | | | | | | | | | | | | | | :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| -| ESC | | | | | | | | BTN3 | | | | +| ESC | | | | | | W_L | W_UP | BTN3 | W_DWN| W_R | | | ACC0 | ACC1 | ACC2 | | | | | BTN1 | UP | BTN2 | | | | ACC0 | ACC1 | ACC2 | | | | | LEFT | DOWN | RIGHT| | | | | | | | | | | | | | | | diff --git a/keyboards/planck/keymaps/copface/keymap.c b/keyboards/planck/keymaps/copface/keymap.c index 0754a0c742d..b448d9c7dd2 100644 --- a/keyboards/planck/keymaps/copface/keymap.c +++ b/keyboards/planck/keymaps/copface/keymap.c @@ -85,7 +85,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_META] = LAYOUT_planck_grid( XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_SRC, XXXXXXX, - XXXXXXX, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_CAPS, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F10, KC_F11, KC_F12, HK_AF9, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX ), @@ -167,6 +167,10 @@ void matrix_scan_user(void) { SEQ_ONE_KEY(KC_S) { tap_code16(G(C(S(KC_4)))); } + // Record Screen + SEQ_TWO_KEYS(KC_S, KC_S) { + tap_code16(S(G(KC_5))); + } // 1Pass browser SEQ_ONE_KEY(KC_A) { tap_code16(G(A(KC_BSLS))); @@ -187,5 +191,13 @@ void matrix_scan_user(void) { SEQ_ONE_KEY(KC_ENT) { tap_code16(S(G(A(KC_F)))); } + // Focus file tree + SEQ_ONE_KEY(KC_TAB) { + tap_code16(G(KC_1)); + } + // Caps-lock + SEQ_TWO_KEYS(KC_TAB, KC_TAB) { + tap_code16(KC_CAPS); + } } } diff --git a/keyboards/planck/keymaps/default/config.h b/keyboards/planck/keymaps/default/config.h index 9020d2b9f88..464b7b29f8c 100644 --- a/keyboards/planck/keymaps/default/config.h +++ b/keyboards/planck/keymaps/default/config.h @@ -1,13 +1,27 @@ +/* Copyright 2015-2021 Jack Humbert + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #pragma once #ifdef AUDIO_ENABLE - #define STARTUP_SONG SONG(PLANCK_SOUND) - // #define STARTUP_SONG SONG(NO_SOUND) +# 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) \ - } +# define DEFAULT_LAYER_SONGS \ + { SONG(QWERTY_SOUND), SONG(COLEMAK_SOUND), SONG(DVORAK_SOUND) } #endif /* @@ -33,4 +47,3 @@ // Most tactile encoders have detents every 4 stages #define ENCODER_RESOLUTION 4 - diff --git a/keyboards/planck/keymaps/default/keymap.c b/keyboards/planck/keymaps/default/keymap.c index 9a6e1189b69..7c787e0366a 100644 --- a/keyboards/planck/keymaps/default/keymap.c +++ b/keyboards/planck/keymaps/default/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2015-2017 Jack Humbert +/* Copyright 2015-2021 Jack Humbert * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/keyboards/planck/keymaps/dvz/config.h b/keyboards/planck/keymaps/dvz/config.h new file mode 100644 index 00000000000..5535c3ca194 --- /dev/null +++ b/keyboards/planck/keymaps/dvz/config.h @@ -0,0 +1,73 @@ + /* Copyright 2021 Milan Düwel + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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) \ + }*/ + + #define PING_SOUND Q__NOTE(_A6), WD_NOTE(_E7) +#endif + +/* + * MIDI options + */ + +/* 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 + +// Most tactile encoders have detents every 4 stages +#define ENCODER_RESOLUTION 4 + +#define COMBO_COUNT 4 + +#ifdef AUDIO_ENABLE + #define DAC_SAMPLE_MAX 65535/2 +#endif + +#define RGBLIGHT_LAYERS +#define RGBLIGHT_SAT_STEP 5 +#define RGBLIGHT_VAL_STEP 8 +#define RGBLIGHT_SLEEP +#define RGBLED_NUM 9 + +#undef RGBLIGHT_ANIMATIONS +#define RGBLIGHT_EFFECT_BREATHING +#define RGBLIGHT_EFFECT_TWINKLE +#define RGBLIGHT_EFFECT_KNIGHT +#define RGBLIGHT_EFFECT_STATIC_GRADIENT +#define RGBLIGHT_EFFECT_SNAKE +#define RGBLIGHT_EFFECT_RAINBOW_SWIRL + +#define RGBLIGHT_RAINBOW_SWIRL_RANGE 127 diff --git a/keyboards/planck/keymaps/dvz/keymap.c b/keyboards/planck/keymaps/dvz/keymap.c new file mode 100644 index 00000000000..f1d213b42cd --- /dev/null +++ b/keyboards/planck/keymaps/dvz/keymap.c @@ -0,0 +1,280 @@ +/* Copyright 2015-2017 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 . + */ + +#include QMK_KEYBOARD_H +#include "muse.h" +#include "keymap_german.h" + +enum combos { + AE, + OE, + UE, + SZ +}; + +const uint16_t PROGMEM ae_combo[] = {KC_A, KC_E, COMBO_END}; +const uint16_t PROGMEM oe_combo[] = {KC_O, KC_E, COMBO_END}; +const uint16_t PROGMEM ue_combo[] = {KC_U, KC_E, COMBO_END}; +const uint16_t PROGMEM sz_combo[] = {KC_S, DE_Z, COMBO_END}; + +combo_t key_combos[COMBO_COUNT] = { + [AE] = COMBO(ae_combo, DE_AE), + [OE] = COMBO(oe_combo, DE_OE), + [UE] = COMBO(ue_combo, DE_UE), + [SZ] = COMBO(sz_combo, DE_SS) +}; + +enum planck_layers { + _QWERTZ, + _NUMPD, + _LOWER, + _RAISE, + _ADJUST +}; + +enum planck_keycodes { + QWERTZ = SAFE_RANGE, + NUMPD, + SCROLL +}; + +bool scroll = false; + +#ifdef AUDIO_ENABLE + float ping_song[][2] = SONG(PING_SOUND); +#endif + +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* QWERTZ + * ,-----------------------------------------------------------------------------------. + * | RtEnc| Q | W | E | R | T | Z | U | I | O | P | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | + | - | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | SfTab| Y | X | C | V | B | N | M | , | . | Up |SfEnt | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | GUI | NumPd| Alt | Num | Space | Sym | Del | Left | Down |Right | + * `-----------------------------------------------------------------------------------' + */ +[_QWERTZ] = LAYOUT_planck_grid( + SCROLL, KC_Q, KC_W, KC_E, KC_R, KC_T, DE_Z, 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, DE_PLUS, DE_MINS, +LSFT_T(KC_TAB),DE_Y, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_SFTENT, + KC_LCTL, KC_LGUI, NUMPD, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT +), + +/* Numpad + * ,-----------------------------------------------------------------------------------. + * | | 7 | 8 | 9 | / | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | NLCK | 4 | 5 | 6 | - | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | 1 | 2 | 3 | + | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | . | 0 | , |NumOFF| Enter |Raise | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_NUMPD] = LAYOUT_planck_grid( + SFT_T(KC_PASTE),KC_P7, KC_P8, KC_P9, DE_SLSH, _______, _______, _______, _______, _______, _______, _______, + KC_NLCK, KC_P4, KC_P5, KC_P6, DE_MINS, _______, _______, _______, _______, _______, _______, _______, + _______, KC_P1, KC_P2, KC_P3, DE_PLUS, _______, _______, _______, _______, _______, _______, _______, + CTL_T(KC_COPY),KC_DOT, KC_P0, KC_COMM, NUMPD, KC_ENT, KC_ENT, _______, _______, _______, _______, _______ +), + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | ^ | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | F10 | F11 | F12 | F13 | F14 | F15 | | | |Pg Up | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | Home |Pg Dn | End | + * `-----------------------------------------------------------------------------------' + */ +[_LOWER] = LAYOUT_planck_grid( + _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, + 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_F13, KC_F14, KC_F15, _______, _______, _______, KC_PGUP, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END +), + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | | ! | " | § | $ | % | & | / | ( | ) | = | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | ° | | | | | | | | ? | [ | ] | ' | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | \ | < | > | { | } | Vol+ | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | Brt- | Vol- | Brt+ | + * `-----------------------------------------------------------------------------------' + */ +[_RAISE] = LAYOUT_planck_grid( + _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, DE_SLSH, DE_LPRN, DE_RPRN, DE_EQL, KC_BSPC, + KC_TILD, _______, _______, _______, _______, _______, DE_PIPE, DE_QUES, DE_LBRC, DE_RBRC, DE_QUOT, DE_HASH, + _______, _______, _______, _______, _______, DE_BSLS, DE_LABK, DE_RABK, DE_LCBR, DE_RCBR, KC_VOLU, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BRID, KC_VOLD, KC_BRIU +), + +/* Adjust (Lower + Raise) + * v------------------------RGB CONTROL--------------------v + * ,-----------------------------------------------------------------------------------. + * | | Reset|Debug | RGB |RGBMOD| HUE+ | HUE- | SAT+ | SAT- |BRGTH+|BRGTH-| Del | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |PowOff| |MUSmod|Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof|TermOn|TermOf| | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_ADJUST] = LAYOUT_planck_grid( + _______, RESET, DEBUG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL , + KC_POWER,_______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, _______, _______, _______, _______, _______, + _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, TERM_ON, TERM_OFF, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +) + +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + /*case QWERTY: + if (record->event.pressed) { + print("mode just switched to qwerty and this is a huge string\n"); + set_single_persistent_default_layer(_QWERTY); + } + return false; + break; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + break; + case DVORAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_DVORAK); + } + return false; + break;*/ + case NUMPD: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_SONG(ping_song); + #endif + if (layer_state_is(_NUMPD)) { + layer_off(_NUMPD); + } else { + layer_on(_NUMPD); + } + } + return false; + break; + case SCROLL: + if (record->event.pressed) { + scroll = true; + } else { + scroll = false; + } + default: + return true; + } +} + +void encoder_update(bool clockwise) { + if (layer_state_is(_NUMPD)){ + if (clockwise) { + tap_code(KC_RIGHT); + } else { + tap_code(KC_LEFT); + } + } else if (scroll) { //scroll fast mode + if (clockwise) { + tap_code(KC_PGDN); + } else { + tap_code(KC_PGUP); + } + } else { + if (clockwise) { + #ifdef MOUSEKEY_ENABLE + tap_code(KC_MS_WH_DOWN); + #else + tap_code(KC_PGDN); + #endif + } else { + #ifdef MOUSEKEY_ENABLE + tap_code(KC_MS_WH_UP); + #else + tap_code(KC_PGUP); + #endif + } + } +} + +void matrix_scan_user(void) { +} + +bool music_mask_user(uint16_t keycode) { + switch (keycode) { + case RAISE: + case LOWER: + return false; + default: + return true; + } +} +const rgblight_segment_t PROGMEM numbers_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {3, 4, HSV_GREEN} +); +const rgblight_segment_t PROGMEM symbols_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {2, 5, HSV_PURPLE} +); +const rgblight_segment_t PROGMEM numpad_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {5, 4, HSV_RED} // Light 4 LEDs, starting with LED 6 +); +const rgblight_segment_t PROGMEM config_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {2, 6, HSV_YELLOW} +); + +// Now define the array of layers. Later layers take precedence +const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( + numbers_layer, + symbols_layer, + numpad_layer, // Overrides other layers + config_layer +); + +void keyboard_post_init_user(void) { + // Enable the LED layers + rgblight_layers = my_rgb_layers; +} + +layer_state_t layer_state_set_user(layer_state_t state) { + if (!(layer_state_is(_NUMPD))) { + state = update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); + } + rgblight_set_layer_state(2, layer_state_cmp(state, 1)); + rgblight_set_layer_state(0, layer_state_cmp(state, 2)); + rgblight_set_layer_state(1, layer_state_cmp(state, 3)); + rgblight_set_layer_state(3, layer_state_cmp(state, 4)); + return state; +} diff --git a/keyboards/planck/keymaps/dvz/readme.md b/keyboards/planck/keymaps/dvz/readme.md new file mode 100644 index 00000000000..f4c1eb6ad81 --- /dev/null +++ b/keyboards/planck/keymaps/dvz/readme.md @@ -0,0 +1,11 @@ +# devilzmods's german Planck Layout + +- QWERTZ +- Lefthand Numpad layer (toggle) +- Standard Numbers (left) +- Symbols (right) +- Settings + +This layout feature "rolling umlauts". Typing ae, oe, ue, sz respectively gets recognized and spits out ä, ö, ü, ß. For this, your systems keyboard layout/language has to be set to DE/German + +The layout is also designed around a rotary encoder in the top left corner that switches between slow and fast scrolling in the default layer by pressing it down while turning. In the numpad layer it scrolls left/right and pressing it down holds shift to select while scrolling. diff --git a/keyboards/planck/keymaps/dvz/rules.mk b/keyboards/planck/keymaps/dvz/rules.mk new file mode 100644 index 00000000000..7216951bf96 --- /dev/null +++ b/keyboards/planck/keymaps/dvz/rules.mk @@ -0,0 +1,5 @@ +SRC += muse.c + +COMBO_ENABLE = yes +#VIA_ENABLE = yes +AUDIO_ENABLE = yes diff --git a/keyboards/planck/keymaps/jimmysjolund/config.h b/keyboards/planck/keymaps/jimmysjolund/config.h new file mode 100644 index 00000000000..5606510d498 --- /dev/null +++ b/keyboards/planck/keymaps/jimmysjolund/config.h @@ -0,0 +1,49 @@ +/* Copyright 2021 Jimmy Sjölund + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 + */ + +/* 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 + +// Most tactile encoders have detents every 4 stages +#define ENCODER_RESOLUTION 4 + diff --git a/keyboards/planck/keymaps/jimmysjolund/keymap.c b/keyboards/planck/keymaps/jimmysjolund/keymap.c new file mode 100644 index 00000000000..6b89b99540b --- /dev/null +++ b/keyboards/planck/keymaps/jimmysjolund/keymap.c @@ -0,0 +1,367 @@ +/* Copyright 2015-2017 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 . + */ + +#include QMK_KEYBOARD_H +#include "muse.h" + + +enum planck_layers { + _QWERTY, + _COLEMAK, + _DVORAK, + _LOWER, + _RAISE, + _PLOVER, + _ADJUST +}; + +enum planck_keycodes { + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK, + PLOVER, + BACKLIT, + EXT_PLV +}; + +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty - Original + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +/* Qwerty - jimmysjolund 2021-09-22 + * ,-----------------------------------------------------------------------------------. + * | 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 | , | . | / |Shift | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Del | Ctrl | GUI | Alt |Lower |Raise |Enter |Space |AltGr | Down | Up |Enter | + * `-----------------------------------------------------------------------------------' + */ + +[_QWERTY] = LAYOUT_planck_grid( + 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_QUOT, + 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_DEL, KC_LCTL, KC_LGUI, KC_LALT, LOWER, RAISE, KC_ENT, KC_SPC, KC_ALGR, KC_DOWN, KC_UP, KC_ENT +), + +/* Colemak Original + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | R | S | T | D | H | N | E | I | O | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +/* Colemak jimmysjolund + * ,-----------------------------------------------------------------------------------. + * | Esc | Q | W | F | P | G | J | L | U | Y | ; | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Tab | A | R | S | T | D | H | N | E | I | O | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | K | M | , | . | / |Shift | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Del | Ctrl | GUI | Alt |Lower |Raise |Enter |Space |AltGr | Down | Up |Enter | + * `-----------------------------------------------------------------------------------' + */ +[_COLEMAK] = LAYOUT_planck_grid( + KC_ESC, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, + KC_TAB, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_DEL, KC_LCTL, KC_LGUI, KC_LALT, LOWER, RAISE, KC_ENT, KC_SPC, KC_ALGR, KC_DOWN, KC_UP, KC_ENT +), + +/* Dvorak + * ,-----------------------------------------------------------------------------------. + * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | O | E | U | I | D | H | T | N | S | / | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_DVORAK] = LAYOUT_planck_grid( + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, + KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT , + BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +), + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |Pg Up |Pg Dn | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_LOWER] = 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_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_LEFT, KC_DOWN, KC_UP, KC_RGHT +), + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_RAISE] = 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_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, + _______, 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 +), + + +/* Plover layer (http://opensteno.org) + * ,-----------------------------------------------------------------------------------. + * | # | # | # | # | # | # | # | # | # | # | # | # | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | S | T | P | H | * | * | F | P | L | T | D | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | S | K | W | R | * | * | R | B | G | S | Z | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Exit | | | A | O | | E | U | | | | + * `-----------------------------------------------------------------------------------' + */ +[_PLOVER] = LAYOUT_planck_grid( + KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 , + XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, + XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + EXT_PLV, XXXXXXX, XXXXXXX, KC_C, KC_V, XXXXXXX, XXXXXXX, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX +), + +/* Adjust (Lower + Raise) + * ,-----------------------------------------------------------------------------------. + * | | Reset| | | | | | | | | | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_ADJUST] = LAYOUT_planck_grid( + _______, RESET, DEBUG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL , + _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______, + _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, TERM_ON, TERM_OFF, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +) + +}; + +#ifdef AUDIO_ENABLE + float plover_song[][2] = SONG(PLOVER_SOUND); + float plover_gb_song[][2] = SONG(PLOVER_GOODBYE_SOUND); +#endif + +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 QWERTY: + if (record->event.pressed) { + print("mode just switched to qwerty and this is a huge string\n"); + set_single_persistent_default_layer(_QWERTY); + } + return false; + break; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + break; + case DVORAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_DVORAK); + } + return false; + break; + case BACKLIT: + if (record->event.pressed) { + register_code(KC_RSFT); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + #ifdef KEYBOARD_planck_rev5 + PORTE &= ~(1<<6); + #endif + } else { + unregister_code(KC_RSFT); + #ifdef KEYBOARD_planck_rev5 + PORTE |= (1<<6); + #endif + } + return false; + break; + case PLOVER: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + stop_all_notes(); + PLAY_SONG(plover_song); + #endif + layer_off(_RAISE); + layer_off(_LOWER); + layer_off(_ADJUST); + layer_on(_PLOVER); + if (!eeconfig_is_enabled()) { + eeconfig_init(); + } + keymap_config.raw = eeconfig_read_keymap(); + keymap_config.nkro = 1; + eeconfig_update_keymap(keymap_config.raw); + } + return false; + break; + case EXT_PLV: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_SONG(plover_gb_song); + #endif + layer_off(_PLOVER); + } + return false; + break; + } + return true; +} + +bool muse_mode = false; +uint8_t last_muse_note = 0; +uint16_t muse_counter = 0; +uint8_t muse_offset = 70; +uint16_t muse_tempo = 50; + +bool encoder_update_user(uint8_t index, bool clockwise) { + if (muse_mode) { + if (IS_LAYER_ON(_RAISE)) { + if (clockwise) { + muse_offset++; + } else { + muse_offset--; + } + } else { + if (clockwise) { + muse_tempo+=1; + } else { + muse_tempo-=1; + } + } + } else { + if (clockwise) { + #ifdef MOUSEKEY_ENABLE + tap_code(KC_MS_WH_DOWN); + #else + tap_code(KC_PGDN); + #endif + } else { + #ifdef MOUSEKEY_ENABLE + tap_code(KC_MS_WH_UP); + #else + tap_code(KC_PGUP); + #endif + } + } + return false; +} + +bool dip_update_user(uint8_t index, bool active) { + switch (index) { + case 0: + if (active) { + #ifdef AUDIO_ENABLE + PLAY_SONG(plover_song); + #endif + layer_on(_ADJUST); + } else { + #ifdef AUDIO_ENABLE + PLAY_SONG(plover_gb_song); + #endif + layer_off(_ADJUST); + } + break; + case 1: + if (active) { + muse_mode = true; + } else { + muse_mode = false; + #ifdef AUDIO_ENABLE + stop_all_notes(); + #endif + } + } + return false; +} + +void matrix_scan_user(void) { + #ifdef AUDIO_ENABLE + if (muse_mode) { + if (muse_counter == 0) { + uint8_t muse_note = muse_offset + SCALE[muse_clock_pulse()]; + if (muse_note != last_muse_note) { + stop_note(compute_freq_for_midi_note(last_muse_note)); + play_note(compute_freq_for_midi_note(muse_note), 0xF); + last_muse_note = muse_note; + } + } + muse_counter = (muse_counter + 1) % muse_tempo; + } + #endif +} + +bool music_mask_user(uint16_t keycode) { + switch (keycode) { + case RAISE: + case LOWER: + return false; + default: + return true; + } +} diff --git a/keyboards/planck/keymaps/jimmysjolund/readme.md b/keyboards/planck/keymaps/jimmysjolund/readme.md new file mode 100644 index 00000000000..de9680b4985 --- /dev/null +++ b/keyboards/planck/keymaps/jimmysjolund/readme.md @@ -0,0 +1,2 @@ +# The Default Planck Layout + diff --git a/keyboards/planck/keymaps/jimmysjolund/rules.mk b/keyboards/planck/keymaps/jimmysjolund/rules.mk new file mode 100644 index 00000000000..dcf16bef399 --- /dev/null +++ b/keyboards/planck/keymaps/jimmysjolund/rules.mk @@ -0,0 +1 @@ +SRC += muse.c diff --git a/keyboards/planck/keymaps/not-quite-neo/rules.mk b/keyboards/planck/keymaps/not-quite-neo/rules.mk index b30c3a21e09..b4e2e5c8156 100644 --- a/keyboards/planck/keymaps/not-quite-neo/rules.mk +++ b/keyboards/planck/keymaps/not-quite-neo/rules.mk @@ -12,7 +12,6 @@ EXTRAKEY_ENABLE = yes # Audio control and System control(+450) CONSOLE_ENABLE = no # Console for debug(+400) COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -USB_6KRO_ENABLE = no # 6key Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality MIDI_ENABLE = no # MIDI controls AUDIO_ENABLE = no # Audio output on port C6 @@ -20,7 +19,6 @@ AUDIO_ENABLE = no # Audio output on port C6 UNICODE_ENABLE = no # Unicode (can't be used with unicodemap) UNICODEMAP_ENABLE = no # Enable extended unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend - diff --git a/keyboards/planck/keymaps/pjanx/config.h b/keyboards/planck/keymaps/pjanx/config.h new file mode 100644 index 00000000000..b38db026e06 --- /dev/null +++ b/keyboards/planck/keymaps/pjanx/config.h @@ -0,0 +1,49 @@ +/* Copyright 2015-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 + +#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 + */ + +/* 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 + +// Most tactile encoders have detents every 4 stages +#define ENCODER_RESOLUTION 4 + diff --git a/keyboards/planck/keymaps/pjanx/keymap.c b/keyboards/planck/keymaps/pjanx/keymap.c new file mode 100644 index 00000000000..cf2e52623d2 --- /dev/null +++ b/keyboards/planck/keymaps/pjanx/keymap.c @@ -0,0 +1,354 @@ +/* Copyright 2015-2017 Jack Humbert + * Copyright 2021 Přemysl Eric Janouch + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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, + _COLEMAK, + _DVORAK, + _LOWER, + _RAISE, + _PLOVER, + _ADJUST +}; + +enum planck_keycodes { + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK, + PLOVER, + BACKLIT, + EXT_PLV +}; + +#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 | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |LCtrl | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |LShift| Z | X | C | V | B | N | M | , | . | / |RShift| + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Esc | Caps | LGUI | LAlt |Lower | Space |Raise | RAlt | Down | Up |Enter | + * `-----------------------------------------------------------------------------------' + */ +[_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_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_RSFT, + KC_ESC, KC_CAPS, KC_LGUI, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, KC_RALT, KC_DOWN, KC_UP, KC_ENT +), + +/* Colemak + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Esc | A | R | S | T | D | H | N | E | I | O | " | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_COLEMAK] = LAYOUT_planck_grid( + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, + KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , + BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +), + +/* Dvorak + * ,-----------------------------------------------------------------------------------. + * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Esc | A | O | E | U | I | D | H | T | N | S | / | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_DVORAK] = LAYOUT_planck_grid( + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, + KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT , + BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +), + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Ins | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |RCtrl | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | RGUI | | | | | | Left | Vol- | Vol+ | Right| + * `-----------------------------------------------------------------------------------' + */ +[_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_INS, + KC_RCTL, 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),KC_HOME, KC_END, _______, + _______, KC_RGUI, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_VOLD, KC_VOLU, KC_RGHT +), + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |RCtrl | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | PgDn | PgUp | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | App | | | | | | Left | Vol- | Vol+ | Right| + * `-----------------------------------------------------------------------------------' + */ +[_RAISE] = 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_DEL, + KC_RCTL, 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_PGDN, KC_PGUP, _______, + _______, KC_APP, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_VOLD, KC_VOLU, KC_RGHT +), + +/* Plover layer (http://opensteno.org) + * ,-----------------------------------------------------------------------------------. + * | # | # | # | # | # | # | # | # | # | # | # | # | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | S | T | P | H | * | * | F | P | L | T | D | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | S | K | W | R | * | * | R | B | G | S | Z | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Exit | | | A | O | | E | U | | | | + * `-----------------------------------------------------------------------------------' + */ +[_PLOVER] = LAYOUT_planck_grid( + KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 , + XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, + XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + EXT_PLV, XXXXXXX, XXXXXXX, KC_C, KC_V, XXXXXXX, XXXXXXX, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX +), + +/* Adjust (Lower + Raise) + * v------------------------RGB CONTROL--------------------v + * ,-----------------------------------------------------------------------------------. + * | | Reset|Debug | RGB |RGBMOD| HUE+ | HUE- | SAT+ | SAT- |BRGTH+|BRGTH-| Del | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | |MUSmod|Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof|TermOn|TermOf| | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | M1 | M2 | M3 | | | | | <- | vv | ^^ | -> | + * `-----------------------------------------------------------------------------------' + */ +[_ADJUST] = LAYOUT_planck_grid( + _______, RESET, DEBUG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL , + _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______, + _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, TERM_ON, TERM_OFF, _______, _______, _______, + KC_MS_BTN1, KC_MS_BTN2, KC_MS_BTN3, _______, _______, _______, _______, _______, KC_MS_LEFT, KC_MS_DOWN, KC_MS_UP, KC_MS_RIGHT +) + +}; + +#ifdef AUDIO_ENABLE + float plover_song[][2] = SONG(PLOVER_SOUND); + float plover_gb_song[][2] = SONG(PLOVER_GOODBYE_SOUND); +#endif + +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 QWERTY: + if (record->event.pressed) { + print("mode just switched to qwerty and this is a huge string\n"); + set_single_persistent_default_layer(_QWERTY); + } + return false; + break; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + break; + case DVORAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_DVORAK); + } + return false; + break; + case BACKLIT: + if (record->event.pressed) { + register_code(KC_RSFT); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + #ifdef KEYBOARD_planck_rev5 + writePinLow(E6); + #endif + } else { + unregister_code(KC_RSFT); + #ifdef KEYBOARD_planck_rev5 + writePinHigh(E6); + #endif + } + return false; + break; + case PLOVER: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + stop_all_notes(); + PLAY_SONG(plover_song); + #endif + layer_off(_RAISE); + layer_off(_LOWER); + layer_off(_ADJUST); + layer_on(_PLOVER); + if (!eeconfig_is_enabled()) { + eeconfig_init(); + } + keymap_config.raw = eeconfig_read_keymap(); + keymap_config.nkro = 1; + eeconfig_update_keymap(keymap_config.raw); + } + return false; + break; + case EXT_PLV: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_SONG(plover_gb_song); + #endif + layer_off(_PLOVER); + } + return false; + break; + } + return true; +} + +bool muse_mode = false; +uint8_t last_muse_note = 0; +uint16_t muse_counter = 0; +uint8_t muse_offset = 70; +uint16_t muse_tempo = 50; + +bool encoder_update(bool clockwise) { + if (muse_mode) { + if (IS_LAYER_ON(_RAISE)) { + if (clockwise) { + muse_offset++; + } else { + muse_offset--; + } + } else { + if (clockwise) { + muse_tempo+=1; + } else { + muse_tempo-=1; + } + } + } else { + if (clockwise) { + #ifdef MOUSEKEY_ENABLE + tap_code(KC_MS_WH_DOWN); + #else + tap_code(KC_PGDN); + #endif + } else { + #ifdef MOUSEKEY_ENABLE + tap_code(KC_MS_WH_UP); + #else + tap_code(KC_PGUP); + #endif + } + } + return true; +} + +bool dip_switch_update_user(uint8_t index, bool active) { + switch (index) { + case 0: { +#ifdef AUDIO_ENABLE + static bool play_sound = false; +#endif + if (active) { +#ifdef AUDIO_ENABLE + if (play_sound) { PLAY_SONG(plover_song); } +#endif + layer_on(_ADJUST); + } else { +#ifdef AUDIO_ENABLE + if (play_sound) { PLAY_SONG(plover_gb_song); } +#endif + layer_off(_ADJUST); + } +#ifdef AUDIO_ENABLE + play_sound = true; +#endif + break; + } + case 1: + if (active) { + muse_mode = true; + } else { + muse_mode = false; + } + } + return true; +} + +void matrix_scan_user(void) { +#ifdef AUDIO_ENABLE + if (muse_mode) { + if (muse_counter == 0) { + uint8_t muse_note = muse_offset + SCALE[muse_clock_pulse()]; + if (muse_note != last_muse_note) { + stop_note(compute_freq_for_midi_note(last_muse_note)); + play_note(compute_freq_for_midi_note(muse_note), 0xF); + last_muse_note = muse_note; + } + } + muse_counter = (muse_counter + 1) % muse_tempo; + } else { + if (muse_counter) { + stop_all_notes(); + muse_counter = 0; + } + } +#endif +} + +bool music_mask_user(uint16_t keycode) { + switch (keycode) { + case RAISE: + case LOWER: + return false; + default: + return true; + } +} diff --git a/keyboards/planck/keymaps/pjanx/readme.md b/keyboards/planck/keymaps/pjanx/readme.md new file mode 100644 index 00000000000..e53397847d6 --- /dev/null +++ b/keyboards/planck/keymaps/pjanx/readme.md @@ -0,0 +1,2 @@ +# Modified Default Planck Layout + diff --git a/keyboards/planck/keymaps/pjanx/rules.mk b/keyboards/planck/keymaps/pjanx/rules.mk new file mode 100644 index 00000000000..3a551bd429b --- /dev/null +++ b/keyboards/planck/keymaps/pjanx/rules.mk @@ -0,0 +1,2 @@ +SRC += muse.c +MOUSEKEY_ENABLE = yes diff --git a/keyboards/planck/keymaps/zach/rules.mk b/keyboards/planck/keymaps/zach/rules.mk index 3247aece2c4..544e10a456f 100644 --- a/keyboards/planck/keymaps/zach/rules.mk +++ b/keyboards/planck/keymaps/zach/rules.mk @@ -2,7 +2,7 @@ # Max .hex size is about 28636 bytes # Build Options -# change to "no" to disable the options, or define them in the Makefile in +# change to "no" to disable the options, or define them in the Makefile in # the appropriate keymap folder that will get included automatically # TAP_DANCE_ENABLE = yes # Enable TapDance functionality @@ -12,7 +12,6 @@ EXTRAKEY_ENABLE = no # Audio control and System control(+450) CONSOLE_ENABLE = no # Console for debug(+400) COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -USB_6KRO_ENABLE = no # 6key Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality MIDI_ENABLE = no # MIDI controls AUDIO_ENABLE = no # Audio output on port C6 @@ -20,7 +19,6 @@ AUDIO_ENABLE = no # Audio output on port C6 UNICODE_ENABLE = no # Unicode (can't be used with unicodemap) UNICODEMAP_ENABLE = yes # Enable extended unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend - diff --git a/keyboards/planck/light/rules.mk b/keyboards/planck/light/rules.mk index 74705c452eb..afd75a5fb68 100644 --- a/keyboards/planck/light/rules.mk +++ b/keyboards/planck/light/rules.mk @@ -17,7 +17,6 @@ NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: h BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality MIDI_ENABLE = yes # MIDI support AUDIO_ENABLE = yes # Audio output -UNICODE_ENABLE = no # Unicode RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. RGB_MATRIX_ENABLE = yes RGB_MATRIX_DRIVER = IS31FL3731 diff --git a/keyboards/planck/rev1/rules.mk b/keyboards/planck/rev1/rules.mk index 5669b906cc1..63645c35a6f 100644 --- a/keyboards/planck/rev1/rules.mk +++ b/keyboards/planck/rev1/rules.mk @@ -16,7 +16,6 @@ COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality AUDIO_ENABLE = no # Audio output -UNICODE_ENABLE = no # Unicode RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE diff --git a/keyboards/planck/rev2/rules.mk b/keyboards/planck/rev2/rules.mk index 5669b906cc1..63645c35a6f 100644 --- a/keyboards/planck/rev2/rules.mk +++ b/keyboards/planck/rev2/rules.mk @@ -16,7 +16,6 @@ COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality AUDIO_ENABLE = no # Audio output -UNICODE_ENABLE = no # Unicode RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE diff --git a/keyboards/planck/rev3/rules.mk b/keyboards/planck/rev3/rules.mk index 5669b906cc1..63645c35a6f 100644 --- a/keyboards/planck/rev3/rules.mk +++ b/keyboards/planck/rev3/rules.mk @@ -16,7 +16,6 @@ COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality AUDIO_ENABLE = no # Audio output -UNICODE_ENABLE = no # Unicode RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE diff --git a/keyboards/planck/rev4/rules.mk b/keyboards/planck/rev4/rules.mk index 0ffb0a18561..dbabe1bf25d 100644 --- a/keyboards/planck/rev4/rules.mk +++ b/keyboards/planck/rev4/rules.mk @@ -16,7 +16,6 @@ COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality AUDIO_ENABLE = yes # Audio output -UNICODE_ENABLE = no # Unicode RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE diff --git a/keyboards/planck/rev5/rules.mk b/keyboards/planck/rev5/rules.mk index ff4fee38607..edba079eaa7 100644 --- a/keyboards/planck/rev5/rules.mk +++ b/keyboards/planck/rev5/rules.mk @@ -16,7 +16,6 @@ COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality AUDIO_ENABLE = yes # Audio output -UNICODE_ENABLE = no # Unicode RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE diff --git a/keyboards/planck/rev6/rules.mk b/keyboards/planck/rev6/rules.mk index dae2116035e..6150d5d1ce8 100644 --- a/keyboards/planck/rev6/rules.mk +++ b/keyboards/planck/rev6/rules.mk @@ -17,7 +17,6 @@ COMMAND_ENABLE = yes # Commands for debug and configuration NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality AUDIO_ENABLE = yes # Audio output -UNICODE_ENABLE = no # Unicode RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. WS2812_DRIVER = pwm diff --git a/keyboards/playkbtw/helen80/helen80.h b/keyboards/playkbtw/helen80/helen80.h index e1a25ea84e6..ffb6275a611 100644 --- a/keyboards/playkbtw/helen80/helen80.h +++ b/keyboards/playkbtw/helen80/helen80.h @@ -33,6 +33,3 @@ { K40, KC_NO, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, KC_NO, K4C }, \ { K50, K51, K52, K53, K54, K55, K56, K57, K58, K59, K5A, K5B, K5C, K5D, K5E }, \ } - -// generated by KBFirmware JSON to QMK Parser -// https://noroadsleft.github.io/kbf_qmk_converter/ diff --git a/keyboards/playkbtw/helen80/info.json b/keyboards/playkbtw/helen80/info.json index 34e3384b386..1112fafd218 100644 --- a/keyboards/playkbtw/helen80/info.json +++ b/keyboards/playkbtw/helen80/info.json @@ -33,7 +33,7 @@ {"label":"K19 (B7,C6)", "x":9, "y":1.5}, {"label":"K1A (B7,B5)", "x":10, "y":1.5}, {"label":"K1B (B7,F4)", "x":11, "y":1.5}, - {"label":"K1C (B7,F1)", "x":12, "y":1.5}, + {"label":"K1C (B7,F1)", "x":12, "y":1.5}, {"label":"K1E (B7,B0)", "x":13, "y":1.5, "w":2}, {"label":"K5B (D7,F4)", "x":15.25, "y":1.5}, {"label":"K5C (D7,F1)", "x":16.25, "y":1.5}, @@ -68,7 +68,7 @@ {"label":"K3A (F0,B5)", "x":10.75, "y":3.5}, {"label":"K3B (F0,F4)", "x":11.75, "y":3.5}, {"label":"K3C (F0,F1)", "x":12.75, "y":3.5, "w":2.25}, - {"label":"K40 (D6,D1)", "x":0, "y":4.5, "w":2.25}, + {"label":"K40 (D6,D1)", "x":0, "y":4.5, "w":2.25}, {"label":"K42 (D6,F7)", "x":2.25, "y":4.5}, {"label":"K43 (D6,F6)", "x":3.25, "y":4.5}, {"label":"K44 (D6,F5)", "x":4.25, "y":4.5}, @@ -79,7 +79,7 @@ {"label":"K49 (D6,C6)", "x":9.25, "y":4.5}, {"label":"K4A (D6,B5)", "x":10.25, "y":4.5}, {"label":"K4B (D6,F4)", "x":11.25, "y":4.5}, - {"label":"K4C (D6,F1)", "x":12.25, "y":4.5, "w":2.75}, + {"label":"K4C (D6,F1)", "x":12.25, "y":4.5, "w":2.75}, {"label":"K4E (D6,B0)", "x":16.25, "y":4.5}, {"label":"K50 (D7,D1)", "x":0, "y":5.5, "w":1.25}, {"label":"K51 (D7,D0)", "x":1.25, "y":5.5, "w":1.25}, @@ -95,5 +95,4 @@ ] } } - ,"meta": "https://noroadsleft.github.io/kbf_qmk_converter/" } diff --git a/keyboards/playkbtw/helen80/rules.mk b/keyboards/playkbtw/helen80/rules.mk index 149e878d6ce..0163d38c55c 100644 --- a/keyboards/playkbtw/helen80/rules.mk +++ b/keyboards/playkbtw/helen80/rules.mk @@ -24,6 +24,3 @@ LTO_ENABLE = yes KEY_LOCK_ENABLE = no # Enable KC_LOCK support LAYOUTS = tkl_ansi - -# generated by KBFirmware JSON to QMK Parser -# https://noroadsleft.github.io/kbf_qmk_converter/ diff --git a/keyboards/playkbtw/pk64rgb/config.h b/keyboards/playkbtw/pk64rgb/config.h new file mode 100644 index 00000000000..0e63f9204d1 --- /dev/null +++ b/keyboards/playkbtw/pk64rgb/config.h @@ -0,0 +1,99 @@ +/* Copyright 2021 Play Keyboard + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 0x706B // Play Keyboard +#define PRODUCT_ID 0x3634 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Play Keyboard +#define PRODUCT Play Keyboard 64 RGB + +/* 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 { D7, D6, D5, D3, D2 } +#define MATRIX_COL_PINS { B5, B6, C6, C7, F7, F6, F5, F4, F1, F0, B1, B2, B3, B7 } + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +#ifdef RGB_MATRIX_ENABLE + #define RGB_MATRIX_KEYPRESSES + #define RGB_MATRIX_FRAMEBUFFER_EFFECTS + #define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS + #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 160 + #define RGB_MATRIX_LED_PROCESS_LIMIT 20 + #define RGB_MATRIX_LED_FLUSH_LIMIT 26 + #define DRIVER_ADDR_1 0b1010000 + #define DRIVER_COUNT 1 + #define DRIVER_LED_TOTAL 64 + + +#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +#define DISABLE_RGB_MATRIX_BAND_SAT +#define DISABLE_RGB_MATRIX_BAND_VAL +#define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT +#define DISABLE_RGB_MATRIX_BAND_PINWHEEL_VAL +#define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT +#define DISABLE_RGB_MATRIX_BAND_SPIRAL_VAL +#endif + +#define RGB_DI_PIN B0 +#ifdef RGB_DI_PIN +# define RGBLIGHT_EFFECT_BREATHING +# define RGBLIGHT_EFFECT_RAINBOW_MOOD +# define RGBLIGHT_EFFECT_RAINBOW_SWIRL +# define RGBLIGHT_EFFECT_SNAKE +# define RGBLIGHT_EFFECT_KNIGHT +# define RGBLIGHT_EFFECT_CHRISTMAS +# define RGBLIGHT_EFFECT_STATIC_GRADIENT +// # define RGBLIGHT_EFFECT_ALTERNATING +# define RGBLIGHT_EFFECT_TWINKLE +# define RGBLED_NUM 18 +# define RGBLIGHT_HUE_STEP 5 +# define RGBLIGHT_SAT_STEP 5 +# define RGBLIGHT_VAL_STEP 5 +# define RGBLIGHT_SLEEP +#endif + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* VIA related config */ +#define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2 diff --git a/keyboards/playkbtw/pk64rgb/info.json b/keyboards/playkbtw/pk64rgb/info.json new file mode 100644 index 00000000000..bc973f1b4cf --- /dev/null +++ b/keyboards/playkbtw/pk64rgb/info.json @@ -0,0 +1,83 @@ +{ + "keyboard_name": "PK64RGB", + "url": "", + "maintainer": "yj7272098", + "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/playkbtw/pk64rgb/keymaps/default/keymap.c b/keyboards/playkbtw/pk64rgb/keymaps/default/keymap.c new file mode 100644 index 00000000000..9cfbc3c287f --- /dev/null +++ b/keyboards/playkbtw/pk64rgb/keymaps/default/keymap.c @@ -0,0 +1,44 @@ +/* Copyright 2021 Play Keyboard + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_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_LALT, KC_LWIN, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_64_ansi( + _______, 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_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD, _______, _______,_______, _______, + _______, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, RGB_M_K, RGB_M_X, RGB_M_G, RGB_M_T, _______,_______,_______,_______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; + +void rgb_matrix_indicators_user(void) { + if (layer_state_is(1)) { + rgb_matrix_set_color(77,0xFF, 0x80, 0x00); + } + if (host_keyboard_led_state().caps_lock) { + rgb_matrix_set_color(28, 0xFF, 0xFF, 0xFF); + } +} \ No newline at end of file diff --git a/keyboards/playkbtw/pk64rgb/keymaps/default/readme.md b/keyboards/playkbtw/pk64rgb/keymaps/default/readme.md new file mode 100644 index 00000000000..9875a6a41f7 --- /dev/null +++ b/keyboards/playkbtw/pk64rgb/keymaps/default/readme.md @@ -0,0 +1,3 @@ +# Default PK64RGB Layout + +This is the default 64_ansi layout that comes flashed on every PK64RGB. \ No newline at end of file diff --git a/keyboards/playkbtw/pk64rgb/keymaps/via/keymap.c b/keyboards/playkbtw/pk64rgb/keymaps/via/keymap.c new file mode 100644 index 00000000000..3d18f60ddb3 --- /dev/null +++ b/keyboards/playkbtw/pk64rgb/keymaps/via/keymap.c @@ -0,0 +1,55 @@ +/* Copyright 2021 Play Keyboard + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_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_LALT, KC_LWIN, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] =LAYOUT_64_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, + KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, RGB_SAI, RGB_SAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, + 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, BL_TOGG, BL_INC, BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,RGB_VAI, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, KC_TRNS, RGB_MOD, RGB_HUI, RGB_VAD, RGB_HUD), + [2] = LAYOUT_64_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, 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_TRNS), + [3] = LAYOUT_64_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, 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_TRNS), +}; + +void rgb_matrix_indicators_user(void) { + if (layer_state_is(1)) { + rgb_matrix_set_color(77,0xFF, 0x80, 0x00); + } + if (host_keyboard_led_state().caps_lock) { + rgb_matrix_set_color(28, 0xFF, 0xFF, 0xFF); + } +} \ No newline at end of file diff --git a/keyboards/playkbtw/pk64rgb/keymaps/via/rules.mk b/keyboards/playkbtw/pk64rgb/keymaps/via/rules.mk new file mode 100644 index 00000000000..f39e053c66e --- /dev/null +++ b/keyboards/playkbtw/pk64rgb/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +SPACE_CADET_ENABLE = no diff --git a/keyboards/playkbtw/pk64rgb/pk64rgb.c b/keyboards/playkbtw/pk64rgb/pk64rgb.c new file mode 100644 index 00000000000..244a479672e --- /dev/null +++ b/keyboards/playkbtw/pk64rgb/pk64rgb.c @@ -0,0 +1,117 @@ +/* Copyright 2021 Play Keyboard + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 "pk64rgb.h" + +#ifdef RGB_MATRIX_ENABLE +const is31_led __flash g_is31_leds[DRIVER_LED_TOTAL] = { + /* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + + {0, A_1, B_1, C_1}, + {0, D_1, E_1, F_1}, + {0, G_1, H_1, I_1}, + {0, J_1, K_1, L_1}, + {0, A_6, B_6, C_6}, + {0, D_6, E_6, F_6}, + {0, G_6, H_6, I_6}, + {0, J_6, K_6, L_6}, + {0, A_11, B_11, C_11}, + {0, D_11, E_11, F_11}, + {0, G_11, H_11, I_11}, + {0, J_11, K_11, L_11}, + {0, A_16, B_16, C_16}, + {0, D_16, E_16, F_16}, + + {0, A_2, B_2, C_2}, + {0, D_2, E_2, F_2}, + {0, G_2, H_2, I_2}, + {0, J_2, K_2, L_2}, + {0, A_7, B_7, C_7}, + {0, D_7, E_7, F_7}, + {0, G_7, H_7, I_7}, + {0, J_7, K_7, L_7}, + {0, A_12, B_12, C_12}, + {0, D_12, E_12, F_12}, + {0, G_12, H_12, I_12}, + {0, J_12, K_12, L_12}, + {0, G_16, H_16, I_16}, + {0, J_16, K_16, L_16}, + + {0, A_3, B_3, C_3}, + {0, D_3, E_3, F_3}, + {0, G_3, H_3, I_3}, + {0, J_3, K_3, L_3}, + {0, A_8, B_8, C_8}, + {0, D_8, E_8, F_8}, + {0, G_8, H_8, I_8}, + {0, J_8, K_8, L_8}, + {0, A_13, B_13, C_13}, + {0, D_13, E_13, F_13}, + {0, G_13, H_13, I_13}, + {0, J_13, K_13, L_13}, + {0, A_15, B_15, C_15}, + + {0, A_4, B_4, C_4}, + {0, D_4, E_4, F_4}, + {0, G_4, H_4, I_4}, + {0, J_4, K_4, L_4}, + {0, A_9, B_9, C_9}, + {0, D_9, E_9, F_9}, + {0, G_9, H_9, I_9}, + {0, J_9, K_9, L_9}, + {0, A_14, B_14, C_14}, + {0, D_14, E_14, F_14}, + {0, G_14, H_14, I_14}, + {0, J_14, K_14, L_14}, + {0, D_15, E_15, F_15}, + {0, G_15, H_15, I_15}, + + {0, A_5, B_5, C_5}, + {0, D_5, E_5, F_5}, + {0, G_5, H_5, I_5}, + {0, J_5, K_5, L_5}, + {0, A_10, B_10, C_10}, + {0, D_10, E_10, F_10}, + {0, G_10, H_10, I_10}, + {0, J_10, K_10, L_10}, + {0, J_15, K_15, L_15} +}; + +led_config_t g_led_config = {{ + { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 }, + { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27 }, + { 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40}, + { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54 }, + { 55, 56, 57, 58, 59, 60, 61, 62, 63} +}, { + { 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 }, { 216, 0 }, + { 4, 16 }, { 18, 16 }, { 34, 16 }, { 50, 16 }, { 66, 16 }, { 82, 16 }, { 98, 16 }, { 114, 16 }, { 130, 16 }, { 146, 16 }, { 162, 16 }, { 178, 16 }, { 194, 16 }, { 220, 16 }, + { 6, 32 }, { 20, 32 }, { 36, 32 }, { 52, 32 }, { 68, 32 }, { 84, 32 }, { 100, 32 }, { 116, 32 }, { 132, 32 }, { 148, 32 }, { 164, 32 }, { 180, 32 }, { 212, 32 }, + { 9, 48 }, { 27, 48 }, { 43, 48 }, { 59, 48 }, { 75, 48 }, { 91, 48 }, { 107, 48 }, { 123, 48 }, { 139, 48 }, { 155, 48 }, { 171, 48 }, { 187, 48 }, { 203, 48 }, { 219, 48 }, + { 2, 64 }, { 16, 64 }, { 32, 64 }, { 64, 64 }, { 114, 64 }, { 130, 64 }, { 146, 64 }, { 204, 64 }, { 224, 64 } +}, { + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 1, 1, 1, 4, 1, 1, 4, 4, 4, +}}; +#endif \ No newline at end of file diff --git a/keyboards/playkbtw/pk64rgb/pk64rgb.h b/keyboards/playkbtw/pk64rgb/pk64rgb.h new file mode 100644 index 00000000000..be0ee0a011c --- /dev/null +++ b/keyboards/playkbtw/pk64rgb/pk64rgb.h @@ -0,0 +1,33 @@ +/* Copyright 2021 Play Keyboard + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_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, K48, 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, KC_NO }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \ + { K40, K41, K42, KC_NO, KC_NO, K45, KC_NO, KC_NO, KC_NO, K48, K4A, K4B, K4C, K4D } \ +} diff --git a/keyboards/playkbtw/pk64rgb/readme.md b/keyboards/playkbtw/pk64rgb/readme.md new file mode 100644 index 00000000000..29871af7a6f --- /dev/null +++ b/keyboards/playkbtw/pk64rgb/readme.md @@ -0,0 +1,25 @@ +# Play Keyboard 64RGB + +![PK64RGB](https://cdn.store-assets.com/s/409567/i/25281841.png) + +A 60% RGB hotswap keyboard PCB made by Play Keyboard. + +* Keyboard Maintainer: [Barry Huang](https://github.com/yj7272098) +* Hardware Supported: Play Keyboard 64 RGB +* Hardware Availability: [Play Keyboard](http://play-keyboard.store/) + +Make example for this keyboard (after setting up your build environment): + + make playkbtw/pk64rgb:default + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `RESET` if it is available + +You can get into bootloader by pressing the reset button from the back of PCB. + +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 diff --git a/keyboards/playkbtw/pk64rgb/rules.mk b/keyboards/playkbtw/pk64rgb/rules.mk new file mode 100644 index 00000000000..b7e077924bd --- /dev/null +++ b/keyboards/playkbtw/pk64rgb/rules.mk @@ -0,0 +1,28 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = 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 +RGB_MATRIX_ENABLE = yes # Use RGB matrix +RGB_MATRIX_DRIVER = IS31FL3733 + +AUDIO_ENABLE = no # Audio output + +LAYOUTS = 64_ansi + +LTO_ENABLE = yes \ No newline at end of file diff --git a/keyboards/ploopyco/mouse/rules.mk b/keyboards/ploopyco/mouse/rules.mk index 0f66f5628c2..20b96abab49 100644 --- a/keyboards/ploopyco/mouse/rules.mk +++ b/keyboards/ploopyco/mouse/rules.mk @@ -20,7 +20,6 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = no # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output POINTING_DEVICE_ENABLE = yes MOUSEKEY_ENABLE = yes # Mouse keys diff --git a/keyboards/ploopyco/trackball/rules.mk b/keyboards/ploopyco/trackball/rules.mk index 1cf9a01fc04..9b7285a015e 100644 --- a/keyboards/ploopyco/trackball/rules.mk +++ b/keyboards/ploopyco/trackball/rules.mk @@ -17,7 +17,6 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = no # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output POINTING_DEVICE_ENABLE = yes MOUSEKEY_ENABLE = yes # Mouse keys diff --git a/keyboards/ploopyco/trackball_mini/rules.mk b/keyboards/ploopyco/trackball_mini/rules.mk index 8b4ef3e8e04..6fc5199edcc 100644 --- a/keyboards/ploopyco/trackball_mini/rules.mk +++ b/keyboards/ploopyco/trackball_mini/rules.mk @@ -20,7 +20,6 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = no # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output POINTING_DEVICE_ENABLE = yes MOUSEKEY_ENABLE = no # Mouse keys diff --git a/keyboards/ploopyco/trackball_nano/readme.md b/keyboards/ploopyco/trackball_nano/readme.md index 8a293602a8e..a82b3bc7111 100644 --- a/keyboards/ploopyco/trackball_nano/readme.md +++ b/keyboards/ploopyco/trackball_nano/readme.md @@ -2,7 +2,7 @@ # Ploopy Trackball Nano -![Ploopyco Trackball Nano](https://www.ploopy.co/uploads/b/113cb4122f867acc306a72a2741c5237a9b1d0db13abfe4e8e394cd466c4a311/_MG_7710_1614037372.jpg) +![Ploopyco Trackball Nano](https://ploopy.co/wp-content/uploads/2021/06/2.jpg) It's a DIY, QMK Powered Trackball...Nano! @@ -28,7 +28,7 @@ Occasionally, new revisions of the PCB will be released. Every board comes with Match the firmware that you flash onto the board with the designator on the board. -# Customzing your Ploopy Nano Trackball +# Customizing your Ploopy Nano Trackball You can change the DPI/CPI or speed of the trackball by calling `adns_set_cpi` at any time. Additionally, there is a `DPI_CONFIG` macro that will cycle through an array of options for the DPI. This is set to 375, 750, and 1375, but can be changed. 750 is the default. @@ -51,4 +51,4 @@ When flashing the bootloader, use the following fuse settings: |----------|-------------| | Low | `0x5E` | | High | `0x99` | -| Extended | `0xC3` | \ No newline at end of file +| Extended | `0xC3` | diff --git a/keyboards/ploopyco/trackball_nano/rules.mk b/keyboards/ploopyco/trackball_nano/rules.mk index 0fe9eebd2db..a26ad93c89d 100644 --- a/keyboards/ploopyco/trackball_nano/rules.mk +++ b/keyboards/ploopyco/trackball_nano/rules.mk @@ -20,7 +20,6 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = no # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output POINTING_DEVICE_ENABLE = yes MOUSEKEY_ENABLE = no # Mouse keys diff --git a/keyboards/pluckey/config.h b/keyboards/pluckey/config.h new file mode 100644 index 00000000000..295fe93a853 --- /dev/null +++ b/keyboards/pluckey/config.h @@ -0,0 +1,90 @@ +/* +Copyright 2021 floookay + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 0xF100 +#define PRODUCT_ID 0x91CE +#define DEVICE_VER 0x0001 +#define MANUFACTURER floookay +#define PRODUCT pluckey + +/* key matrix size */ +// Rows are doubled-up +#define MATRIX_ROWS 10 +#define MATRIX_COLS 7 + +/* + * Keyboard Matrix Assignments + * + * 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 { B4, F5, F6, B6, B5 } +#define MATRIX_COL_PINS { D1, D0, D4, C6, D7, E6, F7 } +#define UNUSED_PINS { F4, B1 } +#define DIODE_DIRECTION COL2ROW + +/* encoder support */ +#define ENCODERS_PAD_A { B3 } +#define ENCODERS_PAD_B { B2 } +#define ENCODER_RESOLUTION 2 +#define ENCODERS_PAD_A_RIGHT { B2 } +#define ENCODERS_PAD_B_RIGHT { B3 } +#define ENCODER_RESOLUTION_RIGHT 2 + +/* communication between sides */ +#define USE_SERIAL +#define SOFT_SERIAL_PIN D2 + +/* 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 + +/* + * 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/pluckey/info.json b/keyboards/pluckey/info.json new file mode 100644 index 00000000000..0a6bd1832df --- /dev/null +++ b/keyboards/pluckey/info.json @@ -0,0 +1,149 @@ +{ + "keyboard_name": "pluckey", + "url": "https://github.com/floookay/pluckey", + "maintainer": "floookay", + "layouts": { + "LAYOUT": { + "layout": [ + {"x":3.5, "y":0}, + {"x":15, "y":0}, + {"x":2.5, "y":0.125}, + {"x":4.5, "y":0.125}, + {"x":14, "y":0.125}, + {"x":16, "y":0.125}, + {"x":5.5, "y":0.25}, + {"x":6.5, "y":0.25}, + {"x":12, "y":0.25}, + {"x":13, "y":0.25}, + {"x":0, "y":0.625, "w":1.5}, + {"x":1.5, "y":0.625}, + {"x":17, "y":0.625}, + {"x":18, "y":0.625, "w":1.5}, + {"x":3.5, "y":1.0}, + {"x":15, "y":1.0}, + {"x":2.5, "y":1.125}, + {"x":4.5, "y":1.125}, + {"x":14, "y":1.125}, + {"x":16, "y":1.125}, + {"x":5.5, "y":1.25}, + {"x":6.5, "y":1.25}, + {"x":12, "y":1.25}, + {"x":13, "y":1.25}, + {"x":0, "y":1.625, "w":1.5}, + {"x":1.5, "y":1.625}, + {"x":17, "y":1.625}, + {"x":18, "y":1.625, "w":1.5}, + {"x":3.5, "y":2}, + {"x":15, "y":2}, + {"x":2.5, "y":2.125}, + {"x":4.5, "y":2.125}, + {"x":14, "y":2.125}, + {"x":16, "y":2.125}, + {"x":5.5, "y":2.25}, + {"x":6.5, "y":2.25}, + {"x":12, "y":2.25}, + {"x":13, "y":2.25}, + {"x":0, "y":2.625, "w":1.5}, + {"x":1.5, "y":2.625}, + {"x":17, "y":2.625}, + {"x":18, "y":2.625, "w":1.5}, + {"x":6.5, "y":3.25}, + {"x":12, "y":3.25}, + {"x":3.5, "y":3}, + {"x":15, "y":3}, + {"x":2.5, "y":3.125}, + {"x":4.5, "y":3.125}, + {"x":14, "y":3.125}, + {"x":16, "y":3.125}, + {"x":5.5, "y":3.25}, + {"x":13, "y":3.25}, + {"x":0, "y":3.625, "w":1.5}, + {"x":1.5, "y":3.625}, + {"x":17, "y":3.625}, + {"x":18, "y":3.625, "w":1.5}, + {"x":7.5, "y":3.75}, + {"x":11, "y":3.75}, + {"x":3.5, "y":4}, + {"x":15, "y":4}, + {"x":2.5, "y":4.125}, + {"x":4.5, "y":4.125}, + {"x":14, "y":4.125}, + {"x":16, "y":4.125}, + {"x":5.75, "y":4.5, "w":1.5}, + {"x":12.25, "y":4.5, "w":1.5}, + {"x":7.25, "y":4.75}, + {"x":11.25, "y":4.75} + ] + }, + "LAYOUT_ergo": { + "layout": [ + {"x":3.5, "y":0}, + {"x":15, "y":0}, + {"x":2.5, "y":0.125}, + {"x":4.5, "y":0.125}, + {"x":14, "y":0.125}, + {"x":16, "y":0.125}, + {"x":5.5, "y":0.25}, + {"x":6.5, "y":0.25}, + {"x":12, "y":0.25}, + {"x":13, "y":0.25}, + {"x":0, "y":0.625, "w":1.5}, + {"x":1.5, "y":0.625}, + {"x":17, "y":0.625}, + {"x":18, "y":0.625, "w":1.5}, + {"x":3.5, "y":1.0}, + {"x":15, "y":1.0}, + {"x":2.5, "y":1.125}, + {"x":4.5, "y":1.125}, + {"x":14, "y":1.125}, + {"x":16, "y":1.125}, + {"x":5.5, "y":1.25}, + {"x":6.5, "y":1.25, "h":1.5}, + {"x":12, "y":1.25, "h":1.5}, + {"x":13, "y":1.25}, + {"x":0, "y":1.625, "w":1.5}, + {"x":1.5, "y":1.625}, + {"x":17, "y":1.625}, + {"x":18, "y":1.625, "w":1.5}, + {"x":3.5, "y":2}, + {"x":15, "y":2}, + {"x":2.5, "y":2.125}, + {"x":4.5, "y":2.125}, + {"x":14, "y":2.125}, + {"x":16, "y":2.125}, + {"x":5.5, "y":2.25}, + {"x":13, "y":2.25}, + {"x":0, "y":2.625, "w":1.5}, + {"x":1.5, "y":2.625}, + {"x":17, "y":2.625}, + {"x":18, "y":2.625, "w":1.5}, + {"x":6.5, "y":2.75, "h":1.5}, + {"x":12, "y":2.75, "h":1.5}, + {"x":3.5, "y":3}, + {"x":15, "y":3}, + {"x":2.5, "y":3.125}, + {"x":4.5, "y":3.125}, + {"x":14, "y":3.125}, + {"x":16, "y":3.125}, + {"x":5.5, "y":3.25}, + {"x":13, "y":3.25}, + {"x":0, "y":3.625, "w":1.5}, + {"x":1.5, "y":3.625}, + {"x":17, "y":3.625}, + {"x":18, "y":3.625, "w":1.5}, + {"x":7.5, "y":3.75}, + {"x":11, "y":3.75}, + {"x":3.5, "y":4}, + {"x":15, "y":4}, + {"x":2.5, "y":4.125}, + {"x":4.5, "y":4.125}, + {"x":14, "y":4.125}, + {"x":16, "y":4.125}, + {"x":5.75, "y":4.5, "w":1.5}, + {"x":12.25, "y":4.5, "w":1.5}, + {"x":7.25, "y":4.75}, + {"x":11.25, "y":4.75} + ] + } + } +} diff --git a/keyboards/pluckey/keymaps/default/keymap.c b/keyboards/pluckey/keymaps/default/keymap.c new file mode 100644 index 00000000000..31042fc6925 --- /dev/null +++ b/keyboards/pluckey/keymaps/default/keymap.c @@ -0,0 +1,77 @@ +/* Copyright 2021 floookay + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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, + _LOWER, + _RAISE, + _ADJUST +}; + +// Defines the keycodes used by our macros in process_record_user +enum custom_keycodes { + M_ARROW +}; + +#define MO_LOW MO(_LOWER) +#define MO_RAIS MO(_RAISE) +#define MO_ADJU MO(_ADJUST) +#define MO_CURR _______ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [_BASE] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_GRV, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LPRN, KC_RPRN, 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_LCBR, KC_HOME, KC_END, KC_RCBR, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LGUI, KC_LALT, MO_LOW, KC_SPC, KC_BSPC, KC_ENT, KC_SPC, MO_RAIS, KC_RALT, KC_MEH + ), + [_LOWER] = LAYOUT( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, KC_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_PSCR, + _______, _______, _______, _______, KC_PIPE, KC_UNDS, KC_LPRN, KC_RPRN, KC_PLUS, KC_PIPE, _______, _______, _______, _______, + _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_LPRN, KC_RPRN, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, + _______, _______, _______, _______, _______, _______, M_ARROW, KC_PGUP, KC_PGDN, _______, _______, _______, _______, _______, _______, _______, + _______, _______, MO_CURR, _______, KC_DEL, _______, _______, MO_ADJU, _______, _______ + ), + [_RAISE] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, _______, _______, _______, + _______, _______, _______, KC_VOLU, _______, _______, KC_LPRN, KC_RPRN, _______, KC_BTN4, KC_UP, KC_BTN5, _______, _______, + _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, KC_LPRN, KC_RPRN, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, _______, + _______, _______, _______, KC_VOLD, _______, _______, M_ARROW, KC_PGUP, KC_PGDN, _______, _______, _______, KC_PGDN, _______, _______, _______, + _______, _______, MO_ADJU, _______, KC_DEL, _______, _______, MO_CURR, _______, _______ + ), + [_ADJUST] = LAYOUT( + KC_SLEP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_WH_U, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_WH_L, KC_WH_D, KC_WH_R, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, KC_CLR, _______, _______, _______, _______, _______ + ) +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case M_ARROW: + if (record->event.pressed) { + SEND_STRING("->"); + } + break; + } + return true; +} diff --git a/keyboards/pluckey/keymaps/default/readme.md b/keyboards/pluckey/keymaps/default/readme.md new file mode 100644 index 00000000000..d94d03e5887 --- /dev/null +++ b/keyboards/pluckey/keymaps/default/readme.md @@ -0,0 +1,4 @@ +# Default keymap + +![keymap](https://gist.githubusercontent.com/floookay/ea7313862e407c9b5aaea3d6ed3ce233/raw/0a37fe682f76bbaa55cbc56527e4666bedbf5761/layout.png) +[Keyboard-Layout-Editor](http://www.keyboard-layout-editor.com/#/gists/13c9d00bd0c0c9e3fe3b3d8d98672ef9) [(raw)](https://gist.github.com/floookay/13c9d00bd0c0c9e3fe3b3d8d98672ef9) diff --git a/keyboards/pluckey/pluckey.c b/keyboards/pluckey/pluckey.c new file mode 100644 index 00000000000..d9025726fd5 --- /dev/null +++ b/keyboards/pluckey/pluckey.c @@ -0,0 +1,38 @@ +/* Copyright 2021 floookay + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 "pluckey.h" + +#ifdef ENCODER_ENABLE +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { return false; } + if (index == 0) { + if (clockwise) { + tap_code_delay(KC_VOLU, 10); + } else { + tap_code_delay(KC_VOLD, 10); + } + } + else if (index == 1) { + if (clockwise) { + tap_code(KC_WH_U); + } else { + tap_code(KC_WH_D); + } + } + return true; +} +#endif diff --git a/keyboards/pluckey/pluckey.h b/keyboards/pluckey/pluckey.h new file mode 100644 index 00000000000..628a89baa9a --- /dev/null +++ b/keyboards/pluckey/pluckey.h @@ -0,0 +1,46 @@ +/* Copyright 2021 floookay + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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( \ + l00, l01, l02, l03, l04, l05, l06, r00, r01, r02, r03, r04, r05, r06, \ + l10, l11, l12, l13, l14, l15, l16, r10, r11, r12, r13, r14, r15, r16, \ + l20, l21, l22, l23, l24, l25, l26, r20, r21, r22, r23, r24, r25, r26, \ + l30, l31, l32, l33, l34, l35, l36, l41, r45, r30, r31, r32, r33, r34, r35, r36, \ + l42, l43, l44, l45, l46, r40, r41, r42, r43, r44 \ +){ \ + { l00, l01, l02, l03, l04, l05, l06 }, \ + { l10, l11, l12, l13, l14, l15, l16 }, \ + { l20, l21, l22, l23, l24, l25, l26 }, \ + { l30, l31, l32, l33, l34, l35, l36 }, \ + { KC_NO, l41, l42, l43, l44, l45, l46 }, \ + { r06, r05, r04, r03, r02, r01, r00 }, \ + { r16, r15, r14, r13, r12, r11, r10 }, \ + { r26, r25, r24, r23, r22, r21, r20 }, \ + { r36, r35, r34, r33, r32, r31, r30 }, \ + { KC_NO, r45, r44, r43, r42, r41, r40 } \ +} diff --git a/keyboards/pluckey/readme.md b/keyboards/pluckey/readme.md new file mode 100644 index 00000000000..b0a1af99b88 --- /dev/null +++ b/keyboards/pluckey/readme.md @@ -0,0 +1,19 @@ +# Pluckey + +![pluckey](https://gist.githubusercontent.com/floookay/ea7313862e407c9b5aaea3d6ed3ce233/raw/1757078b1adf7ac4d51d74f445107bdb46e013a3/sandwich%2520angle.jpg) + +The pluckey is an ergodox like split keyboard with moderate columnal stagger and a horizontal space key. + +* Keyboard Maintainer: [floookay](https://github.com/floookay) +* Hardware Supported: pluckey pcbs with pro micro controllers +* Hardware Availability: [pcb & case files](https://github.com/floookay/pluckey) + +Make example for this keyboard (after setting up your build environment): + + make pluckey:default + +Flashing example for this keyboard: + + make pluckey: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/pluckey/rules.mk b/keyboards/pluckey/rules.mk new file mode 100644 index 00000000000..4f4954434b2 --- /dev/null +++ b/keyboards/pluckey/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output +ENCODER_ENABLE = yes +SPLIT_KEYBOARD = yes diff --git a/keyboards/plx/info.json b/keyboards/plx/info.json index d1a7d320ff1..47f73ada61c 100644 --- a/keyboards/plx/info.json +++ b/keyboards/plx/info.json @@ -1,10 +1,219 @@ { - "keyboard_name": "PLX", - "url": "https://peac.design/", - "maintainer": "2Moons", + "keyboard_name": "PLX", + "url": "https://peac.design/", + "maintainer": "2Moons-JP", + "layout_aliases": { + "LAYOUT": "LAYOUT_60_ansi_tsangan" + }, "layouts": { - "LAYOUT": { - "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Del", "x":16, "y":0}, {"label":"Bksp", "x":17, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Enter", "x":16.75, "y":1, "w":1.25, "h":2}, {"label":"Caps Lock", "x":0, "y":2, "w":1.25}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"#", "x":15.75, "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":2.25}, {"label":"Shift", "x":15.25, "y":3, "w":1.75}, {"label":"Fn", "x":17, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.5}, {"label":"Win", "x":1.5, "y":4}, {"label":"Alt", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"label":"Alt", "x":11, "y":4, "w":1.5}, {"label":"Win", "x":12.5, "y":4}, {"label":"Ctrl", "x":13.5, "y":4, "w":1.5}, {"label":"Caps", "x":0, "y":5.25, "w":1.25}, {"label":"Shift", "x":0, "y":6.25, "w":1.25}, {"x":1.25, "y":6.25}] + "LAYOUT_60_ansi_tsangan": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"1!", "x":1, "y":0}, + {"label":"2@", "x":2, "y":0}, + {"label":"3#", "x":3, "y":0}, + {"label":"4$", "x":4, "y":0}, + {"label":"5%", "x":5, "y":0}, + {"label":"6^", "x":6, "y":0}, + {"label":"7&", "x":7, "y":0}, + {"label":"8*", "x":8, "y":0}, + {"label":"9(", "x":9, "y":0}, + {"label":"0)", "x":10, "y":0}, + {"label":"-_", "x":11, "y":0}, + {"label":"=+", "x":12, "y":0}, + {"label":"Backspace", "x":13, "y":0, "w":2}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"[{", "x":11.5, "y":1}, + {"label":"]}", "x":12.5, "y":1}, + {"label":"\\|", "x":13.5, "y":1, "w":1.5}, + + {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":";:", "x":10.75, "y":2}, + {"label":"'\"", "x":11.75, "y":2}, + {"label":"Enter", "x":12.75, "y":2, "w":2.25}, + + {"label":"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":2.75}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.5}, + {"label":"Win", "x":1.5, "y":4}, + {"label":"Alt", "x":2.5, "y":4, "w":1.5}, + {"label":"Space", "x":4, "y":4, "w":7}, + {"label":"Alt", "x":11, "y":4, "w":1.5}, + {"label":"Win", "x":12.5, "y":4}, + {"label":"Ctrl", "x":13.5, "y":4, "w":1.5} + ] + }, + "LAYOUT_60_iso_tsangan": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"1!", "x":1, "y":0}, + {"label":"2\"", "x":2, "y":0}, + {"label":"3\u00a3", "x":3, "y":0}, + {"label":"4$", "x":4, "y":0}, + {"label":"5%", "x":5, "y":0}, + {"label":"6^", "x":6, "y":0}, + {"label":"7&", "x":7, "y":0}, + {"label":"8*", "x":8, "y":0}, + {"label":"9(", "x":9, "y":0}, + {"label":"0)", "x":10, "y":0}, + {"label":"-_", "x":11, "y":0}, + {"label":"=+", "x":12, "y":0}, + {"label":"Backspace", "x":13, "y":0, "w":2}, + + {"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":"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":"#~", "x":12.75, "y":2}, + {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, + + {"label":"Shift", "x":0, "y":3, "w":1.25}, + {"label":"\\|", "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":2.75}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.5}, + {"label":"Win", "x":1.5, "y":4}, + {"label":"Alt", "x":2.5, "y":4, "w":1.5}, + {"label":"Space", "x":4, "y":4, "w":7}, + {"label":"Alt", "x":11, "y":4, "w":1.5}, + {"label":"Win", "x":12.5, "y":4}, + {"label":"Ctrl", "x":13.5, "y":4, "w":1.5} + ] + }, + "LAYOUT_all": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"1!", "x":1, "y":0}, + {"label":"2@", "x":2, "y":0}, + {"label":"3#", "x":3, "y":0}, + {"label":"4$", "x":4, "y":0}, + {"label":"5%", "x":5, "y":0}, + {"label":"6^", "x":6, "y":0}, + {"label":"7&", "x":7, "y":0}, + {"label":"8*", "x":8, "y":0}, + {"label":"9(", "x":9, "y":0}, + {"label":"0)", "x":10, "y":0}, + {"label":"-_", "x":11, "y":0}, + {"label":"=+", "x":12, "y":0}, + {"label":"Backspace", "x":13, "y":0}, + {"label":"Backspace", "x":14, "y":0}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"[{", "x":11.5, "y":1}, + {"label":"]}", "x":12.5, "y":1}, + {"label":"\\|", "x":13.5, "y":1, "w":1.5}, + + {"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":"#~", "x":12.75, "y":2}, + {"label":"Enter", "x":13.75, "y":2, "w":1.25}, + + {"label":"Shift", "x":0, "y":3, "w":1.25}, + {"label":"\\|", "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}, + {"label":"Fn", "x":14, "y":3}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.5}, + {"label":"Win", "x":1.5, "y":4}, + {"label":"Alt", "x":2.5, "y":4, "w":1.5}, + {"label":"Space", "x":4, "y":4, "w":7}, + {"label":"Alt", "x":11, "y":4, "w":1.5}, + {"label":"Win", "x":12.5, "y":4}, + {"label":"Ctrl", "x":13.5, "y":4, "w":1.5} + ] } } } diff --git a/keyboards/plx/keymaps/default/keymap.c b/keyboards/plx/keymaps/default/keymap.c index 40350c4759c..31273405f83 100644 --- a/keyboards/plx/keymaps/default/keymap.c +++ b/keyboards/plx/keymaps/default/keymap.c @@ -20,30 +20,31 @@ enum layer_names { _BASE, _FN, - _MEDIA }; + _MEDIA +}; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT, - KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN), - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL - ), + [_BASE] = LAYOUT_60_ansi_tsangan( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_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, KC_RCTL + ), - [_FN] = LAYOUT( - KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______ - ), + [_FN] = LAYOUT_60_ansi_tsangan( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______ + ), - [_MEDIA] = LAYOUT( - KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______ - ) + [_MEDIA] = LAYOUT_60_ansi_tsangan( + 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, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______ + ) }; diff --git a/keyboards/plx/keymaps/default_all/keymap.c b/keyboards/plx/keymaps/default_all/keymap.c new file mode 100644 index 00000000000..cf460e52340 --- /dev/null +++ b/keyboards/plx/keymaps/default_all/keymap.c @@ -0,0 +1,50 @@ +/* Copyright 2020 Peac Design and Basekeys.com + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _FN, + _MEDIA +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_all( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT, + KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL + ), + + [_FN] = LAYOUT_all( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______ + ), + + [_MEDIA] = LAYOUT_all( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/plx/keymaps/via/keymap.c b/keyboards/plx/keymaps/via/keymap.c index 80dea066a78..cf460e52340 100644 --- a/keyboards/plx/keymaps/via/keymap.c +++ b/keyboards/plx/keymaps/via/keymap.c @@ -20,31 +20,31 @@ enum layer_names { _BASE, _FN, - _MEDIA, + _MEDIA }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT, - KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN), - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL - ), + [_BASE] = LAYOUT_all( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT, + KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL + ), - [_FN] = LAYOUT( - KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______ - ), + [_FN] = LAYOUT_all( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______ + ), - [_MEDIA] = LAYOUT( - KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______ - ) + [_MEDIA] = LAYOUT_all( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______ + ) }; diff --git a/keyboards/plx/plx.h b/keyboards/plx/plx.h index eb3829042d9..22d7bd02138 100644 --- a/keyboards/plx/plx.h +++ b/keyboards/plx/plx.h @@ -17,7 +17,21 @@ #include "quantum.h" -#define XXX KC_NO//readabilty +#define XXX KC_NO // readability + +/* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───────┐ + * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │ │0D │ 2u Backspace + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ └─┬─────┤ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │ │ │ + * 2.25u ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ┌──┴┐2D │ ISO Enter + * LShift │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D │ │2C │ │ + * ┌────────┐ ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌─┴───┴────┤ + * │30 │ │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │ │3C │ 2.75u RShift + * └────────┘ ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ └──────────┘ + * │40 │41 │42 │46 │4B │4C │4D │ + * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ + */ /* This a shortcut to help you visually see your layout. * @@ -27,7 +41,37 @@ * The second converts the arguments into a two-dimensional array which * represents the switch matrix. */ -#define LAYOUT( \ +#define LAYOUT_60_ansi_tsangan( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2D, \ + k30, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, \ + k40, k41, k42, k46, k4B, k4C, k4D \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, XXX}, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D}, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, XXX, k2D}, \ + { k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, XXX}, \ + { k40, k41, k42, XXX, XXX, XXX, k46, XXX, XXX, XXX, XXX, k4B, k4C, k4D} \ +} + +#define LAYOUT_60_iso_tsangan( \ + 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, \ + 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, \ + k40, k41, k42, k46, k4B, k4C, k4D \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, XXX}, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, XXX}, \ + { 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, XXX}, \ + { k40, k41, k42, XXX, XXX, XXX, k46, XXX, XXX, XXX, XXX, k4B, k4C, k4D} \ +} + +#define LAYOUT_all( \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, \ 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, \ diff --git a/keyboards/plx/rules.mk b/keyboards/plx/rules.mk index a3ee6657564..419033f64c9 100644 --- a/keyboards/plx/rules.mk +++ b/keyboards/plx/rules.mk @@ -7,7 +7,7 @@ BOOTLOADER = atmel-dfu # Build Options # change yes to no to disable # -BOOTMAGIC_ENABLE = lite # Enable Bootmagic Lite +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite MOUSEKEY_ENABLE = no # Mouse keys EXTRAKEY_ENABLE = no # Audio control and System control CONSOLE_ENABLE = no # Console for debug diff --git a/keyboards/portal_66/hotswap/config.h b/keyboards/portal_66/hotswap/config.h new file mode 100644 index 00000000000..db4c59bd44f --- /dev/null +++ b/keyboards/portal_66/hotswap/config.h @@ -0,0 +1,109 @@ +/* +Copyright 2021 Matthew Dias + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x504C +#define PRODUCT_ID 0x5067 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Parallel Limited +#define PRODUCT Portal 66 + +/* 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 { E6, B7, F7, F4, F5 } +#define MATRIX_COL_PINS { F6, B0, F1, C7, C6, B6, B5, B4, D7, D6, D4, D5, D3, D2, D1, D0 } +#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 + +/* Bootmagic Lite key configuration */ +//#define BOOTMAGIC_LITE_ROW 0 +//#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/portal_66/portal_66.c b/keyboards/portal_66/hotswap/hotswap.c similarity index 96% rename from keyboards/portal_66/portal_66.c rename to keyboards/portal_66/hotswap/hotswap.c index a53989f9487..4189a8a80c9 100644 --- a/keyboards/portal_66/portal_66.c +++ b/keyboards/portal_66/hotswap/hotswap.c @@ -14,4 +14,4 @@ * along with this program. If not, see . */ -#include "portal_66.h" +#include "hotswap.h" diff --git a/keyboards/portal_66/hotswap/hotswap.h b/keyboards/portal_66/hotswap/hotswap.h new file mode 100644 index 00000000000..734184dd77b --- /dev/null +++ b/keyboards/portal_66/hotswap/hotswap.h @@ -0,0 +1,33 @@ +/* Copyright 2021 Matthew Dias + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +#define LAYOUT( \ + k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k014, k015, \ + k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k115, \ + k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k213, k215, \ + k300, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, k315, \ + k400, k401, k402, k406, k409, k411, k412, k413, k415 \ +) { \ + { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, KC_NO, k014, k015 }, \ + { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, KC_NO, k115 }, \ + { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, KC_NO, k213, KC_NO, k215 }, \ + { k300, KC_NO, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, KC_NO, k315 }, \ + { k400, k401, k402, KC_NO, KC_NO, KC_NO, k406, KC_NO, KC_NO, k409, KC_NO, k411, k412, k413, KC_NO, k415 } \ +} diff --git a/keyboards/portal_66/hotswap/info.json b/keyboards/portal_66/hotswap/info.json new file mode 100644 index 00000000000..e90bdd8813c --- /dev/null +++ b/keyboards/portal_66/hotswap/info.json @@ -0,0 +1,81 @@ +{ + "keyboard_name": "Portal 66 Hotswap", + "maintainer": "matthewdias", + "layouts": { + "LAYOUT": { + "layout": [ + { "x":0, "y":0 }, + { "x":1, "y":0 }, + { "x":2, "y":0 }, + { "x":3, "y":0 }, + { "x":4, "y":0 }, + { "x":5, "y":0 }, + { "x":6, "y":0 }, + { "x":7, "y":0 }, + { "x":8, "y":0 }, + { "x":9, "y":0 }, + { "x":10, "y":0 }, + { "x":11, "y":0 }, + { "x":12, "y":0 }, + { "x":13, "y":0, "w": 2 }, + { "x":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 } + ] + } + } +} diff --git a/keyboards/portal_66/hotswap/keymaps/default/keymap.c b/keyboards/portal_66/hotswap/keymaps/default/keymap.c new file mode 100644 index 00000000000..a476f5984d3 --- /dev/null +++ b/keyboards/portal_66/hotswap/keymaps/default/keymap.c @@ -0,0 +1,38 @@ +/* Copyright 2021 Matthew Dias + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +enum layer_names { + _BASE, + _FN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_END, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN), KC_LEFT, KC_DOWN, KC_RGHT + ), + [_FN] = LAYOUT( + 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/portal_66/hotswap/keymaps/default/readme.md b/keyboards/portal_66/hotswap/keymaps/default/readme.md new file mode 100644 index 00000000000..1a4e1624e39 --- /dev/null +++ b/keyboards/portal_66/hotswap/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for Portal 66 Hotswap diff --git a/keyboards/portal_66/hotswap/keymaps/via/keymap.c b/keyboards/portal_66/hotswap/keymaps/via/keymap.c new file mode 100644 index 00000000000..a89f1eee66c --- /dev/null +++ b/keyboards/portal_66/hotswap/keymaps/via/keymap.c @@ -0,0 +1,54 @@ +/* Copyright 2021 Matthew Dias + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +enum layer_names { + _L0, + _L1, + _L2, + _L3 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_L0] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_END, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_L1), KC_LEFT, KC_DOWN, KC_RGHT + ), + [_L1] = LAYOUT( + 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, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [_L2] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [_L3] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/portal_66/hotswap/keymaps/via/rules.mk b/keyboards/portal_66/hotswap/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/portal_66/hotswap/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/portal_66/hotswap/readme.md b/keyboards/portal_66/hotswap/readme.md new file mode 100644 index 00000000000..91434a11c04 --- /dev/null +++ b/keyboards/portal_66/hotswap/readme.md @@ -0,0 +1,18 @@ +# Portal 66 + +A 65% keyboard + +* Keyboard Maintainer: matthewdias +* Hardware Supported: Portal 66 Hotswap + +To reset the keyboard into bootloader mode, press the reset switch on the underside. + +Make example for this keyboard (after setting up your build environment): + + make portal_66/hotswap:default + +Flashing example for this keyboard: + + make portal_66/hotswap: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/portal_66/rules.mk b/keyboards/portal_66/hotswap/rules.mk similarity index 97% rename from keyboards/portal_66/rules.mk rename to keyboards/portal_66/hotswap/rules.mk index a3cd44fa428..c79f74e34b9 100644 --- a/keyboards/portal_66/rules.mk +++ b/keyboards/portal_66/hotswap/rules.mk @@ -19,5 +19,3 @@ NKRO_ENABLE = no # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output - -LAYOUTS = 65_ansi diff --git a/keyboards/portal_66/config.h b/keyboards/portal_66/soldered/config.h similarity index 100% rename from keyboards/portal_66/config.h rename to keyboards/portal_66/soldered/config.h diff --git a/keyboards/portal_66/info.json b/keyboards/portal_66/soldered/info.json similarity index 92% rename from keyboards/portal_66/info.json rename to keyboards/portal_66/soldered/info.json index 253e9dd7bb2..730b5400ead 100644 --- a/keyboards/portal_66/info.json +++ b/keyboards/portal_66/soldered/info.json @@ -71,9 +71,8 @@ { "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":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 } @@ -147,15 +146,14 @@ { "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":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_split_bs_2_right_mods": { + "LAYOUT_65_tsangan_split_bs": { "layout": [ { "x":0, "y":0 }, { "x":1, "y":0 }, @@ -220,18 +218,17 @@ { "x":14, "y":3 }, { "x":15, "y":3 }, - { "x":0, "y":4, "w":1.25 }, - { "x":1.25, "y":4, "w":1.25 }, - { "x":2.5, "y":4, "w":1.25 }, - { "x":3.75, "y":4, "w":6.25 }, - { "x":10, "y":4, "w":1.5 }, - { "x":11.5, "y":4, "w":1.5 }, + { "x":0, "y":4, "w":1.5 }, + { "x":1.5, "y":4, "w":1 }, + { "x":2.5, "y":4, "w":1.5 }, + { "x":4, "y":4, "w":7 }, + { "x":11, "y":4, "w":1.5 }, { "x":13, "y":4 }, { "x":14, "y":4 }, { "x":15, "y":4 } ] }, - "LAYOUT_65_ansi_2_right_mods": { + "LAYOUT_65_iso": { "layout": [ { "x":0, "y":0 }, { "x":1, "y":0 }, @@ -262,7 +259,6 @@ { "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 }, @@ -277,10 +273,12 @@ { "x":9.75, "y":2 }, { "x":10.75, "y":2 }, { "x":11.75, "y":2 }, - { "x":12.75, "y":2, "w":2.25 }, + { "x":12.75, "y":2 }, + { "x":13.75, "y":1, "w":1.25, "h":2 }, { "x":15, "y":2 }, - { "x":0, "y":3, "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 }, @@ -299,8 +297,8 @@ { "x":1.25, "y":4, "w":1.25 }, { "x":2.5, "y":4, "w":1.25 }, { "x":3.75, "y":4, "w":6.25 }, - { "x":10, "y":4, "w":1.5 }, - { "x":11.5, "y":4, "w":1.5 }, + { "x":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/portal_66/keymaps/default/keymap.c b/keyboards/portal_66/soldered/keymaps/default/keymap.c similarity index 94% rename from keyboards/portal_66/keymaps/default/keymap.c rename to keyboards/portal_66/soldered/keymaps/default/keymap.c index 0269d577bf7..3260f412a23 100644 --- a/keyboards/portal_66/keymaps/default/keymap.c +++ b/keyboards/portal_66/soldered/keymaps/default/keymap.c @@ -26,13 +26,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN), KC_LEFT, KC_DOWN, KC_RGHT ), [_FN] = LAYOUT_65_ansi_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, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + _______, _______, _______, _______, _______, _______, _______, _______, _______ ) }; diff --git a/keyboards/portal_66/keymaps/default/readme.md b/keyboards/portal_66/soldered/keymaps/default/readme.md similarity index 100% rename from keyboards/portal_66/keymaps/default/readme.md rename to keyboards/portal_66/soldered/keymaps/default/readme.md diff --git a/keyboards/portal_66/keymaps/via/keymap.c b/keyboards/portal_66/soldered/keymaps/via/keymap.c similarity index 93% rename from keyboards/portal_66/keymaps/via/keymap.c rename to keyboards/portal_66/soldered/keymaps/via/keymap.c index 59e038a5410..7ea1f44b0b4 100644 --- a/keyboards/portal_66/keymaps/via/keymap.c +++ b/keyboards/portal_66/soldered/keymaps/via/keymap.c @@ -28,27 +28,27 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_L1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_L1), KC_LEFT, KC_DOWN, KC_RGHT ), [_L1] = LAYOUT_65_ansi_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, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + _______, _______, _______, _______, _______, _______, _______, _______, _______ ), [_L2] = LAYOUT_65_ansi_split_bs( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + _______, _______, _______, _______, _______, _______, _______, _______, _______ ), [_L3] = LAYOUT_65_ansi_split_bs( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + _______, _______, _______, _______, _______, _______, _______, _______, _______ ) }; diff --git a/keyboards/portal_66/soldered/keymaps/via/rules.mk b/keyboards/portal_66/soldered/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/portal_66/soldered/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/portal_66/readme.md b/keyboards/portal_66/soldered/readme.md similarity index 87% rename from keyboards/portal_66/readme.md rename to keyboards/portal_66/soldered/readme.md index b87945af3ba..d6906fbc347 100644 --- a/keyboards/portal_66/readme.md +++ b/keyboards/portal_66/soldered/readme.md @@ -9,10 +9,10 @@ To reset the keyboard into bootloader mode, press the reset switch on the unders Make example for this keyboard (after setting up your build environment): - make portal_66:default + make portal_66/soldered:default Flashing example for this keyboard: - make portal_66:default:flash + make portal_66/soldered: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/portal_66/soldered/rules.mk b/keyboards/portal_66/soldered/rules.mk new file mode 100644 index 00000000000..9906266f482 --- /dev/null +++ b/keyboards/portal_66/soldered/rules.mk @@ -0,0 +1,21 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/portal_66/soldered/soldered.c b/keyboards/portal_66/soldered/soldered.c new file mode 100644 index 00000000000..a74cd21deaa --- /dev/null +++ b/keyboards/portal_66/soldered/soldered.c @@ -0,0 +1,17 @@ +/* Copyright 2021 Matthew Dias + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "soldered.h" diff --git a/keyboards/portal_66/portal_66.h b/keyboards/portal_66/soldered/soldered.h similarity index 88% rename from keyboards/portal_66/portal_66.h rename to keyboards/portal_66/soldered/soldered.h index 5d3525ae452..9fde7850d76 100644 --- a/keyboards/portal_66/portal_66.h +++ b/keyboards/portal_66/soldered/soldered.h @@ -23,13 +23,13 @@ k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k115, \ k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k213, k215, \ k300, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, k315, \ - k400, k401, k402, k406, k409, k410, k411, k412, k413, k415 \ + k400, k401, k402, k406, k409, k411, k412, k413, k415 \ ) { \ { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k015 }, \ { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, KC_NO, k115 }, \ { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, KC_NO, k213, KC_NO, k215 }, \ { k300, KC_NO, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, KC_NO, k315 }, \ - { k400, k401, k402, KC_NO, KC_NO, KC_NO, k406, KC_NO, KC_NO, k409, k410, k411, k412, k413, KC_NO, k415 } \ + { k400, k401, k402, KC_NO, KC_NO, KC_NO, k406, KC_NO, KC_NO, k409, KC_NO, k411, k412, k413, KC_NO, k415 } \ } #define LAYOUT_65_ansi( \ @@ -37,39 +37,39 @@ k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k115, \ k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k213, k215, \ k300, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, k315, \ - k400, k401, k402, k406, k409, k410, k411, k412, k413, k415 \ + k400, k401, k402, k406, k409, k411, k412, k413, k415 \ ) { \ { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, KC_NO, k014, k015 }, \ { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, KC_NO, k115 }, \ { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, KC_NO, k213, KC_NO, k215 }, \ { k300, KC_NO, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, KC_NO, k315 }, \ - { k400, k401, k402, KC_NO, KC_NO, KC_NO, k406, KC_NO, KC_NO, k409, k410, k411, k412, k413, KC_NO, k415 } \ + { k400, k401, k402, KC_NO, KC_NO, KC_NO, k406, KC_NO, KC_NO, k409, KC_NO, k411, k412, k413, KC_NO, k415 } \ } -#define LAYOUT_65_ansi_split_bs_2_right_mods( \ +#define LAYOUT_65_tsangan_split_bs( \ k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k015, \ k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k115, \ k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k213, k215, \ k300, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, k315, \ - k400, k401, k402, k406, k409, k411, k412, k413, k415 \ + k400, k401, k402, k406, k411, k412, k413, k415 \ ) { \ { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k015 }, \ { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, KC_NO, k115 }, \ { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, KC_NO, k213, KC_NO, k215 }, \ { k300, KC_NO, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, KC_NO, k315 }, \ - { k400, k401, k402, KC_NO, KC_NO, KC_NO, k406, KC_NO, KC_NO, k409, KC_NO, k411, k412, k413, KC_NO, k415 } \ + { k400, k401, k402, KC_NO, KC_NO, KC_NO, k406, KC_NO, KC_NO, KC_NO, KC_NO, k411, k412, k413, KC_NO, k415 } \ } -#define LAYOUT_65_ansi_2_right_mods( \ +#define LAYOUT_65_iso( \ k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k014, k015, \ - k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k115, \ - k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k213, k215, \ - k300, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, k315, \ + k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k115, \ + k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, k215, \ + k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, k315, \ k400, k401, k402, k406, k409, k411, k412, k413, k415 \ ) { \ { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, KC_NO, k014, k015 }, \ - { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, KC_NO, k115 }, \ - { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, KC_NO, k213, KC_NO, k215 }, \ - { k300, KC_NO, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, KC_NO, k315 }, \ + { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, KC_NO, KC_NO, k115 }, \ + { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, KC_NO, k215 }, \ + { k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, KC_NO, k315 }, \ { k400, k401, k402, KC_NO, KC_NO, KC_NO, k406, KC_NO, KC_NO, k409, KC_NO, k411, k412, k413, KC_NO, k415 } \ } diff --git a/keyboards/preonic/keymaps/arkag/keymap.c b/keyboards/preonic/keymaps/arkag/keymap.c index 42b875d6776..5e50c584afc 100644 --- a/keyboards/preonic/keymaps/arkag/keymap.c +++ b/keyboards/preonic/keymaps/arkag/keymap.c @@ -20,11 +20,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_QWERTY] = LAYOUT_preonic_grid( - M_EHYPR, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, M_EHYPR, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, XXXXXXX, 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_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_LCTL, KC_LGUI, KC_LALT, MEDIA, SYMBOL, KC_SPC, M_LMHYP, ARROW, FUNCT, XXXXXXX, KC_RALT, KC_LEAD), + KC_LCTL, KC_LGUI, KC_LALT, MEDIA, SYMBOL, KC_SPC, KC_LEAD, ARROW, FUNCT, XXXXXXX, KC_RALT, KC_LEAD), [_SYMBOL] = LAYOUT_preonic_grid( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/preonic/keymaps/default/config.h b/keyboards/preonic/keymaps/default/config.h index 37858350a84..8756e5012c7 100644 --- a/keyboards/preonic/keymaps/default/config.h +++ b/keyboards/preonic/keymaps/default/config.h @@ -1,13 +1,27 @@ +/* Copyright 2015-2021 Jack Humbert + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #pragma once #ifdef AUDIO_ENABLE - #define STARTUP_SONG SONG(PREONIC_SOUND) - // #define STARTUP_SONG SONG(NO_SOUND) +# define STARTUP_SONG SONG(PREONIC_SOUND) +// #define STARTUP_SONG SONG(NO_SOUND) - #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \ - SONG(COLEMAK_SOUND), \ - SONG(DVORAK_SOUND) \ - } +# define DEFAULT_LAYER_SONGS \ + { SONG(QWERTY_SOUND), SONG(COLEMAK_SOUND), SONG(DVORAK_SOUND) } #endif #define MUSIC_MASK (keycode != KC_NO) diff --git a/keyboards/preonic/keymaps/default/keymap.c b/keyboards/preonic/keymaps/default/keymap.c index 3a82f7151b6..f99a6953c6b 100644 --- a/keyboards/preonic/keymaps/default/keymap.c +++ b/keyboards/preonic/keymaps/default/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2015-2017 Jack Humbert +/* Copyright 2015-2021 Jack Humbert * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/keyboards/preonic/keymaps/zach/rules.mk b/keyboards/preonic/keymaps/zach/rules.mk index 8d2f75eea39..8cd4f98eeb2 100644 --- a/keyboards/preonic/keymaps/zach/rules.mk +++ b/keyboards/preonic/keymaps/zach/rules.mk @@ -2,7 +2,7 @@ # Max .hex size is about 28636 bytes # Build Options -# change to "no" to disable the options, or define them in the Makefile in +# change to "no" to disable the options, or define them in the Makefile in # the appropriate keymap folder that will get included automatically # TAP_DANCE_ENABLE = yes # Enable TapDance functionality @@ -12,7 +12,6 @@ EXTRAKEY_ENABLE = no # Audio control and System control(+450) CONSOLE_ENABLE = no # Console for debug(+400) COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -USB_6KRO_ENABLE = no # 6key Rollover BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality MIDI_ENABLE = no # MIDI controls AUDIO_ENABLE = yes # Audio output on port C6 @@ -20,7 +19,6 @@ AUDIO_ENABLE = yes # Audio output on port C6 UNICODE_ENABLE = no # Unicode UNICODEMAP_ENABLE = yes # Enable extended unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend - diff --git a/keyboards/preonic/rev1/rules.mk b/keyboards/preonic/rev1/rules.mk index 8f287a3a60c..5cc5be7f7b0 100644 --- a/keyboards/preonic/rev1/rules.mk +++ b/keyboards/preonic/rev1/rules.mk @@ -16,7 +16,6 @@ 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 AUDIO_ENABLE = yes # Audio output -UNICODE_ENABLE = no # Unicode RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE diff --git a/keyboards/preonic/rev2/rules.mk b/keyboards/preonic/rev2/rules.mk index 9dc8f79b43c..9d3bef39f10 100644 --- a/keyboards/preonic/rev2/rules.mk +++ b/keyboards/preonic/rev2/rules.mk @@ -16,7 +16,6 @@ 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 AUDIO_ENABLE = yes # Audio output -UNICODE_ENABLE = no # Unicode RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE diff --git a/keyboards/preonic/rev3/rules.mk b/keyboards/preonic/rev3/rules.mk index ff0c57b9c7b..b89945642bb 100644 --- a/keyboards/preonic/rev3/rules.mk +++ b/keyboards/preonic/rev3/rules.mk @@ -17,7 +17,6 @@ COMMAND_ENABLE = yes # Commands for debug and configuration NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality AUDIO_ENABLE = yes # Audio output -UNICODE_ENABLE = no # Unicode RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. WS2812_DRIVER = pwm diff --git a/keyboards/preonic/rev3_drop/matrix.c b/keyboards/preonic/rev3_drop/matrix.c index 392997e0a52..07171a39e9d 100644 --- a/keyboards/preonic/rev3_drop/matrix.c +++ b/keyboards/preonic/rev3_drop/matrix.c @@ -24,13 +24,15 @@ #include "debug.h" #include "matrix.h" +typedef uint16_t matrix_col_t; + /* * col: { B11, B10, B2, B1, A7, B0 } * row: { A10, A9, A8, B15, C13, C14, C15, A2 } */ /* matrix state(1:on, 0:off) */ static matrix_row_t matrix[MATRIX_ROWS]; -static matrix_row_t matrix_debouncing[MATRIX_COLS]; +static matrix_col_t matrix_debouncing[MATRIX_COLS]; static bool debouncing = false; static uint16_t debouncing_time = 0; @@ -66,7 +68,7 @@ void matrix_init(void) { palSetPadMode(GPIOA, 6, PAL_MODE_INPUT_PULLDOWN); memset(matrix, 0, MATRIX_ROWS * sizeof(matrix_row_t)); - memset(matrix_debouncing, 0, MATRIX_COLS * sizeof(matrix_row_t)); + memset(matrix_debouncing, 0, MATRIX_COLS * sizeof(matrix_col_t)); matrix_init_quantum(); } @@ -74,7 +76,7 @@ void matrix_init(void) { uint8_t matrix_scan(void) { // actual matrix for (int col = 0; col < MATRIX_COLS; col++) { - matrix_row_t data = 0; + matrix_col_t data = 0; // strobe col { B11, B10, B2, B1, A7, B0 } switch (col) { diff --git a/keyboards/primekb/prime_l/rules.mk b/keyboards/primekb/prime_l/rules.mk index 03f76d53735..e8880f9eda7 100644 --- a/keyboards/primekb/prime_l/rules.mk +++ b/keyboards/primekb/prime_l/rules.mk @@ -18,7 +18,6 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = yes # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output DEFAULT_FOLDER = primekb/prime_l/v1 diff --git a/keyboards/primekb/prime_m/rules.mk b/keyboards/primekb/prime_m/rules.mk index 009c1918b9e..630f08702f7 100644 --- a/keyboards/primekb/prime_m/rules.mk +++ b/keyboards/primekb/prime_m/rules.mk @@ -18,7 +18,6 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = yes # USB Nkey Rollover BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output LAYOUTS = numpad_5x6 diff --git a/keyboards/primekb/prime_o/rules.mk b/keyboards/primekb/prime_o/rules.mk index e6d2bab20d3..35f2448c60e 100644 --- a/keyboards/primekb/prime_o/rules.mk +++ b/keyboards/primekb/prime_o/rules.mk @@ -18,5 +18,4 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = yes # USB Nkey Rollover BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output diff --git a/keyboards/projectcain/vault35/config.h b/keyboards/projectcain/vault35/config.h new file mode 100644 index 00000000000..5eccd57172a --- /dev/null +++ b/keyboards/projectcain/vault35/config.h @@ -0,0 +1,149 @@ +/* +Copyright 2021 projectcain +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER projectcain +#define PRODUCT vault35 + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 11 + +/* + * 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 { B4, D4, B0, C7 } +#define MATRIX_COL_PINS { B1, D3, F0, F1, F4, F5, F6, F7, C6, B6, B5 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL */ +#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 LED_NUM_LOCK_PIN B0 +//#define LED_CAPS_LOCK_PIN B1 +//#define LED_SCROLL_LOCK_PIN B2 +//#define LED_COMPOSE_PIN B3 +//#define LED_KANA_PIN B4 + +//#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 \ No newline at end of file diff --git a/keyboards/projectcain/vault35/info.json b/keyboards/projectcain/vault35/info.json new file mode 100644 index 00000000000..e842e35e41a --- /dev/null +++ b/keyboards/projectcain/vault35/info.json @@ -0,0 +1,22 @@ +{ + "keyboard_name": "Vault 35", + "url": "", + "maintainer": "projectcain", + "layouts": { + "LAYOUT_split_4space": { + "layout": [{"label":"Q", "x":0, "y":0}, {"label":"W", "x":1, "y":0}, {"label":"E", "x":2, "y":0}, {"label":"R", "x":3, "y":0}, {"label":"T", "x":4, "y":0}, {"label":"Y", "x":5, "y":0}, {"label":"U", "x":6, "y":0}, {"label":"I", "x":7, "y":0}, {"label":"O", "x":8, "y":0}, {"label":"P", "x":9, "y":0}, {"label":"BACK
SPACE", "x":10, "y":0}, {"label":"TAB", "x":0, "y":1, "w":1.25}, {"label":"S", "x":1.25, "y":1}, {"label":"D", "x":2.25, "y":1}, {"label":"F", "x":3.25, "y":1}, {"label":"G", "x":4.25, "y":1}, {"label":"H", "x":5.25, "y":1}, {"label":"J", "x":6.25, "y":1}, {"label":"K", "x":7.25, "y":1}, {"label":"L", "x":8.25, "y":1}, {"label":"ENTER", "x":9.25, "y":1, "w":1.75}, {"label":"SHIFT", "x":0, "y":2, "w":1.75}, {"label":"X", "x":1.75, "y":2}, {"label":"C", "x":2.75, "y":2}, {"label":"V", "x":3.75, "y":2}, {"label":"B", "x":4.75, "y":2}, {"label":"N", "x":5.75, "y":2}, {"label":"M", "x":6.75, "y":2}, {"label":"<", "x":7.75, "y":2}, {"label":">", "x":8.75, "y":2}, {"label":"SHIFT", "x":9.75, "y":2, "w":1.25}, {"label":"CTRL", "x":1.5, "y":3}, {"label":"LOWER", "x":2.5, "y":3, "w":1.25}, {"x":3.75, "y":3, "w":1.75}, {"x":5.5, "y":3, "w":1.75}, {"label":"RAISE", "x":7.25, "y":3, "w":1.25}, {"label":"ALT", "x":8.5, "y":3}] + }, + + "LAYOUT_split_3space": { + "layout": [{"label":"Q", "x":0, "y":0}, {"label":"W", "x":1, "y":0}, {"label":"E", "x":2, "y":0}, {"label":"R", "x":3, "y":0}, {"label":"T", "x":4, "y":0}, {"label":"Y", "x":5, "y":0}, {"label":"U", "x":6, "y":0}, {"label":"I", "x":7, "y":0}, {"label":"O", "x":8, "y":0}, {"label":"P", "x":9, "y":0}, {"label":"BACK
SPACE", "x":10, "y":0}, {"label":"TAB", "x":0, "y":1, "w":1.25}, {"label":"S", "x":1.25, "y":1}, {"label":"D", "x":2.25, "y":1}, {"label":"F", "x":3.25, "y":1}, {"label":"G", "x":4.25, "y":1}, {"label":"H", "x":5.25, "y":1}, {"label":"J", "x":6.25, "y":1}, {"label":"K", "x":7.25, "y":1}, {"label":"L", "x":8.25, "y":1}, {"label":"ENTER", "x":9.25, "y":1, "w":1.75}, {"label":"SHIFT", "x":0, "y":2, "w":1.75}, {"label":"X", "x":1.75, "y":2}, {"label":"C", "x":2.75, "y":2}, {"label":"V", "x":3.75, "y":2}, {"label":"B", "x":4.75, "y":2}, {"label":"N", "x":5.75, "y":2}, {"label":"M", "x":6.75, "y":2}, {"label":"<", "x":7.75, "y":2}, {"label":">", "x":8.75, "y":2}, {"label":"SHIFT", "x":9.75, "y":2, "w":1.25}, {"label":"CTRL", "x":1.5, "y":3}, {"x":2.5, "y":3, "w":2.25}, {"label":"FN", "x":4.75, "y":3}, {"x":5.75, "y":3, "w":2.75}, {"label":"ALT", "x":8.5, "y":3}] + }, + + "LAYOUT_split_2space": { + "layout": [{"label":"Q", "x":0, "y":0}, {"label":"W", "x":1, "y":0}, {"label":"E", "x":2, "y":0}, {"label":"R", "x":3, "y":0}, {"label":"T", "x":4, "y":0}, {"label":"Y", "x":5, "y":0}, {"label":"U", "x":6, "y":0}, {"label":"I", "x":7, "y":0}, {"label":"O", "x":8, "y":0}, {"label":"P", "x":9, "y":0}, {"label":"BACK
SPACE", "x":10, "y":0}, {"label":"TAB", "x":0, "y":1, "w":1.25}, {"label":"S", "x":1.25, "y":1}, {"label":"D", "x":2.25, "y":1}, {"label":"F", "x":3.25, "y":1}, {"label":"G", "x":4.25, "y":1}, {"label":"H", "x":5.25, "y":1}, {"label":"J", "x":6.25, "y":1}, {"label":"K", "x":7.25, "y":1}, {"label":"L", "x":8.25, "y":1}, {"label":"ENTER", "x":9.25, "y":1, "w":1.75}, {"label":"SHIFT", "x":0, "y":2, "w":1.75}, {"label":"X", "x":1.75, "y":2}, {"label":"C", "x":2.75, "y":2}, {"label":"V", "x":3.75, "y":2}, {"label":"B", "x":4.75, "y":2}, {"label":"N", "x":5.75, "y":2}, {"label":"M", "x":6.75, "y":2}, {"label":"<", "x":7.75, "y":2}, {"label":">", "x":8.75, "y":2}, {"label":"SHIFT", "x":9.75, "y":2, "w":1.25}, {"label":"CTRL", "x":1.5, "y":3}, {"x":2.5, "y":3, "w":3}, {"x":5.5, "y":3, "w":3}, {"label":"ALT", "x":8.5, "y":3}] + }, + + "LAYOUT_full_space": { + "layout": [{"label":"Q", "x":0, "y":0}, {"label":"W", "x":1, "y":0}, {"label":"E", "x":2, "y":0}, {"label":"R", "x":3, "y":0}, {"label":"T", "x":4, "y":0}, {"label":"Y", "x":5, "y":0}, {"label":"U", "x":6, "y":0}, {"label":"I", "x":7, "y":0}, {"label":"O", "x":8, "y":0}, {"label":"P", "x":9, "y":0}, {"label":"BACK
SPACE", "x":10, "y":0}, {"label":"TAB", "x":0, "y":1, "w":1.25}, {"label":"S", "x":1.25, "y":1}, {"label":"D", "x":2.25, "y":1}, {"label":"F", "x":3.25, "y":1}, {"label":"G", "x":4.25, "y":1}, {"label":"H", "x":5.25, "y":1}, {"label":"J", "x":6.25, "y":1}, {"label":"K", "x":7.25, "y":1}, {"label":"L", "x":8.25, "y":1}, {"label":"ENTER", "x":9.25, "y":1, "w":1.75}, {"label":"SHIFT", "x":0, "y":2, "w":1.75}, {"label":"X", "x":1.75, "y":2}, {"label":"C", "x":2.75, "y":2}, {"label":"V", "x":3.75, "y":2}, {"label":"B", "x":4.75, "y":2}, {"label":"N", "x":5.75, "y":2}, {"label":"M", "x":6.75, "y":2}, {"label":"<", "x":7.75, "y":2}, {"label":">", "x":8.75, "y":2}, {"label":"SHIFT", "x":9.75, "y":2, "w":1.25}, {"label":"CTRL", "x":1.5, "y":3}, {"x":2.5, "y":3, "w":6}, {"label":"ALT", "x":8.5, "y":3}] + } + } +} diff --git a/keyboards/projectcain/vault35/keymaps/default/config.h b/keyboards/projectcain/vault35/keymaps/default/config.h new file mode 100644 index 00000000000..35f670c86b4 --- /dev/null +++ b/keyboards/projectcain/vault35/keymaps/default/config.h @@ -0,0 +1,24 @@ +/* Copyright 2021 projectcain + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 ENCODERS_PAD_A { D6 } +#define ENCODERS_PAD_B { D7 } +#define ENCODER_RESOLUTION 2 +#define COMBO_COUNT 2 +#define COMBO_TERM 50 +#define TAPPING_FORCE_HOLD diff --git a/keyboards/projectcain/vault35/keymaps/default/keymap.c b/keyboards/projectcain/vault35/keymaps/default/keymap.c new file mode 100644 index 00000000000..05fb05b7608 --- /dev/null +++ b/keyboards/projectcain/vault35/keymaps/default/keymap.c @@ -0,0 +1,66 @@ + + /* Copyright 2021 projectcain + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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{ + BASE, + NUM, + SYM, + META +}; + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [BASE] = LAYOUT_split_4space( + + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOTE, + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, + LALT(KC_TAB), MO(1), SFT_T(KC_BSPC), KC_SPACE, MO(2), RESET + ), + + [NUM] = LAYOUT_split_4space( + + KC_PGUP, KC_HOME, KC_UP, KC_END, KC_WBAK, KC_PSLS, KC_7, KC_8, KC_9, KC_PMNS, KC_DEL, + KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_WFWD, KC_PAST, KC_4, KC_5, KC_6, KC_PPLS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_1, KC_2, KC_3, KC_PDOT, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RALT(KC_F4), RALT(KC_F4) + ), + + [SYM] = LAYOUT_split_4space( + + S(KC_GRV), KC_GRV, KC_BSLS, S(KC_BSLS), KC_TRNS, KC_TRNS, S(KC_MINS), KC_EQL, KC_TRNS, C(KC_W), C(KC_T), + S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), KC_SCLN, S(KC_SCLN), + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NUMLOCK, KC_TRNS + ), + +}; + + +enum combos { + KL_SLSH, + JK_MINUS +}; + +const uint16_t PROGMEM kl_combo[] = {KC_K, KC_L, COMBO_END}; +const uint16_t PROGMEM jk_combo[] = {KC_J, KC_K, COMBO_END}; + +combo_t key_combos[COMBO_COUNT] = { + [KL_SLSH] = COMBO(kl_combo, S(KC_SLSH)), + [JK_MINUS] = COMBO(jk_combo, KC_MINUS) +}; diff --git a/keyboards/projectcain/vault35/keymaps/default/readme.md b/keyboards/projectcain/vault35/keymaps/default/readme.md new file mode 100644 index 00000000000..60807227676 --- /dev/null +++ b/keyboards/projectcain/vault35/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for vault35 diff --git a/keyboards/projectcain/vault35/keymaps/default/rules.mk b/keyboards/projectcain/vault35/keymaps/default/rules.mk new file mode 100644 index 00000000000..dca6713d4fa --- /dev/null +++ b/keyboards/projectcain/vault35/keymaps/default/rules.mk @@ -0,0 +1,2 @@ +ENCODER_ENABLE = yes +COMBO_ENABLE = yes \ No newline at end of file diff --git a/keyboards/projectcain/vault35/readme.md b/keyboards/projectcain/vault35/readme.md new file mode 100644 index 00000000000..88d3ebc73eb --- /dev/null +++ b/keyboards/projectcain/vault35/readme.md @@ -0,0 +1,21 @@ +# vault35 + +![vault35](https://i.imgur.com/yw3Fvjxh.jpg) + +This is a 30% HHKB-style variant of the vault45 with several bottom row options and rotary encoder support. + +* Keyboard Maintainer: [projectcain](https://github.com/projectcain) +* Hardware Supported: Vault 35 PCB +* Hardware Availability: mechvault.net + +To reset the keyboard into bootloader mode, short the two pads labeled "Reset" on the left side of the pcb + +Make example for this keyboard (after setting up your build environment): + + make projectcain/vault35:default + +Flashing example for this keyboard: + + make projectcain/vault35: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/projectcain/vault35/rules.mk b/keyboards/projectcain/vault35/rules.mk new file mode 100644 index 00000000000..9906266f482 --- /dev/null +++ b/keyboards/projectcain/vault35/rules.mk @@ -0,0 +1,21 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/projectcain/vault35/vault35.c b/keyboards/projectcain/vault35/vault35.c new file mode 100644 index 00000000000..2bb1675a1f8 --- /dev/null +++ b/keyboards/projectcain/vault35/vault35.c @@ -0,0 +1,29 @@ +/* Copyright 2021 projectcain + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 "vault35.h" + +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { return false; } + if (index == 0) { /* First encoder */ + if (clockwise) { + tap_code(KC_PGDN); + } else { + tap_code(KC_PGUP); + } + } + return true; +} \ No newline at end of file diff --git a/keyboards/projectcain/vault35/vault35.h b/keyboards/projectcain/vault35/vault35.h new file mode 100644 index 00000000000..af5577f3142 --- /dev/null +++ b/keyboards/projectcain/vault35/vault35.h @@ -0,0 +1,80 @@ +/* Copyright 2021 projectcain + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_split_4space( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, \ + K301, K302, K303, K305, K306, K307 \ +) \ +{ \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, KC_NO }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, KC_NO }, \ + { KC_NO, K301, K302, K303, KC_NO, K305, K306, K307, KC_NO, KC_NO, KC_NO } \ +} + +#define LAYOUT_split_3space( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, \ + K301, K303, K304, K305, K307 \ +) \ +{ \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, KC_NO }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, KC_NO }, \ + { KC_NO, K301, KC_NO, K303, K304, K305, KC_NO, K307, KC_NO, KC_NO, KC_NO } \ +} + +#define LAYOUT_split_2space( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, \ + K301, K303, K305, K307 \ +) \ +{ \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, KC_NO }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, KC_NO }, \ + { KC_NO, K301, KC_NO, K303, KC_NO, K305, KC_NO, K307, KC_NO, KC_NO, KC_NO } \ +} + +#define LAYOUT_full_space( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, \ + K301, K304, K307 \ +) \ +{ \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, KC_NO }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, KC_NO }, \ + { KC_NO, K301, KC_NO, KC_NO, K304, KC_NO, KC_NO, K307, KC_NO, KC_NO, KC_NO } \ +} diff --git a/keyboards/projectcain/vault45/info.json b/keyboards/projectcain/vault45/info.json index c7060001920..de2f299b64d 100644 --- a/keyboards/projectcain/vault45/info.json +++ b/keyboards/projectcain/vault45/info.json @@ -1,58 +1,29 @@ { - "keyboard_name": "vault 45", - "url": "", - "maintainer": "projectcain", - "layouts": { - "LAYOUT": { - "layout": [ - { "label": "Tab", "x": 0, "y": 0 }, - { "label": "Q", "x": 1, "y": 0 }, - { "label": "W", "x": 2, "y": 0 }, - { "label": "E", "x": 3, "y": 0 }, - { "label": "R", "x": 4, "y": 0 }, - { "label": "T", "x": 5, "y": 0 }, - { "label": "Y", "x": 6, "y": 0 }, - { "label": "U", "x": 7, "y": 0 }, - { "label": "I", "x": 8, "y": 0 }, - { "label": "O", "x": 9, "y": 0 }, - { "label": "P", "x": 10, "y": 0 }, - { "label": "Back
Space", "x": 11, "y": 0 }, - { "x": 12, "y": 0 }, - { "label": "Caps", "x": 0, "y": 1, "w": 1.25 }, - { "label": "A", "x": 1.25, "y": 1 }, - { "label": "S", "x": 2.25, "y": 1 }, - { "label": "D", "x": 3.25, "y": 1 }, - { "label": "F", "x": 4.25, "y": 1 }, - { "label": "G", "x": 5.25, "y": 1 }, - { "label": "H", "x": 6.25, "y": 1 }, - { "label": "J", "x": 7.25, "y": 1 }, - { "label": "K", "x": 8.25, "y": 1 }, - { "label": "L", "x": 9.25, "y": 1 }, - { "label": ":", "x": 10.25, "y": 1 }, - { "label": "Enter", "x": 11.25, "y": 1, "w": 1.75 }, - { "label": "Shift", "x": 0, "y": 2, "w": 1.75 }, - { "label": "Z", "x": 1.75, "y": 2 }, - { "label": "X", "x": 2.75, "y": 2 }, - { "label": "C", "x": 3.75, "y": 2 }, - { "label": "V", "x": 4.75, "y": 2 }, - { "label": "B", "x": 5.75, "y": 2 }, - { "label": "N", "x": 6.75, "y": 2 }, - { "label": "M", "x": 7.75, "y": 2 }, - { "label": "<", "x": 8.75, "y": 2 }, - { "label": ">", "x": 9.75, "y": 2 }, - { "label": "?", "x": 10.75, "y": 2 }, - { "label": "Shift", "x": 11.75, "y": 2, "w": 1.25 }, - { "label": "Hyper", "x": 0, "y": 3, "w": 1.25 }, - { "label": "Super", "x": 1.25, "y": 3 }, - { "label": "Meta", "x": 2.25, "y": 3, "w": 1.25 }, - { "label": "Alt", "x": 3.5, "y": 3, "w": 1.25 }, - { "x": 4.75, "y": 3, "w": 1.75 }, - { "x": 6.5, "y": 3, "w": 1.75 }, - { "label": "Meta", "x": 8.25, "y": 3, "w": 1.25 }, - { "label": "Super", "x": 9.5, "y": 3, "w": 1.25 }, - { "label": "Fn2", "x": 10.75, "y": 3 }, - { "label": "Ctrl", "x": 11.75, "y": 3, "w": 1.25 } - ] + "keyboard_name": "Vault 45", + "url": "", + "maintainer": "projectcain", + "layout_aliases": { + "LAYOUT": "LAYOUT_all" + }, + "layouts": { + "LAYOUT_all": { + "layout": [{"label":"ESC", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"DEL", "x":11, "y":0}, {"label":"BACK
SPACE", "x":12, "y":0}, {"label":"TAB", "x":0, "y":1, "w":1.25}, {"label":"A", "x":1.25, "y":1}, {"label":"S", "x":2.25, "y":1}, {"label":"D", "x":3.25, "y":1}, {"label":"F", "x":4.25, "y":1}, {"label":"G", "x":5.25, "y":1}, {"label":"H", "x":6.25, "y":1}, {"label":"J", "x":7.25, "y":1}, {"label":"K", "x":8.25, "y":1}, {"label":"L", "x":9.25, "y":1}, {"label":":", "x":10.25, "y":1}, {"label":"ENTER", "x":11.25, "y":1, "w":1.75}, {"label":"SHIFT", "x":0, "y":2, "w":1.75}, {"label":"Z", "x":1.75, "y":2}, {"label":"X", "x":2.75, "y":2}, {"label":"C", "x":3.75, "y":2}, {"label":"V", "x":4.75, "y":2}, {"label":"B", "x":5.75, "y":2}, {"label":"N", "x":6.75, "y":2}, {"label":"M", "x":7.75, "y":2}, {"label":"<", "x":8.75, "y":2}, {"label":">", "x":9.75, "y":2}, {"label":"?", "x":10.75, "y":2}, {"label":"SHIFT", "x":11.75, "y":2, "w":1.25}, {"label":"CTRL", "x":1.25, "y":3}, {"label":"ALT", "x":2.25, "y":3, "w":1.25}, {"label":"SYS", "x":3.5, "y":3, "w":1.25}, {"x":4.75, "y":3, "w":1.25}, {"x":6, "y":3}, {"x":7, "y":3, "w":1.25}, {"label":"FN", "x":8.25, "y":3, "w":1.25}, {"label":"ALT", "x":9.5, "y":3, "w":1.25}, {"label":"CTRL", "x":10.75, "y":3}] + }, + + "LAYOUT_split_4space": { + "layout": [{"label":"ESC", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"DEL", "x":11, "y":0}, {"label":"BACK
SPACE", "x":12, "y":0}, {"label":"TAB", "x":0, "y":1, "w":1.25}, {"label":"A", "x":1.25, "y":1}, {"label":"S", "x":2.25, "y":1}, {"label":"D", "x":3.25, "y":1}, {"label":"F", "x":4.25, "y":1}, {"label":"G", "x":5.25, "y":1}, {"label":"H", "x":6.25, "y":1}, {"label":"J", "x":7.25, "y":1}, {"label":"K", "x":8.25, "y":1}, {"label":"L", "x":9.25, "y":1}, {"label":":", "x":10.25, "y":1}, {"label":"ENTER", "x":11.25, "y":1, "w":1.75}, {"label":"SHIFT", "x":0, "y":2, "w":1.75}, {"label":"Z", "x":1.75, "y":2}, {"label":"X", "x":2.75, "y":2}, {"label":"C", "x":3.75, "y":2}, {"label":"V", "x":4.75, "y":2}, {"label":"B", "x":5.75, "y":2}, {"label":"N", "x":6.75, "y":2}, {"label":"M", "x":7.75, "y":2}, {"label":"<", "x":8.75, "y":2}, {"label":">", "x":9.75, "y":2}, {"label":"?", "x":10.75, "y":2}, {"label":"SHIFT", "x":11.75, "y":2, "w":1.25}, {"label":"CTRL", "x":1.25, "y":3}, {"label":"ALT", "x":2.25, "y":3, "w":1.25}, {"label":"SYS", "x":3.5, "y":3, "w":1.25}, {"x":4.75, "y":3, "w":1.75}, {"x":6.5, "y":3, "w":1.75}, {"label":"FN", "x":8.25, "y":3, "w":1.25}, {"label":"ALT", "x":9.5, "y":3, "w":1.25}, {"label":"CTRL", "x":10.75, "y":3}] + }, + + "LAYOUT_split_3space": { + "layout": [{"label":"ESC", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"DEL", "x":11, "y":0}, {"label":"BACK
SPACE", "x":12, "y":0}, {"label":"TAB", "x":0, "y":1, "w":1.25}, {"label":"A", "x":1.25, "y":1}, {"label":"S", "x":2.25, "y":1}, {"label":"D", "x":3.25, "y":1}, {"label":"F", "x":4.25, "y":1}, {"label":"G", "x":5.25, "y":1}, {"label":"H", "x":6.25, "y":1}, {"label":"J", "x":7.25, "y":1}, {"label":"K", "x":8.25, "y":1}, {"label":"L", "x":9.25, "y":1}, {"label":":", "x":10.25, "y":1}, {"label":"ENTER", "x":11.25, "y":1, "w":1.75}, {"label":"SHIFT", "x":0, "y":2, "w":1.75}, {"label":"Z", "x":1.75, "y":2}, {"label":"X", "x":2.75, "y":2}, {"label":"C", "x":3.75, "y":2}, {"label":"V", "x":4.75, "y":2}, {"label":"B", "x":5.75, "y":2}, {"label":"N", "x":6.75, "y":2}, {"label":"M", "x":7.75, "y":2}, {"label":"<", "x":8.75, "y":2}, {"label":">", "x":9.75, "y":2}, {"label":"?", "x":10.75, "y":2}, {"label":"SHIFT", "x":11.75, "y":2, "w":1.25}, {"label":"CTRL", "x":1.25, "y":3}, {"label":"ALT", "x":2.25, "y":3, "w":1.25}, {"x":3.5, "y":3, "w":2.25}, {"x":5.75, "y":3}, {"x":6.75, "y":3, "w":2.75}, {"label":"ALT", "x":9.5, "y":3, "w":1.25}, {"label":"CTRL", "x":10.75, "y":3}] + }, + + "LAYOUT_split_2space": { + "layout": [{"label":"ESC", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"DEL", "x":11, "y":0}, {"label":"BACK
SPACE", "x":12, "y":0}, {"label":"TAB", "x":0, "y":1, "w":1.25}, {"label":"A", "x":1.25, "y":1}, {"label":"S", "x":2.25, "y":1}, {"label":"D", "x":3.25, "y":1}, {"label":"F", "x":4.25, "y":1}, {"label":"G", "x":5.25, "y":1}, {"label":"H", "x":6.25, "y":1}, {"label":"J", "x":7.25, "y":1}, {"label":"K", "x":8.25, "y":1}, {"label":"L", "x":9.25, "y":1}, {"label":":", "x":10.25, "y":1}, {"label":"ENTER", "x":11.25, "y":1, "w":1.75}, {"label":"SHIFT", "x":0, "y":2, "w":1.75}, {"label":"Z", "x":1.75, "y":2}, {"label":"X", "x":2.75, "y":2}, {"label":"C", "x":3.75, "y":2}, {"label":"V", "x":4.75, "y":2}, {"label":"B", "x":5.75, "y":2}, {"label":"N", "x":6.75, "y":2}, {"label":"M", "x":7.75, "y":2}, {"label":"<", "x":8.75, "y":2}, {"label":">", "x":9.75, "y":2}, {"label":"?", "x":10.75, "y":2}, {"label":"SHIFT", "x":11.75, "y":2, "w":1.25}, {"label":"CTRL", "x":1.25, "y":3}, {"label":"ALT", "x":2.25, "y":3, "w":1.25}, {"x":3.5, "y":3, "w":3}, {"x":6.5, "y":3, "w":3}, {"label":"ALT", "x":9.5, "y":3, "w":1.25}, {"label":"CTRL", "x":10.75, "y":3}] + }, + + "LAYOUT_full_space": { + "layout": [{"label":"ESC", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"DEL", "x":11, "y":0}, {"label":"BACK
SPACE", "x":12, "y":0}, {"label":"TAB", "x":0, "y":1, "w":1.25}, {"label":"A", "x":1.25, "y":1}, {"label":"S", "x":2.25, "y":1}, {"label":"D", "x":3.25, "y":1}, {"label":"F", "x":4.25, "y":1}, {"label":"G", "x":5.25, "y":1}, {"label":"H", "x":6.25, "y":1}, {"label":"J", "x":7.25, "y":1}, {"label":"K", "x":8.25, "y":1}, {"label":"L", "x":9.25, "y":1}, {"label":":", "x":10.25, "y":1}, {"label":"ENTER", "x":11.25, "y":1, "w":1.75}, {"label":"SHIFT", "x":0, "y":2, "w":1.75}, {"label":"Z", "x":1.75, "y":2}, {"label":"X", "x":2.75, "y":2}, {"label":"C", "x":3.75, "y":2}, {"label":"V", "x":4.75, "y":2}, {"label":"B", "x":5.75, "y":2}, {"label":"N", "x":6.75, "y":2}, {"label":"M", "x":7.75, "y":2}, {"label":"<", "x":8.75, "y":2}, {"label":">", "x":9.75, "y":2}, {"label":"?", "x":10.75, "y":2}, {"label":"SHIFT", "x":11.75, "y":2, "w":1.25}, {"label":"CTRL", "x":1.25, "y":3}, {"label":"ALT", "x":2.25, "y":3, "w":1.25}, {"x":3.5, "y":3, "w":6}, {"label":"ALT", "x":9.5, "y":3, "w":1.25}, {"label":"CTRL", "x":10.75, "y":3}] } } } diff --git a/keyboards/projectcain/vault45/keymaps/default/keymap.c b/keyboards/projectcain/vault45/keymaps/default/keymap.c index 9307370200a..6955320e778 100644 --- a/keyboards/projectcain/vault45/keymaps/default/keymap.c +++ b/keyboards/projectcain/vault45/keymaps/default/keymap.c @@ -21,25 +21,25 @@ enum layers{ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [BASE] = LAYOUT( + [BASE] = LAYOUT_split_4space( 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_F5, KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOTE, LT(SYM, KC_ENT), RCTL_T(S(KC_9)), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, S(KC_0), - LALT(KC_TAB), LALT(KC_TAB), MO(1), SFT_T(KC_BSPC), KC_SPACE, KC_SPACE, MO(2), KC_LGUI, G(KC_TAB) + LALT(KC_TAB), LALT(KC_TAB), MO(1), SFT_T(KC_BSPC), KC_SPACE, MO(2), KC_LGUI, G(KC_TAB) ), - [NUM] = LAYOUT( + [NUM] = LAYOUT_split_4space( KC_TRNS, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_WBAK, KC_PSLS, KC_7, KC_8, KC_9, KC_PMNS, KC_DEL, RESET, KC_TRNS, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_WFWD, KC_PAST, KC_4, KC_5, KC_6, KC_PPLS, KC_TRNS, KC_LBRC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_1, KC_2, KC_3, KC_PDOT, KC_RBRC, - KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, S(KC_RCTRL), RALT(KC_F4), RALT(KC_F4) + KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, S(KC_RCTRL), RALT(KC_F4), RALT(KC_F4) ), - [SYM] = LAYOUT( + [SYM] = LAYOUT_split_4space( RGB_TOG, S(KC_GRV), KC_GRV, KC_BSLS, S(KC_BSLS), KC_TRNS, KC_TRNS, S(KC_MINS), KC_EQL, KC_TRNS, C(KC_W), C(KC_T), KC_TRNS, KC_TRNS, S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), KC_SCLN, S(KC_SCLN), KC_TRNS, S(KC_LBRC), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, S(KC_RBRC), - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_CAPSLOCK, KC_NUMLOCK, KC_TRNS + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_CAPSLOCK, KC_NUMLOCK, KC_TRNS ), }; diff --git a/keyboards/projectcain/vault45/vault45.h b/keyboards/projectcain/vault45/vault45.h index 031de0003a4..b1217d6d06a 100644 --- a/keyboards/projectcain/vault45/vault45.h +++ b/keyboards/projectcain/vault45/vault45.h @@ -26,7 +26,8 @@ * The second converts the arguments into a two-dimensional array which * represents the switch matrix. */ -#define LAYOUT( \ + +#define LAYOUT_all( \ 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, \ K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, \ @@ -36,5 +37,54 @@ { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012 }, \ { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, KC_NO, K112 }, \ { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212 }, \ - { KC_NO, K301, K302, KC_NO, K304, K305, K306, K307, K308, KC_NO, K310, K311, KC_NO }, \ + { KC_NO, K301, K302, KC_NO, K304, K305, K306, K307, K308, KC_NO, K310, K311, KC_NO } \ +} + +#define LAYOUT_split_4space( \ + 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, \ + K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, \ + K301, K302, K304, K305, K307, K308, K310, K311 \ +) \ +{ \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, KC_NO, K112 }, \ + { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212 }, \ + { KC_NO, K301, K302, KC_NO, K304, K305, KC_NO, K307, K308, KC_NO, K310, K311, KC_NO } \ +} +#define LAYOUT_split_3space( \ + 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, \ + K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, \ + K301, K302, K305, K306, K307, K310, K311 \ +) \ +{ \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, KC_NO, K112 }, \ + { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212 }, \ + { KC_NO, K301, K302, KC_NO, KC_NO, K305, K306, K307, KC_NO, KC_NO, K310, K311, KC_NO } \ +} +#define LAYOUT_split_2space( \ + 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, \ + K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, \ + K301, K302, K305, K307, K310, K311 \ +) \ +{ \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, KC_NO, K112 }, \ + { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212 }, \ + { KC_NO, K301, K302, KC_NO, KC_NO, K305, KC_NO, K307, KC_NO, KC_NO, K310, K311, KC_NO } \ +} +#define LAYOUT_full_space( \ + 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, \ + K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, \ + K301, K302, K306, K310, K311 \ +) \ +{ \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, KC_NO, K112 }, \ + { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212 }, \ + { KC_NO, K301, K302, KC_NO, KC_NO, KC_NO, K306, KC_NO, KC_NO, KC_NO, K310, K311, KC_NO } \ } diff --git a/keyboards/pteron36/config.h b/keyboards/pteron36/config.h index dcc9d68c786..d6f31514e60 100644 --- a/keyboards/pteron36/config.h +++ b/keyboards/pteron36/config.h @@ -152,4 +152,16 @@ along with this program. If not, see . //#define BOOTMAGIC_LITE_ROW 0 //#define BOOTMAGIC_LITE_COLUMN 0 // for via -#define DYNAMIC_KEYMAP_LAYER_COUNT 7 \ No newline at end of file +#define DYNAMIC_KEYMAP_LAYER_COUNT 7 + +//left encoder +#define ENCODERS_PAD_A { F5 } +#define ENCODERS_PAD_B { F4 } + +//right encoder +#define ENCODERS_PAD_A_RIGHT { F4 } +#define ENCODERS_PAD_B_RIGHT { F5 } + +//RGB Underglow +#define RGB_DI_PIN B6 +#define RGBLED_NUM 10 \ No newline at end of file diff --git a/keyboards/pteron36/info.json b/keyboards/pteron36/info.json index b493879bf2d..e191dc616fd 100644 --- a/keyboards/pteron36/info.json +++ b/keyboards/pteron36/info.json @@ -1,13 +1,95 @@ { "keyboard_name": "Pteron36", "url": "", - "maintainer": "Harshit Goel", + "maintainer": "harshitgoel96", "layouts": { "LAYOUT_split_3x5_3": { - "layout": [{"x":2, "y":0}, {"x":12.5, "y":0}, {"x":1, "y":0.5}, {"x":3, "y":0.5}, {"x":11.5, "y":0.5}, {"x":13.5, "y":0.5}, {"x":4, "y":0.75}, {"x":10.5, "y":0.75}, {"x":0, "y":1}, {"x":2, "y":1}, {"x":12.5, "y":1}, {"x":14.5, "y":1}, {"x":1, "y":1.5}, {"x":3, "y":1.5}, {"x":11.5, "y":1.5}, {"x":13.5, "y":1.5}, {"x":4, "y":1.75}, {"x":10.5, "y":1.75}, {"x":0, "y":2}, {"x":2, "y":2}, {"x":12.5, "y":2}, {"x":14.5, "y":2}, {"x":1, "y":2.5}, {"x":3, "y":2.5}, {"x":11.5, "y":2.5}, {"x":13.5, "y":2.5}, {"x":4, "y":2.75}, {"x":10.5, "y":2.75}, {"x":0, "y":3}, {"x":14.5, "y":3}, {"x":4, "y":4}, {"x":5, "y":4}, {"x":6, "y":4}, {"x":8.5, "y":4}, {"x":9.5, "y":4}, {"x":10.5, "y":4}] + "layout": [ + {"x":0, "y":1}, + {"x":1, "y":0.5}, + {"x":2, "y":0}, + {"x":3, "y":0.5}, + {"x":4, "y":0.75}, + {"x":10, "y":0.75}, + {"x":11, "y":0.5}, + {"x":12, "y":0}, + {"x":13, "y":0.5}, + {"x":14, "y":1}, + + {"x":0, "y":2}, + {"x":1, "y":1.5}, + {"x":2, "y":1}, + {"x":3, "y":1.5}, + {"x":4, "y":1.75}, + {"x":10, "y":1.75}, + {"x":11, "y":1.5}, + {"x":12, "y":1}, + {"x":13, "y":1.5}, + {"x":14, "y":2}, + + {"x":0, "y":3}, + {"x":1, "y":2.5}, + {"x":2, "y":2}, + {"x":3, "y":2.5}, + {"x":4, "y":2.75}, + {"x":10, "y":2.75}, + {"x":11, "y":2.5}, + {"x":12, "y":2}, + {"x":13, "y":2.5}, + {"x":14, "y":3}, + + {"x":4, "y":4}, + {"x":5, "y":4}, + {"x":6, "y":4}, + {"x":8, "y":4}, + {"x":9, "y":4}, + {"x":10, "y":4} + ] }, "LAYOUT_split_3x5_3_encoder": { - "layout": [{"x":2, "y":0}, {"x":12.5, "y":0}, {"x":1, "y":0.5}, {"x":3, "y":0.5}, {"x":11.5, "y":0.5}, {"x":13.5, "y":0.5}, {"x":4, "y":0.75}, {"x":10.5, "y":0.75}, {"x":0, "y":1}, {"x":2, "y":1}, {"x":12.5, "y":1}, {"x":14.5, "y":1}, {"x":1, "y":1.5}, {"x":3, "y":1.5}, {"x":11.5, "y":1.5}, {"x":13.5, "y":1.5}, {"x":4, "y":1.75}, {"x":10.5, "y":1.75}, {"x":0, "y":2}, {"x":2, "y":2}, {"x":12.5, "y":2}, {"x":14.5, "y":2}, {"x":1, "y":2.5}, {"x":3, "y":2.5}, {"x":11.5, "y":2.5}, {"x":13.5, "y":2.5}, {"x":4, "y":2.75}, {"label":"enc1", "x":5.5, "y":2.75}, {"label":"enc2", "x":9, "y":2.75}, {"x":10.5, "y":2.75}, {"x":0, "y":3}, {"x":14.5, "y":3}, {"x":4, "y":4}, {"x":5, "y":4}, {"x":6, "y":4}, {"x":8.5, "y":4}, {"x":9.5, "y":4}, {"x":10.5, "y":4}] + "layout": [ + {"x":0, "y":1}, + {"x":1, "y":0.5}, + {"x":2, "y":0}, + {"x":3, "y":0.5}, + {"x":4, "y":0.75}, + {"x":10, "y":0.75}, + {"x":11, "y":0.5}, + {"x":12, "y":0}, + {"x":13, "y":0.5}, + {"x":14, "y":1}, + + {"x":0, "y":2}, + {"x":1, "y":1.5}, + {"x":2, "y":1}, + {"x":3, "y":1.5}, + {"x":4, "y":1.75}, + {"x":10, "y":1.75}, + {"x":11, "y":1.5}, + {"x":12, "y":1}, + {"x":13, "y":1.5}, + {"x":14, "y":2}, + + {"x":0, "y":3}, + {"x":1, "y":2.5}, + {"x":2, "y":2}, + {"x":3, "y":2.5}, + {"x":4, "y":2.75}, + {"label":"enc1", "x":5.5, "y":2.75}, + {"label":"enc2", "x":8.5, "y":2.75}, + {"x":10, "y":2.75}, + {"x":11, "y":2.5}, + {"x":12, "y":2}, + {"x":13, "y":2.5}, + {"x":14, "y":3}, + + {"x":4, "y":4}, + {"x":5, "y":4}, + {"x":6, "y":4}, + {"x":8, "y":4}, + {"x":9, "y":4}, + {"x":10, "y":4} + ] } } } diff --git a/keyboards/pteron36/keymaps/default/keymap.c b/keyboards/pteron36/keymaps/default/keymap.c index 11d00bb3186..14b4e5979b2 100644 --- a/keyboards/pteron36/keymaps/default/keymap.c +++ b/keyboards/pteron36/keymaps/default/keymap.c @@ -27,9 +27,10 @@ enum custom_keycodes { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = LAYOUT_split_3x5_3_encoder( - KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, - KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, - KC_Z, KC_X, KC_C, KC_V, KC_B,KC_LBRACKET, KC_RBRACKET, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, - KC_LGUI, KC_BSPC, KC_SPC, KC_SPC, KC_ENT, KC_RALT - )}; \ No newline at end of file + [_QWERTY] = LAYOUT_split_3x5_3_encoder( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, + 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_LGUI, KC_BSPC, KC_SPC, KC_SPC, KC_ENT, KC_RALT + ) +}; diff --git a/keyboards/pteron36/keymaps/via/keymap.c b/keyboards/pteron36/keymaps/via/keymap.c index 1c614596eb4..ce96ea6c598 100644 --- a/keyboards/pteron36/keymaps/via/keymap.c +++ b/keyboards/pteron36/keymaps/via/keymap.c @@ -33,52 +33,110 @@ enum layer_names { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = LAYOUT_split_3x5_3_encoder( - KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, - KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, - KC_Z, KC_X, KC_C, KC_V, KC_B,KC_LBRACKET, KC_RBRACKET, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, - KC_LGUI, KC_BSPC, KC_SPC, KC_SPC, KC_ENT, KC_RALT - ), - - [_SYMB] = LAYOUT_split_3x5_3_encoder( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - - [_NAV] = LAYOUT_split_3x5_3_encoder( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - - [_ADJUST] = LAYOUT_split_3x5_3_encoder( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - [_MOUSE] = LAYOUT_split_3x5_3_encoder( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - - [_NUMB] = LAYOUT_split_3x5_3_encoder( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - - [_FNR] = LAYOUT_split_3x5_3_encoder( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ) - -}; \ No newline at end of file + [_QWERTY] = LAYOUT_split_3x5_3_encoder( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, + 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_LGUI, KC_BSPC, KC_SPC, KC_SPC, KC_ENT, KC_RALT + ), + + [_SYMB] = LAYOUT_split_3x5_3_encoder( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [_NAV] = LAYOUT_split_3x5_3_encoder( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [_ADJUST] = LAYOUT_split_3x5_3_encoder( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [_MOUSE] = LAYOUT_split_3x5_3_encoder( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [_NUMB] = LAYOUT_split_3x5_3_encoder( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [_FNR] = LAYOUT_split_3x5_3_encoder( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) + +}; + +#ifdef OLED_DRIVER_ENABLE + +static void render_logo(void) { + static const char PROGMEM qmk_logo[] = { + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94, + 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, + 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0x00 + }; + + oled_write_P(qmk_logo, false); +} +static void render_status(void){ + oled_write_P(PSTR("Layer: "), false); + + switch (get_highest_layer(layer_state)) { + case _QWERTY: + oled_write_P(PSTR("Default\n"), false); + break; + case _SYMB: + oled_write_P(PSTR("Symbol\n"), false); + break; + case _NAV: + oled_write_P(PSTR("Nav\n"), false); + break; + case _ADJUST: + oled_write_P(PSTR("Adjust\n"), false); + break; + case _MOUSE: + oled_write_P(PSTR("Mouse\n"), false); + break; + case _NUMB: + oled_write_P(PSTR("Number\n"), false); + break; + case _FNR: + oled_write_P(PSTR("FunR\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_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false); + oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false); + oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false); +} +void oled_task_user(void) { + if (is_keyboard_master()) { + render_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc) + } else { + render_logo(); // Renders a static logo + oled_scroll_left(); // Turns on scrolling + } +} +#endif diff --git a/keyboards/pteron36/keymaps/via/readme.md b/keyboards/pteron36/keymaps/via/readme.md index 32ab1253d7a..5bde196156b 100644 --- a/keyboards/pteron36/keymaps/via/readme.md +++ b/keyboards/pteron36/keymaps/via/readme.md @@ -1 +1 @@ -# Default keymap for Redox Wireless +# Default keymap for via \ No newline at end of file diff --git a/keyboards/pteron36/keymaps/via/rules.mk b/keyboards/pteron36/keymaps/via/rules.mk index 43061db1dd4..36b7ba9cbc9 100644 --- a/keyboards/pteron36/keymaps/via/rules.mk +++ b/keyboards/pteron36/keymaps/via/rules.mk @@ -1,2 +1,2 @@ VIA_ENABLE = yes -LTO_ENABLE = yes \ No newline at end of file +LTO_ENABLE = yes diff --git a/keyboards/pteron36/pteron36.c b/keyboards/pteron36/pteron36.c index 4f06d822de4..3288626f00f 100644 --- a/keyboards/pteron36/pteron36.c +++ b/keyboards/pteron36/pteron36.c @@ -14,4 +14,53 @@ * along with this program. If not, see . */ -#include "pteron36.h" \ No newline at end of file +#include "pteron36.h" + +//common encoder setup + +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { return false; } + if (index == 0) { /* First encoder */ + if (clockwise) { + tap_code(KC__VOLUP); + } else { + tap_code(KC__VOLDOWN); + } + } else if (index == 1) { /* Second encoder */ + if (clockwise) { + tap_code(KC_PGUP); + } else { + tap_code(KC_PGDN); + } + } + return true; +} +//common oled support. +#ifdef OLED_DRIVER_ENABLE +__attribute__((weak)) void oled_task_user(void) { + if (is_keyboard_master()) { + oled_write_P(PSTR("Layer: "), false); + switch (get_highest_layer(layer_state)) { + case _QWERTY: + oled_write_ln_P(PSTR("Default"), 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_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); + } else { + 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); + oled_scroll_left(); // Turns on scrolling + } +} +#endif diff --git a/keyboards/pteron36/readme.md b/keyboards/pteron36/readme.md index b9e919c7564..0e430db2432 100644 --- a/keyboards/pteron36/readme.md +++ b/keyboards/pteron36/readme.md @@ -2,11 +2,12 @@ ![Pteron36](https://i.imgur.com/PuXPWYfh.jpg) -A 36 key keyboard with a bit more natural thumb cluster. +A 36-key keyboard with a bit more natural thumb cluster. * Keyboard Maintainer: [Harshit Goel](https://github.com/harshitgoel96) * Hardware Supported: Pteron36 using promicro. -* Hardware Availability: Hardware is opensource, you can simply send the gerber to a PCB manufacturere and them made. File are availalbe in [pteron36 repository](https://github.com/harshitgoel96/pteron36-split-keyboard/releases/tag/v1.2.0) +* Hardware Availability: Files are available in the [pteron36 repository](https://github.com/harshitgoel96/pteron36-split-keyboard/releases/tag/v1.2.0) + * The hardware is open source; you can simply send the Gerber to a PCB manufacturer and have them made. Make example for this keyboard (after setting up your build environment): @@ -20,12 +21,15 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to ## Default Keymap and Miryoku Layout support -The keyboard was designed with miryoku layout in mind. The default layout is very basic and does not have much use. I will be opening a pr to make the keyboard available with miryoku layout soon. Currently to build the keyboard with miryoku you will have to checkout latest miryoku qmk repo, and add the keyboard folder there manually. After copying the folder run the following command +The keyboard was designed with miryoku layout in mind. The default layout is very basic and does not have much use, modify the keymap as you see fit. Build keyboard with manna-harbour_miryoku as keymap, qmk should compile the firmare without any issue. + + make pteron36:manna-harbour_miryoku - make pteron36:manna-harbour_miryoku - Add miryoku params as required. +Pteron36 uses community layout, hence there is no need for separate keymap folder for any keymap that support 5x3_3 layout. + +## VIA support -## OLED and RotaryEncoder +The VIA keymap is working as intended. -I am working on adding OLED and RotaryEncoder support in keyboard config. + make pteron36:via diff --git a/keyboards/pteron36/rules.mk b/keyboards/pteron36/rules.mk index 64a21b2e9b7..a12be263511 100644 --- a/keyboards/pteron36/rules.mk +++ b/keyboards/pteron36/rules.mk @@ -7,7 +7,7 @@ BOOTLOADER = caterina # Build Options # change yes to no to disable # -BOOTMAGIC_ENABLE = lite # Enable Bootmagic Lite +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = no # Console for debug @@ -17,10 +17,10 @@ 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 +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output - -OLED_ENABLE = no # OLED display; work in progress to add support. will be update in future. -SPLIT_KEYBOARD = yes +OLED_DRIVER_ENABLE = yes # OLED display +ENCODER_ENABLE = yes # Encoder support +SPLIT_KEYBOARD = yes # Split enable LAYOUTS = split_3x5_3 diff --git a/keyboards/puck/rules.mk b/keyboards/puck/rules.mk index 2588e7b823e..778604b8b52 100644 --- a/keyboards/puck/rules.mk +++ b/keyboards/puck/rules.mk @@ -16,7 +16,6 @@ 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 = no # Enable keyboard backlight functionality AUDIO_ENABLE = no # Audio output -UNICODE_ENABLE = no # Unicode RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE diff --git a/keyboards/quad_h/lb75/config.h b/keyboards/quad_h/lb75/config.h index d55432c7a93..e752dfcdd53 100644 --- a/keyboards/quad_h/lb75/config.h +++ b/keyboards/quad_h/lb75/config.h @@ -119,59 +119,6 @@ along with this program. If not, see . */ //#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_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) - -/* 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. diff --git a/keyboards/quantrik/kyuu/config.h b/keyboards/quantrik/kyuu/config.h index 924395ebc62..a2fc756fba5 100644 --- a/keyboards/quantrik/kyuu/config.h +++ b/keyboards/quantrik/kyuu/config.h @@ -117,59 +117,6 @@ along with this program. If not, see . */ //#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_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) - -/* 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. diff --git a/keyboards/quantrik/kyuu/rules.mk b/keyboards/quantrik/kyuu/rules.mk index 86bb4c7592d..077733ea876 100644 --- a/keyboards/quantrik/kyuu/rules.mk +++ b/keyboards/quantrik/kyuu/rules.mk @@ -18,5 +18,4 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = no # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output diff --git a/keyboards/quark/keymaps/ajp10304/readme.md b/keyboards/quark/keymaps/ajp10304/readme.md index 12090ccd446..83af702e2a7 100644 --- a/keyboards/quark/keymaps/ajp10304/readme.md +++ b/keyboards/quark/keymaps/ajp10304/readme.md @@ -7,8 +7,7 @@ the second is the output when shift is applied. **Note:** The below tables assume a UK layout. #### Flashing - -`make quark:ajp10304:flash` +Refer to the README.md of the keyboard you want to flash. ##### Main Qwerty Layer @@ -102,7 +101,7 @@ Activated when `fn` and `raise` held together. | | | | | | | | | | | | | | :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| -| ESC | | | | | | | | BTN3 | | | | +| ESC | | | | | | W_L | W_UP | BTN3 | W_DWN| W_R | | | ACC0 | ACC1 | ACC2 | | | | | BTN1 | UP | BTN2 | | | | ACC0 | ACC1 | ACC2 | | | | | LEFT | DOWN | RIGHT| | | | | | | | | | | | | | | | diff --git a/keyboards/qwertyydox/config.h b/keyboards/qwertyydox/config.h index cc77cf9c1d7..4cd214e2228 100644 --- a/keyboards/qwertyydox/config.h +++ b/keyboards/qwertyydox/config.h @@ -122,59 +122,6 @@ along with this program. If not, see . */ //#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 - #define MOUSEKEY_DELAY 150 #define MOUSEKEY_INTERVAL 20 #define MOUSEKEY_MAX_SPEED 10 diff --git a/keyboards/qwertyydox/rules.mk b/keyboards/qwertyydox/rules.mk index 4f12c6f4635..dd4a6ae3ec0 100644 --- a/keyboards/qwertyydox/rules.mk +++ b/keyboards/qwertyydox/rules.mk @@ -10,7 +10,6 @@ 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 = no # Enable keyboard backlight functionality AUDIO_ENABLE = no # Audio output -UNICODE_ENABLE = no # Unicode RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend diff --git a/keyboards/rabbit/rabbit68/config.h b/keyboards/rabbit/rabbit68/config.h index 449f195144c..bae66808ace 100644 --- a/keyboards/rabbit/rabbit68/config.h +++ b/keyboards/rabbit/rabbit68/config.h @@ -117,59 +117,6 @@ along with this program. If not, see . */ //#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. diff --git a/keyboards/rabbit/rabbit68/rules.mk b/keyboards/rabbit/rabbit68/rules.mk index 3f20abe4349..078ff3ea658 100644 --- a/keyboards/rabbit/rabbit68/rules.mk +++ b/keyboards/rabbit/rabbit68/rules.mk @@ -18,5 +18,4 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = no # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output diff --git a/keyboards/ramonimbao/herringbone/v1/config.h b/keyboards/ramonimbao/herringbone/v1/config.h index 2db97cf56fb..9944cfbd194 100644 --- a/keyboards/ramonimbao/herringbone/v1/config.h +++ b/keyboards/ramonimbao/herringbone/v1/config.h @@ -120,59 +120,6 @@ along with this program. If not, see . */ //#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. diff --git a/keyboards/ramonimbao/squishytkl/info.json b/keyboards/ramonimbao/squishytkl/info.json index caf45d6319c..aa19c73fa83 100644 --- a/keyboards/ramonimbao/squishytkl/info.json +++ b/keyboards/ramonimbao/squishytkl/info.json @@ -5,404 +5,434 @@ "layouts": { "LAYOUT_ansi": { "layout": [ - {"x":0, "y":0.5}, - {"x":1.25, "y":0.5}, - {"x":2.25, "y":0.5}, - {"x":3.25, "y":0.5}, - {"x":4.25, "y":0.5}, - {"x":5.5, "y":0.5}, - {"x":6.5, "y":0.5}, - {"x":7.5, "y":0.5}, - {"x":8.5, "y":0.5}, - {"x":9.75, "y":0.5}, - {"x":10.75, "y":0.5}, - {"x":11.75, "y":0.5}, - {"x":12.75, "y":0.5}, - {"x":14, "y":0.5}, - {"x":15.25, "y":0.5}, - {"x":16.25, "y":0.5}, - {"x":17.25, "y":0.5}, - - {"x":0, "y":1.75}, - {"x":1, "y":1.75}, - {"x":2, "y":1.75}, - {"x":3, "y":1.75}, - {"x":4, "y":1.75}, - {"x":5, "y":1.75}, - {"x":6, "y":1.75}, - {"x":7, "y":1.75}, - {"x":8, "y":1.75}, - {"x":9, "y":1.75}, - {"x":10, "y":1.75}, - {"x":11, "y":1.75}, - {"x":12, "y":1.75}, - {"x":13, "y":1.75, "w":2}, - {"x":15.25, "y":1.75}, - {"x":16.25, "y":1.75}, - {"x":17.25, "y":1.75}, - - {"x":0, "y":2.75, "w":1.5}, - {"x":1.5, "y":2.75}, - {"x":2.5, "y":2.75}, - {"x":3.5, "y":2.75}, - {"x":4.5, "y":2.75}, - {"x":5.5, "y":2.75}, - {"x":6.5, "y":2.75}, - {"x":7.5, "y":2.75}, - {"x":8.5, "y":2.75}, - {"x":9.5, "y":2.75}, - {"x":10.5, "y":2.75}, - {"x":11.5, "y":2.75}, - {"x":12.5, "y":2.75}, - {"x":13.5, "y":2.75, "w":1.5}, - {"x":15.25, "y":2.75}, - {"x":16.25, "y":2.75}, - {"x":17.25, "y":2.75}, - - {"x":0, "y":3.75, "w":1.75}, - {"x":1.75, "y":3.75}, - {"x":2.75, "y":3.75}, - {"x":3.75, "y":3.75}, - {"x":4.75, "y":3.75}, - {"x":5.75, "y":3.75}, - {"x":6.75, "y":3.75}, - {"x":7.75, "y":3.75}, - {"x":8.75, "y":3.75}, - {"x":9.75, "y":3.75}, - {"x":10.75, "y":3.75}, - {"x":11.75, "y":3.75}, - {"x":12.75, "y":3.75, "w":2.25}, - - {"x":0, "y":4.75, "w":2.25}, - {"x":2.25, "y":4.75}, - {"x":3.25, "y":4.75}, - {"x":4.25, "y":4.75}, - {"x":5.25, "y":4.75}, - {"x":6.25, "y":4.75}, - {"x":7.25, "y":4.75}, - {"x":8.25, "y":4.75}, - {"x":9.25, "y":4.75}, - {"x":10.25, "y":4.75}, - {"x":11.25, "y":4.75}, - {"x":12.25, "y":4.75, "w":2.75}, - {"x":16.25, "y":4.75}, - - {"x":0, "y":5.75, "w":1.25}, - {"x":1.25, "y":5.75, "w":1.25}, - {"x":2.5, "y":5.75, "w":1.25}, - {"x":3.75, "y":5.75, "w":6.25}, - {"x":10, "y":5.75, "w":1.25}, - {"x":11.25, "y":5.75, "w":1.25}, - {"x":12.5, "y":5.75, "w":1.25}, - {"x":13.75, "y":5.75, "w":1.25}, - {"x":15.25, "y":5.75}, - {"x":16.25, "y":5.75}, - {"x":17.25, "y":5.75} + {"x": 0, "y": 0}, + + {"x": 1.25, "y": 0}, + {"x": 2.25, "y": 0}, + {"x": 3.25, "y": 0}, + {"x": 4.25, "y": 0}, + + {"x": 5.5, "y": 0}, + {"x": 6.5, "y": 0}, + {"x": 7.5, "y": 0}, + {"x": 8.5, "y": 0}, + + {"x": 9.75, "y": 0}, + {"x": 10.75, "y": 0}, + {"x": 11.75, "y": 0}, + {"x": 12.75, "y": 0}, + + {"x": 14, "y": 0}, + + {"x": 15.25, "y": 0}, + {"x": 16.25, "y": 0}, + {"x": 17.25, "y": 0}, + + {"x": 0, "y": 1.25}, + {"x": 1, "y": 1.25}, + {"x": 2, "y": 1.25}, + {"x": 3, "y": 1.25}, + {"x": 4, "y": 1.25}, + {"x": 5, "y": 1.25}, + {"x": 6, "y": 1.25}, + {"x": 7, "y": 1.25}, + {"x": 8, "y": 1.25}, + {"x": 9, "y": 1.25}, + {"x": 10, "y": 1.25}, + {"x": 11, "y": 1.25}, + {"x": 12, "y": 1.25}, + {"x": 13, "y": 1.25, "w": 2}, + + {"x": 15.25, "y": 1.25}, + {"x": 16.25, "y": 1.25}, + {"x": 17.25, "y": 1.25}, + + {"x": 0, "y": 2.25, "w": 1.5}, + {"x": 1.5, "y": 2.25}, + {"x": 2.5, "y": 2.25}, + {"x": 3.5, "y": 2.25}, + {"x": 4.5, "y": 2.25}, + {"x": 5.5, "y": 2.25}, + {"x": 6.5, "y": 2.25}, + {"x": 7.5, "y": 2.25}, + {"x": 8.5, "y": 2.25}, + {"x": 9.5, "y": 2.25}, + {"x": 10.5, "y": 2.25}, + {"x": 11.5, "y": 2.25}, + {"x": 12.5, "y": 2.25}, + {"x": 13.5, "y": 2.25, "w": 1.5}, + + {"x": 15.25, "y": 2.25}, + {"x": 16.25, "y": 2.25}, + {"x": 17.25, "y": 2.25}, + + {"x": 0, "y": 3.25, "w": 1.75}, + {"x": 1.75, "y": 3.25}, + {"x": 2.75, "y": 3.25}, + {"x": 3.75, "y": 3.25}, + {"x": 4.75, "y": 3.25}, + {"x": 5.75, "y": 3.25}, + {"x": 6.75, "y": 3.25}, + {"x": 7.75, "y": 3.25}, + {"x": 8.75, "y": 3.25}, + {"x": 9.75, "y": 3.25}, + {"x": 10.75, "y": 3.25}, + {"x": 11.75, "y": 3.25}, + {"x": 12.75, "y": 3.25, "w": 2.25}, + + {"x": 0, "y": 4.25, "w": 2.25}, + {"x": 2.25, "y": 4.25}, + {"x": 3.25, "y": 4.25}, + {"x": 4.25, "y": 4.25}, + {"x": 5.25, "y": 4.25}, + {"x": 6.25, "y": 4.25}, + {"x": 7.25, "y": 4.25}, + {"x": 8.25, "y": 4.25}, + {"x": 9.25, "y": 4.25}, + {"x": 10.25, "y": 4.25}, + {"x": 11.25, "y": 4.25}, + {"x": 12.25, "y": 4.25, "w": 2.75}, + + {"x": 16.25, "y": 4.25}, + + {"x": 0, "y": 5.25, "w": 1.25}, + {"x": 1.25, "y": 5.25, "w": 1.25}, + {"x": 2.5, "y": 5.25, "w": 1.25}, + {"x": 3.75, "y": 5.25, "w": 6.25}, + {"x": 10, "y": 5.25, "w": 1.25}, + {"x": 11.25, "y": 5.25, "w": 1.25}, + {"x": 12.5, "y": 5.25, "w": 1.25}, + {"x": 13.75, "y": 5.25, "w": 1.25}, + + {"x": 15.25, "y": 5.25}, + {"x": 16.25, "y": 5.25}, + {"x": 17.25, "y": 5.25} ] }, "LAYOUT_iso": { "layout": [ - {"x":0, "y":0.5}, - {"x":1.25, "y":0.5}, - {"x":2.25, "y":0.5}, - {"x":3.25, "y":0.5}, - {"x":4.25, "y":0.5}, - {"x":5.5, "y":0.5}, - {"x":6.5, "y":0.5}, - {"x":7.5, "y":0.5}, - {"x":8.5, "y":0.5}, - {"x":9.75, "y":0.5}, - {"x":10.75, "y":0.5}, - {"x":11.75, "y":0.5}, - {"x":12.75, "y":0.5}, - {"x":14, "y":0.5}, - {"x":15.25, "y":0.5}, - {"x":16.25, "y":0.5}, - {"x":17.25, "y":0.5}, - - {"x":0, "y":1.75}, - {"x":1, "y":1.75}, - {"x":2, "y":1.75}, - {"x":3, "y":1.75}, - {"x":4, "y":1.75}, - {"x":5, "y":1.75}, - {"x":6, "y":1.75}, - {"x":7, "y":1.75}, - {"x":8, "y":1.75}, - {"x":9, "y":1.75}, - {"x":10, "y":1.75}, - {"x":11, "y":1.75}, - {"x":12, "y":1.75}, - {"x":13, "y":1.75, "w":2}, - {"x":15.25, "y":1.75}, - {"x":16.25, "y":1.75}, - {"x":17.25, "y":1.75}, - - {"x":0, "y":2.75, "w":1.5}, - {"x":1.5, "y":2.75}, - {"x":2.5, "y":2.75}, - {"x":3.5, "y":2.75}, - {"x":4.5, "y":2.75}, - {"x":5.5, "y":2.75}, - {"x":6.5, "y":2.75}, - {"x":7.5, "y":2.75}, - {"x":8.5, "y":2.75}, - {"x":9.5, "y":2.75}, - {"x":10.5, "y":2.75}, - {"x":11.5, "y":2.75}, - {"x":12.5, "y":2.75}, - {"x":15.25, "y":2.75}, - {"x":16.25, "y":2.75}, - {"x":17.25, "y":2.75}, - - {"x":0, "y":3.75, "w":1.75}, - {"x":1.75, "y":3.75}, - {"x":2.75, "y":3.75}, - {"x":3.75, "y":3.75}, - {"x":4.75, "y":3.75}, - {"x":5.75, "y":3.75}, - {"x":6.75, "y":3.75}, - {"x":7.75, "y":3.75}, - {"x":8.75, "y":3.75}, - {"x":9.75, "y":3.75}, - {"x":10.75, "y":3.75}, - {"x":11.75, "y":3.75}, - {"x":12.75, "y":3.75}, - {"x":13.75, "y":2.75, "w":1.25, "h":2}, - - {"x":0, "y":4.75, "w":1.25}, - {"x":1.25, "y":4.75}, - {"x":2.25, "y":4.75}, - {"x":3.25, "y":4.75}, - {"x":4.25, "y":4.75}, - {"x":5.25, "y":4.75}, - {"x":6.25, "y":4.75}, - {"x":7.25, "y":4.75}, - {"x":8.25, "y":4.75}, - {"x":9.25, "y":4.75}, - {"x":10.25, "y":4.75}, - {"x":11.25, "y":4.75}, - {"x":12.25, "y":4.75, "w":2.75}, - {"x":16.25, "y":4.75}, - - {"x":0, "y":5.75, "w":1.25}, - {"x":1.25, "y":5.75, "w":1.25}, - {"x":2.5, "y":5.75, "w":1.25}, - {"x":3.75, "y":5.75, "w":6.25}, - {"x":10, "y":5.75, "w":1.25}, - {"x":11.25, "y":5.75, "w":1.25}, - {"x":12.5, "y":5.75, "w":1.25}, - {"x":13.75, "y":5.75, "w":1.25}, - {"x":15.25, "y":5.75}, - {"x":16.25, "y":5.75}, - {"x":17.25, "y":5.75} + {"x": 0, "y": 0}, + + {"x": 1.25, "y": 0}, + {"x": 2.25, "y": 0}, + {"x": 3.25, "y": 0}, + {"x": 4.25, "y": 0}, + + {"x": 5.5, "y": 0}, + {"x": 6.5, "y": 0}, + {"x": 7.5, "y": 0}, + {"x": 8.5, "y": 0}, + + {"x": 9.75, "y": 0}, + {"x": 10.75, "y": 0}, + {"x": 11.75, "y": 0}, + {"x": 12.75, "y": 0}, + + {"x": 14, "y": 0}, + + {"x": 15.25, "y": 0}, + {"x": 16.25, "y": 0}, + {"x": 17.25, "y": 0}, + + {"x": 0, "y": 1.25}, + {"x": 1, "y": 1.25}, + {"x": 2, "y": 1.25}, + {"x": 3, "y": 1.25}, + {"x": 4, "y": 1.25}, + {"x": 5, "y": 1.25}, + {"x": 6, "y": 1.25}, + {"x": 7, "y": 1.25}, + {"x": 8, "y": 1.25}, + {"x": 9, "y": 1.25}, + {"x": 10, "y": 1.25}, + {"x": 11, "y": 1.25}, + {"x": 12, "y": 1.25}, + {"x": 13, "y": 1.25, "w": 2}, + + {"x": 15.25, "y": 1.25}, + {"x": 16.25, "y": 1.25}, + {"x": 17.25, "y": 1.25}, + + {"x": 0, "y": 2.25, "w": 1.5}, + {"x": 1.5, "y": 2.25}, + {"x": 2.5, "y": 2.25}, + {"x": 3.5, "y": 2.25}, + {"x": 4.5, "y": 2.25}, + {"x": 5.5, "y": 2.25}, + {"x": 6.5, "y": 2.25}, + {"x": 7.5, "y": 2.25}, + {"x": 8.5, "y": 2.25}, + {"x": 9.5, "y": 2.25}, + {"x": 10.5, "y": 2.25}, + {"x": 11.5, "y": 2.25}, + {"x": 12.5, "y": 2.25}, + + {"x": 15.25, "y": 2.25}, + {"x": 16.25, "y": 2.25}, + {"x": 17.25, "y": 2.25}, + + {"x": 0, "y": 3.25, "w": 1.75}, + {"x": 1.75, "y": 3.25}, + {"x": 2.75, "y": 3.25}, + {"x": 3.75, "y": 3.25}, + {"x": 4.75, "y": 3.25}, + {"x": 5.75, "y": 3.25}, + {"x": 6.75, "y": 3.25}, + {"x": 7.75, "y": 3.25}, + {"x": 8.75, "y": 3.25}, + {"x": 9.75, "y": 3.25}, + {"x": 10.75, "y": 3.25}, + {"x": 11.75, "y": 3.25}, + {"x": 12.75, "y": 3.25}, + {"x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + + {"x": 0, "y": 4.25, "w": 1.25}, + {"x": 1.25, "y": 4.25}, + {"x": 2.25, "y": 4.25}, + {"x": 3.25, "y": 4.25}, + {"x": 4.25, "y": 4.25}, + {"x": 5.25, "y": 4.25}, + {"x": 6.25, "y": 4.25}, + {"x": 7.25, "y": 4.25}, + {"x": 8.25, "y": 4.25}, + {"x": 9.25, "y": 4.25}, + {"x": 10.25, "y": 4.25}, + {"x": 11.25, "y": 4.25}, + {"x": 12.25, "y": 4.25, "w": 2.75}, + + {"x": 16.25, "y": 4.25}, + + {"x": 0, "y": 5.25, "w": 1.25}, + {"x": 1.25, "y": 5.25, "w": 1.25}, + {"x": 2.5, "y": 5.25, "w": 1.25}, + {"x": 3.75, "y": 5.25, "w": 6.25}, + {"x": 10, "y": 5.25, "w": 1.25}, + {"x": 11.25, "y": 5.25, "w": 1.25}, + {"x": 12.5, "y": 5.25, "w": 1.25}, + {"x": 13.75, "y": 5.25, "w": 1.25}, + + {"x": 15.25, "y": 5.25}, + {"x": 16.25, "y": 5.25}, + {"x": 17.25, "y": 5.25} ] }, "LAYOUT_jis": { "layout": [ - {"x":0, "y":0}, - {"x":1.25, "y":0}, - {"x":2.25, "y":0}, - {"x":3.25, "y":0}, - {"x":4.25, "y":0}, - {"x":5.5, "y":0}, - {"x":6.5, "y":0}, - {"x":7.5, "y":0}, - {"x":8.5, "y":0}, - {"x":9.75, "y":0}, - {"x":10.75, "y":0}, - {"x":11.75, "y":0}, - {"x":12.75, "y":0}, - {"x":14, "y":0}, - {"x":15.25, "y":0}, - {"x":16.25, "y":0}, - {"x":17.25, "y":0}, - - {"x":0, "y":1.25}, - {"x":1, "y":1.25}, - {"x":2, "y":1.25}, - {"x":3, "y":1.25}, - {"x":4, "y":1.25}, - {"x":5, "y":1.25}, - {"x":6, "y":1.25}, - {"x":7, "y":1.25}, - {"x":8, "y":1.25}, - {"x":9, "y":1.25}, - {"x":10, "y":1.25}, - {"x":11, "y":1.25}, - {"x":12, "y":1.25}, - {"x":13, "y":1.25}, - {"x":14, "y":1.25}, - {"x":15.25, "y":1.25}, - {"x":16.25, "y":1.25}, - {"x":17.25, "y":1.25}, - - {"x":0, "y":2.25, "w":1.5}, - {"x":1.5, "y":2.25}, - {"x":2.5, "y":2.25}, - {"x":3.5, "y":2.25}, - {"x":4.5, "y":2.25}, - {"x":5.5, "y":2.25}, - {"x":6.5, "y":2.25}, - {"x":7.5, "y":2.25}, - {"x":8.5, "y":2.25}, - {"x":9.5, "y":2.25}, - {"x":10.5, "y":2.25}, - {"x":11.5, "y":2.25}, - {"x":12.5, "y":2.25}, - {"x":15.25, "y":2.25}, - {"x":16.25, "y":2.25}, - {"x":17.25, "y":2.25}, - - {"x":0, "y":3.25, "w":1.75}, - {"x":1.75, "y":3.25}, - {"x":2.75, "y":3.25}, - {"x":3.75, "y":3.25}, - {"x":4.75, "y":3.25}, - {"x":5.75, "y":3.25}, - {"x":6.75, "y":3.25}, - {"x":7.75, "y":3.25}, - {"x":8.75, "y":3.25}, - {"x":9.75, "y":3.25}, - {"x":10.75, "y":3.25}, - {"x":11.75, "y":3.25}, - {"x":12.75, "y":3.25}, - {"x":13.75, "y":2.25, "w":1.25, "h":2}, - - {"x":0, "y":4.25, "w":2.25}, - {"x":2.25, "y":4.25}, - {"x":3.25, "y":4.25}, - {"x":4.25, "y":4.25}, - {"x":5.25, "y":4.25}, - {"x":6.25, "y":4.25}, - {"x":7.25, "y":4.25}, - {"x":8.25, "y":4.25}, - {"x":9.25, "y":4.25}, - {"x":10.25, "y":4.25}, - {"x":11.25, "y":4.25}, - {"x":12.25, "y":4.25}, - {"x":13.25, "y":4.25, "w":1.75}, - {"x":16.25, "y":4.25}, - - {"x":0, "y":5.25, "w":1.5}, - {"x":1.5, "y":5.25}, - {"x":2.5, "y":5.25, "w":1.5}, - {"x":4, "y":5.25}, - {"x":5, "y":5.25}, - {"x":6, "y":5.25, "w":3}, - {"x":9, "y":5.25}, - {"x":10, "y":5.25}, - {"x":11, "y":5.25, "w":1.5}, - {"x":12.5, "y":5.25}, - {"x":13.5, "y":5.25, "w":1.5}, - {"x":15.25, "y":5.25}, - {"x":16.25, "y":5.25}, - {"x":17.25, "y":5.25} + {"x": 0, "y": 0}, + {"x": 1.25, "y": 0}, + {"x": 2.25, "y": 0}, + {"x": 3.25, "y": 0}, + {"x": 4.25, "y": 0}, + {"x": 5.5, "y": 0}, + {"x": 6.5, "y": 0}, + {"x": 7.5, "y": 0}, + {"x": 8.5, "y": 0}, + {"x": 9.75, "y": 0}, + {"x": 10.75, "y": 0}, + {"x": 11.75, "y": 0}, + {"x": 12.75, "y": 0}, + {"x": 14, "y": 0}, + {"x": 15.25, "y": 0}, + {"x": 16.25, "y": 0}, + {"x": 17.25, "y": 0}, + + {"x": 0, "y": 1.25}, + {"x": 1, "y": 1.25}, + {"x": 2, "y": 1.25}, + {"x": 3, "y": 1.25}, + {"x": 4, "y": 1.25}, + {"x": 5, "y": 1.25}, + {"x": 6, "y": 1.25}, + {"x": 7, "y": 1.25}, + {"x": 8, "y": 1.25}, + {"x": 9, "y": 1.25}, + {"x": 10, "y": 1.25}, + {"x": 11, "y": 1.25}, + {"x": 12, "y": 1.25}, + {"x": 13, "y": 1.25}, + {"x": 14, "y": 1.25}, + {"x": 15.25, "y": 1.25}, + {"x": 16.25, "y": 1.25}, + {"x": 17.25, "y": 1.25}, + + {"x": 0, "y": 2.25, "w": 1.5}, + {"x": 1.5, "y": 2.25}, + {"x": 2.5, "y": 2.25}, + {"x": 3.5, "y": 2.25}, + {"x": 4.5, "y": 2.25}, + {"x": 5.5, "y": 2.25}, + {"x": 6.5, "y": 2.25}, + {"x": 7.5, "y": 2.25}, + {"x": 8.5, "y": 2.25}, + {"x": 9.5, "y": 2.25}, + {"x": 10.5, "y": 2.25}, + {"x": 11.5, "y": 2.25}, + {"x": 12.5, "y": 2.25}, + {"x": 15.25, "y": 2.25}, + {"x": 16.25, "y": 2.25}, + {"x": 17.25, "y": 2.25}, + + {"x": 0, "y": 3.25, "w": 1.75}, + {"x": 1.75, "y": 3.25}, + {"x": 2.75, "y": 3.25}, + {"x": 3.75, "y": 3.25}, + {"x": 4.75, "y": 3.25}, + {"x": 5.75, "y": 3.25}, + {"x": 6.75, "y": 3.25}, + {"x": 7.75, "y": 3.25}, + {"x": 8.75, "y": 3.25}, + {"x": 9.75, "y": 3.25}, + {"x": 10.75, "y": 3.25}, + {"x": 11.75, "y": 3.25}, + {"x": 12.75, "y": 3.25}, + {"x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + + {"x": 0, "y": 4.25, "w": 2.25}, + {"x": 2.25, "y": 4.25}, + {"x": 3.25, "y": 4.25}, + {"x": 4.25, "y": 4.25}, + {"x": 5.25, "y": 4.25}, + {"x": 6.25, "y": 4.25}, + {"x": 7.25, "y": 4.25}, + {"x": 8.25, "y": 4.25}, + {"x": 9.25, "y": 4.25}, + {"x": 10.25, "y": 4.25}, + {"x": 11.25, "y": 4.25}, + {"x": 12.25, "y": 4.25}, + {"x": 13.25, "y": 4.25, "w": 1.75}, + + {"x": 16.25, "y": 4.25}, + + {"x": 0, "y": 5.25, "w": 1.5}, + {"x": 1.5, "y": 5.25}, + {"x": 2.5, "y": 5.25, "w": 1.5}, + {"x": 4, "y": 5.25}, + {"x": 5, "y": 5.25}, + {"x": 6, "y": 5.25, "w": 3}, + {"x": 9, "y": 5.25}, + {"x": 10, "y": 5.25}, + {"x": 11, "y": 5.25, "w": 1.5}, + {"x": 12.5, "y": 5.25}, + {"x": 13.5, "y": 5.25, "w": 1.5}, + + {"x": 15.25, "y": 5.25}, + {"x": 16.25, "y": 5.25}, + {"x": 17.25, "y": 5.25} ] }, "LAYOUT_all": { "layout": [ - {"x":0, "y":0.5}, - {"x":1.25, "y":0.5}, - {"x":2.25, "y":0.5}, - {"x":3.25, "y":0.5}, - {"x":4.25, "y":0.5}, - {"x":5.5, "y":0.5}, - {"x":6.5, "y":0.5}, - {"x":7.5, "y":0.5}, - {"x":8.5, "y":0.5}, - {"x":9.75, "y":0.5}, - {"x":10.75, "y":0.5}, - {"x":11.75, "y":0.5}, - {"x":12.75, "y":0.5}, - {"x":14, "y":0.5}, - {"x":15.25, "y":0.5}, - {"x":16.25, "y":0.5}, - {"x":17.25, "y":0.5}, - - {"x":0, "y":1.75}, - {"x":1, "y":1.75}, - {"x":2, "y":1.75}, - {"x":3, "y":1.75}, - {"x":4, "y":1.75}, - {"x":5, "y":1.75}, - {"x":6, "y":1.75}, - {"x":7, "y":1.75}, - {"x":8, "y":1.75}, - {"x":9, "y":1.75}, - {"x":10, "y":1.75}, - {"x":11, "y":1.75}, - {"x":12, "y":1.75}, - {"x":13, "y":1.75}, - {"x":14, "y":1.75}, - {"x":15.25, "y":1.75}, - {"x":16.25, "y":1.75}, - {"x":17.25, "y":1.75}, - - {"x":0, "y":2.75, "w":1.5}, - {"x":1.5, "y":2.75}, - {"x":2.5, "y":2.75}, - {"x":3.5, "y":2.75}, - {"x":4.5, "y":2.75}, - {"x":5.5, "y":2.75}, - {"x":6.5, "y":2.75}, - {"x":7.5, "y":2.75}, - {"x":8.5, "y":2.75}, - {"x":9.5, "y":2.75}, - {"x":10.5, "y":2.75}, - {"x":11.5, "y":2.75}, - {"x":12.5, "y":2.75}, - {"x":13.5, "y":2.75, "w":1.5}, - {"x":15.25, "y":2.75}, - {"x":16.25, "y":2.75}, - {"x":17.25, "y":2.75}, - - {"x":0, "y":3.75, "w":1.75}, - {"x":1.75, "y":3.75}, - {"x":2.75, "y":3.75}, - {"x":3.75, "y":3.75}, - {"x":4.75, "y":3.75}, - {"x":5.75, "y":3.75}, - {"x":6.75, "y":3.75}, - {"x":7.75, "y":3.75}, - {"x":8.75, "y":3.75}, - {"x":9.75, "y":3.75}, - {"x":10.75, "y":3.75}, - {"x":11.75, "y":3.75}, - {"x":12.75, "y":3.75, "w":2.25}, - - {"x":0, "y":4.75, "w":1.25}, - {"x":1.25, "y":4.75}, - {"x":2.25, "y":4.75}, - {"x":3.25, "y":4.75}, - {"x":4.25, "y":4.75}, - {"x":5.25, "y":4.75}, - {"x":6.25, "y":4.75}, - {"x":7.25, "y":4.75}, - {"x":8.25, "y":4.75}, - {"x":9.25, "y":4.75}, - {"x":10.25, "y":4.75}, - {"x":11.25, "y":4.75}, - {"x":12.25, "y":4.75, "w":1.75}, - {"x":14, "y":4.75}, - {"x":16.25, "y":4.75}, - - {"x":0, "y":5.75, "w":1.25}, - {"x":1.25, "y":5.75, "w":1.25}, - {"x":2.5, "y":5.75, "w":1.25}, - {"x":3.75, "y":5.75, "w":2.5}, - {"x":6.25, "y":5.75}, - {"x":7.25, "y":5.75, "w":2.75}, - {"x":10, "y":5.75, "w":1.25}, - {"x":11.25, "y":5.75, "w":1.25}, - {"x":12.5, "y":5.75, "w":1.25}, - {"x":13.75, "y":5.75, "w":1.25}, - {"x":15.25, "y":5.75}, - {"x":16.25, "y":5.75}, - {"x":17.25, "y":5.75}, - - {"x":18.5, "y":0}, - {"x":18.5, "y":1} + {"x": 0, "y": 0.5}, + + {"x": 1.25, "y": 0.5}, + {"x": 2.25, "y": 0.5}, + {"x": 3.25, "y": 0.5}, + {"x": 4.25, "y": 0.5}, + + {"x": 5.5, "y": 0.5}, + {"x": 6.5, "y": 0.5}, + {"x": 7.5, "y": 0.5}, + {"x": 8.5, "y": 0.5}, + + {"x": 9.75, "y": 0.5}, + {"x": 10.75, "y": 0.5}, + {"x": 11.75, "y": 0.5}, + {"x": 12.75, "y": 0.5}, + + {"x": 14, "y": 0.5}, + + {"x": 15.25, "y": 0.5}, + {"x": 16.25, "y": 0.5}, + {"x": 17.25, "y": 0.5}, + + {"x": 0, "y": 1.75}, + {"x": 1, "y": 1.75}, + {"x": 2, "y": 1.75}, + {"x": 3, "y": 1.75}, + {"x": 4, "y": 1.75}, + {"x": 5, "y": 1.75}, + {"x": 6, "y": 1.75}, + {"x": 7, "y": 1.75}, + {"x": 8, "y": 1.75}, + {"x": 9, "y": 1.75}, + {"x": 10, "y": 1.75}, + {"x": 11, "y": 1.75}, + {"x": 12, "y": 1.75}, + {"x": 13, "y": 1.75}, + {"x": 14, "y": 1.75}, + + {"x": 15.25, "y": 1.75}, + {"x": 16.25, "y": 1.75}, + {"x": 17.25, "y": 1.75}, + + {"x": 0, "y": 2.75, "w": 1.5}, + {"x": 1.5, "y": 2.75}, + {"x": 2.5, "y": 2.75}, + {"x": 3.5, "y": 2.75}, + {"x": 4.5, "y": 2.75}, + {"x": 5.5, "y": 2.75}, + {"x": 6.5, "y": 2.75}, + {"x": 7.5, "y": 2.75}, + {"x": 8.5, "y": 2.75}, + {"x": 9.5, "y": 2.75}, + {"x": 10.5, "y": 2.75}, + {"x": 11.5, "y": 2.75}, + {"x": 12.5, "y": 2.75}, + {"x": 13.5, "y": 2.75, "w": 1.5}, + + {"x": 15.25, "y": 2.75}, + {"x": 16.25, "y": 2.75}, + {"x": 17.25, "y": 2.75}, + + {"x": 0, "y": 3.75, "w": 1.75}, + {"x": 1.75, "y": 3.75}, + {"x": 2.75, "y": 3.75}, + {"x": 3.75, "y": 3.75}, + {"x": 4.75, "y": 3.75}, + {"x": 5.75, "y": 3.75}, + {"x": 6.75, "y": 3.75}, + {"x": 7.75, "y": 3.75}, + {"x": 8.75, "y": 3.75}, + {"x": 9.75, "y": 3.75}, + {"x": 10.75, "y": 3.75}, + {"x": 11.75, "y": 3.75}, + {"x": 12.75, "y": 3.75, "w": 2.25}, + + {"x": 0, "y": 4.75, "w": 1.25}, + {"x": 1.25, "y": 4.75}, + {"x": 2.25, "y": 4.75}, + {"x": 3.25, "y": 4.75}, + {"x": 4.25, "y": 4.75}, + {"x": 5.25, "y": 4.75}, + {"x": 6.25, "y": 4.75}, + {"x": 7.25, "y": 4.75}, + {"x": 8.25, "y": 4.75}, + {"x": 9.25, "y": 4.75}, + {"x": 10.25, "y": 4.75}, + {"x": 11.25, "y": 4.75}, + {"x": 12.25, "y": 4.75, "w": 1.75}, + {"x": 14, "y": 4.75}, + + {"x": 16.25, "y": 4.75}, + + {"x": 0, "y": 5.75, "w": 1.25}, + {"x": 1.25, "y": 5.75, "w": 1.25}, + {"x": 2.5, "y": 5.75, "w": 1.25}, + {"x": 3.75, "y": 5.75}, + {"x": 4.75, "y": 5.75, "w": 1.5}, + {"x": 6.25, "y": 5.75}, + {"x": 7.25, "y": 5.75, "w": 2.75}, + {"x": 10, "y": 5.75, "w": 1.25}, + {"x": 11.25, "y": 5.75, "w": 1.25}, + {"x": 12.5, "y": 5.75, "w": 1.25}, + {"x": 13.75, "y": 5.75, "w": 1.25}, + + {"x": 15.25, "y": 5.75}, + {"x": 16.25, "y": 5.75}, + {"x": 17.25, "y": 5.75}, + + {"x": 18.5, "y": 0}, + {"x": 18.5, "y": 1} ] } } diff --git a/keyboards/ramonimbao/squishytkl/squishytkl.h b/keyboards/ramonimbao/squishytkl/squishytkl.h index 53d91c27ed8..204d497a577 100644 --- a/keyboards/ramonimbao/squishytkl/squishytkl.h +++ b/keyboards/ramonimbao/squishytkl/squishytkl.h @@ -30,106 +30,98 @@ #define ___ KC_NO #define LAYOUT_ansi( \ - k00, k01, k02, k03, k04, k10, k11, k12, k13, k20, k21, k22, k23, k24, k3k, k3l, k3m, \ - k85, k86, k87, k88, k89, k8a, k8b, k8c, k8d, k8e, k8f, k8g, k8h, k8i, k4k, k4l, k4m, \ - k95, k96, k97, k98, k99, k9a, k9b, k9c, k9d, k9e, k9f, k9g, k9h, k9j, k5k, k5l, k5m, \ - ka5, ka6, ka7, ka8, ka9, kaa, kab, kac, kad, kae, kaf, kag, kai, \ - kb5, kb7, kb8, kb9, kba, kbb, kbc, kbd, kbe, kbf, kbg, kbi, k6l, \ - kc5, kc6, kc7, kcd, kcf, kcg, kch, kci, k7k, k7l, k7m \ + k00, k01, k02, k03, k04, k10, k11, k12, k13, k20, k21, k22, k23, k24, k3K, k3L, k3M, \ + k85, k86, k87, k88, k89, k8A, k8B, k8C, k8D, k8E, k8F, k8G, k8H, k8I, k4K, k4L, k4M, \ + k95, k96, k97, k98, k99, k9A, k9B, k9C, k9D, k9E, k9F, k9G, k9H, k9J, k5K, k5L, k5M, \ + kA5, kA6, kA7, kA8, kA9, kAA, kAB, kAC, kAD, kAE, kAF, kAG, kAI, \ + kB5, kB7, kB8, kB9, kBA, kBB, kBC, kBD, kBE, kBF, kBG, kBI, k6O, \ + kC5, kC6, kC7, kCD, kCF, kCG, kCI, kCJ, k7N, k7O, k7P \ ) { \ - /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 */ \ - /* 0 1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p */ \ - /* 0 | 0 */ { k00, k01, k02, k03, k04, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___ }, \ - /* 1 | 1 */ { k10, k11, k12, k13, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___ }, \ - /* 2 | 2 */ { k20, k21, k22, k23, k24, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___ }, \ - /* 3 | 3 */ { ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, k3k, k3l, k3m, ___, ___, ___ }, \ - /* 4 | 4 */ { ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, k4k, k4l, k4m, ___, ___, ___ }, \ - /* 5 | 5 */ { ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, k5k, k5l, k5m, ___, ___, ___ }, \ - /* 6 | 6 */ { ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, k6l, ___ }, \ - /* 7 | 7 */ { ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, k7k, k7l, k7m }, \ - /* 8 | 8 */ { ___, ___, ___, ___, ___, k85, k86, k87, k88, k89, k8a, k8b, k8c, k8d, k8e, k8f, k8g, k8h, k8i, ___, ___, ___, ___, ___, ___, ___ }, \ - /* 9 | 9 */ { ___, ___, ___, ___, ___, k95, k96, k97, k98, k99, k9a, k9b, k9c, k9d, k9e, k9f, k9g, k9h, ___, k9j, ___, ___, ___, ___, ___, ___ }, \ - /* 10 | a */ { ___, ___, ___, ___, ___, ka5, ka6, ka7, ka8, ka9, kaa, kab, kac, kad, kae, kaf, kag, ___, kai, ___, ___, ___, ___, ___, ___, ___ }, \ - /* 11 | b */ { ___, ___, ___, ___, ___, kb5, ___, kb7, kb8, kb9, kba, kbb, kbc, kbd, kbe, kbf, kbg, ___, kbi, ___, ___, ___, ___, ___, ___, ___ }, \ - /* 12 | c */ { ___, ___, ___, ___, ___, kc5, kc6, kc7, ___, ___, ___, ___, ___, kcd, ___, kcf, kcg, ___, kch, kci, ___, ___, ___, ___, ___, ___ }, \ - /* 13 | c */ { ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___ }, \ + { k00, k01, k02, k03, k04, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___ }, \ + { k10, k11, k12, k13, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___ }, \ + { k20, k21, k22, k23, k24, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___ }, \ + { ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, k3K, k3L, k3M, ___, ___, ___ }, \ + { ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, k4K, k4L, k4M, ___, ___, ___ }, \ + { ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, k5K, k5L, k5M, ___, ___, ___ }, \ + { ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, k6O, ___ }, \ + { ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, k7N, k7O, k7P }, \ + { ___, ___, ___, ___, ___, k85, k86, k87, k88, k89, k8A, k8B, k8C, k8D, k8E, k8F, k8G, k8H, k8I, ___, ___, ___, ___, ___, ___, ___ }, \ + { ___, ___, ___, ___, ___, k95, k96, k97, k98, k99, k9A, k9B, k9C, k9D, k9E, k9F, k9G, k9H, ___, k9J, ___, ___, ___, ___, ___, ___ }, \ + { ___, ___, ___, ___, ___, kA5, kA6, kA7, kA8, kA9, kAA, kAB, kAC, kAD, kAE, kAF, kAG, ___, kAI, ___, ___, ___, ___, ___, ___, ___ }, \ + { ___, ___, ___, ___, ___, kB5, ___, kB7, kB8, kB9, kBA, kBB, kBC, kBD, kBE, kBF, kBG, ___, kBI, ___, ___, ___, ___, ___, ___, ___ }, \ + { ___, ___, ___, ___, ___, kC5, kC6, kC7, ___, ___, ___, ___, ___, kCD, ___, kCF, kCG, ___, kCI, kCJ, ___, ___, ___, ___, ___, ___ }, \ + { ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___ } \ } #define LAYOUT_iso( \ - k00, k01, k02, k03, k04, k10, k11, k12, k13, k20, k21, k22, k23, k24, k3k, k3l, k3m, \ - k85, k86, k87, k88, k89, k8a, k8b, k8c, k8d, k8e, k8f, k8g, k8h, k8i, k4k, k4l, k4m, \ - k95, k96, k97, k98, k99, k9a, k9b, k9c, k9d, k9e, k9f, k9g, k9h, k5k, k5l, k5m, \ - ka5, ka6, ka7, ka8, ka9, kaa, kab, kac, kad, kae, kaf, kag, kai, k9j, \ - kb5, kb6, kb7, kb8, kb9, kba, kbb, kbc, kbd, kbe, kbf, kbg, kbi, k6l, \ - kc5, kc6, kc7, kcd, kcf, kcg, kch, kci, k7k, k7l, k7m \ + k00, k01, k02, k03, k04, k10, k11, k12, k13, k20, k21, k22, k23, k24, k3K, k3L, k3M, \ + k85, k86, k87, k88, k89, k8A, k8B, k8C, k8D, k8E, k8F, k8G, k8H, k8I, k4K, k4L, k4M, \ + k95, k96, k97, k98, k99, k9A, k9B, k9C, k9D, k9E, k9F, k9G, k9H, k5K, k5L, k5M, \ + kA5, kA6, kA7, kA8, kA9, kAA, kAB, kAC, kAD, kAE, kAF, kAG, kAI, k9J, \ + kB5, kB6, kB7, kB8, kB9, kBA, kBB, kBC, kBD, kBE, kBF, kBG, kBI, k6O, \ + kC5, kC6, kC7, kCD, kCF, kCG, kCI, kCJ, k7N, k7O, k7P \ ) { \ - /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 */ \ - /* 0 1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p */ \ - /* 0 | 0 */ { k00, k01, k02, k03, k04, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___ }, \ - /* 1 | 1 */ { k10, k11, k12, k13, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___ }, \ - /* 2 | 2 */ { k20, k21, k22, k23, k24, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___ }, \ - /* 3 | 3 */ { ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, k3k, k3l, k3m, ___, ___, ___ }, \ - /* 4 | 4 */ { ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, k4k, k4l, k4m, ___, ___, ___ }, \ - /* 5 | 5 */ { ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, k5k, k5l, k5m, ___, ___, ___ }, \ - /* 6 | 6 */ { ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, k6l, ___ }, \ - /* 7 | 7 */ { ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, k7k, k7l, k7m }, \ - /* 8 | 8 */ { ___, ___, ___, ___, ___, k85, k86, k87, k88, k89, k8a, k8b, k8c, k8d, k8e, k8f, k8g, k8h, k8i, ___, ___, ___, ___, ___, ___, ___ }, \ - /* 9 | 9 */ { ___, ___, ___, ___, ___, k95, k96, k97, k98, k99, k9a, k9b, k9c, k9d, k9e, k9f, k9g, k9h, ___, k9j, ___, ___, ___, ___, ___, ___ }, \ - /* 10 | a */ { ___, ___, ___, ___, ___, ka5, ka6, ka7, ka8, ka9, kaa, kab, kac, kad, kae, kaf, kag, ___, kai, ___, ___, ___, ___, ___, ___, ___ }, \ - /* 11 | b */ { ___, ___, ___, ___, ___, kb5, kb6, kb7, kb8, kb9, kba, kbb, kbc, kbd, kbe, kbf, kbg, ___, kbi, ___, ___, ___, ___, ___, ___, ___ }, \ - /* 12 | c */ { ___, ___, ___, ___, ___, kc5, kc6, kc7, ___, ___, ___, ___, ___, kcd, ___, kcf, kcg, ___, kch, kci, ___, ___, ___, ___, ___, ___ }, \ - /* 13 | c */ { ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___ }, \ + { k00, k01, k02, k03, k04, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___ }, \ + { k10, k11, k12, k13, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___ }, \ + { k20, k21, k22, k23, k24, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___ }, \ + { ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, k3K, k3L, k3M, ___, ___, ___ }, \ + { ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, k4K, k4L, k4M, ___, ___, ___ }, \ + { ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, k5K, k5L, k5M, ___, ___, ___ }, \ + { ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, k6O, ___ }, \ + { ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, k7N, k7O, k7P }, \ + { ___, ___, ___, ___, ___, k85, k86, k87, k88, k89, k8A, k8B, k8C, k8D, k8E, k8F, k8G, k8H, k8I, ___, ___, ___, ___, ___, ___, ___ }, \ + { ___, ___, ___, ___, ___, k95, k96, k97, k98, k99, k9A, k9B, k9C, k9D, k9E, k9F, k9G, k9H, ___, k9J, ___, ___, ___, ___, ___, ___ }, \ + { ___, ___, ___, ___, ___, kA5, kA6, kA7, kA8, kA9, kAA, kAB, kAC, kAD, kAE, kAF, kAG, ___, kAI, ___, ___, ___, ___, ___, ___, ___ }, \ + { ___, ___, ___, ___, ___, kB5, kB6, kB7, kB8, kB9, kBA, kBB, kBC, kBD, kBE, kBF, kBG, ___, kBI, ___, ___, ___, ___, ___, ___, ___ }, \ + { ___, ___, ___, ___, ___, kC5, kC6, kC7, ___, ___, ___, ___, ___, kCD, ___, kCF, kCG, ___, kCI, kCJ, ___, ___, ___, ___, ___, ___ }, \ + { ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___ } \ } #define LAYOUT_jis( \ - k00, k01, k02, k03, k04, k10, k11, k12, k13, k20, k21, k22, k23, k24, k3k, k3l, k3m, \ - k85, k86, k87, k88, k89, k8a, k8b, k8c, k8d, k8e, k8f, k8g, k8h, k8i, k8j, k4k, k4l, k4m, \ - k95, k96, k97, k98, k99, k9a, k9b, k9c, k9d, k9e, k9f, k9g, k9h, k5k, k5l, k5m, \ - ka5, ka6, ka7, ka8, ka9, kaa, kab, kac, kad, kae, kaf, kag, kai, k9j, \ - kb5, kb7, kb8, kb9, kba, kbb, kbc, kbd, kbe, kbf, kbg, kbi, kbj, k6l, \ - kc5, kc6, kc7, kc8, kc9, kcd, kce, kcf, kcg, kch, kci, k7k, k7l, k7m \ + k00, k01, k02, k03, k04, k10, k11, k12, k13, k20, k21, k22, k23, k24, k3K, k3L, k3M, \ + k85, k86, k87, k88, k89, k8A, k8B, k8C, k8D, k8E, k8F, k8G, k8H, k8I, k8J, k4K, k4L, k4M, \ + k95, k96, k97, k98, k99, k9A, k9B, k9C, k9D, k9E, k9F, k9G, k9H, k5K, k5L, k5M, \ + kA5, kA6, kA7, kA8, kA9, kAA, kAB, kAC, kAD, kAE, kAF, kAG, kAI, k9J, \ + kB5, kB7, kB8, kB9, kBA, kBB, kBC, kBD, kBE, kBF, kBG, kBI, kBJ, k6O, \ + kC5, kC6, kC7, kC8, kC9, kCD, kCE, kCF, kCG, kCI, kCJ, k7N, k7O, k7P \ ) { \ - /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 */ \ - /* 0 1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p */ \ - /* 0 | 0 */ { k00, k01, k02, k03, k04, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___ }, \ - /* 1 | 1 */ { k10, k11, k12, k13, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___ }, \ - /* 2 | 2 */ { k20, k21, k22, k23, k24, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___ }, \ - /* 3 | 3 */ { ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, k3k, k3l, k3m, ___, ___, ___ }, \ - /* 4 | 4 */ { ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, k4k, k4l, k4m, ___, ___, ___ }, \ - /* 5 | 5 */ { ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, k5k, k5l, k5m, ___, ___, ___ }, \ - /* 6 | 6 */ { ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, k6l, ___ }, \ - /* 7 | 7 */ { ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, k7k, k7l, k7m }, \ - /* 8 | 8 */ { ___, ___, ___, ___, ___, k85, k86, k87, k88, k89, k8a, k8b, k8c, k8d, k8e, k8f, k8g, k8h, k8i, k8j, ___, ___, ___, ___, ___, ___ }, \ - /* 9 | 9 */ { ___, ___, ___, ___, ___, k95, k96, k97, k98, k99, k9a, k9b, k9c, k9d, k9e, k9f, k9g, k9h, ___, k9j, ___, ___, ___, ___, ___, ___ }, \ - /* 10 | a */ { ___, ___, ___, ___, ___, ka5, ka6, ka7, ka8, ka9, kaa, kab, kac, kad, kae, kaf, kag, ___, kai, ___, ___, ___, ___, ___, ___, ___ }, \ - /* 11 | b */ { ___, ___, ___, ___, ___, kb5, ___, kb7, kb8, kb9, kba, kbb, kbc, kbd, kbe, kbf, kbg, ___, kbi, kbj, ___, ___, ___, ___, ___, ___ }, \ - /* 12 | c */ { ___, ___, ___, ___, ___, kc5, kc6, kc7, kc8, kc9, ___, ___, ___, kcd, kce, kcf, kcg, ___, kch, kci, ___, ___, ___, ___, ___, ___ }, \ - /* 13 | c */ { ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___ }, \ + { k00, k01, k02, k03, k04, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___ }, \ + { k10, k11, k12, k13, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___ }, \ + { k20, k21, k22, k23, k24, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___ }, \ + { ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, k3K, k3L, k3M, ___, ___, ___ }, \ + { ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, k4K, k4L, k4M, ___, ___, ___ }, \ + { ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, k5K, k5L, k5M, ___, ___, ___ }, \ + { ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, k6O, ___ }, \ + { ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, k7N, k7O, k7P }, \ + { ___, ___, ___, ___, ___, k85, k86, k87, k88, k89, k8A, k8B, k8C, k8D, k8E, k8F, k8G, k8H, k8I, k8J, ___, ___, ___, ___, ___, ___ }, \ + { ___, ___, ___, ___, ___, k95, k96, k97, k98, k99, k9A, k9B, k9C, k9D, k9E, k9F, k9G, k9H, ___, k9J, ___, ___, ___, ___, ___, ___ }, \ + { ___, ___, ___, ___, ___, kA5, kA6, kA7, kA8, kA9, kAA, kAB, kAC, kAD, kAE, kAF, kAG, ___, kAI, ___, ___, ___, ___, ___, ___, ___ }, \ + { ___, ___, ___, ___, ___, kB5, ___, kB7, kB8, kB9, kBA, kBB, kBC, kBD, kBE, kBF, kBG, ___, kBI, kBJ, ___, ___, ___, ___, ___, ___ }, \ + { ___, ___, ___, ___, ___, kC5, kC6, kC7, kC8, kC9, ___, ___, ___, kCD, kCE, kCF, kCG, ___, kCI, kCJ, ___, ___, ___, ___, ___, ___ }, \ + { ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___ } \ } #define LAYOUT_all( \ - k00, k01, k02, k03, k04, k10, k11, k12, k13, k20, k21, k22, k23, k24, k3k, k3l, k3m, \ - k85, k86, k87, k88, k89, k8a, k8b, k8c, k8d, k8e, k8f, k8g, k8h, k8i, k8j, k4k, k4l, k4m, \ - k95, k96, k97, k98, k99, k9a, k9b, k9c, k9d, k9e, k9f, k9g, k9h, k9j, k5k, k5l, k5m, \ - ka5, ka6, ka7, ka8, ka9, kaa, kab, kac, kad, kae, kaf, kag, kai, \ - kb5, kb6, kb7, kb8, kb9, kba, kbb, kbc, kbd, kbe, kbf, kbg, kbi, kbj, k6l, \ - kc5, kc6, kc7, kc8, kc9, kcd, kce, kcf, kcg, kch, kci, k7k, k7l, k7m, \ - kc0, kc1 \ + k00, k01, k02, k03, k04, k10, k11, k12, k13, k20, k21, k22, k23, k24, k3K, k3L, k3M, \ + k85, k86, k87, k88, k89, k8A, k8B, k8C, k8D, k8E, k8F, k8G, k8H, k8I, k8J, k4K, k4L, k4M, \ + k95, k96, k97, k98, k99, k9A, k9B, k9C, k9D, k9E, k9F, k9G, k9H, k9J, k5K, k5L, k5M, \ + kA5, kA6, kA7, kA8, kA9, kAA, kAB, kAC, kAD, kAE, kAF, kAG, kAI, \ + kB5, kB6, kB7, kB8, kB9, kBA, kBB, kBC, kBD, kBE, kBF, kBG, kBI, kBJ, k6O, \ + kC5, kC6, kC7, kC8, kC9, kCD, kCE, kCF, kCG, kCI, kCJ, k7N, k7O, k7P, \ + kD0, kD1 \ ) { \ - /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 */ \ - /* 0 1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p */ \ - /* 0 | 0 */ { k00, k01, k02, k03, k04, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___ }, \ - /* 1 | 1 */ { k10, k11, k12, k13, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___ }, \ - /* 2 | 2 */ { k20, k21, k22, k23, k24, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___ }, \ - /* 3 | 3 */ { ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, k3k, k3l, k3m, ___, ___, ___ }, \ - /* 4 | 4 */ { ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, k4k, k4l, k4m, ___, ___, ___ }, \ - /* 5 | 5 */ { ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, k5k, k5l, k5m, ___, ___, ___ }, \ - /* 6 | 6 */ { ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, k6l, ___ }, \ - /* 7 | 7 */ { ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, k7k, k7l, k7m }, \ - /* 8 | 8 */ { ___, ___, ___, ___, ___, k85, k86, k87, k88, k89, k8a, k8b, k8c, k8d, k8e, k8f, k8g, k8h, k8i, k8j, ___, ___, ___, ___, ___, ___ }, \ - /* 9 | 9 */ { ___, ___, ___, ___, ___, k95, k96, k97, k98, k99, k9a, k9b, k9c, k9d, k9e, k9f, k9g, k9h, ___, k9j, ___, ___, ___, ___, ___, ___ }, \ - /* 10 | a */ { ___, ___, ___, ___, ___, ka5, ka6, ka7, ka8, ka9, kaa, kab, kac, kad, kae, kaf, kag, ___, kai, ___, ___, ___, ___, ___, ___, ___ }, \ - /* 11 | b */ { ___, ___, ___, ___, ___, kb5, kb6, kb7, kb8, kb9, kba, kbb, kbc, kbd, kbe, kbf, kbg, ___, kbi, kbj, ___, ___, ___, ___, ___, ___ }, \ - /* 12 | c */ { ___, ___, ___, ___, ___, kc5, kc6, kc7, kc8, kc9, ___, ___, ___, kcd, kce, kcf, kcg, ___, kch, kci, ___, ___, ___, ___, ___, ___ }, \ - /* 13 | c */ { kc0, kc1, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___ }, \ + { k00, k01, k02, k03, k04, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___ }, \ + { k10, k11, k12, k13, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___ }, \ + { k20, k21, k22, k23, k24, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___ }, \ + { ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, k3K, k3L, k3M, ___, ___, ___ }, \ + { ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, k4K, k4L, k4M, ___, ___, ___ }, \ + { ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, k5K, k5L, k5M, ___, ___, ___ }, \ + { ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, k6O, ___ }, \ + { ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, k7N, k7O, k7P }, \ + { ___, ___, ___, ___, ___, k85, k86, k87, k88, k89, k8A, k8B, k8C, k8D, k8E, k8F, k8G, k8H, k8I, k8J, ___, ___, ___, ___, ___, ___ }, \ + { ___, ___, ___, ___, ___, k95, k96, k97, k98, k99, k9A, k9B, k9C, k9D, k9E, k9F, k9G, k9H, ___, k9J, ___, ___, ___, ___, ___, ___ }, \ + { ___, ___, ___, ___, ___, kA5, kA6, kA7, kA8, kA9, kAA, kAB, kAC, kAD, kAE, kAF, kAG, ___, kAI, ___, ___, ___, ___, ___, ___, ___ }, \ + { ___, ___, ___, ___, ___, kB5, kB6, kB7, kB8, kB9, kBA, kBB, kBC, kBD, kBE, kBF, kBG, ___, kBI, kBJ, ___, ___, ___, ___, ___, ___ }, \ + { ___, ___, ___, ___, ___, kC5, kC6, kC7, kC8, kC9, ___, ___, ___, kCD, kCE, kCF, kCG, ___, kCI, kCJ, ___, ___, ___, ___, ___, ___ }, \ + { kD0, kD1, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___ } \ } diff --git a/keyboards/rart/rart67/rules.mk b/keyboards/rart/rart67/rules.mk index cfa8f85e4e0..38eabd36706 100644 --- a/keyboards/rart/rart67/rules.mk +++ b/keyboards/rart/rart67/rules.mk @@ -18,5 +18,4 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = yes # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output diff --git a/keyboards/rart/rart67m/config.h b/keyboards/rart/rart67m/config.h new file mode 100644 index 00000000000..02ee4817d9d --- /dev/null +++ b/keyboards/rart/rart67m/config.h @@ -0,0 +1,57 @@ +/*Copyright 2021 Alabahuy + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 0x414C +#define PRODUCT_ID 0x6067 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Alabahuy +#define PRODUCT RART67M + +/* key matrix size */ +#define MATRIX_ROWS 8 +#define MATRIX_COLS 8 + +/* + * 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) + * + */ +/* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14*/ +#define MATRIX_ROW_PINS { D3, D2, D4, F6, B3, B4, B2, B5 } +#define MATRIX_COL_PINS { F4, F5, C6, F7, D7, B1, E6, B6 } +#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 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +#define OLED_TIMEOUT 600000 diff --git a/keyboards/rart/rart67m/info.json b/keyboards/rart/rart67m/info.json new file mode 100644 index 00000000000..a8398b041d8 --- /dev/null +++ b/keyboards/rart/rart67m/info.json @@ -0,0 +1,79 @@ +{ + "keyboard_name": "RART67M", + "url": "", + "maintainer": "Alabahuy", + "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, "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":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.5}, + {"x":1.5, "y":4, "w":1.5}, + {"x":3, "y":4, "w":7}, + {"x":10, "y":4, "w":1.5}, + {"x":11.5, "y":4, "w":1.5}, + {"x":13, "y":4}, + {"x":14, "y":4}, + {"x":15, "y":4} + ] + } + } +} diff --git a/keyboards/rart/rart67m/keymaps/default/keymap.c b/keyboards/rart/rart67m/keymaps/default/keymap.c new file mode 100644 index 00000000000..fcb55816c87 --- /dev/null +++ b/keyboards/rart/rart67m/keymaps/default/keymap.c @@ -0,0 +1,49 @@ +/* Copyright 2021 Alabahuy + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_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_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_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_all( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_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_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 + ), + + [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 + ), +}; \ No newline at end of file diff --git a/keyboards/rart/rart67m/keymaps/default/rules.mk b/keyboards/rart/rart67m/keymaps/default/rules.mk new file mode 100644 index 00000000000..7e2126efab6 --- /dev/null +++ b/keyboards/rart/rart67m/keymaps/default/rules.mk @@ -0,0 +1,2 @@ +WPM_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/rart/rart67m/keymaps/via/keymap.c b/keyboards/rart/rart67m/keymaps/via/keymap.c new file mode 100644 index 00000000000..fcb55816c87 --- /dev/null +++ b/keyboards/rart/rart67m/keymaps/via/keymap.c @@ -0,0 +1,49 @@ +/* Copyright 2021 Alabahuy + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_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_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_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_all( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_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_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 + ), + + [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 + ), +}; \ No newline at end of file diff --git a/keyboards/rart/rart67m/keymaps/via/rules.mk b/keyboards/rart/rart67m/keymaps/via/rules.mk new file mode 100644 index 00000000000..2a9abbb4dda --- /dev/null +++ b/keyboards/rart/rart67m/keymaps/via/rules.mk @@ -0,0 +1,3 @@ +WPM_ENABLE = yes +VIA_ENABLE = yes +LTO_ENABLE = yes \ No newline at end of file diff --git a/keyboards/rart/rart67m/rart67m.c b/keyboards/rart/rart67m/rart67m.c new file mode 100644 index 00000000000..6b2c6dffbbb --- /dev/null +++ b/keyboards/rart/rart67m/rart67m.c @@ -0,0 +1,134 @@ +/* Copyright 2021 Alabahuy + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 "rart67m.h" + +#define IDLE_FRAMES 5 +#define IDLE_SPEED 30 +#define TAP_FRAMES 2 +#define TAP_SPEED 40 +#define ANIM_FRAME_DURATION 200 +#define ANIM_SIZE 512 +#ifdef OLED_ENABLE +__attribute__((weak)) oled_rotation_t oled_init_user(oled_rotation_t rotation) { + return OLED_ROTATION_180; +} + +__attribute__((weak)) void oled_task_user(void) { +static uint32_t anim_timer = 0; +static uint32_t anim_sleep = 0; +static uint8_t current_idle_frame = 0; +static uint8_t current_tap_frame = 0; + + static const char PROGMEM idle[IDLE_FRAMES][ANIM_SIZE] = { + + { + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,64,64,32,32,32,32,16,16,16,16,16,8,8,4,4,4,8,48,64,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,100,130,2,2,2,2,2,1,0,0,0,0,128,128,0,0,0,0,0,0,0,0,0,128,0,48,48,0,192,193,193,194,4,8,16,32,64,128,0,0,0,128,128,128,128,64,64, + 64,64,32,32,32,32,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,2,2,2,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,56,4,3,0,0,0,0,0,0,0,12,12,12,13,1,0,64,160,33,34,18,17,17,17,9,8,8,8,8,4,4,8,8,16,16,16,16,16,17,15,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,128,128,128,64,64,64,64,64,32,32,32,32,32,16,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,3,2,2,1,1,1,1,1,1,2,2,4,4,8,8,8,8,8,7, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + }, + + { + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,64,64,32,32,32,32,16,16,16,16,16,8,8,4,4,4,8,48,64,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,100,130,2,2,2,2,2,1,0,0,0,0,128,128,0,0,0,0,0,0,0,0,0,128,0,48,48,0,192,193,193,194,4,8,16,32,64,128,0,0,0,128,128,128,128,64,64, + 64,64,32,32,32,32,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,2,2,2,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,56,4,3,0,0,0,0,0,0,0,12,12,12,13,1,0,64,160,33,34,18,17,17,17,9,8,8,8,8,4,4,8,8,16,16,16,16,16,17,15,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,128,128,128,64,64,64,64,64,32,32,32,32,32,16,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,3,2,2,1,1,1,1,1,1,2,2,4,4,8,8,8,8,8, + 7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + }, + + { + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,64,64,64,64,32,32,32,32,16,8,4,2,2,4,24,96,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,60,194,1,1,2,2,4,4,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,96,0,129,130,130,132,8,16,32,64,128,0,0,0,0,128,128,128,128,64,64,64,64,32, + 32,32,32,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,2,2,2,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,112,25,6,0,0,0,0,0,0,0,24,24,24,27,3,0,64,160,34,36,20,18,18,18,11,8,8,8,8,5,5,9,9,16,16,16,16,16,17,15,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,128,128,128,64,64,64,64,64,32,32,32,32,32,16,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,3,2,2,1,1,1,1,1,1,2,2,4,4,8,8,8,8,8,7,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + }, + + { + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,0,0,0,0,0,128,64,64,32,32,32,32,16,16,16,16,8,4,2,1,1,2,12,48,64,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,30,225,0,0,1,1,2,2,1,0,0,0,0,128,128,0,0,0,0,0,0,0,0,0,128,0,48,48,0,192,193,193,194,4,8,16,32,64,128,0,0,0,128,128,128,128,64,64, + 64,64,32,32,32,32,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,2,2,2,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,112,12,3,0,0,0,0,0,0,0,12,12,12,13,1,0,64,160,33,34,18,17,17,17,9,8,8,8,8,4,4,8,8,16,16,16,16,16,17,15,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,128,128,128,64,64,64,64,64,32,32,32,32,32,16,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,3,2,2,1,1,1,1,1,1,2,2,4,4,8,8,8,8,8, + 7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + }, + + { + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,64,64,32,32,32,32,16,16,16,16,8,8,4,2,2,2,4,56,64,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28,226,1,1,2,2,2,2,1,0,0,0,0,128,128,0,0,0,0,0,0,0,0,0,128,0,48,48,0,192,193,193,194,4,8,16,32,64,128,0,0,0,128,128,128,128,64,64,64,64, + 32,32,32,32,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,2,2,2,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,112,12,3,0,0,0,0,0,0,0,12,12,12,13,1,0,64,160,33,34,18,17,17,17,9,8,8,8,8,4,4,8,8,16,16,16,16,16,17,15,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,128,128,128,64,64,64,64,64,32,32,32,32,32,16,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,3,2,2,1,1,1,1,1,1,2,2,4,4,8,8,8,8,8,7,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + } + + }; + + static const char PROGMEM prep[][ANIM_SIZE] = { + + { + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,0,0,0,0,0,128,64,64,32,32,32,32,16,16,16,16,8,4,2,1,1,2,12,48,64,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,30,225,0,0,1,1,2,2,129,128,128,0,0,128,128,0,0,0,0,0,0,0,0,0,128,0,48,48,0,0,1,225,26,6,9,49,53,1,138,124,0,0,128,128,128,128,64,64, + 64,64,32,32,32,32,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,2,2,2,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,112,12,3,0,0,24,6,5,152,153,132,195,124,65,65,64,64,32,33,34,18,17,17,17,9,8,8,8,8,4,4,4,4,4,4,2,2,2,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,128,128,128,64,64,64,64,64,32,32,32,32,32,16,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,3,2,2,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + } + + }; + + static const char PROGMEM tap[TAP_FRAMES][ANIM_SIZE] = { + + { + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,0,0,0,0,0,128,64,64,32,32,32,32,16,16,16,16,8,4,2,1,1,2,12,48,64,128,0,0,0,0,0,0,0,248,248,248,248,0,0,0,0,0,128,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,30,225,0,0,1,1,2,2,129,128,128,0,0,128,128,0,0,0,0,0,0,0,0,0,128,0,48,48,0,0,1,1,2,4,8,16,32,67,135,7,1,0,184,188,190,159, + 95,95,79,76,32,32,32,32,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,2,2,2,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,112,12,3,0,0,24,6,5,152,153,132,67,124,65,65,64,64,32,33,34,18,17,17,17,9,8,8,8,8,4,4,8,8,16,16,16,16,16,17,15,1,61,124,252,252,252,252,252,60,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,128,128,128,64,64,64,64,64,32,32,32,32,32,16,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,3,2,2,1,1,1, + 1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + }, + + { + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,0,0,0,0,0,128,64,64,32,32,32,32,16,16,16,16,8,4,2,1,1,2,12,48,64,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,30,225,0,0,1,1,2,2,1,0,0,0,0,128,128,0,0,0,0,0,0,0,0,0,128,0,48,48,0,0,1,225,26,6,9,49,53,1,138,124,0,0,128,128,128,128,64,64,64,64,32, + 32,32,32,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,2,2,2,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,112,12,3,0,0,0,0,0,0,0,0,0,0,1,1,0,64,160,33,34,18,17,17,17,9,8,8,8,8,4,4,4,4,4,4,2,2,2,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,128,128,128,64,64,64,64,64,32,32,32,32,32,16,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,3,122,122,121,121,121,121,57,49,2,2,4,4,8,8,8,136,136,135,128, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + } + + }; + + 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() =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() > 0) { + + oled_on(); + + 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(); + } + } + } + +} + +#endif \ No newline at end of file diff --git a/keyboards/rart/rart67m/rart67m.h b/keyboards/rart/rart67m/rart67m.h new file mode 100644 index 00000000000..6547a1fa304 --- /dev/null +++ b/keyboards/rart/rart67m/rart67m.h @@ -0,0 +1,37 @@ +/* Copyright 2021 Alabahuy + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_all(\ + K00, K10, K01, K11, K02, K12, K03, K13, K04, K14, K05, K15, K06, K16, \ + K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, K35, K26, K36, \ + K40, K50, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, K46, K56, \ + K60, K70, K61, K71, K62, K72, K63, K73, K64, K74, K65, K75, K66, K76, \ + K07, K17, K27, K37, K47, K57, K67, 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 } \ +} diff --git a/keyboards/rart/rart67m/readme.md b/keyboards/rart/rart67m/readme.md new file mode 100644 index 00000000000..b8c8c112489 --- /dev/null +++ b/keyboards/rart/rart67m/readme.md @@ -0,0 +1,24 @@ +# RART67M + +![67M](https://user-images.githubusercontent.com/30220306/133432676-2722f5fe-4ddb-4ee4-aa6d-de70371b4a1c.png) + + +65% mechanical keyboard with arduino pro micro and oled + +* Keyboard Maintainer: Alabahuy +* Hardware Supported: Arduino Pro Micro, Oled +* Hardware Availability: Private GB + +Make example for this keyboard (after setting up your build environment): + + make rart/rart67m:default + +Flashing example for this keyboard: + + make rart/rart67m:default:flash + +## Bootloader + +To Enter the bootloader you can double click reset button on board when you flash the firmware + +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/rart/rart67m/rules.mk b/keyboards/rart/rart67m/rules.mk new file mode 100644 index 00000000000..d524f32847e --- /dev/null +++ b/keyboards/rart/rart67m/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 # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output +UNICODE_ENABLE = yes +OLED_ENABLE = yes +OLED_DRIVER = SSD1306 diff --git a/keyboards/rart/rart75/rules.mk b/keyboards/rart/rart75/rules.mk index 0de51dd57e2..528d54d5de5 100644 --- a/keyboards/rart/rart75/rules.mk +++ b/keyboards/rart/rart75/rules.mk @@ -18,6 +18,5 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = yes # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes diff --git a/keyboards/redox/rules.mk b/keyboards/redox/rules.mk index d87b5cf999d..51668fcebf7 100644 --- a/keyboards/redox/rules.mk +++ b/keyboards/redox/rules.mk @@ -17,7 +17,6 @@ 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 -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. diff --git a/keyboards/redox_media/config.h b/keyboards/redox_media/config.h index 70fb2aa1649..0d4ac16b5f4 100644 --- a/keyboards/redox_media/config.h +++ b/keyboards/redox_media/config.h @@ -24,7 +24,7 @@ along with this program. If not, see . #define PRODUCT_ID 0x0000 #define DEVICE_VER 0x0100 #define MANUFACTURER shiftux -#define PRODUCT The Redox Keyboard +#define PRODUCT Redox Media /* key matrix size */ // Rows are doubled-up @@ -57,4 +57,4 @@ along with this program. If not, see . #define ENCODERS_PAD_A { F4 } #define ENCODERS_PAD_B { F5 } -#define ENCODER_RESOLUTION 4 \ No newline at end of file +#define ENCODER_RESOLUTION 4 diff --git a/keyboards/redox_media/info.json b/keyboards/redox_media/info.json new file mode 100644 index 00000000000..e13487e791c --- /dev/null +++ b/keyboards/redox_media/info.json @@ -0,0 +1,89 @@ +{ + "keyboard_name": "Redox Media", + "url": "", + "maintainer": "shiftux", + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"Mute", "x":5.25, "y":0.15}, + {"label":"Play", "x":12.25, "y":0.15}, + {"label":"Next", "x":13.5, "y":0}, + + {"label":"_Nav || `", "x":0, "y":1.375, "w":1.25}, + {"label":"1", "x":1.25, "y":1.375}, + {"label":"2", "x":2.25, "y":1.125}, + {"label":"3", "x":3.25, "y":1}, + {"label":"4", "x":4.25, "y":1.125}, + {"label":"5", "x":5.25, "y":1.25}, + {"label":"6", "x":12.25, "y":1.25}, + {"label":"7", "x":13.25, "y":1.125}, + {"label":"8", "x":14.25, "y":1}, + {"label":"9", "x":15.25, "y":1.125}, + {"label":"0", "x":16.25, "y":1.375}, + {"label":"_Nav || -", "x":17.25, "y":1.375, "w":1.25}, + + {"label":"Tab", "x":0, "y":2.375, "w":1.25}, + {"label":"Q", "x":1.25, "y":2.375}, + {"label":"W", "x":2.25, "y":2.125}, + {"label":"E", "x":3.25, "y":2}, + {"label":"R", "x":4.25, "y":2.125}, + {"label":"T", "x":5.25, "y":2.25}, + {"label":"MO(_SYMB)", "x":6.25, "y":1.75}, + {"label":"MO(_SYMB)", "x":11.25, "y":1.75}, + {"label":"Y", "x":12.25, "y":2.25}, + {"label":"U", "x":13.25, "y":2.125}, + {"label":"I", "x":14.25, "y":2}, + {"label":"O", "x":15.25, "y":2.125}, + {"label":"P", "x":16.25, "y":2.375}, + {"label":"=", "x":17.25, "y":2.375, "w":1.25}, + + {"label":"Esc", "x":0, "y":3.375, "w":1.25}, + {"label":"A", "x":1.25, "y":3.375}, + {"label":"S", "x":2.25, "y":3.125}, + {"label":"D", "x":3.25, "y":3}, + {"label":"F", "x":4.25, "y":3.125}, + {"label":"G", "x":5.25, "y":3.25}, + {"label":"[", "x":6.25, "y":3}, + {"label":"]", "x":11.25, "y":3}, + {"label":"H", "x":12.25, "y":3.25}, + {"label":"J", "x":13.25, "y":3.125}, + {"label":"K", "x":14.25, "y":3}, + {"label":"L", "x":15.25, "y":3.125}, + {"label":";", "x":16.25, "y":3.375}, + {"label":"'", "x":17.25, "y":3.375, "w":1.25}, + + {"label":"Shift", "x":0, "y":4.375, "w":1.25}, + {"label":"Z", "x":1.25, "y":4.375}, + {"label":"X", "x":2.25, "y":4.125}, + {"label":"C", "x":3.25, "y":4}, + {"label":"V", "x":4.25, "y":4.125}, + {"label":"B", "x":5.25, "y":4.25}, + {"label":"_Adjust/Page Up", "x":6.75, "y":4.75}, + {"label":"Page Down", "x":7.75, "y":4.75}, + {"label":"Home", "x":9.75, "y":4.75}, + {"label":"_Adjust/End", "x":10.75, "y":4.75}, + {"label":"N", "x":12.25, "y":4.25}, + {"label":"M", "x":13.25, "y":4.125}, + {"label":",", "x":14.25, "y":4}, + {"label":",", "x":15.25, "y":4.125}, + {"label":"\\", "x":16.25, "y":4.375}, + {"label":"Shift", "x":17.25, "y":4.375, "w":1.25}, + + {"label":"LGUI", "x":0.25, "y":5.375}, + {"label":"P+", "x":1.25, "y":5.375}, + {"label":"P-", "x":2.25, "y":5.125}, + {"label":"LAlt || P*", "x":3.25, "y":5}, + {"label":"LCtrl || P/", "x":5.5, "y":6.25, "w":1.25}, + {"label":"Backspace", "x":6.75, "y":5.75, "h":1.5}, + {"label":"Delete", "x":7.75, "y":5.75, "h":1.5}, + {"label":"Enter", "x":9.75, "y":5.75, "h":1.5}, + {"label":"Space", "x":10.75, "y":5.75, "h":1.5}, + {"label":"RAlt", "x":11.75, "y":6.25, "w":1.25}, + {"label":"Left", "x":14.25, "y":5}, + {"label":"Down", "x":15.25, "y":5.125}, + {"label":"Up", "x":16.25, "y":5.375}, + {"label":"Right", "x":17.25, "y":5.375} + ] + } + } +} diff --git a/keyboards/redox_media/redox_media.h b/keyboards/redox_media/redox_media.h index 6188aa9a107..8cd13c63f2f 100644 --- a/keyboards/redox_media/redox_media.h +++ b/keyboards/redox_media/redox_media.h @@ -19,28 +19,51 @@ along with this program. If not, see . #include "quantum.h" +#define XXX KC_NO + +/* + * ┌───┐ ┌───┐┌───┐ + * │56 │ │B6 ││B5 │ + * └───┘ └───┘└───┘ + * ┌───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┐ + * │00 │01 │02 │03 │04 │05 │ │65 │64 │63 │62 │61 │60 │ + * ├───┼───┼───┼───┼───┼───┼───┐ ┌───┼───┼───┼───┼───┼───┼───┤ + * │10 │11 │12 │13 │14 │15 │06 │ │66 │75 │74 │73 │72 │71 │70 │ + * ├───┼───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┼───┤ + * │20 │21 │22 │23 │24 │25 │16 │ │76 │85 │84 │83 │82 │81 │80 │ + * ├───┼───┼───┼───┼───┼───┼───┘ └───┼───┼───┼───┼───┼───┼───┤ + * │30 │31 │32 │33 │34 │35 │ ┌───┬───┐ ┌───┬───┐ │95 │94 │93 │92 │91 │90 │ + * ├───┼───┼───┼───┼───┴───┘ │26 │36 │ │96 │86 │ └───┴───┼───┼───┼───┼───┤ + * │40 │41 │42 │43 │ ├───┼───┤ ├───┼───┤ │A3 │A2 │A1 │A0 │ + * └───┴───┴───┴───┘ ┌────┤ │ │ │ │ ├────┐ └───┴───┴───┴───┘ + * │44 │45 │46 │ │A6 │A5 │A4 │ + * └────┴───┴───┘ └───┴───┴────┘ + * + * + */ + // rows are doubled // clang-format off #define LAYOUT( \ - R5C6, R11C6, R11C5, \ - R0C0, R0C1, R0C2, R0C3, R0C4, R0C5, R6C5, R6C4, R6C3, R6C2, R6C1, R6C0, \ - R1C0, R1C1, R1C2, R1C3, R1C4, R1C5, R0C6, R6C6, R7C5, R7C4, R7C3, R7C2, R7C1, R7C0, \ - R2C0, R2C1, R2C2, R2C3, R2C4, R2C5, R1C6, R7C6, R8C5, R8C4, R8C3, R8C2, R8C1, R8C0, \ - R3C0, R3C1, R3C2, R3C3, R3C4, R3C5, R2C6, R3C6, R9C6, R8C6, R9C5, R9C4, R9C3, R9C2, R9C1, R9C0, \ - R4C0, R4C1, R4C2, R4C3, R4C4, R4C5, R4C6, R10C6, R10C5, R10C4, R10C3, R10C2, R10C1, R10C0 \ + K56, KB6, KB5, \ + K00, K01, K02, K03, K04, K05, K65, K64, K63, K62, K61, K60, \ + K10, K11, K12, K13, K14, K15, K06, K66, K75, K74, K73, K72, K71, K70, \ + K20, K21, K22, K23, K24, K25, K16, K76, K85, K84, K83, K82, K81, K80, \ + K30, K31, K32, K33, K34, K35, K26, K36, K96, K86, K95, K94, K93, K92, K91, K90, \ + K40, K41, K42, K43, K44, K45, K46, KA6, KA5, KA4, KA3, KA2, KA1, KA0 \ ) \ { \ - { R0C0, R0C1, R0C2, R0C3, R0C4, R0C5, R0C6 }, \ - { R1C0, R1C1, R1C2, R1C3, R1C4, R1C5, R1C6 }, \ - { R2C0, R2C1, R2C2, R2C3, R2C4, R2C5, R2C6 }, \ - { R3C0, R3C1, R3C2, R3C3, R3C4, R3C5, R3C6 }, \ - { R4C0, R4C1, R4C2, R4C3, R4C4, R4C5, R4C6 }, \ - { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, R5C6 }, \ + { K00, K01, K02, K03, K04, K05, K06 }, \ + { K10, K11, K12, K13, K14, K15, K16 }, \ + { K20, K21, K22, K23, K24, K25, K26 }, \ + { K30, K31, K32, K33, K34, K35, K36 }, \ + { K40, K41, K42, K43, K44, K45, K46 }, \ + { XXX, XXX, XXX, XXX, XXX, XXX, K56 }, \ \ - { R6C0, R6C1, R6C2, R6C3, R6C4, R6C5, R6C6 }, \ - { R7C0, R7C1, R7C2, R7C3, R7C4, R7C5, R7C6 }, \ - { R8C0, R8C1, R8C2, R8C3, R8C4, R8C5, R8C6 }, \ - { R9C0, R9C1, R9C2, R9C3, R9C4, R9C5, R9C6 }, \ - { R10C0, R10C1, R10C2, R10C3, R10C4, R10C5, R10C6 }, \ - { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, R11C5, R11C6 } \ + { K60, K61, K62, K63, K64, K65, K66 }, \ + { K70, K71, K72, K73, K74, K75, K76 }, \ + { K80, K81, K82, K83, K84, K85, K86 }, \ + { K90, K91, K92, K93, K94, K95, K96 }, \ + { KA0, KA1, KA2, KA3, KA4, KA5, KA6 }, \ + { XXX, XXX, XXX, XXX, XXX, KB5, KB6 } \ } diff --git a/keyboards/redox_w/keymaps/manna-harbour_miryoku/config.h b/keyboards/redox_w/keymaps/manna-harbour_miryoku/config.h index f426e2f79f0..ffc0d987987 100644 --- a/keyboards/redox_w/keymaps/manna-harbour_miryoku/config.h +++ b/keyboards/redox_w/keymaps/manna-harbour_miryoku/config.h @@ -1,6 +1,6 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/keyboards/redox_w/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/redox_w/keymaps/manna-harbour_miryoku/keymap.c index 1520387e888..7c5717a0fee 100644 --- a/keyboards/redox_w/keymaps/manna-harbour_miryoku/keymap.c +++ b/keyboards/redox_w/keymaps/manna-harbour_miryoku/keymap.c @@ -1,5 +1,5 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/keyboards/redox_w/rules.mk b/keyboards/redox_w/rules.mk index 441d0d09caa..56e3af62276 100644 --- a/keyboards/redox_w/rules.mk +++ b/keyboards/redox_w/rules.mk @@ -17,8 +17,6 @@ CUSTOM_MATRIX = yes # Remote matrix from the wireless bridge # SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend NKRO_ENABLE = yes # USB Nkey Rollover - not yet supported in LUFA # BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -MIDI_ENABLE = no # MIDI support -UNICODE_ENABLE = YES # Unicode # # project specific files SRC += matrix.c serial_uart.c diff --git a/keyboards/redscarf_i/rules.mk b/keyboards/redscarf_i/rules.mk index b77d7f8ffc8..98f297097bd 100644 --- a/keyboards/redscarf_i/rules.mk +++ b/keyboards/redscarf_i/rules.mk @@ -17,6 +17,5 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -UNICODE_ENABLE = no # Unicode LAYOUTS = ortho_5x4 ortho_6x4 numpad_5x4 numpad_6x4 diff --git a/keyboards/redscarf_iiplus/verb/config.h b/keyboards/redscarf_iiplus/verb/config.h index 6f63f73169d..c313b90a325 100755 --- a/keyboards/redscarf_iiplus/verb/config.h +++ b/keyboards/redscarf_iiplus/verb/config.h @@ -123,59 +123,6 @@ along with this program. If not, see . */ //#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_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) - -/* 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. diff --git a/keyboards/redscarf_iiplus/verb/rules.mk b/keyboards/redscarf_iiplus/verb/rules.mk index 12bc921ece2..b93c0914d56 100755 --- a/keyboards/redscarf_iiplus/verb/rules.mk +++ b/keyboards/redscarf_iiplus/verb/rules.mk @@ -18,7 +18,6 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = yes # USB Nkey Rollover BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output CUSTOM_MATRIX = yes diff --git a/keyboards/redscarf_iiplus/verc/config.h b/keyboards/redscarf_iiplus/verc/config.h index 6f63f73169d..c313b90a325 100755 --- a/keyboards/redscarf_iiplus/verc/config.h +++ b/keyboards/redscarf_iiplus/verc/config.h @@ -123,59 +123,6 @@ along with this program. If not, see . */ //#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_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) - -/* 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. diff --git a/keyboards/redscarf_iiplus/verc/rules.mk b/keyboards/redscarf_iiplus/verc/rules.mk index 1f8f5278cff..12301325d8a 100755 --- a/keyboards/redscarf_iiplus/verc/rules.mk +++ b/keyboards/redscarf_iiplus/verc/rules.mk @@ -18,7 +18,6 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = yes # USB Nkey Rollover BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output CUSTOM_MATRIX = yes diff --git a/keyboards/redscarf_iiplus/verd/config.h b/keyboards/redscarf_iiplus/verd/config.h index ca1ac9c2653..94b0e88539e 100644 --- a/keyboards/redscarf_iiplus/verd/config.h +++ b/keyboards/redscarf_iiplus/verd/config.h @@ -127,59 +127,6 @@ along with this program. If not, see . */ //#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_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) - -/* 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. diff --git a/keyboards/redscarf_iiplus/verd/rules.mk b/keyboards/redscarf_iiplus/verd/rules.mk index dc3d149a386..738782c6f72 100644 --- a/keyboards/redscarf_iiplus/verd/rules.mk +++ b/keyboards/redscarf_iiplus/verd/rules.mk @@ -18,7 +18,6 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = yes # USB Nkey Rollover BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output CUSTOM_MATRIX = yes diff --git a/keyboards/retro_75/config.h b/keyboards/retro_75/config.h index 78c10c3c347..6ab89d7617e 100644 --- a/keyboards/retro_75/config.h +++ b/keyboards/retro_75/config.h @@ -121,59 +121,6 @@ along with this program. If not, see . */ //#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. diff --git a/keyboards/reviung34/config.h b/keyboards/reviung34/config.h index 871e89c100a..0847678e86a 100755 --- a/keyboards/reviung34/config.h +++ b/keyboards/reviung34/config.h @@ -123,59 +123,6 @@ along with this program. If not, see . */ //#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_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) - -/* 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. diff --git a/keyboards/reviung34/rules.mk b/keyboards/reviung34/rules.mk index 12ee34dbf37..fa30b973ddd 100755 --- a/keyboards/reviung34/rules.mk +++ b/keyboards/reviung34/rules.mk @@ -18,5 +18,4 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = no # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output diff --git a/keyboards/reviung39/config.h b/keyboards/reviung39/config.h index 17cbf673410..098497bc9f4 100644 --- a/keyboards/reviung39/config.h +++ b/keyboards/reviung39/config.h @@ -123,59 +123,6 @@ along with this program. If not, see . */ //#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_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) - -/* 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. diff --git a/keyboards/reviung39/rules.mk b/keyboards/reviung39/rules.mk index 12ee34dbf37..fa30b973ddd 100644 --- a/keyboards/reviung39/rules.mk +++ b/keyboards/reviung39/rules.mk @@ -18,5 +18,4 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = no # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output diff --git a/keyboards/reviung41/config.h b/keyboards/reviung41/config.h index afcf9910845..967ca791d58 100644 --- a/keyboards/reviung41/config.h +++ b/keyboards/reviung41/config.h @@ -123,59 +123,6 @@ along with this program. If not, see . */ //#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. diff --git a/keyboards/reviung41/rules.mk b/keyboards/reviung41/rules.mk index 0f53969e286..b9377da068b 100644 --- a/keyboards/reviung41/rules.mk +++ b/keyboards/reviung41/rules.mk @@ -18,5 +18,4 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = no # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output diff --git a/keyboards/rgbkb/mun/rules.mk b/keyboards/rgbkb/mun/rules.mk index e81196f9ee7..e0832b92771 100644 --- a/keyboards/rgbkb/mun/rules.mk +++ b/keyboards/rgbkb/mun/rules.mk @@ -18,7 +18,6 @@ CONSOLE_ENABLE = yes # Console for debug COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work AUDIO_ENABLE = no # Audio output -UNICODE_ENABLE = no # Unicode WS2812_DRIVER = pwm RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. diff --git a/keyboards/rgbkb/sol/keymaps/default/readme.md b/keyboards/rgbkb/sol/keymaps/default/readme.md index 3f3e1afc5a4..3769d0981db 100644 --- a/keyboards/rgbkb/sol/keymaps/default/readme.md +++ b/keyboards/rgbkb/sol/keymaps/default/readme.md @@ -89,7 +89,6 @@ LED_MIRRORED = yes # Mirror LEDs across halves (enable DIP 1 on slave, RGB_MATRIX_ENABLE = no # Enable per-key coordinate based RGB effects. Do not enable with RGBlight (+8500) RGB_MATRIX_KEYPRESSES = no # Enable reactive per-key effects. Can be very laggy (+1500) RGBLIGHT_FULL_POWER = no # Allow maximum RGB brightness. Otherwise, limited to a safe level for a normal USB-A port -UNICODE_ENABLE = no # Unicode SWAP_HANDS_ENABLE = no # Enable one-hand typing OLED_ENABLE = no # Enable the OLED Driver (+5000) diff --git a/keyboards/rgbkb/sol/rev1/rules.mk b/keyboards/rgbkb/sol/rev1/rules.mk index 5c5850f907f..5b5b518b4f1 100644 --- a/keyboards/rgbkb/sol/rev1/rules.mk +++ b/keyboards/rgbkb/sol/rev1/rules.mk @@ -4,7 +4,6 @@ BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite MOUSEKEY_ENABLE = no # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control -UNICODE_ENABLE = no # Unicode keycodes NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work # Debug Options diff --git a/keyboards/rgbkb/sol/rev2/rules.mk b/keyboards/rgbkb/sol/rev2/rules.mk index e5d2a9dcc20..b81a6f2f015 100644 --- a/keyboards/rgbkb/sol/rev2/rules.mk +++ b/keyboards/rgbkb/sol/rev2/rules.mk @@ -4,7 +4,6 @@ BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite MOUSEKEY_ENABLE = no # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control -UNICODE_ENABLE = no # Unicode keycodes NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work # Debug Options diff --git a/keyboards/rgbkb/zen/rules.mk b/keyboards/rgbkb/zen/rules.mk index 99a61c0c068..9d6d2e12585 100644 --- a/keyboards/rgbkb/zen/rules.mk +++ b/keyboards/rgbkb/zen/rules.mk @@ -30,7 +30,6 @@ CONSOLE_ENABLE = no # Console for debug COMMAND_ENABLE = yes # 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 AUDIO_ENABLE = no # Audio output -UNICODE_ENABLE = no # Unicode SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend diff --git a/keyboards/rgbkb/zygomorph/keymaps/default/readme.md b/keyboards/rgbkb/zygomorph/keymaps/default/readme.md index 4f7b6451094..6a9c874b228 100644 --- a/keyboards/rgbkb/zygomorph/keymaps/default/readme.md +++ b/keyboards/rgbkb/zygomorph/keymaps/default/readme.md @@ -95,7 +95,6 @@ RGBLIGHT_ANIMATIONS = yes # LED animations RGB_MATRIX_ENABLE = no # Enable per-key coordinate based RGB effects. Do not enable with RGBlight (+8500) RGB_MATRIX_KEYPRESSES = no # Enable reactive per-key effects. Can be very laggy (+1500) RGBLIGHT_FULL_POWER = yes # Allow maximum RGB brightness. Otherwise, limited to a safe level for a normal USB-A port -UNICODE_ENABLE = no # Unicode SWAP_HANDS_ENABLE = no # Enable one-hand typing ENCODER_ENABLE = yes # Enable rotary encoder (+90) OLED_ENABLE = yes diff --git a/keyboards/rgbkb/zygomorph/keymaps/default/rules.mk b/keyboards/rgbkb/zygomorph/keymaps/default/rules.mk index ccceffe6a5e..d5a1561b957 100644 --- a/keyboards/rgbkb/zygomorph/keymaps/default/rules.mk +++ b/keyboards/rgbkb/zygomorph/keymaps/default/rules.mk @@ -14,7 +14,6 @@ RGBLIGHT_SPLIT_ENABLE = no # Split RGBLight Support RGB_MATRIX_ENABLE = no # Enable per-key coordinate based RGB effects. Do not enable with RGBlight RGB_MATRIX_KEYPRESSES = no # Enable reactive per-key effects. RGBLIGHT_FULL_POWER = yes # Allow maximum RGB brightness. Otherwise, limited to a safe level for a normal USB-A port -UNICODE_ENABLE = no # Unicode SWAP_HANDS_ENABLE = no # Enable one-hand typing ENCODER_ENABLE = yes # Enable rotary encoder OLED_ENABLE = no # Enable the OLED Driver diff --git a/keyboards/rgbkb/zygomorph/keymaps/default_oled/rules.mk b/keyboards/rgbkb/zygomorph/keymaps/default_oled/rules.mk index ce80fc0d5a9..265958f6d15 100644 --- a/keyboards/rgbkb/zygomorph/keymaps/default_oled/rules.mk +++ b/keyboards/rgbkb/zygomorph/keymaps/default_oled/rules.mk @@ -14,7 +14,6 @@ RGBLIGHT_SPLIT_ENABLE = no # Split RGBLight Support RGB_MATRIX_ENABLE = no # Enable per-key coordinate based RGB effects. Do not enable with RGBlight RGB_MATRIX_KEYPRESSES = no # Enable reactive per-key effects. RGBLIGHT_FULL_POWER = yes # Allow maximum RGB brightness. Otherwise, limited to a safe level for a normal USB-A port -UNICODE_ENABLE = no # Unicode SWAP_HANDS_ENABLE = no # Enable one-hand typing ENCODER_ENABLE = yes # Enable rotary encoder OLED_ENABLE = yes diff --git a/keyboards/rgbkb/zygomorph/rules.mk b/keyboards/rgbkb/zygomorph/rules.mk index 06dc5ff9508..3b9d69887ec 100644 --- a/keyboards/rgbkb/zygomorph/rules.mk +++ b/keyboards/rgbkb/zygomorph/rules.mk @@ -18,7 +18,6 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = no # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output RGB_MATRIX_DRIVER = WS2812 diff --git a/keyboards/rocketboard_16/info.json b/keyboards/rocketboard_16/info.json index 4d9c99bc6c9..1ff728bfb77 100644 --- a/keyboards/rocketboard_16/info.json +++ b/keyboards/rocketboard_16/info.json @@ -2,6 +2,9 @@ "keyboard_name": "Rocketboard-16", "url": "", "maintainer": "fl3tching101", + "layout_aliases": { + "LAYOUT_default": "LAYOUT" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/rocketboard_16/keymaps/default/keymap.c b/keyboards/rocketboard_16/keymaps/default/keymap.c index 050ab9f5b1b..761816cae55 100644 --- a/keyboards/rocketboard_16/keymaps/default/keymap.c +++ b/keyboards/rocketboard_16/keymaps/default/keymap.c @@ -33,19 +33,19 @@ enum custom_keycodes { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT_default( - RGB_MODE_FORWARD, KC_NUMLOCK, - KC_KP_7, KC_KP_8, KC_KP_9, KC_DELETE, - KC_KP_4, KC_KP_5, KC_KP_6, KC_END, - KC_KP_1, KC_KP_2, KC_KP_3, KC_F13, - KC_KP_0, MO(1), KC_KP_DOT, KC_KP_ENTER + [_BASE] = LAYOUT( + RGB_MOD, KC_NLCK, + KC_P7, KC_P8, KC_P9, KC_DEL, + KC_P4, KC_P5, KC_P6, KC_END, + KC_P1, KC_P2, KC_P3, KC_F13, + KC_P0, MO(1), KC_PDOT, KC_PENT ), - [_SPEC] = LAYOUT_default( - RGB_MODE_REVERSE, KC_AUDIO_MUTE, - KC_NO, KC_NO, KC_NO, KC_EXAM, - KC_NO, KC_NO, KC_NO, KC_NO, - RESET, RGB_TOG, RGB_SPI, RGB_SPD, - KC_NO, _______, KC_NO, KC_NO + [_SPEC] = LAYOUT( + RGB_RMOD, KC_MUTE, + KC_NO, KC_NO, KC_NO, KC_EXAM, + KC_NO, KC_NO, KC_NO, KC_NO, + RESET, RGB_TOG, RGB_SPI, RGB_SPD, + KC_NO, _______, KC_NO, KC_NO ) }; diff --git a/keyboards/rocketboard_16/keymaps/via/keymap.c b/keyboards/rocketboard_16/keymaps/via/keymap.c index 050ab9f5b1b..761816cae55 100644 --- a/keyboards/rocketboard_16/keymaps/via/keymap.c +++ b/keyboards/rocketboard_16/keymaps/via/keymap.c @@ -33,19 +33,19 @@ enum custom_keycodes { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT_default( - RGB_MODE_FORWARD, KC_NUMLOCK, - KC_KP_7, KC_KP_8, KC_KP_9, KC_DELETE, - KC_KP_4, KC_KP_5, KC_KP_6, KC_END, - KC_KP_1, KC_KP_2, KC_KP_3, KC_F13, - KC_KP_0, MO(1), KC_KP_DOT, KC_KP_ENTER + [_BASE] = LAYOUT( + RGB_MOD, KC_NLCK, + KC_P7, KC_P8, KC_P9, KC_DEL, + KC_P4, KC_P5, KC_P6, KC_END, + KC_P1, KC_P2, KC_P3, KC_F13, + KC_P0, MO(1), KC_PDOT, KC_PENT ), - [_SPEC] = LAYOUT_default( - RGB_MODE_REVERSE, KC_AUDIO_MUTE, - KC_NO, KC_NO, KC_NO, KC_EXAM, - KC_NO, KC_NO, KC_NO, KC_NO, - RESET, RGB_TOG, RGB_SPI, RGB_SPD, - KC_NO, _______, KC_NO, KC_NO + [_SPEC] = LAYOUT( + RGB_RMOD, KC_MUTE, + KC_NO, KC_NO, KC_NO, KC_EXAM, + KC_NO, KC_NO, KC_NO, KC_NO, + RESET, RGB_TOG, RGB_SPI, RGB_SPD, + KC_NO, _______, KC_NO, KC_NO ) }; diff --git a/keyboards/rocketboard_16/rocketboard_16.h b/keyboards/rocketboard_16/rocketboard_16.h index 87965906a4e..927e21f7e61 100644 --- a/keyboards/rocketboard_16/rocketboard_16.h +++ b/keyboards/rocketboard_16/rocketboard_16.h @@ -4,7 +4,7 @@ #define KNO KC_NO -#define LAYOUT_default( \ +#define LAYOUT( \ K00, K01, \ K02, K03, K04, K05, \ K06, K07, K08, K09, \ diff --git a/keyboards/rotor/config.h b/keyboards/rotor/config.h new file mode 100644 index 00000000000..9f3d8aa7d35 --- /dev/null +++ b/keyboards/rotor/config.h @@ -0,0 +1,39 @@ +/* Copyright 2021 Densus Design and Basekeys.jp + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x04D8 +#define PRODUCT_ID 0xE8BE +#define DEVICE_VER 0x0001 +#define MANUFACTURER Densus Design +#define PRODUCT Rotor + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 18 + +/* key matrix pins */ + +#define MATRIX_ROW_PINS { B7, B0, B1, B2, B3 } +#define MATRIX_COL_PINS { E6, F0, F1, F4, F5, F6, F7, C7, C6, B6, B5, B4, D7, D6, D4, D2, D5, D3 } + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + diff --git a/keyboards/rotor/info.json b/keyboards/rotor/info.json new file mode 100644 index 00000000000..a5c86ec4bd1 --- /dev/null +++ b/keyboards/rotor/info.json @@ -0,0 +1,10 @@ +{ + "keyboard_name": "Rotor", + "url": "https://klc-playground.com/", + "maintainer": "2Moons", + "layouts": { + "LAYOUT": { + "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"label":"Esc", "x":2.25, "y":0}, {"label":"!", "x":3.25, "y":0}, {"label":"@", "x":4.25, "y":0}, {"label":"#", "x":5.25, "y":0}, {"label":"$", "x":6.25, "y":0}, {"label":"%", "x":7.25, "y":0}, {"label":"^", "x":8.25, "y":0}, {"label":"&", "x":9.25, "y":0}, {"label":"*", "x":10.25, "y":0}, {"label":"(", "x":11.25, "y":0}, {"label":")", "x":12.25, "y":0}, {"label":"_", "x":13.25, "y":0}, {"label":"+", "x":14.25, "y":0}, {"label":"Backspace", "x":15.25, "y":0, "w":2}, {"label":"Home", "x":17.25, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"label":"Tab", "x":2.25, "y":1, "w":1.5}, {"label":"Q", "x":3.75, "y":1}, {"label":"W", "x":4.75, "y":1}, {"label":"E", "x":5.75, "y":1}, {"label":"R", "x":6.75, "y":1}, {"label":"T", "x":7.75, "y":1}, {"label":"Y", "x":8.75, "y":1}, {"label":"U", "x":9.75, "y":1}, {"label":"I", "x":10.75, "y":1}, {"label":"O", "x":11.75, "y":1}, {"label":"P", "x":12.75, "y":1}, {"label":"{", "x":13.75, "y":1}, {"label":"}", "x":14.75, "y":1}, {"label":"|", "x":15.75, "y":1, "w":1.5}, {"label":"PgUp", "x":17.25, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"label":"Caps Lock", "x":2.25, "y":2, "w":1.75}, {"label":"A", "x":4, "y":2}, {"label":"S", "x":5, "y":2}, {"label":"D", "x":6, "y":2}, {"label":"F", "x":7, "y":2}, {"label":"G", "x":8, "y":2}, {"label":"H", "x":9, "y":2}, {"label":"J", "x":10, "y":2}, {"label":"K", "x":11, "y":2}, {"label":"L", "x":12, "y":2}, {"label":":", "x":13, "y":2}, {"label":"\"", "x":14, "y":2}, {"label":"Enter", "x":15, "y":2, "w":2.25}, {"label":"PgDn", "x":17.25, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"label":"Shift", "x":2.25, "y":3, "w":2.25}, {"label":"Z", "x":4.5, "y":3}, {"label":"X", "x":5.5, "y":3}, {"label":"C", "x":6.5, "y":3}, {"label":"V", "x":7.5, "y":3}, {"label":"B", "x":8.5, "y":3}, {"label":"N", "x":9.5, "y":3}, {"label":"M", "x":10.5, "y":3}, {"label":"<", "x":11.5, "y":3}, {"label":">", "x":12.5, "y":3}, {"label":"?", "x":13.5, "y":3}, {"label":"Shift", "x":14.5, "y":3, "w":1.75}, {"label":"\u2191", "x":16.25, "y":3}, {"label":"End", "x":17.25, "y":3}, {"x":0, "y":4}, {"x":1, "y":4}, {"label":"Ctrl", "x":2.25, "y":4, "w":1.5}, {"x":3.75, "y":4}, {"label":"Alt", "x":4.75, "y":4, "w":1.5}, {"label":"7u", "x":6.25, "y":4, "w":7}, {"label":"Ctrl", "x":13.25, "y":4, "w":1.5}, {"label":"\u2190", "x":15.25, "y":4}, {"label":"\u2193", "x":16.25, "y":4}, {"label":"\u2192", "x":17.25, "y":4}] + } + } +} \ No newline at end of file diff --git a/keyboards/rotor/keymaps/default/keymap.c b/keyboards/rotor/keymaps/default/keymap.c new file mode 100644 index 00000000000..05c88d9669c --- /dev/null +++ b/keyboards/rotor/keymaps/default/keymap.c @@ -0,0 +1,49 @@ +/* Copyright 2021 Densus Design and Basekeys.jp + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _FN, + _MEDIA }; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT( + KC_F1, KC_F2, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, + KC_F3, KC_F4, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, + KC_F5, KC_F6, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, + KC_F7, KC_F8, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_F9, KC_F10, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_FN] = LAYOUT( + _______, _______, KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [_MEDIA] = LAYOUT( + _______, _______, KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/rotor/keymaps/default/rules.mk b/keyboards/rotor/keymaps/default/rules.mk new file mode 100644 index 00000000000..910bd64a596 --- /dev/null +++ b/keyboards/rotor/keymaps/default/rules.mk @@ -0,0 +1,2 @@ +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no \ No newline at end of file diff --git a/keyboards/rotor/keymaps/default_all/keymap.c b/keyboards/rotor/keymaps/default_all/keymap.c new file mode 100644 index 00000000000..57ea1b84694 --- /dev/null +++ b/keyboards/rotor/keymaps/default_all/keymap.c @@ -0,0 +1,49 @@ +/* Copyright 2021 Densus Design and Basekeys.jp + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _FN, + _MEDIA }; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_all( + KC_F1, KC_F2, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, + KC_F3, KC_F4, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, + KC_F5, KC_F6, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_ENT, KC_PGUP, + KC_F7, KC_F8, KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_F9, KC_F10, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RGUI, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_FN] = LAYOUT_all( + _______, _______, KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [_MEDIA] = LAYOUT_all( + _______, _______, KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/rotor/keymaps/default_all/rules.mk b/keyboards/rotor/keymaps/default_all/rules.mk new file mode 100644 index 00000000000..910bd64a596 --- /dev/null +++ b/keyboards/rotor/keymaps/default_all/rules.mk @@ -0,0 +1,2 @@ +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no \ No newline at end of file diff --git a/keyboards/rotor/keymaps/via/config.h b/keyboards/rotor/keymaps/via/config.h new file mode 100644 index 00000000000..18fc91cdae0 --- /dev/null +++ b/keyboards/rotor/keymaps/via/config.h @@ -0,0 +1,19 @@ +/* Copyright 2021 Densus Design and Basekeys.jp + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define DYNAMIC_KEYMAP_LAYER_COUNT 3 \ No newline at end of file diff --git a/keyboards/rotor/keymaps/via/keymap.c b/keyboards/rotor/keymaps/via/keymap.c new file mode 100644 index 00000000000..3860a50780e --- /dev/null +++ b/keyboards/rotor/keymaps/via/keymap.c @@ -0,0 +1,49 @@ +/* Copyright 2020 Swiftrax and Basekeys.com + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _FN, + _MEDIA }; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_all( + KC_F1, KC_F2, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, + KC_F3, KC_F4, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, + KC_F5, KC_F6, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_ENT, KC_PGUP, + KC_F7, KC_F8, KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_F9, KC_F10, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RGUI, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_FN] = LAYOUT_all( + _______, _______, KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [_MEDIA] = LAYOUT_all( + _______, _______, KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/rotor/keymaps/via/rules.mk b/keyboards/rotor/keymaps/via/rules.mk new file mode 100644 index 00000000000..32f462d06ca --- /dev/null +++ b/keyboards/rotor/keymaps/via/rules.mk @@ -0,0 +1,3 @@ +VIA_ENABLE = yes +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no \ No newline at end of file diff --git a/keyboards/rotor/readme.md b/keyboards/rotor/readme.md new file mode 100644 index 00000000000..2fe7f5e494a --- /dev/null +++ b/keyboards/rotor/readme.md @@ -0,0 +1,19 @@ +# Rotor + +![Rotor](https://i.imgur.com/NfWdlzF.png) + +A 75 percent keyboard + +* Keyboard Maintainer: [2moons](https://github.com/2moons-jp) +* Hardware Supported: Rotor PCB, ATMEGA32U4-MU +* Hardware Availability: [Website](https://klc-playground.com/) + +Make example for this keyboard (after setting up your build environment): + + make rotor:default + +To flash firmware onto this board, you'll need to bring the PCB into bootloader mode. To enter bootloader mode, press the reset button on the back of the PCB once. The reset button is located near the left side of the board near the TAB key. + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs) + +[Build guide](https://docs.google.com/document/d/1BWUkFYRJ3aB-AY9pEW-9av5j8VWKI2Hmt8xsCFQgDg0/edit) diff --git a/keyboards/rotor/rotor.c b/keyboards/rotor/rotor.c new file mode 100644 index 00000000000..2a21ed9b4ff --- /dev/null +++ b/keyboards/rotor/rotor.c @@ -0,0 +1,17 @@ +/* Copyright 2021 Densus Design and Basekeys.jp + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "rotor.h" diff --git a/keyboards/rotor/rotor.h b/keyboards/rotor/rotor.h new file mode 100644 index 00000000000..0a29bc2fe3d --- /dev/null +++ b/keyboards/rotor/rotor.h @@ -0,0 +1,58 @@ +/* Copyright 2021 Densus Design and Basekeys.jp + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include "quantum.h" + +#define XXX KC_NO//readabilty + +/* This a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0G, k0H, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1G, k1H, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2G, k2H, \ + k30, k31, k32, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, k3G, k3H, \ + k40, k41, k42, k43, k44, k48, k4D, k4E, k4G, k4H \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, XXX, k0G, k0H}, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, XXX, k1G, k1H}, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, XXX, XXX, k2G, k2H}, \ + { k30, k31, k32, XXX, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, XXX, k3G, k3H}, \ + { k40, k41, k42, k43, k44, XXX, XXX, XXX, k48, XXX, XXX, XXX, XXX, k4D, k4E, XXX, k4G, k4H} \ +} + +#define LAYOUT_all( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F, k0G, k0H, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1G, k1H, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, k2G, k2H, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, k3G, k3H, \ + k40, k41, k42, k43, k44, k46, k48, k4A, k4C, k4D, k4E, k4G, k4H \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F, k0G, k0H}, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, XXX, k1G, k1H}, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, XXX, k2G, k2H}, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, XXX, k3G, k3H}, \ + { k40, k41, k42, k43, k44, XXX, k46, XXX, k48, XXX, k4A, XXX, k4C, k4D, k4E, XXX, k4G, k4H} \ +} diff --git a/keyboards/rotor/rules.mk b/keyboards/rotor/rules.mk new file mode 100644 index 00000000000..6d598770a31 --- /dev/null +++ b/keyboards/rotor/rules.mk @@ -0,0 +1,21 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/runner3680/rules.mk b/keyboards/runner3680/rules.mk index 6c22480b1d5..783792f3e4c 100644 --- a/keyboards/runner3680/rules.mk +++ b/keyboards/runner3680/rules.mk @@ -18,7 +18,6 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = no # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output SPLIT_KEYBOARD = yes # Enables split keyboard support diff --git a/keyboards/ryanbaekr/rb86/config.h b/keyboards/ryanbaekr/rb86/config.h index 39955da1de7..ec93c2b3c57 100644 --- a/keyboards/ryanbaekr/rb86/config.h +++ b/keyboards/ryanbaekr/rb86/config.h @@ -91,60 +91,6 @@ along with this program. If not, see . */ //#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 - - /* disable these deprecated features by default */ #define NO_ACTION_MACRO #define NO_ACTION_FUNCTION diff --git a/keyboards/ryanbaekr/rb86/rules.mk b/keyboards/ryanbaekr/rb86/rules.mk index fb5c5c41296..20b467521e6 100644 --- a/keyboards/ryanbaekr/rb86/rules.mk +++ b/keyboards/ryanbaekr/rb86/rules.mk @@ -18,5 +18,4 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = no # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -MIDI_ENABLE = no # MIDI support AUDIO_ENABLE = no # Audio output diff --git a/keyboards/sam/sg81m/config.h b/keyboards/sam/sg81m/config.h index 5e1d042b6c0..a0dca892112 100644 --- a/keyboards/sam/sg81m/config.h +++ b/keyboards/sam/sg81m/config.h @@ -44,7 +44,7 @@ #define DIODE_DIRECTION COL2ROW -#define RGB_DI_PIN E6 //reserved pin for potential underglow rgb +#define RGB_DI_PIN E6 //reserved pin for potential underglow rgb #ifdef RGB_DI_PIN #define RGBLED_NUM 10 #define RGBLIGHT_HUE_STEP 8 @@ -65,6 +65,3 @@ // #define RGBLIGHT_EFFECT_RGB_TEST // #define RGBLIGHT_EFFECT_ALTERNATING #endif - -// generated by KBFirmware JSON to QMK Parser -// https://noroadsleft.github.io/kbf_qmk_converter/ diff --git a/keyboards/sam/sg81m/info.json b/keyboards/sam/sg81m/info.json index ae91bd66798..439d8562e9e 100644 --- a/keyboards/sam/sg81m/info.json +++ b/keyboards/sam/sg81m/info.json @@ -3,7 +3,7 @@ "url": "", "maintainer": "CMMS-Freather", "layouts": { - "LAYOUT": { + "LAYOUT_7u_space": { "layout": [ {"label":"K00 (F0,B7)", "x":0, "y":0}, {"label":"K01 (F0,B6)", "x":1, "y":0}, @@ -87,6 +87,94 @@ {"label":"K59 (F7,D3)", "x":16.5, "y":4.25}, {"label":"K5A (F7,D4)", "x":17.5, "y":4.25} ] + + }, + "LAYOUT_6_25u_space": { + "layout": [ + {"label":"K00 (F0,B7)", "x":0, "y":0}, + {"label":"K01 (F0,B6)", "x":1, "y":0}, + {"label":"K02 (F0,B5)", "x":2, "y":0}, + {"label":"K03 (F0,B4)", "x":3, "y":0}, + {"label":"K04 (F0,C7)", "x":4, "y":0}, + {"label":"K05 (F0,C6)", "x":5, "y":0}, + {"label":"K06 (F0,D0)", "x":6, "y":0}, + {"label":"K07 (F0,D1)", "x":7, "y":0}, + {"label":"K08 (F0,D2)", "x":8, "y":0}, + {"label":"K09 (F0,D3)", "x":9, "y":0}, + {"label":"K0A (F0,D4)", "x":10, "y":0}, + {"label":"K0B (F0,D5)", "x":11, "y":0}, + {"label":"K0C (F0,D6)", "x":12, "y":0}, + {"label":"K0D (F0,D7)", "x":13, "y":0, "w":2}, + {"label":"K2D (F4,D7)", "x":15.5, "y":0}, + {"label":"K3D (F5,D7)", "x":16.5, "y":0}, + {"label":"K4D (F6,D7)", "x":17.5, "y":0}, + + {"label":"K10 (F1,B7)", "x":0, "y":1.25, "w":1.5}, + {"label":"K11 (F1,B6)", "x":1.5, "y":1.25}, + {"label":"K12 (F1,B5)", "x":2.5, "y":1.25}, + {"label":"K13 (F1,B4)", "x":3.5, "y":1.25}, + {"label":"K14 (F1,C7)", "x":4.5, "y":1.25}, + {"label":"K15 (F1,C6)", "x":5.5, "y":1.25}, + {"label":"K16 (F1,D0)", "x":6.5, "y":1.25}, + {"label":"K17 (F1,D1)", "x":7.5, "y":1.25}, + {"label":"K18 (F1,D2)", "x":8.5, "y":1.25}, + {"label":"K19 (F1,D3)", "x":9.5, "y":1.25}, + {"label":"K1A (F1,D4)", "x":10.5, "y":1.25}, + {"label":"K1B (F1,D5)", "x":11.5, "y":1.25}, + {"label":"K1C (F1,D6)", "x":12.5, "y":1.25}, + {"label":"K1D (F1,D7)", "x":13.5, "y":1.25, "w":1.5}, + {"label":"K56 (F7,D0)", "x":15.5, "y":1.25}, + {"label":"K57 (F7,D1)", "x":16.5, "y":1.25}, + {"label":"K58 (F7,D2)", "x":17.5, "y":1.25}, + + {"label":"K20 (F4,B7)", "x":0, "y":2.25, "w":1.75}, + {"label":"K21 (F4,B6)", "x":1.75, "y":2.25}, + {"label":"K22 (F4,B5)", "x":2.75, "y":2.25}, + {"label":"K23 (F4,B4)", "x":3.75, "y":2.25}, + {"label":"K24 (F4,C7)", "x":4.75, "y":2.25}, + {"label":"K25 (F4,C6)", "x":5.75, "y":2.25}, + {"label":"K26 (F4,D0)", "x":6.75, "y":2.25}, + {"label":"K27 (F4,D1)", "x":7.75, "y":2.25}, + {"label":"K28 (F4,D2)", "x":8.75, "y":2.25}, + {"label":"K29 (F4,D3)", "x":9.75, "y":2.25}, + {"label":"K2A (F4,D4)", "x":10.75, "y":2.25}, + {"label":"K2B (F4,D5)", "x":11.75, "y":2.25}, + {"label":"K2C (F4,D6)", "x":12.75, "y":2.25, "w":2.25}, + {"label":"K53 (F7,B4)", "x":15.5, "y":2.25}, + {"label":"K54 (F7,C7)", "x":16.5, "y":2.25}, + {"label":"K55 (F7,C6)", "x":17.5, "y":2.25}, + + {"label":"K30 (F5,B7)", "x":0, "y":3.25, "w":2.25}, + {"label":"K31 (F5,B6)", "x":2.25, "y":3.25}, + {"label":"K32 (F5,B5)", "x":3.25, "y":3.25}, + {"label":"K33 (F5,B4)", "x":4.25, "y":3.25}, + {"label":"K34 (F5,C7)", "x":5.25, "y":3.25}, + {"label":"K35 (F5,C6)", "x":6.25, "y":3.25}, + {"label":"K36 (F5,D0)", "x":7.25, "y":3.25}, + {"label":"K37 (F5,D1)", "x":8.25, "y":3.25}, + {"label":"K38 (F5,D2)", "x":9.25, "y":3.25}, + {"label":"K39 (F5,D3)", "x":10.25, "y":3.25}, + {"label":"K3A (F5,D4)", "x":11.25, "y":3.25}, + {"label":"K3B (F5,D5)", "x":12.25, "y":3.25, "w":1.75}, + {"label":"K3C (F5,D6)", "x":14.25, "y":3.5}, + {"label":"K50 (F7,B7)", "x":15.5, "y":3.25}, + {"label":"K51 (F7,B6)", "x":16.5, "y":3.25}, + {"label":"K52 (F7,B5)", "x":17.5, "y":3.25}, + + {"label":"K40 (F6,B7)", "x":0, "y":4.25, "w":1.25}, + {"label":"K41 (F6,B6)", "x":1.25, "y":4.25, "w":1.25}, + {"label":"K42 (F6,B5)", "x":2.5, "y":4.25, "w":1.25}, + {"label":"K45 (F6,C6)", "x":3.75, "y":4.25, "w":6.25}, + {"label":"K47 (F6,D1)", "x":10, "y":4.25}, + {"label":"K48 (F6,D2)", "x":11, "y":4.25}, + {"label":"K49 (F6,D3)", "x":12, "y":4.25}, + {"label":"K4A (F6,D4)", "x":13.25, "y":4.5}, + {"label":"K4B (F6,D5)", "x":14.25, "y":4.5}, + {"label":"K4C (F6,D6)", "x":15.25, "y":4.5}, + {"label":"K59 (F7,D3)", "x":16.5, "y":4.25}, + {"label":"K5A (F7,D4)", "x":17.5, "y":4.25} + ] + } } } diff --git a/keyboards/sam/sg81m/sg81m.h b/keyboards/sam/sg81m/sg81m.h index 73e69e439cd..d128adf7464 100644 --- a/keyboards/sam/sg81m/sg81m.h +++ b/keyboards/sam/sg81m/sg81m.h @@ -18,7 +18,7 @@ #include "quantum.h" -#define LAYOUT( \ +#define LAYOUT_7u_space( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D, K3D, K4D, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K56, K57, K58, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K53, K54, K55, \ @@ -33,5 +33,19 @@ { K50, K51, K52, K53, K54, K55, K56, K57, K58, K59, K5A, KC_NO, KC_NO, KC_NO }, \ } -// generated by KBFirmware JSON to QMK Parser -// https://noroadsleft.github.io/kbf_qmk_converter/ +#define LAYOUT_6_25u_space( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D, K3D, K4D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K56, K57, K58, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K53, K54, K55, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K50, K51, K52, \ + K40, K41, K42, K45, K47, K48, K49, K4A, K4B, K4C, K59, K5A \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \ + { K40, K41, K42, KC_NO, KC_NO, K45, KC_NO, K47, K48, K49, K4A, K4B, K4C, K4D }, \ + { K50, K51, K52, K53, K54, K55, K56, K57, K58, K59, K5A, KC_NO, KC_NO, KC_NO }, \ +} + +#define LAYOUT LAYOUT_7u_space diff --git a/keyboards/sawnsprojects/krush/krush60/readme.md b/keyboards/sawnsprojects/krush/krush60/readme.md new file mode 100644 index 00000000000..515040f9044 --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush60/readme.md @@ -0,0 +1,25 @@ +# Krush60 + +A 60% keyboard sold in several variants. + +1. [Solder](solder/): 06/2021. Atmega32u4 soldered keyboard. Sold under the name "Krush60" with krush keyboard case. Compatible with some 60% case, Singa, Bakeneko. + + **Firmware files are SPECIFIC to each board. Firmware files from one, will not work on the other.** Please use the `.hex` or `.bin` appropriate for your board. + +* Keyboard Maintainer: [SawnsProjects](https://github.com/MaiTheSan) +* Hardware Supported: Krush60, SINGA, Bakeneko, 60% traymount case +* Hardware Availability: [Mechkey.store](https://mechkey.store/) + +Make examples for this keyboard (after setting up your build environment): + + make sawnsprojects/krush/krush60/solder:default + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `RESET` if it is available + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file diff --git a/keyboards/sawnsprojects/krush/krush60/solder/config.h b/keyboards/sawnsprojects/krush/krush60/solder/config.h new file mode 100644 index 00000000000..b15361ed147 --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush60/solder/config.h @@ -0,0 +1,60 @@ +/* Copyright 2021 SawnsProjects + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 0x5350 +#define PRODUCT_ID 0x6B32 +#define DEVICE_VER 0x0001 +#define MANUFACTURER SawnsProjects +#define PRODUCT Krush60 - Solder + +/* key matrix size */ +#define MATRIX_ROWS 10 +#define MATRIX_COLS 8 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { B1, B2, D1, D2, D4, D6, F6, F7, F5, F4 } +#define MATRIX_COL_PINS { C7, C6, B6, B5, B4, D7, D5, D3 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW +/* Caps Lock */ +#define LED_CAPS_LOCK_PIN F0 + +#define RGB_DI_PIN F1 +#ifdef RGB_DI_PIN + #define RGBLED_NUM 20 + #define RGBLIGHT_HUE_STEP 8 + #define RGBLIGHT_SAT_STEP 8 + #define RGBLIGHT_VAL_STEP 8 + #define RGBLIGHT_LIMIT_VAL 200 /* 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_EFFECT_BREATHING +#define RGBLIGHT_EFFECT_RAINBOW_MOOD +#define RGBLIGHT_EFFECT_RAINBOW_SWIRL +#define RGBLIGHT_EFFECT_SNAKE +#define RGBLIGHT_EFFECT_KNIGHT +#define RGBLIGHT_EFFECT_CHRISTMAS +#define RGBLIGHT_EFFECT_STATIC_GRADIENT +#define RGBLIGHT_EFFECT_RGB_TEST +#define RGBLIGHT_EFFECT_ALTERNATING +#define RGBLIGHT_EFFECT_TWINKLE +#endif \ No newline at end of file diff --git a/keyboards/sawnsprojects/krush/krush60/solder/info.json b/keyboards/sawnsprojects/krush/krush60/solder/info.json new file mode 100644 index 00000000000..884b768eb6d --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush60/solder/info.json @@ -0,0 +1,1274 @@ +{ + "keyboard_name": "Krush60 Solder", + "url": "", + "maintainer": "MaiTheSan", + "layouts": { + "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_7u_spc": { + "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.5}, + {"x":1.5, "y": 4}, + {"x":2.5, "y": 4, "w": 1.5}, + {"x":4, "y": 4, "w": 7}, + {"x":11, "y": 4}, + {"x":12, "y": 4}, + {"x":13, "y": 4}, + {"x":14, "y": 4} + ] + }, + "LAYOUT_60_ansi_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}, + {"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_split_spc": { + "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":2.25}, + {"x":6, "y":4, "w":1.25}, + {"x":7.25, "y":4, "w":2.75}, + {"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_split_bs_spc": { + "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":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":2.25}, + {"x":6, "y":4, "w":1.25}, + {"x":7.25, "y":4, "w":2.75}, + {"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_7u_spc": { + "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_ansi_split_bs_7u_spc": { + "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":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_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_arrow_split_spc": { + "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":2.25}, + {"x":6, "y":4, "w":1.25}, + {"x":7.25, "y":4, "w":2.75}, + {"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_spc": { + "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":2.25}, + {"x":6, "y":4, "w":1.25}, + {"x":7.25, "y":4, "w":2.75}, + {"x":10, "y": 4}, + {"x":11, "y": 4}, + {"x":12, "y": 4}, + {"x":13, "y": 4}, + {"x":14, "y": 4} + ] + }, + "LAYOUT_60_ansi_arrow_7u_spc": { + "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.5}, + {"x":1.5, "y": 4}, + {"x":2.5, "y": 4, "w": 1.5}, + {"x":4, "y": 4, "w": 7}, + {"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": 1.75}, + {"x": 14, "y": 3}, + + {"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_ansi_tsangan_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}, + {"x": 12.25, "y": 3, "w": 1.75}, + {"x": 14, "y": 3}, + + {"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_iso_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":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": 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":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_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}, + {"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":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":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_iso_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}, + {"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":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": 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":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_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, "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":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":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.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}, + ] + } + } +} diff --git a/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_all/keymap.c b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_all/keymap.c new file mode 100644 index 00000000000..b8b48194a69 --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_all/keymap.c @@ -0,0 +1,35 @@ +/* Copyright 2021 SawnsProjects + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_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_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_SLSH, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_all( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/sawnsprojects/krush/krush60/solder/keymaps/60_all/readme.md b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_all/readme.md new file mode 100644 index 00000000000..e8ab0065f22 --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_all/readme.md @@ -0,0 +1 @@ +# The keymap for krush60 solder full layout \ No newline at end of file diff --git a/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_ansi_7u/keymap.c b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_ansi_7u/keymap.c new file mode 100644 index 00000000000..3d454579cb1 --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_ansi_7u/keymap.c @@ -0,0 +1,37 @@ +/* Copyright 2021 SawnsProjects + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_7u_spc( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_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, MO(1), KC_RCTL + ) + [1] = LAYOUT_60_ansi_7u_spc( + 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_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_HOME, KC_PGUP, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; + + diff --git a/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_ansi_7u/readme.md b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_ansi_7u/readme.md new file mode 100644 index 00000000000..b7ec93ca7b7 --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_ansi_7u/readme.md @@ -0,0 +1 @@ +# The keymap for krush60 solder layout ansi 7U \ No newline at end of file diff --git a/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_ansi_arrow/keymap.c b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_ansi_arrow/keymap.c new file mode 100644 index 00000000000..b6fb88bb8af --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_ansi_arrow/keymap.c @@ -0,0 +1,35 @@ +/* Copyright 2021 SawnsProjects + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_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, 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(1), 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_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_HOME, KC_PGUP, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; \ No newline at end of file diff --git a/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_ansi_arrow/readme.md b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_ansi_arrow/readme.md new file mode 100644 index 00000000000..561b615d248 --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_ansi_arrow/readme.md @@ -0,0 +1 @@ +# The keymap for krush60 solder layout ansi arrow \ No newline at end of file diff --git a/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_ansi_arrow_7u/keymap.c b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_ansi_arrow_7u/keymap.c new file mode 100644 index 00000000000..f22e073bf5a --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_ansi_arrow_7u/keymap.c @@ -0,0 +1,35 @@ +/* Copyright 2021 SawnsProjects + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_7u_spc( + 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, 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, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ) + [1] = LAYOUT_60_ansi_arrow_7u_spc( + 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_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_HOME, KC_PGUP, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; \ No newline at end of file diff --git a/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_ansi_arrow_7u/readme.md b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_ansi_arrow_7u/readme.md new file mode 100644 index 00000000000..578753b3ae8 --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_ansi_arrow_7u/readme.md @@ -0,0 +1 @@ +# The keymap for krush60 solder layout ansi 7U arrow \ No newline at end of file diff --git a/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_ansi_arrow_splt_bs/keymap.c b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_ansi_arrow_splt_bs/keymap.c new file mode 100644 index 00000000000..8ba292cfd44 --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_ansi_arrow_splt_bs/keymap.c @@ -0,0 +1,35 @@ +/* Copyright 2021 SawnsProjects + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_split_bs( + 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_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(1), KC_LEFT, KC_DOWN, KC_RGHT + ) + [1] = LAYOUT_60_ansi_arrow_split_bs( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_HOME, KC_PGUP, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_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/sawnsprojects/krush/krush60/solder/keymaps/60_ansi_arrow_splt_bs/readme.md b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_ansi_arrow_splt_bs/readme.md new file mode 100644 index 00000000000..505c1ec9bc3 --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_ansi_arrow_splt_bs/readme.md @@ -0,0 +1 @@ +# The keymap for krush60 solder layout ansi arrow split backspace \ No newline at end of file diff --git a/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_ansi_arrow_splt_bs_7u/keymap.c b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_ansi_arrow_splt_bs_7u/keymap.c new file mode 100644 index 00000000000..56a713d56e9 --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_ansi_arrow_splt_bs_7u/keymap.c @@ -0,0 +1,35 @@ +/* Copyright 2021 SawnsProjects + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_split_bs_7u_spc( + 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_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, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ) + [1] = LAYOUT_60_ansi_arrow_split_bs_7u_spc( + 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_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_HOME, KC_PGUP, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; \ No newline at end of file diff --git a/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_ansi_arrow_splt_bs_7u/readme.md b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_ansi_arrow_splt_bs_7u/readme.md new file mode 100644 index 00000000000..059534d5df1 --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_ansi_arrow_splt_bs_7u/readme.md @@ -0,0 +1 @@ +# The keymap for krush60 solder layout ansi arrow, 7u spacebar & split backspace \ No newline at end of file diff --git a/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_ansi_arrow_splt_bs_spc/keymap.c b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_ansi_arrow_splt_bs_spc/keymap.c new file mode 100644 index 00000000000..8673ce02d1d --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_ansi_arrow_splt_bs_spc/keymap.c @@ -0,0 +1,35 @@ +/* Copyright 2021 SawnsProjects + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_split_bs_spc( + 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_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_SPC, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ) + [1] = LAYOUT_60_ansi_arrow_split_bs_spc( + 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_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_HOME, KC_PGUP, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_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/sawnsprojects/krush/krush60/solder/keymaps/60_ansi_arrow_splt_bs_spc/readme.md b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_ansi_arrow_splt_bs_spc/readme.md new file mode 100644 index 00000000000..2355c409a02 --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_ansi_arrow_splt_bs_spc/readme.md @@ -0,0 +1 @@ +# The keymap for krush60 solder layout ansi arrow, split spacebar & split backspace \ No newline at end of file diff --git a/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_ansi_arrow_splt_spc/keymap.c b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_ansi_arrow_splt_spc/keymap.c new file mode 100644 index 00000000000..1da11323e44 --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_ansi_arrow_splt_spc/keymap.c @@ -0,0 +1,37 @@ +/* Copyright 2021 SawnsProjects + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_split_spc( + 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, 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_SPC, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ) + [1] = LAYOUT_60_ansi_arrow_split_spc( + 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_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_HOME, KC_PGUP, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_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/sawnsprojects/krush/krush60/solder/keymaps/60_ansi_arrow_splt_spc/readme.md b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_ansi_arrow_splt_spc/readme.md new file mode 100644 index 00000000000..af2fce05c2a --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_ansi_arrow_splt_spc/readme.md @@ -0,0 +1 @@ +# The keymap for krush60 solder layout ansi arrow & split spacebar \ No newline at end of file diff --git a/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_ansi_splt_bs/keymap.c b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_ansi_splt_bs/keymap.c new file mode 100644 index 00000000000..ff0fd21debc --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_ansi_splt_bs/keymap.c @@ -0,0 +1,35 @@ +/* Copyright 2021 SawnsProjects + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_split_bs( + 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_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_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL), + + [0] = LAYOUT_60_ansi_split_bs( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_HOME, KC_PGUP, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_END, KC_PGDN, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +}; + diff --git a/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_ansi_splt_bs/readme.md b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_ansi_splt_bs/readme.md new file mode 100644 index 00000000000..80634c350fb --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_ansi_splt_bs/readme.md @@ -0,0 +1 @@ +# The keymap for krush60 solder layout split backspace \ No newline at end of file diff --git a/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_ansi_splt_bs_7u/keymap.c b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_ansi_splt_bs_7u/keymap.c new file mode 100644 index 00000000000..431fb483fd8 --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_ansi_splt_bs_7u/keymap.c @@ -0,0 +1,35 @@ +/* Copyright 2021 SawnsProjects + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_split_bs_7u_spc( + 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_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_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL), + + [0] = LAYOUT_60_ansi_split_bs_7u_spc( + 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_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_HOME, KC_PGUP, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_DEL, KC_END, KC_PGDN, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +}; + diff --git a/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_ansi_splt_bs_7u/readme.md b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_ansi_splt_bs_7u/readme.md new file mode 100644 index 00000000000..70b3a8617b6 --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_ansi_splt_bs_7u/readme.md @@ -0,0 +1 @@ +# The keymap for krush60 solder layout 7u spacebar & split backspace \ No newline at end of file diff --git a/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_ansi_splt_bs_spc/keymap.c b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_ansi_splt_bs_spc/keymap.c new file mode 100644 index 00000000000..e3982e2507f --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_ansi_splt_bs_spc/keymap.c @@ -0,0 +1,35 @@ +/* Copyright 2021 SawnsProjects + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_split_bs_spc( + 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_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_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL), + + [1] = LAYOUT_60_ansi_split_bs_spc( + 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_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_HOME, KC_PGUP, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_END, KC_PGDN, 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/sawnsprojects/krush/krush60/solder/keymaps/60_ansi_splt_bs_spc/readme.md b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_ansi_splt_bs_spc/readme.md new file mode 100644 index 00000000000..6e1981c3ce8 --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_ansi_splt_bs_spc/readme.md @@ -0,0 +1 @@ +# The keymap for krush60 solder layout split spacebar & split backspace \ No newline at end of file diff --git a/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_ansi_splt_spc/keymap.c b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_ansi_splt_spc/keymap.c new file mode 100644 index 00000000000..abcd186ccc8 --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_ansi_splt_spc/keymap.c @@ -0,0 +1,35 @@ +/* Copyright 2021 SawnsProjects + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_split_spc( + 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_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL), + + [1] = LAYOUT_60_ansi_split_spc( + 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_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_HOME, KC_PGUP, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_END, KC_PGDN, 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/sawnsprojects/krush/krush60/solder/keymaps/60_ansi_splt_spc/readme.md b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_ansi_splt_spc/readme.md new file mode 100644 index 00000000000..80634c350fb --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_ansi_splt_spc/readme.md @@ -0,0 +1 @@ +# The keymap for krush60 solder layout split backspace \ No newline at end of file diff --git a/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_tsangan/keymap.c b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_tsangan/keymap.c new file mode 100644 index 00000000000..cc8067cc999 --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_tsangan/keymap.c @@ -0,0 +1,36 @@ +/* Copyright 2021 SawnsProjects + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_tsangan( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_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, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL + ) + [1] = LAYOUT_60_ansi_tsangan( + 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_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_HOME, KC_PGUP, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; + diff --git a/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_tsangan/readme.md b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_tsangan/readme.md new file mode 100644 index 00000000000..5bdb4a10261 --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_tsangan/readme.md @@ -0,0 +1 @@ +# The keymap for krush60 solder Tsangan \ No newline at end of file diff --git a/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_tsangan_splt_bs/keymap.c b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_tsangan_splt_bs/keymap.c new file mode 100644 index 00000000000..9fba9e6bf34 --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_tsangan_splt_bs/keymap.c @@ -0,0 +1,35 @@ +/* Copyright 2021 REPLACE_WITH_YOUR_NAME + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_tsangan_split_bs( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_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_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_RALT, KC_RGUI, KC_RCTL + ) + [1] = LAYOUT_60_ansi_tsangan_split_bs( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_HOME, KC_PGUP, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_tsangan_splt_bs/readme.md b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_tsangan_splt_bs/readme.md new file mode 100644 index 00000000000..03c0444cc6f --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/60_tsangan_splt_bs/readme.md @@ -0,0 +1 @@ +# The keymap for krush60 solder Tsangan & split backspace \ No newline at end of file diff --git a/keyboards/sawnsprojects/krush/krush60/solder/keymaps/default/keymap.c b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/default/keymap.c new file mode 100644 index 00000000000..f1ef9911dd4 --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/default/keymap.c @@ -0,0 +1,40 @@ +/* Copyright 2021 REPLACE_WITH_YOUR_NAME + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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] = { + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │  \  │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │  Enter │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ + * │ Shift  │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │    Shift │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ + * │Ctrl│GUI │Alt │                        │ Alt│ GUI│Menu│Ctrl│ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + */ + [0] = LAYOUT_60_ansi( + 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, 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_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL + ) +}; diff --git a/keyboards/sawnsprojects/krush/krush60/solder/keymaps/default/readme.md b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/default/readme.md new file mode 100644 index 00000000000..88157e507ea --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/default/readme.md @@ -0,0 +1 @@ +# The keymap default for krush60 \ No newline at end of file diff --git a/keyboards/sawnsprojects/krush/krush60/solder/keymaps/via/keymap.c b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/via/keymap.c new file mode 100644 index 00000000000..a6e005bbbb2 --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/via/keymap.c @@ -0,0 +1,49 @@ +/* Copyright 2021 REPLACE_WITH_YOUR_NAME + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_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_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_SLSH, KC_RSFT, KC_RSFT, KC_SLSH, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(0), KC_LEFT, KC_LALT, KC_LCTL + ), + [1] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/sawnsprojects/krush/krush60/solder/keymaps/via/readme.md b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/via/readme.md new file mode 100644 index 00000000000..8f8d7a19bda --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/via/readme.md @@ -0,0 +1 @@ +# The keymap VIA for krush60 \ No newline at end of file diff --git a/keyboards/sawnsprojects/krush/krush60/solder/keymaps/via/rules.mk b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/via/rules.mk new file mode 100644 index 00000000000..036bd6d1c3e --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush60/solder/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/sawnsprojects/krush/krush60/solder/readme.md b/keyboards/sawnsprojects/krush/krush60/solder/readme.md new file mode 100644 index 00000000000..36da34d372f --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush60/solder/readme.md @@ -0,0 +1,15 @@ +# Krush60 solder + +![Krush60](https://cdn.discordapp.com/attachments/898507964942536715/906171092916391956/252763374_2899749087003964_8763371038132517512_n.png) + +A 60% keyboard PCB made and sold by SawnsProjects with Nuxros in [Facebook](https://www.facebook.com/groups/vnmkmarket/posts/1412997345762674). + +* Keyboard Maintainer: [Mai The San](https://github.com/MaiTheSan) +* Hardware Supported: 60% keyboard case +* Hardware Availability: [Facebook](https://www.facebook.com/groups/vnmkmarket/posts/1412997345762674) + +Make example for this keyboard (after setting up your build environment): + + make sawnsprojects/krush60/solder: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 diff --git a/keyboards/sawnsprojects/krush/krush60/solder/rules.mk b/keyboards/sawnsprojects/krush/krush60/solder/rules.mk new file mode 100644 index 00000000000..439db87a584 --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush60/solder/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 = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # 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 + +LAYOUTS = 60_ansi 60_ansi_arrow 60_ansi_arrow_split_bs_7u_spc diff --git a/keyboards/sawnsprojects/krush/krush60/solder/solder.c b/keyboards/sawnsprojects/krush/krush60/solder/solder.c new file mode 100644 index 00000000000..2fb9b24f8c2 --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush60/solder/solder.c @@ -0,0 +1,17 @@ +/* Copyright 2021 SawnsProjects + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 "solder.h" \ No newline at end of file diff --git a/keyboards/sawnsprojects/krush/krush60/solder/solder.h b/keyboards/sawnsprojects/krush/krush60/solder/solder.h new file mode 100644 index 00000000000..d442776c9df --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush60/solder/solder.h @@ -0,0 +1,333 @@ +/* Copyright 2021 SawnsProjects + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 +//x +#define LAYOUT_all( \ + K00, K10, K01, K11, K02, K12, K03, K13, K04, K14, K05, K15, K06, K26, K17, \ + K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, K35, K36, K46, \ + K40, K50, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, K47, \ + K60, K70, K61, K71, K62, K72, K63, K73, K64, K74, K65, K75, K66, K77, \ + K80, K90, K81, K82, K92, K84, K94, K85, K86, K95, K97 \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, XXX }, \ + { K10, K11, K12, K13, K14, K15, XXX, K17 }, \ + { K20, K21, K22, K23, K24, K25, K26, XXX }, \ + { K30, K31, K32, K33, K34, K35, K36, XXX }, \ + { K40, K41, K42, K43, K44, K45, K46, K47 }, \ + { K50, K51, K52, K53, K54, K55, XXX, XXX }, \ + { K60, K61, K62, K63, K64, K65, K66, XXX }, \ + { K70, K71, K72, K73, K74, K75, XXX, K77 }, \ + { K80, K81, K82, XXX, K84, K85, K86, XXX }, \ + { K90, XXX, K92, XXX, K94, K95, XXX, K97 }, \ +} + +//LAYOUT_60_ansi +//x +#define LAYOUT_60_ansi( \ + K00, K10, K01, K11, K02, K12, K03, K13, K04, K14, K05, K15, K06, K26, \ + K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, K35, K36, K46, \ + K40, K50, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, K47, \ + K60, K70, K61, K71, K62, K72, K63, K73, K64, K74, K65, K66, \ + K80, K90, K81, K92, K94, K85, K95, K97 \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, XXX }, \ + { K10, K11, K12, K13, K14, K15, XXX, XXX }, \ + { K20, K21, K22, K23, K24, K25, K26, XXX }, \ + { K30, K31, K32, K33, K34, K35, K36, XXX }, \ + { K40, K41, K42, K43, K44, K45, K46, K47 }, \ + { K50, K51, K52, K53, K54, K55, XXX, XXX }, \ + { K60, K61, K62, K63, K64, K65, K66, XXX }, \ + { K70, K71, K72, K73, K74, XXX, XXX, XXX }, \ + { K80, K81, XXX, XXX, XXX, K85, XXX, XXX }, \ + { K90, XXX, K92, XXX, K94, K95, XXX, K97 }, \ +} +//LAYOUT_60_iso +//x +#define LAYOUT_60_iso(\ + K00, K10, K01, K11, K02, K12, K03, K13, K04, K14, K05, K15, K06, K26, \ + K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, K35, K36, K46, \ + K40, K50, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, K47, \ + K60, K70, K61, K71, K62, K72, K63, K73, K64, K74, K65, K66, \ + K80, K90, K81, K92, K94, K85, K95, K97 \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, XXX }, \ + { K10, K11, K12, K13, K14, K15, XXX, XXX }, \ + { K20, K21, K22, K23, K24, K25, K26, XXX }, \ + { K30, K31, K32, K33, K34, K35, K36, XXX }, \ + { K40, K41, K42, K43, K44, K45, K46, K47 }, \ + { K50, K51, K52, K53, K54, K55, XXX, XXX }, \ + { K60, K61, K62, K63, K64, K65, K66, XXX }, \ + { K70, K71, K72, K73, K74, XXX, XXX, XXX }, \ + { K80, K81, XXX, XXX, XXX, K85, XXX, XXX }, \ + { K90, XXX, K92, XXX, K94, K95, XXX, K97 }, \ +} +//LAYOUT_60_ansi_split_bs +#define LAYOUT_60_ansi_split_bs( \ + K00, K10, K01, K11, K02, K12, K03, K13, K04, K14, K05, K15, K06, K26, K17, \ + K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, K35, K36, K46, \ + K40, K50, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, K47, \ + K60, K70, K61, K71, K62, K72, K63, K73, K64, K74, K65, K66, \ + K80, K90, K81, K92, K94, K85, K95, K97 \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, XXX }, \ + { K10, K11, K12, K13, K14, K15, XXX, K17 }, \ + { K20, K21, K22, K23, K24, K25, K26, XXX }, \ + { K30, K31, K32, K33, K34, K35, K36, XXX }, \ + { K40, K41, K42, K43, K44, K45, K46, K47 }, \ + { K50, K51, K52, K53, K54, K55, XXX, XXX }, \ + { K60, K61, K62, K63, K64, K65, K66, XXX }, \ + { K70, K71, K72, K73, K74, XXX, XXX, XXX }, \ + { K80, K81, XXX, XXX, XXX, K85, XXX, XXX }, \ + { K90, XXX, K92, XXX, K94, K95, XXX, K97 }, \ +} +//LAYOUT_60_ansi_split_spc +#define LAYOUT_60_ansi_split_spc( \ + K00, K10, K01, K11, K02, K12, K03, K13, K04, K14, K05, K15, K06, K26, \ + K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, K35, K36, K46, \ + K40, K50, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, K47, \ + K60, K70, K61, K71, K62, K72, K63, K73, K64, K74, K65, K66, \ + K80, K90, K81, K82, K92, K84, K94, K85, K95, K97 \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, XXX }, \ + { K10, K11, K12, K13, K14, K15, XXX, XXX }, \ + { K20, K21, K22, K23, K24, K25, K26, XXX }, \ + { K30, K31, K32, K33, K34, K35, K36, XXX }, \ + { K40, K41, K42, K43, K44, K45, K46, K47 }, \ + { K50, K51, K52, K53, K54, K55, XXX, XXX }, \ + { K60, K61, K62, K63, K64, K65, K66, XXX }, \ + { K70, K71, K72, K73, K74, XXX, XXX, XXX }, \ + { K80, K81, K82, XXX, K84, K85, XXX, XXX }, \ + { K90, XXX, K92, XXX, K94, K95, XXX, K97 }, \ +} +//LAYOUT_60_ansi_split_bs_spc +#define LAYOUT_60_ansi_split_bs_spc( \ + K00, K10, K01, K11, K02, K12, K03, K13, K04, K14, K05, K15, K06, K26, K17, \ + K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, K35, K36, K46, \ + K40, K50, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, K47, \ + K60, K70, K61, K71, K62, K72, K63, K73, K64, K74, K65, K66, \ + K80, K90, K81, K82, K92, K84, K94, K85, K95, K97 \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, XXX }, \ + { K10, K11, K12, K13, K14, K15, XXX, K17 }, \ + { K20, K21, K22, K23, K24, K25, K26, XXX }, \ + { K30, K31, K32, K33, K34, K35, K36, XXX }, \ + { K40, K41, K42, K43, K44, K45, K46, K47 }, \ + { K50, K51, K52, K53, K54, K55, XXX, XXX }, \ + { K60, K61, K62, K63, K64, K65, K66, XXX }, \ + { K70, K71, K72, K73, K74, XXX, XXX, XXX }, \ + { K80, K81, K82, XXX, K84, K85, XXX, XXX }, \ + { K90, XXX, K92, XXX, K94, K95, XXX, K97 }, \ +} +//LAYOUT_60_ansi_7u_spc +#define LAYOUT_60_ansi_7u_spc( \ + K00, K10, K01, K11, K02, K12, K03, K13, K04, K14, K05, K15, K06, K26, \ + K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, K35, K36, K46, \ + K40, K50, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, K47, \ + K60, K70, K61, K71, K62, K72, K63, K73, K64, K74, K65, K66, \ + K80, K90, K81, K92, K85, K95, K97 \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, XXX }, \ + { K10, K11, K12, K13, K14, K15, XXX, XXX }, \ + { K20, K21, K22, K23, K24, K25, K26, XXX }, \ + { K30, K31, K32, K33, K34, K35, K36, XXX }, \ + { K40, K41, K42, K43, K44, K45, K46, K47 }, \ + { K50, K51, K52, K53, K54, K55, XXX, XXX }, \ + { K60, K61, K62, K63, K64, K65, K66, XXX }, \ + { K70, K71, K72, K73, K74, XXX, XXX, XXX }, \ + { K80, K81, XXX, XXX, XXX, K85, XXX, XXX }, \ + { K90, XXX, K92, XXX, XXX, K95, XXX, K97 }, \ +} +//LAYOUT_60_ansi_split_7u_spc +#define LAYOUT_60_ansi_split_bs_7u_spc( \ + K00, K10, K01, K11, K02, K12, K03, K13, K04, K14, K05, K15, K06, K26, K17, \ + K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, K35, K36, K46, \ + K40, K50, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, K47, \ + K60, K70, K61, K71, K62, K72, K63, K73, K64, K74, K65, K66, \ + K80, K90, K81, K92, K85, K95, K97 \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, XXX }, \ + { K10, K11, K12, K13, K14, K15, XXX, K17 }, \ + { K20, K21, K22, K23, K24, K25, K26, XXX }, \ + { K30, K31, K32, K33, K34, K35, K36, XXX }, \ + { K40, K41, K42, K43, K44, K45, K46, K47 }, \ + { K50, K51, K52, K53, K54, K55, XXX, XXX }, \ + { K60, K61, K62, K63, K64, K65, K66, XXX }, \ + { K70, K71, K72, K73, K74, XXX, XXX, XXX }, \ + { K80, K81, XXX, XXX, XXX, K85, XXX, XXX }, \ + { K90, XXX, K92, XXX, XXX, K95, XXX, K97 }, \ +} +//LAYOUT_60_ansi_arrow_split_bs +#define LAYOUT_60_ansi_arrow_split_bs( \ + K00, K10, K01, K11, K02, K12, K03, K13, K04, K14, K05, K15, K06, K26, K17, \ + K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, K35, K36, K46, \ + K40, K50, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, K47, \ + K60, K70, K61, K71, K62, K72, K63, K73, K64, K74, K75, K66, K77, \ + K80, K90, K81, K92, K94, K85, K86, K95, K97 \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, XXX }, \ + { K10, K11, K12, K13, K14, K15, XXX, K17 }, \ + { K20, K21, K22, K23, K24, K25, K26, XXX }, \ + { K30, K31, K32, K33, K34, K35, K36, XXX }, \ + { K40, K41, K42, K43, K44, K45, K46, K47 }, \ + { K50, K51, K52, K53, K54, K55, XXX, XXX }, \ + { K60, K61, K62, K63, K64, XXX, K66, XXX }, \ + { K70, K71, K72, K73, K74, K75, XXX, K77 }, \ + { K80, K81, XXX, XXX, XXX, K85, K86, XXX }, \ + { K90, XXX, K92, XXX, K94, K95, XXX, K97 }, \ +} +//LAYOUT_60_ansi_arrow_split_spc +#define LAYOUT_60_ansi_arrow_split_spc( \ + K00, K10, K01, K11, K02, K12, K03, K13, K04, K14, K05, K15, K06, K26, \ + K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, K35, K36, K46, \ + K40, K50, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, K47, \ + K60, K70, K61, K71, K62, K72, K63, K73, K64, K74, K75, K66, K77, \ + K80, K90, K81, K82, K92, K84, K94, K85, K86, K95, K97 \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, XXX }, \ + { K10, K11, K12, K13, K14, K15, XXX, XXX }, \ + { K20, K21, K22, K23, K24, K25, K26, XXX }, \ + { K30, K31, K32, K33, K34, K35, K36, XXX }, \ + { K40, K41, K42, K43, K44, K45, K46, K47 }, \ + { K50, K51, K52, K53, K54, K55, XXX, XXX }, \ + { K60, K61, K62, K63, K64, XXX, K66, XXX }, \ + { K70, K71, K72, K73, K74, K75, XXX, K77 }, \ + { K80, K81, K82, XXX, K84, K85, K86, XXX }, \ + { K90, XXX, K92, XXX, K94, K95, XXX, K97 }, \ +} +//LAYOUT_60_ansi_arrow_split_bs_spc +#define LAYOUT_60_ansi_arrow_split_bs_spc( \ + K00, K10, K01, K11, K02, K12, K03, K13, K04, K14, K05, K15, K06, K26, K17, \ + K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, K35, K36, K46, \ + K40, K50, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, K47, \ + K60, K70, K61, K71, K62, K72, K63, K73, K64, K74, K75, K66, K77, \ + K80, K90, K81, K82, K92, K84, K94, K85, K86, K95, K97 \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, XXX }, \ + { K10, K11, K12, K13, K14, K15, XXX, K17 }, \ + { K20, K21, K22, K23, K24, K25, K26, XXX }, \ + { K30, K31, K32, K33, K34, K35, K36, XXX }, \ + { K40, K41, K42, K43, K44, K45, K46, K47 }, \ + { K50, K51, K52, K53, K54, K55, XXX, XXX }, \ + { K60, K61, K62, K63, K64, XXX, K66, XXX }, \ + { K70, K71, K72, K73, K74, K75, XXX, K77 }, \ + { K80, K81, K82, XXX, K84, K85, K86, XXX }, \ + { K90, XXX, K92, XXX, K94, K95, XXX, K97 }, \ +} +//LAYOUT_60_ansi_arrow_7u_spc +#define LAYOUT_60_ansi_arrow_7u_spc( \ + K00, K10, K01, K11, K02, K12, K03, K13, K04, K14, K05, K15, K06, K26, \ + K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, K35, K36, K46, \ + K40, K50, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, K47, \ + K60, K70, K61, K71, K62, K72, K63, K73, K64, K74, K75, K66, K77, \ + K80, K90, K81, K92, K85, K86, K95, K97 \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, XXX }, \ + { K10, K11, K12, K13, K14, K15, XXX, XXX }, \ + { K20, K21, K22, K23, K24, K25, K26, XXX }, \ + { K30, K31, K32, K33, K34, K35, K36, XXX }, \ + { K40, K41, K42, K43, K44, K45, K46, K47 }, \ + { K50, K51, K52, K53, K54, K55, XXX, XXX }, \ + { K60, K61, K62, K63, K64, XXX, K66, XXX }, \ + { K70, K71, K72, K73, K74, K75, XXX, K77 }, \ + { K80, K81, XXX, XXX, XXX, K85, K86, XXX }, \ + { K90, XXX, K92, XXX, XXX, K95, XXX, K97 }, \ +} +//LAYOUT_60_ansi_arrow +//x +#define LAYOUT_60_ansi_arrow( \ + K00, K10, K01, K11, K02, K12, K03, K13, K04, K14, K05, K15, K06, K26, \ + K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, K35, K36, K46, \ + K40, K50, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, K47, \ + K60, K70, K61, K71, K62, K72, K63, K73, K64, K74, K75, K66, K77, \ + K80, K90, K81, K92, K94, K85, K86, K95, K97 \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, XXX }, \ + { K10, K11, K12, K13, K14, K15, XXX, XXX }, \ + { K20, K21, K22, K23, K24, K25, K26, XXX }, \ + { K30, K31, K32, K33, K34, K35, K36, XXX }, \ + { K40, K41, K42, K43, K44, K45, K46, K47 }, \ + { K50, K51, K52, K53, K54, K55, XXX, XXX }, \ + { K60, K61, K62, K63, K64, XXX, K66, XXX }, \ + { K70, K71, K72, K73, K74, K75, XXX, K77 }, \ + { K80, K81, XXX, XXX, XXX, K85, K86, XXX }, \ + { K90, XXX, K92, XXX, K94, K95, XXX, K97 }, \ +} +//x +//LAYOUT_60_ansi_arrow_split_bs_7u_spc +#define LAYOUT_60_ansi_arrow_split_bs_7u_spc( \ + K00, K10, K01, K11, K02, K12, K03, K13, K04, K14, K05, K15, K06, K26, K17, \ + K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, K35, K36, K46, \ + K40, K50, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, K47, \ + K60, K70, K61, K71, K62, K72, K63, K73, K64, K74, K75, K66, K77, \ + K80, K90, K81, K92, K85, K86, K95, K97 \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, XXX }, \ + { K10, K11, K12, K13, K14, K15, XXX, K17 }, \ + { K20, K21, K22, K23, K24, K25, K26, XXX }, \ + { K30, K31, K32, K33, K34, K35, K36, XXX }, \ + { K40, K41, K42, K43, K44, K45, K46, K47 }, \ + { K50, K51, K52, K53, K54, K55, XXX, XXX }, \ + { K60, K61, K62, K63, K64, XXX, K66, XXX }, \ + { K70, K71, K72, K73, K74, K75, XXX, K77 }, \ + { K80, K81, XXX, XXX, XXX, K85, K86, XXX }, \ + { K90, XXX, K92, XXX, XXX, K95, XXX, K97 }, \ +} +//LAYOUT_60_ansi_tsangan +#define LAYOUT_60_ansi_tsangan( \ + K00, K10, K01, K11, K02, K12, K03, K13, K04, K14, K05, K15, K06, K26, \ + K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, K35, K36, K46, \ + K40, K50, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, K47, \ + K60, K70, K61, K71, K62, K72, K63, K73, K64, K74, K65, K66, K77, \ + K80, K90, K81, K92, K85, K95, K97 \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, XXX }, \ + { K10, K11, K12, K13, K14, K15, XXX, XXX }, \ + { K20, K21, K22, K23, K24, K25, K26, XXX }, \ + { K30, K31, K32, K33, K34, K35, K36, XXX }, \ + { K40, K41, K42, K43, K44, K45, K46, K47 }, \ + { K50, K51, K52, K53, K54, K55, XXX, XXX }, \ + { K60, K61, K62, K63, K64, K65, K66, XXX }, \ + { K70, K71, K72, K73, K74, XXX, XXX, K77 }, \ + { K80, K81, XXX, XXX, XXX, K85, XXX, XXX }, \ + { K90, XXX, K92, XXX, XXX, K95, XXX, K97 }, \ +} +//LAYOUT_60_ansi_tsangan_split_bs +#define LAYOUT_60_ansi_tsangan_split_bs( \ + K00, K10, K01, K11, K02, K12, K03, K13, K04, K14, K05, K15, K06, K26, K17, \ + K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, K35, K36, K46, \ + K40, K50, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, K47, \ + K60, K70, K61, K71, K62, K72, K63, K73, K64, K74, K65, K66, K77, \ + K80, K90, K81, K92, K85, K95, K97 \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, XXX }, \ + { K10, K11, K12, K13, K14, K15, XXX, K17 }, \ + { K20, K21, K22, K23, K24, K25, K26, XXX }, \ + { K30, K31, K32, K33, K34, K35, K36, XXX }, \ + { K40, K41, K42, K43, K44, K45, K46, K47 }, \ + { K50, K51, K52, K53, K54, K55, XXX, XXX }, \ + { K60, K61, K62, K63, K64, K65, K66, XXX }, \ + { K70, K71, K72, K73, K74, XXX, XXX, K77 }, \ + { K80, K81, XXX, XXX, XXX, K85, XXX, XXX }, \ + { K90, XXX, K92, XXX, XXX, K95, XXX, K97 }, \ +} +//LAYOUT_60_iso_tsangan +#define LAYOUT_60_iso_tsangan LAYOUT_60_ansi_tsangan +//LAYOUT_60_iso_tsangan_split_bs +#define LAYOUT_60_iso_tsangan_split_bs LAYOUT_60_ansi_tsangan_split_bs diff --git a/keyboards/sawnsprojects/krush/krush65/readme.md b/keyboards/sawnsprojects/krush/krush65/readme.md new file mode 100644 index 00000000000..34e996f0bf2 --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush65/readme.md @@ -0,0 +1,25 @@ +# Krush65 + +A 65% keyboard sold in several variants. + +1. [Solder](solder/): 06/2021. Atmega32u4 soldered keyboard. Sold under the name "Krush65" with krush keyboard case. Compatible with some KBD67 case. + + **Firmware files are SPECIFIC to each board. Firmware files from one, will not work on the other.** Please use the `.hex` or `.bin` appropriate for your board. + +* Keyboard Maintainer: [SawnsProjects](https://github.com/MaiTheSan) +* Hardware Supported: Krush65 +* Hardware Availability: [Mechkey.store](https://mechkey.store/) + +Make examples for this keyboard (after setting up your build environment): + + make sawnsprojects/krush/krush65/solder:default + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `RESET` if it is available + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file diff --git a/keyboards/sawnsprojects/krush/krush65/solder/config.h b/keyboards/sawnsprojects/krush/krush65/solder/config.h new file mode 100644 index 00000000000..9356e6cfba2 --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush65/solder/config.h @@ -0,0 +1,68 @@ +/* Copyright 2021 SawnsProjects + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 0x5350 +#define PRODUCT_ID 0x6B31 +#define DEVICE_VER 0x0001 +#define MANUFACTURER SawnsProjects +#define PRODUCT Krush65 - Solder + +/* key matrix size */ +#define MATRIX_ROWS 10 +#define MATRIX_COLS 8 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { B1, B2, D1, D2, D4, D6, F6, F7, F5, F4 } +#define MATRIX_COL_PINS { C7, C6, B6, B5, B4, D7, D5, D3 } +#define UNUSED_PINS + +/* indicator */ +// #define LED_CAPS_LOCK_PIN F0 + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW +/* Caps Lock */ +#define LED_CAPS_LOCK_PIN F0 + +/* rotary */ +#define ENCODERS_PAD_A { D0 } +#define ENCODERS_PAD_B { B3 } +#define ENCODER_RESOLUTION 4 + +#define RGB_DI_PIN F1 +#ifdef RGB_DI_PIN + #define RGBLED_NUM 20 + #define RGBLIGHT_HUE_STEP 8 + #define RGBLIGHT_SAT_STEP 8 + #define RGBLIGHT_VAL_STEP 8 + #define RGBLIGHT_LIMIT_VAL 200 /* 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_EFFECT_BREATHING +#define RGBLIGHT_EFFECT_RAINBOW_MOOD +#define RGBLIGHT_EFFECT_RAINBOW_SWIRL +#define RGBLIGHT_EFFECT_SNAKE +#define RGBLIGHT_EFFECT_KNIGHT +#define RGBLIGHT_EFFECT_CHRISTMAS +#define RGBLIGHT_EFFECT_STATIC_GRADIENT +#define RGBLIGHT_EFFECT_RGB_TEST +#define RGBLIGHT_EFFECT_ALTERNATING +#define RGBLIGHT_EFFECT_TWINKLE +#endif \ No newline at end of file diff --git a/keyboards/sawnsprojects/krush/krush65/solder/encoder_actions.c b/keyboards/sawnsprojects/krush/krush65/solder/encoder_actions.c new file mode 100644 index 00000000000..039f8739b4d --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush65/solder/encoder_actions.c @@ -0,0 +1,58 @@ +/* Copyright 2020 Neil Brian Ramirez + * Copyright 2021 drashna jael're (@drashna) + * Copyright 2021 uybv + * Copyright 2021 SawnsProjects + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "encoder_actions.h" + +#ifdef ENCODER_ENABLE + +# ifdef ENCODERS +static uint8_t encoder_state[ENCODERS] = {0}; +static keypos_t encoder_cw[ENCODERS] = ENCODERS_CW_KEY; +static keypos_t encoder_ccw[ENCODERS] = ENCODERS_CCW_KEY; +# endif + +void encoder_action_unregister(void) { +# ifdef ENCODERS + for (int index = 0; index < ENCODERS; ++index) { + if (encoder_state[index]) { + keyevent_t encoder_event = (keyevent_t) { + .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index], + .pressed = false, + .time = (timer_read() | 1) + }; + encoder_state[index] = 0; + action_exec(encoder_event); + } + } +# endif +} + +void encoder_action_register(uint8_t index, bool clockwise) { +# ifdef ENCODERS + keyevent_t encoder_event = (keyevent_t) { + .key = clockwise ? encoder_cw[index] : encoder_ccw[index], + .pressed = true, + .time = (timer_read() | 1) + }; + encoder_state[index] = (clockwise ^ 1) | (clockwise << 1); + action_exec(encoder_event); +# endif +} + +#endif \ No newline at end of file diff --git a/keyboards/sawnsprojects/krush/krush65/solder/encoder_actions.h b/keyboards/sawnsprojects/krush/krush65/solder/encoder_actions.h new file mode 100644 index 00000000000..098210d40c4 --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush65/solder/encoder_actions.h @@ -0,0 +1,21 @@ +/* Copyright 2020 Neil Brian Ramirez + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" + +void encoder_action_unregister(void); + +void encoder_action_register(uint8_t index, bool clockwise); \ No newline at end of file diff --git a/keyboards/sawnsprojects/krush/krush65/solder/info.json b/keyboards/sawnsprojects/krush/krush65/solder/info.json new file mode 100644 index 00000000000..6c10d660e23 --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush65/solder/info.json @@ -0,0 +1,299 @@ +{ + "keyboard_name": "Krush65 Solder", + "url": "", + "maintainer": "MaiTheSan", + "layouts": { + "LAYOUT_all": { + "layout": [ + { "label": "K00 (B1,C7)", "x": 0, "y": 0 }, + { "label": "K10 (B2,C7)", "x": 1, "y": 0 }, + { "label": "K01 (B1,C6)", "x": 2, "y": 0 }, + { "label": "K11 (B2,C6)", "x": 3, "y": 0 }, + { "label": "K02 (B1,B6)", "x": 4, "y": 0 }, + { "label": "K12 (B2,B6)", "x": 5, "y": 0 }, + { "label": "K03 (B1,B5)", "x": 6, "y": 0 }, + { "label": "K13 (B2,B5)", "x": 7, "y": 0 }, + { "label": "K04 (B1,B4)", "x": 8, "y": 0 }, + { "label": "K14 (B2,B4)", "x": 9, "y": 0 }, + { "label": "K05 (B1,D7)", "x": 10, "y": 0 }, + { "label": "K15 (B2,D7)", "x": 11, "y": 0 }, + { "label": "K06 (B1,D5)", "x": 12, "y": 0 }, + { "label": "K26 (D1,D5)", "x": 13, "y": 0 }, + { "label": "K17 (B2,D3)", "x": 14, "y": 0 }, + { "label": "K07 (B1,D3)", "x": 15, "y": 0 }, + { "label": "K20 (D1,C7)", "x": 0, "y": 1, "w": 1.5 }, + { "label": "K30 (D2,C7)", "x": 1.5, "y": 1 }, + { "label": "K21 (D1,C6)", "x": 2.5, "y": 1 }, + { "label": "K31 (D2,C6)", "x": 3.5, "y": 1 }, + { "label": "K22 (D1,B6)", "x": 4.5, "y": 1 }, + { "label": "K32 (D2,B6)", "x": 5.5, "y": 1 }, + { "label": "K23 (D1,B5)", "x": 6.5, "y": 1 }, + { "label": "K33 (D2,B5)", "x": 7.5, "y": 1 }, + { "label": "K24 (D1,B4)", "x": 8.5, "y": 1 }, + { "label": "K34 (D2,B4)", "x": 9.5, "y": 1 }, + { "label": "K25 (D1,D7)", "x": 10.5, "y": 1 }, + { "label": "K35 (D2,D7)", "x": 11.5, "y": 1 }, + { "label": "K36 (D2,D5)", "x": 12.5, "y": 1 }, + { "label": "K46 (D4,D5)", "x": 13.5, "y": 1, "w": 1.5 }, + { "label": "K37 (D2,D3)", "x": 15, "y": 1 }, + { "label": "K40 (D4,C7)", "x": 0, "y": 2, "w": 1.75 }, + { "label": "K50 (D6,C7)", "x": 1.75, "y": 2 }, + { "label": "K41 (D4,C6)", "x": 2.75, "y": 2 }, + { "label": "K51 (D6,C6)", "x": 3.75, "y": 2 }, + { "label": "K42 (D4,B6)", "x": 4.75, "y": 2 }, + { "label": "K52 (D6,B6)", "x": 5.75, "y": 2 }, + { "label": "K43 (D4,B5)", "x": 6.75, "y": 2 }, + { "label": "K53 (D6,B5)", "x": 7.75, "y": 2 }, + { "label": "K44 (D4,B4)", "x": 8.75, "y": 2 }, + { "label": "K54 (D6,B4)", "x": 9.75, "y": 2 }, + { "label": "K45 (D4,D7)", "x": 10.75, "y": 2 }, + { "label": "K55 (D6,D7)", "x": 11.75, "y": 2 }, + { "label": "K47 (D4,D3)", "x": 12.75, "y": 2, "w": 2.25 }, + { "label": "K57 (D6,D3)", "x": 15, "y": 2 }, + { "label": "K60 (F6,C7)", "x": 0, "y": 3, "w": 2.25 }, + { "label": "K70 (F7,C7)", "x": 2.25, "y": 3 }, + { "label": "K61 (F6,C6)", "x": 3.25, "y": 3 }, + { "label": "K71 (F7,C6)", "x": 4.25, "y": 3 }, + { "label": "K62 (F6,B6)", "x": 5.25, "y": 3 }, + { "label": "K72 (F7,B6)", "x": 6.25, "y": 3 }, + { "label": "K63 (F6,B5)", "x": 7.25, "y": 3 }, + { "label": "K73 (F7,B5)", "x": 8.25, "y": 3 }, + { "label": "K64 (F6,B4)", "x": 9.25, "y": 3 }, + { "label": "K74 (F7,B4)", "x": 10.25, "y": 3 }, + { "label": "K65 (F6,D7)", "x": 11.25, "y": 3 }, + { "label": "K75 (F7,D7)", "x": 12.25, "y": 3, "w": 1.75 }, + { "label": "K77 (F7,D3)", "x": 14, "y": 3 }, + { "label": "K67 (F6,D3)", "x": 15, "y": 3 }, + { "label": "K80 (F5,C7)", "x": 0, "y": 4, "w": 1.25 }, + { "label": "K90 (F4,C7)", "x": 1.25, "y": 4, "w": 1.25 }, + { "label": "K81 (F5,C6)", "x": 2.5, "y": 4, "w": 1.25 }, + { "label": "K82 (F5,B6)", "x": 3.75, "y": 4, "w": 2.25 }, + { "label": "K92 (F4,B6)", "x": 6, "y": 4, "w": 1.25 }, + { "label": "K93 (F4,B5)", "x": 7.25, "y": 4, "w": 2.75 }, + { "label": "K94 (F4,B4)", "x": 10, "y": 4, "w": 1.25 }, + { "label": "K85 (F5,D7)", "x": 11.25, "y": 4, "w": 1.25 }, + { "label": "K95 (F4,D7)", "x": 13, "y": 4 }, + { "label": "K97 (F4,D3)", "x": 14, "y": 4 }, + { "label": "K87 (F5,D3)", "x": 15, "y": 4 } + ] + }, + "LAYOUT_65_ansi_blocker_split_bs_sp": { + "layout": [ + { "label": "K00 (B1,C7)", "x": 0, "y": 0 }, + { "label": "K10 (B2,C7)", "x": 1, "y": 0 }, + { "label": "K01 (B1,C6)", "x": 2, "y": 0 }, + { "label": "K11 (B2,C6)", "x": 3, "y": 0 }, + { "label": "K02 (B1,B6)", "x": 4, "y": 0 }, + { "label": "K12 (B2,B6)", "x": 5, "y": 0 }, + { "label": "K03 (B1,B5)", "x": 6, "y": 0 }, + { "label": "K13 (B2,B5)", "x": 7, "y": 0 }, + { "label": "K04 (B1,B4)", "x": 8, "y": 0 }, + { "label": "K14 (B2,B4)", "x": 9, "y": 0 }, + { "label": "K05 (B1,D7)", "x": 10, "y": 0 }, + { "label": "K15 (B2,D7)", "x": 11, "y": 0 }, + { "label": "K06 (B1,D5)", "x": 12, "y": 0 }, + { "label": "K26 (D1,D5)", "x": 13, "y": 0 }, + { "label": "K17 (B2,D3)", "x": 14, "y": 0 }, + { "label": "K07 (B1,D3)", "x": 15, "y": 0 }, + { "label": "K20 (D1,C7)", "x": 0, "y": 1, "w": 1.5 }, + { "label": "K30 (D2,C7)", "x": 1.5, "y": 1 }, + { "label": "K21 (D1,C6)", "x": 2.5, "y": 1 }, + { "label": "K31 (D2,C6)", "x": 3.5, "y": 1 }, + { "label": "K22 (D1,B6)", "x": 4.5, "y": 1 }, + { "label": "K32 (D2,B6)", "x": 5.5, "y": 1 }, + { "label": "K23 (D1,B5)", "x": 6.5, "y": 1 }, + { "label": "K33 (D2,B5)", "x": 7.5, "y": 1 }, + { "label": "K24 (D1,B4)", "x": 8.5, "y": 1 }, + { "label": "K34 (D2,B4)", "x": 9.5, "y": 1 }, + { "label": "K25 (D1,D7)", "x": 10.5, "y": 1 }, + { "label": "K35 (D2,D7)", "x": 11.5, "y": 1 }, + { "label": "K36 (D2,D5)", "x": 12.5, "y": 1 }, + { "label": "K46 (D4,D5)", "x": 13.5, "y": 1, "w": 1.5 }, + { "label": "K37 (D2,D3)", "x": 15, "y": 1 }, + { "label": "K40 (D4,C7)", "x": 0, "y": 2, "w": 1.75 }, + { "label": "K50 (D6,C7)", "x": 1.75, "y": 2 }, + { "label": "K41 (D4,C6)", "x": 2.75, "y": 2 }, + { "label": "K51 (D6,C6)", "x": 3.75, "y": 2 }, + { "label": "K42 (D4,B6)", "x": 4.75, "y": 2 }, + { "label": "K52 (D6,B6)", "x": 5.75, "y": 2 }, + { "label": "K43 (D4,B5)", "x": 6.75, "y": 2 }, + { "label": "K53 (D6,B5)", "x": 7.75, "y": 2 }, + { "label": "K44 (D4,B4)", "x": 8.75, "y": 2 }, + { "label": "K54 (D6,B4)", "x": 9.75, "y": 2 }, + { "label": "K45 (D4,D7)", "x": 10.75, "y": 2 }, + { "label": "K55 (D6,D7)", "x": 11.75, "y": 2 }, + { "label": "K47 (D4,D3)", "x": 12.75, "y": 2, "w": 2.25 }, + { "label": "K57 (D6,D3)", "x": 15, "y": 2 }, + { "label": "K60 (F6,C7)", "x": 0, "y": 3, "w": 2.25 }, + { "label": "K70 (F7,C7)", "x": 2.25, "y": 3 }, + { "label": "K61 (F6,C6)", "x": 3.25, "y": 3 }, + { "label": "K71 (F7,C6)", "x": 4.25, "y": 3 }, + { "label": "K62 (F6,B6)", "x": 5.25, "y": 3 }, + { "label": "K72 (F7,B6)", "x": 6.25, "y": 3 }, + { "label": "K63 (F6,B5)", "x": 7.25, "y": 3 }, + { "label": "K73 (F7,B5)", "x": 8.25, "y": 3 }, + { "label": "K64 (F6,B4)", "x": 9.25, "y": 3 }, + { "label": "K74 (F7,B4)", "x": 10.25, "y": 3 }, + { "label": "K65 (F6,D7)", "x": 11.25, "y": 3 }, + { "label": "K75 (F7,D7)", "x": 12.25, "y": 3, "w": 1.75 }, + { "label": "K77 (F7,D3)", "x": 14, "y": 3 }, + { "label": "K67 (F6,D3)", "x": 15, "y": 3 }, + { "label": "K80 (F5,C7)", "x": 0, "y": 4, "w": 1.25 }, + { "label": "K90 (F4,C7)", "x": 1.25, "y": 4, "w": 1.25 }, + { "label": "K81 (F5,C6)", "x": 2.5, "y": 4, "w": 1.25 }, + { "label": "K82 (F5,B6)", "x": 3.75, "y": 4, "w": 2.25 }, + { "label": "K92 (F4,B6)", "x": 6, "y": 4, "w": 1.25 }, + { "label": "K93 (F4,B5)", "x": 7.25, "y": 4, "w": 2.75 }, + { "label": "K94 (F4,B4)", "x": 10, "y": 4, "w": 1.25 }, + { "label": "K85 (F5,D7)", "x": 11.25, "y": 4, "w": 1.25 }, + { "label": "K95 (F4,D7)", "x": 13, "y": 4 }, + { "label": "K97 (F4,D3)", "x": 14, "y": 4 }, + { "label": "K87 (F5,D3)", "x": 15, "y": 4 } + ] + }, + + "LAYOUT_65_ansi_blocker": { + "layout": [ + { "label": "K00 (B1,C7)", "x": 0, "y": 0 }, + { "label": "K10 (B2,C7)", "x": 1, "y": 0 }, + { "label": "K01 (B1,C6)", "x": 2, "y": 0 }, + { "label": "K11 (B2,C6)", "x": 3, "y": 0 }, + { "label": "K02 (B1,B6)", "x": 4, "y": 0 }, + { "label": "K12 (B2,B6)", "x": 5, "y": 0 }, + { "label": "K03 (B1,B5)", "x": 6, "y": 0 }, + { "label": "K13 (B2,B5)", "x": 7, "y": 0 }, + { "label": "K04 (B1,B4)", "x": 8, "y": 0 }, + { "label": "K14 (B2,B4)", "x": 9, "y": 0 }, + { "label": "K05 (B1,D7)", "x": 10, "y": 0 }, + { "label": "K15 (B2,D7)", "x": 11, "y": 0 }, + { "label": "K06 (B1,D5)", "x": 12, "y": 0 }, + { "label": "K26 (D1,D5)", "x": 13, "y": 0, "w": 2 }, + { "label": "K07 (B1,D3)", "x": 15, "y": 0 }, + { "label": "K20 (D1,C7)", "x": 0, "y": 1, "w": 1.5 }, + { "label": "K30 (D2,C7)", "x": 1.5, "y": 1 }, + { "label": "K21 (D1,C6)", "x": 2.5, "y": 1 }, + { "label": "K31 (D2,C6)", "x": 3.5, "y": 1 }, + { "label": "K22 (D1,B6)", "x": 4.5, "y": 1 }, + { "label": "K32 (D2,B6)", "x": 5.5, "y": 1 }, + { "label": "K23 (D1,B5)", "x": 6.5, "y": 1 }, + { "label": "K33 (D2,B5)", "x": 7.5, "y": 1 }, + { "label": "K24 (D1,B4)", "x": 8.5, "y": 1 }, + { "label": "K34 (D2,B4)", "x": 9.5, "y": 1 }, + { "label": "K25 (D1,D7)", "x": 10.5, "y": 1 }, + { "label": "K35 (D2,D7)", "x": 11.5, "y": 1 }, + { "label": "K36 (D2,D5)", "x": 12.5, "y": 1 }, + { "label": "K46 (D4,D5)", "x": 13.5, "y": 1, "w": 1.5 }, + { "label": "K37 (D2,D3)", "x": 15, "y": 1 }, + { "label": "K40 (D4,C7)", "x": 0, "y": 2, "w": 1.75 }, + { "label": "K50 (D6,C7)", "x": 1.75, "y": 2 }, + { "label": "K41 (D4,C6)", "x": 2.75, "y": 2 }, + { "label": "K51 (D6,C6)", "x": 3.75, "y": 2 }, + { "label": "K42 (D4,B6)", "x": 4.75, "y": 2 }, + { "label": "K52 (D6,B6)", "x": 5.75, "y": 2 }, + { "label": "K43 (D4,B5)", "x": 6.75, "y": 2 }, + { "label": "K53 (D6,B5)", "x": 7.75, "y": 2 }, + { "label": "K44 (D4,B4)", "x": 8.75, "y": 2 }, + { "label": "K54 (D6,B4)", "x": 9.75, "y": 2 }, + { "label": "K45 (D4,D7)", "x": 10.75, "y": 2 }, + { "label": "K55 (D6,D7)", "x": 11.75, "y": 2 }, + { "label": "K47 (D4,D3)", "x": 12.75, "y": 2, "w": 2.25 }, + { "label": "K57 (D6,D3)", "x": 15, "y": 2 }, + { "label": "K60 (F6,C7)", "x": 0, "y": 3, "w": 2.25 }, + { "label": "K70 (F7,C7)", "x": 2.25, "y": 3 }, + { "label": "K61 (F6,C6)", "x": 3.25, "y": 3 }, + { "label": "K71 (F7,C6)", "x": 4.25, "y": 3 }, + { "label": "K62 (F6,B6)", "x": 5.25, "y": 3 }, + { "label": "K72 (F7,B6)", "x": 6.25, "y": 3 }, + { "label": "K63 (F6,B5)", "x": 7.25, "y": 3 }, + { "label": "K73 (F7,B5)", "x": 8.25, "y": 3 }, + { "label": "K64 (F6,B4)", "x": 9.25, "y": 3 }, + { "label": "K74 (F7,B4)", "x": 10.25, "y": 3 }, + { "label": "K65 (F6,D7)", "x": 11.25, "y": 3 }, + { "label": "K75 (F7,D7)", "x": 12.25, "y": 3, "w": 1.75 }, + { "label": "K77 (F7,D3)", "x": 14, "y": 3 }, + { "label": "K67 (F6,D3)", "x": 15, "y": 3 }, + { "label": "K80 (F5,C7)", "x": 0, "y": 4, "w": 1.25 }, + { "label": "K90 (F4,C7)", "x": 1.25, "y": 4, "w": 1.25 }, + { "label": "K81 (F5,C6)", "x": 2.5, "y": 4, "w": 1.25 }, + { "label": "K92 (F4,B6)", "x": 3.75, "y": 4, "w": 6.25 }, + { "label": "K94 (F4,B4)", "x": 10, "y": 4, "w": 1.25 }, + { "label": "K85 (F5,D7)", "x": 11.25, "y": 4, "w": 1.25 }, + { "label": "K95 (F4,D7)", "x": 13, "y": 4 }, + { "label": "K97 (F4,D3)", "x": 14, "y": 4 }, + { "label": "K87 (F5,D3)", "x": 15, "y": 4 } + ] + }, + "LAYOUT_65_ansi_blocker_split_bs": { + "layout": [ + { "label": "K00 (B1,C7)", "x": 0, "y": 0 }, + { "label": "K10 (B2,C7)", "x": 1, "y": 0 }, + { "label": "K01 (B1,C6)", "x": 2, "y": 0 }, + { "label": "K11 (B2,C6)", "x": 3, "y": 0 }, + { "label": "K02 (B1,B6)", "x": 4, "y": 0 }, + { "label": "K12 (B2,B6)", "x": 5, "y": 0 }, + { "label": "K03 (B1,B5)", "x": 6, "y": 0 }, + { "label": "K13 (B2,B5)", "x": 7, "y": 0 }, + { "label": "K04 (B1,B4)", "x": 8, "y": 0 }, + { "label": "K14 (B2,B4)", "x": 9, "y": 0 }, + { "label": "K05 (B1,D7)", "x": 10, "y": 0 }, + { "label": "K15 (B2,D7)", "x": 11, "y": 0 }, + { "label": "K06 (B1,D5)", "x": 12, "y": 0 }, + { "label": "K26 (D1,D5)", "x": 13, "y": 0 }, + { "label": "K17 (B2,D3)", "x": 14, "y": 0 }, + { "label": "K07 (B1,D3)", "x": 15, "y": 0 }, + { "label": "K20 (D1,C7)", "x": 0, "y": 1, "w": 1.5 }, + { "label": "K30 (D2,C7)", "x": 1.5, "y": 1 }, + { "label": "K21 (D1,C6)", "x": 2.5, "y": 1 }, + { "label": "K31 (D2,C6)", "x": 3.5, "y": 1 }, + { "label": "K22 (D1,B6)", "x": 4.5, "y": 1 }, + { "label": "K32 (D2,B6)", "x": 5.5, "y": 1 }, + { "label": "K23 (D1,B5)", "x": 6.5, "y": 1 }, + { "label": "K33 (D2,B5)", "x": 7.5, "y": 1 }, + { "label": "K24 (D1,B4)", "x": 8.5, "y": 1 }, + { "label": "K34 (D2,B4)", "x": 9.5, "y": 1 }, + { "label": "K25 (D1,D7)", "x": 10.5, "y": 1 }, + { "label": "K35 (D2,D7)", "x": 11.5, "y": 1 }, + { "label": "K36 (D2,D5)", "x": 12.5, "y": 1 }, + { "label": "K46 (D4,D5)", "x": 13.5, "y": 1, "w": 1.5 }, + { "label": "K37 (D2,D3)", "x": 15, "y": 1 }, + { "label": "K40 (D4,C7)", "x": 0, "y": 2, "w": 1.75 }, + { "label": "K50 (D6,C7)", "x": 1.75, "y": 2 }, + { "label": "K41 (D4,C6)", "x": 2.75, "y": 2 }, + { "label": "K51 (D6,C6)", "x": 3.75, "y": 2 }, + { "label": "K42 (D4,B6)", "x": 4.75, "y": 2 }, + { "label": "K52 (D6,B6)", "x": 5.75, "y": 2 }, + { "label": "K43 (D4,B5)", "x": 6.75, "y": 2 }, + { "label": "K53 (D6,B5)", "x": 7.75, "y": 2 }, + { "label": "K44 (D4,B4)", "x": 8.75, "y": 2 }, + { "label": "K54 (D6,B4)", "x": 9.75, "y": 2 }, + { "label": "K45 (D4,D7)", "x": 10.75, "y": 2 }, + { "label": "K55 (D6,D7)", "x": 11.75, "y": 2 }, + { "label": "K47 (D4,D3)", "x": 12.75, "y": 2, "w": 2.25 }, + { "label": "K57 (D6,D3)", "x": 15, "y": 2 }, + { "label": "K60 (F6,C7)", "x": 0, "y": 3, "w": 2.25 }, + { "label": "K70 (F7,C7)", "x": 2.25, "y": 3 }, + { "label": "K61 (F6,C6)", "x": 3.25, "y": 3 }, + { "label": "K71 (F7,C6)", "x": 4.25, "y": 3 }, + { "label": "K62 (F6,B6)", "x": 5.25, "y": 3 }, + { "label": "K72 (F7,B6)", "x": 6.25, "y": 3 }, + { "label": "K63 (F6,B5)", "x": 7.25, "y": 3 }, + { "label": "K73 (F7,B5)", "x": 8.25, "y": 3 }, + { "label": "K64 (F6,B4)", "x": 9.25, "y": 3 }, + { "label": "K74 (F7,B4)", "x": 10.25, "y": 3 }, + { "label": "K65 (F6,D7)", "x": 11.25, "y": 3 }, + { "label": "K75 (F7,D7)", "x": 12.25, "y": 3, "w": 1.75 }, + { "label": "K77 (F7,D3)", "x": 14, "y": 3 }, + { "label": "K67 (F6,D3)", "x": 15, "y": 3 }, + { "label": "K80 (F5,C7)", "x": 0, "y": 4, "w": 1.25 }, + { "label": "K90 (F4,C7)", "x": 1.25, "y": 4, "w": 1.25 }, + { "label": "K81 (F5,C6)", "x": 2.5, "y": 4, "w": 1.25 }, + { "label": "K92 (F4,B6)", "x": 3.75, "y": 4, "w": 6.25 }, + { "label": "K94 (F4,B4)", "x": 10, "y": 4, "w": 1.25 }, + { "label": "K85 (F5,D7)", "x": 11.25, "y": 4, "w": 1.25 }, + { "label": "K95 (F4,D7)", "x": 13, "y": 4 }, + { "label": "K97 (F4,D3)", "x": 14, "y": 4 }, + { "label": "K87 (F5,D3)", "x": 15, "y": 4 } + ] + } + } +} diff --git a/keyboards/sawnsprojects/krush/krush65/solder/keymaps/ansi_blocker/keymap.c b/keyboards/sawnsprojects/krush/krush65/solder/keymaps/ansi_blocker/keymap.c new file mode 100644 index 00000000000..99c42be9540 --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush65/solder/keymaps/ansi_blocker/keymap.c @@ -0,0 +1,39 @@ +/* Copyright 2021 SawnsProjects + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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( + 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, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_SPC, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_65_ansi_blocker( + 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/sawnsprojects/krush/krush65/solder/keymaps/ansi_blocker/readme.md b/keyboards/sawnsprojects/krush/krush65/solder/keymaps/ansi_blocker/readme.md new file mode 100644 index 00000000000..181cc9a013f --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush65/solder/keymaps/ansi_blocker/readme.md @@ -0,0 +1 @@ +# The keymap for krush65 solder layout ansi blocker \ No newline at end of file diff --git a/keyboards/sawnsprojects/krush/krush65/solder/keymaps/ansi_blocker_split_all/keymap.c b/keyboards/sawnsprojects/krush/krush65/solder/keymaps/ansi_blocker_split_all/keymap.c new file mode 100644 index 00000000000..b2019e5ec82 --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush65/solder/keymaps/ansi_blocker_split_all/keymap.c @@ -0,0 +1,38 @@ +/* Copyright 2021 SawnsProjects + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_split_bs_sp( + 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_PSCR, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_LALT, KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_65_ansi_blocker_split_bs_sp( + 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_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/sawnsprojects/krush/krush65/solder/keymaps/ansi_blocker_split_all/readme.md b/keyboards/sawnsprojects/krush/krush65/solder/keymaps/ansi_blocker_split_all/readme.md new file mode 100644 index 00000000000..b6d1da89aa1 --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush65/solder/keymaps/ansi_blocker_split_all/readme.md @@ -0,0 +1 @@ +# The keymap for krush65 solder layout ansi blocker with split backspace and split spacebar \ No newline at end of file diff --git a/keyboards/sawnsprojects/krush/krush65/solder/keymaps/ansi_blocker_split_bs/keymap.c b/keyboards/sawnsprojects/krush/krush65/solder/keymaps/ansi_blocker_split_bs/keymap.c new file mode 100644 index 00000000000..6cd8dd4bafb --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush65/solder/keymaps/ansi_blocker_split_bs/keymap.c @@ -0,0 +1,39 @@ +/* Copyright 2021 SawnsProjects + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_split_bs( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_GRV, KC_PSCR, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_65_ansi_blocker_split_bs( + 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_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/sawnsprojects/krush/krush65/solder/keymaps/ansi_blocker_split_bs/readme.md b/keyboards/sawnsprojects/krush/krush65/solder/keymaps/ansi_blocker_split_bs/readme.md new file mode 100644 index 00000000000..162da7a9034 --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush65/solder/keymaps/ansi_blocker_split_bs/readme.md @@ -0,0 +1 @@ +# The keymap for krush65 solder layout ansi blocker with split backspace \ No newline at end of file diff --git a/keyboards/sawnsprojects/krush/krush65/solder/keymaps/default/keymap.c b/keyboards/sawnsprojects/krush/krush65/solder/keymaps/default/keymap.c new file mode 100644 index 00000000000..eecb1e5f8f9 --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush65/solder/keymaps/default/keymap.c @@ -0,0 +1,39 @@ +/* Copyright 2021 SawnsProjects + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_BSPC, KC_GRV, KC_PSCR, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_LALT, KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_all( + 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_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/sawnsprojects/krush/krush65/solder/keymaps/default/readme.md b/keyboards/sawnsprojects/krush/krush65/solder/keymaps/default/readme.md new file mode 100644 index 00000000000..1f98b857ce5 --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush65/solder/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for krush65 solder \ No newline at end of file diff --git a/keyboards/sawnsprojects/krush/krush65/solder/keymaps/sawns/keymap.c b/keyboards/sawnsprojects/krush/krush65/solder/keymaps/sawns/keymap.c new file mode 100644 index 00000000000..3a7fa10cfa4 --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush65/solder/keymaps/sawns/keymap.c @@ -0,0 +1,75 @@ +/* Copyright 2021 SawnsProjects + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_BSPC, KC_GRV, KC_PSCR, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_LALT, KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_all( + 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_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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 + ), + [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 + ), +}; + + +bool encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { + switch (get_highest_layer(layer_state)) { + case 0: + // main layer - move mouse right (CW) and left (CCW) + if (clockwise) { + tap_code_delay(KC_VOLU, 10); + } else { + tap_code_delay(KC_VOLD, 10); + } + break; + default: + // other layers - =/+ (quals/plus) (CW) and -/_ (minus/underscore) (CCW) + if (clockwise) { + tap_code16(C(KC_EQL)); + } else { + tap_code16(C(KC_MINS)); + } + break; + } + } + return false; +} \ No newline at end of file diff --git a/keyboards/sawnsprojects/krush/krush65/solder/keymaps/sawns/readme.md b/keyboards/sawnsprojects/krush/krush65/solder/keymaps/sawns/readme.md new file mode 100644 index 00000000000..ff710c521f0 --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush65/solder/keymaps/sawns/readme.md @@ -0,0 +1 @@ +#custom keymap for MikeTheSan \ No newline at end of file diff --git a/keyboards/sawnsprojects/krush/krush65/solder/keymaps/sawns/rules.mk b/keyboards/sawnsprojects/krush/krush65/solder/keymaps/sawns/rules.mk new file mode 100644 index 00000000000..036bd6d1c3e --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush65/solder/keymaps/sawns/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/sawnsprojects/krush/krush65/solder/keymaps/via/keymap.c b/keyboards/sawnsprojects/krush/krush65/solder/keymaps/via/keymap.c new file mode 100644 index 00000000000..8036529c91a --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush65/solder/keymaps/via/keymap.c @@ -0,0 +1,51 @@ +/* Copyright 2021 SawnsProjects + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_BSPC, KC_GRV, KC_PSCR, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_LALT, KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_all( + 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_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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 + ), + [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 + ), +}; diff --git a/keyboards/sawnsprojects/krush/krush65/solder/keymaps/via/readme.md b/keyboards/sawnsprojects/krush/krush65/solder/keymaps/via/readme.md new file mode 100644 index 00000000000..2c88050060d --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush65/solder/keymaps/via/readme.md @@ -0,0 +1 @@ +# The VIA keymap for krush65 solder \ No newline at end of file diff --git a/keyboards/sawnsprojects/krush/krush65/solder/keymaps/via/rules.mk b/keyboards/sawnsprojects/krush/krush65/solder/keymaps/via/rules.mk new file mode 100644 index 00000000000..36b7ba9cbc9 --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush65/solder/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/sawnsprojects/krush/krush65/solder/readme.md b/keyboards/sawnsprojects/krush/krush65/solder/readme.md new file mode 100644 index 00000000000..27af715eda2 --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush65/solder/readme.md @@ -0,0 +1,15 @@ +# Krush65 solder + +![Krush65](https://cdn.shopify.com/s/files/1/0299/9497/5365/files/4_-_2BS9fH2_2048x2048.jpg) + +A 65% keyboard PCB made and sold by SawnsProjects with Nuxros in [mechkey.store](https://mechkey.store/blogs/store-updates/introducing-krush-65). + +* Keyboard Maintainer: [Mai The San](https://github.com/MaiTheSan) +* Hardware Supported: Krush65 +* Hardware Availability: [Facebook](https://www.facebook.com/groups/vnmkmarket/posts/1410794482649627) + +Make example for this keyboard (after setting up your build environment): + + make sawnsprojects/krush65/solder: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 diff --git a/keyboards/sawnsprojects/krush/krush65/solder/rules.mk b/keyboards/sawnsprojects/krush/krush65/solder/rules.mk new file mode 100644 index 00000000000..1adb9965042 --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush65/solder/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # 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 +ENCODER_ENABLE = yes + +LAYOUTS = 65_ansi_blocker 65_ansi_blocker_split_bs \ No newline at end of file diff --git a/keyboards/sawnsprojects/krush/krush65/solder/solder.c b/keyboards/sawnsprojects/krush/krush65/solder/solder.c new file mode 100644 index 00000000000..b8a7729725c --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush65/solder/solder.c @@ -0,0 +1,53 @@ +/* Copyright 2021 SawnsProjects + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 "solder.h" +#include "encoder_actions.h" + + /* Custom encoder control - handles CW/CCW turning of encoder + * Default behavior: + * main layer: + * CW: move mouse right + * CCW: move mouse left + * other layers: + * CW: = (equals/plus - increase slider in Adobe products) + * CCW: - (minus/underscore - decrease slider in adobe products) + */ +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { return false; } + if (index == 0) { + switch (get_highest_layer(layer_state)) { + + case 0: + // main layer - move mouse right (CW) and left (CCW) + if (clockwise) { + tap_code_delay(KC_VOLU, 10); + } else { + tap_code_delay(KC_VOLD, 10); + } + break; + default: + // other layers - =/+ (quals/plus) (CW) and -/_ (minus/underscore) (CCW) + if (clockwise) { + tap_code16(C(KC_EQL)); + } else { + tap_code16(C(KC_MINS)); + } + break; + } + } + return true; +} \ No newline at end of file diff --git a/keyboards/sawnsprojects/krush/krush65/solder/solder.h b/keyboards/sawnsprojects/krush/krush65/solder/solder.h new file mode 100644 index 00000000000..58f6bed57b1 --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush65/solder/solder.h @@ -0,0 +1,93 @@ +/* Copyright 2021 SawnsProjects + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_all( \ + K00, K10, K01, K11, K02, K12, K03, K13, K04, K14, K05, K15, K06, K26, K17, K07, \ + K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, K35, K36, K46, K37, \ + K40, K50, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, K47, K57, \ + K60, K70, K61, K71, K62, K72, K63, K73, K64, K74, K65, K75, K77, K67, \ + K80, K90, K81, K82, K92, K93, K94, K85, K95, K97, K87 \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07 }, \ + { K10, K11, K12, K13, K14, K15, KC_NO, K17 }, \ + { K20, K21, K22, K23, K24, K25, K26, KC_NO }, \ + { K30, K31, K32, K33, K34, K35, K36, K37 }, \ + { K40, K41, K42, K43, K44, K45, K46, K47 }, \ + { K50, K51, K52, K53, K54, K55, KC_NO, K57 }, \ + { K60, K61, K62, K63, K64, K65, KC_NO, K67 }, \ + { K70, K71, K72, K73, K74, K75, KC_NO, K77 }, \ + { K80, K81, K82, KC_NO, KC_NO, K85, KC_NO, K87 }, \ + { K90, KC_NO, K92, K93, K94, K95, KC_NO, K97 }, \ +} +#define LAYOUT_65_ansi_blocker( \ + K00, K10, K01, K11, K02, K12, K03, K13, K04, K14, K05, K15, K06, K26, K07, \ + K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, K35, K36, K46, K37, \ + K40, K50, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, K47, K57, \ + K60, K70, K61, K71, K62, K72, K63, K73, K64, K74, K65, K75, K77, K67, \ + K80, K90, K81, K92, K94, K85, K95, K97, K87 \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07 }, \ + { K10, K11, K12, K13, K14, K15, KC_NO, KC_NO }, \ + { K20, K21, K22, K23, K24, K25, K26, KC_NO }, \ + { K30, K31, K32, K33, K34, K35, K36, K37 }, \ + { K40, K41, K42, K43, K44, K45, K46, K47 }, \ + { K50, K51, K52, K53, K54, K55, KC_NO, K57 }, \ + { K60, K61, K62, K63, K64, K65, KC_NO, K67 }, \ + { K70, K71, K72, K73, K74, K75, KC_NO, K77 }, \ + { K80, K81, KC_NO, KC_NO, KC_NO, K85, KC_NO, K87 }, \ + { K90, KC_NO, K92, KC_NO, K94, K95, KC_NO, K97 }, \ +} +#define LAYOUT_65_ansi_blocker_split_bs( \ + K00, K10, K01, K11, K02, K12, K03, K13, K04, K14, K05, K15, K06, K26, K17, K07, \ + K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, K35, K36, K46, K37, \ + K40, K50, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, K47, K57, \ + K60, K70, K61, K71, K62, K72, K63, K73, K64, K74, K65, K75, K77, K67, \ + K80, K90, K81, K92, K94, K85, K95, K97, K87 \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07 }, \ + { K10, K11, K12, K13, K14, K15, KC_NO, K17 }, \ + { K20, K21, K22, K23, K24, K25, K26, KC_NO }, \ + { K30, K31, K32, K33, K34, K35, K36, K37 }, \ + { K40, K41, K42, K43, K44, K45, K46, K47 }, \ + { K50, K51, K52, K53, K54, K55, KC_NO, K57 }, \ + { K60, K61, K62, K63, K64, K65, KC_NO, K67 }, \ + { K70, K71, K72, K73, K74, K75, KC_NO, K77 }, \ + { K80, K81, KC_NO, KC_NO, KC_NO, K85, KC_NO, K87 }, \ + { K90, KC_NO, K92, KC_NO, K94, K95, KC_NO, K97 }, \ +} +#define LAYOUT_65_ansi_blocker_split_bs_sp( \ + K00, K10, K01, K11, K02, K12, K03, K13, K04, K14, K05, K15, K06, K26, K17, K07, \ + K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, K35, K36, K46, K37, \ + K40, K50, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, K47, K57, \ + K60, K70, K61, K71, K62, K72, K63, K73, K64, K74, K65, K75, K77, K67, \ + K80, K90, K81, K82, K92, K93, K94, K85, K95, K97, K87 \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07 }, \ + { K10, K11, K12, K13, K14, K15, KC_NO, K17 }, \ + { K20, K21, K22, K23, K24, K25, K26, KC_NO }, \ + { K30, K31, K32, K33, K34, K35, K36, K37 }, \ + { K40, K41, K42, K43, K44, K45, K46, K47 }, \ + { K50, K51, K52, K53, K54, K55, KC_NO, K57 }, \ + { K60, K61, K62, K63, K64, K65, KC_NO, K67 }, \ + { K70, K71, K72, K73, K74, K75, KC_NO, K77 }, \ + { K80, K81, K82, KC_NO, KC_NO, K85, KC_NO, K87 }, \ + { K90, KC_NO, K92, K93, K94, K95, KC_NO, K97 }, \ +} + diff --git a/keyboards/sawnsprojects/satxri6key/info.json b/keyboards/sawnsprojects/satxri6key/info.json index 1931e1a21fc..77897e179c2 100644 --- a/keyboards/sawnsprojects/satxri6key/info.json +++ b/keyboards/sawnsprojects/satxri6key/info.json @@ -14,5 +14,4 @@ ] } } - ,"meta": "https://noroadsleft.github.io/kbf_qmk_converter/" } diff --git a/keyboards/scarletbandana/rules.mk b/keyboards/scarletbandana/rules.mk index 408264126e0..5f084a84ab9 100644 --- a/keyboards/scarletbandana/rules.mk +++ b/keyboards/scarletbandana/rules.mk @@ -16,7 +16,6 @@ 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 = no # USB Nkey Rollover -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = yes # Audio output RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality, also set ISSI_ENABLE below for Miera diff --git a/keyboards/sck/m0116b/config.h b/keyboards/sck/m0116b/config.h index 63b74b902e3..b01ea2d2ef7 100644 --- a/keyboards/sck/m0116b/config.h +++ b/keyboards/sck/m0116b/config.h @@ -121,59 +121,6 @@ along with this program. If not, see . */ //#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. diff --git a/keyboards/sck/m0116b/rules.mk b/keyboards/sck/m0116b/rules.mk index 09baed14c5c..576d4ef5f27 100644 --- a/keyboards/sck/m0116b/rules.mk +++ b/keyboards/sck/m0116b/rules.mk @@ -18,5 +18,4 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = yes # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output diff --git a/keyboards/sck/neiso/rules.mk b/keyboards/sck/neiso/rules.mk index b2fa9d130af..bc83db6a6c2 100644 --- a/keyboards/sck/neiso/rules.mk +++ b/keyboards/sck/neiso/rules.mk @@ -18,5 +18,4 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = yes # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output diff --git a/keyboards/sck/osa/config.h b/keyboards/sck/osa/config.h index 87651f1f890..957652f286c 100644 --- a/keyboards/sck/osa/config.h +++ b/keyboards/sck/osa/config.h @@ -127,59 +127,6 @@ along with this program. If not, see . */ //#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_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) - -/* 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. diff --git a/keyboards/sck/osa/rules.mk b/keyboards/sck/osa/rules.mk index 2f68f82d133..3698c0ba0ea 100644 --- a/keyboards/sck/osa/rules.mk +++ b/keyboards/sck/osa/rules.mk @@ -18,7 +18,6 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = yes # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output LAYOUTS = alice alice_split_bs diff --git a/keyboards/scythe/config.h b/keyboards/scythe/config.h index a235f8d31f9..ad4d1ded4f2 100644 --- a/keyboards/scythe/config.h +++ b/keyboards/scythe/config.h @@ -101,54 +101,6 @@ along with this program. If not, see . */ //#define FORCE_NKRO -/* - * Magic Key Options - * - * Magic keys are hotkey commands that allow control over firmware functions of - * the keyboard. They are best used in combination with the HID Listen program, - * found here: https://www.pjrc.com/teensy/hid_listen.html - * - * The options below allow the magic key functionality to be changed. This is - * useful if your keyboard/keypad is missing keys and you want magic key support. - * - */ - -/* control how magic key switches layers */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false - -/* override magic key keymap */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM -//#define MAGIC_KEY_HELP1 H -//#define MAGIC_KEY_HELP2 SLASH -//#define MAGIC_KEY_DEBUG D -//#define MAGIC_KEY_DEBUG_MATRIX X -//#define MAGIC_KEY_DEBUG_KBD K -//#define MAGIC_KEY_DEBUG_MOUSE M -//#define MAGIC_KEY_VERSION V -//#define MAGIC_KEY_STATUS S -//#define MAGIC_KEY_CONSOLE C -//#define MAGIC_KEY_LAYER0_ALT1 ESC -//#define MAGIC_KEY_LAYER0_ALT2 GRAVE -//#define MAGIC_KEY_LAYER0 0 -//#define MAGIC_KEY_LAYER1 1 -//#define MAGIC_KEY_LAYER2 2 -//#define MAGIC_KEY_LAYER3 3 -//#define MAGIC_KEY_LAYER4 4 -//#define MAGIC_KEY_LAYER5 5 -//#define MAGIC_KEY_LAYER6 6 -//#define MAGIC_KEY_LAYER7 7 -//#define MAGIC_KEY_LAYER8 8 -//#define MAGIC_KEY_LAYER9 9 -//#define MAGIC_KEY_BOOTLOADER PAUSE -//#define MAGIC_KEY_LOCK CAPS -//#define MAGIC_KEY_EEPROM E -//#define MAGIC_KEY_NKRO N -//#define MAGIC_KEY_SLEEP_LED Z - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/scythe/rules.mk b/keyboards/scythe/rules.mk index bc1647a4aae..5d08e37774f 100644 --- a/keyboards/scythe/rules.mk +++ b/keyboards/scythe/rules.mk @@ -18,7 +18,6 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = no # USB Nkey Rollover BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output SPLIT_KEYBOARD = yes # Use shared split_common diff --git a/keyboards/senselessclay/ck60/ck60.c b/keyboards/senselessclay/ck60/ck60.c new file mode 100644 index 00000000000..a2fe38aac79 --- /dev/null +++ b/keyboards/senselessclay/ck60/ck60.c @@ -0,0 +1,17 @@ +/* Copyright 2020 Hadi Iskandarani + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 "ck60.h" \ No newline at end of file diff --git a/keyboards/senselessclay/ck60/ck60.h b/keyboards/senselessclay/ck60/ck60.h new file mode 100644 index 00000000000..fa83202dfa5 --- /dev/null +++ b/keyboards/senselessclay/ck60/ck60.h @@ -0,0 +1,35 @@ +/* Copyright 2020 Hadi Iskandarani + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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( \ + 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, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, \ + K400, K401, K402, K406, 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, ____ }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, ____ }, \ + { K400, K401, K402, ____, ____, ____, K406, ____, ____, ____, K410, K411, K412, K413 } \ +} diff --git a/keyboards/senselessclay/ck60/config.h b/keyboards/senselessclay/ck60/config.h new file mode 100644 index 00000000000..7e4a493701a --- /dev/null +++ b/keyboards/senselessclay/ck60/config.h @@ -0,0 +1,119 @@ +/* +Copyright 2020 Hadi Iskandarani + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 0x4849 // HI +#define PRODUCT_ID 0x0601 // 60rgb (1) +#define DEVICE_VER 0x0000 // rev0 +#define MANUFACTURER senselessclay +#define PRODUCT ck60 + +/* 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) + * + */ +/* rev0 */ +#define MATRIX_ROW_PINS { B3, B2, F1, F4, F5 } +#define MATRIX_COL_PINS { F0, D5, D3, D2, D1, D0, C7, C6, B6, B5, B4, D7, D6, D4 } + +//#define UNUSED_PINS { B0, B7, E6 } + +/* 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 + +/* Bootmagic Lite key configuration */ +//#define BOOTMAGIC_LITE_ROW 0 +//#define BOOTMAGIC_LITE_COLUMN 0 + +/* RGB Backlighting */ +#define RGB_DI_PIN B1 +#define RGBLED_NUM 62 +#define RGBLIGHT_ANIMATIONS +#define RGBLIGHT_LIMIT_VAL 128 +#define RGBLIGHT_SLEEP +#define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_SWIRL+5 \ No newline at end of file diff --git a/keyboards/senselessclay/ck60/info.json b/keyboards/senselessclay/ck60/info.json new file mode 100644 index 00000000000..e188740c3c2 --- /dev/null +++ b/keyboards/senselessclay/ck60/info.json @@ -0,0 +1,10 @@ +{ + "keyboard_name": "CK60", + "url": "https://candykeys.com", + "maintainer": "hadi", + "layouts": { + "LAYOUT": { + "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0, "w":2}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.75, "y":1, "w":1.25, "h":2}, {"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":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":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}] + } + } +} \ No newline at end of file diff --git a/keyboards/senselessclay/ck60/keymaps/default/keymap.c b/keyboards/senselessclay/ck60/keymaps/default/keymap.c new file mode 100644 index 00000000000..2ac1e069817 --- /dev/null +++ b/keyboards/senselessclay/ck60/keymaps/default/keymap.c @@ -0,0 +1,51 @@ +/* Copyright 2020 Hadi Iskandarani + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 { + _0, + _1, + _2, + _3, +}; + +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_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_ENT, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, + 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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL), + [_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, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_TRNS, + KC_CAPS, KC_VOLD, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLU, KC_TRNS, KC_INS, KC_HOME, KC_PGUP, KC_LEFT, KC_RIGHT, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_END, KC_PGDN, KC_DOWN, 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, 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, KC_TRNS, KC_TRNS) +}; \ No newline at end of file diff --git a/keyboards/senselessclay/ck60/keymaps/via/keymap.c b/keyboards/senselessclay/ck60/keymaps/via/keymap.c new file mode 100644 index 00000000000..2ac1e069817 --- /dev/null +++ b/keyboards/senselessclay/ck60/keymaps/via/keymap.c @@ -0,0 +1,51 @@ +/* Copyright 2020 Hadi Iskandarani + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 { + _0, + _1, + _2, + _3, +}; + +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_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_ENT, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, + 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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL), + [_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, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_TRNS, + KC_CAPS, KC_VOLD, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLU, KC_TRNS, KC_INS, KC_HOME, KC_PGUP, KC_LEFT, KC_RIGHT, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_END, KC_PGDN, KC_DOWN, 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, 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, KC_TRNS, KC_TRNS) +}; \ No newline at end of file diff --git a/keyboards/senselessclay/ck60/keymaps/via/rules.mk b/keyboards/senselessclay/ck60/keymaps/via/rules.mk new file mode 100644 index 00000000000..036bd6d1c3e --- /dev/null +++ b/keyboards/senselessclay/ck60/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/senselessclay/ck60/readme.md b/keyboards/senselessclay/ck60/readme.md new file mode 100644 index 00000000000..32700967da2 --- /dev/null +++ b/keyboards/senselessclay/ck60/readme.md @@ -0,0 +1,19 @@ +# ck60 + +A 60% keyboard implementation based around the ATMEGA32u4 with per-key RGB. + +* Keyboard Maintainer: [hadi](https://github.com/senselessclay) +* Hardware Supported: CK60 PCB +* Hardware Availability: https://candykeys.com/ + +Make example for this keyboard (after setting up your build environment): + + make senselessclay/ck60:default + +Flashing example for this keyboard: + + make senselessclay/ck60: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). + +If you'd like to reset the board into bootloader mode for flashing using [QMK Toolbox](https://github.com/qmk/qmk_toolbox), simply press the reset button directly above the controller assembly on the bottom side of the PCB. \ No newline at end of file diff --git a/keyboards/senselessclay/ck60/rules.mk b/keyboards/senselessclay/ck60/rules.mk new file mode 100644 index 00000000000..56ba35b4b85 --- /dev/null +++ b/keyboards/senselessclay/ck60/rules.mk @@ -0,0 +1,21 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = 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 +AUDIO_ENABLE = no # Audio output \ No newline at end of file diff --git a/keyboards/senselessclay/ck65/ck65.c b/keyboards/senselessclay/ck65/ck65.c new file mode 100644 index 00000000000..77128d9bf82 --- /dev/null +++ b/keyboards/senselessclay/ck65/ck65.c @@ -0,0 +1,17 @@ +/* Copyright 2020 Hadi Iskandarani + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 "ck65.h" \ No newline at end of file diff --git a/keyboards/senselessclay/ck65/ck65.h b/keyboards/senselessclay/ck65/ck65.h new file mode 100644 index 00000000000..1d258ee3465 --- /dev/null +++ b/keyboards/senselessclay/ck65/ck65.h @@ -0,0 +1,35 @@ +/* Copyright 2020 Hadi Iskandarani + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K214, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, \ + K400, K401, K402, K406, K409, K410, K411, K412, K413, K414 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, ____, K214 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314 }, \ + { K400, K401, K402, ____, ____, ____, K406, ____, ____, K409, K410, K411, K412, K413, K414 } \ +} diff --git a/keyboards/senselessclay/ck65/config.h b/keyboards/senselessclay/ck65/config.h new file mode 100644 index 00000000000..772b2e410a2 --- /dev/null +++ b/keyboards/senselessclay/ck65/config.h @@ -0,0 +1,119 @@ +/* +Copyright 2020 Hadi Iskandarani + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 0x4849 // HI +#define PRODUCT_ID 0x0651 // 65rgb (1) +#define DEVICE_VER 0x0000 // rev0 +#define MANUFACTURER senselessclay +#define PRODUCT ck65 + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +/* rev0 */ +#define MATRIX_ROW_PINS { B3, B2, F1, F4, F5 } +#define MATRIX_COL_PINS { F0, D5, D3, D2, D1, D0, F7, C7, C6, B6, B5, B4, D7, D6, D4 } + +//#define UNUSED_PINS { B0, B7, E6 } + +/* 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 + +/* Bootmagic Lite key configuration */ +//#define BOOTMAGIC_LITE_ROW 0 +//#define BOOTMAGIC_LITE_COLUMN 0 + +/* RGB Backlighting */ +#define RGB_DI_PIN B1 +#define RGBLED_NUM 69 +#define RGBLIGHT_ANIMATIONS +#define RGBLIGHT_LIMIT_VAL 122 +#define RGBLIGHT_SLEEP +#define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_SWIRL+5 \ No newline at end of file diff --git a/keyboards/senselessclay/ck65/info.json b/keyboards/senselessclay/ck65/info.json new file mode 100644 index 00000000000..fbcc9593761 --- /dev/null +++ b/keyboards/senselessclay/ck65/info.json @@ -0,0 +1,10 @@ +{ + "keyboard_name": "CK65", + "url": "https://candykeys.com", + "maintainer": "hadi", + "layouts": { + "LAYOUT": { + "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0, "w":2}, {"x":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.75, "y":1, "w":1.25, "h":2}, {"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":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}] + } + } +} \ No newline at end of file diff --git a/keyboards/senselessclay/ck65/keymaps/default/keymap.c b/keyboards/senselessclay/ck65/keymaps/default/keymap.c new file mode 100644 index 00000000000..be627f899df --- /dev/null +++ b/keyboards/senselessclay/ck65/keymaps/default/keymap.c @@ -0,0 +1,51 @@ +/* Copyright 2020 Hadi Iskandarani + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 { + _0, + _1, + _2, + _3, +}; + +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_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_ENT, KC_END, + 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_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, KC_RGUI, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT), + [_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, 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_UP, KC_TRNS, KC_TRNS, KC_TRNS, + KC_CAPS, KC_VOLD, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLU, KC_TRNS, KC_INS, KC_HOME, KC_PGUP, KC_LEFT, KC_RIGHT, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, 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, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +}; \ No newline at end of file diff --git a/keyboards/senselessclay/ck65/keymaps/via/keymap.c b/keyboards/senselessclay/ck65/keymaps/via/keymap.c new file mode 100644 index 00000000000..be627f899df --- /dev/null +++ b/keyboards/senselessclay/ck65/keymaps/via/keymap.c @@ -0,0 +1,51 @@ +/* Copyright 2020 Hadi Iskandarani + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 { + _0, + _1, + _2, + _3, +}; + +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_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_ENT, KC_END, + 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_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, KC_RGUI, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT), + [_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, 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_UP, KC_TRNS, KC_TRNS, KC_TRNS, + KC_CAPS, KC_VOLD, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLU, KC_TRNS, KC_INS, KC_HOME, KC_PGUP, KC_LEFT, KC_RIGHT, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, 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, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +}; \ No newline at end of file diff --git a/keyboards/senselessclay/ck65/keymaps/via/rules.mk b/keyboards/senselessclay/ck65/keymaps/via/rules.mk new file mode 100644 index 00000000000..036bd6d1c3e --- /dev/null +++ b/keyboards/senselessclay/ck65/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/senselessclay/ck65/readme.md b/keyboards/senselessclay/ck65/readme.md new file mode 100644 index 00000000000..653266a59f6 --- /dev/null +++ b/keyboards/senselessclay/ck65/readme.md @@ -0,0 +1,19 @@ +# ck65 + +A 65% keyboard implementation based around the ATMEGA32u4 with per-key RGB. + +* Keyboard Maintainer: [hadi](https://github.com/senselessclay) +* Hardware Supported: CK65 PCB +* Hardware Availability: https://candykeys.com/ + +Make example for this keyboard (after setting up your build environment): + + make senselessclay/ck65:default + +Flashing example for this keyboard: + + make senselessclay/ck65: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). + +If you'd like to reset the board into bootloader mode for flashing using [QMK Toolbox](https://github.com/qmk/qmk_toolbox), simply press the reset button directly above the controller assembly on the bottom side of the PCB. \ No newline at end of file diff --git a/keyboards/senselessclay/ck65/rules.mk b/keyboards/senselessclay/ck65/rules.mk new file mode 100644 index 00000000000..56ba35b4b85 --- /dev/null +++ b/keyboards/senselessclay/ck65/rules.mk @@ -0,0 +1,21 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = 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 +AUDIO_ENABLE = no # Audio output \ No newline at end of file diff --git a/keyboards/sentraq/number_pad/rules.mk b/keyboards/sentraq/number_pad/rules.mk index 3ecfb612e6a..4fe63f4f8b3 100644 --- a/keyboards/sentraq/number_pad/rules.mk +++ b/keyboards/sentraq/number_pad/rules.mk @@ -18,5 +18,4 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = no # USB Nkey Rollover BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output diff --git a/keyboards/sentraq/s60_x/default/rules.mk b/keyboards/sentraq/s60_x/default/rules.mk index 45ae2f090eb..328768f9e72 100644 --- a/keyboards/sentraq/s60_x/default/rules.mk +++ b/keyboards/sentraq/s60_x/default/rules.mk @@ -13,7 +13,6 @@ EXTRAKEY_ENABLE = yes # Audio control and System control # 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 -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output LAYOUTS = 60_ansi 60_ansi_split_bs_rshift 60_iso 60_hhkb diff --git a/keyboards/sentraq/s60_x/rgb/rules.mk b/keyboards/sentraq/s60_x/rgb/rules.mk index 23259e93959..dd294d1be39 100644 --- a/keyboards/sentraq/s60_x/rgb/rules.mk +++ b/keyboards/sentraq/s60_x/rgb/rules.mk @@ -13,7 +13,6 @@ EXTRAKEY_ENABLE = yes # Audio control and System control # 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 -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output CONSOLE_ENABLE = no # Console for debug COMMAND_ENABLE = no # Commands for debug and configuration diff --git a/keyboards/sentraq/s65_plus/rules.mk b/keyboards/sentraq/s65_plus/rules.mk index 8c1227c3519..2289322fa7d 100644 --- a/keyboards/sentraq/s65_plus/rules.mk +++ b/keyboards/sentraq/s65_plus/rules.mk @@ -12,7 +12,6 @@ MOUSEKEY_ENABLE = no # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality diff --git a/keyboards/sentraq/s65_x/rules.mk b/keyboards/sentraq/s65_x/rules.mk index 2e5991e3e4a..7212ce40d30 100644 --- a/keyboards/sentraq/s65_x/rules.mk +++ b/keyboards/sentraq/s65_x/rules.mk @@ -12,7 +12,6 @@ MOUSEKEY_ENABLE = no # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality diff --git a/keyboards/sets3n/kk980/info.json b/keyboards/sets3n/kk980/info.json index e6622d14bf4..dad5530d444 100644 --- a/keyboards/sets3n/kk980/info.json +++ b/keyboards/sets3n/kk980/info.json @@ -73,10 +73,10 @@ {"label":";:", "x": 10.75, "y": 3.5}, {"label":"'\"", "x": 11.75, "y": 3.5}, {"label":"RETURN", "x": 12.75, "y": 3.5, "w": 2.25}, - {"label":"4", "x": 15.5, "y": 3.5, "w": 1.5}, + {"label":"4", "x": 15.5, "y": 3.5}, {"label":"5", "x": 16.5, "y": 3.5}, {"label":"6", "x": 17.5, "y": 3.5}, - {"label":"+", "x": 18.5, "y": 3.5, "h": 2}, + {"label":"+", "x": 18.5, "y": 2.5, "h": 2}, {"label":"LSHIFT", "x": 0, "y": 4.5, "w": 2.25}, {"label":"Z", "x": 2.25, "y": 4.5}, @@ -98,19 +98,18 @@ {"label":"LCTRL", "x": 0, "y": 5.5, "w": 1.25}, {"label":"LWIN", "x": 1.25, "y": 5.5}, {"label":"LALT", "x": 2.25, "y": 5.5, "w": 1.25}, - {"label":"SPACE", "x": 3.25, "y": 5.5, "w": 6.25}, - {"label":"RALT", "x": 9.5, "y": 5.5}, - {"label":"FN", "x": 10.5, "y": 5.5}, - {"label":"RCTRL", "x": 11.5, "y": 5.5, "w": 1.25}, - {"label":"LEFT", "x": 13, "y": 5.75}, - {"label":"DOWN", "x": 14, "y": 5.75}, - {"label":"RIGHT", "x": 15, "y": 5.75}, + {"label":"SPACE", "x": 3.5, "y": 5.5, "w": 6.25}, + {"label":"RALT", "x": 9.75, "y": 5.5}, + {"label":"FN", "x": 10.75, "y": 5.5}, + {"label":"RCTRL", "x": 11.75, "y": 5.5, "w": 1.25}, + {"label":"LEFT", "x": 13.25, "y": 5.75}, + {"label":"DOWN", "x": 14.25, "y": 5.75}, + {"label":"RIGHT", "x": 15.25, "y": 5.75}, {"label":"0", "x": 16.5, "y": 5.5}, - {"label":".DEL", "x": 17.5, "y": 5.5, "w": 2.75}, - {"label":"ENTER", "x": 18.5, "y": 5.5, "h": 2} + {"label":".DEL", "x": 17.5, "y": 5.5}, + {"label":"ENTER", "x": 18.5, "y": 4.5, "h": 2} ] } } } - diff --git a/keyboards/sets3n/kk980/keymaps/default/keymap.c b/keyboards/sets3n/kk980/keymaps/default/keymap.c index 171cdb21277..f4255f45058 100644 --- a/keyboards/sets3n/kk980/keymaps/default/keymap.c +++ b/keyboards/sets3n/kk980/keymaps/default/keymap.c @@ -18,22 +18,23 @@ 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_DEL, KC_INS, KC_PGDN, 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_NLCK, KC_PSLS, KC_PAST, KC_PMNS, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_P7, KC_P8, KC_P9, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_BSPC, KC_BSLS, KC_RALT, KC_RGUI, MO(1), KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), - - [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_MUTE, KC_VOLD, 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, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, BL_TOGG, BL_DEC, 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_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), - + [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_DEL, KC_INS, KC_PGDN, 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_NLCK, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT + ), + + [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_MUTE, KC_VOLD, KC_VOLU, 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, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, BL_TOGG, BL_DEC, 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, 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/sets3n/kk980/keymaps/via/keymap.c b/keyboards/sets3n/kk980/keymaps/via/keymap.c index 171cdb21277..f4255f45058 100644 --- a/keyboards/sets3n/kk980/keymaps/via/keymap.c +++ b/keyboards/sets3n/kk980/keymaps/via/keymap.c @@ -18,22 +18,23 @@ 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_DEL, KC_INS, KC_PGDN, 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_NLCK, KC_PSLS, KC_PAST, KC_PMNS, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_P7, KC_P8, KC_P9, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_BSPC, KC_BSLS, KC_RALT, KC_RGUI, MO(1), KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), - - [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_MUTE, KC_VOLD, 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, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, BL_TOGG, BL_DEC, 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_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), - + [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_DEL, KC_INS, KC_PGDN, 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_NLCK, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT + ), + + [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_MUTE, KC_VOLD, KC_VOLU, 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, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, BL_TOGG, BL_DEC, 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, 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/sets3n/kk980/kk980.h b/keyboards/sets3n/kk980/kk980.h index 238d124bebe..c7589e8c400 100644 --- a/keyboards/sets3n/kk980/kk980.h +++ b/keyboards/sets3n/kk980/kk980.h @@ -1,15 +1,15 @@ /* Copyright 2021 Sets3n - * + * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 2 of the License, or * (at your option) any later version. - * + * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ @@ -17,18 +17,38 @@ #include "quantum.h" +#define XXX KC_NO + +/* + * ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ + * │00 │ │01 │02 │03 │04 │ │05 │06 │07 │08 │ │09 │0A │0B │0C │ │0D │0E │0F │0G │ + * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┬───┐ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │56 │ │1D │1E │1F │1G │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┼───┤ + * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │57 │ │2D │2E │2F │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ├───┼───┼───┤3G │ + * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │ │3D │3E │3F │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┘ ├───┼───┼───┼───┤ + * │40 │41 │42 │43 │44 │45 │46 │47 │48 │49 │4A │4B │┌───┐│4D │4E │4F │ │ + * ├────┬───┼───┴┬──┴───┴───┴───┴───┴───┴─┬─┴─┬─┴─┬─┴──┬───┘│4C │└───┼───┼───┤5G │ + * │50 │51 │52 │55 │58 │59 │5A │┌───┼───┼───┐│5E │5F │ │ + * └────┴───┴────┴────────────────────────┴───┴───┴────┘│5B │5C │5D │└───┴───┴───┘ + * └───┴───┴───┘ + */ + #define LAYOUT( \ - K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, \ - K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K116, \ - K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, \ - K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315, K316, \ - K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, K414, K415, \ - K500, K501, K502, K505, K506, K507, K508, K509, K510, K511, K512, K513, K514, K515, K516 \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K56, K1D, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K57, K2D, K2E, K2F, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, K3G, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E, K4F, \ + K50, K51, K52, K55, K58, K59, K5A, K5B, K5C, K5D, K5E, K5F, K5G \ ) { \ - { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016 }, \ - { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K116 }, \ - { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, KC_NO }, \ - { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315, K316 }, \ - { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, K414, K415, KC_NO }, \ - { K500, K501, K502, KC_NO, KC_NO, K505, K506, K507, K508, K509, K510, K511, K512, K513, K514, K515, K516 } \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, XXX }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, K3G }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E, K4F, XXX }, \ + { K50, K51, K52, XXX, XXX, K55, K56, K57, K58, K59, K5A, K5B, K5C, K5D, K5E, K5F, K5G } \ } diff --git a/keyboards/setta21/rules.mk b/keyboards/setta21/rules.mk index 9f598e457da..3cd0f2b5fe8 100644 --- a/keyboards/setta21/rules.mk +++ b/keyboards/setta21/rules.mk @@ -15,7 +15,6 @@ 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 = no # Enable keyboard backlight functionality AUDIO_ENABLE = no # Audio output -UNICODE_ENABLE = no # Unicode RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. OLED_ENABLE = no USE_I2C = no diff --git a/keyboards/shiro/config.h b/keyboards/shiro/config.h index 9fbdd447734..52c0f361fda 100644 --- a/keyboards/shiro/config.h +++ b/keyboards/shiro/config.h @@ -123,59 +123,6 @@ along with this program. If not, see . */ //#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_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) - -/* 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. diff --git a/keyboards/shiro/rules.mk b/keyboards/shiro/rules.mk index 8fde4f64f1e..0099557cbe5 100644 --- a/keyboards/shiro/rules.mk +++ b/keyboards/shiro/rules.mk @@ -18,5 +18,4 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = no # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output diff --git a/keyboards/signum/3_0/3_0.c b/keyboards/signum/3_0/3_0.c new file mode 100644 index 00000000000..2775713bf60 --- /dev/null +++ b/keyboards/signum/3_0/3_0.c @@ -0,0 +1,16 @@ +/* Copyright 2021 Stan Gurenkov + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 "3_0.h" diff --git a/keyboards/signum/3_0/3_0.h b/keyboards/signum/3_0/3_0.h new file mode 100644 index 00000000000..9322b44b8b0 --- /dev/null +++ b/keyboards/signum/3_0/3_0.h @@ -0,0 +1,33 @@ +/* Copyright 2021 Stan Gurenkov + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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" + +// clang-format off +# define LAYOUT( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311 } \ +} +// clang-format on +#define LAYOUT_ortho_4x12 LAYOUT diff --git a/keyboards/signum/3_0/config.h b/keyboards/signum/3_0/config.h new file mode 100644 index 00000000000..d0c3175d0f5 --- /dev/null +++ b/keyboards/signum/3_0/config.h @@ -0,0 +1,32 @@ +/* Copyright 2021 Stan Gurenkov + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Troy Fletcher +#define PRODUCT Signum30 + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 12 + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW diff --git a/keyboards/signum/3_0/elitec/config.h b/keyboards/signum/3_0/elitec/config.h index f86e6748a46..fdbfac3c93b 100644 --- a/keyboards/signum/3_0/elitec/config.h +++ b/keyboards/signum/3_0/elitec/config.h @@ -2,29 +2,7 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xF1E7 -#define PRODUCT_ID 0x5163 -#define DEVICE_VER 0x0000 -#define MANUFACTURER troyfletcher -#define PRODUCT Signum - -/* mouse settings */ -#define MK_KINETIC_SPEED - -/* key matrix size */ -#define MATRIX_ROWS 4 -#define MATRIX_COLS 12 - /* key matrix pins */ #define MATRIX_ROW_PINS { D2, D1, F5, B5 } #define MATRIX_COL_PINS { B4, D7, D0, E6, D4, F6, F4, F7, B1, B3, C6, B2 } #define UNUSED_PINS - -#define DIODE_DIRECTION COL2ROW - -/* Set 0 if debouncing isn't needed */ -#define DEBOUNCE 5 - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -#define LOCKING_SUPPORT_ENABLE diff --git a/keyboards/signum/3_0/elitec/elitec.h b/keyboards/signum/3_0/elitec/elitec.h index d28d3d47697..dfb7e011642 100644 --- a/keyboards/signum/3_0/elitec/elitec.h +++ b/keyboards/signum/3_0/elitec/elitec.h @@ -1,15 +1,3 @@ #pragma once -#include "quantum.h" - -#define LAYOUT_ortho_4x12( \ - K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, \ - K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, \ - K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, \ - K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311 \ -) { \ - { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011 }, \ - { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111 }, \ - { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211 }, \ - { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311 } \ -} +#include "3_0.h" diff --git a/keyboards/signum/3_0/elitec/rules.mk b/keyboards/signum/3_0/elitec/rules.mk index 65714ef39d4..e69de29bb2d 100644 --- a/keyboards/signum/3_0/elitec/rules.mk +++ b/keyboards/signum/3_0/elitec/rules.mk @@ -1,28 +0,0 @@ -# MCU name -MCU = atmega32u4 - -# Bootloader selection -BOOTLOADER = atmel-dfu - -# Build Options -# comment out to disable the options. -# -BOOTMAGIC_ENABLE = lite # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend -NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -AUDIO_ENABLE = no -RGBLIGHT_ENABLE = no - -UNICODEMAP_ENABLE = no - -LAYOUTS = ortho_4x12 - -# Disable unsupported hardware -RGBLIGHT_SUPPORTED = no -AUDIO_SUPPORTED = no -BACKLIGHT_SUPPORTED = no diff --git a/keyboards/signum/3_0/elitec/info.json b/keyboards/signum/3_0/info.json similarity index 100% rename from keyboards/signum/3_0/elitec/info.json rename to keyboards/signum/3_0/info.json diff --git a/keyboards/signum/3_0/elitec/keymaps/default/generate_km.py b/keyboards/signum/3_0/keymaps/default/generate_km.py similarity index 100% rename from keyboards/signum/3_0/elitec/keymaps/default/generate_km.py rename to keyboards/signum/3_0/keymaps/default/generate_km.py diff --git a/keyboards/signum/3_0/elitec/keymaps/default/keymap.c b/keyboards/signum/3_0/keymaps/default/keymap.c similarity index 100% rename from keyboards/signum/3_0/elitec/keymaps/default/keymap.c rename to keyboards/signum/3_0/keymaps/default/keymap.c diff --git a/keyboards/signum/3_0/elitec/keymaps/default/km_template.txt b/keyboards/signum/3_0/keymaps/default/km_template.txt similarity index 100% rename from keyboards/signum/3_0/elitec/keymaps/default/km_template.txt rename to keyboards/signum/3_0/keymaps/default/km_template.txt diff --git a/keyboards/signum/3_0/elitec/keymaps/default/layout.py b/keyboards/signum/3_0/keymaps/default/layout.py similarity index 100% rename from keyboards/signum/3_0/elitec/keymaps/default/layout.py rename to keyboards/signum/3_0/keymaps/default/layout.py diff --git a/keyboards/signum/3_0/elitec/keymaps/default/readme.md b/keyboards/signum/3_0/keymaps/default/readme.md similarity index 100% rename from keyboards/signum/3_0/elitec/keymaps/default/readme.md rename to keyboards/signum/3_0/keymaps/default/readme.md diff --git a/keyboards/signum/3_0/elitec/keymaps/default/rules.mk b/keyboards/signum/3_0/keymaps/default/rules.mk similarity index 100% rename from keyboards/signum/3_0/elitec/keymaps/default/rules.mk rename to keyboards/signum/3_0/keymaps/default/rules.mk diff --git a/keyboards/signum/3_0/keymaps/sgurenkov/config.h b/keyboards/signum/3_0/keymaps/sgurenkov/config.h new file mode 100644 index 00000000000..5f8d0d02b88 --- /dev/null +++ b/keyboards/signum/3_0/keymaps/sgurenkov/config.h @@ -0,0 +1,45 @@ +/* Copyright 2021 Stan Gurenkov + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 ONESHOT_TAP_TOGGLE 2 +#define ONESHOT_TIMEOUT 5000 +#define LEADER_TIMEOUT 600 +#define LEADER_PER_KEY_TIMING 300 + +// default but used in macros +#define TAPPING_TERM 300 + +// Prevent normal rollover on alphas from accidentally triggering mods. +#define IGNORE_MOD_TAP_INTERRUPT + +// Auto Shift and Retro Shift (Auto Shift for Tap Hold). +#define AUTO_SHIFT_TIMEOUT TAPPING_TERM + +// Recommended for heavy chording. +#define QMK_KEYS_PER_SCAN 4 + +// Mouse key speed and acceleration. +#undef MOUSEKEY_DELAY +#define MOUSEKEY_DELAY 0 +#undef MOUSEKEY_INTERVAL +#define MOUSEKEY_INTERVAL 16 +#undef MOUSEKEY_WHEEL_DELAY +#define MOUSEKEY_WHEEL_DELAY 0 +#undef MOUSEKEY_MAX_SPEED +#define MOUSEKEY_MAX_SPEED 6 +#undef MOUSEKEY_TIME_TO_MAX +#define MOUSEKEY_TIME_TO_MAX 64 diff --git a/keyboards/signum/3_0/keymaps/sgurenkov/keymap.c b/keyboards/signum/3_0/keymaps/sgurenkov/keymap.c new file mode 100644 index 00000000000..f6cdcfd247f --- /dev/null +++ b/keyboards/signum/3_0/keymaps/sgurenkov/keymap.c @@ -0,0 +1,128 @@ +/* Copyright 2021 Stan Gurenkov + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 M0(kc) MT(MOD_HYPR, kc) +#define M1(kc) MT(MOD_LGUI, kc) +#define M2(kc) MT(MOD_LCTL, kc) +#define M3(kc) MT(MOD_LALT, kc) +#define M4(kc) MT(MOD_LSFT, kc) +#define LTH1 LT(L_LEFT, KC_SPC) +#define LTH2 LT(L_NUM, KC_BSPC) +#define RTH1 LT(L_RIGHT, KC_SPC) +#define RTH2 LT(L_NUM, KC_ENT) +#define COPY LCMD(KC_C) +#define PASTE LCMD(KC_V) +// Layers +#define L_BASE 0 +#define L_LEFT 1 +#define L_RIGHT 2 +#define L_NUM 3 + +bool is_cmd_tab_active = false; + +enum custom_keycodes { + CMD_TAB = SAFE_RANGE, +}; +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +// L_BASE + LAYOUT( + 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_TAB, M4(KC_A), M3(KC_S), M2(KC_D), M1(KC_F), M0(KC_G), M0(KC_H), M1(KC_J), M2(KC_K), M3(KC_L), M4(KC_COLN), KC_QUOT, + KC_GRV, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_BSLS, + OSM(MOD_LSFT), KC_LEAD, KC_LGUI, LTH1, XXXXXXX, LTH2, RTH2, XXXXXXX, RTH1, KC_RGUI, KC_LEAD, OSM(MOD_HYPR)), + +// L_LEFT + LAYOUT( + _______, XXXXXXX, XXXXXXX, KC_EQL, KC_PERC, KC_AT, COPY, KC_UNDS, KC_HASH, RALT(KC_SPC), KC_PLUS, _______, + _______, KC_LSHIFT, KC_LALT, KC_LCTL, KC_LGUI, KC_HYPR, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_LBRC, KC_RBRC, + _______, XXXXXXX, KC_EXLM, KC_CIRC, XXXXXXX, KC_HOME, KC_END, KC_MINS, KC_LPRN, KC_RPRN, PASTE, XXXXXXX, + _______, KC_BRID, KC_BRIU, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, _______), + +// L_RIGHT + LAYOUT( + _______, XXXXXXX, XXXXXXX, KC_EQL, KC_PERC, KC_AT, COPY, KC_UNDS, KC_HASH, RALT(KC_SPC), KC_PLUS, _______, + _______, KC_AMPR, KC_ASTR, KC_DLR, LGUI(KC_GRV), XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_RSFT, KC_RBRC, + _______, XXXXXXX, KC_EXLM, KC_CIRC, XXXXXXX, KC_HOME, KC_END, KC_MINS, KC_LPRN, KC_RPRN, PASTE, XXXXXXX, + _______, KC_BRID, KC_BRIU, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, _______), + +// L_NUM + LAYOUT( + _______, XXXXXXX, KC_F7, KC_F8, KC_F9, KC_F12, KC_MINS, KC_7, KC_8, KC_9, KC_COMM, _______, + _______, M4(KC_LSFT), M3(KC_F4), M2(KC_F5), M1(KC_F6), M0(KC_F11), M0(KC_DOT), M1(KC_4), M2(KC_5), M3(KC_6), M4(KC_0), _______, + _______, XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F10, KC_PLUS, KC_1, KC_2, KC_3, KC_DOT, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MEDIA_PREV_TRACK , KC_MEDIA_NEXT_TRACK, KC_MEDIA_PLAY_PAUSE), + + LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), +}; +// clang-format on +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case CMD_TAB: + if (record->event.pressed) { + register_code(KC_LCMD); + tap_code(KC_TAB); + layer_on(2); + } else { + unregister_code(KC_LCMD); + layer_off(2); + } + break; + case KC_ESC: + layer_clear(); + } + return true; +} + +LEADER_EXTERNS(); + +void matrix_scan_user(void) { + LEADER_DICTIONARY() { + leading = false; + leader_end(); + + // Cancel task CTRL+C + SEQ_ONE_KEY(KC_C) { tap_code16(C(KC_C)); } + // copy + SEQ_ONE_KEY(KC_Y) { tap_code16(G(KC_C)); } + // cut + SEQ_ONE_KEY(KC_X) { tap_code16(G(KC_X)); } + // paste + SEQ_ONE_KEY(KC_P) { tap_code16(G(KC_V)); } + // undo + SEQ_ONE_KEY(KC_U) { tap_code16(G(KC_Z)); } + // redo + SEQ_ONE_KEY(KC_R) { tap_code16(S(G(KC_Z))); } + // delete line + SEQ_TWO_KEYS(KC_D, KC_D) { + register_code(KC_LGUI); + + tap_code(KC_RIGHT); + + tap_code(KC_BSPACE); + + unregister_code(KC_LGUI); + } + // go to the beginning of the string + SEQ_ONE_KEY(KC_H) { tap_code16(G(KC_LEFT)); } + // go to the end of the string + SEQ_ONE_KEY(KC_L) { tap_code16(G(KC_RIGHT)); } + } diff --git a/keyboards/signum/3_0/keymaps/sgurenkov/rules.mk b/keyboards/signum/3_0/keymaps/sgurenkov/rules.mk new file mode 100644 index 00000000000..5c9a4b49b71 --- /dev/null +++ b/keyboards/signum/3_0/keymaps/sgurenkov/rules.mk @@ -0,0 +1,2 @@ +LEADER_ENABLE = yes +AUTO_SHIFT_ENABLE = no diff --git a/keyboards/signum/3_0/elitec/readme.md b/keyboards/signum/3_0/readme.md similarity index 94% rename from keyboards/signum/3_0/elitec/readme.md rename to keyboards/signum/3_0/readme.md index f60023f6d57..3e937f771f7 100644 --- a/keyboards/signum/3_0/elitec/readme.md +++ b/keyboards/signum/3_0/readme.md @@ -10,5 +10,6 @@ Hardware available here: [Troy Fletcher](http://troyfletcher.net/keyboard_sales. Make example for this keyboard (after setting up your build environment): make signum/3_0/elitec:default + make signum/3_0/teensy: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/signum/3_0/rules.mk b/keyboards/signum/3_0/rules.mk new file mode 100644 index 00000000000..a2f2bc9c01d --- /dev/null +++ b/keyboards/signum/3_0/rules.mk @@ -0,0 +1,28 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output + +LAYOUTS = ortho_4x12 + +# Disable unsupported hardware +RGBLIGHT_SUPPORTED = no +AUDIO_SUPPORTED = no +BACKLIGHT_SUPPORTED = no diff --git a/keyboards/signum/3_0/teensy/config.h b/keyboards/signum/3_0/teensy/config.h new file mode 100644 index 00000000000..343131fce0a --- /dev/null +++ b/keyboards/signum/3_0/teensy/config.h @@ -0,0 +1,23 @@ +/* Copyright 2021 Stan Gurenkov + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 pins */ +// clang-format off +#define MATRIX_ROW_PINS { B0, B3, F6, C7 } +#define MATRIX_COL_PINS { C6, D2, B7, D3, D0, F7, F5, B6, B5, B4, D1, D7 } +#define UNUSED_PINS +// clang-format on diff --git a/keyboards/signum/3_0/teensy/rules.mk b/keyboards/signum/3_0/teensy/rules.mk new file mode 100644 index 00000000000..8b137891791 --- /dev/null +++ b/keyboards/signum/3_0/teensy/rules.mk @@ -0,0 +1 @@ + diff --git a/keyboards/signum/3_0/teensy/teensy.c b/keyboards/signum/3_0/teensy/teensy.c new file mode 100644 index 00000000000..42e993a6be2 --- /dev/null +++ b/keyboards/signum/3_0/teensy/teensy.c @@ -0,0 +1,16 @@ +/* Copyright 2021 Stan Gurenkov + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 "teensy.h" diff --git a/keyboards/signum/3_0/teensy/teensy.h b/keyboards/signum/3_0/teensy/teensy.h new file mode 100644 index 00000000000..073accaa61d --- /dev/null +++ b/keyboards/signum/3_0/teensy/teensy.h @@ -0,0 +1,18 @@ +/* Copyright 2021 Stan Gurenkov + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 "3_0.h" diff --git a/keyboards/silverbullet44/config.h b/keyboards/silverbullet44/config.h index 2bd9c834b91..5b4ae5a1108 100644 --- a/keyboards/silverbullet44/config.h +++ b/keyboards/silverbullet44/config.h @@ -164,59 +164,6 @@ along with this program. If not, see . */ //#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_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) - -/* 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. diff --git a/keyboards/silverbullet44/rules.mk b/keyboards/silverbullet44/rules.mk index 639bead24ff..14f8ec679f1 100644 --- a/keyboards/silverbullet44/rules.mk +++ b/keyboards/silverbullet44/rules.mk @@ -20,7 +20,6 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow RGB_MATRIX_ENABLE = no RGB_MATRIX_DRIVER = WS2812 -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = yes # Audio output SPLIT_KEYBOARD = yes LTO_ENABLE = yes diff --git a/keyboards/sixkeyboard/config.h b/keyboards/sixkeyboard/config.h index b8fcb8d7d1e..b438ceea9e3 100644 --- a/keyboards/sixkeyboard/config.h +++ b/keyboards/sixkeyboard/config.h @@ -48,45 +48,6 @@ along with this program. If not, see . /* Force NKRO Mode - If forced on, must be disabled via magic key (default = LShift+RShift+N) */ #define FORCE_NKRO -/* - * Magic key options - * These options allow the magic key functionality to be changed. This is useful - * if your keyboard/keypad is missing keys and you want magic key support. - */ - -/* control how magic key switches layers */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false - -/* remap magic keys */ -//#define MAGIC_KEY_HELP1 H -//#define MAGIC_KEY_HELP2 SLASH -//#define MAGIC_KEY_DEBUG D -//#define MAGIC_KEY_DEBUG_MATRIX X -//#define MAGIC_KEY_DEBUG_KBD K -//#define MAGIC_KEY_DEBUG_MOUSE M -//#define MAGIC_KEY_VERSION V -//#define MAGIC_KEY_STATUS S -//#define MAGIC_KEY_CONSOLE C -//#define MAGIC_KEY_LAYER0_ALT1 ESC -//#define MAGIC_KEY_LAYER0_ALT2 GRAVE -//#define MAGIC_KEY_LAYER0 0 -//#define MAGIC_KEY_LAYER1 1 -//#define MAGIC_KEY_LAYER2 2 -//#define MAGIC_KEY_LAYER3 3 -//#define MAGIC_KEY_LAYER4 4 -//#define MAGIC_KEY_LAYER5 5 -//#define MAGIC_KEY_LAYER6 6 -//#define MAGIC_KEY_LAYER7 7 -//#define MAGIC_KEY_LAYER8 8 -//#define MAGIC_KEY_LAYER9 9 -//#define MAGIC_KEY_BOOTLOADER PAUSE -//#define MAGIC_KEY_LOCK BSLS -//#define MAGIC_KEY_EEPROM E -//#define MAGIC_KEY_NKRO N -//#define MAGIC_KEY_SLEEP_LED Z - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/sixkeyboard/rules.mk b/keyboards/sixkeyboard/rules.mk index 0bc7d6f25bd..1ce62d90d06 100644 --- a/keyboards/sixkeyboard/rules.mk +++ b/keyboards/sixkeyboard/rules.mk @@ -16,7 +16,6 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = no # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality AUDIO_ENABLE = no -UNICODE_ENABLE = no # Unicode CUSTOM_MATRIX = yes SRC += matrix.c diff --git a/keyboards/smk60/rules.mk b/keyboards/smk60/rules.mk index 79c314dea6a..30872a3c27d 100644 --- a/keyboards/smk60/rules.mk +++ b/keyboards/smk60/rules.mk @@ -17,7 +17,6 @@ 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 -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output RGBLIGHT_ENABLE = yes # Use RGB bottom light LAYOUTS = 60_ansi 60_hhkb 60_iso diff --git a/keyboards/snampad/config.h b/keyboards/snampad/config.h index 270a36cb0a0..64bb16fb40e 100644 --- a/keyboards/snampad/config.h +++ b/keyboards/snampad/config.h @@ -117,59 +117,6 @@ along with this program. If not, see . */ //#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_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) - -/* 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. diff --git a/keyboards/snampad/rules.mk b/keyboards/snampad/rules.mk index f2455985470..f6f0c8516b5 100644 --- a/keyboards/snampad/rules.mk +++ b/keyboards/snampad/rules.mk @@ -18,7 +18,6 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = no # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output LAYOUTS = numpad_6x4 diff --git a/keyboards/sneakbox/ava/info.json b/keyboards/sneakbox/ava/info.json index 55b52a5c55c..276efce0186 100644 --- a/keyboards/sneakbox/ava/info.json +++ b/keyboards/sneakbox/ava/info.json @@ -1,4 +1,4 @@ -{ +{ "keyboard_name": "AVA", "url": "https://sneakbox.com", "maintainer": "mujimanic", diff --git a/keyboards/sofle/keyhive/config.h b/keyboards/sofle/keyhive/config.h new file mode 100755 index 00000000000..14303be411b --- /dev/null +++ b/keyboards/sofle/keyhive/config.h @@ -0,0 +1,105 @@ +/* Copyright + * 2021 solartempest + * 2021 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once +#include "config_common.h" + +// USB Device descriptor parameter + +#define VENDOR_ID 0xFC32 +#define PRODUCT_ID 0x1287 +#define DEVICE_VER 0x0002 +#define MANUFACTURER Keyhive +#define PRODUCT Sofle // VIA version for this PCB is incorrect for the bottom row + +// Key matrix size +// Rows are doubled-up. Added extra column for rotary encoder VIA mapping. +#define MATRIX_ROWS 10 +#define MATRIX_COLS 6 + +// wiring of each half +#define MATRIX_ROW_PINS \ + { C6, D7, E6, B4, B5 } +#define MATRIX_COL_PINS \ + { B6, B2, B3, B1, F7, F6 } +#define MATRIX_ROW_PINS_RIGHT \ + { C6, D7, E6, B4, B5 } +#define MATRIX_COL_PINS_RIGHT \ + { F6, F7, B1, B3, B2, B6 } + +#define DIODE_DIRECTION COL2ROW + +#define DEBOUNCE 5 + +// Encoder support +#define ENCODERS_PAD_A \ + { F5 } +#define ENCODERS_PAD_B \ + { F4 } +#define ENCODERS_PAD_A_RIGHT \ + { F4 } +#define ENCODERS_PAD_B_RIGHT \ + { F5 } +#define ENCODER_RESOLUTIONS \ + { 4, 2 } // Left encoder seems to have double-output issue but right does not. + +#define TAP_CODE_DELAY 10 + +// Communication between sides +#define SOFT_SERIAL_PIN D2 + +// OLED settings +#define OLED_TIMEOUT 80000 +#define OLED_BRIGHTNESS 90 + +#define SPLIT_WPM_ENABLE +#define SPLIT_OLED_ENABLE +#define SPLIT_TRANSPORT_MIRROR + +// Add RGB underglow +#define RGB_DI_PIN D3 +#define RGBLED_NUM 74 +#define RGBLED_SPLIT \ + { 37, 37 } + +#define RGBLIGHT_LIMIT_VAL 160 // Power draw may exceed 0.6A at max brightness with white colour. +#define RGBLIGHT_LAYERS +#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF +#define RGBLIGHT_SLEEP + +#define DRIVER_LED_TOTAL RGBLED_NUM +#define RGB_MATRIX_SPLIT RGBLED_SPLIT + +#define RGB_MATRIX_KEYPRESSES // reacts to keypresses +#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#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 // 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_STARTUP_MODE RGB_MATRIX_GRADIENT_LEFT_RIGHT + +#define RGB_MATRIX_HUE_STEP 8 +#define RGB_MATRIX_SAT_STEP 8 +#define RGB_MATRIX_VAL_STEP 8 +#define RGB_MATRIX_SPD_STEP 10 diff --git a/keyboards/sofle/keyhive/info.json b/keyboards/sofle/keyhive/info.json new file mode 100644 index 00000000000..e2cbf0c716e --- /dev/null +++ b/keyboards/sofle/keyhive/info.json @@ -0,0 +1,14 @@ +{ + "keyboard_name": "Sofle", + "layouts": { + "LAYOUT": { + "layout": [ + {"x":0, "y":0.5}, {"x":1, "y":0.375}, {"x":2, "y":0.125}, {"x":3, "y":0}, {"x":4, "y":0.125}, {"x":5, "y":0.25}, {"x":10.5, "y":0.25}, {"x":11.5, "y":0.125}, {"x":12.5, "y":0}, {"x":13.5, "y":0.125}, {"x":14.5, "y":0.375}, {"x":15.5, "y":0.5}, + {"x":0, "y":1.5}, {"x":1, "y":1.375}, {"x":2, "y":1.125}, {"x":3, "y":1}, {"x":4, "y":1.125}, {"x":5, "y":1.25}, {"x":10.5, "y":1.25}, {"x":11.5, "y":1.125}, {"x":12.5, "y":1}, {"x":13.5, "y":1.125}, {"x":14.5, "y":1.375}, {"x":15.5, "y":1.5}, + {"x":0, "y":2.5}, {"x":1, "y":2.375}, {"x":2, "y":2.125}, {"x":3, "y":2}, {"x":4, "y":2.125}, {"x":5, "y":2.25}, {"x":10.5, "y":2.25}, {"x":11.5, "y":2.125}, {"x":12.5, "y":2}, {"x":13.5, "y":2.125}, {"x":14.5, "y":2.375}, {"x":15.5, "y":2.5}, + {"x":0, "y":3.5}, {"x":1, "y":3.375}, {"x":2, "y":3.125}, {"x":3, "y":3}, {"x":4, "y":3.125}, {"x":5, "y":3.25}, {"x":6, "y":2.75}, {"x":9.5, "y":2.75}, {"x":10.5, "y":3.25}, {"x":11.5, "y":3.125}, {"x":12.5, "y":3}, {"x":13.5, "y":3.125}, {"x":14.5, "y":3.375}, {"x":15.5, "y":3.5}, + {"x":1.5, "y":4.375}, {"x":2.5, "y":4.125}, {"x":3.5, "y":4.15}, {"x":4.5, "y":4.25}, {"x":6, "y":4.25, "h":1.5}, {"x":9.5, "y":4.25, "h":1.5}, {"x":11, "y":4.25}, {"x":12, "y":4.15}, {"x":13, "y":4.125}, {"x":14, "y":4.375} + ] + } + } +} diff --git a/keyboards/sofle/keyhive/keyhive.c b/keyboards/sofle/keyhive/keyhive.c new file mode 100755 index 00000000000..c7ad9887612 --- /dev/null +++ b/keyboards/sofle/keyhive/keyhive.c @@ -0,0 +1,90 @@ +/* Copyright + * 2021 solartempest + * 2021 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "keyhive.h" +#ifdef RGB_MATRIX_ENABLE +// Physical Layout +// Columns +// 0 1 2 3 4 5 6 7 8 9 10 11 12 13 +// ROWS +// 12 13 22 23 32 33 33 32 23 22 13 12 0 +// 02 03 04 04 03 02 +// 11 14 21 24 31 34 34 31 24 21 14 11 1 +// 01 01 +// 10 15 20 25 30 35 35 30 25 20 15 10 2 +// +// 09 16 19 26 29 36 36 29 26 19 16 09 3 +// +// 08 17 18 27 28 28 27 18 17 08 4 +// 07 06 05 05 06 07 + +// clang-format off + +led_config_t g_led_config = { + { + { 11, 12, 21, 22, 31, 32 }, + { 10, 13, 20, 23, 30, 33 }, + { 9, 14, 19, 24, 29, 34}, + { 8, 15, 18, 25, 28, 35}, + { 7, 16, 17, 26, 27, NO_LED }, + { 47, 48, 57, 58, 67, 68}, + { 46, 49, 56, 59, 66, 69}, + { 45, 50, 55, 60, 65, 70}, + { 44, 51, 54, 61, 64, 71}, + { 43, 52, 53, 62, 63, NO_LED } + }, + { + // Left side underglow + {96, 40}, {16, 20}, {48, 10}, {80, 18}, {88, 60}, {56, 57}, {24,60}, + // Left side Matrix + {32, 57}, { 0, 48}, { 0, 36}, { 0, 24}, { 0, 12}, + {16, 12}, {16, 24}, {16, 36}, {16, 48}, {48, 55}, + {64, 57}, {32, 45}, {32, 33}, {32, 21}, {32, 9}, + {48, 7}, {48, 19}, {48, 31}, {48, 43}, {80, 59}, + {96, 64}, {64, 45}, {64, 33}, {64, 21}, {64, 9}, + {80, 10}, {80, 22}, {80, 34}, {80, 47}, + + + // Right side underglow + {128, 40}, {208, 20}, {176, 10}, {144, 18}, {136, 60}, {168, 57}, {200,60}, + // Right side Matrix + {192, 57}, {224, 48}, {224, 36}, {224, 24}, {224, 12}, + {208, 12}, {208, 24}, {208, 36}, {208, 48}, {176, 55}, + {160, 57}, {192, 45}, {192, 33}, {192, 21}, {192, 9}, + {176, 7}, {176, 19}, {176, 31}, {176, 43}, {144, 59}, + {128, 64}, {160, 45}, {160, 33}, {160, 21}, {160, 9}, + {144, 10}, {144, 22}, {144, 34}, {144, 47}, + }, + { + LED_FLAG_NONE, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, + LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, + LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, + LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, + LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, + LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, + LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, + LED_FLAG_NONE, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, + LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, + LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, + LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, + LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, + LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, + LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT + } +}; +#endif diff --git a/keyboards/sofle/keyhive/keyhive.h b/keyboards/sofle/keyhive/keyhive.h new file mode 100755 index 00000000000..d8b21e16d75 --- /dev/null +++ b/keyboards/sofle/keyhive/keyhive.h @@ -0,0 +1,47 @@ +/* Copyright + * 2021 solartempest + * 2021 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +// clang-format off +// Extra keys are added for rotary encoder support in VIA +#define LAYOUT( \ + LA1, LA2, LA3, LA4, LA5, LA6, RA6, RA5, RA4, RA3, RA2, RA1, \ + LB1, LB2, LB3, LB4, LB5, LB6, RB6, RB5, RB4, RB3, RB2, RB1, \ + LC1, LC2, LC3, LC4, LC5, LC6, RC6, RC5, RC4, RC3, RC2, RC1, \ + LD1, LD2, LD3, LD4, LD5, LD6, LE1, RE6, RD6, RD5, RD4, RD3, RD2, RD1, \ + LE2, LE3, LE4, LE5, LE6, RE5, RE4, RE3, RE2, RE1 \ + ) \ + { \ + { LA1, LA2, LA3, LA4, LA5, LA6 }, \ + { LB1, LB2, LB3, LB4, LB5, LB6 }, \ + { LC1, LC2, LC3, LC4, LC5, LC6 }, \ + { LD1, LD2, LD3, LD4, LD5, LD6 }, \ + { LE1, LE2, LE3, LE4, LE5, LE6 }, \ + { RA1, RA2, RA3, RA4, RA5, RA6 }, \ + { RB1, RB2, RB3, RB4, RB5, RB6 }, \ + { RC1, RC2, RC3, RC4, RC5, RC6 }, \ + { RD1, RD2, RD3, RD4, RD5, RD6 }, \ + { RE1, RE2, RE3, RE4, RE5, RE6 } \ + } + + +//RGB LED Conversion macro from physical array to electric array (+146 to firmware size) +// clang-format on diff --git a/keyboards/sofle/keyhive/readme.md b/keyboards/sofle/keyhive/readme.md new file mode 100755 index 00000000000..43813b856a5 --- /dev/null +++ b/keyboards/sofle/keyhive/readme.md @@ -0,0 +1,66 @@ +# Sofle Keyboard + +![SofleKeyboard version 2.1 RGB Keyhive](https://i.imgur.com/WH9OoWuh.jpg) + +Sofle is 6×4+5 keys column-staggered split keyboard. Based on Lily58, Corne and Helix keyboards. + +For detailed instructions on using VIA and flashing, please refer to the sections further down the page! + +For details about the keyboard design, refer to Josef's blog: [Sofle Keyboard - a split keyboard based on Lily58 and Crkbd](https://josef-adamcik.cz/electronics/let-me-introduce-you-sofle-keyboard-split-keyboard-based-on-lily58.html) + +Build guide: [Keyhive Sofle RGB build guide](https://github.com/keyhive/build_guides/blob/master/docs/keyboards/sofle-rgb.md) + +* Keyboard Maintainer: [Solartempest] +* Hardware Supported: SofleKeyboard V2.1 RGB PCB, ProMicro / Elite-C +* Hardware Availability: [Keyhive](https://keyhive.xyz/shop/sofle) + +# Custom Features: + +### OLED Features: +- Includes Snakey keyboard pet! Slithers according to WPM, bites, and sticks its tongue out at you! +- OLED displays current layer, lock key status, WPM, custom logo, and custom name. +- OLED shuts off on idle and when computer is sleeping. +- Includes working Luna keyboard pet. +- Includes working Bongocat (disable RGB for sufficient space). +- Includes stock OLED code as well. + +### RGB Features: +- Adds custom layer lighting with custom gradients for each layer. +- RGB underglow support and remapped to physical locations (nicer gradients and effects). +- Adds white caps lock, scroll lock, and num lock key indicators using the top row/underglow LEDs. + +### Rotary Encoder and VIA Features: +- Fully emappable left encoder controls volume up/down/mute. Right encoder PGUP/PGDOWN. +- Allows for live remapping of per-layer rotary encoder functions in VIA. +- VIA support included by default. +- This fixes the Keyhive left bottom row offset issue in VIA. You will need to import sofle.json in VIA. +- Custom macro key in VIA for Super Alt Tab, which is fully compatible with rotary encoders. +- Custom macro key in VIA for moving windows to other monitors in Windows, which is fully compatible with rotary encoders. + +### Tap and Other Features: +- Push left-shift + backspace to delete whole words. Right-shift + backspace to delete whole words in the opposite direction. +- Double tap layers to stay on a layer instead of momentary push. +- Adds key combo functionality. +- Symmetric modifiers (CMD/Super, Alt/Opt, Ctrl, Shift). + +## Using with VIA + +- After flashing, in VIA make sure to Import Keymap, which is "sofle VIA keymap.json". This will alow VIA to recognize the updated layout and custom functions. VIA will not auto-recognize the keyboard with this firmware because of the necessary customization. +- Go to Save+Load to Load Saved Layout. You can import my own layout "sofle VIA layout.json" or just use the Keymap tab to assign your own keys. Having another keyboard connected can be handy for doing this step. +- It is a good idea to Save Current Layout after you decide on your mapping. + + +Make example for this keyboard (after setting up your build environment): + + make sofle/keyhive:default + +Flashing example for this keyboard: + + make sofle/keyhive:default:flash + +Press reset button on he keyboard when asked. + +Disconnect the first half, connect the second one and repeat the process. + + +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/sofle/keyhive/rules.mk b/keyboards/sofle/keyhive/rules.mk new file mode 100755 index 00000000000..44846f97cca --- /dev/null +++ b/keyboards/sofle/keyhive/rules.mk @@ -0,0 +1,26 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output +ENCODER_ENABLE = yes +LTO_ENABLE = yes +SPLIT_KEYBOARD = yes +OLED_ENABLE = yes +OLED_DRIVER = SSD1306 diff --git a/keyboards/sofle/keymaps/manna-harbour_miryoku/config.h b/keyboards/sofle/keymaps/manna-harbour_miryoku/config.h index 53825775cc6..8372e101684 100644 --- a/keyboards/sofle/keymaps/manna-harbour_miryoku/config.h +++ b/keyboards/sofle/keymaps/manna-harbour_miryoku/config.h @@ -1,6 +1,6 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/keyboards/sofle/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/sofle/keymaps/manna-harbour_miryoku/keymap.c index 1520387e888..7c5717a0fee 100644 --- a/keyboards/sofle/keymaps/manna-harbour_miryoku/keymap.c +++ b/keyboards/sofle/keymaps/manna-harbour_miryoku/keymap.c @@ -1,5 +1,5 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/keyboards/sofle/keymaps/rgb_default/rules.mk b/keyboards/sofle/keymaps/rgb_default/rules.mk index 92a293196f2..860c2122da2 100644 --- a/keyboards/sofle/keymaps/rgb_default/rules.mk +++ b/keyboards/sofle/keymaps/rgb_default/rules.mk @@ -1,6 +1,6 @@ MOUSEKEY_ENABLE = yes EXTRAKEY_ENABLE = yes -CONSOLE_ENABLE = yes +CONSOLE_ENABLE = no RGBLIGHT_ENABLE = yes ENCODER_ENABLE = yes LTO_ENABLE = yes diff --git a/keyboards/sofle/keymaps/via/config.h b/keyboards/sofle/keymaps/via/config.h index c2e48ea7d25..77ce4f25901 100644 --- a/keyboards/sofle/keymaps/via/config.h +++ b/keyboards/sofle/keymaps/via/config.h @@ -1,19 +1,19 @@ - /* Copyright 2020 Josef Adamcik - * Modification for VIA support and RGB underglow by Jens Bonk-Wiltfang - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General 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 Josef Adamcik + * Modification for VIA support and RGB underglow by Jens Bonk-Wiltfang + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 @@ -22,16 +22,21 @@ see https://docs.qmk.fm/#/feature_split_keyboard?id=setting-handedness for more options. */ -//Add RGB underglow and top facing lighting -#define RGB_DI_PIN D3 -#ifdef RGB_MATRIX_ENABLE -#define RGBLED_NUM 36 // Number of LEDs -#define DRIVER_LED_TOTAL RGBLED_NUM +#if defined(KEYBOARD_sofle_rev1) +// Add RGB underglow and top facing lighting +# define RGB_DI_PIN D3 +# define RGBLED_NUM 70 +# define RGBLED_SPLIT \ + { 36, 36 } +# ifdef RGB_MATRIX_ENABLE +# define DRIVER_LED_TOTAL RGBLED_NUM +# define RGB_MATRIX_SPLIT RGBLED_SPLIT +# define SPLIT_TRANSPORT_MIRROR +# else +# define RGBLIGHT_ANIMATIONS +# define RGBLIGHT_LIMIT_VAL 120 +# define RGBLIGHT_HUE_STEP 10 +# define RGBLIGHT_SAT_STEP 17 +# define RGBLIGHT_VAL_STEP 17 +# endif #endif -#define RGBLED_NUM 70 -#define RGBLED_SPLIT {36,36} -#define RGBLIGHT_ANIMATIONS -#define RGBLIGHT_LIMIT_VAL 120 -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 -#define RGBLIGHT_VAL_STEP 17 diff --git a/keyboards/sofle/rev1/config.h b/keyboards/sofle/rev1/config.h index ab0e0b39d4a..831387e9908 100644 --- a/keyboards/sofle/rev1/config.h +++ b/keyboards/sofle/rev1/config.h @@ -36,4 +36,3 @@ #define NO_ACTION_MACRO #define NO_ACTION_FUNCTION - diff --git a/keyboards/sofle/sofle.h b/keyboards/sofle/sofle.h index 67bd529a1bb..90ee00bfd79 100644 --- a/keyboards/sofle/sofle.h +++ b/keyboards/sofle/sofle.h @@ -1,5 +1,7 @@ #pragma once -#ifdef KEYBOARD_sofle_rev1 - #include "rev1.h" +#if defined(KEYBOARD_sofle_rev1) +# include "rev1.h" +#elif defined(KEYBOARD_sofle_keyhive) +# include "keyhive.h" #endif diff --git a/keyboards/spacetime/config.h b/keyboards/spacetime/config.h index 1219eca2dfa..3afcee17359 100644 --- a/keyboards/spacetime/config.h +++ b/keyboards/spacetime/config.h @@ -118,58 +118,6 @@ along with this program. If not, see . */ //#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_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) - -/* control how magic key switches layers */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false - -/* override magic key keymap */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM -//#define MAGIC_KEY_HELP1 H -//#define MAGIC_KEY_HELP2 SLASH -//#define MAGIC_KEY_DEBUG D -//#define MAGIC_KEY_DEBUG_MATRIX X -//#define MAGIC_KEY_DEBUG_KBD K -//#define MAGIC_KEY_DEBUG_MOUSE M -//#define MAGIC_KEY_VERSION V -//#define MAGIC_KEY_STATUS S -//#define MAGIC_KEY_CONSOLE C -//#define MAGIC_KEY_LAYER0_ALT1 ESC -//#define MAGIC_KEY_LAYER0_ALT2 GRAVE -//#define MAGIC_KEY_LAYER0 0 -//#define MAGIC_KEY_LAYER1 1 -//#define MAGIC_KEY_LAYER2 2 -//#define MAGIC_KEY_LAYER3 3 -//#define MAGIC_KEY_LAYER4 4 -//#define MAGIC_KEY_LAYER5 5 -//#define MAGIC_KEY_LAYER6 6 -//#define MAGIC_KEY_LAYER7 7 -//#define MAGIC_KEY_LAYER8 8 -//#define MAGIC_KEY_LAYER9 9 -//#define MAGIC_KEY_BOOTLOADER PAUSE -//#define MAGIC_KEY_LOCK CAPS -//#define MAGIC_KEY_EEPROM E -//#define MAGIC_KEY_NKRO N -//#define MAGIC_KEY_SLEEP_LED Z - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/spacetime/rules.mk b/keyboards/spacetime/rules.mk index e680660e554..05efe18d296 100644 --- a/keyboards/spacetime/rules.mk +++ b/keyboards/spacetime/rules.mk @@ -18,7 +18,6 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = no # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output OLED_ENABLE = no diff --git a/keyboards/spiderisland/split78/config.h b/keyboards/spiderisland/split78/config.h index e15e5d193d3..b67b3fafffc 100644 --- a/keyboards/spiderisland/split78/config.h +++ b/keyboards/spiderisland/split78/config.h @@ -35,3 +35,5 @@ along with this program. If not, see . #define BACKLIGHT_BREATHING #define DEBOUNCE 50 + +#define I2C_START_RETRY_COUNT 1 diff --git a/keyboards/spiderisland/winry25tc/config.h b/keyboards/spiderisland/winry25tc/config.h new file mode 100644 index 00000000000..1e7ff4c63b2 --- /dev/null +++ b/keyboards/spiderisland/winry25tc/config.h @@ -0,0 +1,41 @@ +/* Copyright 2021 Andrzej Ressel (andrzej.ressel@gmail.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x0000 +#define DEVICE_VER 0x0001 +#define MANUFACTURER SpiderIsland +#define PRODUCT Winry 25tc + +#define MATRIX_ROWS 5 +#define MATRIX_COLS 5 + +#define MATRIX_ROW_PINS { E6, F0, D6, D2, B6 } +#define MATRIX_COL_PINS { F5, C7, B7, B2, B4 } + +#define DIODE_DIRECTION COL2ROW + +#define RGB_DI_PIN D5 +#define RGBLED_NUM 40 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 +#define RGBLIGHT_LIMIT_VAL 150 /* The maximum brightness level */ diff --git a/keyboards/spiderisland/winry25tc/info.json b/keyboards/spiderisland/winry25tc/info.json new file mode 100644 index 00000000000..8e503bc74a1 --- /dev/null +++ b/keyboards/spiderisland/winry25tc/info.json @@ -0,0 +1,36 @@ +{ + "keyboard_name": "Winry 25tc", + "url": "", + "maintainer": "qmk", + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"K00 (E6,F5)", "x":0, "y":0}, + {"label":"K01 (E6,C7)", "x":1, "y":0}, + {"label":"K02 (E6,B7)", "x":2, "y":0}, + {"label":"K03 (E6,B2)", "x":3, "y":0}, + {"label":"K04 (E6,B4)", "x":4, "y":0}, + {"label":"K10 (F0,F5)", "x":0, "y":1}, + {"label":"K11 (F0,C7)", "x":1, "y":1}, + {"label":"K12 (F0,B7)", "x":2, "y":1}, + {"label":"K13 (F0,B2)", "x":3, "y":1}, + {"label":"K14 (F0,B4)", "x":4, "y":1}, + {"label":"K20 (D6,F5)", "x":0, "y":2}, + {"label":"K21 (D6,C7)", "x":1, "y":2}, + {"label":"K22 (D6,B7)", "x":2, "y":2}, + {"label":"K23 (D6,B2)", "x":3, "y":2}, + {"label":"K24 (D6,B4)", "x":4, "y":2}, + {"label":"K30 (D2,F5)", "x":0, "y":3}, + {"label":"K31 (D2,C7)", "x":1, "y":3}, + {"label":"K32 (D2,B7)", "x":2, "y":3}, + {"label":"K33 (D2,B2)", "x":3, "y":3}, + {"label":"K34 (D2,B4)", "x":4, "y":3}, + {"label":"K40 (B6,F5)", "x":0, "y":4}, + {"label":"K41 (B6,C7)", "x":1, "y":4}, + {"label":"K42 (B6,B7)", "x":2, "y":4}, + {"label":"K43 (B6,B2)", "x":3, "y":4}, + {"label":"K44 (B6,B4)", "x":4, "y":4} + ] + } + } +} diff --git a/keyboards/spiderisland/winry25tc/keymaps/default/keymap.c b/keyboards/spiderisland/winry25tc/keymaps/default/keymap.c new file mode 100644 index 00000000000..ec1d0f42edc --- /dev/null +++ b/keyboards/spiderisland/winry25tc/keymaps/default/keymap.c @@ -0,0 +1,39 @@ +/* Copyright 2021 Andrzej Ressel (andrzej.ressel@gmail.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum my_layers { + _FIRST_LAYER, + _SECOND_LAYER +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_FIRST_LAYER] = LAYOUT( + KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, KC_ESC, + KC_P7, KC_P8, KC_P9, KC_PPLS, RGB_TOG, + KC_P4, KC_P5, KC_P6, KC_PENT, RGB_MOD, + KC_P1, KC_P2, KC_P3, KC_UP, MO(_SECOND_LAYER), + KC_P0, KC_PDOT, KC_LEFT, KC_DOWN, KC_RGHT + ), + [_SECOND_LAYER] = 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, KC_MUTE, KC_VOLD, KC_VOLU, + KC_MPLY, KC_MSTP, KC_MPRV, KC_MNXT, _______, + KC_RSFT, KC_RALT, KC_RGUI, KC_APP, KC_RCTL + ), +}; diff --git a/keyboards/spiderisland/winry25tc/readme.md b/keyboards/spiderisland/winry25tc/readme.md new file mode 100644 index 00000000000..45ba0bd5a42 --- /dev/null +++ b/keyboards/spiderisland/winry25tc/readme.md @@ -0,0 +1,14 @@ +# SpiderIsland 25-key RGB Backlight Hot Swap Mechanical Keyboard + +Keyboard from [SpiderIsland on AliExpress](https://a.aliexpress.com/_dVJsSpR). Seller provides [kbfirmware](https://kbfirmware.com/) JSON config that was converted to QMK. + +* Keyboard Maintainer: [andrzejressel](https://github.com/andrzejressel) +* Hardware Availability: https://aliexpress.com/item/1005001523579896.html + +Make example for this keyboard (after setting up your build environment): + + make spiderisland/winry25tc:default + +**Reset Key**: Located on the other side of the keyboard. + +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 diff --git a/keyboards/spiderisland/winry25tc/rules.mk b/keyboards/spiderisland/winry25tc/rules.mk new file mode 100644 index 00000000000..4eb00f7407b --- /dev/null +++ b/keyboards/spiderisland/winry25tc/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 = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow + +KEY_LOCK_ENABLE = yes # Enable KC_LOCK support diff --git a/keyboards/spiderisland/winry25tc/winry25tc.c b/keyboards/spiderisland/winry25tc/winry25tc.c new file mode 100644 index 00000000000..938dadaf8fc --- /dev/null +++ b/keyboards/spiderisland/winry25tc/winry25tc.c @@ -0,0 +1,17 @@ +/* Copyright 2021 Andrzej Ressel (andrzej.ressel@gmail.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "winry25tc.h" diff --git a/keyboards/spiderisland/winry25tc/winry25tc.h b/keyboards/spiderisland/winry25tc/winry25tc.h new file mode 100644 index 00000000000..5498dd8d6bb --- /dev/null +++ b/keyboards/spiderisland/winry25tc/winry25tc.h @@ -0,0 +1,33 @@ +/* Copyright 2021 Andrzej Ressel (andrzej.ressel@gmail.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +#define LAYOUT( \ + K00, K01, K02, K03, K04, \ + K10, K11, K12, K13, K14, \ + K20, K21, K22, K23, K24, \ + K30, K31, K32, K33, K34, \ + K40, K41, K42, K43, K44 \ +) { \ + { K00, K01, K02, K03, K04 }, \ + { K10, K11, K12, K13, K14 }, \ + { K20, K21, K22, K23, K24 }, \ + { K30, K31, K32, K33, K34 }, \ + { K40, K41, K42, K43, K44 }, \ +} diff --git a/keyboards/splitkb/kyria/keymaps/drashna/keymap.c b/keyboards/splitkb/kyria/keymaps/drashna/keymap.c index 2dc93464425..6c7ac34d512 100644 --- a/keyboards/splitkb/kyria/keymaps/drashna/keymap.c +++ b/keyboards/splitkb/kyria/keymaps/drashna/keymap.c @@ -92,8 +92,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_ADJUST] = LAYOUT_wrapper( KC_MAKE, _________________ADJUST_L1_________________, _________________ADJUST_R1_________________, KC_RESET, VRSN, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, EEP_RST, - _______, _________________ADJUST_L3_________________, HPT_TOG, HPT_FBK, MG_NKRO, UC_MOD, _________________ADJUST_R3_________________, TG_MODS, - _______, _______, _______, KC_NUKE, _______, _______, _______, _______, _______, _______ + UC_MOD, _________________ADJUST_L3_________________, HPT_TOG, HPT_FBK, MG_NKRO, UC_MOD, _________________ADJUST_R3_________________, TG_MODS, + _______, _______, KEYLOCK, KC_NUKE, _______, _______, _______, _______, _______, _______ ), // [_LAYERINDEX] = LAYOUT_wrapper( // _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/splitkb/kyria/keymaps/drashna/rules.mk b/keyboards/splitkb/kyria/keymaps/drashna/rules.mk index b51cc1b626b..6accf8cc038 100644 --- a/keyboards/splitkb/kyria/keymaps/drashna/rules.mk +++ b/keyboards/splitkb/kyria/keymaps/drashna/rules.mk @@ -1,23 +1,19 @@ -OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # Enables the use of OLED displays -ENCODER_ENABLE = yes # ENables the use of one or more encoders -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -RGBLIGHT_STARTUP_ANIMATION = no +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # USB Nkey Rollover +UNICODE_ENABLE = yes # Unicode +OLED_ENABLE = yes +OLED_DRIVER = SSD1306 # Enables the use of OLED displays +ENCODER_ENABLE = yes # Enables the use of one or more encoders -BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = yes # USB Nkey Rollover -UNICODE_ENABLE = no # Unicode -KEY_LOCK_ENABLE = no - - -BOOTLOADER = hid -BOOTLOADER_SIZE = 512 -PROGRAM_CMD = $(HID_BOOTLOADER_CLI) -mmcu=$(MCU) -w -v $(BUILD_DIR)/$(TARGET).hex -# TAP_DANCE_ENABLE = yes - -WPM_ENABLE = yes -SWAP_HANDS_ENABLE = yes +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +RGBLIGHT_STARTUP_ANIMATION = yes +RGB_MATRIX_ENABLE = yes +TAP_DANCE_ENABLE = yes +KEY_LOCK_ENABLE = no +WPM_ENABLE = yes +SWAP_HANDS_ENABLE = yes +LTO_ENABLE = no diff --git a/keyboards/splitkb/kyria/keymaps/john-ezra/config.h b/keyboards/splitkb/kyria/keymaps/john-ezra/config.h index 77f095767dd..70b41675a39 100644 --- a/keyboards/splitkb/kyria/keymaps/john-ezra/config.h +++ b/keyboards/splitkb/kyria/keymaps/john-ezra/config.h @@ -16,19 +16,15 @@ #pragma once -#ifdef OLED_DRIVER_ENABLE - #define OLED_DISPLAY_128X64 -#endif +#define OLED_FONT_H "keyboards/splitkb/kyria/keymaps/john-ezra/glcdfont.c" +#define OLED_FONT_END 255 +#define OLED_TIMEOUT 30000 +#define OLED_DISPLAY_128X64 #ifdef RGBLIGHT_ENABLE - #define RGBLIGHT_EFFECT_RAINBOW_MOOD - #define RGBLIGHT_EFFECT_RAINBOW_SWIRL - #define RGBLIGHT_EFFECT_STATIC_GRADIENT - #define RGBLIGHT_EFFECT_TWINKLE - - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 + #define RGBLIGHT_HUE_STEP 5 + #define RGBLIGHT_SAT_STEP 5 + #define RGBLIGHT_VAL_STEP 5 #define RGBLIGHT_LIMIT_VAL 150 #endif @@ -38,3 +34,7 @@ #define TAPPING_TERM 125 #define SPLIT_WPM_ENABLE + +#define USB_POLLING_INTERVAL_MS 1 + +#define DEBUG_MATRIX_SCAN_RATE diff --git a/keyboards/splitkb/kyria/keymaps/john-ezra/glcdfont.c b/keyboards/splitkb/kyria/keymaps/john-ezra/glcdfont.c new file mode 100644 index 00000000000..86fb5d86e35 --- /dev/null +++ b/keyboards/splitkb/kyria/keymaps/john-ezra/glcdfont.c @@ -0,0 +1,276 @@ +/* Copyright 2021 John Ezra +* +* This program is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 2 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General 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 "progmem.h" + +static const unsigned char font[] PROGMEM = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00, + 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00, + 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, + 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00, + 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00, + 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, + 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, + 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, + 0x00, 0x18, 0x24, 0x18, 0x00, 0x00, + 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00, + 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00, + 0x26, 0x29, 0x79, 0x29, 0x26, 0x00, + 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00, + 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00, + 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00, + 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00, + 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00, + 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00, + 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00, + 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, + 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00, + 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, + 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00, + 0x08, 0x04, 0x7E, 0x04, 0x08, 0x00, + 0x10, 0x20, 0x7E, 0x20, 0x10, 0x00, + 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00, + 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00, + 0x1E, 0x10, 0x10, 0x10, 0x10, 0x00, + 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, + 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, + 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, + 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, + 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00, + 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00, + 0x23, 0x13, 0x08, 0x64, 0x62, 0x00, + 0x36, 0x49, 0x56, 0x20, 0x50, 0x00, + 0x00, 0x08, 0x07, 0x03, 0x00, 0x00, + 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, + 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, + 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, + 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, + 0x00, 0x80, 0x70, 0x30, 0x00, 0x00, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, + 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, + 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, + 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, + 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00, + 0x72, 0x49, 0x49, 0x49, 0x46, 0x00, + 0x21, 0x41, 0x49, 0x4D, 0x33, 0x00, + 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00, + 0x27, 0x45, 0x45, 0x45, 0x39, 0x00, + 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00, + 0x41, 0x21, 0x11, 0x09, 0x07, 0x00, + 0x36, 0x49, 0x49, 0x49, 0x36, 0x00, + 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00, + 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x00, 0x40, 0x34, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x14, 0x22, 0x41, 0x00, + 0x14, 0x14, 0x14, 0x14, 0x14, 0x00, + 0x00, 0x41, 0x22, 0x14, 0x08, 0x00, + 0x02, 0x01, 0x59, 0x09, 0x06, 0x00, + 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00, + 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00, + 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00, + 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00, + 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00, + 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00, + 0x7F, 0x09, 0x09, 0x09, 0x01, 0x00, + 0x3E, 0x41, 0x41, 0x51, 0x73, 0x00, + 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, + 0x00, 0x41, 0x7F, 0x41, 0x00, 0x00, + 0x20, 0x40, 0x41, 0x3F, 0x01, 0x00, + 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00, + 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00, + 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00, + 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00, + 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, + 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00, + 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00, + 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00, + 0x26, 0x49, 0x49, 0x49, 0x32, 0x00, + 0x03, 0x01, 0x7F, 0x01, 0x03, 0x00, + 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00, + 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00, + 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00, + 0x63, 0x14, 0x08, 0x14, 0x63, 0x00, + 0x03, 0x04, 0x78, 0x04, 0x03, 0x00, + 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00, + 0x00, 0x7F, 0x41, 0x41, 0x41, 0x00, + 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, + 0x00, 0x41, 0x41, 0x41, 0x7F, 0x00, + 0x04, 0x02, 0x01, 0x02, 0x04, 0x00, + 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, + 0x00, 0x03, 0x07, 0x08, 0x00, 0x00, + 0x20, 0x54, 0x54, 0x78, 0x40, 0x00, + 0x7F, 0x28, 0x44, 0x44, 0x38, 0x00, + 0x38, 0x44, 0x44, 0x44, 0x28, 0x00, + 0x38, 0x44, 0x44, 0x28, 0x7F, 0x00, + 0x38, 0x54, 0x54, 0x54, 0x18, 0x00, + 0x00, 0x08, 0x7E, 0x09, 0x02, 0x00, + 0x18, 0x24, 0x24, 0x1C, 0x78, 0x00, + 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00, + 0x00, 0x44, 0x7D, 0x40, 0x00, 0x00, + 0x20, 0x40, 0x40, 0x3D, 0x00, 0x00, + 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00, + 0x00, 0x41, 0x7F, 0x40, 0x00, 0x00, + 0x7C, 0x04, 0x78, 0x04, 0x78, 0x00, + 0x7C, 0x08, 0x04, 0x04, 0x78, 0x00, + 0x38, 0x44, 0x44, 0x44, 0x38, 0x00, + 0x7C, 0x18, 0x24, 0x24, 0x18, 0x00, + 0x18, 0x24, 0x24, 0x18, 0x7C, 0x00, + 0x7C, 0x08, 0x04, 0x04, 0x08, 0x00, + 0x48, 0x54, 0x54, 0x54, 0x24, 0x00, + 0x04, 0x04, 0x3F, 0x44, 0x24, 0x00, + 0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00, + 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00, + 0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00, + 0x44, 0x28, 0x10, 0x28, 0x44, 0x00, + 0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00, + 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, + 0x00, 0x08, 0x36, 0x41, 0x00, 0x00, + 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, + 0x00, 0x41, 0x36, 0x08, 0x00, 0x00, + 0x02, 0x01, 0x02, 0x04, 0x02, 0x00, + 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, + 0x00, 0xF0, 0x08, 0x24, 0x52, 0xE2, + 0x42, 0x42, 0x42, 0xE2, 0x52, 0x22, + 0x24, 0x22, 0x42, 0x82, 0x02, 0x02, + 0x22, 0x22, 0x02, 0x02, 0xFE, 0x00, + 0x00, 0xF0, 0x08, 0x04, 0x02, 0x82, + 0x42, 0x22, 0x42, 0x82, 0x02, 0x02, + 0x04, 0x82, 0x42, 0x22, 0x12, 0x22, + 0x42, 0x82, 0x02, 0x02, 0xFE, 0x00, + 0x00, 0xF0, 0x08, 0x84, 0x42, 0x42, + 0x82, 0x82, 0x42, 0x42, 0x42, 0x82, + 0x04, 0x82, 0xC2, 0xE2, 0xF2, 0xE2, + 0xC2, 0x82, 0x02, 0x02, 0xFE, 0x00, + 0x00, 0xF0, 0x08, 0x44, 0x42, 0xF2, + 0x42, 0x42, 0x42, 0xF2, 0x42, 0x42, + 0x04, 0x82, 0xE2, 0x92, 0x92, 0x92, + 0xE2, 0x82, 0x02, 0x02, 0xFE, 0x00, + 0x00, 0xF0, 0x08, 0x84, 0x82, 0x02, + 0x82, 0x02, 0x02, 0x82, 0x82, 0x02, + 0x02, 0x02, 0x82, 0x82, 0x02, 0x02, + 0xE2, 0x12, 0x12, 0xE2, 0x02, 0x62, + 0x92, 0x92, 0x22, 0x02, 0xFE, 0x00, + 0x00, 0xF0, 0x08, 0x04, 0xF2, 0x02, + 0x02, 0x02, 0xF2, 0x02, 0x82, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x22, + 0xF2, 0x02, 0x02, 0xE2, 0x12, 0x12, + 0x12, 0xE2, 0x02, 0x02, 0xFE, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0xFE, 0x00, 0x00, 0xF0, 0x08, + 0x02, 0xFE, 0x00, 0x00, 0xF0, 0xF8, + 0x00, 0x7F, 0x40, 0x44, 0x4A, 0x47, + 0x42, 0x42, 0x42, 0x47, 0x4A, 0x44, + 0x40, 0x40, 0x40, 0x40, 0x41, 0x42, + 0x44, 0x44, 0x40, 0x40, 0x7F, 0x00, + 0x00, 0x7F, 0x40, 0x40, 0x41, 0x40, + 0x40, 0x40, 0x40, 0x40, 0x41, 0x40, + 0x41, 0x41, 0x4F, 0x48, 0x48, 0x48, + 0x4F, 0x41, 0x41, 0x40, 0x7F, 0x00, + 0x00, 0x7F, 0x40, 0x41, 0x42, 0x42, + 0x42, 0x41, 0x41, 0x42, 0x42, 0x41, + 0x40, 0x40, 0x40, 0x4B, 0x4B, 0x4B, + 0x40, 0x40, 0x40, 0x40, 0x7F, 0x00, + 0x00, 0x7F, 0x40, 0x42, 0x42, 0x4F, + 0x42, 0x42, 0x42, 0x4F, 0x42, 0x42, + 0x40, 0x4F, 0x4F, 0x4F, 0x48, 0x4F, + 0x4F, 0x4F, 0x40, 0x40, 0x7F, 0x00, + 0x00, 0x7F, 0x40, 0x4F, 0x40, 0x4F, + 0x40, 0x4F, 0x44, 0x4A, 0x4A, 0x4F, + 0x48, 0x47, 0x48, 0x48, 0x45, 0x40, + 0x47, 0x48, 0x48, 0x47, 0x40, 0x44, + 0x48, 0x48, 0x47, 0x40, 0x7F, 0x00, + 0x00, 0x7F, 0x40, 0x40, 0x47, 0x48, + 0x47, 0x48, 0x47, 0x40, 0x4E, 0x40, + 0x4F, 0x41, 0x41, 0x4E, 0x40, 0x48, + 0x4F, 0x48, 0x40, 0x47, 0x48, 0x48, + 0x48, 0x47, 0x40, 0x40, 0x7F, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x40, 0x7F, 0x00, 0x00, 0x7F, 0x40, + 0x40, 0x7F, 0x00, 0x00, 0x7F, 0x7F, + 0x00, 0xF0, 0xF8, 0xDC, 0xAE, 0x1E, + 0xBE, 0xBE, 0xBE, 0x1E, 0xAE, 0xDE, + 0xDC, 0xDE, 0xBE, 0x7E, 0xFE, 0xFE, + 0xDE, 0xDE, 0xFE, 0xFE, 0xFE, 0x00, + 0x00, 0xF0, 0xF8, 0xFC, 0xFE, 0x7E, + 0xBE, 0xDE, 0xBE, 0x7E, 0xFE, 0xFE, + 0xFC, 0x7E, 0x3E, 0x1E, 0x0E, 0x1E, + 0x3E, 0x7E, 0xFE, 0xFE, 0xFE, 0x00, + 0x00, 0xF0, 0xF8, 0x7C, 0xBE, 0xBE, + 0x7E, 0x7E, 0xBE, 0xBE, 0xBE, 0x7E, + 0xFC, 0x7E, 0x3E, 0x1E, 0x0E, 0x1E, + 0x3E, 0x7E, 0xFE, 0xFE, 0xFE, 0x00, + 0x00, 0xF0, 0xF8, 0xBC, 0xBE, 0x0E, + 0xBE, 0xBE, 0xBE, 0x0E, 0xBE, 0xBE, + 0xFC, 0x7E, 0x1E, 0x6E, 0x6E, 0x6E, + 0x1E, 0x7E, 0xFE, 0xFE, 0xFE, 0x00, + 0x00, 0xF0, 0xF8, 0x7C, 0x7E, 0xFE, + 0x7E, 0xFE, 0xFE, 0x7E, 0x7E, 0xFE, + 0xFE, 0xFE, 0x7E, 0x7E, 0xFE, 0xFE, + 0x1E, 0xEE, 0xEE, 0x1E, 0xFE, 0x9E, + 0x6E, 0x6E, 0xDE, 0xFE, 0xFE, 0x00, + 0x00, 0xF0, 0xF8, 0xFC, 0x0E, 0xFE, + 0xFE, 0xFE, 0x0E, 0xFE, 0x7E, 0xFE, + 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xDE, + 0x0E, 0xFE, 0xFE, 0x1E, 0xEE, 0xEE, + 0xEE, 0x1E, 0xFE, 0xFE, 0xFE, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFE, 0xFE, 0x00, 0x00, 0xF0, 0x08, + 0xFE, 0xFE, 0x00, 0x00, 0xF0, 0xF8, + 0x00, 0x7F, 0x7F, 0x7B, 0x75, 0x78, + 0x7D, 0x7D, 0x7D, 0x78, 0x75, 0x7B, + 0x7F, 0x7F, 0x7F, 0x7F, 0x7E, 0x7D, + 0x7B, 0x7B, 0x7F, 0x7F, 0x7F, 0x00, + 0x00, 0x7F, 0x7F, 0x7F, 0x7E, 0x7F, + 0x7F, 0x7F, 0x7F, 0x7F, 0x7E, 0x7F, + 0x7E, 0x7E, 0x70, 0x70, 0x70, 0x70, + 0x70, 0x7E, 0x7E, 0x7F, 0x7F, 0x00, + 0x00, 0x7F, 0x7F, 0x7E, 0x7D, 0x7D, + 0x7D, 0x7E, 0x7E, 0x7D, 0x7D, 0x7E, + 0x7F, 0x7F, 0x7F, 0x74, 0x74, 0x74, + 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x00, + 0x00, 0x7F, 0x7F, 0x7D, 0x7D, 0x70, + 0x7D, 0x7D, 0x7D, 0x70, 0x7D, 0x7D, + 0x7F, 0x70, 0x70, 0x70, 0x77, 0x70, + 0x70, 0x70, 0x7F, 0x7F, 0x7F, 0x00, + 0x00, 0x7F, 0x7F, 0x70, 0x7F, 0x70, + 0x7F, 0x70, 0x7B, 0x75, 0x75, 0x70, + 0x77, 0x78, 0x77, 0x77, 0x7A, 0x7F, + 0x78, 0x77, 0x77, 0x78, 0x7F, 0x7B, + 0x77, 0x77, 0x78, 0x7F, 0x7F, 0x00, + 0x00, 0x7F, 0x7F, 0x7F, 0x78, 0x77, + 0x78, 0x77, 0x78, 0x7F, 0x71, 0x7F, + 0x70, 0x7E, 0x7E, 0x71, 0x7F, 0x77, + 0x70, 0x77, 0x7F, 0x78, 0x77, 0x77, + 0x77, 0x78, 0x7F, 0x7F, 0x7F, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x7F, 0x7F, 0x00, 0x00, 0x7F, 0x40, + 0x7F, 0x7F, 0x00, 0x00, 0x7F, 0x7F, +}; diff --git a/keyboards/splitkb/kyria/keymaps/john-ezra/keymap.c b/keyboards/splitkb/kyria/keymaps/john-ezra/keymap.c index f42cbf1d046..6937007e5c4 100644 --- a/keyboards/splitkb/kyria/keymaps/john-ezra/keymap.c +++ b/keyboards/splitkb/kyria/keymaps/john-ezra/keymap.c @@ -1,23 +1,25 @@ /* Copyright 2021 John Ezra - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ +* +* This program is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 2 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General 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 kyria_layers { _HNTS, + _GAME, + _NUMPAD, _LOWER, _RAISE, _ADJUST @@ -25,20 +27,27 @@ enum kyria_layers { enum kyria_keycodes { HNTS = SAFE_RANGE, + ESC_NUM, LOWER, RAISE, + MSS_CTL, CPY_PST, UNDO, FIND }; #define HNTS DF(_HNTS) -#define QWERTY DF(_QWERTY) +#define GAME TG(_GAME) +#define NUMPAD TG(_NUMPAD) +#define MSS_CTL MT(MOD_LCTL, C(KC_UP)) #define BSP_CMD MT(MOD_LGUI, KC_BSPC) +#define TAB_CMD MT(MOD_LGUI, KC_TAB) #define SFT_ENT MT(MOD_LSFT, KC_ENT) +#define ALT_ESC MT(MOD_LALT, KC_ESC) +#define ALT_TAB A(KC_TAB) #define UNDO G(KC_Z) #define FIND G(KC_F) -#define MSS_CTL C(KC_UP) + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -52,15 +61,57 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |-------+-------+-------+-------+-------+-------+---------------. ,---------------+-------+-------+-------+-------+-------+-------| * | Undo | K | V | M | F | G | Esc |MssnCtl| |MssnCtl| Esc | J | ; : | , < | . > | / ? | ' " | * `-------+-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-----------------------' - * | Ctrl | Alt | Lower | Space | BSPC | | Tab | Shift | Raise | Del | Caps | + * | Numpad| Enter | Lower | Space | BSPC | | Tab | Shift | Raise | Del | Caps | * `---------------------------------------' `---------------------------------------' */ [_HNTS] = LAYOUT( FIND, KC_Z, KC_R, KC_L, KC_D, KC_W, KC_Y, KC_P, KC_U, KC_X, KC_Q, KC_BSLS, CPY_PST, KC_H, KC_N, KC_T, KC_S, KC_C, KC_B, KC_I, KC_E, KC_O, KC_A, KC_GRV, - UNDO, KC_K, KC_V, KC_M, KC_F, KC_G, KC_ESC, MSS_CTL, MSS_CTL, KC_ESC, KC_J, KC_SCLN, KC_COMM, KC_DOT, KC_SLSH, KC_QUOT, - KC_LCTL, KC_LALT, LOWER, KC_SPC, BSP_CMD, KC_TAB, SFT_ENT, RAISE, KC_DEL, KC_CAPS + UNDO, KC_K, KC_V, KC_M, KC_F, KC_G, ALT_ESC, MSS_CTL, MSS_CTL, ALT_ESC, KC_J, KC_SCLN, KC_COMM, KC_DOT, KC_SLSH, KC_QUOT, + NUMPAD, SFT_ENT, LOWER, KC_SPC, BSP_CMD, TAB_CMD, SFT_ENT, RAISE, KC_DEL, KC_CAPS +), + +/* + * Game: Gaming Layer + * + * ,-----------------------------------------------. ,-----------------------------------------------. + * | 0 | Z | R | L | D | W | | Y | P | U | X | Q | Esc | + * |-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| + * | 1 | H | N | T | S | C | | B | I | E | O | A | Enter | + * |-------+-------+-------+-------+-------+-------+---------------. ,---------------+-------+-------+-------+-------+-------+-------| + * | 2 | K | V | M | F | G | 8 | 9 | |Default| Esc | J | ; : | , < | . > | / ? |Alt+Tab| + * `-------+-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-----------------------' + * | 3 | 4 | 5 | 6 | 7 | | Tab | Shift | Raise | Del | Caps | + * `---------------------------------------' `---------------------------------------' + */ + +[_GAME] = LAYOUT( + KC_0, KC_Z, KC_R, KC_L, KC_D, KC_W, KC_Y, KC_P, KC_U, KC_X, KC_Q, KC_ESC, + KC_1, KC_H, KC_N, KC_T, KC_S, KC_C, KC_B, KC_I, KC_E, KC_O, KC_A, KC_ENT, + KC_2, KC_K, KC_V, KC_M, KC_F, KC_G, KC_8, KC_9, GAME, ALT_ESC, KC_J, KC_SCLN, KC_COMM, KC_DOT, KC_SLSH, ALT_TAB, + KC_3, KC_4, KC_5, KC_6, KC_7, TAB_CMD, SFT_ENT, RAISE, KC_DEL, KC_CAPS +), + +/* + * Numpad + * + * ,-----------------------------------------------. ,-----------------------------------------------. + * | * | + | 7 | 8 | 9 | 0 | | | | | | | | + * |-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| + * | / | - | 4 | 5 | 6 | ( | | | Left | Up | Down | Right | | + * |-------+-------+-------+-------+-------+-------+---------------. ,---------------+-------+-------+-------+-------+-------+-------| + * | = | . | 1 | 2 | 3 | ) | | | | | | | | | | | | + * `-------+-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-----------------------' + * | | | | | | | | | | | | + * `---------------------------------------' `---------------------------------------' + */ + +[_NUMPAD] = LAYOUT( + KC_ASTR, KC_PLUS, KC_7, KC_8, KC_9, KC_0, _______, _______, _______, _______, _______, _______, + KC_SLSH, KC_MINS, KC_4, KC_5, KC_6, KC_LPRN, _______, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, _______, + KC_EQL, KC_DOT, KC_1, KC_2, KC_3, KC_RPRN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), /* @@ -105,26 +156,27 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - /* - * Adjust: Function Keys & RGB - * - * ,-----------------------------------------------. ,-----------------------------------------------. - * | Reset | | | | | | | | NKRO |CG SWAP| | | HNTS | - * |-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| - * | | TOG | SAI | HUI | VAI | MOD | | | | | | | | - * |-------+-------+-------+-------+-------+-------+---------------. ,---------------+-------+-------+-------+-------+-------+-------| - * | | | SAD | HUD | VAD | RMOD | | | | | | | |Bright+|Bright-| | | - * `-------+-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-----------------------' - * | | | | | | | | | | | | - * `---------------------------------------' `---------------------------------------' - */ +/* + * Adjust: Function Keys & RGB + * + * ,-----------------------------------------------. ,-----------------------------------------------. + * | Reset | | | | | | | | NKRO |CG SWAP| | | HNTS | + * |-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| + * | | TOG | SAI | HUI | VAI | MOD | | |Bright+|Bright-| | | | + * |-------+-------+-------+-------+-------+-------+---------------. ,---------------+-------+-------+-------+-------+-------+-------| + * | | | SAD | HUD | VAD | RMOD | | | | | | | | | | | | + * `-------+-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-----------------------' + * | | | | | | | | | | | | + * `---------------------------------------' `---------------------------------------' + */ [_ADJUST] = LAYOUT( - RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, HNTS, - _______, RGB_TOG, RGB_SAI, RGB_HUI, RGB_VAI, RGB_MOD, CG_TOGG, NK_TOGG, KC_BRID, KC_BRIU, _______, _______, - _______, _______, RGB_SAD, RGB_HUD, RGB_VAD,RGB_RMOD,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + RESET, _______, _______, _______, _______, _______, _______, NK_TOGG, CG_TOGG, _______, GAME, HNTS, + _______, RGB_TOG, RGB_SAI, RGB_HUI, RGB_VAI, RGB_MOD, _______, KC_BRIU, KC_BRID, _______, _______, _______, + _______, _______, RGB_SAD, RGB_HUD, RGB_VAD,RGB_RMOD,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), + }; bool process_record_user(uint16_t keycode, keyrecord_t *record) { @@ -167,6 +219,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } } break; + case MSS_CTL: + if (record->event.pressed && record->tap.count) { + tap_code16(C(KC_UP)); + return false; + } + break; case UNDO: // Tap to Undo, Tap with GUI to Redo if (get_mods() & MOD_MASK_GUI) { if (record->event.pressed) { diff --git a/keyboards/splitkb/kyria/keymaps/john-ezra/oled.c b/keyboards/splitkb/kyria/keymaps/john-ezra/oled.c index e0278391240..fe9c96d5569 100644 --- a/keyboards/splitkb/kyria/keymaps/john-ezra/oled.c +++ b/keyboards/splitkb/kyria/keymaps/john-ezra/oled.c @@ -1,18 +1,18 @@ /* Copyright 2021 John Ezra - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ +* +* This program is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 2 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program. If not, see . +*/ //Sets up what the OLED screens display. @@ -26,7 +26,7 @@ int vert_count = 0; //============= USER CONFIG PARAMS =============== float max_wpm = 150.0f; //WPM value at the top of the graph window -int graph_refresh_interval = 80; //in milliseconds +int graph_refresh_interval = 100; //in milliseconds int graph_area_fill_interval = 3; //determines how dense the horizontal lines under the graph line are; lower = more dense int vert_interval = 3; //determines frequency of vertical lines under the graph line bool vert_line = false; //determines whether to draw vertical lines @@ -34,110 +34,456 @@ int graph_line_thickness = 2; //determines thickness of graph line in pixels //============= END USER PARAMS =============== #ifdef OLED_ENABLE -oled_rotation_t oled_init_user(oled_rotation_t rotation) { - return OLED_ROTATION_180; + oled_rotation_t oled_init_user(oled_rotation_t rotation) { + return OLED_ROTATION_180; } static void render_qmk_logo(void) { - static const char PROGMEM qmk_logo[] = { - 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94, - 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4, - 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0}; + static const char PROGMEM qmk_logo[] = { + 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xf0, 0x70, 0x70, 0x7e, 0xf0, 0xf0, 0xfe, 0xf0, 0x70, 0x7e, + 0x70, 0xf0, 0xfe, 0xf0, 0xf0, 0x7e, 0x70, 0x70, 0xf0, 0xe0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x92, 0x92, 0x92, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, + 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x92, 0x92, 0x92, 0x00, 0x00, + 0xf8, 0xfc, 0x0e, 0x06, 0x06, 0x06, 0x0e, 0xfc, 0xf8, 0x00, 0xfe, 0xfe, 0x1c, 0x38, 0x70, 0xe0, + 0x70, 0x38, 0x1c, 0xfe, 0xfe, 0x00, 0xfe, 0xfe, 0xe0, 0xf0, 0xb8, 0x1c, 0x0e, 0x06, 0x00, 0x00, + 0x00, 0xfe, 0xfe, 0xc6, 0xc6, 0xc6, 0x06, 0x00, 0xe6, 0xe6, 0x00, 0xf0, 0xf0, 0x60, 0x30, 0x30, + 0x60, 0x00, 0xf0, 0xf0, 0x30, 0x30, 0xe0, 0xc0, 0x30, 0x30, 0x30, 0xe0, 0xc0, 0x00, 0xf0, 0xf0, + 0x00, 0xc0, 0xe0, 0x70, 0xe0, 0xc0, 0x00, 0xf0, 0xf0, 0x00, 0x20, 0xb0, 0x90, 0xb0, 0xf0, 0xe0, + 0x00, 0xf0, 0xf0, 0x60, 0x30, 0x30, 0x60, 0x00, 0xc0, 0xe0, 0x30, 0x30, 0x30, 0xe0, 0xc0, 0x00, + 0x00, 0x24, 0x24, 0x24, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0xf8, 0xf0, 0xf1, 0xe3, 0xe3, 0x00, 0x00, + 0x00, 0xe3, 0xe3, 0xf1, 0xf0, 0xf8, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0x24, 0x24, 0x24, 0x00, 0x00, + 0x03, 0x07, 0x0e, 0x0c, 0x0c, 0x1c, 0x1e, 0x17, 0x13, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x0f, 0x0f, 0x00, 0x01, 0x03, 0x07, 0x0e, 0x0c, 0x00, 0x00, + 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x01, 0x0f, + 0x0f, 0x07, 0x01, 0x00, 0x01, 0x07, 0x0f, 0x0f, 0x01, 0x00, 0x07, 0x0f, 0x0c, 0x04, 0x0f, 0x0f, + 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0d, 0x09, 0x09, 0x0d, 0x04, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x07, 0x07, 0x3f, 0x07, 0x07, 0x3f, 0x07, 0x07, 0x3f, + 0x07, 0x07, 0x3f, 0x07, 0x07, 0x3f, 0x07, 0x07, 0x07, 0x03, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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(qmk_logo, sizeof(qmk_logo)); +} + +// Loop to create line by line rendering for Horizontal display +// Input is oled_render_image(how many rows tall, how many pixels wide, what to render, X pos, Y pos, Frame offset) +void oled_render_image(int lines, int px, const char render_line[][px], int X_pos, int Y_pos, int frame) { + for (uint8_t i = 0; i < lines; i++){ + oled_set_cursor(X_pos, Y_pos + i); + oled_write_raw_P(render_line[i + frame], px); + } +} + +static void render_layers(void) { + static const char PROGMEM layer_background_r1[1][38] = { + {0x00, 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x02, 0x02, 0x02, 0x02, 0x82, 0x82, 0x82, 0x42, + 0x42, 0x42, 0x22, 0x22, 0x22, 0x42, 0x42, 0x42, 0x82, 0x82, 0x82, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0xfe} + }; + static const char PROGMEM layer_background_r2[1][38] = { + {0x00, 0xff, 0x00, 0x44, 0x44, 0x44, 0xaa, 0xaa, 0xaa, 0x11, 0x11, 0x11, 0x20, 0x20, 0x20, 0x40, + 0x40, 0x40, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x11, 0x11, 0x11, 0xaa, 0xaa, + 0xaa, 0x44, 0x44, 0x44, 0x00, 0xff} + }; + static const char PROGMEM layer_background_r3[1][38] = { + {0x00, 0xff, 0x00, 0x44, 0x44, 0x44, 0xaa, 0xaa, 0xaa, 0x11, 0x11, 0x11, 0x22, 0x22, 0x22, 0x44, + 0x44, 0x44, 0x88, 0x88, 0x88, 0x44, 0x44, 0x44, 0x22, 0x22, 0x22, 0x11, 0x11, 0x11, 0xaa, 0xaa, + 0xaa, 0x44, 0x44, 0x44, 0x00, 0xff} + }; + static const char PROGMEM layer_background_r4[1][38] = { + {0x00, 0x7f, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x41, 0x41, 0x41, 0x42, 0x42, 0x42, 0x44, + 0x44, 0x44, 0x48, 0x48, 0x48, 0x44, 0x44, 0x44, 0x42, 0x42, 0x42, 0x41, 0x41, 0x41, 0x40, 0x40, + 0x40, 0x40, 0x40, 0x40, 0x40, 0x7f} + }; + static const char PROGMEM base[1][38] = { + {0x00, 0xff, 0x00, 0x44, 0x44, 0x44, 0xae, 0xae, 0xae, 0x1f, 0x1f, 0x1f, 0x3e, 0x3e, 0x3e, 0x7c, + 0x7c, 0x7c, 0xf8, 0xf8, 0xf8, 0x7c, 0x7c, 0x7c, 0x3e, 0x3e, 0x3e, 0x1f, 0x1f, 0x1f, 0xae, 0xae, + 0xae, 0x44, 0x44, 0x44, 0x00, 0xff} + }; + static const char PROGMEM lower[2][38] = { + {0x00, 0xff, 0x00, 0x44, 0x44, 0x44, 0xea, 0xea, 0xea, 0xf1, 0xf1, 0xf1, 0xe2, 0xe2, 0xe2, 0xc4, + 0xc4, 0xc4, 0x88, 0x88, 0x88, 0xc4, 0xc4, 0xc4, 0xe2, 0xe2, 0xe2, 0xf1, 0xf1, 0xf1, 0xea, 0xea, + 0xea, 0x44, 0x44, 0x44, 0x00, 0xff}, + {0x00, 0x7f, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x41, 0x41, 0x41, 0x43, 0x43, 0x43, 0x47, + 0x47, 0x47, 0x4f, 0x4f, 0x4f, 0x47, 0x47, 0x47, 0x43, 0x43, 0x43, 0x41, 0x41, 0x41, 0x40, 0x40, + 0x40, 0x40, 0x40, 0x40, 0x40, 0x7f} + }; + static const char PROGMEM raise[][38] = { + {0x00, 0xff, 0x00, 0x44, 0x44, 0x44, 0xea, 0xea, 0xea, 0xf1, 0xf1, 0xf1, 0xe0, 0xe0, 0xe0, 0xc0, + 0xc0, 0xc0, 0x80, 0x80, 0x80, 0xc0, 0xc0, 0xc0, 0xe0, 0xe0, 0xe0, 0xf1, 0xf1, 0xf1, 0xea, 0xea, + 0xea, 0x44, 0x44, 0x44, 0x00, 0xff}, + {0x00, 0xff, 0x00, 0x44, 0x44, 0x44, 0xaa, 0xaa, 0xaa, 0x11, 0x11, 0x11, 0x23, 0x23, 0x23, 0x47, + 0x47, 0x47, 0x8f, 0x8f, 0x8f, 0x47, 0x47, 0x47, 0x23, 0x23, 0x23, 0x11, 0x11, 0x11, 0xaa, 0xaa, + 0xaa, 0x44, 0x44, 0x44, 0x00, 0xff} + }; + static const char PROGMEM adjust[][38] = { + {0x00, 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x02, 0x02, 0x02, 0x02, 0x82, 0x82, 0x82, 0xc2, + 0xc2, 0xc2, 0xe2, 0xe2, 0xe2, 0xc2, 0xc2, 0xc2, 0x82, 0x82, 0x82, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0xfe}, + {0x00, 0xff, 0x00, 0x44, 0x44, 0x44, 0xae, 0xae, 0xae, 0x1f, 0x1f, 0x1f, 0x3f, 0x3f, 0x3f, 0x7f, + 0x7f, 0x7f, 0xff, 0xff, 0xff, 0x7f, 0x7f, 0x7f, 0x3f, 0x3f, 0x3f, 0x1f, 0x1f, 0x1f, 0xae, 0xae, + 0xae, 0x44, 0x44, 0x44, 0x00, 0xff} + }; + static const char PROGMEM custom[][38] = { + {0x00, 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x02, 0x02, 0x02, 0x02, 0x82, 0x82, 0x82, 0x42, + 0xc2, 0x42, 0xa2, 0x62, 0xa2, 0x42, 0xc2, 0x42, 0x82, 0x82, 0x82, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0xfe}, + {0x00, 0xff, 0x00, 0x44, 0x44, 0x44, 0xaa, 0xee, 0xaa, 0x55, 0xbb, 0x55, 0xaa, 0x75, 0xaa, 0x55, + 0xea, 0x55, 0xaa, 0xd5, 0xaa, 0x55, 0xea, 0x55, 0xaa, 0x75, 0xaa, 0x55, 0xbb, 0x55, 0xaa, 0xee, + 0xaa, 0x44, 0x44, 0x44, 0x00, 0xff}, + {0x00, 0xff, 0x00, 0x44, 0x44, 0x44, 0xaa, 0xee, 0xaa, 0x55, 0xbb, 0x55, 0xaa, 0x77, 0xaa, 0x55, + 0xee, 0x55, 0xaa, 0xdd, 0xaa, 0x55, 0xee, 0x55, 0xaa, 0x77, 0xaa, 0x55, 0xbb, 0x55, 0xaa, 0xee, + 0xaa, 0x44, 0x44, 0x44, 0x00, 0xff}, + {0x00, 0x7f, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x41, 0x41, 0x41, 0x42, 0x43, 0x42, 0x45, + 0x46, 0x45, 0x4a, 0x4d, 0x4a, 0x45, 0x46, 0x45, 0x42, 0x43, 0x42, 0x41, 0x41, 0x41, 0x40, 0x40, + 0x40, 0x40, 0x40, 0x40, 0x40, 0x7f} + }; - oled_write_P(qmk_logo, false); + switch (get_highest_layer(layer_state)) { + case 0: + oled_render_image(1, 38, layer_background_r1, 15, 4, 0); + oled_render_image(1, 38, layer_background_r2, 15, 5, 0); + oled_render_image(1, 38, base, 15, 6, 0); + oled_render_image(1, 38, layer_background_r4, 15, 7, 0); + break; + case 3: + oled_render_image(2, 38, lower, 15, 6, 0); + break; + case 4: + oled_render_image(1, 38, layer_background_r1, 15, 4, 0); + oled_render_image(2, 38, raise, 15, 5, 0); + oled_render_image(1, 38, layer_background_r4, 15, 7, 0); + break; + case 5: + oled_render_image(2, 38, adjust, 15, 4, 0); + oled_render_image(1, 38, layer_background_r3, 15, 6, 0); + oled_render_image(1, 38, layer_background_r4, 15, 7, 0); + break; + default: + oled_render_image(4, 38, custom, 15, 4, 0); + break; + } +} + +void render_mod_state(uint8_t modifiers) { + static const char PROGMEM gui_off [][3]= {{0x80, 0x81, 0}, {0xa0, 0xa1, 0}}; + static const char PROGMEM gui_on [][3]= {{0xc0, 0xc1, 0}, {0xe0, 0xe1, 0}}; + static const char PROGMEM alt_off [][3]= {{0x82, 0x83, 0}, {0xa2, 0xa3, 0}}; + static const char PROGMEM alt_on [][3]= {{0xc2, 0xc3, 0}, {0xe2, 0xe3, 0}}; + static const char PROGMEM ctrl_off [][3]= {{0x84, 0x85, 0}, {0xa4, 0xa5, 0}}; + static const char PROGMEM ctrl_on [][3]= {{0xc4, 0xc5, 0}, {0xe4, 0xe5, 0}}; + static const char PROGMEM shift_off [][3]= {{0x86, 0x87, 0}, {0xa6, 0xa7, 0}}; + static const char PROGMEM shift_on [][3]= {{0xc6, 0xc7, 0}, {0xe6, 0xe7, 0}}; + + // fillers between the modifier icons bleed into the icon frames + + static const char PROGMEM off_off [][2]= {{0x9e, 0}, {0xbe, 0}}; + static const char PROGMEM on_on [][2]= {{0xdf, 0}, {0xff, 0}}; + static const char PROGMEM on_off [][2]= {{0xde, 0}, {0xfe, 0}}; + static const char PROGMEM off_on [][2]= {{0x9f, 0}, {0xbf, 0}}; + + // render icons + + if(modifiers & MOD_MASK_GUI) { + oled_set_cursor(0, 4); + oled_write_P(gui_on[0], false); + oled_set_cursor(0, 5); + oled_write_P(gui_on[1], false); + } else { + oled_set_cursor(0, 4); + oled_write_P(gui_off[0], false); + oled_set_cursor(0, 5); + oled_write_P(gui_off[1], false); + } + if(modifiers & MOD_MASK_ALT) { + oled_set_cursor(3, 4); + oled_write_P(alt_on[0], false); + oled_set_cursor(3, 5); + oled_write_P(alt_on[1], false); + } else { + oled_set_cursor(3, 4); + oled_write_P(alt_off[0], false); + oled_set_cursor(3, 5); + oled_write_P(alt_off[1], false); + } + if(modifiers & MOD_MASK_CTRL) { + oled_set_cursor(0, 6); + oled_write_P(ctrl_on[0], false); + oled_set_cursor(0, 7); + oled_write_P(ctrl_on[1], false); + } else { + oled_set_cursor(0, 6); + oled_write_P(ctrl_off[0], false); + oled_set_cursor(0, 7); + oled_write_P(ctrl_off[1], false); + } + if(modifiers & MOD_MASK_SHIFT) { + oled_set_cursor(3, 6); + oled_write_P(shift_on[0], false); + oled_set_cursor(3, 7); + oled_write_P(shift_on[1], false); + } else { + oled_set_cursor(3, 6); + oled_write_P(shift_off[0], false); + oled_set_cursor(3, 7); + oled_write_P(shift_off[1], false); + } + + // render fillers + + if ((modifiers & MOD_MASK_GUI) && (modifiers & MOD_MASK_ALT)) { + oled_set_cursor(2, 4); + oled_write_P(on_on[0], false); + oled_set_cursor(2, 5); + oled_write_P(on_on[1], false); + } else if(modifiers & MOD_MASK_GUI) { + oled_set_cursor(2, 4); + oled_write_P(on_off[0], false); + oled_set_cursor(2, 5); + oled_write_P(on_off[1], false); + } else if(modifiers & MOD_MASK_ALT) { + oled_set_cursor(2, 4); + oled_write_P(off_on[0], false); + oled_set_cursor(2, 5); + oled_write_P(off_on[1], false); + } else { + oled_set_cursor(2, 4); + oled_write_P(off_off[0], false); + oled_set_cursor(2, 5); + oled_write_P(off_off[1], false); + } + + if ((modifiers & MOD_MASK_CTRL) && (modifiers & MOD_MASK_SHIFT)) { + oled_set_cursor(2, 6); + oled_write_P(on_on[0], false); + oled_set_cursor(2, 7); + oled_write_P(on_on[1], false); + } else if(modifiers & MOD_MASK_CTRL) { + oled_set_cursor(2, 6); + oled_write_P(on_off[0], false); + oled_set_cursor(2, 7); + oled_write_P(on_off[1], false); + } else if(modifiers & MOD_MASK_SHIFT) { + oled_set_cursor(2, 6); + oled_write_P(off_on[0], false); + oled_set_cursor(2, 7); + oled_write_P(off_on[1], false); + } else { + oled_set_cursor(2, 6); + oled_write_P(off_off[0], false); + oled_set_cursor(2, 7); + oled_write_P(off_off[1], false); + } } void render_bootmagic_status(void) { - oled_write_P((keymap_config.swap_lctl_lgui) ? PSTR("OS: Windows\n\n") : PSTR("OS: MacOS\n\n"), false); - oled_write_P((keymap_config.nkro) ? PSTR("NKRO ") : PSTR(" "), false); + static const char PROGMEM nkro_off [][3]= {{0x88, 0x89, 0}, {0xa8, 0xa9, 0}}; + static const char PROGMEM nkro_on [][3]= {{0xc8, 0xc9, 0}, {0xe8, 0xe9, 0}}; + static const char PROGMEM mac_os_off [][6]= {{0x90, 0x91, 0x92, 0x93, 0x94, 0}, {0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0}}; + static const char PROGMEM mac_os_on [][6]= {{0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0}, {0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0}}; + static const char PROGMEM windows_off [][6]= {{0x95, 0x96, 0x97, 0x98, 0x99, 0}, {0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0}}; + static const char PROGMEM windows_on [][6]= {{0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0}, {0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0}}; + + if (keymap_config.nkro) { + oled_set_cursor(5, 4); + oled_write_P(nkro_on[0], false); + oled_set_cursor(5, 5); + oled_write_P(nkro_on[1], false); + } else { + oled_set_cursor(5, 4); + oled_write_P(nkro_off[0], false); + oled_set_cursor(5, 5); + oled_write_P(nkro_off[1], false); + } + if (keymap_config.swap_lctl_lgui) { + oled_set_cursor(10, 6); + oled_write_P(windows_on[0], false); + oled_set_cursor(10, 7); + oled_write_P(windows_on[1], false); + oled_set_cursor(10, 4); + oled_write_P(mac_os_off[0], false); + oled_set_cursor(10, 5); + oled_write_P(mac_os_off[1], false); + } else { + oled_set_cursor(10, 4); + oled_write_P(mac_os_on[0], false); + oled_set_cursor(10, 5); + oled_write_P(mac_os_on[1], false); + oled_set_cursor(10, 6); + oled_write_P(windows_off[0], false); + oled_set_cursor(10, 7); + oled_write_P(windows_off[1], false); + } +} + +void render_lock_status(void) { + static const char PROGMEM caps_off [][3]= {{0x8a, 0x8b, 0}, {0xaa, 0xab, 0}}; + static const char PROGMEM caps_on [][3]= {{0xca, 0xcb, 0}, {0xea, 0xeb, 0}}; + static const char PROGMEM num_off [][3]= {{0x8c, 0x8d, 0}, {0xac, 0xad, 0}}; + static const char PROGMEM num_on [][3]= {{0xcc, 0xcd, 0}, {0xec, 0xed, 0}}; + static const char PROGMEM scrl_off [][3]= {{0x8e, 0x8f, 0}, {0xae, 0xaf, 0}}; + static const char PROGMEM scrl_on [][3]= {{0xce, 0xcf, 0}, {0xee, 0xef, 0}}; + + static const char PROGMEM off_off [][2]= {{0x9e, 0}, {0xbe, 0}}; + static const char PROGMEM on_on [][2]= {{0xdf, 0}, {0xff, 0}}; + static const char PROGMEM on_off [][2]= {{0xde, 0}, {0xfe, 0}}; + static const char PROGMEM off_on [][2]= {{0x9f, 0}, {0xbf, 0}}; + + led_t led_usb_state = host_keyboard_led_state(); + if (led_usb_state.caps_lock) { + oled_set_cursor(8, 4); + oled_write_P(caps_on[0], false); + oled_set_cursor(8, 5); + oled_write_P(caps_on[1], false); + } else { + oled_set_cursor(8, 4); + oled_write_P(caps_off[0], false); + oled_set_cursor(8, 5); + oled_write_P(caps_off[1], false); + } + if (led_usb_state.num_lock) { + oled_set_cursor(5, 6); + oled_write_P(num_on[0], false); + oled_set_cursor(5, 7); + oled_write_P(num_on[1], false); + } else { + oled_set_cursor(5, 6); + oled_write_P(num_off[0], false); + oled_set_cursor(5, 7); + oled_write_P(num_off[1], false); + } + if (led_usb_state.scroll_lock) { + oled_set_cursor(8, 6); + oled_write_P(scrl_on[0], false); + oled_set_cursor(8, 7); + oled_write_P(scrl_on[1], false); + } else { + oled_set_cursor(8, 6); + oled_write_P(scrl_off[0], false); + oled_set_cursor(8, 7); + oled_write_P(scrl_off[1], false); + } + + // render fillers + + if ((led_usb_state.caps_lock) && (keymap_config.nkro)) { + oled_set_cursor(7, 4); + oled_write_P(on_on[0], false); + oled_set_cursor(7, 5); + oled_write_P(on_on[1], false); + } else if(keymap_config.nkro) { + oled_set_cursor(7, 4); + oled_write_P(on_off[0], false); + oled_set_cursor(7, 5); + oled_write_P(on_off[1], false); + } else if(led_usb_state.caps_lock) { + oled_set_cursor(7, 4); + oled_write_P(off_on[0], false); + oled_set_cursor(7, 5); + oled_write_P(off_on[1], false); + } else { + oled_set_cursor(7, 4); + oled_write_P(off_off[0], false); + oled_set_cursor(7, 5); + oled_write_P(off_off[1], false); + } + if ((led_usb_state.num_lock) && (led_usb_state.scroll_lock)) { + oled_set_cursor(7, 6); + oled_write_P(on_on[0], false); + oled_set_cursor(7, 7); + oled_write_P(on_on[1], false); + } else if(led_usb_state.num_lock) { + oled_set_cursor(7, 6); + oled_write_P(on_off[0], false); + oled_set_cursor(7, 7); + oled_write_P(on_off[1], false); + } else if(led_usb_state.scroll_lock) { + oled_set_cursor(7, 6); + oled_write_P(off_on[0], false); + oled_set_cursor(7, 7); + oled_write_P(off_on[1], false); + } else { + oled_set_cursor(7, 6); + oled_write_P(off_off[0], false); + oled_set_cursor(7, 7); + oled_write_P(off_off[1], false); + } } -void render_wpm(void) { - //get current WPM value - currwpm = get_current_wpm(); - //check if it's been long enough before refreshing graph - if(timer_elapsed(timer) > graph_refresh_interval){ - // main calculation to plot graph line - x = 64 - ((currwpm / max_wpm) * 64); - //first draw actual value line - for(int i = 0; i <= graph_line_thickness - 1; i++){ - oled_write_pixel(1, x + i, true); + + +void render_wpm_graph(void) { + currwpm = get_current_wpm(); //get current WPM value + if(timer_elapsed(timer) > graph_refresh_interval){ //check if it's been long enough before refreshing graph + x = 63 - ((currwpm / max_wpm) * 63); // main calculation to plot graph line + for(int i = 0; i <= graph_line_thickness - 1; i++){ //first draw actual value line + oled_write_pixel(1, x + i, true); } - //then fill in area below the value line - if(vert_line){ - if(vert_count == vert_interval){ - vert_count = 0; - while(x <= 64){ - oled_write_pixel(1, x, true); - x++; - } - } else { - for(int i = 64; i > x; i--){ - if(i % graph_area_fill_interval == 0){ - oled_write_pixel(1, i, true); - } + if(vert_line){ //then fill in area below the value line + if(vert_count == vert_interval){ + vert_count = 0; + while(x <= 63){ + oled_write_pixel(1, x, true); + x++; } - vert_count++; - } } else { - for(int i = 64; i > x; i--){ + for(int i = 63; i > x; i--){ if(i % graph_area_fill_interval == 0){ oled_write_pixel(1, i, true); } } + vert_count++; + } + } else { + for(int i = 63; i > x; i--){ + if(i % graph_area_fill_interval == 0){ + oled_write_pixel(1, i, true); + } } - //then move the entire graph one pixel to the right - oled_pan(false); - //refresh the timer for the next iteration - timer = timer_read(); } - //format current WPM value into a printable string - char buf[4]; - oled_set_cursor(14, 0); - oled_write("WPM:", false); - buf[0] = currwpm >= 100 ? ((currwpm/100) + '0') : ' '; - buf[1] = currwpm >= 10 ? (((currwpm/10) % 10) + '0') : ' '; - buf[2] = (currwpm % 10) + '0'; - buf[3] = 0; - oled_write(buf, false); + oled_pan(false); //then move the entire graph one pixel to the right + timer = timer_read(); //refresh the timer for the next iteration + } + char buf[4]; //format current WPM value into a printable string + oled_set_cursor(14, 0); + oled_write("WPM:", false); + buf[0] = currwpm >= 100 ? ((currwpm/100) + '0') : ' '; + buf[1] = currwpm >= 10 ? (((currwpm/10) % 10) + '0') : ' '; + buf[2] = (currwpm % 10) + '0'; + buf[3] = 0; + oled_write(buf, false); } -static void render_status(void) { - // QMK Logo and version information - render_qmk_logo(); - oled_write_P(PSTR("Kyria: Rev1.0\n"), false); - - // Host Keyboard Layer Status - oled_write_P(PSTR("Layer: "), false); - switch (get_highest_layer(layer_state)) { - case 0: - oled_write_P(PSTR("Default\n"), false); - break; - case 1: - oled_write_P(PSTR("Lower\n"), false); - break; - case 2: - oled_write_P(PSTR("Raise\n"), false); - break; - case 3: - oled_write_P(PSTR("Adjust\n"), false); - break; - default: - oled_write_P(PSTR("Undefined\n"), false); - } - - render_bootmagic_status(); - -// Host Keyboard LED Status - led_t led_state = host_keyboard_led_state(); - oled_write_P(led_state.caps_lock ? PSTR("CAPLCK ") : PSTR(" "), false); +void render_status_main(void) { + render_qmk_logo(); + render_layers(); + render_mod_state(get_mods()); + render_bootmagic_status(); + render_lock_status(); + +} + +void render_status_secondary(void) { + render_wpm_graph(); } void oled_task_user(void) { - if (is_keyboard_master()) { - render_status(); - } else { - render_wpm(); - } + if (is_keyboard_master()) { + render_status_main(); // Renders the current keyboard state (layer, lock, caps, scroll, etc) + } else { + render_status_secondary(); + } } + #endif diff --git a/keyboards/splitkb/kyria/keymaps/john-ezra/readme.md b/keyboards/splitkb/kyria/keymaps/john-ezra/readme.md new file mode 100644 index 00000000000..8a3280614b4 --- /dev/null +++ b/keyboards/splitkb/kyria/keymaps/john-ezra/readme.md @@ -0,0 +1,20 @@ +### This Keymap uses the nanoBoot bootloader to maximize available firmware space. + +As is, the firmware will be too large if using the standard bootloader. Removing `DEBOUNCE_TYPE = sym_eager_pk` from the `rules.mk` should get the size under the limit. + +If nanoBoot is not going to be used, delete or comment out the following from your `rules.mk`: +```make +BOOTLOADER = hid +BOOTLOADER_SIZE = 512 +PROGRAM_CMD = $(HID_BOOTLOADER_CLI) -mmcu=$(MCU) -w -v $(BUILD_DIR)/$(TARGET).hex +``` + +nanoBoot can be found here: [nanoBoot](https://github.com/sigprof/nanoBoot) I used the string-descriptors branch as it was the latest update. + +To ISP Flash nanoBoot: `avrdude -p atmega32u4 -c avrisp -U flash:w:/Users/DempseyTech/nanoBoot/nanoBoot.hex:i -P /dev/cu.usbmodem123451 -U lfuse:w:0x7F:m -U hfuse:w:0xD6:m -U efuse:w:0xC7:m` + +You will need to change the path in the CLI command to match your file structure. + +QMK Toolbox will not recognize controllers using nanoBoot, instead use the CLI to flash. + +To Flash: `qmk flash -kb splitkb/kyria/rev1 -km john-ezra -bl hid_bootloader` diff --git a/keyboards/splitkb/kyria/keymaps/john-ezra/rules.mk b/keyboards/splitkb/kyria/keymaps/john-ezra/rules.mk index b86789c09ca..87026b87564 100644 --- a/keyboards/splitkb/kyria/keymaps/john-ezra/rules.mk +++ b/keyboards/splitkb/kyria/keymaps/john-ezra/rules.mk @@ -8,5 +8,12 @@ GRAVE_ESC_ENABLE = no # Disable Grave Escape MOUSEKEY_ENABLE = no # Disable Mousekeys WPM_ENABLE = yes # Enable WPM Counter (Works with default wpm files, but works better with vectorstorm updated wpm.c and wpm.h -> https://github.com/vectorstorm/qmk_firmware/tree/wpm_exact) KEY_OVERRIDE_ENABLE = yes # Enable Key Overrides +CONSOLE_ENABLE = no + +DEBOUNCE_TYPE = sym_eager_pk + +BOOTLOADER = hid # This Keymap Uses nanoBoot, more info in readme +BOOTLOADER_SIZE = 512 +PROGRAM_CMD = $(HID_BOOTLOADER_CLI) -mmcu=$(MCU) -w -v $(BUILD_DIR)/$(TARGET).hex SRC += oled.c diff --git a/keyboards/splitkb/kyria/keymaps/manna-harbour_miryoku/config.h b/keyboards/splitkb/kyria/keymaps/manna-harbour_miryoku/config.h index c04bee9b4fd..495b3032c64 100644 --- a/keyboards/splitkb/kyria/keymaps/manna-harbour_miryoku/config.h +++ b/keyboards/splitkb/kyria/keymaps/manna-harbour_miryoku/config.h @@ -1,6 +1,6 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/keyboards/splitkb/kyria/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/splitkb/kyria/keymaps/manna-harbour_miryoku/keymap.c index 1520387e888..7c5717a0fee 100644 --- a/keyboards/splitkb/kyria/keymaps/manna-harbour_miryoku/keymap.c +++ b/keyboards/splitkb/kyria/keymaps/manna-harbour_miryoku/keymap.c @@ -1,5 +1,5 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/keyboards/splitkb/kyria/keymaps/zigotica/config.h b/keyboards/splitkb/kyria/keymaps/zigotica/config.h new file mode 100644 index 00000000000..b59e04474b6 --- /dev/null +++ b/keyboards/splitkb/kyria/keymaps/zigotica/config.h @@ -0,0 +1,44 @@ +/* Copyright 2020 Sergi Meseguer + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 SPLIT_LAYER_STATE_ENABLE +#define SPLIT_LED_STATE_ENABLE +#define MASTER_RIGHT// EE_HANDS MASTER_RIGHT + +// these should work better for homerow modifiers +#define TAPPING_TERM 350 +#define PERMISSIVE_HOLD +#define IGNORE_MOD_TAP_INTERRUPT +#define TAPPING_FORCE_HOLD + +#define LEADER_PER_KEY_TIMING +#define LEADER_TIMEOUT 300 + +#ifdef OLED_ENABLE + #define OLED_DISPLAY_128X64 + #define OLED_TIMEOUT 10000 +#endif + +#ifdef ENCODER_ENABLE + // EC11K encoders have a different resolution than other EC11 encoders. + // When using the default resolution of 4, if you notice your encoder skipping + // every other tick, lower the resolution to 2. + #define ENCODER_RESOLUTION 2 + // Also, flip direction + #define ENCODER_DIRECTION_FLIP +#endif diff --git a/keyboards/splitkb/kyria/keymaps/zigotica/keymap.c b/keyboards/splitkb/kyria/keymaps/zigotica/keymap.c new file mode 100644 index 00000000000..2671f074636 --- /dev/null +++ b/keyboards/splitkb/kyria/keymaps/zigotica/keymap.c @@ -0,0 +1,58 @@ +/* Copyright 2020 Sergi Meseguer + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 "zigotica.h" + +#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [BASE] = LAYOUT_wrapper( + _______, _STENAI_L1, _STENAI_R1, _______, + _______, _STENAI_L2, _STENAI_R2, _______, + _______, _STENAI_L3, _______, _______, _______, _______, _STENAI_R3, _______, + _______, _______, _STENAI_LT, _______, _______, _STENAI_RT, _______, _______ + ), + + [_NUM] = LAYOUT_wrapper( + _______, ____NUM_L1, ____NUM_R1, _______, + _______, ____NUM_L2, ____NUM_R2, _______, + _______, ____NUM_L3, _______, _______, _______, _______, ____NUM_R3, _______, + _______, _______, ____NUM_LT, _______, _______, ____NUM_RT, _______, _______ + ), + + [_NAV] = LAYOUT_wrapper( + _______, ____NAV_L1, ____NAV_R1, _______, + _______, ____NAV_L2, ____NAV_R2, _______, + _______, ____NAV_L3, _______, _______, _______, _______, ____NAV_R3, _______, + _______, _______, ____NAV_LT, _______, _______, ____NAV_RT, _______, _______ + ), + + [_SYM] = LAYOUT_wrapper( + _______, ____SYM_L1, ____SYM_R1, _______, + _______, ____SYM_L2, ____SYM_R2, _______, + _______, ____SYM_L3, _______, _______, _______, _______, ____SYM_R3, _______, + _______, _______, ____SYM_LT, _______, _______, ____SYM_RT, _______, _______ + ), + + [_FN] = LAYOUT_wrapper( + _______, ____FN_L1, ____FN_R1, _______, + _______, ____FN_L2, ____FN_R2, _______, + _______, ____FN_L3, _______, _______, _______, _______, ____FN_R3, _______, + _______, _______, ____FN_LT, _______, _______, ____FN_RT, _______, _______ + ), +}; + diff --git a/keyboards/splitkb/kyria/keymaps/zigotica/oled.c b/keyboards/splitkb/kyria/keymaps/zigotica/oled.c new file mode 100644 index 00000000000..46bb2c3cea4 --- /dev/null +++ b/keyboards/splitkb/kyria/keymaps/zigotica/oled.c @@ -0,0 +1,87 @@ +/* Copyright 2020 Sergi Meseguer + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 "zigotica.h" + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + return OLED_ROTATION_180; +} + +static void render_kyria_logo(void) { + static const char PROGMEM kyria_logo[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,128,192,224,240,112,120, 56, 60, 28, 30, 14, 14, 14, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 14, 14, 14, 30, 28, 60, 56,120,112,240,224,192,128,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,192,224,240,124, 62, 31, 15, 7, 3, 1,128,192,224,240,120, 56, 60, 28, 30, 14, 14, 7, 7,135,231,127, 31,255,255, 31,127,231,135, 7, 7, 14, 14, 30, 28, 60, 56,120,240,224,192,128, 1, 3, 7, 15, 31, 62,124,240,224,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,240,252,255, 31, 7, 1, 0, 0,192,240,252,254,255,247,243,177,176, 48, 48, 48, 48, 48, 48, 48,120,254,135, 1, 0, 0,255,255, 0, 0, 1,135,254,120, 48, 48, 48, 48, 48, 48, 48,176,177,243,247,255,254,252,240,192, 0, 0, 1, 7, 31,255,252,240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,255,255,255, 0, 0, 0, 0, 0,254,255,255, 1, 1, 7, 30,120,225,129,131,131,134,134,140,140,152,152,177,183,254,248,224,255,255,224,248,254,183,177,152,152,140,140,134,134,131,131,129,225,120, 30, 7, 1, 1,255,255,254, 0, 0, 0, 0, 0,255,255,255, 0, 0, 0, 0,255,255, 0, 0,192,192, 48, 48, 0, 0,240,240, 0, 0, 0, 0, 0, 0,240,240, 0, 0,240,240,192,192, 48, 48, 48, 48,192,192, 0, 0, 48, 48,243,243, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48,192,192, 0, 0, 0, 0, 0, + 0, 0, 0,255,255,255, 0, 0, 0, 0, 0,127,255,255,128,128,224,120, 30,135,129,193,193, 97, 97, 49, 49, 25, 25,141,237,127, 31, 7,255,255, 7, 31,127,237,141, 25, 25, 49, 49, 97, 97,193,193,129,135, 30,120,224,128,128,255,255,127, 0, 0, 0, 0, 0,255,255,255, 0, 0, 0, 0, 63, 63, 3, 3, 12, 12, 48, 48, 0, 0, 0, 0, 51, 51, 51, 51, 51, 51, 15, 15, 0, 0, 63, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 63, 63, 48, 48, 0, 0, 12, 12, 51, 51, 51, 51, 51, 51, 63, 63, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 15, 63,255,248,224,128, 0, 0, 3, 15, 63,127,255,239,207,141, 13, 12, 12, 12, 12, 12, 12, 12, 30,127,225,128, 0, 0,255,255, 0, 0,128,225,127, 30, 12, 12, 12, 12, 12, 12, 12, 13,141,207,239,255,127, 63, 15, 3, 0, 0,128,224,248,255, 63, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 7, 15, 62,124,248,240,224,192,128, 1, 3, 7, 15, 30, 28, 60, 56,120,112,112,224,224,225,231,254,248,255,255,248,254,231,225,224,224,112,112,120, 56, 60, 28, 30, 15, 7, 3, 1,128,192,224,240,248,124, 62, 15, 7, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 3, 7, 15, 14, 30, 28, 60, 56,120,112,112,112,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,112,112,112,120, 56, 60, 28, 30, 14, 15, 7, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }; + oled_write_raw_P(kyria_logo, sizeof(kyria_logo)); +} + +static void render_qmk_logo(void) { + static const char PROGMEM qmk_logo[] = { + 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94, + 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4, + 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0}; + + oled_write_P(qmk_logo, false); +} + +static void render_status(void) { + // QMK Logo and version information + render_qmk_logo(); + oled_write_P(PSTR("Kyria v1.2\n\n"), false); + + // Host Keyboard Layer Status + oled_write_P(PSTR("Layer: "), false); + switch (get_highest_layer(layer_state)) { + case BASE: + oled_write_P(PSTR("STENAI\n"), false); + break; + case _NUM: + oled_write_P(PSTR("NUM\n"), false); + break; + case _NAV: + oled_write_P(PSTR("NAV\n"), false); + break; + case _SYM: + oled_write_P(PSTR("SYM\n"), false); + break; + case _FN: + oled_write_P(PSTR("FN\n"), false); + break; + default: + oled_write_P(PSTR("Undef\n"), false); + } + + // Host Keyboard LED Status + led_t led_state = host_keyboard_led_state(); + oled_write_P(led_state.num_lock ? PSTR("NUMLCK ") : PSTR(" "), false); + oled_write_P(led_state.caps_lock ? PSTR("CAPLCK ") : PSTR(" "), false); + oled_write_P(led_state.scroll_lock ? PSTR("SCRLCK ") : PSTR(" "), false); +} + +void oled_task_user(void) { + if (!is_keyboard_left()) { + render_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc) + } else { + render_kyria_logo(); + } +} + diff --git a/keyboards/splitkb/kyria/keymaps/zigotica/oled.h b/keyboards/splitkb/kyria/keymaps/zigotica/oled.h new file mode 100644 index 00000000000..2422c68f286 --- /dev/null +++ b/keyboards/splitkb/kyria/keymaps/zigotica/oled.h @@ -0,0 +1,18 @@ +/* Copyright 2020 Sergi Meseguer + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 "zigotica.h" diff --git a/keyboards/splitkb/kyria/keymaps/zigotica/rules.mk b/keyboards/splitkb/kyria/keymaps/zigotica/rules.mk new file mode 100644 index 00000000000..29d98d7019b --- /dev/null +++ b/keyboards/splitkb/kyria/keymaps/zigotica/rules.mk @@ -0,0 +1,10 @@ +OLED_ENABLE = yes +ENCODER_ENABLE = no +RGBLIGHT_ENABLE = no + +COMBO_ENABLE = yes +TAP_DANCE_ENABLE = yes +LEADER_ENABLE = no +UNICODE_ENABLE = no +MOUSEKEY_ENABLE = yes + diff --git a/keyboards/splitkb/kyria/rules.mk b/keyboards/splitkb/kyria/rules.mk index 3ac6b3822b8..f0e5cfc3d5f 100644 --- a/keyboards/splitkb/kyria/rules.mk +++ b/keyboards/splitkb/kyria/rules.mk @@ -17,7 +17,6 @@ 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 -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output SPLIT_KEYBOARD = yes # Split common LTO_ENABLE = yes diff --git a/keyboards/splitkb/zima/keymaps/drashna/config.h b/keyboards/splitkb/zima/keymaps/drashna/config.h index 133ab6a9147..8d0908182e3 100644 --- a/keyboards/splitkb/zima/keymaps/drashna/config.h +++ b/keyboards/splitkb/zima/keymaps/drashna/config.h @@ -32,3 +32,6 @@ #define OLED_LOGO_SCIFI #define ENCODER_RESOLUTION 2 + +#define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_TWINKLE+4 +#define RGBLIGHT_DEFAULT_HUE 213 diff --git a/keyboards/splitography/config.h b/keyboards/splitography/config.h new file mode 100644 index 00000000000..19afdec862c --- /dev/null +++ b/keyboards/splitography/config.h @@ -0,0 +1,55 @@ +/* Copyright 2021 Alexis Jeandeau + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 Splitography + +/* Key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 12 + +/* 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 + +/* + * 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 diff --git a/keyboards/splitography/info.json b/keyboards/splitography/info.json new file mode 100644 index 00000000000..2d07607c291 --- /dev/null +++ b/keyboards/splitography/info.json @@ -0,0 +1,302 @@ +{ + "manufacturer": "SOFT/HRUF", + "keyboard_name": "Splitography", + "url": "https://softhruf.love/collections/writers", + "maintainer": "qmk", + "processor": "atmega32u4", + "diode_direction": "COL2ROW", + "features": { + "steno": true, + "nkro": true, + "bootmagic": true, + "mousekey": false, + "extrakey": true, + "console": false, + "audio": false, + "command": false, + "backlight": false + }, + "matrix_pins": { + "rows": ["D0", "D1", "D2", "D3"], + "cols": ["F0", "F1", "F4", "F5", "F6", "F7", "C7", "C6", "B6", "B5", "B4", "D7"] + }, + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_ver": "0x0001" + }, + "layouts": { + "LAYOUT": { + "layout": [ + { + "x": 0, + "y": 0, + "h": 0.6, + "matrix": [0, 0], + "label": "Esc" + }, + { + "x": 1, + "y": 0, + "h": 0.6, + "matrix": [0, 1], + "label": "Q" + }, + { + "x": 2, + "y": 0, + "h": 0.6, + "matrix": [0, 2], + "label": "W" + }, + { + "x": 3, + "y": 0, + "h": 0.6, + "matrix": [0, 3], + "label": "E" + }, + { + "x": 4, + "y": 0, + "h": 0.6, + "matrix": [0, 4], + "label": "R" + }, + { + "x": 5, + "y": 0, + "h": 0.6, + "matrix": [0, 5], + "label": "T" + }, + { + "x": 8, + "y": 0, + "h": 0.6, + "matrix": [0, 6], + "label": "Y" + }, + { + "x": 9, + "y": 0, + "h": 0.6, + "matrix": [0, 7], + "label": "U" + }, + { + "x": 10, + "y": 0, + "h": 0.6, + "matrix": [0, 8], + "label": "I" + }, + { + "x": 11, + "y": 0, + "h": 0.6, + "matrix": [0, 9], + "label": "O" + }, + { + "x": 12, + "y": 0, + "h": 0.6, + "matrix": [0, 10], + "label": "P" + }, + { + "x": 13, + "y": 0, + "h": 0.6, + "matrix": [0, 11], + "label": "Backspace" + }, + { + "x": 0, + "y": 0.6, + "matrix": [1, 0], + "label": "Alt" + }, + { + "x": 1, + "y": 0.6, + "matrix": [1, 1], + "label": "A" + }, + { + "x": 2, + "y": 0.6, + "matrix": [1, 2], + "label": "S" + }, + { + "x": 3, + "y": 0.6, + "matrix": [1, 3], + "label": "D" + }, + { + "x": 4, + "y": 0.6, + "matrix": [1, 4], + "label": "F" + }, + { + "x": 5, + "y": 0.6, + "matrix": [1, 5], + "label": "G" + }, + { + "x": 8, + "y": 0.6, + "matrix": [1, 6], + "label": "H" + }, + { + "x": 9, + "y": 0.6, + "matrix": [1, 7], + "label": "J" + }, + { + "x": 10, + "y": 0.6, + "matrix": [1, 8], + "label": "K" + }, + { + "x": 11, + "y": 0.6, + "matrix": [1, 9], + "label": "L" + }, + { + "x": 12, + "y": 0.6, + "matrix": [1, 10], + "label": ";" + }, + { + "x": 13, + "y": 0.6, + "matrix": [1, 11], + "label": "Enter" + }, + { + "x": 0, + "y": 1.6, + "h": 1.2, + "matrix": [2, 0], + "label": "Shift" + }, + { + "x": 1, + "y": 1.6, + "h": 1.2, + "matrix": [2, 1], + "label": "Z" + }, + { + "x": 2, + "y": 1.6, + "h": 1.2, + "matrix": [2, 2], + "label": "X" + }, + { + "x": 3, + "y": 1.6, + "h": 1.2, + "matrix": [2, 3], + "label": "C" + }, + { + "x": 4, + "y": 1.6, + "h": 1.2, + "matrix": [2, 4], + "label": "V" + }, + { + "x": 5, + "y": 1.6, + "h": 1.2, + "matrix": [2, 5], + "label": "B" + }, + { + "x": 8, + "y": 1.6, + "h": 1.2, + "matrix": [2, 6], + "label": "N" + }, + { + "x": 9, + "y": 1.6, + "h": 1.2, + "matrix": [2, 7], + "label": "M" + }, + { + "x": 10, + "y": 1.6, + "h": 1.2, + "matrix": [2, 8], + "label": "," + }, + { + "x": 11, + "y": 1.6, + "h": 1.2, + "matrix": [2, 9], + "label": "c" + }, + { + "x": 12, + "y": 1.6, + "h": 1.2, + "matrix": [2, 10], + "label": "/" + }, + { + "x": 13, + "y": 1.6, + "h": 1.2, + "matrix": [2, 11], + "label": "Super" + }, + { + "x": 3.5, + "y": 3, + "h": 1.2, + "matrix": [3, 4], + "label": "Orange" + }, + { + "x": 4.5, + "y": 3, + "h": 1.2, + "matrix": [3, 5], + "label": "Blue" + }, + { + "x": 8.5, + "y": 3, + "h": 1.2, + "matrix": [3, 6], + "label": "Space" + }, + { + "x": 9.5, + "y": 3, + "h": 1.2, + "matrix": [3, 7], + "label": "Ctrl" + } + ] + } + } +} diff --git a/keyboards/splitography/keymaps/default/keymap.c b/keyboards/splitography/keymaps/default/keymap.c new file mode 100644 index 00000000000..91304c5507b --- /dev/null +++ b/keyboards/splitography/keymaps/default/keymap.c @@ -0,0 +1,291 @@ +/* Copyright 2021 Alexis Jeandeau + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_steno.h" + +enum keyboard_layers { + _QWERTY = 0, + _GEMINI, + _PLOVER, + _BLUE, + _ORANGE, + _GREEN, + _NUM, + _END_LAYERS, +}; + +enum keyboard_keycodes { + QWERTY = SAFE_RANGE, + QWERTY1, + QWERTY2, + GEMINI, + PLOVER, + BLUE, + ORANGE, +}; + +#define COPY LCTL(KC_C) +#define CUT LCTL(KC_X) +#define PASTE LCTL(KC_V) +#define UNDO LCTL(KC_Z) +#define TG_NUM TG(_NUM) + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // ...................................................................... Qwerty + // + // http://www.keyboard-layout-editor.com/#/gists/1b04ce6be0cee6e5d2998b2a8efb8b09 + + // ┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐ + // │ Esc │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ Bksp │ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │ Alt │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ Enter│ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │ Shift│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ GUI │ + // └──────┴──────┴──────┴──────┼──────┼──────┼──────┼──────┼──────┴──────┴──────┴──────┘ + // │Orange│ Blue │ Space│ Ctrl │ + // └──────┴──────┴──────┴──────┘ + + [_QWERTY] = LAYOUT( + 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_LALT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, 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_LGUI, + ORANGE, BLUE, KC_SPC, KC_LCTL + ), + + // .................................................................. Blue Layer + // + // http://www.keyboard-layout-editor.com/#/gists/054b8bc0e31971bb962ea1c781232e0b + + // ┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐ + // │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ │ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │ Alt │ Stop │ Prev │ Play │ Next │ +Vol │ │ │ │ [ │ ] │ ' │ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │ Shift│ Undo │ Cut │ Copy │ Paste│ -Vol │ Mute │ │ │ - │ = │ GUI │ + // └──────┴──────┴──────┴──────┼──────┼──────┼──────┼──────┼──────┴──────┴──────┴──────┘ + // │Orange│ f() │ Del │ Ctrl │ + // └──────┴──────┴──────┴──────┘ + + [_BLUE] = LAYOUT( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, XXXXXXX, + KC_LALT, KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLU, XXXXXXX, XXXXXXX, XXXXXXX, KC_LBRC, KC_RBRC, KC_QUOT, + KC_LSFT, UNDO, CUT, COPY, PASTE, KC_VOLD, KC_MUTE, XXXXXXX, XXXXXXX, KC_MINS, KC_EQL, KC_LGUI, + ORANGE, _______, KC_DEL, KC_LCTL + ), + + // ................................................................ Orange Layer + // + // http://www.keyboard-layout-editor.com/#/gists/83ccc7c3faa78b1f67f6fef65063a248 + + // ┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐ + // │Plover│ F1 │ F2 │ F3 │ F4 │ │ App │ PrScr│ScrLck│ Pause│ │ │ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │ Alt │ F5 │ F6 │ F7 │ F8 │ │ │Insert│ Home │ PgUp │ │ │ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │ Shift│ F9 │ F10 │ F11 │ F12 │ │ │ Del │ End │ PgDn │ \ │ GUI │ + // └──────┴──────┴──────┴──────┼──────┼──────┼──────┼──────┼──────┴──────┴──────┴──────┘ + // │ f() │ Blue │ Tab │ Ctrl │ + // └──────┴──────┴──────┴──────┘ + + [_ORANGE] = LAYOUT( + PLOVER, KC_F1, KC_F2, KC_F3, KC_F4, XXXXXXX, KC_APP, KC_PSCR, KC_SLCK, KC_PAUS, XXXXXXX, XXXXXXX, + KC_LALT, KC_F5, KC_F6, KC_F7, KC_F8, XXXXXXX, XXXXXXX, KC_INS, KC_HOME, KC_PGUP, XXXXXXX, XXXXXXX, + KC_LSFT, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, KC_DEL, KC_END, KC_PGDN, KC_BSLS, KC_LGUI, + _______, BLUE, KC_TAB, KC_LCTL + ), + + // ................................................................. Green Layer + // + // http://www.keyboard-layout-editor.com/#/gists/bc7902f1eada4d7d34d3445aa1eccdab + + // ┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐ + // │Gemini│ │ │ │ │Scroll│ / │ 7 │ 8 │ 9 │ - │ │ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │ Alt │ Home │ Up │ End │ PgUp │ Caps │ * │ 4 │ 5 │ 6 │ + │ Enter│ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │ Shift│ Left │ Down │ Right│ PgDn │ Num │ 0 │ 1 │ 2 │ 3 │ │ GUI │ + // └──────┴──────┴──────┴──────┼──────┼──────┼──────┼──────┼──────┴──────┴──────┴──────┘ + // │ f() │ f() │ -- │ Ctrl │ + // └──────┴──────┴──────┴──────┘ + + [_GREEN] = LAYOUT( + GEMINI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_SLCK, KC_PSLS, KC_P7, KC_P8, KC_P9, KC_MINS, XXXXXXX, + KC_LALT, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_CAPS, KC_PAST, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_ENT , + KC_LSFT, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, TG_NUM, KC_P0, KC_P1, KC_P2, KC_P3, XXXXXXX, KC_LGUI, + _______, _______, XXXXXXX, KC_LCTL + ), + + // ................................................................... Num Layer + // + // http://www.keyboard-layout-editor.com/#/gists/bc7902f1eada4d7d34d3445aa1eccdab + + // ┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐ + // │ │ │ │ │ │ │ / │ 7 │ 8 │ 9 │ - │ │ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │ Alt │ Home │ Up │ End │ PgUp │ │ * │ 4 │ 5 │ 6 │ + │ Enter│ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │ Shift│ Left │ Down │ Right│ PgDn │ f() │ 0 │ 1 │ 2 │ 3 │ │ GUI │ + // └──────┴──────┴──────┴──────┼──────┼──────┼──────┼──────┼──────┴──────┴──────┴──────┘ + // │ -- │ -- │ -- │ Ctrl │ + // └──────┴──────┴──────┴──────┘ + + [_NUM] = LAYOUT( + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PSLS, KC_P7, KC_P8, KC_P9, KC_PMNS, XXXXXXX, + KC_LALT, KC_HOME, KC_UP, KC_END, KC_PGUP, XXXXXXX, KC_PAST, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_ENT , + KC_LSFT, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, QWERTY, KC_P0, KC_P1, KC_P2, KC_P3, XXXXXXX, KC_LGUI, + XXXXXXX, XXXXXXX, XXXXXXX, KC_LCTL + ), + + // ...................................................................... Plover + // + // http://www.keyboard-layout-editor.com/#/gists/27b8f8649393a8ba4071ba946a9306f4 + + // ┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐ + // │ 1 │ 1 │ 1 │ 1 │ 1 │ 1 │ 1 │ 1 │ 1 │ 1 │ 1 │ 1 │ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │Qwerty│ S │ T │ P │ H │ * │ * │ F │ P │ L │ T │ D │ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │Qwerty│ S │ K │ W │ R │ * │ * │ R │ B │ G │ S │ Z │ + // └──────┴──────┴──────┴──────┼──────┼──────┼──────┼──────┼──────┴──────┴──────┴──────┘ + // │ A │ O │ E │ U │ + // └──────┴──────┴──────┴──────┘ + + [_PLOVER] = LAYOUT( + KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 , + QWERTY1, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, + QWERTY2, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_C, KC_V, KC_N, KC_M + ), + + // ...................................................................... Gemini + // + // http://www.keyboard-layout-editor.com/#/gists/27b8f8649393a8ba4071ba946a9306f4 + + // ┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐ + // │ # │ # │ # │ # │ # │ # │ # │ # │ # │ # │ # │ # │ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │Qwerty│ S │ T │ P │ H │ * │ * │ F │ P │ L │ T │ D │ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │Qwerty│ S │ K │ W │ R │ * │ * │ R │ B │ G │ S │ Z │ + // └──────┴──────┴──────┴──────┼──────┼──────┼──────┼──────┼──────┴──────┴──────┴──────┘ + // │ A │ O │ E │ U │ + // └──────┴──────┴──────┴──────┘ + + [_GEMINI] = LAYOUT( + STN_N1, STN_N2, STN_N3, STN_N4, STN_N5, STN_N6, STN_N7, STN_N8, STN_N9, STN_NA, STN_NB, STN_NC , + QWERTY1, STN_S1, STN_TL, STN_PL, STN_HL, STN_ST1, STN_ST3, STN_FR, STN_PR, STN_LR, STN_TR, STN_DR , + QWERTY2, STN_S2, STN_KL, STN_WL, STN_RL, STN_ST2, STN_ST4, STN_RR, STN_BR, STN_GR, STN_SR, STN_ZR , + STN_A, STN_O, STN_E, STN_U + ), +}; +// clang-format on + +// ..................................................................... Keymaps + +#define QWERTY_1 1 +#define QWERTY_2 2 +#define QWERTY_12 3 +static uint8_t qwerty_n = 0; + +void qwerty(void) { + qwerty_n = 0; + layer_move(0); + set_single_persistent_default_layer(_QWERTY); +} + +void plover(keyrecord_t *record) { + if (record->event.pressed) { + layer_move(0); + layer_on(_PLOVER); + if (!eeconfig_is_enabled()) { + eeconfig_init(); + } + keymap_config.raw = eeconfig_read_keymap(); + keymap_config.nkro = 1; + eeconfig_update_keymap(keymap_config.raw); + } +} + +void gemini(void) { + layer_move(0); + layer_on(_GEMINI); +} + +// ........................................................... User Keycode Trap + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + qwerty(); + } + return false; + case QWERTY1: + if (record->event.pressed) { + qwerty_n = qwerty_n | QWERTY_1; + if (qwerty_n == QWERTY_12) { + qwerty(); + } + } else { + qwerty_n = qwerty_n & ~QWERTY_1; + } + return false; + case QWERTY2: + if (record->event.pressed) { + qwerty_n = qwerty_n | QWERTY_2; + if (qwerty_n == QWERTY_12) { + qwerty(); + } + } else { + qwerty_n = qwerty_n & ~QWERTY_2; + } + return false; + case BLUE: + if (record->event.pressed) { + layer_on(_BLUE); + update_tri_layer(_BLUE, _ORANGE, _GREEN); + } else { + layer_off(_BLUE); + update_tri_layer(_BLUE, _ORANGE, _GREEN); + } + return false; + case ORANGE: + if (record->event.pressed) { + layer_on(_ORANGE); + update_tri_layer(_BLUE, _ORANGE, _GREEN); + } else { + layer_off(_ORANGE); + update_tri_layer(_BLUE, _ORANGE, _GREEN); + } + return false; + case PLOVER: + plover(record); + return false; + case GEMINI: + if (record->event.pressed) { + gemini(); + } + return false; + } + return true; +} + +// Initialize the steno protocol +void eeconfig_init_user(void) { + steno_set_mode(STENO_MODE_BOLT); // or STENO_MODE_GEMINI +} diff --git a/keyboards/splitography/keymaps/default/readme.md b/keyboards/splitography/keymaps/default/readme.md new file mode 100644 index 00000000000..b136d85efbc --- /dev/null +++ b/keyboards/splitography/keymaps/default/readme.md @@ -0,0 +1,14 @@ +# [Guide](https://softhruf.love/pages/guides) + +[Splitography quick start video](https://www.youtube.com/watch?v=ru4cRQ2s_v0) + +A short video guide on how to set up the SOFT/HRUF Splitography, a mechanical keyboard intended for use with [Plover](https://www.openstenoproject.org/plover/). + +Here is a reference card for the standard keyboard layout: + +![Reference card](https://i.imgur.com/ywe8jXR.png) + +* While holding down a colored thumb key, the matching colored functions/characters on the remaining keys can be pressed. +* Bottom edge keys are accessed by holding down both keys. +* Numlock locks in the Numpad layer. +* Alt and Shift pressed simultaneously to return to the standard layout. diff --git a/keyboards/splitography/keymaps/default_with_ctl_shft_alt_switched/keymap.c b/keyboards/splitography/keymaps/default_with_ctl_shft_alt_switched/keymap.c new file mode 100644 index 00000000000..5297af4c760 --- /dev/null +++ b/keyboards/splitography/keymaps/default_with_ctl_shft_alt_switched/keymap.c @@ -0,0 +1,291 @@ +/* Copyright 2021 Alexis Jeandeau + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_steno.h" + +enum keyboard_layers { + _QWERTY = 0, + _TXBOLT, + _PLOVER, + _BLUE, + _ORANGE, + _GREEN, + _NUM, + _END_LAYERS, +}; + +enum keyboard_keycodes { + QWERTY = SAFE_RANGE, + QWERTY1, + QWERTY2, + TXBOLT, + PLOVER, + BLUE, + ORANGE, +}; + +#define COPY LCTL(KC_C) +#define CUT LCTL(KC_X) +#define PASTE LCTL(KC_V) +#define UNDO LCTL(KC_Z) +#define TG_NUM TG(_NUM) + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // ...................................................................... Qwerty + // + // http://www.keyboard-layout-editor.com/#/gists/1b04ce6be0cee6e5d2998b2a8efb8b09 + + // ┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐ + // │ Esc │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ Bksp │ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │ Ctrl │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ Enter│ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │ Alt │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ GUI │ + // └──────┴──────┴──────┴──────┼──────┼──────┼──────┼──────┼──────┴──────┴──────┴──────┘ + // │Orange│ Blue │ Space│ Shift│ + // └──────┴──────┴──────┴──────┘ + + [_QWERTY] = LAYOUT( + 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_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT , + KC_LALT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LGUI, + ORANGE, BLUE, KC_SPC, KC_LSFT + ), + + // .................................................................. Blue Layer + // + // http://www.keyboard-layout-editor.com/#/gists/054b8bc0e31971bb962ea1c781232e0b + + // ┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐ + // │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ │ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │ Ctrl │ Stop │ Prev │ Play │ Next │ +Vol │ │ │ │ [ │ ] │ ' │ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │ Alt │ Undo │ Cut │ Copy │ Paste│ -Vol │ Mute │ │ │ - │ = │ GUI │ + // └──────┴──────┴──────┴──────┼──────┼──────┼──────┼──────┼──────┴──────┴──────┴──────┘ + // │Orange│ f() │ Del │ Shift│ + // └──────┴──────┴──────┴──────┘ + + [_BLUE] = LAYOUT( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, XXXXXXX, + KC_LCTL, KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLU, XXXXXXX, XXXXXXX, XXXXXXX, KC_LBRC, KC_RBRC, KC_QUOT, + KC_LALT, UNDO, CUT, COPY, PASTE, KC_VOLD, KC_MUTE, XXXXXXX, XXXXXXX, KC_MINS, KC_EQL, KC_LGUI, + ORANGE, _______, KC_DEL, KC_LSFT + ), + + // ................................................................ Orange Layer + // + // http://www.keyboard-layout-editor.com/#/gists/83ccc7c3faa78b1f67f6fef65063a248 + + // ┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐ + // │Plover│ F1 │ F2 │ F3 │ F4 │ │ App │ PrScr│ScrLck│ Pause│ │ │ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │ Ctrl │ F5 │ F6 │ F7 │ F8 │ │ │Insert│ Home │ PgUp │ │ │ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │ Alt │ F9 │ F10 │ F11 │ F12 │ │ │ Del │ End │ PgDn │ \ │ GUI │ + // └──────┴──────┴──────┴──────┼──────┼──────┼──────┼──────┼──────┴──────┴──────┴──────┘ + // │ f() │ Blue │ Tab │ Shift│ + // └──────┴──────┴──────┴──────┘ + + [_ORANGE] = LAYOUT( + PLOVER, KC_F1, KC_F2, KC_F3, KC_F4, XXXXXXX, KC_APP, KC_PSCR, KC_SLCK, KC_PAUS, XXXXXXX, XXXXXXX, + KC_LCTL, KC_F5, KC_F6, KC_F7, KC_F8, XXXXXXX, XXXXXXX, KC_INS, KC_HOME, KC_PGUP, XXXXXXX, XXXXXXX, + KC_LALT, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, KC_DEL, KC_END, KC_PGDN, KC_BSLS, KC_LGUI, + _______, BLUE, KC_TAB, KC_LSFT + ), + + // ................................................................. Green Layer + // + // http://www.keyboard-layout-editor.com/#/gists/bc7902f1eada4d7d34d3445aa1eccdab + + // ┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐ + // │TxBolt│ │ │ │ │Scroll│ / │ 7 │ 8 │ 9 │ - │ │ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │ Ctrl │ Home │ Up │ End │ PgUp │ Caps │ * │ 4 │ 5 │ 6 │ + │ Enter│ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │ Alt │ Left │ Down │ Right│ PgDn │ Num │ 0 │ 1 │ 2 │ 3 │ │ GUI │ + // └──────┴──────┴──────┴──────┼──────┼──────┼──────┼──────┼──────┴──────┴──────┴──────┘ + // │ f() │ f() │ -- │ Shift│ + // └──────┴──────┴──────┴──────┘ + + [_GREEN] = LAYOUT( + TXBOLT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_SLCK, KC_PSLS, KC_P7, KC_P8, KC_P9, KC_MINS, XXXXXXX, + KC_LCTL, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_CAPS, KC_PAST, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_ENT , + KC_LALT, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, TG_NUM, KC_P0, KC_P1, KC_P2, KC_P3, XXXXXXX, KC_LGUI, + _______, _______, XXXXXXX, KC_LSFT + ), + + // ................................................................... Num Layer + // + // http://www.keyboard-layout-editor.com/#/gists/bc7902f1eada4d7d34d3445aa1eccdab + + // ┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐ + // │ │ │ │ │ │ │ / │ 7 │ 8 │ 9 │ - │ │ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │ Ctrl │ Home │ Up │ End │ PgUp │ │ * │ 4 │ 5 │ 6 │ + │ Enter│ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │ Alt │ Left │ Down │ Right│ PgDn │ f() │ 0 │ 1 │ 2 │ 3 │ │ GUI │ + // └──────┴──────┴──────┴──────┼──────┼──────┼──────┼──────┼──────┴──────┴──────┴──────┘ + // │ -- │ -- │ -- │ Shift│ + // └──────┴──────┴──────┴──────┘ + + [_NUM] = LAYOUT( + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PSLS, KC_P7, KC_P8, KC_P9, KC_PMNS, XXXXXXX, + KC_LCTL, KC_HOME, KC_UP, KC_END, KC_PGUP, XXXXXXX, KC_PAST, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_ENT , + KC_LALT, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, QWERTY, KC_P0, KC_P1, KC_P2, KC_P3, XXXXXXX, KC_LGUI, + XXXXXXX, XXXXXXX, XXXXXXX, KC_LSFT + ), + + // ...................................................................... Plover + // + // http://www.keyboard-layout-editor.com/#/gists/27b8f8649393a8ba4071ba946a9306f4 + + // ┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐ + // │ 1 │ 1 │ 1 │ 1 │ 1 │ 1 │ 1 │ 1 │ 1 │ 1 │ 1 │ 1 │ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │Qwerty│ S │ T │ P │ H │ * │ * │ F │ P │ L │ T │ D │ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │Qwerty│ S │ K │ W │ R │ * │ * │ R │ B │ G │ S │ Z │ + // └──────┴──────┴──────┴──────┼──────┼──────┼──────┼──────┼──────┴──────┴──────┴──────┘ + // │ A │ O │ E │ U │ + // └──────┴──────┴──────┴──────┘ + + [_PLOVER] = LAYOUT( + KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 , + QWERTY1, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, + QWERTY2, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_C, KC_V, KC_N, KC_M + ), + + // ...................................................................... TxBolt + // + // http://www.keyboard-layout-editor.com/#/gists/27b8f8649393a8ba4071ba946a9306f4 + + // ┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐ + // │ # │ # │ # │ # │ # │ # │ # │ # │ # │ # │ # │ # │ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │Qwerty│ S │ T │ P │ H │ * │ * │ F │ P │ L │ T │ D │ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │Qwerty│ S │ K │ W │ R │ * │ * │ R │ B │ G │ S │ Z │ + // └──────┴──────┴──────┴──────┼──────┼──────┼──────┼──────┼──────┴──────┴──────┴──────┘ + // │ A │ O │ E │ U │ + // └──────┴──────┴──────┴──────┘ + + [_TXBOLT] = LAYOUT( + STN_N1, STN_N2, STN_N3, STN_N4, STN_N5, STN_N6, STN_N7, STN_N8, STN_N9, STN_NA, STN_NB, STN_NC , + QWERTY1, STN_S1, STN_TL, STN_PL, STN_HL, STN_ST1, STN_ST3, STN_FR, STN_PR, STN_LR, STN_TR, STN_DR , + QWERTY2, STN_S2, STN_KL, STN_WL, STN_RL, STN_ST2, STN_ST4, STN_RR, STN_BR, STN_GR, STN_SR, STN_ZR , + STN_A, STN_O, STN_E, STN_U + ), +}; +// clang-format on + +// ..................................................................... Keymaps + +#define QWERTY_1 1 +#define QWERTY_2 2 +#define QWERTY_12 3 +static uint8_t qwerty_n = 0; + +void qwerty(void) { + qwerty_n = 0; + layer_move(0); + set_single_persistent_default_layer(_QWERTY); +} + +void plover(keyrecord_t *record) { + if (record->event.pressed) { + layer_move(0); + layer_on(_PLOVER); + if (!eeconfig_is_enabled()) { + eeconfig_init(); + } + keymap_config.raw = eeconfig_read_keymap(); + keymap_config.nkro = 1; + eeconfig_update_keymap(keymap_config.raw); + } +} + +void txbolt(void) { + layer_move(0); + layer_on(_TXBOLT); +} + +// ........................................................... User Keycode Trap + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + qwerty(); + } + return false; + case QWERTY1: + if (record->event.pressed) { + qwerty_n = qwerty_n | QWERTY_1; + if (qwerty_n == QWERTY_12) { + qwerty(); + } + } else { + qwerty_n = qwerty_n & ~QWERTY_1; + } + return false; + case QWERTY2: + if (record->event.pressed) { + qwerty_n = qwerty_n | QWERTY_2; + if (qwerty_n == QWERTY_12) { + qwerty(); + } + } else { + qwerty_n = qwerty_n & ~QWERTY_2; + } + return false; + case BLUE: + if (record->event.pressed) { + layer_on(_BLUE); + update_tri_layer(_BLUE, _ORANGE, _GREEN); + } else { + layer_off(_BLUE); + update_tri_layer(_BLUE, _ORANGE, _GREEN); + } + return false; + case ORANGE: + if (record->event.pressed) { + layer_on(_ORANGE); + update_tri_layer(_BLUE, _ORANGE, _GREEN); + } else { + layer_off(_ORANGE); + update_tri_layer(_BLUE, _ORANGE, _GREEN); + } + return false; + case PLOVER: + plover(record); + return false; + case TXBOLT: + if (record->event.pressed) { + txbolt(); + } + return false; + } + return true; +} + +// Initialize the steno protocol +void eeconfig_init_user(void) { + steno_set_mode(STENO_MODE_BOLT); // or STENO_MODE_GEMINI +} diff --git a/keyboards/splitography/keymaps/dvorak/keymap.c b/keyboards/splitography/keymaps/dvorak/keymap.c new file mode 100644 index 00000000000..d8cd6ae8f3e --- /dev/null +++ b/keyboards/splitography/keymaps/dvorak/keymap.c @@ -0,0 +1,291 @@ +/* Copyright 2021 Alexis Jeandeau + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_steno.h" + +enum keyboard_layers { + _DVORAK = 0, + _TXBOLT, + _PLOVER, + _BLUE, + _ORANGE, + _GREEN, + _NUM, + _END_LAYERS, +}; + +enum keyboard_keycodes { + DVORAK = SAFE_RANGE, + DVORAK1, + DVORAK2, + TXBOLT, + PLOVER, + BLUE, + ORANGE, +}; + +#define COPY LCTL(KC_C) +#define CUT LCTL(KC_X) +#define PASTE LCTL(KC_V) +#define UNDO LCTL(KC_Z) +#define TG_NUM TG(_NUM) + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // ...................................................................... Dvorak + // + // http://www.keyboard-layout-editor.com/#/gists/1b04ce6be0cee6e5d2998b2a8efb8b09 + + // ┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐ + // │ Esc │ " │ , │ . │ P │ Y │ F │ G │ C │ R │ L │ Bksp │ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │ Alt │ A │ O │ E │ U │ I │ D │ H │ T │ N │ S │ Enter│ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │ Shift│ ; │ Q │ J │ K │ X │ B │ M │ W │ V │ Z │ GUI │ + // └──────┴──────┴──────┴──────┼──────┼──────┼──────┼──────┼──────┴──────┴──────┴──────┘ + // │Orange│ Blue │ Space│ Ctrl │ + // └──────┴──────┴──────┴──────┘ + + [_DVORAK] = LAYOUT( + KC_ESC, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, + KC_LALT, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_ENT , + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_LGUI, + ORANGE, BLUE, KC_SPC, KC_LCTL + ), + + // .................................................................. Blue Layer + //XXXXXXX, + // http://www.keyboard-layout-editor.com/#/gists/054b8bc0e31971bb962ea1c781232e0b + + // ┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐ + // │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ │ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │ Alt │ Stop │ Prev │ Play │ Next │ +Vol │ │ │ │ [ │ ] │ / │ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │ Shift│ Undo │ Cut │ Copy │ Paste│ -Vol │ Mute │ │ │ - │ = │ GUI │ + // └──────┴──────┴──────┴──────┼──────┼──────┼──────┼──────┼──────┴──────┴──────┴──────┘ + // │Orange│ f() │ Del │ Ctrl │ + // └──────┴──────┴──────┴──────┘ + + [_BLUE] = LAYOUT( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, XXXXXXX, + KC_LALT, KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLU, XXXXXXX, XXXXXXX, XXXXXXX, KC_LBRC, KC_RBRC, KC_SLSH, + KC_LSFT, UNDO, CUT, COPY, PASTE, KC_VOLD, KC_MUTE, XXXXXXX, XXXXXXX, KC_MINS, KC_EQL, KC_LGUI, + ORANGE, _______, KC_DEL, KC_LCTL + ), + + // ................................................................ Orange Layer + // + // http://www.keyboard-layout-editor.com/#/gists/83ccc7c3faa78b1f67f6fef65063a248 + + // ┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐ + // │Plover│ F1 │ F2 │ F3 │ F4 │ │ App │ PrScr│ScrLck│ Pause│ │ │ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │ Alt │ F5 │ F6 │ F7 │ F8 │ │ │Insert│ Home │ PgUp │ │ │ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │ Shift│ F9 │ F10 │ F11 │ F12 │ │ │ Del │ End │ PgDn │ \ │ GUI │ + // └──────┴──────┴──────┴──────┼──────┼──────┼──────┼──────┼──────┴──────┴──────┴──────┘ + // │ f() │ Blue │ Tab │ Ctrl │ + // └──────┴──────┴──────┴──────┘ + + [_ORANGE] = LAYOUT( + PLOVER, KC_F1, KC_F2, KC_F3, KC_F4, XXXXXXX, KC_APP, KC_PSCR, KC_SLCK, KC_PAUS, XXXXXXX, XXXXXXX, + KC_LALT, KC_F5, KC_F6, KC_F7, KC_F8, XXXXXXX, XXXXXXX, KC_INS, KC_HOME, KC_PGUP, XXXXXXX, XXXXXXX, + KC_LSFT, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, KC_DEL, KC_END, KC_PGDN, KC_BSLS, KC_LGUI, + _______, BLUE, KC_TAB, KC_LCTL + ), + + // ................................................................. Green Layer + // + // http://www.keyboard-layout-editor.com/#/gists/bc7902f1eada4d7d34d3445aa1eccdab + + // ┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐ + // │TxBolt│ │ │ │ │Scroll│ / │ 7 │ 8 │ 9 │ - │ │ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │ Alt │ Home │ Up │ End │ PgUp │ Caps │ * │ 4 │ 5 │ 6 │ + │ Enter│ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │ Shift│ Left │ Down │ Right│ PgDn │ Num │ 0 │ 1 │ 2 │ 3 │ │ GUI │ + // └──────┴──────┴──────┴──────┼──────┼──────┼──────┼──────┼──────┴──────┴──────┴──────┘ + // │ f() │ f() │ -- │ Ctrl │ + // └──────┴──────┴──────┴──────┘ + + [_GREEN] = LAYOUT( + TXBOLT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_SLCK, KC_PSLS, KC_P7, KC_P8, KC_P9, KC_MINS, XXXXXXX, + KC_LALT, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_CAPS, KC_PAST, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_ENT , + KC_LSFT, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, TG_NUM, KC_P0, KC_P1, KC_P2, KC_P3, XXXXXXX, KC_LGUI, + _______, _______, XXXXXXX, KC_LCTL + ), + + // ................................................................... Num Layer + // + // http://www.keyboard-layout-editor.com/#/gists/bc7902f1eada4d7d34d3445aa1eccdab + + // ┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐ + // │ │ │ │ │ │ │ / │ 7 │ 8 │ 9 │ - │ │ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │ Alt │ Home │ Up │ End │ PgUp │ │ * │ 4 │ 5 │ 6 │ + │ Enter│ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │ Shift│ Left │ Down │ Right│ PgDn │ f() │ 0 │ 1 │ 2 │ 3 │ │ GUI │ + // └──────┴──────┴──────┴──────┼──────┼──────┼──────┼──────┼──────┴──────┴──────┴──────┘ + // │ -- │ -- │ -- │ Ctrl │ + // └──────┴──────┴──────┴──────┘ + + [_NUM] = LAYOUT( + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PSLS, KC_P7, KC_P8, KC_P9, KC_PMNS, XXXXXXX, + KC_LALT, KC_HOME, KC_UP, KC_END, KC_PGUP, XXXXXXX, KC_PAST, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_ENT , + KC_LSFT, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, DVORAK, KC_P0, KC_P1, KC_P2, KC_P3, XXXXXXX, KC_LGUI, + XXXXXXX, XXXXXXX, XXXXXXX, KC_LCTL + ), + + // ...................................................................... Plover + // + // http://www.keyboard-layout-editor.com/#/gists/27b8f8649393a8ba4071ba946a9306f4 + + // ┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐ + // │ 1 │ 1 │ 1 │ 1 │ 1 │ 1 │ 1 │ 1 │ 1 │ 1 │ 1 │ 1 │ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │Dvorak│ S │ T │ P │ H │ * │ * │ F │ P │ L │ T │ D │ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │Dvorak│ S │ K │ W │ R │ * │ * │ R │ B │ G │ S │ Z │ + // └──────┴──────┴──────┴──────┼──────┼──────┼──────┼──────┼──────┴──────┴──────┴──────┘ + // │ A │ O │ E │ U │ + // └──────┴──────┴──────┴──────┘ + + [_PLOVER] = LAYOUT( + KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 , + DVORAK1, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, + DVORAK2, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_C, KC_V, KC_N, KC_M + ), + + // ...................................................................... TxBolt + // + // http://www.keyboard-layout-editor.com/#/gists/27b8f8649393a8ba4071ba946a9306f4 + + // ┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐ + // │ # │ # │ # │ # │ # │ # │ # │ # │ # │ # │ # │ # │ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │Dvorak│ S │ T │ P │ H │ * │ * │ F │ P │ L │ T │ D │ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │Dvorak│ S │ K │ W │ R │ * │ * │ R │ B │ G │ S │ Z │ + // └──────┴──────┴──────┴──────┼──────┼──────┼──────┼──────┼──────┴──────┴──────┴──────┘ + // │ A │ O │ E │ U │ + // └──────┴──────┴──────┴──────┘ + + [_TXBOLT] = LAYOUT( + STN_N1, STN_N2, STN_N3, STN_N4, STN_N5, STN_N6, STN_N7, STN_N8, STN_N9, STN_NA, STN_NB, STN_NC , + DVORAK1, STN_S1, STN_TL, STN_PL, STN_HL, STN_ST1, STN_ST3, STN_FR, STN_PR, STN_LR, STN_TR, STN_DR , + DVORAK2, STN_S2, STN_KL, STN_WL, STN_RL, STN_ST2, STN_ST4, STN_RR, STN_BR, STN_GR, STN_SR, STN_ZR , + STN_A, STN_O, STN_E, STN_U + ), +}; +// clang-format on + +// ..................................................................... Keymaps + +#define DVORAK_1 1 +#define DVORAK_2 2 +#define DVORAK_12 3 +static uint8_t dvorak_n = 0; + +void dvorak(void) { + dvorak_n = 0; + layer_move(0); + set_single_persistent_default_layer(_DVORAK); +} + +void plover(keyrecord_t *record) { + if (record->event.pressed) { + layer_move(0); + layer_on(_PLOVER); + if (!eeconfig_is_enabled()) { + eeconfig_init(); + } + keymap_config.raw = eeconfig_read_keymap(); + keymap_config.nkro = 1; + eeconfig_update_keymap(keymap_config.raw); + } +} + +void txbolt(void) { + layer_move(0); + layer_on(_TXBOLT); +} + +// ........................................................... User Keycode Trap + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case DVORAK: + if (record->event.pressed) { + dvorak(); + } + return false; + case DVORAK1: + if (record->event.pressed) { + dvorak_n = dvorak_n | DVORAK_1; + if (dvorak_n == DVORAK_12) { + dvorak(); + } + } else { + dvorak_n = dvorak_n & ~DVORAK_1; + } + return false; + case DVORAK2: + if (record->event.pressed) { + dvorak_n = dvorak_n | DVORAK_2; + if (dvorak_n == DVORAK_12) { + dvorak(); + } + } else { + dvorak_n = dvorak_n & ~DVORAK_2; + } + return false; + case BLUE: + if (record->event.pressed) { + layer_on(_BLUE); + update_tri_layer(_BLUE, _ORANGE, _GREEN); + } else { + layer_off(_BLUE); + update_tri_layer(_BLUE, _ORANGE, _GREEN); + } + return false; + case ORANGE: + if (record->event.pressed) { + layer_on(_ORANGE); + update_tri_layer(_BLUE, _ORANGE, _GREEN); + } else { + layer_off(_ORANGE); + update_tri_layer(_BLUE, _ORANGE, _GREEN); + } + return false; + case PLOVER: + plover(record); + return false; + case TXBOLT: + if (record->event.pressed) { + txbolt(); + } + return false; + } + return true; +} + +// Initialize the steno protocol +void eeconfig_init_user(void) { + steno_set_mode(STENO_MODE_BOLT); // or STENO_MODE_GEMINI +} diff --git a/keyboards/splitography/keymaps/jeandeaual/keymap.c b/keyboards/splitography/keymaps/jeandeaual/keymap.c new file mode 100644 index 00000000000..6679d835f2f --- /dev/null +++ b/keyboards/splitography/keymaps/jeandeaual/keymap.c @@ -0,0 +1,293 @@ +/* Copyright 2021 Alexis Jeandeau + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_steno.h" + +enum keyboard_layers { + _GEMINI = 0, + _QWERTY, + _DVORAK, + _BLUE, + _ORANGE, + _GREEN, + _NUM, + _END_LAYERS, +}; + +enum keyboard_keycodes { + QWERTY = SAFE_RANGE, + DVORAK, + BASE, + BASE1, + BASE2, + GEMINI, + BLUE, + ORANGE, +}; + +#define COPY LCTL(KC_C) +#define CUT LCTL(KC_X) +#define PASTE LCTL(KC_V) +#define UNDO LCTL(KC_Z) +#define TG_NUM TG(_NUM) + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // ...................................................................... GeminiPR + // + // ┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐ + // │ # │ # │ # │ # │ # │ # │ # │ # │ # │ # │ # │ # │ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │ Base │ S │ T │ P │ H │ * │ * │ F │ P │ L │ T │ D │ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │ Base │ S │ K │ W │ R │ * │ * │ R │ B │ G │ S │ Z │ + // └──────┴──────┴──────┴──────┼──────┼──────┼──────┼──────┼──────┴──────┴──────┴──────┘ + // │ A │ O │ E │ U │ + // └──────┴──────┴──────┴──────┘ + + [_GEMINI] = LAYOUT( + STN_N1, STN_N2, STN_N3, STN_N4, STN_N5, STN_N6, STN_N7, STN_N8, STN_N9, STN_NA, STN_NB, STN_NC , + BASE1, STN_S1, STN_TL, STN_PL, STN_HL, STN_ST1, STN_ST3, STN_FR, STN_PR, STN_LR, STN_TR, STN_DR , + BASE2, STN_S2, STN_KL, STN_WL, STN_RL, STN_ST2, STN_ST4, STN_RR, STN_BR, STN_GR, STN_SR, STN_ZR , + STN_A, STN_O, STN_E, STN_U + ), + + // ...................................................................... Qwerty + // + // ┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐ + // │ Esc │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ Bksp │ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │ Ctrl │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ Enter│ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │ Shift│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ GUI │ + // └──────┴──────┴──────┴──────┼──────┼──────┼──────┼──────┼──────┴──────┴──────┴──────┘ + // │Orange│ Blue │ Space│ Alt │ + // └──────┴──────┴──────┴──────┘ + + [_QWERTY] = LAYOUT( + 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_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, 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_LGUI, + ORANGE, BLUE, KC_SPC, KC_LALT + ), + + // ...................................................................... Dvorak + // + // ┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐ + // │ Esc │ " │ , │ . │ P │ Y │ F │ G │ C │ R │ L │ Bksp │ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │ Ctrl │ A │ O │ E │ U │ I │ D │ H │ T │ N │ S │ Enter│ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │ Shift│ ; │ Q │ J │ K │ X │ B │ M │ W │ V │ Z │ GUI │ + // └──────┴──────┴──────┴──────┼──────┼──────┼──────┼──────┼──────┴──────┴──────┴──────┘ + // │Orange│ Blue │ Space│ Alt │ + // └──────┴──────┴──────┴──────┘ + + [_DVORAK] = LAYOUT( + KC_ESC, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, + KC_LCTL, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_ENT , + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_LGUI, + ORANGE, BLUE, KC_SPC, KC_LALT + ), + + // .................................................................. Blue Layer + // + // ┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐ + // │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ │ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │ Ctrl │ Stop │ Prev │ Play │ Next │ +Vol │ │ │ │ [ │ ] │ ' │ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │ Shift│ Undo │ Cut │ Copy │ Paste│ -Vol │ Mute │ │ │ - │ = │ GUI │ + // └──────┴──────┴──────┴──────┼──────┼──────┼──────┼──────┼──────┴──────┴──────┴──────┘ + // │Orange│ f() │ Del │ Alt │ + // └──────┴──────┴──────┴──────┘ + + [_BLUE] = LAYOUT( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, XXXXXXX, + KC_LCTL, KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLU, XXXXXXX, XXXXXXX, XXXXXXX, KC_LBRC, KC_RBRC, KC_QUOT, + KC_LSFT, UNDO, CUT, COPY, PASTE, KC_VOLD, KC_MUTE, XXXXXXX, XXXXXXX, KC_MINS, KC_EQL, KC_LGUI, + ORANGE, _______, KC_DEL, KC_LALT + ), + + // ................................................................ Orange Layer + // + // ┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐ + // │ │ F1 │ F2 │ F3 │ F4 │ │ App │ PrScr│ScrLck│ Pause│ │ │ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │ Ctrl │ F5 │ F6 │ F7 │ F8 │ │ │Insert│ Home │ PgUp │ │ │ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │ Shift│ F9 │ F10 │ F11 │ F12 │ │ │ Del │ End │ PgDn │ \ │ GUI │ + // └──────┴──────┴──────┴──────┼──────┼──────┼──────┼──────┼──────┴──────┴──────┴──────┘ + // │ f() │ Blue │ Tab │ Alt │ + // └──────┴──────┴──────┴──────┘ + + [_ORANGE] = LAYOUT( + XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, XXXXXXX, KC_APP, KC_PSCR, KC_SLCK, KC_PAUS, XXXXXXX, XXXXXXX, + KC_LCTL, KC_F5, KC_F6, KC_F7, KC_F8, XXXXXXX, XXXXXXX, KC_INS, KC_HOME, KC_PGUP, XXXXXXX, XXXXXXX, + KC_LSFT, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, KC_DEL, KC_END, KC_PGDN, KC_BSLS, KC_LGUI, + _______, BLUE, KC_TAB, KC_LALT + ), + + // ................................................................. Green Layer + // + // ┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐ + // │Gemini│QWERTY│Dvorak│ │ │Scroll│ / │ 7 │ 8 │ 9 │ - │ │ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │ Ctrl │ Home │ Up │ End │ PgUp │ Caps │ * │ 4 │ 5 │ 6 │ + │ Enter│ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │ Shift│ Left │ Down │ Right│ PgDn │ Num │ 0 │ 1 │ 2 │ 3 │ │ GUI │ + // └──────┴──────┴──────┴──────┼──────┼──────┼──────┼──────┼──────┴──────┴──────┴──────┘ + // │ f() │ f() │ -- │ Alt │ + // └──────┴──────┴──────┴──────┘ + + [_GREEN] = LAYOUT( + GEMINI, QWERTY, DVORAK, XXXXXXX, XXXXXXX, KC_SLCK, KC_PSLS, KC_P7, KC_P8, KC_P9, KC_MINS, XXXXXXX, + KC_LCTL, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_CAPS, KC_PAST, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_ENT , + KC_LSFT, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, TG_NUM, KC_P0, KC_P1, KC_P2, KC_P3, XXXXXXX, KC_LGUI, + _______, _______, XXXXXXX, KC_LALT + ), + + // ................................................................... Num Layer + // + // ┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐ + // │ │ │ │ │ │ │ / │ 7 │ 8 │ 9 │ - │ │ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │ Ctrl │ Home │ Up │ End │ PgUp │ │ * │ 4 │ 5 │ 6 │ + │ Enter│ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │ Shift│ Left │ Down │ Right│ PgDn │ f() │ 0 │ 1 │ 2 │ 3 │ │ GUI │ + // └──────┴──────┴──────┴──────┼──────┼──────┼──────┼──────┼──────┴──────┴──────┴──────┘ + // │ -- │ -- │ -- │ Alt │ + // └──────┴──────┴──────┴──────┘ + + [_NUM] = LAYOUT( + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PSLS, KC_P7, KC_P8, KC_P9, KC_PMNS, XXXXXXX, + KC_LCTL, KC_HOME, KC_UP, KC_END, KC_PGUP, XXXXXXX, KC_PAST, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_ENT , + KC_LSFT, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, BASE, KC_P0, KC_P1, KC_P2, KC_P3, XXXXXXX, KC_LGUI, + XXXXXXX, XXXXXXX, XXXXXXX, KC_LALT + ), +}; +// clang-format on + +// ..................................................................... Keymaps + +#define BASE_1 1 +#define BASE_2 2 +#define BASE_12 3 +static uint8_t base_n = 0; + +void (*base_layer)(void) = NULL; + +void qwerty(void) { + base_layer = qwerty; + base_n = 0; + layer_move(0); + set_single_persistent_default_layer(_QWERTY); +} + +void dvorak(void) { + base_layer = dvorak; + base_n = 0; + layer_move(0); + set_single_persistent_default_layer(_DVORAK); +} + +void gemini(void) { + layer_move(0); + set_single_persistent_default_layer(_GEMINI); +} + +// ........................................................... User Keycode Trap + +bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + qwerty(); + } + return false; + case DVORAK: + if (record->event.pressed) { + dvorak(); + } + return false; + case KC_QUOT: + if ((base_layer != dvorak) || (biton32(layer_state) != _BLUE)) { + break; + } + if (record->event.pressed) { + register_code(KC_SLSH); + } else { + unregister_code(KC_SLSH); + } + return false; + case BASE: + if (record->event.pressed) { + base_layer(); + } + return false; + case BASE1: + if (record->event.pressed) { + base_n = base_n | BASE_1; + if (base_n == BASE_12) { + base_layer(); + } + } else { + base_n = base_n & ~BASE_1; + } + return false; + case BASE2: + if (record->event.pressed) { + base_n = base_n | BASE_2; + if (base_n == BASE_12) { + base_layer(); + } + } else { + base_n = base_n & ~BASE_2; + } + return false; + case BLUE: + if (record->event.pressed) { + layer_on(_BLUE); + update_tri_layer(_BLUE, _ORANGE, _GREEN); + } else { + layer_off(_BLUE); + update_tri_layer(_BLUE, _ORANGE, _GREEN); + } + return false; + case ORANGE: + if (record->event.pressed) { + layer_on(_ORANGE); + update_tri_layer(_BLUE, _ORANGE, _GREEN); + } else { + layer_off(_ORANGE); + update_tri_layer(_BLUE, _ORANGE, _GREEN); + } + return false; + case GEMINI: + if (record->event.pressed) { + gemini(); + } + return false; + } + return true; +} + +// Initialize the steno protocol +void eeconfig_init_user(void) { + steno_set_mode(STENO_MODE_GEMINI); // or STENO_MODE_BOLT + base_layer = dvorak; +} diff --git a/keyboards/splitography/keymaps/jeandeaual/readme.md b/keyboards/splitography/keymaps/jeandeaual/readme.md new file mode 100644 index 00000000000..8e786b7fc58 --- /dev/null +++ b/keyboards/splitography/keymaps/jeandeaual/readme.md @@ -0,0 +1,7 @@ +# Differences with the [default layout](../default) + +* Alt and Ctrl are shifted. +* Use Gemini PR instead of TX Bolt. +* The Plover layer has been removed. +* QWERTY and Dvorak like in the [multi layout](../multi). +* The default layer is set to the steno (Gemini PR) layout. diff --git a/keyboards/splitography/keymaps/multi/keymap.c b/keyboards/splitography/keymaps/multi/keymap.c new file mode 100644 index 00000000000..af1cc1a8014 --- /dev/null +++ b/keyboards/splitography/keymaps/multi/keymap.c @@ -0,0 +1,411 @@ +/* Copyright 2021 Alexis Jeandeau + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_steno.h" + +enum keyboard_layers { + _QWERTY = 0, + _DVORAK, + _COLEMAK, + _WORKMAN, + _TXBOLT, + _PLOVER, + _BLUE, + _ORANGE, + _GREEN, + _NUM, + _END_LAYERS, +}; + +enum keyboard_keycodes { + QWERTY = SAFE_RANGE, + DVORAK, + COLEMAK, + WORKMAN, + BASE, + BASE1, + BASE2, + TXBOLT, + PLOVER, + BLUE, + ORANGE, +}; + +#define COPY LCTL(KC_C) +#define CUT LCTL(KC_X) +#define PASTE LCTL(KC_V) +#define UNDO LCTL(KC_Z) +#define TG_NUM TG(_NUM) + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // ...................................................................... Qwerty + // + // http://www.keyboard-layout-editor.com/#/gists/1b04ce6be0cee6e5d2998b2a8efb8b09 + + // ┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐ + // │ Esc │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ Bksp │ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │ Alt │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ Enter│ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │ Shift│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ GUI │ + // └──────┴──────┴──────┴──────┼──────┼──────┼──────┼──────┼──────┴──────┴──────┴──────┘ + // │Orange│ Blue │ Space│ Ctrl │ + // └──────┴──────┴──────┴──────┘ + + [_QWERTY] = LAYOUT( + 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_LALT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, 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_LGUI, + ORANGE, BLUE, KC_SPC, KC_LCTL + ), + + // ...................................................................... Dvorak + // + // http://www.keyboard-layout-editor.com/#/gists/1b04ce6be0cee6e5d2998b2a8efb8b09 + + // ┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐ + // │ Esc │ " │ , │ . │ P │ Y │ F │ G │ C │ R │ L │ Bksp │ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │ Alt │ A │ O │ E │ U │ I │ D │ H │ T │ N │ S │ Enter│ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │ Shift│ ; │ Q │ J │ K │ X │ B │ M │ W │ V │ Z │ GUI │ + // └──────┴──────┴──────┴──────┼──────┼──────┼──────┼──────┼──────┴──────┴──────┴──────┘ + // │Orange│ Blue │ Space│ Ctrl │ + // └──────┴──────┴──────┴──────┘ + + [_DVORAK] = LAYOUT( + KC_ESC, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, + KC_LALT, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_ENT , + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_LGUI, + ORANGE, BLUE, KC_SPC, KC_LCTL + ), + + // ..................................................................... Colemak + + // ┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐ + // │ Esc │ Q │ W │ F │ P │ G │ J │ L │ U │ Y │ ; │ Bksp │ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │ Alt │ A │ R │ S │ T │ D │ H │ N │ E │ I │ O │ Enter│ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │ Shift│ Z │ X │ C │ V │ B │ K │ M │ , │ . │ / │ GUI │ + // └──────┴──────┴──────┴──────┼──────┼──────┼──────┼──────┼──────┴──────┴──────┴──────┘ + // │Orange│ Blue │ Space│ Ctrl │ + // └──────┴──────┴──────┴──────┘ + + [_COLEMAK] = LAYOUT( + KC_ESC, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, + KC_LALT, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_ENT , + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LGUI, + ORANGE, BLUE, KC_SPC, KC_LCTL + ), + + // ..................................................................... Workman + + // ┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐ + // │ Esc │ Q │ D │ R │ W │ B │ J │ F │ U │ P │ ; │ Bksp │ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │ Alt │ A │ S │ H │ T │ G │ Y │ N │ E │ O │ I │ Enter│ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │ Shift│ Z │ X │ M │ C │ V │ K │ L │ , │ . │ / │ GUI │ + // └──────┴──────┴──────┴──────┼──────┼──────┼──────┼──────┼──────┴──────┴──────┴──────┘ + // │Orange│ Blue │ Space│ Ctrl │ + // └──────┴──────┴──────┴──────┘ + + [_WORKMAN] = LAYOUT( + KC_ESC, KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_SCLN, KC_BSPC, + KC_LALT, KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I, KC_ENT , + KC_LSFT, KC_Z, KC_X, KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, KC_DOT, KC_SLSH, KC_LGUI, + ORANGE, BLUE, KC_SPC, KC_LCTL + ), + + // .................................................................. Blue Layer + // + // http://www.keyboard-layout-editor.com/#/gists/054b8bc0e31971bb962ea1c781232e0b + + // ┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐ + // │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ │ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │ Alt │ Stop │ Prev │ Play │ Next │ +Vol │ │ │ │ [ │ ] │ ' │ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │ Shift│ Undo │ Cut │ Copy │ Paste│ -Vol │ Mute │ │ │ - │ = │ GUI │ + // └──────┴──────┴──────┴──────┼──────┼──────┼──────┼──────┼──────┴──────┴──────┴──────┘ + // │Orange│ f() │ Del │ Ctrl │ + // └──────┴──────┴──────┴──────┘ + + [_BLUE] = LAYOUT( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, XXXXXXX, + KC_LALT, KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLU, XXXXXXX, XXXXXXX, XXXXXXX, KC_LBRC, KC_RBRC, KC_QUOT, + KC_LSFT, UNDO, CUT, COPY, PASTE, KC_VOLD, KC_MUTE, XXXXXXX, XXXXXXX, KC_MINS, KC_EQL, KC_LGUI, + ORANGE, _______, KC_DEL, KC_LCTL + ), + + // ................................................................ Orange Layer + // + // http://www.keyboard-layout-editor.com/#/gists/83ccc7c3faa78b1f67f6fef65063a248 + + // ┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐ + // │Plover│ F1 │ F2 │ F3 │ F4 │ │ App │ PrScr│ScrLck│ Pause│ │ │ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │ Alt │ F5 │ F6 │ F7 │ F8 │ │ │Insert│ Home │ PgUp │ │ │ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │ Shift│ F9 │ F10 │ F11 │ F12 │ │ │ Del │ End │ PgDn │ \ │ GUI │ + // └──────┴──────┴──────┴──────┼──────┼──────┼──────┼──────┼──────┴──────┴──────┴──────┘ + // │ f() │ Blue │ Tab │ Ctrl │ + // └──────┴──────┴──────┴──────┘ + + [_ORANGE] = LAYOUT( + PLOVER, KC_F1, KC_F2, KC_F3, KC_F4, XXXXXXX, KC_APP, KC_PSCR, KC_SLCK, KC_PAUS, XXXXXXX, XXXXXXX, + KC_LALT, KC_F5, KC_F6, KC_F7, KC_F8, XXXXXXX, XXXXXXX, KC_INS, KC_HOME, KC_PGUP, XXXXXXX, XXXXXXX, + KC_LSFT, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, KC_DEL, KC_END, KC_PGDN, KC_BSLS, KC_LGUI, + _______, BLUE, KC_TAB, KC_LCTL + ), + + // ................................................................. Green Layer + // + // http://www.keyboard-layout-editor.com/#/gists/bc7902f1eada4d7d34d3445aa1eccdab + + // ┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐ + // │TxBolt│QWERTY│Dvorak│Colemk│Workmn│Scroll│ / │ 7 │ 8 │ 9 │ - │ │ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │ Alt │ Home │ Up │ End │ PgUp │ Caps │ * │ 4 │ 5 │ 6 │ + │ Enter│ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │ Shift│ Left │ Down │ Right│ PgDn │ Num │ 0 │ 1 │ 2 │ 3 │ │ GUI │ + // └──────┴──────┴──────┴──────┼──────┼──────┼──────┼──────┼──────┴──────┴──────┴──────┘ + // │ f() │ f() │ -- │ Ctrl │ + // └──────┴──────┴──────┴──────┘ + + [_GREEN] = LAYOUT( + TXBOLT, QWERTY, DVORAK, COLEMAK, WORKMAN, KC_SLCK, KC_PSLS, KC_P7, KC_P8, KC_P9, KC_MINS, XXXXXXX, + KC_LALT, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_CAPS, KC_PAST, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_ENT , + KC_LSFT, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, TG_NUM, KC_P0, KC_P1, KC_P2, KC_P3, XXXXXXX, KC_LGUI, + _______, _______, XXXXXXX, KC_LCTL + ), + + // ................................................................... Num Layer + // + // http://www.keyboard-layout-editor.com/#/gists/bc7902f1eada4d7d34d3445aa1eccdab + + // ┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐ + // │ │ │ │ │ │ │ / │ 7 │ 8 │ 9 │ - │ │ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │ Alt │ Home │ Up │ End │ PgUp │ │ * │ 4 │ 5 │ 6 │ + │ Enter│ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │ Shift│ Left │ Down │ Right│ PgDn │ f() │ 0 │ 1 │ 2 │ 3 │ │ GUI │ + // └──────┴──────┴──────┴──────┼──────┼──────┼──────┼──────┼──────┴──────┴──────┴──────┘ + // │ -- │ -- │ -- │ Ctrl │ + // └──────┴──────┴──────┴──────┘ + + [_NUM] = LAYOUT( + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PSLS, KC_P7, KC_P8, KC_P9, KC_PMNS, XXXXXXX, + KC_LALT, KC_HOME, KC_UP, KC_END, KC_PGUP, XXXXXXX, KC_PAST, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_ENT , + KC_LSFT, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, BASE, KC_P0, KC_P1, KC_P2, KC_P3, XXXXXXX, KC_LGUI, + XXXXXXX, XXXXXXX, XXXXXXX, KC_LCTL + ), + + // ...................................................................... Plover + // + // http://www.keyboard-layout-editor.com/#/gists/27b8f8649393a8ba4071ba946a9306f4 + + // ┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐ + // │ 1 │ 1 │ 1 │ 1 │ 1 │ 1 │ 1 │ 1 │ 1 │ 1 │ 1 │ 1 │ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │ Base │ S │ T │ P │ H │ * │ * │ F │ P │ L │ T │ D │ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │ Base │ S │ K │ W │ R │ * │ * │ R │ B │ G │ S │ Z │ + // └──────┴──────┴──────┴──────┼──────┼──────┼──────┼──────┼──────┴──────┴──────┴──────┘ + // │ A │ O │ E │ U │ + // └──────┴──────┴──────┴──────┘ + + [_PLOVER] = LAYOUT( + KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 , + BASE1, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, + BASE2, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_C, KC_V, KC_N, KC_M + ), + + // ...................................................................... TxBolt + // + // http://www.keyboard-layout-editor.com/#/gists/27b8f8649393a8ba4071ba946a9306f4 + + // ┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐ + // │ # │ # │ # │ # │ # │ # │ # │ # │ # │ # │ # │ # │ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │ Base │ S │ T │ P │ H │ * │ * │ F │ P │ L │ T │ D │ + // ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + // │ Base │ S │ K │ W │ R │ * │ * │ R │ B │ G │ S │ Z │ + // └──────┴──────┴──────┴──────┼──────┼──────┼──────┼──────┼──────┴──────┴──────┴──────┘ + // │ A │ O │ E │ U │ + // └──────┴──────┴──────┴──────┘ + + [_TXBOLT] = LAYOUT( + STN_N1, STN_N2, STN_N3, STN_N4, STN_N5, STN_N6, STN_N7, STN_N8, STN_N9, STN_NA, STN_NB, STN_NC , + BASE1, STN_S1, STN_TL, STN_PL, STN_HL, STN_ST1, STN_ST3, STN_FR, STN_PR, STN_LR, STN_TR, STN_DR , + BASE2, STN_S2, STN_KL, STN_WL, STN_RL, STN_ST2, STN_ST4, STN_RR, STN_BR, STN_GR, STN_SR, STN_ZR , + STN_A, STN_O, STN_E, STN_U + ), +}; +// clang-format on + +// ..................................................................... Keymaps + +#define BASE_1 1 +#define BASE_2 2 +#define BASE_12 3 +static uint8_t base_n = 0; + +void (*base_layer)(void) = NULL; + +void qwerty(void) { + base_layer = qwerty; + base_n = 0; + layer_move(0); + set_single_persistent_default_layer(_QWERTY); +} + +void dvorak(void) { + base_layer = dvorak; + base_n = 0; + layer_move(0); + set_single_persistent_default_layer(_DVORAK); +} + +void colemak(void) { + base_layer = colemak; + base_n = 0; + layer_move(0); + set_single_persistent_default_layer(_COLEMAK); +} + +void workman(void) { + base_layer = workman; + base_n = 0; + layer_move(0); + set_single_persistent_default_layer(_WORKMAN); +} + +void plover(keyrecord_t *record) { + if (record->event.pressed) { + layer_move(0); + layer_on(_PLOVER); + if (!eeconfig_is_enabled()) { + eeconfig_init(); + } + keymap_config.raw = eeconfig_read_keymap(); + keymap_config.nkro = 1; + eeconfig_update_keymap(keymap_config.raw); + } +} + +void txbolt(void) { + layer_move(0); + layer_on(_TXBOLT); +} + +// ........................................................... User Keycode Trap + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + qwerty(); + } + return false; + case DVORAK: + if (record->event.pressed) { + dvorak(); + } + return false; + case KC_QUOT: + if ((base_layer != dvorak) || (biton32(layer_state) != _BLUE)) { + break; + } + if (record->event.pressed) { + register_code(KC_SLSH); + } else { + unregister_code(KC_SLSH); + } + return false; + case COLEMAK: + if (record->event.pressed) { + colemak(); + } + return false; + case WORKMAN: + if (record->event.pressed) { + workman(); + } + return false; + case BASE: + if (record->event.pressed) { + base_layer(); + } + return false; + case BASE1: + if (record->event.pressed) { + base_n = base_n | BASE_1; + if (base_n == BASE_12) { + base_layer(); + } + } else { + base_n = base_n & ~BASE_1; + } + return false; + case BASE2: + if (record->event.pressed) { + base_n = base_n | BASE_2; + if (base_n == BASE_12) { + base_layer(); + } + } else { + base_n = base_n & ~BASE_2; + } + return false; + case BLUE: + if (record->event.pressed) { + layer_on(_BLUE); + update_tri_layer(_BLUE, _ORANGE, _GREEN); + } else { + layer_off(_BLUE); + update_tri_layer(_BLUE, _ORANGE, _GREEN); + } + return false; + case ORANGE: + if (record->event.pressed) { + layer_on(_ORANGE); + update_tri_layer(_BLUE, _ORANGE, _GREEN); + } else { + layer_off(_ORANGE); + update_tri_layer(_BLUE, _ORANGE, _GREEN); + } + return false; + case PLOVER: + plover(record); + return false; + case TXBOLT: + if (record->event.pressed) { + txbolt(); + } + return false; + } + return true; +} + +// Initialize the steno protocol +void eeconfig_init_user(void) { + steno_set_mode(STENO_MODE_BOLT); // or STENO_MODE_BOLT +} diff --git a/keyboards/splitography/keymaps/multi/readme.md b/keyboards/splitography/keymaps/multi/readme.md new file mode 100644 index 00000000000..2eb7d8f98c6 --- /dev/null +++ b/keyboards/splitography/keymaps/multi/readme.md @@ -0,0 +1,15 @@ +# Differences with the [default layout](../default) + +* QWERTY, Dvorak, Colemak and Workman are available by pressing Orange + Blue + one of the top left keys: + +``` +┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐ +│TxBolt│QWERTY│Dvorak│Colemk│Workmn│Scroll│ / │ 7 │ 8 │ 9 │ - │ │ +├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ +│ Alt │ Home │ Up │ End │ PgUp │ Caps │ * │ 4 │ 5 │ 6 │ + │ Enter│ +├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ +│ Shift│ Left │ Down │ Right│ PgDn │ Num │ 0 │ 1 │ 2 │ 3 │ │ GUI │ +└──────┴──────┴──────┴──────┼──────┼──────┼──────┼──────┼──────┴──────┴──────┴──────┘ + │ f() │ f() │ -- │ Ctrl │ + └──────┴──────┴──────┴──────┘ +``` diff --git a/keyboards/splitography/readme.md b/keyboards/splitography/readme.md new file mode 100644 index 00000000000..eeb9b2f40d4 --- /dev/null +++ b/keyboards/splitography/readme.md @@ -0,0 +1,42 @@ +# Splitography + +![Splitography](https://i.imgur.com/NlmR4Gc.jpeg) + +A *pay what you will* compact keyboard intended for use with [Plover](https://www.openstenoproject.org/), free and open source stenography software. This is a low-cost keyboard with minimal packaging and design, and arrives fully assembled, ready to use. + +* Keyboard Maintainer: [The QMK Community](https://github.com/qmk) +* Hardware Supported: Splitography +* Hardware Availability: [softhruf.love](https://softhruf.love/collections/writers) + +Make example for this keyboard (after setting up your build environment): + + make splitography:default + +Flashing example for this keyboard: + + make splitography: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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard. +* **Physical reset button**: Briefly press the button on the back of the PCB. +* **Keycode in layout**: Press the key mapped to `RESET` if it is available. + +## [Guide](https://softhruf.love/pages/guides) + +[Splitography quick start video](https://www.youtube.com/watch?v=ru4cRQ2s_v0) + +A short video guide on how to set up the SOFT/HRUF Splitography, a mechanical keyboard intended for use with [Plover](https://www.openstenoproject.org/plover/). + +Here is a reference card for the standard keyboard layout: + +![Reference card](https://i.imgur.com/ywe8jXR.png) + +* While holding down a colored thumb key, the matching colored functions/characters on the remaining keys can be pressed. +* Bottom edge keys are accessed by holding down both keys. +* Numlock locks in the Numpad layer. +* Alt and Shift pressed simultaneously to return to the standard layout. diff --git a/keyboards/splitography/rules.mk b/keyboards/splitography/rules.mk new file mode 100644 index 00000000000..e8326bcf099 --- /dev/null +++ b/keyboards/splitography/rules.mk @@ -0,0 +1,5 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu diff --git a/keyboards/splitography/splitography.c b/keyboards/splitography/splitography.c new file mode 100644 index 00000000000..4fe3452ef2a --- /dev/null +++ b/keyboards/splitography/splitography.c @@ -0,0 +1,17 @@ +/* Copyright 2021 Alexis Jeandeau + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 "splitography.h" diff --git a/keyboards/splitography/splitography.h b/keyboards/splitography/splitography.h new file mode 100644 index 00000000000..cfef33363da --- /dev/null +++ b/keyboards/splitography/splitography.h @@ -0,0 +1,33 @@ +/* Copyright 2021 Alexis Jeandeau + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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" + +// clang-format off +#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, \ + L34, L35, R30, R31 \ +) \ +{ \ + { 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 }, \ + { KC_NO, KC_NO, KC_NO, KC_NO, L34, L35, R30, R31, KC_NO, KC_NO, KC_NO, KC_NO } \ +} diff --git a/keyboards/splitreus62/rules.mk b/keyboards/splitreus62/rules.mk index a94c727fe83..b5f2571dc7b 100644 --- a/keyboards/splitreus62/rules.mk +++ b/keyboards/splitreus62/rules.mk @@ -19,6 +19,5 @@ NKRO_ENABLE = yes # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -UNICODE_ENABLE = no # Unicode SPLIT_KEYBOARD = yes diff --git a/keyboards/standaside/config.h b/keyboards/standaside/config.h index d6d60fd9608..797a463a15e 100644 --- a/keyboards/standaside/config.h +++ b/keyboards/standaside/config.h @@ -84,54 +84,6 @@ */ //#define FORCE_NKRO -/* - * Magic Key Options - * - * Magic keys are hotkey commands that allow control over firmware functions of - * the keyboard. They are best used in combination with the HID Listen program, - * found here: https://www.pjrc.com/teensy/hid_listen.html - * - * The options below allow the magic key functionality to be changed. This is - * useful if your keyboard/keypad is missing keys and you want magic key support. - * - */ - -/* control how magic key switches layers */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false - -/* override magic key keymap */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM -//#define MAGIC_KEY_HELP1 H -//#define MAGIC_KEY_HELP2 SLASH -//#define MAGIC_KEY_DEBUG D -//#define MAGIC_KEY_DEBUG_MATRIX X -//#define MAGIC_KEY_DEBUG_KBD K -//#define MAGIC_KEY_DEBUG_MOUSE M -//#define MAGIC_KEY_VERSION V -//#define MAGIC_KEY_STATUS S -//#define MAGIC_KEY_CONSOLE C -//#define MAGIC_KEY_LAYER0_ALT1 ESC -//#define MAGIC_KEY_LAYER0_ALT2 GRAVE -//#define MAGIC_KEY_LAYER0 0 -//#define MAGIC_KEY_LAYER1 1 -//#define MAGIC_KEY_LAYER2 2 -//#define MAGIC_KEY_LAYER3 3 -//#define MAGIC_KEY_LAYER4 4 -//#define MAGIC_KEY_LAYER5 5 -//#define MAGIC_KEY_LAYER6 6 -//#define MAGIC_KEY_LAYER7 7 -//#define MAGIC_KEY_LAYER8 8 -//#define MAGIC_KEY_LAYER9 9 -//#define MAGIC_KEY_BOOTLOADER PAUSE -//#define MAGIC_KEY_LOCK CAPS -//#define MAGIC_KEY_EEPROM E -//#define MAGIC_KEY_NKRO N -//#define MAGIC_KEY_SLEEP_LED Z - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/standaside/rules.mk b/keyboards/standaside/rules.mk index 60da7f9e4a2..47037373f42 100644 --- a/keyboards/standaside/rules.mk +++ b/keyboards/standaside/rules.mk @@ -17,6 +17,5 @@ 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 -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output RGBLIGHT_ENABLE = yes # Enable RGB underlighting support diff --git a/keyboards/steal_this_keyboard/info.json b/keyboards/steal_this_keyboard/info.json index 0a0ab13e6c4..7a4eabdb557 100644 --- a/keyboards/steal_this_keyboard/info.json +++ b/keyboards/steal_this_keyboard/info.json @@ -3,7 +3,7 @@ "url": "https://github.com/obosob/steal_this_keyboard", "maintainer": "@obosob", "layouts": { - "LAYOUT": { + "LAYOUT_split_3x5_2": { "layout": [ {"x": 0, "y": 0.93}, {"x": 1, "y": 0.31}, diff --git a/keyboards/studiokestra/bourgeau/bourgeau.c b/keyboards/studiokestra/bourgeau/bourgeau.c new file mode 100644 index 00000000000..87368df5096 --- /dev/null +++ b/keyboards/studiokestra/bourgeau/bourgeau.c @@ -0,0 +1,18 @@ +/* +Copyright 2021 Studio Kestra + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 "bourgeau.h" diff --git a/keyboards/studiokestra/bourgeau/bourgeau.h b/keyboards/studiokestra/bourgeau/bourgeau.h new file mode 100644 index 00000000000..32a848eca77 --- /dev/null +++ b/keyboards/studiokestra/bourgeau/bourgeau.h @@ -0,0 +1,46 @@ +/* +Copyright 2021 Studio Kestra + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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_all( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K114, K115, \ + K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, \ + K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K314, K315, \ + K400, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K413, K414, K415, \ + K500, K501, K502, K506, K510, K512, K513, K514, K515 \ +) \ +{ \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, KC_NO, K114, K115 }, \ + { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215 }, \ + { K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, KC_NO, K314, K315 }, \ + { K400, KC_NO, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, K413, K414, K415 }, \ + { K500, K501, K502, KC_NO, KC_NO, KC_NO, K506, KC_NO, KC_NO, KC_NO, K510, KC_NO, K512, K513, K514, K515 } \ +} + diff --git a/keyboards/studiokestra/bourgeau/config.h b/keyboards/studiokestra/bourgeau/config.h new file mode 100644 index 00000000000..744149c34eb --- /dev/null +++ b/keyboards/studiokestra/bourgeau/config.h @@ -0,0 +1,83 @@ +/* +Copyright 2021 Studio Kestra + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 0x7C10 +#define PRODUCT_ID 0x7501 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Studio Kestra +#define PRODUCT Bourgeau + +#define MATRIX_ROWS 6 +#define MATRIX_COLS 16 + +#define MATRIX_ROW_PINS { D4, D6, D7, D5, B1, F0 } +#define MATRIX_COL_PINS { E6, B0, D2, D1, D0, D3, B6, F1, F4, F5, F6, F7, C7, C6, B5, B4 } + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + + +#define RGB_DI_PIN B7 +#ifdef RGB_DI_PIN + #define RGBLED_NUM 24 + #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_EFFECT_BREATHING +#define RGBLIGHT_EFFECT_RAINBOW_MOOD +#define RGBLIGHT_EFFECT_RAINBOW_SWIRL +#define RGBLIGHT_EFFECT_SNAKE +#define RGBLIGHT_EFFECT_KNIGHT +#define RGBLIGHT_EFFECT_CHRISTMAS +#define RGBLIGHT_EFFECT_STATIC_GRADIENT +#define RGBLIGHT_EFFECT_RGB_TEST +#define RGBLIGHT_EFFECT_ALTERNATING +#define RGBLIGHT_EFFECT_TWINKLE +// /*== 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 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* disable 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/studiokestra/bourgeau/info.json b/keyboards/studiokestra/bourgeau/info.json new file mode 100644 index 00000000000..8fd62f65184 --- /dev/null +++ b/keyboards/studiokestra/bourgeau/info.json @@ -0,0 +1,94 @@ +{ + "keyboard_name": "Bourgeau", + "url": "https://studiokestra.ca/bourgeau/", + "maintainer": "Studio Kestra", + "layouts": { + "LAYOUT_all": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":1, "y":0}, + {"label":"F2", "x":2, "y":0}, + {"label":"F3", "x":3, "y":0}, + {"label":"F4", "x":4, "y":0}, + {"label":"F5", "x":5, "y":0}, + {"label":"F6", "x":6, "y":0}, + {"label":"F7", "x":7, "y":0}, + {"label":"F8", "x":8, "y":0}, + {"label":"F9", "x":9, "y":0}, + {"label":"F10", "x":10, "y":0}, + {"label":"F11", "x":11, "y":0}, + {"label":"F12", "x":12, "y":0}, + {"label":"PrtSc", "x":13, "y":0}, + {"label":"Insert", "x":14, "y":0}, + {"label":"Delete", "x":15, "y":0}, + {"label":"~", "x":0, "y":1}, + {"label":"!", "x":1, "y":1}, + {"label":"@", "x":2, "y":1}, + {"label":"#", "x":3, "y":1}, + {"label":"$", "x":4, "y":1}, + {"label":"%", "x":5, "y":1}, + {"label":"^", "x":6, "y":1}, + {"label":"&", "x":7, "y":1}, + {"label":"*", "x":8, "y":1}, + {"label":"(", "x":9, "y":1}, + {"label":")", "x":10, "y":1}, + {"label":"_", "x":11, "y":1}, + {"label":"+", "x":12, "y":1}, + {"label":"Backspace", "x":13, "y":1, "w":2}, + {"label":"Home", "x":15, "y":1}, + {"label":"Tab", "x":0, "y":2, "w":1.5}, + {"label":"Q", "x":1.5, "y":2}, + {"label":"W", "x":2.5, "y":2}, + {"label":"E", "x":3.5, "y":2}, + {"label":"R", "x":4.5, "y":2}, + {"label":"T", "x":5.5, "y":2}, + {"label":"Y", "x":6.5, "y":2}, + {"label":"U", "x":7.5, "y":2}, + {"label":"I", "x":8.5, "y":2}, + {"label":"O", "x":9.5, "y":2}, + {"label":"P", "x":10.5, "y":2}, + {"label":"{", "x":11.5, "y":2}, + {"label":"}", "x":12.5, "y":2}, + {"label":"|", "x":13.5, "y":2, "w":1.5}, + {"label":"PgUp", "x":15, "y":2}, + {"label":"Caps Lock", "x":0, "y":3, "w":1.75}, + {"label":"A", "x":1.75, "y":3}, + {"label":"S", "x":2.75, "y":3}, + {"label":"D", "x":3.75, "y":3}, + {"label":"F", "x":4.75, "y":3}, + {"label":"G", "x":5.75, "y":3}, + {"label":"H", "x":6.75, "y":3}, + {"label":"J", "x":7.75, "y":3}, + {"label":"K", "x":8.75, "y":3}, + {"label":"L", "x":9.75, "y":3}, + {"label":":", "x":10.75, "y":3}, + {"label":"\"", "x":11.75, "y":3}, + {"label":"Enter", "x":12.75, "y":3, "w":2.25}, + {"label":"PgDn", "x":15, "y":3}, + {"label":"Shift", "x":0, "y":4, "w":2.25}, + {"label":"Z", "x":2.25, "y":4}, + {"label":"X", "x":3.25, "y":4}, + {"label":"C", "x":4.25, "y":4}, + {"label":"V", "x":5.25, "y":4}, + {"label":"B", "x":6.25, "y":4}, + {"label":"N", "x":7.25, "y":4}, + {"label":"M", "x":8.25, "y":4}, + {"label":"<", "x":9.25, "y":4}, + {"label":">", "x":10.25, "y":4}, + {"label":"?", "x":11.25, "y":4}, + {"label":"Shift", "x":12.25, "y":4, "w":1.75}, + {"label":"\u2191", "x":14, "y":4}, + {"label":"End", "x":15, "y":4}, + {"label":"Ctrl", "x":0, "y":5, "w":1.25}, + {"label":"Win", "x":1.25, "y":5, "w":1.25}, + {"label":"Alt", "x":2.5, "y":5, "w":1.25}, + {"x":3.75, "y":5, "w":6.25}, + {"label":"Fn", "x":10, "y":5, "w":1.5}, + {"label":"Ctrl", "x":11.5, "y":5, "w":1.5}, + {"label":"\u2190", "x":13, "y":5}, + {"label":"\u2193", "x":14, "y":5}, + {"label":"\u2192", "x":15, "y":5} + ] + } + } +} diff --git a/keyboards/studiokestra/bourgeau/keymaps/default/keymap.c b/keyboards/studiokestra/bourgeau/keymaps/default/keymap.c new file mode 100644 index 00000000000..31d7d70a09b --- /dev/null +++ b/keyboards/studiokestra/bourgeau/keymaps/default/keymap.c @@ -0,0 +1,43 @@ +/* +Copyright 2021 Studio Kestra + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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, + _FN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_all( /* Base */ + 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_INS, KC_DEL, + KC_GRAVE,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, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ), + [_FN] = LAYOUT_all( /* FN */ + RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; + diff --git a/keyboards/studiokestra/bourgeau/keymaps/default/readme.md b/keyboards/studiokestra/bourgeau/keymaps/default/readme.md new file mode 100644 index 00000000000..cbed849589e --- /dev/null +++ b/keyboards/studiokestra/bourgeau/keymaps/default/readme.md @@ -0,0 +1,3 @@ +# The default keymap for Bourgeau + +Default key configuration. \ No newline at end of file diff --git a/keyboards/studiokestra/bourgeau/keymaps/via/keymap.c b/keyboards/studiokestra/bourgeau/keymaps/via/keymap.c new file mode 100644 index 00000000000..d0491c30a9a --- /dev/null +++ b/keyboards/studiokestra/bourgeau/keymaps/via/keymap.c @@ -0,0 +1,54 @@ +/* +Copyright 2021 Studio Kestra + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_INS, KC_DEL, + KC_GRAVE,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, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ), + [1] = LAYOUT_all( /* FN */ + 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, 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 + ), + [2] = LAYOUT_all( /* Layer 3 */ + 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 + ), + [3] = LAYOUT_all( /* Layer 3 */ + 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 + ) +}; diff --git a/keyboards/studiokestra/bourgeau/keymaps/via/readme.md b/keyboards/studiokestra/bourgeau/keymaps/via/readme.md new file mode 100644 index 00000000000..bf2bc20a627 --- /dev/null +++ b/keyboards/studiokestra/bourgeau/keymaps/via/readme.md @@ -0,0 +1,3 @@ +# The via keymap for Bourgeau + +For via configurator use \ No newline at end of file diff --git a/keyboards/studiokestra/bourgeau/keymaps/via/rules.mk b/keyboards/studiokestra/bourgeau/keymaps/via/rules.mk new file mode 100644 index 00000000000..036bd6d1c3e --- /dev/null +++ b/keyboards/studiokestra/bourgeau/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/studiokestra/bourgeau/readme.md b/keyboards/studiokestra/bourgeau/readme.md new file mode 100644 index 00000000000..16f87618e0e --- /dev/null +++ b/keyboards/studiokestra/bourgeau/readme.md @@ -0,0 +1,23 @@ +# Bourgeau + +Compact 75% universal hotswap PCB with USB-C that supports a fixed 6.25U bottom row layout. + +* Keyboard Maintainer: [Studio Kestra](https://github.com/studiokestra/) +* Hardware Supported: PLA75 +* Hardware Availability: [RNDKBD.com](https://rndkbd.com/) + +## Bootload Sequence + +There are 3 ways to put the board in bootloader mode: + +- Hold the top-left key (typically `Esc`) while plugging in the USB cable, OR +- While the PCB is plugged into the PC, press the physical `RESET` button on the back of the board, OR +- With the default layout, toggle Layer 1 and press the `ESC` key. + +## Compiling Firmware + +Make example for this keyboard (after setting up your build environment): + + make studiokestra/bourgeau: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/studiokestra/bourgeau/rules.mk b/keyboards/studiokestra/bourgeau/rules.mk new file mode 100644 index 00000000000..0acd19e6706 --- /dev/null +++ b/keyboards/studiokestra/bourgeau/rules.mk @@ -0,0 +1,21 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = 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 = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/subatomic/rules.mk b/keyboards/subatomic/rules.mk index fe60b044366..f024da0b208 100644 --- a/keyboards/subatomic/rules.mk +++ b/keyboards/subatomic/rules.mk @@ -17,7 +17,6 @@ NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: ht BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality MIDI_ENABLE = yes # MIDI support AUDIO_ENABLE = no # Audio output -UNICODE_ENABLE = no # Unicode RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE diff --git a/keyboards/suihankey/alpha/config.h b/keyboards/suihankey/alpha/config.h index c63592298eb..b11478adfcb 100644 --- a/keyboards/suihankey/alpha/config.h +++ b/keyboards/suihankey/alpha/config.h @@ -118,59 +118,6 @@ along with this program. If not, see . */ //#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_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) - -/* 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. diff --git a/keyboards/suihankey/rev1/config.h b/keyboards/suihankey/rev1/config.h index ddc8b95d6b6..b2801cd8622 100644 --- a/keyboards/suihankey/rev1/config.h +++ b/keyboards/suihankey/rev1/config.h @@ -118,59 +118,6 @@ along with this program. If not, see . */ //#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_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) - -/* 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. diff --git a/keyboards/suihankey/rules.mk b/keyboards/suihankey/rules.mk index 5feea221022..2a0566f9444 100644 --- a/keyboards/suihankey/rules.mk +++ b/keyboards/suihankey/rules.mk @@ -18,7 +18,6 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = no # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output OLED_ENABLE = yes OLED_DRIVER = SSD1306 diff --git a/keyboards/suihankey/split/alpha/config.h b/keyboards/suihankey/split/alpha/config.h index b54744afb45..ae5acdbd4bb 100644 --- a/keyboards/suihankey/split/alpha/config.h +++ b/keyboards/suihankey/split/alpha/config.h @@ -118,59 +118,6 @@ along with this program. If not, see . */ //#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_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) - -/* 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. diff --git a/keyboards/suihankey/split/rev1/config.h b/keyboards/suihankey/split/rev1/config.h index f2d8239db1c..6b7dd2bac90 100644 --- a/keyboards/suihankey/split/rev1/config.h +++ b/keyboards/suihankey/split/rev1/config.h @@ -118,59 +118,6 @@ along with this program. If not, see . */ //#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_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) - -/* 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. diff --git a/keyboards/superuser/ext/ext.h b/keyboards/superuser/ext/ext.h index f83b5bed195..3bed0782d2d 100644 --- a/keyboards/superuser/ext/ext.h +++ b/keyboards/superuser/ext/ext.h @@ -17,16 +17,88 @@ #include "quantum.h" -#define LAYOUT_tkl(\ - KF10, KF11, K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K312, K114, K115, K116, \ - KF20, KF21, K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, K216, \ - KF30, KF31, K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, \ - KF40, KF41, K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, K415, \ - KF50, KF51, K500, K501, K502, K506, K511, K512, K513, K514, K515, K516 \ +#define ___ KC_NO + +/* + * ┌───┬───┐┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐┌───┬───┬───┐ ┌───────┐ + * │00 │01 ││02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │0F │2E ││0G │0H │0I │ │0F │ 2u Backspace + * ├───┼───┤├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤├───┼───┼───┤ └─┬─────┤ + * │10 │11 ││12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │1E │1F ││1G │1H │1I │ │ │ + * 2.25u ├───┼───┤├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤└───┴───┴───┘ ┌──┴┐2F │ ISO Enter + * LShift │20 │21 ││22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2D │2F │ │1F │ │ + * ┌────────┐ ├───┼───┤├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ ┌─┴───┴────┤ + * │32 │ │30 │31 ││32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │3E │3F │ │3H │ │3E │ 2.75u RShift + * └────────┘ ├───┼───┤├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤┌───┼───┼───┐ └──────────┘ + * │40 │41 ││42 │43 │44 │48 │4D │4E │4F ││4G │4H │4I │ + * └───┴───┘└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘└───┴───┴───┘ + */ + +#define LAYOUT_all(\ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K2E, K0G, K0H, K0I, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H, K1I, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2F, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, K3H, \ + K40, K41, K42, K43, K44, K48, K4D, K4E, K4F, K4G, K4H, K4I \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H, K0I }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H, K1I }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, ___, ___, ___ }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, ___, K3H, ___ }, \ + { K40, K41, K42, K43, K44, ___, ___, ___, K48, ___, ___, ___, ___, K4D, K4E, K4F, K4G, K4H, K4I } \ +} + +#define LAYOUT_ansi(\ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H, K0I, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H, K1I, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2F, \ + K30, K31, K32, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3H, \ + K40, K41, K42, K43, K44, K48, K4D, K4E, K4F, K4G, K4H, K4I \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H, K0I }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H, K1I }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, ___, K2F, ___, ___, ___ }, \ + { K30, K31, K32, ___, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, ___, ___, K3H, ___ }, \ + { K40, K41, K42, K43, K44, ___, ___, ___, K48, ___, ___, ___, ___, K4D, K4E, K4F, K4G, K4H, K4I } \ +} + +#define LAYOUT_ansi_split_bs_rshift(\ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K2E, K0G, K0H, K0I, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H, K1I, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2F, \ + K30, K31, K32, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, K3H, \ + K40, K41, K42, K43, K44, K48, K4D, K4E, K4F, K4G, K4H, K4I \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H, K0I }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H, K1I }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, ___, ___, ___ }, \ + { K30, K31, K32, ___, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, ___, K3H, ___ }, \ + { K40, K41, K42, K43, K44, ___, ___, ___, K48, ___, ___, ___, ___, K4D, K4E, K4F, K4G, K4H, K4I } \ +} + +#define LAYOUT_iso(\ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H, K0I, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1G, K1H, K1I, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K1F, K2F, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3H, \ + K40, K41, K42, K43, K44, K48, K4D, K4E, K4F, K4G, K4H, K4I \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H, K0I }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H, K1I }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, ___, K2F, ___, ___, ___ }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, ___, ___, K3H, ___ }, \ + { K40, K41, K42, K43, K44, ___, ___, ___, K48, ___, ___, ___, ___, K4D, K4E, K4F, K4G, K4H, K4I } \ +} + +#define LAYOUT_iso_split_bs_rshift(\ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K2E, K0G, K0H, K0I, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1G, K1H, K1I, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K1F, K2F, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, K3H, \ + K40, K41, K42, K43, K44, K48, K4D, K4E, K4F, K4G, K4H, K4I \ ) { \ - { KF10, KF11, K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K116 }, \ - { KF20, KF21, K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, K216 }, \ - { KF30, KF31, K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, KC_NO, KC_NO, KC_NO }, \ - { KF40, KF41, K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, KC_NO, K415, KC_NO }, \ - { KF50, KF51, K500, K501, K502, KC_NO, KC_NO, KC_NO, K506, KC_NO, KC_NO, KC_NO, KC_NO, K511, K512, K513, K514, K515, K516 } \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H, K0I }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H, K1I }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, ___, ___, ___ }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, ___, K3H, ___ }, \ + { K40, K41, K42, K43, K44, ___, ___, ___, K48, ___, ___, ___, ___, K4D, K4E, K4F, K4G, K4H, K4I } \ } diff --git a/keyboards/superuser/ext/info.json b/keyboards/superuser/ext/info.json index 272df98a9a3..c19fc3a9133 100644 --- a/keyboards/superuser/ext/info.json +++ b/keyboards/superuser/ext/info.json @@ -1,10 +1,459 @@ { "keyboard_name": "ext", "url": "", - "maintainer": "superuser", + "maintainer": "kaylanm", + "layout_aliases": { + "LAYOUT_tkl": "LAYOUT_all" + }, "layouts": { - "LAYOUT": { - "layout": [{"label":"F1", "x":0, "y":0}, {"label":"F2", "x":1, "y":0}, {"label":"~", "x":2.25, "y":0}, {"label":"!", "x":3.25, "y":0}, {"label":"@", "x":4.25, "y":0}, {"label":"#", "x":5.25, "y":0}, {"label":"$", "x":6.25, "y":0}, {"label":"%", "x":7.25, "y":0}, {"label":"^", "x":8.25, "y":0}, {"label":"&", "x":9.25, "y":0}, {"label":"*", "x":10.25, "y":0}, {"label":"(", "x":11.25, "y":0}, {"label":")", "x":12.25, "y":0}, {"label":"_", "x":13.25, "y":0}, {"label":"+", "x":14.25, "y":0}, {"label":"Bksp", "x":15.25, "y":0}, {"label":"Bksp", "x":16.25, "y":0}, {"label":"Insert", "x":17.5, "y":0}, {"label":"Home", "x":18.5, "y":0}, {"label":"PgUp", "x":19.5, "y":0}, {"label":"F3", "x":0, "y":1}, {"label":"F4", "x":1, "y":1}, {"label":"Tab", "x":2.25, "y":1, "w":1.5}, {"label":"Q", "x":3.75, "y":1}, {"label":"W", "x":4.75, "y":1}, {"label":"E", "x":5.75, "y":1}, {"label":"R", "x":6.75, "y":1}, {"label":"T", "x":7.75, "y":1}, {"label":"Y", "x":8.75, "y":1}, {"label":"U", "x":9.75, "y":1}, {"label":"I", "x":10.75, "y":1}, {"label":"O", "x":11.75, "y":1}, {"label":"P", "x":12.75, "y":1}, {"label":"{", "x":13.75, "y":1}, {"label":"}", "x":14.75, "y":1}, {"label":"|", "x":15.75, "y":1, "w":1.5}, {"label":"Delete", "x":17.5, "y":1}, {"label":"End", "x":18.5, "y":1}, {"label":"PgDn", "x":19.5, "y":1}, {"label":"F5", "x":0, "y":2}, {"label":"F6", "x":1, "y":2}, {"label":"Caps Lock", "x":2.25, "y":2, "w":1.75}, {"label":"A", "x":4, "y":2}, {"label":"S", "x":5, "y":2}, {"label":"D", "x":6, "y":2}, {"label":"F", "x":7, "y":2}, {"label":"G", "x":8, "y":2}, {"label":"H", "x":9, "y":2}, {"label":"J", "x":10, "y":2}, {"label":"K", "x":11, "y":2}, {"label":"L", "x":12, "y":2}, {"label":":", "x":13, "y":2}, {"label":"\"", "x":14, "y":2}, {"label":"Enter", "x":15, "y":2, "w":2.25}, {"label":"F7", "x":0, "y":3}, {"label":"F8", "x":1, "y":3}, {"label":"Shift", "x":2.25, "y":3, "w":1.25}, {"label":"|", "x":3.5, "y":3}, {"label":"Z", "x":4.5, "y":3}, {"label":"X", "x":5.5, "y":3}, {"label":"C", "x":6.5, "y":3}, {"label":"V", "x":7.5, "y":3}, {"label":"B", "x":8.5, "y":3}, {"label":"N", "x":9.5, "y":3}, {"label":"M", "x":10.5, "y":3}, {"label":"<", "x":11.5, "y":3}, {"label":">", "x":12.5, "y":3}, {"label":"?", "x":13.5, "y":3}, {"label":"Shift", "x":14.5, "y":3, "w":1.75}, {"label":"Fn", "x":16.25, "y":3}, {"label":"\u2191", "x":18.5, "y":3}, {"label":"F9", "x":0, "y":4}, {"label":"F10", "x":1, "y":4}, {"label":"Ctrl", "x":2.25, "y":4, "w":1.5}, {"label":"Win", "x":3.75, "y":4}, {"label":"Alt", "x":4.75, "y":4, "w":1.5}, {"x":6.25, "y":4, "w":7}, {"label":"Alt", "x":13.25, "y":4, "w":1.5}, {"label":"Win", "x":14.75, "y":4}, {"label":"Ctrl", "x":15.75, "y":4, "w":1.5}, {"label":"\u2190", "x":17.5, "y":4}, {"label":"\u2193", "x":18.5, "y":4}, {"label":"\u2192", "x":19.5, "y":4}] + "LAYOUT_all": { + "layout": [ + {"label":"F1", "x":0, "y":0}, + {"label":"F2", "x":1, "y":0}, + {"label":"`~", "x":2.25, "y":0}, + {"label":"1!", "x":3.25, "y":0}, + {"label":"2@", "x":4.25, "y":0}, + {"label":"3#", "x":5.25, "y":0}, + {"label":"4$", "x":6.25, "y":0}, + {"label":"5%", "x":7.25, "y":0}, + {"label":"6^", "x":8.25, "y":0}, + {"label":"7&", "x":9.25, "y":0}, + {"label":"8*", "x":10.25, "y":0}, + {"label":"9(", "x":11.25, "y":0}, + {"label":"0)", "x":12.25, "y":0}, + {"label":"-_", "x":13.25, "y":0}, + {"label":"=+", "x":14.25, "y":0}, + {"label":"Bksp", "x":15.25, "y":0}, + {"label":"Bksp", "x":16.25, "y":0}, + {"label":"Insert", "x":17.5, "y":0}, + {"label":"Home", "x":18.5, "y":0}, + {"label":"PgUp", "x":19.5, "y":0}, + + {"label":"F3", "x":0, "y":1}, + {"label":"F4", "x":1, "y":1}, + {"label":"Tab", "x":2.25, "y":1, "w":1.5}, + {"label":"Q", "x":3.75, "y":1}, + {"label":"W", "x":4.75, "y":1}, + {"label":"E", "x":5.75, "y":1}, + {"label":"R", "x":6.75, "y":1}, + {"label":"T", "x":7.75, "y":1}, + {"label":"Y", "x":8.75, "y":1}, + {"label":"U", "x":9.75, "y":1}, + {"label":"I", "x":10.75, "y":1}, + {"label":"O", "x":11.75, "y":1}, + {"label":"P", "x":12.75, "y":1}, + {"label":"[{", "x":13.75, "y":1}, + {"label":"]}", "x":14.75, "y":1}, + {"label":"\\|", "x":15.75, "y":1, "w":1.5}, + {"label":"Delete", "x":17.5, "y":1}, + {"label":"End", "x":18.5, "y":1}, + {"label":"PgDn", "x":19.5, "y":1}, + + {"label":"F5", "x":0, "y":2}, + {"label":"F6", "x":1, "y":2}, + {"label":"Caps Lock", "x":2.25, "y":2, "w":1.75}, + {"label":"A", "x":4, "y":2}, + {"label":"S", "x":5, "y":2}, + {"label":"D", "x":6, "y":2}, + {"label":"F", "x":7, "y":2}, + {"label":"G", "x":8, "y":2}, + {"label":"H", "x":9, "y":2}, + {"label":"J", "x":10, "y":2}, + {"label":"K", "x":11, "y":2}, + {"label":"L", "x":12, "y":2}, + {"label":";:", "x":13, "y":2}, + {"label":"'\"", "x":14, "y":2}, + {"label":"Enter", "x":15, "y":2, "w":2.25}, + + {"label":"F7", "x":0, "y":3}, + {"label":"F8", "x":1, "y":3}, + {"label":"Shift", "x":2.25, "y":3, "w":1.25}, + {"label":"\\|", "x":3.5, "y":3}, + {"label":"Z", "x":4.5, "y":3}, + {"label":"X", "x":5.5, "y":3}, + {"label":"C", "x":6.5, "y":3}, + {"label":"V", "x":7.5, "y":3}, + {"label":"B", "x":8.5, "y":3}, + {"label":"N", "x":9.5, "y":3}, + {"label":"M", "x":10.5, "y":3}, + {"label":",<", "x":11.5, "y":3}, + {"label":".>", "x":12.5, "y":3}, + {"label":"/?", "x":13.5, "y":3}, + {"label":"Shift", "x":14.5, "y":3, "w":1.75}, + {"label":"Fn", "x":16.25, "y":3}, + {"label":"\u2191", "x":18.5, "y":3}, + + {"label":"F9", "x":0, "y":4}, + {"label":"F10", "x":1, "y":4}, + {"label":"Ctrl", "x":2.25, "y":4, "w":1.5}, + {"label":"Win", "x":3.75, "y":4}, + {"label":"Alt", "x":4.75, "y":4, "w":1.5}, + {"label":"Space", "x":6.25, "y":4, "w":7}, + {"label":"Alt", "x":13.25, "y":4, "w":1.5}, + {"label":"Win", "x":14.75, "y":4}, + {"label":"Ctrl", "x":15.75, "y":4, "w":1.5}, + {"label":"\u2190", "x":17.5, "y":4}, + {"label":"\u2193", "x":18.5, "y":4}, + {"label":"\u2192", "x":19.5, "y":4} + ] + }, + "LAYOUT_ansi": { + "layout": [ + {"label":"F1", "x":0, "y":0}, + {"label":"F2", "x":1, "y":0}, + {"label":"`~", "x":2.25, "y":0}, + {"label":"1!", "x":3.25, "y":0}, + {"label":"2@", "x":4.25, "y":0}, + {"label":"3#", "x":5.25, "y":0}, + {"label":"4$", "x":6.25, "y":0}, + {"label":"5%", "x":7.25, "y":0}, + {"label":"6^", "x":8.25, "y":0}, + {"label":"7&", "x":9.25, "y":0}, + {"label":"8*", "x":10.25, "y":0}, + {"label":"9(", "x":11.25, "y":0}, + {"label":"0)", "x":12.25, "y":0}, + {"label":"-_", "x":13.25, "y":0}, + {"label":"=+", "x":14.25, "y":0}, + {"label":"Bksp", "x":15.25, "y":0, "w":2}, + {"label":"Insert", "x":17.5, "y":0}, + {"label":"Home", "x":18.5, "y":0}, + {"label":"PgUp", "x":19.5, "y":0}, + + {"label":"F3", "x":0, "y":1}, + {"label":"F4", "x":1, "y":1}, + {"label":"Tab", "x":2.25, "y":1, "w":1.5}, + {"label":"Q", "x":3.75, "y":1}, + {"label":"W", "x":4.75, "y":1}, + {"label":"E", "x":5.75, "y":1}, + {"label":"R", "x":6.75, "y":1}, + {"label":"T", "x":7.75, "y":1}, + {"label":"Y", "x":8.75, "y":1}, + {"label":"U", "x":9.75, "y":1}, + {"label":"I", "x":10.75, "y":1}, + {"label":"O", "x":11.75, "y":1}, + {"label":"P", "x":12.75, "y":1}, + {"label":"[{", "x":13.75, "y":1}, + {"label":"]}", "x":14.75, "y":1}, + {"label":"\\|", "x":15.75, "y":1, "w":1.5}, + {"label":"Delete", "x":17.5, "y":1}, + {"label":"End", "x":18.5, "y":1}, + {"label":"PgDn", "x":19.5, "y":1}, + + {"label":"F5", "x":0, "y":2}, + {"label":"F6", "x":1, "y":2}, + {"label":"Caps Lock", "x":2.25, "y":2, "w":1.75}, + {"label":"A", "x":4, "y":2}, + {"label":"S", "x":5, "y":2}, + {"label":"D", "x":6, "y":2}, + {"label":"F", "x":7, "y":2}, + {"label":"G", "x":8, "y":2}, + {"label":"H", "x":9, "y":2}, + {"label":"J", "x":10, "y":2}, + {"label":"K", "x":11, "y":2}, + {"label":"L", "x":12, "y":2}, + {"label":";:", "x":13, "y":2}, + {"label":"'\"", "x":14, "y":2}, + {"label":"Enter", "x":15, "y":2, "w":2.25}, + + {"label":"F7", "x":0, "y":3}, + {"label":"F8", "x":1, "y":3}, + {"label":"Shift", "x":2.25, "y":3, "w":2.25}, + {"label":"Z", "x":4.5, "y":3}, + {"label":"X", "x":5.5, "y":3}, + {"label":"C", "x":6.5, "y":3}, + {"label":"V", "x":7.5, "y":3}, + {"label":"B", "x":8.5, "y":3}, + {"label":"N", "x":9.5, "y":3}, + {"label":"M", "x":10.5, "y":3}, + {"label":",<", "x":11.5, "y":3}, + {"label":".>", "x":12.5, "y":3}, + {"label":"/?", "x":13.5, "y":3}, + {"label":"Shift", "x":14.5, "y":3, "w":2.75}, + {"label":"\u2191", "x":18.5, "y":3}, + + {"label":"F9", "x":0, "y":4}, + {"label":"F10", "x":1, "y":4}, + {"label":"Ctrl", "x":2.25, "y":4, "w":1.5}, + {"label":"Win", "x":3.75, "y":4}, + {"label":"Alt", "x":4.75, "y":4, "w":1.5}, + {"label":"Space", "x":6.25, "y":4, "w":7}, + {"label":"Alt", "x":13.25, "y":4, "w":1.5}, + {"label":"Win", "x":14.75, "y":4}, + {"label":"Ctrl", "x":15.75, "y":4, "w":1.5}, + {"label":"\u2190", "x":17.5, "y":4}, + {"label":"\u2193", "x":18.5, "y":4}, + {"label":"\u2192", "x":19.5, "y":4} + ] + }, + "LAYOUT_ansi_split_bs_rshift": { + "layout": [ + {"label":"F1", "x":0, "y":0}, + {"label":"F2", "x":1, "y":0}, + {"label":"`~", "x":2.25, "y":0}, + {"label":"1!", "x":3.25, "y":0}, + {"label":"2@", "x":4.25, "y":0}, + {"label":"3#", "x":5.25, "y":0}, + {"label":"4$", "x":6.25, "y":0}, + {"label":"5%", "x":7.25, "y":0}, + {"label":"6^", "x":8.25, "y":0}, + {"label":"7&", "x":9.25, "y":0}, + {"label":"8*", "x":10.25, "y":0}, + {"label":"9(", "x":11.25, "y":0}, + {"label":"0)", "x":12.25, "y":0}, + {"label":"-_", "x":13.25, "y":0}, + {"label":"=+", "x":14.25, "y":0}, + {"label":"Bksp", "x":15.25, "y":0}, + {"label":"Bksp", "x":16.25, "y":0}, + {"label":"Insert", "x":17.5, "y":0}, + {"label":"Home", "x":18.5, "y":0}, + {"label":"PgUp", "x":19.5, "y":0}, + + {"label":"F3", "x":0, "y":1}, + {"label":"F4", "x":1, "y":1}, + {"label":"Tab", "x":2.25, "y":1, "w":1.5}, + {"label":"Q", "x":3.75, "y":1}, + {"label":"W", "x":4.75, "y":1}, + {"label":"E", "x":5.75, "y":1}, + {"label":"R", "x":6.75, "y":1}, + {"label":"T", "x":7.75, "y":1}, + {"label":"Y", "x":8.75, "y":1}, + {"label":"U", "x":9.75, "y":1}, + {"label":"I", "x":10.75, "y":1}, + {"label":"O", "x":11.75, "y":1}, + {"label":"P", "x":12.75, "y":1}, + {"label":"[{", "x":13.75, "y":1}, + {"label":"]}", "x":14.75, "y":1}, + {"label":"\\|", "x":15.75, "y":1, "w":1.5}, + {"label":"Delete", "x":17.5, "y":1}, + {"label":"End", "x":18.5, "y":1}, + {"label":"PgDn", "x":19.5, "y":1}, + + {"label":"F5", "x":0, "y":2}, + {"label":"F6", "x":1, "y":2}, + {"label":"Caps Lock", "x":2.25, "y":2, "w":1.75}, + {"label":"A", "x":4, "y":2}, + {"label":"S", "x":5, "y":2}, + {"label":"D", "x":6, "y":2}, + {"label":"F", "x":7, "y":2}, + {"label":"G", "x":8, "y":2}, + {"label":"H", "x":9, "y":2}, + {"label":"J", "x":10, "y":2}, + {"label":"K", "x":11, "y":2}, + {"label":"L", "x":12, "y":2}, + {"label":";:", "x":13, "y":2}, + {"label":"'\"", "x":14, "y":2}, + {"label":"Enter", "x":15, "y":2, "w":2.25}, + + {"label":"F7", "x":0, "y":3}, + {"label":"F8", "x":1, "y":3}, + {"label":"Shift", "x":2.25, "y":3, "w":2.25}, + {"label":"Z", "x":4.5, "y":3}, + {"label":"X", "x":5.5, "y":3}, + {"label":"C", "x":6.5, "y":3}, + {"label":"V", "x":7.5, "y":3}, + {"label":"B", "x":8.5, "y":3}, + {"label":"N", "x":9.5, "y":3}, + {"label":"M", "x":10.5, "y":3}, + {"label":",<", "x":11.5, "y":3}, + {"label":".>", "x":12.5, "y":3}, + {"label":"/?", "x":13.5, "y":3}, + {"label":"Shift", "x":14.5, "y":3, "w":1.75}, + {"label":"Fn", "x":16.25, "y":3}, + {"label":"\u2191", "x":18.5, "y":3}, + + {"label":"F9", "x":0, "y":4}, + {"label":"F10", "x":1, "y":4}, + {"label":"Ctrl", "x":2.25, "y":4, "w":1.5}, + {"label":"Win", "x":3.75, "y":4}, + {"label":"Alt", "x":4.75, "y":4, "w":1.5}, + {"label":"Space", "x":6.25, "y":4, "w":7}, + {"label":"Alt", "x":13.25, "y":4, "w":1.5}, + {"label":"Win", "x":14.75, "y":4}, + {"label":"Ctrl", "x":15.75, "y":4, "w":1.5}, + {"label":"\u2190", "x":17.5, "y":4}, + {"label":"\u2193", "x":18.5, "y":4}, + {"label":"\u2192", "x":19.5, "y":4} + ] + }, + "LAYOUT_iso": { + "layout": [ + {"label":"F1", "x":0, "y":0}, + {"label":"F2", "x":1, "y":0}, + {"label":"`\u00ac", "x":2.25, "y":0}, + {"label":"1!", "x":3.25, "y":0}, + {"label":"2\"", "x":4.25, "y":0}, + {"label":"3\u00a3", "x":5.25, "y":0}, + {"label":"4$", "x":6.25, "y":0}, + {"label":"5%", "x":7.25, "y":0}, + {"label":"6^", "x":8.25, "y":0}, + {"label":"7&", "x":9.25, "y":0}, + {"label":"8*", "x":10.25, "y":0}, + {"label":"9(", "x":11.25, "y":0}, + {"label":"0)", "x":12.25, "y":0}, + {"label":"-_", "x":13.25, "y":0}, + {"label":"=+", "x":14.25, "y":0}, + {"label":"Bksp", "x":15.25, "y":0, "w":2}, + {"label":"Insert", "x":17.5, "y":0}, + {"label":"Home", "x":18.5, "y":0}, + {"label":"PgUp", "x":19.5, "y":0}, + + {"label":"F3", "x":0, "y":1}, + {"label":"F4", "x":1, "y":1}, + {"label":"Tab", "x":2.25, "y":1, "w":1.5}, + {"label":"Q", "x":3.75, "y":1}, + {"label":"W", "x":4.75, "y":1}, + {"label":"E", "x":5.75, "y":1}, + {"label":"R", "x":6.75, "y":1}, + {"label":"T", "x":7.75, "y":1}, + {"label":"Y", "x":8.75, "y":1}, + {"label":"U", "x":9.75, "y":1}, + {"label":"I", "x":10.75, "y":1}, + {"label":"O", "x":11.75, "y":1}, + {"label":"P", "x":12.75, "y":1}, + {"label":"[{", "x":13.75, "y":1}, + {"label":"]}", "x":14.75, "y":1}, + {"label":"Delete", "x":17.5, "y":1}, + {"label":"End", "x":18.5, "y":1}, + {"label":"PgDn", "x":19.5, "y":1}, + + {"label":"F5", "x":0, "y":2}, + {"label":"F6", "x":1, "y":2}, + {"label":"Caps Lock", "x":2.25, "y":2, "w":1.75}, + {"label":"A", "x":4, "y":2}, + {"label":"S", "x":5, "y":2}, + {"label":"D", "x":6, "y":2}, + {"label":"F", "x":7, "y":2}, + {"label":"G", "x":8, "y":2}, + {"label":"H", "x":9, "y":2}, + {"label":"J", "x":10, "y":2}, + {"label":"K", "x":11, "y":2}, + {"label":"L", "x":12, "y":2}, + {"label":";:", "x":13, "y":2}, + {"label":"'@", "x":14, "y":2}, + {"label":"#~", "x":15, "y":2}, + {"label":"Enter", "x":16, "y":1, "w":1.25, "h":2}, + + {"label":"F7", "x":0, "y":3}, + {"label":"F8", "x":1, "y":3}, + {"label":"Shift", "x":2.25, "y":3, "w":1.25}, + {"label":"\\|", "x":3.5, "y":3}, + {"label":"Z", "x":4.5, "y":3}, + {"label":"X", "x":5.5, "y":3}, + {"label":"C", "x":6.5, "y":3}, + {"label":"V", "x":7.5, "y":3}, + {"label":"B", "x":8.5, "y":3}, + {"label":"N", "x":9.5, "y":3}, + {"label":"M", "x":10.5, "y":3}, + {"label":",<", "x":11.5, "y":3}, + {"label":".>", "x":12.5, "y":3}, + {"label":"/?", "x":13.5, "y":3}, + {"label":"Shift", "x":14.5, "y":3, "w":2.75}, + {"label":"\u2191", "x":18.5, "y":3}, + + {"label":"F9", "x":0, "y":4}, + {"label":"F10", "x":1, "y":4}, + {"label":"Ctrl", "x":2.25, "y":4, "w":1.5}, + {"label":"Win", "x":3.75, "y":4}, + {"label":"Alt", "x":4.75, "y":4, "w":1.5}, + {"label":"Space", "x":6.25, "y":4, "w":7}, + {"label":"Alt", "x":13.25, "y":4, "w":1.5}, + {"label":"Win", "x":14.75, "y":4}, + {"label":"Ctrl", "x":15.75, "y":4, "w":1.5}, + {"label":"\u2190", "x":17.5, "y":4}, + {"label":"\u2193", "x":18.5, "y":4}, + {"label":"\u2192", "x":19.5, "y":4} + ] + }, + "LAYOUT_iso_split_bs_rshift": { + "layout": [ + {"label":"F1", "x":0, "y":0}, + {"label":"F2", "x":1, "y":0}, + {"label":"`\u00ac", "x":2.25, "y":0}, + {"label":"1!", "x":3.25, "y":0}, + {"label":"2\"", "x":4.25, "y":0}, + {"label":"3\u00a3", "x":5.25, "y":0}, + {"label":"4$", "x":6.25, "y":0}, + {"label":"5%", "x":7.25, "y":0}, + {"label":"6^", "x":8.25, "y":0}, + {"label":"7&", "x":9.25, "y":0}, + {"label":"8*", "x":10.25, "y":0}, + {"label":"9(", "x":11.25, "y":0}, + {"label":"0)", "x":12.25, "y":0}, + {"label":"-_", "x":13.25, "y":0}, + {"label":"=+", "x":14.25, "y":0}, + {"label":"Bksp", "x":15.25, "y":0}, + {"label":"Bksp", "x":16.25, "y":0}, + {"label":"Insert", "x":17.5, "y":0}, + {"label":"Home", "x":18.5, "y":0}, + {"label":"PgUp", "x":19.5, "y":0}, + + {"label":"F3", "x":0, "y":1}, + {"label":"F4", "x":1, "y":1}, + {"label":"Tab", "x":2.25, "y":1, "w":1.5}, + {"label":"Q", "x":3.75, "y":1}, + {"label":"W", "x":4.75, "y":1}, + {"label":"E", "x":5.75, "y":1}, + {"label":"R", "x":6.75, "y":1}, + {"label":"T", "x":7.75, "y":1}, + {"label":"Y", "x":8.75, "y":1}, + {"label":"U", "x":9.75, "y":1}, + {"label":"I", "x":10.75, "y":1}, + {"label":"O", "x":11.75, "y":1}, + {"label":"P", "x":12.75, "y":1}, + {"label":"[{", "x":13.75, "y":1}, + {"label":"]}", "x":14.75, "y":1}, + {"label":"Delete", "x":17.5, "y":1}, + {"label":"End", "x":18.5, "y":1}, + {"label":"PgDn", "x":19.5, "y":1}, + + {"label":"F5", "x":0, "y":2}, + {"label":"F6", "x":1, "y":2}, + {"label":"Caps Lock", "x":2.25, "y":2, "w":1.75}, + {"label":"A", "x":4, "y":2}, + {"label":"S", "x":5, "y":2}, + {"label":"D", "x":6, "y":2}, + {"label":"F", "x":7, "y":2}, + {"label":"G", "x":8, "y":2}, + {"label":"H", "x":9, "y":2}, + {"label":"J", "x":10, "y":2}, + {"label":"K", "x":11, "y":2}, + {"label":"L", "x":12, "y":2}, + {"label":";:", "x":13, "y":2}, + {"label":"'@", "x":14, "y":2}, + {"label":"#~", "x":15, "y":2}, + {"label":"Enter", "x":16, "y":1, "w":1.25, "h":2}, + + {"label":"F7", "x":0, "y":3}, + {"label":"F8", "x":1, "y":3}, + {"label":"Shift", "x":2.25, "y":3, "w":1.25}, + {"label":"\\|", "x":3.5, "y":3}, + {"label":"Z", "x":4.5, "y":3}, + {"label":"X", "x":5.5, "y":3}, + {"label":"C", "x":6.5, "y":3}, + {"label":"V", "x":7.5, "y":3}, + {"label":"B", "x":8.5, "y":3}, + {"label":"N", "x":9.5, "y":3}, + {"label":"M", "x":10.5, "y":3}, + {"label":",<", "x":11.5, "y":3}, + {"label":".>", "x":12.5, "y":3}, + {"label":"/?", "x":13.5, "y":3}, + {"label":"Shift", "x":14.5, "y":3, "w":1.75}, + {"label":"Fn", "x":16.25, "y":3}, + {"label":"\u2191", "x":18.5, "y":3}, + + {"label":"F9", "x":0, "y":4}, + {"label":"F10", "x":1, "y":4}, + {"label":"Ctrl", "x":2.25, "y":4, "w":1.5}, + {"label":"Win", "x":3.75, "y":4}, + {"label":"Alt", "x":4.75, "y":4, "w":1.5}, + {"label":"Space", "x":6.25, "y":4, "w":7}, + {"label":"Alt", "x":13.25, "y":4, "w":1.5}, + {"label":"Win", "x":14.75, "y":4}, + {"label":"Ctrl", "x":15.75, "y":4, "w":1.5}, + {"label":"\u2190", "x":17.5, "y":4}, + {"label":"\u2193", "x":18.5, "y":4}, + {"label":"\u2192", "x":19.5, "y":4} + ] } } } diff --git a/keyboards/superuser/ext/keymaps/default/keymap.c b/keyboards/superuser/ext/keymaps/default/keymap.c index cc3259cd587..85a9bb91f6b 100644 --- a/keyboards/superuser/ext/keymaps/default/keymap.c +++ b/keyboards/superuser/ext/keymaps/default/keymap.c @@ -17,14 +17,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_tkl( + [0] = LAYOUT_all( KC_F1, KC_F2, 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_F3, KC_F4, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_F5, KC_F6, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_F7, KC_F8, 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_F9, KC_F10, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), - [1] = LAYOUT_tkl( + [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, diff --git a/keyboards/superuser/ext/keymaps/via/keymap.c b/keyboards/superuser/ext/keymaps/via/keymap.c index 919c45d8843..78b258d526b 100644 --- a/keyboards/superuser/ext/keymaps/via/keymap.c +++ b/keyboards/superuser/ext/keymaps/via/keymap.c @@ -17,28 +17,28 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_tkl( + [0] = LAYOUT_all( KC_F1, KC_F2, 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_F3, KC_F4, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_F5, KC_F6, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_F7, KC_F8, 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_F9, KC_F10, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), - [1] = LAYOUT_tkl( + [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), - [2] = LAYOUT_tkl( + [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), - [3] = LAYOUT_tkl( + [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, diff --git a/keyboards/superuser/ext/readme.md b/keyboards/superuser/ext/readme.md index 1468d21dc15..3abd75faf8e 100644 --- a/keyboards/superuser/ext/readme.md +++ b/keyboards/superuser/ext/readme.md @@ -2,7 +2,7 @@ An EXT TKL PCB supporting 7u bottom row only. -* Keyboard Maintainer: superuser +* Keyboard Maintainer: [kaylanm](https://github.com/kaylanm) * Hardware Supported: superuser ext * Hardware Availability: Group buy diff --git a/keyboards/superuser/tkl/info.json b/keyboards/superuser/tkl/info.json index 0a8f2a3cdec..4ffe5281767 100644 --- a/keyboards/superuser/tkl/info.json +++ b/keyboards/superuser/tkl/info.json @@ -1,10 +1,494 @@ { "keyboard_name": "tkl", "url": "", - "maintainer": "superuser", + "maintainer": "kaylanm", + "layout_aliases": { + "LAYOUT_tkl": "LAYOUT_all" + }, "layouts": { - "LAYOUT": { - "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":2, "y":0}, {"label":"F2", "x":3, "y":0}, {"label":"F3", "x":4, "y":0}, {"label":"F4", "x":5, "y":0}, {"label":"F5", "x":6.5, "y":0}, {"label":"F6", "x":7.5, "y":0}, {"label":"F7", "x":8.5, "y":0}, {"label":"F8", "x":9.5, "y":0}, {"label":"F9", "x":11, "y":0}, {"label":"F10", "x":12, "y":0}, {"label":"F11", "x":13, "y":0}, {"label":"F12", "x":14, "y":0}, {"label":"PrtSc", "x":15.25, "y":0}, {"label":"Scroll Lock", "x":16.25, "y":0}, {"label":"Pause", "x":17.25, "y":0}, {"label":"~", "x":0, "y":1.25}, {"label":"!", "x":1, "y":1.25}, {"label":"@", "x":2, "y":1.25}, {"label":"#", "x":3, "y":1.25}, {"label":"$", "x":4, "y":1.25}, {"label":"%", "x":5, "y":1.25}, {"label":"^", "x":6, "y":1.25}, {"label":"&", "x":7, "y":1.25}, {"label":"*", "x":8, "y":1.25}, {"label":"(", "x":9, "y":1.25}, {"label":")", "x":10, "y":1.25}, {"label":"_", "x":11, "y":1.25}, {"label":"+", "x":12, "y":1.25}, {"label":"Bksp", "x":13, "y":1.25}, {"label":"Bksp", "x":14, "y":1.25}, {"label":"Insert", "x":15.25, "y":1.25}, {"label":"Home", "x":16.25, "y":1.25}, {"label":"PgUp", "x":17.25, "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":6.5, "y":2.25}, {"label":"U", "x":7.5, "y":2.25}, {"label":"I", "x":8.5, "y":2.25}, {"label":"O", "x":9.5, "y":2.25}, {"label":"P", "x":10.5, "y":2.25}, {"label":"{", "x":11.5, "y":2.25}, {"label":"}", "x":12.5, "y":2.25}, {"label":"|", "x":13.5, "y":2.25, "w":1.5}, {"label":"Delete", "x":15.25, "y":2.25}, {"label":"End", "x":16.25, "y":2.25}, {"label":"PgDn", "x":17.25, "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":6.75, "y":3.25}, {"label":"J", "x":7.75, "y":3.25}, {"label":"K", "x":8.75, "y":3.25}, {"label":"L", "x":9.75, "y":3.25}, {"label":":", "x":10.75, "y":3.25}, {"label":"\"", "x":11.75, "y":3.25}, {"label":"Enter", "x":12.75, "y":3.25, "w":2.25}, {"label":"Shift", "x":0, "y":4.25, "w":1.25}, {"label":"|", "x":1.25, "y":4.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":7.25, "y":4.25}, {"label":"M", "x":8.25, "y":4.25}, {"label":"<", "x":9.25, "y":4.25}, {"label":">", "x":10.25, "y":4.25}, {"label":"?", "x":11.25, "y":4.25}, {"label":"Shift", "x":12.25, "y":4.25, "w":1.75}, {"label":"Fn", "x":14, "y":4.25}, {"label":"\u2191", "x":16.25, "y":4.25}, {"label":"Ctrl", "x":0, "y":5.25, "w":1.5}, {"label":"Win", "x":1.5, "y":5.25}, {"label":"Alt", "x":2.5, "y":5.25, "w":1.5}, {"x":4, "y":5.25, "w":7}, {"label":"Alt", "x":11, "y":5.25, "w":1.5}, {"label":"Win", "x":12.5, "y":5.25}, {"label":"Ctrl", "x":13.5, "y":5.25, "w":1.5}, {"label":"\u2190", "x":15.25, "y":5.25}, {"label":"\u2193", "x":16.25, "y":5.25}, {"label":"\u2192", "x":17.25, "y":5.25}] + "LAYOUT_all": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":2, "y":0}, + {"label":"F2", "x":3, "y":0}, + {"label":"F3", "x":4, "y":0}, + {"label":"F4", "x":5, "y":0}, + {"label":"F5", "x":6.5, "y":0}, + {"label":"F6", "x":7.5, "y":0}, + {"label":"F7", "x":8.5, "y":0}, + {"label":"F8", "x":9.5, "y":0}, + {"label":"F9", "x":11, "y":0}, + {"label":"F10", "x":12, "y":0}, + {"label":"F11", "x":13, "y":0}, + {"label":"F12", "x":14, "y":0}, + {"label":"PrtSc", "x":15.25, "y":0}, + {"label":"Scroll Lock", "x":16.25, "y":0}, + {"label":"Pause", "x":17.25, "y":0}, + + {"label":"`~", "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":6, "y":1.25}, + {"label":"7&", "x":7, "y":1.25}, + {"label":"8*", "x":8, "y":1.25}, + {"label":"9(", "x":9, "y":1.25}, + {"label":"0)", "x":10, "y":1.25}, + {"label":"-_", "x":11, "y":1.25}, + {"label":"=+", "x":12, "y":1.25}, + {"label":"Bksp", "x":13, "y":1.25}, + {"label":"Bksp", "x":14, "y":1.25}, + {"label":"Insert", "x":15.25, "y":1.25}, + {"label":"Home", "x":16.25, "y":1.25}, + {"label":"PgUp", "x":17.25, "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":6.5, "y":2.25}, + {"label":"U", "x":7.5, "y":2.25}, + {"label":"I", "x":8.5, "y":2.25}, + {"label":"O", "x":9.5, "y":2.25}, + {"label":"P", "x":10.5, "y":2.25}, + {"label":"[{", "x":11.5, "y":2.25}, + {"label":"]}", "x":12.5, "y":2.25}, + {"label":"\\|", "x":13.5, "y":2.25, "w":1.5}, + {"label":"Delete", "x":15.25, "y":2.25}, + {"label":"End", "x":16.25, "y":2.25}, + {"label":"PgDn", "x":17.25, "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":6.75, "y":3.25}, + {"label":"J", "x":7.75, "y":3.25}, + {"label":"K", "x":8.75, "y":3.25}, + {"label":"L", "x":9.75, "y":3.25}, + {"label":";:", "x":10.75, "y":3.25}, + {"label":"'\"", "x":11.75, "y":3.25}, + {"label":"Enter", "x":12.75, "y":3.25, "w":2.25}, + + {"label":"Shift", "x":0, "y":4.25, "w":1.25}, + {"label":"\\|", "x":1.25, "y":4.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":7.25, "y":4.25}, + {"label":"M", "x":8.25, "y":4.25}, + {"label":",<", "x":9.25, "y":4.25}, + {"label":".>", "x":10.25, "y":4.25}, + {"label":"/?", "x":11.25, "y":4.25}, + {"label":"Shift", "x":12.25, "y":4.25, "w":1.75}, + {"label":"Fn", "x":14, "y":4.25}, + {"label":"\u2191", "x":16.25, "y":4.25}, + + {"label":"Ctrl", "x":0, "y":5.25, "w":1.5}, + {"label":"Win", "x":1.5, "y":5.25}, + {"label":"Alt", "x":2.5, "y":5.25, "w":1.5}, + {"label":"Space", "x":4, "y":5.25, "w":7}, + {"label":"Alt", "x":11, "y":5.25, "w":1.5}, + {"label":"Win", "x":12.5, "y":5.25}, + {"label":"Ctrl", "x":13.5, "y":5.25, "w":1.5}, + {"label":"\u2190", "x":15.25, "y":5.25}, + {"label":"\u2193", "x":16.25, "y":5.25}, + {"label":"\u2192", "x":17.25, "y":5.25} + ] + }, + "LAYOUT_tkl_ansi_tsangan": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":2, "y":0}, + {"label":"F2", "x":3, "y":0}, + {"label":"F3", "x":4, "y":0}, + {"label":"F4", "x":5, "y":0}, + {"label":"F5", "x":6.5, "y":0}, + {"label":"F6", "x":7.5, "y":0}, + {"label":"F7", "x":8.5, "y":0}, + {"label":"F8", "x":9.5, "y":0}, + {"label":"F9", "x":11, "y":0}, + {"label":"F10", "x":12, "y":0}, + {"label":"F11", "x":13, "y":0}, + {"label":"F12", "x":14, "y":0}, + {"label":"PrtSc", "x":15.25, "y":0}, + {"label":"Scroll Lock", "x":16.25, "y":0}, + {"label":"Pause", "x":17.25, "y":0}, + + {"label":"`~", "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":6, "y":1.25}, + {"label":"7&", "x":7, "y":1.25}, + {"label":"8*", "x":8, "y":1.25}, + {"label":"9(", "x":9, "y":1.25}, + {"label":"0)", "x":10, "y":1.25}, + {"label":"-_", "x":11, "y":1.25}, + {"label":"=+", "x":12, "y":1.25}, + {"label":"Bksp", "x":13, "y":1.25, "w":2}, + {"label":"Insert", "x":15.25, "y":1.25}, + {"label":"Home", "x":16.25, "y":1.25}, + {"label":"PgUp", "x":17.25, "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":6.5, "y":2.25}, + {"label":"U", "x":7.5, "y":2.25}, + {"label":"I", "x":8.5, "y":2.25}, + {"label":"O", "x":9.5, "y":2.25}, + {"label":"P", "x":10.5, "y":2.25}, + {"label":"[{", "x":11.5, "y":2.25}, + {"label":"]}", "x":12.5, "y":2.25}, + {"label":"\\|", "x":13.5, "y":2.25, "w":1.5}, + {"label":"Delete", "x":15.25, "y":2.25}, + {"label":"End", "x":16.25, "y":2.25}, + {"label":"PgDn", "x":17.25, "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":6.75, "y":3.25}, + {"label":"J", "x":7.75, "y":3.25}, + {"label":"K", "x":8.75, "y":3.25}, + {"label":"L", "x":9.75, "y":3.25}, + {"label":";:", "x":10.75, "y":3.25}, + {"label":"'\"", "x":11.75, "y":3.25}, + {"label":"Enter", "x":12.75, "y":3.25, "w":2.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":7.25, "y":4.25}, + {"label":"M", "x":8.25, "y":4.25}, + {"label":",<", "x":9.25, "y":4.25}, + {"label":".>", "x":10.25, "y":4.25}, + {"label":"/?", "x":11.25, "y":4.25}, + {"label":"Shift", "x":12.25, "y":4.25, "w":2.75}, + {"label":"\u2191", "x":16.25, "y":4.25}, + + {"label":"Ctrl", "x":0, "y":5.25, "w":1.5}, + {"label":"Win", "x":1.5, "y":5.25}, + {"label":"Alt", "x":2.5, "y":5.25, "w":1.5}, + {"label":"Space", "x":4, "y":5.25, "w":7}, + {"label":"Alt", "x":11, "y":5.25, "w":1.5}, + {"label":"Win", "x":12.5, "y":5.25}, + {"label":"Ctrl", "x":13.5, "y":5.25, "w":1.5}, + {"label":"\u2190", "x":15.25, "y":5.25}, + {"label":"\u2193", "x":16.25, "y":5.25}, + {"label":"\u2192", "x":17.25, "y":5.25} + ] + }, + "LAYOUT_tkl_ansi_tsangan_split_bs_rshift": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":2, "y":0}, + {"label":"F2", "x":3, "y":0}, + {"label":"F3", "x":4, "y":0}, + {"label":"F4", "x":5, "y":0}, + {"label":"F5", "x":6.5, "y":0}, + {"label":"F6", "x":7.5, "y":0}, + {"label":"F7", "x":8.5, "y":0}, + {"label":"F8", "x":9.5, "y":0}, + {"label":"F9", "x":11, "y":0}, + {"label":"F10", "x":12, "y":0}, + {"label":"F11", "x":13, "y":0}, + {"label":"F12", "x":14, "y":0}, + {"label":"PrtSc", "x":15.25, "y":0}, + {"label":"Scroll Lock", "x":16.25, "y":0}, + {"label":"Pause", "x":17.25, "y":0}, + + {"label":"`~", "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":6, "y":1.25}, + {"label":"7&", "x":7, "y":1.25}, + {"label":"8*", "x":8, "y":1.25}, + {"label":"9(", "x":9, "y":1.25}, + {"label":"0)", "x":10, "y":1.25}, + {"label":"-_", "x":11, "y":1.25}, + {"label":"=+", "x":12, "y":1.25}, + {"label":"Bksp", "x":13, "y":1.25}, + {"label":"Bksp", "x":14, "y":1.25}, + {"label":"Insert", "x":15.25, "y":1.25}, + {"label":"Home", "x":16.25, "y":1.25}, + {"label":"PgUp", "x":17.25, "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":6.5, "y":2.25}, + {"label":"U", "x":7.5, "y":2.25}, + {"label":"I", "x":8.5, "y":2.25}, + {"label":"O", "x":9.5, "y":2.25}, + {"label":"P", "x":10.5, "y":2.25}, + {"label":"[{", "x":11.5, "y":2.25}, + {"label":"]}", "x":12.5, "y":2.25}, + {"label":"\\|", "x":13.5, "y":2.25, "w":1.5}, + {"label":"Delete", "x":15.25, "y":2.25}, + {"label":"End", "x":16.25, "y":2.25}, + {"label":"PgDn", "x":17.25, "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":6.75, "y":3.25}, + {"label":"J", "x":7.75, "y":3.25}, + {"label":"K", "x":8.75, "y":3.25}, + {"label":"L", "x":9.75, "y":3.25}, + {"label":";:", "x":10.75, "y":3.25}, + {"label":"'\"", "x":11.75, "y":3.25}, + {"label":"Enter", "x":12.75, "y":3.25, "w":2.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":7.25, "y":4.25}, + {"label":"M", "x":8.25, "y":4.25}, + {"label":",<", "x":9.25, "y":4.25}, + {"label":".>", "x":10.25, "y":4.25}, + {"label":"/?", "x":11.25, "y":4.25}, + {"label":"Shift", "x":12.25, "y":4.25, "w":1.75}, + {"label":"Fn", "x":14, "y":4.25}, + {"label":"\u2191", "x":16.25, "y":4.25}, + + {"label":"Ctrl", "x":0, "y":5.25, "w":1.5}, + {"label":"Win", "x":1.5, "y":5.25}, + {"label":"Alt", "x":2.5, "y":5.25, "w":1.5}, + {"label":"Space", "x":4, "y":5.25, "w":7}, + {"label":"Alt", "x":11, "y":5.25, "w":1.5}, + {"label":"Win", "x":12.5, "y":5.25}, + {"label":"Ctrl", "x":13.5, "y":5.25, "w":1.5}, + {"label":"\u2190", "x":15.25, "y":5.25}, + {"label":"\u2193", "x":16.25, "y":5.25}, + {"label":"\u2192", "x":17.25, "y":5.25} + ] + }, + "LAYOUT_tkl_iso_tsangan": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":2, "y":0}, + {"label":"F2", "x":3, "y":0}, + {"label":"F3", "x":4, "y":0}, + {"label":"F4", "x":5, "y":0}, + {"label":"F5", "x":6.5, "y":0}, + {"label":"F6", "x":7.5, "y":0}, + {"label":"F7", "x":8.5, "y":0}, + {"label":"F8", "x":9.5, "y":0}, + {"label":"F9", "x":11, "y":0}, + {"label":"F10", "x":12, "y":0}, + {"label":"F11", "x":13, "y":0}, + {"label":"F12", "x":14, "y":0}, + {"label":"PrtSc", "x":15.25, "y":0}, + {"label":"Scroll Lock", "x":16.25, "y":0}, + {"label":"Pause", "x":17.25, "y":0}, + + {"label":"`\u00ac", "x":0, "y":1.25}, + {"label":"1!", "x":1, "y":1.25}, + {"label":"2\"", "x":2, "y":1.25}, + {"label":"3\u00a3", "x":3, "y":1.25}, + {"label":"4$", "x":4, "y":1.25}, + {"label":"5%", "x":5, "y":1.25}, + {"label":"6^", "x":6, "y":1.25}, + {"label":"7&", "x":7, "y":1.25}, + {"label":"8*", "x":8, "y":1.25}, + {"label":"9(", "x":9, "y":1.25}, + {"label":"0)", "x":10, "y":1.25}, + {"label":"-_", "x":11, "y":1.25}, + {"label":"=+", "x":12, "y":1.25}, + {"label":"Bksp", "x":13, "y":1.25, "w":2}, + {"label":"Insert", "x":15.25, "y":1.25}, + {"label":"Home", "x":16.25, "y":1.25}, + {"label":"PgUp", "x":17.25, "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":6.5, "y":2.25}, + {"label":"U", "x":7.5, "y":2.25}, + {"label":"I", "x":8.5, "y":2.25}, + {"label":"O", "x":9.5, "y":2.25}, + {"label":"P", "x":10.5, "y":2.25}, + {"label":"[{", "x":11.5, "y":2.25}, + {"label":"]}", "x":12.5, "y":2.25}, + {"label":"Delete", "x":15.25, "y":2.25}, + {"label":"End", "x":16.25, "y":2.25}, + {"label":"PgDn", "x":17.25, "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":6.75, "y":3.25}, + {"label":"J", "x":7.75, "y":3.25}, + {"label":"K", "x":8.75, "y":3.25}, + {"label":"L", "x":9.75, "y":3.25}, + {"label":";:", "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":2.25, "w":1.25, "h":2}, + + {"label":"Shift", "x":0, "y":4.25, "w":1.25}, + {"label":"\\|", "x":1.25, "y":4.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":7.25, "y":4.25}, + {"label":"M", "x":8.25, "y":4.25}, + {"label":",<", "x":9.25, "y":4.25}, + {"label":".>", "x":10.25, "y":4.25}, + {"label":"/?", "x":11.25, "y":4.25}, + {"label":"Shift", "x":12.25, "y":4.25, "w":2.75}, + {"label":"\u2191", "x":16.25, "y":4.25}, + + {"label":"Ctrl", "x":0, "y":5.25, "w":1.5}, + {"label":"Win", "x":1.5, "y":5.25}, + {"label":"Alt", "x":2.5, "y":5.25, "w":1.5}, + {"label":"Space", "x":4, "y":5.25, "w":7}, + {"label":"Alt", "x":11, "y":5.25, "w":1.5}, + {"label":"Win", "x":12.5, "y":5.25}, + {"label":"Ctrl", "x":13.5, "y":5.25, "w":1.5}, + {"label":"\u2190", "x":15.25, "y":5.25}, + {"label":"\u2193", "x":16.25, "y":5.25}, + {"label":"\u2192", "x":17.25, "y":5.25} + ] + }, + "LAYOUT_tkl_iso_tsangan_split_bs_rshift": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":2, "y":0}, + {"label":"F2", "x":3, "y":0}, + {"label":"F3", "x":4, "y":0}, + {"label":"F4", "x":5, "y":0}, + {"label":"F5", "x":6.5, "y":0}, + {"label":"F6", "x":7.5, "y":0}, + {"label":"F7", "x":8.5, "y":0}, + {"label":"F8", "x":9.5, "y":0}, + {"label":"F9", "x":11, "y":0}, + {"label":"F10", "x":12, "y":0}, + {"label":"F11", "x":13, "y":0}, + {"label":"F12", "x":14, "y":0}, + {"label":"PrtSc", "x":15.25, "y":0}, + {"label":"Scroll Lock", "x":16.25, "y":0}, + {"label":"Pause", "x":17.25, "y":0}, + + {"label":"`\u00ac", "x":0, "y":1.25}, + {"label":"1!", "x":1, "y":1.25}, + {"label":"2\"", "x":2, "y":1.25}, + {"label":"3\u00a3", "x":3, "y":1.25}, + {"label":"4$", "x":4, "y":1.25}, + {"label":"5%", "x":5, "y":1.25}, + {"label":"6^", "x":6, "y":1.25}, + {"label":"7&", "x":7, "y":1.25}, + {"label":"8*", "x":8, "y":1.25}, + {"label":"9(", "x":9, "y":1.25}, + {"label":"0)", "x":10, "y":1.25}, + {"label":"-_", "x":11, "y":1.25}, + {"label":"=+", "x":12, "y":1.25}, + {"label":"Bksp", "x":13, "y":1.25}, + {"label":"Bksp", "x":14, "y":1.25}, + {"label":"Insert", "x":15.25, "y":1.25}, + {"label":"Home", "x":16.25, "y":1.25}, + {"label":"PgUp", "x":17.25, "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":6.5, "y":2.25}, + {"label":"U", "x":7.5, "y":2.25}, + {"label":"I", "x":8.5, "y":2.25}, + {"label":"O", "x":9.5, "y":2.25}, + {"label":"P", "x":10.5, "y":2.25}, + {"label":"[{", "x":11.5, "y":2.25}, + {"label":"]}", "x":12.5, "y":2.25}, + {"label":"Delete", "x":15.25, "y":2.25}, + {"label":"End", "x":16.25, "y":2.25}, + {"label":"PgDn", "x":17.25, "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":6.75, "y":3.25}, + {"label":"J", "x":7.75, "y":3.25}, + {"label":"K", "x":8.75, "y":3.25}, + {"label":"L", "x":9.75, "y":3.25}, + {"label":";:", "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":2.25, "w":1.25, "h":2}, + + {"label":"Shift", "x":0, "y":4.25, "w":1.25}, + {"label":"\\|", "x":1.25, "y":4.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":7.25, "y":4.25}, + {"label":"M", "x":8.25, "y":4.25}, + {"label":",<", "x":9.25, "y":4.25}, + {"label":".>", "x":10.25, "y":4.25}, + {"label":"/?", "x":11.25, "y":4.25}, + {"label":"Shift", "x":12.25, "y":4.25, "w":1.75}, + {"label":"Fn", "x":14, "y":4.25}, + {"label":"\u2191", "x":16.25, "y":4.25}, + + {"label":"Ctrl", "x":0, "y":5.25, "w":1.5}, + {"label":"Win", "x":1.5, "y":5.25}, + {"label":"Alt", "x":2.5, "y":5.25, "w":1.5}, + {"label":"Space", "x":4, "y":5.25, "w":7}, + {"label":"Alt", "x":11, "y":5.25, "w":1.5}, + {"label":"Win", "x":12.5, "y":5.25}, + {"label":"Ctrl", "x":13.5, "y":5.25, "w":1.5}, + {"label":"\u2190", "x":15.25, "y":5.25}, + {"label":"\u2193", "x":16.25, "y":5.25}, + {"label":"\u2192", "x":17.25, "y":5.25} + ] } } } diff --git a/keyboards/superuser/tkl/keymaps/default/keymap.c b/keyboards/superuser/tkl/keymaps/default/keymap.c index 6eada87c843..b0ab538247c 100644 --- a/keyboards/superuser/tkl/keymaps/default/keymap.c +++ b/keyboards/superuser/tkl/keymaps/default/keymap.c @@ -17,7 +17,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_tkl( + [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, @@ -25,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), - [1] = LAYOUT_tkl( + [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, diff --git a/keyboards/superuser/tkl/keymaps/via/keymap.c b/keyboards/superuser/tkl/keymaps/via/keymap.c index f828ccc5150..a2bea4e6e11 100644 --- a/keyboards/superuser/tkl/keymaps/via/keymap.c +++ b/keyboards/superuser/tkl/keymaps/via/keymap.c @@ -17,7 +17,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_tkl( + [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, @@ -25,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), - [1] = LAYOUT_tkl( + [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, @@ -33,7 +33,7 @@ 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_tkl( + [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, @@ -41,7 +41,7 @@ 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_tkl( + [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, diff --git a/keyboards/superuser/tkl/readme.md b/keyboards/superuser/tkl/readme.md index be5a2cc3a52..1c9ad5b3cc4 100644 --- a/keyboards/superuser/tkl/readme.md +++ b/keyboards/superuser/tkl/readme.md @@ -2,7 +2,7 @@ An F12 TKL PCB supporting 7u bottom row only. -* Keyboard Maintainer: superuser +* Keyboard Maintainer: [kaylanm](https://github.com/kaylanm) * Hardware Supported: superuser tkl * Hardware Availability: Group buy diff --git a/keyboards/superuser/tkl/tkl.h b/keyboards/superuser/tkl/tkl.h index 31ed941d3e6..e84cd597375 100644 --- a/keyboards/superuser/tkl/tkl.h +++ b/keyboards/superuser/tkl/tkl.h @@ -17,18 +17,100 @@ #include "quantum.h" -#define LAYOUT_tkl(\ - K000, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, \ - K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K312, K114, K115, K116, \ - K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, K216, \ - K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, \ - K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, K415, \ - K500, K501, K502, K506, K511, K512, K513, K514, K515, K516 \ +#define ___ KC_NO +/* + * ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ + * │00 │ │02 │03 │04 │05 │ │06 │07 │08 │09 │ │0A │0B │0C │0D │ │0E │0F │0G │ + * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐ ┌───────┐ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │3C │ │1E │1F │1G │ │1D │ 2u Backspace + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤ └─┬─────┤ + * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2D │ │2E │2F │2G │ │ │ + * 2.25u ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ ┌──┴┐3D │ ISO Enter + * LShift │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3D │ │2D │ │ + * ┌────────┐ ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ ┌─┴───┴────┤ + * │40 │ │40 │41 │42 │43 │44 │45 │46 │47 │48 │49 │4A │4B │4C │4D │ │4F │ │4C │ 2.75u RShift + * └────────┘ ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐ └──────────┘ + * │50 │51 │52 │56 │5B │5C │5D │ │5E │5F │5G │ + * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ + */ + +#define LAYOUT_all(\ + K00, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K3C, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4F, \ + K50, K51, K52, K56, K5B, K5C, K5D, K5E, K5F, K5G \ +) { \ + { K00, ___, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, ___, ___, ___ }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, ___, K4F, ___ }, \ + { K50, K51, K52, ___, ___, ___, K56, ___, ___, ___, ___, K5B, K5C, K5D, K5E, K5F, K5G } \ +} + +#define LAYOUT_tkl_ansi_tsangan( \ + K00, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \ + K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4F, \ + K50, K51, K52, K56, K5B, K5C, K5D, K5E, K5F, K5G \ +) { \ + { K00, ___, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, ___, K3D, ___, ___, ___ }, \ + { K40, ___, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, ___, ___, K4F, ___ }, \ + { K50, K51, K52, ___, ___, ___, K56, ___, ___, ___, ___, K5B, K5C, K5D, K5E, K5F, K5G } \ +} + +#define LAYOUT_tkl_ansi_tsangan_split_bs_rshift( \ + K00, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K3C, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \ + K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4F, \ + K50, K51, K52, K56, K5B, K5C, K5D, K5E, K5F, K5G \ +) { \ + { K00, ___, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, ___, ___, ___ }, \ + { K40, ___, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, ___, K4F, ___ }, \ + { K50, K51, K52, ___, ___, ___, K56, ___, ___, ___, ___, K5B, K5C, K5D, K5E, K5F, K5G } \ +} + +#define LAYOUT_tkl_iso_tsangan( \ + K00, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, K2F, K2G, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K2D, K3D, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4F, \ + K50, K51, K52, K56, K5B, K5C, K5D, K5E, K5F, K5G \ +) { \ + { K00, ___, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, ___, K3D, ___, ___, ___ }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, ___, ___, K4F, ___ }, \ + { K50, K51, K52, ___, ___, ___, K56, ___, ___, ___, ___, K5B, K5C, K5D, K5E, K5F, K5G } \ +} + +#define LAYOUT_tkl_iso_tsangan_split_bs_rshift( \ + K00, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K3C, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, K2F, K2G, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K2D, K3D, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4F, \ + K50, K51, K52, K56, K5B, K5C, K5D, K5E, K5F, K5G \ ) { \ - { K000, KC_NO, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016 }, \ - { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K116 }, \ - { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, K216 }, \ - { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, KC_NO, KC_NO, KC_NO }, \ - { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, KC_NO, K415, KC_NO }, \ - { K500, K501, K502, KC_NO, KC_NO, KC_NO, K506, KC_NO, KC_NO, KC_NO, KC_NO, K511, K512, K513, K514, K515, K516 } \ + { K00, ___, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, ___, ___, ___ }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, ___, K4F, ___ }, \ + { K50, K51, K52, ___, ___, ___, K56, ___, ___, ___, ___, K5B, K5C, K5D, K5E, K5F, K5G } \ } diff --git a/keyboards/switchplate/southpaw_65/config.h b/keyboards/switchplate/southpaw_65/config.h index ee6567b23ab..7512e0e2b38 100644 --- a/keyboards/switchplate/southpaw_65/config.h +++ b/keyboards/switchplate/southpaw_65/config.h @@ -112,58 +112,6 @@ */ //#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_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) - -/* control how magic key switches layers */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false - -/* override magic key keymap */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM -//#define MAGIC_KEY_HELP1 H -//#define MAGIC_KEY_HELP2 SLASH -//#define MAGIC_KEY_DEBUG D -//#define MAGIC_KEY_DEBUG_MATRIX X -//#define MAGIC_KEY_DEBUG_KBD K -//#define MAGIC_KEY_DEBUG_MOUSE M -//#define MAGIC_KEY_VERSION V -//#define MAGIC_KEY_STATUS S -//#define MAGIC_KEY_CONSOLE C -//#define MAGIC_KEY_LAYER0_ALT1 ESC -//#define MAGIC_KEY_LAYER0_ALT2 GRAVE -//#define MAGIC_KEY_LAYER0 0 -//#define MAGIC_KEY_LAYER1 1 -//#define MAGIC_KEY_LAYER2 2 -//#define MAGIC_KEY_LAYER3 3 -//#define MAGIC_KEY_LAYER4 4 -//#define MAGIC_KEY_LAYER5 5 -//#define MAGIC_KEY_LAYER6 6 -//#define MAGIC_KEY_LAYER7 7 -//#define MAGIC_KEY_LAYER8 8 -//#define MAGIC_KEY_LAYER9 9 -//#define MAGIC_KEY_BOOTLOADER PAUSE -//#define MAGIC_KEY_LOCK CAPS -//#define MAGIC_KEY_EEPROM E -//#define MAGIC_KEY_NKRO N -//#define MAGIC_KEY_SLEEP_LED Z - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/switchplate/southpaw_65/rules.mk b/keyboards/switchplate/southpaw_65/rules.mk index c10c24612af..baade350b0a 100644 --- a/keyboards/switchplate/southpaw_65/rules.mk +++ b/keyboards/switchplate/southpaw_65/rules.mk @@ -18,7 +18,6 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = no # USB Nkey Rollover BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output LTO_ENABLE = yes diff --git a/keyboards/switchplate/southpaw_fullsize/config.h b/keyboards/switchplate/southpaw_fullsize/config.h index c319b54ce18..c15cb1d0be0 100644 --- a/keyboards/switchplate/southpaw_fullsize/config.h +++ b/keyboards/switchplate/southpaw_fullsize/config.h @@ -62,59 +62,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -/* - * 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. diff --git a/keyboards/tada68/rules.mk b/keyboards/tada68/rules.mk index d5d5ce6ce7e..e639cb49617 100755 --- a/keyboards/tada68/rules.mk +++ b/keyboards/tada68/rules.mk @@ -22,6 +22,5 @@ NKRO_ENABLE = yes # USB Nkey Rollover BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -UNICODE_ENABLE = no # Unicode LAYOUTS = 65_ansi 65_iso diff --git a/keyboards/takashicompany/center_enter/center_enter.c b/keyboards/takashicompany/center_enter/center_enter.c new file mode 100644 index 00000000000..4973e6a643e --- /dev/null +++ b/keyboards/takashicompany/center_enter/center_enter.c @@ -0,0 +1,17 @@ +/* Copyright 2021 takashicompany + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 "center_enter.h" diff --git a/keyboards/takashicompany/center_enter/center_enter.h b/keyboards/takashicompany/center_enter/center_enter.h new file mode 100644 index 00000000000..0bd576f4328 --- /dev/null +++ b/keyboards/takashicompany/center_enter/center_enter.h @@ -0,0 +1,37 @@ +/* Copyright 2021 takashicompany + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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( \ + k00, k01, k02, k03, k04, k05, 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 \ +) { \ + { k00, k01, k02, k03, k04, k05, KC_NO, 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 } \ +} diff --git a/keyboards/takashicompany/center_enter/config.h b/keyboards/takashicompany/center_enter/config.h new file mode 100644 index 00000000000..94868bde1e7 --- /dev/null +++ b/keyboards/takashicompany/center_enter/config.h @@ -0,0 +1,153 @@ +/* +Copyright 2021 takashicompany + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 0x7463 // tc = takashicompany +#define PRODUCT_ID 0x0012 +#define DEVICE_VER 0x0001 +#define MANUFACTURER takashicompany +#define PRODUCT Center x Enter + +/* key matrix size */ +#define MATRIX_ROWS 3 +#define MATRIX_COLS 12 + +/* + * 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 { E6, B4, B5 } +#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, D7, B2, B6, D0, D4, C6} +#define UNUSED_PINS + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +#define ENCODER_RESOLUTION 1 +#define ENCODERS_PAD_A { D2 } +#define ENCODERS_PAD_B { D1 } + +/* + * 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 LED_NUM_LOCK_PIN B0 +//#define LED_CAPS_LOCK_PIN B1 +//#define LED_SCROLL_LOCK_PIN B2 +//#define LED_COMPOSE_PIN B3 +//#define LED_KANA_PIN B4 + +//#define BACKLIGHT_PIN B7 +//#define BACKLIGHT_LEVELS 3 +//#define BACKLIGHT_BREATHING + +#define RGB_DI_PIN D3 +#ifdef RGB_DI_PIN +# define RGBLED_NUM 16 +# define RGBLIGHT_HUE_STEP 8 +# define RGBLIGHT_SAT_STEP 8 +# define RGBLIGHT_VAL_STEP 8 +# define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ +# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +# 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/takashicompany/center_enter/info.json b/keyboards/takashicompany/center_enter/info.json new file mode 100644 index 00000000000..f0f3af1f390 --- /dev/null +++ b/keyboards/takashicompany/center_enter/info.json @@ -0,0 +1,191 @@ +{ + "keyboard_name": "Center x Enter", + "url": "", + "maintainer": "takashicompany", + "layouts": { + "LAYOUT": { + "layout": [ + { + "label": "201", + "x": 0, + "y": 0, + "w": 1.5 + }, + { + "label": "1", + "x": 1.5, + "y": 0 + }, + { + "label": "2", + "x": 2.5, + "y": 0 + }, + { + "label": "3", + "x": 3.5, + "y": 0 + }, + { + "label": "4", + "x": 4.5, + "y": 0 + }, + { + "label": "5", + "x": 5.5, + "y": 0 + }, + { + "label": "901", + "x": 6.75, + "y": 0, + "w": 1.25, + "h": 2 + }, + { + "label": "6", + "x": 8, + "y": 0 + }, + { + "label": "7", + "x": 9, + "y": 0 + }, + { + "label": "8", + "x": 10, + "y": 0 + }, + { + "label": "9", + "x": 11, + "y": 0 + }, + { + "label": "10", + "x": 12, + "y": 0 + }, + { + "label": "301", + "x": 0, + "y": 1, + "w": 1.75 + }, + { + "label": "11", + "x": 1.75, + "y": 1 + }, + { + "label": "12", + "x": 2.75, + "y": 1 + }, + { + "label": "13", + "x": 3.75, + "y": 1 + }, + { + "label": "14", + "x": 4.75, + "y": 1 + }, + { + "label": "15", + "x": 5.75, + "y": 1 + }, + { + "label": "16", + "x": 8, + "y": 1 + }, + { + "label": "17", + "x": 9, + "y": 1 + }, + { + "label": "18", + "x": 10, + "y": 1 + }, + { + "label": "19", + "x": 11, + "y": 1 + }, + { + "label": "20", + "x": 12, + "y": 1 + }, + { + "label": "401", + "x": 0, + "y": 2, + "w": 2 + }, + { + "label": "21", + "x": 2, + "y": 2 + }, + { + "label": "22", + "x": 3, + "y": 2 + }, + { + "label": "23", + "x": 4, + "y": 2 + }, + { + "label": "24", + "x": 5, + "y": 2 + }, + { + "label": "25", + "x": 6, + "y": 2 + }, + { + "label": "31", + "x": 7, + "y": 2 + }, + { + "label": "26", + "x": 8, + "y": 2 + }, + { + "label": "27", + "x": 9, + "y": 2 + }, + { + "label": "28", + "x": 10, + "y": 2 + }, + { + "label": "29", + "x": 11, + "y": 2 + }, + { + "label": "30", + "x": 12, + "y": 2 + } + ] + } + } +} \ No newline at end of file diff --git a/keyboards/takashicompany/center_enter/keymaps/default/keymap.c b/keyboards/takashicompany/center_enter/keymaps/default/keymap.c new file mode 100644 index 00000000000..1003d0558cf --- /dev/null +++ b/keyboards/takashicompany/center_enter/keymaps/default/keymap.c @@ -0,0 +1,97 @@ +/* Copyright 2021 takashicompany + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 the keycodes used by our macros in process_record_user +enum custom_keycodes { + SWITCH_LANG +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + LAYOUT( + KC_TAB, LT(2, KC_Q), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, ALT_T(KC_P), + KC_LCTL, KC_A, KC_S, LT(2, KC_D), KC_F, KC_G, SWITCH_LANG, KC_H, KC_J, LT(2, KC_K), KC_L, KC_ENT, + KC_LSFT, KC_Z, GUI_T(KC_X), ALT_T(KC_C), LT(1, KC_V), KC_B, KC_SPC, KC_N, LT(1, KC_M), KC_COMM, CTL_T(KC_DOT), KC_BSPC + ), + + LAYOUT( + KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_TRNS, KC_EQL, KC_LBRC, KC_SLSH, KC_MINS, KC_RO, KC_TRNS, KC_SCLN, KC_QUOT, KC_RBRC, KC_NUHS, KC_JYEN, + KC_TRNS, KC_LSFT, KC_LGUI, KC_LALT, KC_LANG2, KC_LSFT, KC_TRNS, KC_SPC, KC_LANG1, KC_TRNS, KC_TRNS, KC_DEL + ), + + LAYOUT( + KC_TRNS, KC_ESC, KC_TAB, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, + KC_TRNS, KC_LCTL, KC_TRNS, KC_QUES, KC_EXLM, KC_NO, KC_TRNS, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, + KC_TRNS, KC_LSFT, KC_LGUI, KC_LALT, KC_LANG2, KC_TRNS, KC_TRNS, KC_TRNS, KC_LANG1, KC_NO, MO(3), KC_DEL + ), + + LAYOUT( + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, + KC_TRNS, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, + KC_TRNS, RGB_M_K, RGB_M_X, RGB_M_G, RGB_M_T, RGB_M_T, KC_TRNS, KC_F11, KC_F12, KC_CAPS, KC_NO, KC_NO + ), + + 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, 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, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO + ), +}; + +bool is_lang1 = false; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case SWITCH_LANG: + if (record->event.pressed) { + + if (is_lang1) { + register_code(KC_LANG1); + is_lang1 = false; + } + else { + register_code(KC_LANG2); + is_lang1 = true; + } + } + break; + case KC_LANG1: + if (record->event.pressed) { + is_lang1 = false; + } + break; + + case KC_LANG2: + if (record->event.pressed) { + is_lang1 = true; + } + break; + } + return true; +} + +bool encoder_update_user(uint8_t index, bool clockwise) { + + if (clockwise) { + tap_code(KC_MS_WH_UP); + } else { + tap_code(KC_MS_WH_DOWN); + } + + return true; +} diff --git a/keyboards/takashicompany/center_enter/keymaps/via/config.h b/keyboards/takashicompany/center_enter/keymaps/via/config.h new file mode 100644 index 00000000000..ec7c614382d --- /dev/null +++ b/keyboards/takashicompany/center_enter/keymaps/via/config.h @@ -0,0 +1 @@ +#define DYNAMIC_KEYMAP_LAYER_COUNT 8 \ No newline at end of file diff --git a/keyboards/takashicompany/center_enter/keymaps/via/keymap.c b/keyboards/takashicompany/center_enter/keymaps/via/keymap.c new file mode 100644 index 00000000000..cc11ca18a81 --- /dev/null +++ b/keyboards/takashicompany/center_enter/keymaps/via/keymap.c @@ -0,0 +1,91 @@ +/* Copyright 2021 takashicompany + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 the keycodes used by our macros in process_record_user +enum custom_keycodes { + SWITCH_LANG +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + LAYOUT( + KC_TAB, LT(2, KC_Q), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, ALT_T(KC_P), + KC_LCTL, KC_A, KC_S, LT(2, KC_D), KC_F, KC_G, SWITCH_LANG, KC_H, KC_J, LT(2, KC_K), KC_L, KC_ENT, + KC_LSFT, KC_Z, GUI_T(KC_X), ALT_T(KC_C), LT(1, KC_V), KC_B, KC_SPC, KC_N, LT(1, KC_M), KC_COMM, CTL_T(KC_DOT), KC_BSPC + ), + + LAYOUT( + KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_TRNS, KC_EQL, KC_LBRC, KC_SLSH, KC_MINS, KC_RO, KC_TRNS, KC_SCLN, KC_QUOT, KC_RBRC, KC_NUHS, KC_JYEN, + KC_TRNS, KC_LSFT, KC_LGUI, KC_LALT, KC_LANG2, KC_LSFT, KC_TRNS, KC_SPC, KC_LANG1, KC_TRNS, KC_TRNS, KC_DEL + ), + + LAYOUT( + KC_TRNS, KC_ESC, KC_TAB, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, + KC_TRNS, KC_LCTL, KC_TRNS, KC_QUES, KC_EXLM, KC_NO, KC_TRNS, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, + KC_TRNS, KC_LSFT, KC_LGUI, KC_LALT, KC_LANG2, KC_TRNS, KC_TRNS, KC_TRNS, KC_LANG1, KC_NO, MO(3), KC_DEL + ), + + LAYOUT( + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, + KC_TRNS, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, + KC_TRNS, RGB_M_K, RGB_M_X, RGB_M_G, RGB_M_T, RGB_M_T, KC_TRNS, KC_F11, KC_F12, KC_CAPS, KC_NO, KC_NO + ) +}; + +bool is_lang1 = false; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case SWITCH_LANG: + if (record->event.pressed) { + + if (is_lang1) { + register_code(KC_LANG1); + is_lang1 = false; + } + else { + register_code(KC_LANG2); + is_lang1 = true; + } + } + break; + case KC_LANG1: + if (record->event.pressed) { + is_lang1 = false; + } + break; + + case KC_LANG2: + if (record->event.pressed) { + is_lang1 = true; + } + break; + } + return true; +} + +bool encoder_update_user(uint8_t index, bool clockwise) { + + if (clockwise) { + tap_code(KC_MS_WH_UP); + } else { + tap_code(KC_MS_WH_DOWN); + } + + return true; +} diff --git a/keyboards/takashicompany/center_enter/keymaps/via/rules.mk b/keyboards/takashicompany/center_enter/keymaps/via/rules.mk new file mode 100644 index 00000000000..036bd6d1c3e --- /dev/null +++ b/keyboards/takashicompany/center_enter/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/takashicompany/center_enter/readme.md b/keyboards/takashicompany/center_enter/readme.md new file mode 100644 index 00000000000..d8db5cc7eb3 --- /dev/null +++ b/keyboards/takashicompany/center_enter/readme.md @@ -0,0 +1,29 @@ +# Center x Enter + +![image](https://raw.githubusercontent.com/takashicompany/center-enter/master/images/qmk.jpg) + +A 30% keyboard with the enter key placed in the center. +Option to install a rotary encoder is also available. +VIA (Remap) is also supported. + +* Keyboard Maintainer: [takashicompany](https://github.com/takashicompany) +* Hardware Supported: Center x Enter PCB, Pro Micro +* Hardware Availability: https://github.com/takashicompany/center-enter + +Make example for this keyboard (after setting up your build environment): + + make takashicompany/center_enter:default + +Flashing example for this keyboard: + + make takashicompany/center_enter: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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `RESET` if it is available diff --git a/keyboards/takashicompany/center_enter/rules.mk b/keyboards/takashicompany/center_enter/rules.mk new file mode 100644 index 00000000000..d8e321ce2ec --- /dev/null +++ b/keyboards/takashicompany/center_enter/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output + +ENCODER_ENABLE = yes diff --git a/keyboards/takashicompany/compacx/compacx.c b/keyboards/takashicompany/compacx/compacx.c new file mode 100644 index 00000000000..cf23638920c --- /dev/null +++ b/keyboards/takashicompany/compacx/compacx.c @@ -0,0 +1,28 @@ +/* Copyright 2021 takashicompany + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 "compacx.h" + +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { return false; } + if (!clockwise) { + tap_code(KC_MS_WH_UP); + } else { + tap_code(KC_MS_WH_DOWN); + } + + return true; +} diff --git a/keyboards/takashicompany/compacx/compacx.h b/keyboards/takashicompany/compacx/compacx.h new file mode 100644 index 00000000000..61447abeb8f --- /dev/null +++ b/keyboards/takashicompany/compacx/compacx.h @@ -0,0 +1,46 @@ +/* Copyright 2021 takashicompany + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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( \ + l001, l002, l003, l004, l005, l006, l007, l008, r001, r002, r003, r004, r005, r006, r007, r008, \ + l201, l009, l010, l011, l012, l013, l901, r201, r009, r010, r011, r012, r013, r901, \ + l301, l014, l015, l016, l017, l018, r301, r014, r015, r016, r017, r018, \ + l401, l019, l020, l021, l022, l023, l024, r401, r019, r020, r021, r022, r023, r024, \ + l025, l101, l102, l026, l103, l104, l027, r025, r101, r102, r026, r103, r104, r027 \ +) { \ + { l001, l002, l003, l004, l005, l006, l007 }, \ + { l201, l009, l010, l011, l012, l013, l008 }, \ + { l301, l014, l015, l016, l017, l018, l901 }, \ + { l401, l019, l020, l021, l022, l023, l024 }, \ + { l025, l101, l102, l026, l103, l104, l027 }, \ + { r001, r002, r003, r004, r005, r006, r007 }, \ + { r201, r009, r010, r011, r012, r013, r008 }, \ + { r301, r014, r015, r016, r017, r018, r901 }, \ + { r401, r019, r020, r021, r022, r023, r024 }, \ + { r025, r101, r102, r026, r103, r104, r027 } \ +} diff --git a/keyboards/takashicompany/compacx/config.h b/keyboards/takashicompany/compacx/config.h new file mode 100644 index 00000000000..5428482ed3b --- /dev/null +++ b/keyboards/takashicompany/compacx/config.h @@ -0,0 +1,149 @@ +/* +Copyright 2021 takashicompany + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 0x7463 // tc = takashicompany +#define PRODUCT_ID 0x0014 +#define DEVICE_VER 0x0001 +#define MANUFACTURER takashicompany +#define PRODUCT Compacx + +/* key matrix size */ +#define MATRIX_ROWS 5 * 2 +#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 { D1, D0, D4, C6, D7 } +#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +#define ENCODER_RESOLUTION 4 +#define ENCODERS_PAD_A { E6, B6 } +#define ENCODERS_PAD_B { B4, B5 } + +/* + * 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 LED_NUM_LOCK_PIN B0 +//#define LED_CAPS_LOCK_PIN B1 +//#define LED_SCROLL_LOCK_PIN B2 +//#define LED_COMPOSE_PIN B3 +//#define LED_KANA_PIN B4 + +//#define BACKLIGHT_PIN B7 +//#define BACKLIGHT_LEVELS 3 +//#define BACKLIGHT_BREATHING + +#define RGB_DI_PIN D3 +#ifdef RGB_DI_PIN +# define RGBLED_NUM 12 +# define RGBLED_SPLIT {6, 6} +# 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 */ +#define RGBLIGHT_EFFECT_BREATHING +#define RGBLIGHT_EFFECT_RAINBOW_MOOD +#define RGBLIGHT_EFFECT_RAINBOW_SWIRL +#define RGBLIGHT_EFFECT_SNAKE +#define RGBLIGHT_EFFECT_KNIGHT +#define RGBLIGHT_EFFECT_CHRISTMAS +#define RGBLIGHT_EFFECT_STATIC_GRADIENT +#define RGBLIGHT_EFFECT_RGB_TEST +#define RGBLIGHT_EFFECT_ALTERNATING +#define RGBLIGHT_EFFECT_TWINKLE +#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/takashicompany/compacx/info.json b/keyboards/takashicompany/compacx/info.json new file mode 100644 index 00000000000..431579feb16 --- /dev/null +++ b/keyboards/takashicompany/compacx/info.json @@ -0,0 +1,309 @@ +{ + "keyboard_name": "Compacx", + "url": "https://github.com/takashicompany/compacx", + "maintainer": "takashicompany", + "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": 9, + "y": 0 + }, + { + "x": 10, + "y": 0 + }, + { + "x": 11, + "y": 0 + }, + { + "x": 12, + "y": 0 + }, + { + "x": 13, + "y": 0 + }, + { + "x": 14, + "y": 0 + }, + { + "x": 15, + "y": 0 + }, + { + "x": 16, + "y": 0 + }, + { + "x": 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.75, + "y": 1, + "w": 1.25, + "h": 2 + }, + { + "x": 9, + "y": 1, + "w": 1.5 + }, + { + "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.75, + "y": 1, + "w": 1.25, + "h": 2 + }, + { + "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": 9, + "y": 2, + "w": 1.75 + }, + { + "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": 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": 9, + "y": 3, + "w": 2 + }, + { + "x": 11, + "y": 3 + }, + { + "x": 12, + "y": 3 + }, + { + "x": 13, + "y": 3 + }, + { + "x": 14, + "y": 3 + }, + { + "x": 15, + "y": 3 + }, + { + "x": 16, + "y": 3 + }, + { + "x": 0, + "y": 4 + }, + { + "x": 1, + "y": 4, + "w": 1.25 + }, + { + "x": 2.25, + "y": 4, + "w": 1.25 + }, + { + "x": 3.5, + "y": 4 + }, + { + "x": 4.5, + "y": 4, + "w": 1.25 + }, + { + "x": 5.75, + "y": 4, + "w": 1.25 + }, + { + "x": 7, + "y": 4 + }, + { + "x": 9, + "y": 4 + }, + { + "x": 10, + "y": 4, + "w": 1.25 + }, + { + "x": 11.25, + "y": 4, + "w": 1.25 + }, + { + "x": 12.5, + "y": 4 + }, + { + "x": 13.5, + "y": 4, + "w": 1.25 + }, + { + "x": 14.75, + "y": 4, + "w": 1.25 + }, + { + "x": 16, + "y": 4 + } + ] + } + } +} \ No newline at end of file diff --git a/keyboards/takashicompany/compacx/keymaps/default/keymap.c b/keyboards/takashicompany/compacx/keymaps/default/keymap.c new file mode 100644 index 00000000000..068f621ff81 --- /dev/null +++ b/keyboards/takashicompany/compacx/keymaps/default/keymap.c @@ -0,0 +1,68 @@ +/* Copyright 2021 takashicompany + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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] = { + + LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_BSPC, KC_ESC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_JYEN, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_ENT, KC_TAB, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_ENT, + KC_CAPS, KC_A, KC_S, LT(2, KC_D), KC_F, KC_G, KC_RCTL, KC_H, KC_J, KC_K, KC_L, KC_SCLN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_DEL, KC_RSFT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RO, + TG(2), LT(3 ,KC_PSCR), KC_LCTL, KC_LGUI, LSFT_T(KC_TAB), LALT_T(KC_LANG2), KC_SPC, KC_SPC, LT(1, KC_LANG1), KC_RALT, KC_RGUI, KC_RCTL, MO(3), KC_DEL + ), + + 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_MINS, KC_EQL, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_TRNS, + KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SCLN, KC_QUOT, KC_NUHS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + LAYOUT( + KC_TRNS, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_P4, KC_P5, KC_P6, KC_PCMM, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, + KC_TRNS, KC_P1, KC_P2, KC_P3, KC_PEQL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_P0, KC_PDOT, KC_PENT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + LAYOUT( + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_TRNS, KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, + KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, + KC_TRNS, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, RGB_M_K, RGB_M_X, RGB_M_G, RGB_M_T, RGB_M_T, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; + diff --git a/keyboards/takashicompany/compacx/keymaps/via/config.h b/keyboards/takashicompany/compacx/keymaps/via/config.h new file mode 100644 index 00000000000..d04cb9a0d26 --- /dev/null +++ b/keyboards/takashicompany/compacx/keymaps/via/config.h @@ -0,0 +1,18 @@ +/* Copyright 2021 takashicompany + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 DYNAMIC_KEYMAP_LAYER_COUNT 6 \ No newline at end of file diff --git a/keyboards/takashicompany/compacx/keymaps/via/keymap.c b/keyboards/takashicompany/compacx/keymaps/via/keymap.c new file mode 100644 index 00000000000..068f621ff81 --- /dev/null +++ b/keyboards/takashicompany/compacx/keymaps/via/keymap.c @@ -0,0 +1,68 @@ +/* Copyright 2021 takashicompany + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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] = { + + LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_BSPC, KC_ESC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_JYEN, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_ENT, KC_TAB, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_ENT, + KC_CAPS, KC_A, KC_S, LT(2, KC_D), KC_F, KC_G, KC_RCTL, KC_H, KC_J, KC_K, KC_L, KC_SCLN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_DEL, KC_RSFT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RO, + TG(2), LT(3 ,KC_PSCR), KC_LCTL, KC_LGUI, LSFT_T(KC_TAB), LALT_T(KC_LANG2), KC_SPC, KC_SPC, LT(1, KC_LANG1), KC_RALT, KC_RGUI, KC_RCTL, MO(3), KC_DEL + ), + + 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_MINS, KC_EQL, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_TRNS, + KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SCLN, KC_QUOT, KC_NUHS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + LAYOUT( + KC_TRNS, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_P4, KC_P5, KC_P6, KC_PCMM, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, + KC_TRNS, KC_P1, KC_P2, KC_P3, KC_PEQL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_P0, KC_PDOT, KC_PENT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + LAYOUT( + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_TRNS, KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, + KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, + KC_TRNS, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, RGB_M_K, RGB_M_X, RGB_M_G, RGB_M_T, RGB_M_T, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; + diff --git a/keyboards/takashicompany/compacx/keymaps/via/rules.mk b/keyboards/takashicompany/compacx/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/takashicompany/compacx/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/takashicompany/compacx/readme.md b/keyboards/takashicompany/compacx/readme.md new file mode 100644 index 00000000000..ac5cfee1693 --- /dev/null +++ b/keyboards/takashicompany/compacx/readme.md @@ -0,0 +1,29 @@ +# Compacx + +![image](https://github.com/takashicompany/compacx/blob/master/images/qmk.jpg?raw=true) + +"Compacx" is a 35-key keyboard with an ISO enter key. +It is the perfect size for a macro pad or a one-handed gaming keyboard. +It can also be used as a split keyboard by combining two units. + +* Keyboard Maintainer: [takashicompany](https://github.com/takashicompany) +* Hardware Supported: PCB, Pro Micro +* Hardware Availability: https://github.com/takashicompany/compacx + +Make example for this keyboard (after setting up your build environment): + + make takashicompany/compacx:default + +Flashing example for this keyboard: + + make takashicompany/compacx: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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `RESET` if it is available diff --git a/keyboards/takashicompany/compacx/rules.mk b/keyboards/takashicompany/compacx/rules.mk new file mode 100644 index 00000000000..ed3cc7866fc --- /dev/null +++ b/keyboards/takashicompany/compacx/rules.mk @@ -0,0 +1,24 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output +SPLIT_KEYBOARD=yes +ENCODER_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/takashicompany/heavy_left/config.h b/keyboards/takashicompany/heavy_left/config.h new file mode 100644 index 00000000000..e7f37f251c8 --- /dev/null +++ b/keyboards/takashicompany/heavy_left/config.h @@ -0,0 +1,145 @@ +/* +Copyright 2021 takashicompany + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 0x7463 // tc = takashicompany +#define PRODUCT_ID 0x0015 +#define DEVICE_VER 0x0001 +#define MANUFACTURER takashicompany +#define PRODUCT Heavy Left + +/* key matrix size */ +#define MATRIX_ROWS 5 * 2 +#define MATRIX_COLS 10 + +/* + * 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, B6, D1, D0 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL */ +#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 D2 // or D1, D2, D3, E6 + +//#define LED_NUM_LOCK_PIN B0 +//#define LED_CAPS_LOCK_PIN B1 +//#define LED_SCROLL_LOCK_PIN B2 +//#define LED_COMPOSE_PIN B3 +//#define LED_KANA_PIN B4 + +//#define BACKLIGHT_PIN B7 +//#define BACKLIGHT_LEVELS 3 +//#define BACKLIGHT_BREATHING + +#define RGB_DI_PIN D3 +#ifdef RGB_DI_PIN +# define RGBLED_NUM 6 * 2 +# define RGBLED_SPLIT {6, 6} +# 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 */ +#define RGBLIGHT_EFFECT_BREATHING +#define RGBLIGHT_EFFECT_RAINBOW_MOOD +#define RGBLIGHT_EFFECT_RAINBOW_SWIRL +#define RGBLIGHT_EFFECT_SNAKE +#define RGBLIGHT_EFFECT_KNIGHT +#define RGBLIGHT_EFFECT_CHRISTMAS +#define RGBLIGHT_EFFECT_STATIC_GRADIENT +#define RGBLIGHT_EFFECT_RGB_TEST +#define RGBLIGHT_EFFECT_ALTERNATING +#define RGBLIGHT_EFFECT_TWINKLE +#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/takashicompany/heavy_left/heavy_left.c b/keyboards/takashicompany/heavy_left/heavy_left.c new file mode 100644 index 00000000000..2af6d3fe616 --- /dev/null +++ b/keyboards/takashicompany/heavy_left/heavy_left.c @@ -0,0 +1,17 @@ +/* Copyright 2021 takashicompany + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 "heavy_left.h" diff --git a/keyboards/takashicompany/heavy_left/heavy_left.h b/keyboards/takashicompany/heavy_left/heavy_left.h new file mode 100644 index 00000000000..a54f88b3039 --- /dev/null +++ b/keyboards/takashicompany/heavy_left/heavy_left.h @@ -0,0 +1,46 @@ +/* Copyright 2021 takashicompany + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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( \ + l06, l07, l08, l09, l00, l01, l02, l03, l04, l05, r00, r01, r02, r03, r04, r05, r06, r07, r08, r09, \ + l16, l17, l18, l19, l10, l11, l12, l13, l14, l15, r10, r11, r12, r13, r14, r15, r16, r17, r18, \ + l26, l27, l28, l29, l20, l21, l22, l23, l24, l25, r20, r21, r22, r23, r24, r25, r26, r27, \ + l36, l37, l38, l39, l30, l31, l32, l33, l34, l35, r30, r31, r32, r33, r34, r35, r36, r37, r38, \ + l46, l47, l48, l49, l40, l41, l42, l43, l44, l45, r40, r41, r42, r43, r44, r45, r46, r47, r48 \ +) { \ + { l00, l01, l02, l03, l04, l05, l06, l07, l08, l09 }, \ + { l10, l11, l12, l13, l14, l15, l16, l17, l18, l19 }, \ + { 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 }, \ + { r00, r01, r02, r03, r04, r05, r06, r07, r09, KC_NO }, \ + { r10, r11, r12, r13, r14, r15, r16, r08, r18, KC_NO }, \ + { r20, r21, r22, r23, r24, r25, r26, r17, r27, KC_NO }, \ + { r30, r31, r32, r33, r34, r35, r36, r37, r38, KC_NO }, \ + { r40, r41, r42, r43, r44, r45, r46, r47, r48, KC_NO } \ +} diff --git a/keyboards/takashicompany/heavy_left/info.json b/keyboards/takashicompany/heavy_left/info.json new file mode 100644 index 00000000000..878618e63d6 --- /dev/null +++ b/keyboards/takashicompany/heavy_left/info.json @@ -0,0 +1,496 @@ +{ + "keyboard_name": "heavy_left", + "url": "", + "maintainer": "takashicompany", + "layouts": { + "LAYOUT": { + "layout": [ + { + "label": "24", + "x": 0, + "y": 0 + }, + { + "label": "25", + "x": 1, + "y": 0 + }, + { + "label": "26", + "x": 2, + "y": 0 + }, + { + "label": "27", + "x": 3, + "y": 0 + }, + { + "label": "1", + "x": 4.25, + "y": 0 + }, + { + "label": "2", + "x": 5.25, + "y": 0 + }, + { + "label": "3", + "x": 6.25, + "y": 0 + }, + { + "label": "4", + "x": 7.25, + "y": 0 + }, + { + "label": "5", + "x": 8.25, + "y": 0 + }, + { + "label": "6", + "x": 9.25, + "y": 0 + }, + { + "label": "44", + "x": 10.75, + "y": 0 + }, + { + "label": "45", + "x": 11.75, + "y": 0 + }, + { + "label": "46", + "x": 12.75, + "y": 0 + }, + { + "label": "47", + "x": 13.75, + "y": 0 + }, + { + "label": "48", + "x": 14.75, + "y": 0 + }, + { + "label": "49", + "x": 15.75, + "y": 0 + }, + { + "label": "50", + "x": 16.75, + "y": 0 + }, + { + "label": "51", + "x": 17.75, + "y": 0 + }, + { + "label": "52", + "x": 18.75, + "y": 0 + }, + { + "label": "82", + "x": 20, + "y": 0 + }, + { + "label": "28", + "x": 0, + "y": 1 + }, + { + "label": "29", + "x": 1, + "y": 1 + }, + { + "label": "30", + "x": 2, + "y": 1 + }, + { + "label": "31", + "x": 3, + "y": 1 + }, + { + "label": "201", + "x": 4.25, + "y": 1, + "w": 1.5 + }, + { + "label": "7", + "x": 5.75, + "y": 1 + }, + { + "label": "8", + "x": 6.75, + "y": 1 + }, + { + "label": "9", + "x": 7.75, + "y": 1 + }, + { + "label": "10", + "x": 8.75, + "y": 1 + }, + { + "label": "11", + "x": 9.75, + "y": 1 + }, + { + "label": "53", + "x": 11.25, + "y": 1 + }, + { + "label": "54", + "x": 12.25, + "y": 1 + }, + { + "label": "55", + "x": 13.25, + "y": 1 + }, + { + "label": "56", + "x": 14.25, + "y": 1 + }, + { + "label": "57", + "x": 15.25, + "y": 1 + }, + { + "label": "58", + "x": 16.25, + "y": 1 + }, + { + "label": "59", + "x": 17.25, + "y": 1 + }, + { + "label": "901", + "x": 18.5, + "y": 1, + "w": 1.25, + "h": 2 + }, + { + "label": "83", + "x": 20, + "y": 1 + }, + { + "label": "32", + "x": 0, + "y": 2 + }, + { + "label": "33", + "x": 1, + "y": 2 + }, + { + "label": "34", + "x": 2, + "y": 2 + }, + { + "label": "35", + "x": 3, + "y": 2 + }, + { + "label": "301", + "x": 4.25, + "y": 2, + "w": 1.75 + }, + { + "label": "12", + "x": 6, + "y": 2 + }, + { + "label": "13", + "x": 7, + "y": 2 + }, + { + "label": "14", + "x": 8, + "y": 2 + }, + { + "label": "15", + "x": 9, + "y": 2 + }, + { + "label": "16", + "x": 10, + "y": 2 + }, + { + "label": "60", + "x": 11.5, + "y": 2 + }, + { + "label": "61", + "x": 12.5, + "y": 2 + }, + { + "label": "62", + "x": 13.5, + "y": 2 + }, + { + "label": "63", + "x": 14.5, + "y": 2 + }, + { + "label": "64", + "x": 15.5, + "y": 2 + }, + { + "label": "65", + "x": 16.5, + "y": 2 + }, + { + "label": "66", + "x": 17.5, + "y": 2 + }, + { + "label": "84", + "x": 20, + "y": 2 + }, + { + "label": "36", + "x": 0, + "y": 3 + }, + { + "label": "37", + "x": 1, + "y": 3 + }, + { + "label": "38", + "x": 2, + "y": 3 + }, + { + "label": "39", + "x": 3, + "y": 3 + }, + { + "label": "601", + "x": 4.25, + "y": 3, + "w": 2.25 + }, + { + "label": "17", + "x": 6.5, + "y": 3 + }, + { + "label": "18", + "x": 7.5, + "y": 3 + }, + { + "label": "19", + "x": 8.5, + "y": 3 + }, + { + "label": "20", + "x": 9.5, + "y": 3 + }, + { + "label": "21", + "x": 10.5, + "y": 3 + }, + { + "label": "67", + "x": 11.75, + "y": 3 + }, + { + "label": "68", + "x": 12.75, + "y": 3 + }, + { + "label": "69", + "x": 13.75, + "y": 3 + }, + { + "label": "70", + "x": 14.75, + "y": 3 + }, + { + "label": "71", + "x": 15.75, + "y": 3 + }, + { + "label": "72", + "x": 16.75, + "y": 3 + }, + { + "label": "73", + "x": 17.75, + "y": 3 + }, + { + "label": "74", + "x": 18.75, + "y": 3 + }, + { + "label": "85", + "x": 20, + "y": 3 + }, + { + "label": "40", + "x": 0, + "y": 4 + }, + { + "label": "41", + "x": 1, + "y": 4 + }, + { + "label": "42", + "x": 2, + "y": 4 + }, + { + "label": "43", + "x": 3, + "y": 4 + }, + { + "label": "101", + "x": 4.25, + "y": 4, + "w": 1.25 + }, + { + "label": "22", + "x": 5.5, + "y": 4 + }, + { + "label": "102", + "x": 6.5, + "y": 4, + "w": 1.25 + }, + { + "label": "23", + "x": 7.75, + "y": 4 + }, + { + "label": "103", + "x": 8.75, + "y": 4, + "w": 1.25 + }, + { + "label": "104", + "x": 10, + "y": 4, + "w": 1.25 + }, + { + "label": "75", + "x": 11.5, + "y": 4 + }, + { + "label": "105", + "x": 12.5, + "y": 4, + "w": 1.25 + }, + { + "label": "76", + "x": 13.75, + "y": 4 + }, + { + "label": "77", + "x": 14.75, + "y": 4 + }, + { + "label": "78", + "x": 15.75, + "y": 4 + }, + { + "label": "79", + "x": 16.75, + "y": 4 + }, + { + "label": "80", + "x": 17.75, + "y": 4 + }, + { + "label": "81", + "x": 18.75, + "y": 4 + }, + { + "label": "86", + "x": 20, + "y": 4 + } + ] + } + } +} \ No newline at end of file diff --git a/keyboards/takashicompany/heavy_left/keymaps/default/keymap.c b/keyboards/takashicompany/heavy_left/keymaps/default/keymap.c new file mode 100644 index 00000000000..31ac47c047d --- /dev/null +++ b/keyboards/takashicompany/heavy_left/keymaps/default/keymap.c @@ -0,0 +1,53 @@ +/* Copyright 2021 takashicompany + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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" + +// Defines the keycodes used by our macros in process_record_user +enum custom_keycodes { + KC_00 = SAFE_RANGE +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + LAYOUT( + KC_ESC, 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_JYEN, KC_BSPC, KC_DEL, + 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_ENT, KC_HOME, + KC_P4, KC_P5, KC_P6, KC_PCMM, 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_END, + KC_P1, KC_P2, KC_P3, KC_PEQL, 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_UP, KC_RSFT, KC_PGUP, + KC_P0, KC_00, KC_PDOT, KC_PENT, KC_TILD, KC_LCTL, KC_LGUI, KC_LALT, KC_LANG2, KC_SPC, KC_SPC, KC_LANG1, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, MO(1) + ), + + LAYOUT( + KC_NLCK, KC_TRNS, KC_TRNS, KC_TRNS, 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_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, KC_TRNS, KC_TRNS, 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_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, KC_TRNS, 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_M_K, RGB_M_X, RGB_M_G, RGB_M_T, RGB_M_T, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KC_00: + if (record->event.pressed) { + SEND_STRING("00"); + } + return false; + } + return true; +} \ No newline at end of file diff --git a/keyboards/takashicompany/heavy_left/keymaps/via/keymap.c b/keyboards/takashicompany/heavy_left/keymaps/via/keymap.c new file mode 100644 index 00000000000..796d27914da --- /dev/null +++ b/keyboards/takashicompany/heavy_left/keymaps/via/keymap.c @@ -0,0 +1,69 @@ +/* Copyright 2021 takashicompany + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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" + +// Defines the keycodes used by our macros in process_record_user +enum custom_keycodes { + KC_00 = USER00, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + LAYOUT( + KC_ESC, 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_JYEN, KC_BSPC, KC_DEL, + 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_ENT, KC_HOME, + KC_P4, KC_P5, KC_P6, KC_PCMM, 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_END, + KC_P1, KC_P2, KC_P3, KC_PEQL, 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_UP, KC_RSFT, KC_PGUP, + KC_P0, KC_00, KC_PDOT, KC_PENT, KC_TILD, KC_LCTL, KC_LGUI, KC_LALT, KC_LANG2, KC_SPC, KC_SPC, KC_LANG1, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, MO(1) + ), + + LAYOUT( + KC_NLCK, KC_TRNS, KC_TRNS, KC_TRNS, 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_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, KC_TRNS, KC_TRNS, 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_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, KC_TRNS, 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_M_K, RGB_M_X, RGB_M_G, RGB_M_T, RGB_M_T, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) + +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KC_00: + if (record->event.pressed) { + SEND_STRING("00"); + } + return false; + } + return true; +} \ No newline at end of file diff --git a/keyboards/takashicompany/heavy_left/keymaps/via/rules.mk b/keyboards/takashicompany/heavy_left/keymaps/via/rules.mk new file mode 100644 index 00000000000..036bd6d1c3e --- /dev/null +++ b/keyboards/takashicompany/heavy_left/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/takashicompany/heavy_left/readme.md b/keyboards/takashicompany/heavy_left/readme.md new file mode 100644 index 00000000000..4cd0e1b0cc5 --- /dev/null +++ b/keyboards/takashicompany/heavy_left/readme.md @@ -0,0 +1,33 @@ +# heavy_left + +![heavy_left](https://github.com/takashicompany/heavy_left/blob/master/images/qmk.jpg) + +This is a 95-key split type Japanese keyboard. +It has a numeric keypad on the left hand side, which can be used not only for entering numbers but also as a dedicated macro pad. +It also supports key switch replacement with MX sockets and LED underglow. + +95キーの分割型の日本語配列のキーボードです。 +左手側にテンキーが備え付けられており、数字の入力だけでなく専用のマクロパッドとしても使用が可能です。 +MXソケットによるキースイッチの付替えや、LEDによるアンダーグロウにも対応しています。 + +* Keyboard Maintainer: [takashicompany](https://github.com/yourusername) +* Hardware Supported: PCB, Pro Micro +* Hardware Availability: https://github.com/takashicompany/heavy_left + +Make example for this keyboard (after setting up your build environment): + + make takashicompany/heavy_left:default + +Flashing example for this keyboard: + + make takashicompany/heavy_left: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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `RESET` if it is available diff --git a/keyboards/takashicompany/heavy_left/rules.mk b/keyboards/takashicompany/heavy_left/rules.mk new file mode 100644 index 00000000000..d4e19e65465 --- /dev/null +++ b/keyboards/takashicompany/heavy_left/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output + +SPLIT_KEYBOARD=yes \ No newline at end of file diff --git a/keyboards/takashicompany/qoolee/config.h b/keyboards/takashicompany/qoolee/config.h new file mode 100644 index 00000000000..99c8ce01428 --- /dev/null +++ b/keyboards/takashicompany/qoolee/config.h @@ -0,0 +1,153 @@ +/* +Copyright 2021 takashicompany + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 0x7463 // tc = takashicompany +#define PRODUCT_ID 0x0013 +#define DEVICE_VER 0x0001 +#define MANUFACTURER takashicompany +#define PRODUCT QooLee + +/* key matrix size */ +#define MATRIX_ROWS 3 +#define MATRIX_COLS 12 + +/* + * 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 { E6, B4, B5 } +#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2, B6, D0, D4, C6, D7} +#define UNUSED_PINS + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +#define ENCODER_RESOLUTION 1 +#define ENCODERS_PAD_A { D2 } +#define ENCODERS_PAD_B { D1 } + +/* + * 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 LED_NUM_LOCK_PIN B0 +//#define LED_CAPS_LOCK_PIN B1 +//#define LED_SCROLL_LOCK_PIN B2 +//#define LED_COMPOSE_PIN B3 +//#define LED_KANA_PIN B4 + +//#define BACKLIGHT_PIN B7 +//#define BACKLIGHT_LEVELS 3 +//#define BACKLIGHT_BREATHING + +#define RGB_DI_PIN D3 +#ifdef RGB_DI_PIN +# define RGBLED_NUM 16 +# define RGBLIGHT_HUE_STEP 8 +# define RGBLIGHT_SAT_STEP 8 +# define RGBLIGHT_VAL_STEP 8 +# define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ +# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +# 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 \ No newline at end of file diff --git a/keyboards/takashicompany/qoolee/info.json b/keyboards/takashicompany/qoolee/info.json new file mode 100644 index 00000000000..b2245a91c71 --- /dev/null +++ b/keyboards/takashicompany/qoolee/info.json @@ -0,0 +1,156 @@ +{ + "keyboard_name": "QooLee", + "url": "https://github.com/takashicompany/qoolee", + "maintainer": "takachicompany", + "layouts": { + "LAYOUT": { + "layout": [ + { + "x": 0, + "y": 0, + "w": 1.5 + }, + { + "x": 1.5, + "y": 0 + }, + { + "x": 2.5, + "y": 0 + }, + { + "x": 3.5, + "y": 0 + }, + { + "x": 4.5, + "y": 0 + }, + { + "x": 5.5, + "y": 0 + }, + { + "x": 6.5, + "y": 0 + }, + { + "x": 7.5, + "y": 0 + }, + { + "x": 8.5, + "y": 0 + }, + { + "x": 9.5, + "y": 0 + }, + { + "x": 10.5, + "y": 0 + }, + { + "x": 11.75, + "y": 0, + "w": 1.25, + "h": 2 + }, + { + "x": 0, + "y": 1, + "w": 1.75 + }, + { + "x": 1.75, + "y": 1 + }, + { + "x": 2.75, + "y": 1 + }, + { + "x": 3.75, + "y": 1 + }, + { + "x": 4.75, + "y": 1 + }, + { + "x": 5.75, + "y": 1 + }, + { + "x": 6.75, + "y": 1 + }, + { + "x": 7.75, + "y": 1 + }, + { + "x": 8.75, + "y": 1 + }, + { + "x": 9.75, + "y": 1 + }, + { + "x": 10.75, + "y": 1 + }, + { + "x": 0, + "y": 2, + "w": 2 + }, + { + "x": 2, + "y": 2 + }, + { + "x": 3, + "y": 2 + }, + { + "x": 4, + "y": 2 + }, + { + "x": 5, + "y": 2 + }, + { + "x": 6, + "y": 2 + }, + { + "x": 7, + "y": 2 + }, + { + "x": 8, + "y": 2 + }, + { + "x": 9, + "y": 2 + }, + { + "x": 10, + "y": 2 + }, + { + "x": 11, + "y": 2 + }, + { + "x": 12, + "y": 2 + } + ] + } + } +} \ No newline at end of file diff --git a/keyboards/takashicompany/qoolee/keymaps/default/keymap.c b/keyboards/takashicompany/qoolee/keymaps/default/keymap.c new file mode 100644 index 00000000000..64d6ff7aea5 --- /dev/null +++ b/keyboards/takashicompany/qoolee/keymaps/default/keymap.c @@ -0,0 +1,79 @@ +/* Copyright 2021 takashicompany + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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] = { + + LAYOUT( + KC_TAB, LT(2, KC_Q), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, GUI_T(KC_O), ALT_T(KC_P), + KC_LCTL, KC_A, KC_S, LT(2, KC_D), KC_F, KC_G, KC_H, KC_J, LT(2, KC_K), KC_L, KC_SCLN, KC_ENT, + KC_LSFT, KC_Z, GUI_T(KC_X), ALT_T(KC_C), LT(1, KC_V), KC_B, KC_N, LT(1, KC_M), KC_COMM, CTL_T(KC_DOT), KC_SLSH, KC_BSPC + ), + + LAYOUT( + KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_TRNS, KC_EQL, KC_LBRC, KC_SLSH, KC_MINS, KC_RO, KC_SCLN, KC_QUOT, KC_RBRC, KC_NUHS, KC_JYEN, KC_TRNS, + KC_TRNS, KC_LSFT, KC_LGUI, KC_LALT, KC_LANG2, KC_LSFT, KC_SPC, KC_LANG1, KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS + ), + + LAYOUT( + KC_TRNS, KC_ESC, KC_TAB, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, + KC_TRNS, KC_LCTL, LALT(KC_C), KC_QUES, KC_EXLM, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_TRNS, + KC_TRNS, KC_LSFT, KC_LGUI, KC_LALT, KC_LANG2, KC_TRNS, KC_TRNS, KC_LANG1, KC_NO, MO(3), KC_DEL, KC_TRNS + ), + + LAYOUT( + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, + KC_TRNS, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS, + KC_TRNS, RGB_M_K, RGB_M_X, RGB_M_G, RGB_M_T, RGB_M_T, KC_F11, KC_F12, KC_CAPS, KC_NO, KC_NO, KC_TRNS + ), + + 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 + ), + + 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 + ), + + 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 + ), + + 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 + ) +}; + +bool encoder_update_user(uint8_t index, bool clockwise) { + + if (clockwise) { + tap_code(KC_MS_WH_UP); + } else { + tap_code(KC_MS_WH_DOWN); + } + + return true; +} + diff --git a/keyboards/takashicompany/qoolee/keymaps/via/config.h b/keyboards/takashicompany/qoolee/keymaps/via/config.h new file mode 100644 index 00000000000..ed834d1aefb --- /dev/null +++ b/keyboards/takashicompany/qoolee/keymaps/via/config.h @@ -0,0 +1,20 @@ +/* +Copyright 2021 takashicompany + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 DYNAMIC_KEYMAP_LAYER_COUNT 8 \ No newline at end of file diff --git a/keyboards/takashicompany/qoolee/keymaps/via/keymap.c b/keyboards/takashicompany/qoolee/keymaps/via/keymap.c new file mode 100644 index 00000000000..64d6ff7aea5 --- /dev/null +++ b/keyboards/takashicompany/qoolee/keymaps/via/keymap.c @@ -0,0 +1,79 @@ +/* Copyright 2021 takashicompany + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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] = { + + LAYOUT( + KC_TAB, LT(2, KC_Q), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, GUI_T(KC_O), ALT_T(KC_P), + KC_LCTL, KC_A, KC_S, LT(2, KC_D), KC_F, KC_G, KC_H, KC_J, LT(2, KC_K), KC_L, KC_SCLN, KC_ENT, + KC_LSFT, KC_Z, GUI_T(KC_X), ALT_T(KC_C), LT(1, KC_V), KC_B, KC_N, LT(1, KC_M), KC_COMM, CTL_T(KC_DOT), KC_SLSH, KC_BSPC + ), + + LAYOUT( + KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_TRNS, KC_EQL, KC_LBRC, KC_SLSH, KC_MINS, KC_RO, KC_SCLN, KC_QUOT, KC_RBRC, KC_NUHS, KC_JYEN, KC_TRNS, + KC_TRNS, KC_LSFT, KC_LGUI, KC_LALT, KC_LANG2, KC_LSFT, KC_SPC, KC_LANG1, KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS + ), + + LAYOUT( + KC_TRNS, KC_ESC, KC_TAB, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, + KC_TRNS, KC_LCTL, LALT(KC_C), KC_QUES, KC_EXLM, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_TRNS, + KC_TRNS, KC_LSFT, KC_LGUI, KC_LALT, KC_LANG2, KC_TRNS, KC_TRNS, KC_LANG1, KC_NO, MO(3), KC_DEL, KC_TRNS + ), + + LAYOUT( + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, + KC_TRNS, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS, + KC_TRNS, RGB_M_K, RGB_M_X, RGB_M_G, RGB_M_T, RGB_M_T, KC_F11, KC_F12, KC_CAPS, KC_NO, KC_NO, KC_TRNS + ), + + 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 + ), + + 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 + ), + + 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 + ), + + 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 + ) +}; + +bool encoder_update_user(uint8_t index, bool clockwise) { + + if (clockwise) { + tap_code(KC_MS_WH_UP); + } else { + tap_code(KC_MS_WH_DOWN); + } + + return true; +} + diff --git a/keyboards/takashicompany/qoolee/keymaps/via/rules.mk b/keyboards/takashicompany/qoolee/keymaps/via/rules.mk new file mode 100644 index 00000000000..036bd6d1c3e --- /dev/null +++ b/keyboards/takashicompany/qoolee/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/takashicompany/qoolee/qoolee.c b/keyboards/takashicompany/qoolee/qoolee.c new file mode 100644 index 00000000000..5a86c3c5bfa --- /dev/null +++ b/keyboards/takashicompany/qoolee/qoolee.c @@ -0,0 +1,17 @@ +/* Copyright 2021 takashicompany + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 "qoolee.h" diff --git a/keyboards/takashicompany/qoolee/qoolee.h b/keyboards/takashicompany/qoolee/qoolee.h new file mode 100644 index 00000000000..986e7e3ec39 --- /dev/null +++ b/keyboards/takashicompany/qoolee/qoolee.h @@ -0,0 +1,37 @@ +/* Copyright 2021 takashicompany + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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( \ + k00, k01, k02, k03, k04, k05, 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 \ +) { \ + { k00, k01, k02, k03, k04, k05, k07, k08, k09, k0a, k0b, KC_NO }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b } \ +} diff --git a/keyboards/takashicompany/qoolee/readme.md b/keyboards/takashicompany/qoolee/readme.md new file mode 100644 index 00000000000..35ee431c1ca --- /dev/null +++ b/keyboards/takashicompany/qoolee/readme.md @@ -0,0 +1,30 @@ +# qoolee + +![qoolee](https://github.com/takashicompany/qoolee/raw/master/images/qmk.jpg?raw=true) + +QooLee is a keyboard with a 30% layout with ISO Enter. +It can also be equipped with a rotary encoder. +It supports hot-swapping of keyswitches with MX sockets and mounting of LEDs. +VIA (Remap) firmware is also available. + +* Keyboard Maintainer: [takashicompany](https://github.com/takashicompany) +* Hardware Supported: PCB, Pro Micro +* Hardware Availability: https://github.com/takashicompany/qoolee + +Make example for this keyboard (after setting up your build environment): + + make takashicomoany/qoolee:default + +Flashing example for this keyboard: + + make takashicompany/qoolee: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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `RESET` if it is available diff --git a/keyboards/takashicompany/qoolee/rules.mk b/keyboards/takashicompany/qoolee/rules.mk new file mode 100644 index 00000000000..314fa981186 --- /dev/null +++ b/keyboards/takashicompany/qoolee/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output + +ENCODER_ENABLE = yes \ No newline at end of file diff --git a/keyboards/tanuki/rules.mk b/keyboards/tanuki/rules.mk index 92e3a57c82c..7b17aed2477 100644 --- a/keyboards/tanuki/rules.mk +++ b/keyboards/tanuki/rules.mk @@ -16,4 +16,3 @@ NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https:/ RGBLIGHT_ENABLE =yes # Enable keyboard underlight functionality BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality AUDIO_ENABLE = no -UNICODE_ENABLE = no # Unicode diff --git a/keyboards/teleport/numpad/config.h b/keyboards/teleport/numpad/config.h new file mode 100644 index 00000000000..f3573483b70 --- /dev/null +++ b/keyboards/teleport/numpad/config.h @@ -0,0 +1,39 @@ +/* +Copyright 2021 Moritz Plattner +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 0x7470 //"tp" +#define PRODUCT_ID 0x0001 +#define DEVICE_VER 0x0001 +#define MANUFACTURER tlprt +#define PRODUCT NumPad + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 4 + +/* Keyboard Matrix Assignments */ +#define MATRIX_ROW_PINS { D7, D4, D6, B4, B5 } +#define MATRIX_COL_PINS { F6, F5, F7, F4 } +#define UNUSED_PINS { B0, B1, B2, B3, B6, B7, D0, D1, D2, D3, D5, F0, F1, E6, C6, C7 } + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 diff --git a/keyboards/teleport/numpad/info.json b/keyboards/teleport/numpad/info.json new file mode 100644 index 00000000000..a05b7440baf --- /dev/null +++ b/keyboards/teleport/numpad/info.json @@ -0,0 +1,27 @@ +{ + "keyboard_name": "tlprt_NumPad", + "maintainer": "ebastler", + "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} + ] + } + } +} diff --git a/keyboards/teleport/numpad/keymaps/default/keymap.c b/keyboards/teleport/numpad/keymaps/default/keymap.c new file mode 100644 index 00000000000..539a046ee85 --- /dev/null +++ b/keyboards/teleport/numpad/keymaps/default/keymap.c @@ -0,0 +1,35 @@ +/* Copyright 2021 Moritz Plattner + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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( + LT(1, 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 + ), + + [1] = LAYOUT_numpad_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, RESET + ), +}; diff --git a/keyboards/teleport/numpad/keymaps/via/keymap.c b/keyboards/teleport/numpad/keymaps/via/keymap.c new file mode 100644 index 00000000000..8eea06c76ee --- /dev/null +++ b/keyboards/teleport/numpad/keymaps/via/keymap.c @@ -0,0 +1,51 @@ +/* Copyright 2021 Moritz Plattner + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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( + LT(1, 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 + ), + + [1] = LAYOUT_numpad_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, RESET + ), + + [2] = LAYOUT_numpad_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, RESET + ), + + [3] = LAYOUT_numpad_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, RESET + ), +}; diff --git a/keyboards/teleport/numpad/keymaps/via/rules.mk b/keyboards/teleport/numpad/keymaps/via/rules.mk new file mode 100644 index 00000000000..036bd6d1c3e --- /dev/null +++ b/keyboards/teleport/numpad/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/teleport/numpad/numpad.c b/keyboards/teleport/numpad/numpad.c new file mode 100644 index 00000000000..375e240589a --- /dev/null +++ b/keyboards/teleport/numpad/numpad.c @@ -0,0 +1,16 @@ +/* Copyright 2021 Moritz Plattner + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 "numpad.h" diff --git a/keyboards/teleport/numpad/numpad.h b/keyboards/teleport/numpad/numpad.h new file mode 100644 index 00000000000..9c7413cd8e9 --- /dev/null +++ b/keyboards/teleport/numpad/numpad.h @@ -0,0 +1,33 @@ +/* Copyright 2021 Moritz Plattner + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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, K41, K42 \ +) { \ + { K00, K01, K02, K03 }, \ + { K10, K11, K12, K13 }, \ + { K20, K21, K22, KC_NO }, \ + { K30, K31, K32, KC_NO }, \ + { K40, K41, K42, KC_NO }, \ +} diff --git a/keyboards/teleport/numpad/readme.md b/keyboards/teleport/numpad/readme.md new file mode 100644 index 00000000000..aebde6f1601 --- /dev/null +++ b/keyboards/teleport/numpad/readme.md @@ -0,0 +1,20 @@ +# The Teleport NumPad + +* Keyboard Maintainer: [ebastler](https://github.com/ebastler) +* Hardware Supported: Teleport NumPad +* Hardware Availability: [TheTeleport.de](https://www.theteleport.de/) + +Make example for this keyboard (after setting up your build environment): + + make teleport/numpad:default + +Flash example for this keyboard: + + make teleport/numpad: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). + +## Bootloader Enter the bootloader in 3 ways: +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (In this case NumLock) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB +* **Keycode in layout**: Press the key mapped to `RESET` (With the default keymap, hold NumLock, then press Enter) \ No newline at end of file diff --git a/keyboards/teleport/numpad/rules.mk b/keyboards/teleport/numpad/rules.mk new file mode 100644 index 00000000000..d13c9980f7b --- /dev/null +++ b/keyboards/teleport/numpad/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 = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow + +LAYOUTS = numpad_5x4 diff --git a/keyboards/tender/macrowo_pad/rules.mk b/keyboards/tender/macrowo_pad/rules.mk index 99eea9632e4..b4046de018e 100644 --- a/keyboards/tender/macrowo_pad/rules.mk +++ b/keyboards/tender/macrowo_pad/rules.mk @@ -16,6 +16,5 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = no # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = no # Enable support for EC11 Rotary Encoder diff --git a/keyboards/tg4x/config.h b/keyboards/tg4x/config.h index 915ae130ec4..87636d83719 100644 --- a/keyboards/tg4x/config.h +++ b/keyboards/tg4x/config.h @@ -123,59 +123,6 @@ along with this program. If not, see . */ //#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. diff --git a/keyboards/tgr/910/config.h b/keyboards/tgr/910/config.h index 7ba412be355..f9a233c1b25 100644 --- a/keyboards/tgr/910/config.h +++ b/keyboards/tgr/910/config.h @@ -47,10 +47,6 @@ along with this program. If not, see . #define RGBLIGHT_ANIMATIONS -/* 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) - /* Bootmagic Lite key configuration */ // #define BOOTMAGIC_LITE_ROW 0 // #define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/tgr/tris/config.h b/keyboards/tgr/tris/config.h index 16e862a222b..131add14cdd 100644 --- a/keyboards/tgr/tris/config.h +++ b/keyboards/tgr/tris/config.h @@ -42,10 +42,6 @@ along with this program. If not, see . #define RGBLED_NUM 6 #define RGBLIGHT_ANIMATIONS -/* 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) - /* Bootmagic Lite key configuration */ // #define BOOTMAGIC_LITE_ROW 0 // #define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/the_royal/schwann/rules.mk b/keyboards/the_royal/schwann/rules.mk index 815a5c91832..06faa7f4578 100644 --- a/keyboards/the_royal/schwann/rules.mk +++ b/keyboards/the_royal/schwann/rules.mk @@ -17,6 +17,4 @@ 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 RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output - diff --git a/keyboards/the_ruler/config.h b/keyboards/the_ruler/config.h index 2932dd46516..bcb7441140c 100644 --- a/keyboards/the_ruler/config.h +++ b/keyboards/the_ruler/config.h @@ -81,54 +81,6 @@ along with this program. If not, see . */ //#define FORCE_NKRO -/* - * Magic Key Options - * - * Magic keys are hotkey commands that allow control over firmware functions of - * the keyboard. They are best used in combination with the HID Listen program, - * found here: https://www.pjrc.com/teensy/hid_listen.html - * - * The options below allow the magic key functionality to be changed. This is - * useful if your keyboard/keypad is missing keys and you want magic key support. - * - */ - -/* control how magic key switches layers */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false - -/* override magic key keymap */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM -//#define MAGIC_KEY_HELP1 H -//#define MAGIC_KEY_HELP2 SLASH -//#define MAGIC_KEY_DEBUG D -//#define MAGIC_KEY_DEBUG_MATRIX X -//#define MAGIC_KEY_DEBUG_KBD K -//#define MAGIC_KEY_DEBUG_MOUSE M -//#define MAGIC_KEY_VERSION V -//#define MAGIC_KEY_STATUS S -//#define MAGIC_KEY_CONSOLE C -//#define MAGIC_KEY_LAYER0_ALT1 ESC -//#define MAGIC_KEY_LAYER0_ALT2 GRAVE -//#define MAGIC_KEY_LAYER0 0 -//#define MAGIC_KEY_LAYER1 1 -//#define MAGIC_KEY_LAYER2 2 -//#define MAGIC_KEY_LAYER3 3 -//#define MAGIC_KEY_LAYER4 4 -//#define MAGIC_KEY_LAYER5 5 -//#define MAGIC_KEY_LAYER6 6 -//#define MAGIC_KEY_LAYER7 7 -//#define MAGIC_KEY_LAYER8 8 -//#define MAGIC_KEY_LAYER9 9 -//#define MAGIC_KEY_BOOTLOADER PAUSE -//#define MAGIC_KEY_LOCK CAPS -//#define MAGIC_KEY_EEPROM E -//#define MAGIC_KEY_NKRO N -//#define MAGIC_KEY_SLEEP_LED Z - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/the_ruler/rules.mk b/keyboards/the_ruler/rules.mk index fa60d0f3ae2..dc86223dd94 100644 --- a/keyboards/the_ruler/rules.mk +++ b/keyboards/the_ruler/rules.mk @@ -17,6 +17,5 @@ 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 -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. diff --git a/keyboards/the_uni/keymaps/default/keymap.c b/keyboards/the_uni/keymaps/default/keymap.c index 01674d94869..492c7a3c942 100644 --- a/keyboards/the_uni/keymaps/default/keymap.c +++ b/keyboards/the_uni/keymaps/default/keymap.c @@ -19,59 +19,18 @@ along with this program. If not, see . #include "keymap_steno.h" enum uni_layers { -/* - _QWERTY, - _CHOOSE, -*/ - _PLOVER, -}; - -/* -enum uni_keycodes { - PLOVER, - QWERTY + _PLOVER, }; -*/ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* - [_QWERTY] = LAYOUT( - KC_Q, KC_W, KC_E, KC_R, LT(_CHOOSE, KC_T), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, - KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - KC_1, KC_C, KC_V, KC_N, KC_M, KC_2), - [_CHOOSE] = LAYOUT( - _______, _______, _______, _______, _______, PLOVER, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______), -*/ - [_PLOVER] = LAYOUT( - STN_S1, STN_TL, STN_PL, STN_HL, STN_ST1, STN_ST3, STN_FR, STN_PR, STN_LR, STN_TR, STN_DR , - STN_S2, STN_KL, STN_WL, STN_RL, STN_ST2, STN_ST4, STN_RR, STN_BR, STN_GR, STN_SR, STN_ZR , - STN_N1, STN_A, STN_O, STN_E, STN_U, STN_N2), + [_PLOVER] = LAYOUT( + STN_S1, STN_TL, STN_PL, STN_HL, STN_ST1, STN_ST3, STN_FR, STN_PR, STN_LR, STN_TR, STN_DR , + STN_S2, STN_KL, STN_WL, STN_RL, STN_ST2, STN_ST4, STN_RR, STN_BR, STN_GR, STN_SR, STN_ZR , + STN_N1, STN_A, STN_O, STN_E, STN_U, STN_N2), }; -/* -switch (keycode) { - bool process_record_user(uint16_t keycode, keyrecord_t *record) { - case PLOVER: - if (!record->event.pressed) { - layer_on(_PLOVER); - } - return false; - break; - case QWERTY: - if (!record->event.pressed) { - layer_on(_QWERTY); - } - return false; - break; - } - return true; - } -*/ - void matrix_init_user() { - steno_set_mode(STENO_MODE_GEMINI); // or STENO_MODE_BOLT + steno_set_mode(STENO_MODE_GEMINI); // or STENO_MODE_BOLT } diff --git a/keyboards/the_uni/keymaps/qwerty/keymap.c b/keyboards/the_uni/keymaps/qwerty/keymap.c index 3eaac57f3df..b2f03a36135 100644 --- a/keyboards/the_uni/keymaps/qwerty/keymap.c +++ b/keyboards/the_uni/keymaps/qwerty/keymap.c @@ -16,62 +16,15 @@ along with this program. If not, see . */ #include QMK_KEYBOARD_H -//#include "keymap_steno.h" enum uni_layers { - _QWERTY, -/* - _CHOOSE, - _PLOVER, -*/ + _QWERTY, }; -/* -enum uni_keycodes { - PLOVER, - QWERTY -}; -*/ - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = LAYOUT( - KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, - KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - KC_1, KC_C, KC_V, KC_N, KC_M, KC_2), -/* - - [_CHOOSE] = LAYOUT( - _______, _______, _______, _______, _______, PLOVER, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______), - [_PLOVER] = LAYOUT( - STN_S1, STN_TL, STN_PL, STN_HL, STN_ST1, STN_ST3, STN_FR, STN_PR, STN_LR, STN_TR, STN_DR , - STN_S2, STN_KL, STN_WL, STN_RL, STN_ST2, STN_ST4, STN_RR, STN_BR, STN_GR, STN_SR, STN_ZR , - STN_N1, STN_A, STN_O, STN_E, STN_U, STN_N2), -*/ + [_QWERTY] = LAYOUT( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_1, KC_C, KC_V, KC_N, KC_M, KC_2), }; - -/* -switch (keycode) { - bool process_record_user(uint16_t keycode, keyrecord_t *record) { - case PLOVER: - if (!record->event.pressed) { - layer_on(_PLOVER); - } - return false; - break; - case QWERTY: - if (!record->event.pressed) { - layer_on(_QWERTY); - } - return false; - break; - } - return true; - } -*/ - - void matrix_init_user() { - //steno_set_mode(STENO_MODE_GEMINI); // or STENO_MODE_BOLT - } diff --git a/keyboards/the_uni/config.h b/keyboards/the_uni/pro_micro/config.h similarity index 100% rename from keyboards/the_uni/config.h rename to keyboards/the_uni/pro_micro/config.h diff --git a/keyboards/the_uni/pro_micro/pro_micro.c b/keyboards/the_uni/pro_micro/pro_micro.c new file mode 100644 index 00000000000..3d5b3b23bb4 --- /dev/null +++ b/keyboards/the_uni/pro_micro/pro_micro.c @@ -0,0 +1,18 @@ +/* +Copyright 2021 Peter C. Park + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 "pro_micro.h" diff --git a/keyboards/the_uni/the_uni.h b/keyboards/the_uni/pro_micro/pro_micro.h similarity index 100% rename from keyboards/the_uni/the_uni.h rename to keyboards/the_uni/pro_micro/pro_micro.h diff --git a/keyboards/the_uni/pro_micro/readme.md b/keyboards/the_uni/pro_micro/readme.md new file mode 100644 index 00000000000..d6b62315616 --- /dev/null +++ b/keyboards/the_uni/pro_micro/readme.md @@ -0,0 +1,20 @@ +# The Uni + +- Keyboard Maintainer: [Peter](https://github.com/petercpark) +- Link to Keyboard Files: [The_Uni](https://github.com/petercpark/The_Uni) +- Hardware Supported: + - The Uni v1 and v2 (pro_micro) +- Hardware Availability: [https://www.stenokeyboards.com](https://www.stenokeyboards.com) + +# Bootloader + +Enter the bootloader by: + +* **Physical reset button**: On the Uni v3, briefly press the button on the back of the PCB. +* **Reset Pads**: Uni v1 and v2 have pins/pads you must short instead (RST to GND). + +Make examples for this keyboard (after setting up your build environment): + + make the_uni/pro_micro: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/the_uni/pro_micro/rules.mk b/keyboards/the_uni/pro_micro/rules.mk new file mode 100644 index 00000000000..1a595e91e42 --- /dev/null +++ b/keyboards/the_uni/pro_micro/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = no # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output +STENO_ENABLE = yes diff --git a/keyboards/the_uni/readme.md b/keyboards/the_uni/readme.md index 730ea2483d1..cd1c99e4357 100644 --- a/keyboards/the_uni/readme.md +++ b/keyboards/the_uni/readme.md @@ -1,19 +1,31 @@ # The Uni -![The Uni](https://raw.githubusercontent.com/petercpark/The_Uni/main/Pics/layout.png) -![The Uni Closeup](https://github.com/petercpark/The_Uni/blob/main/Pics/close-up-uni.jpg?raw=true) +​ +![Layout](https://docs.stenokeyboards.com/images/uni-layout.png) +![The Uni v2](https://github.com/petercpark/The_Uni/blob/main/Pics/uni%20v2/uni-v2.JPG?raw=true) A compact unibody split ortholinear keyboard made specifically for stenography. -- Keyboard Maintainer: [Peter C. Park](https://github.com/petercpark) -- Link to Keyboard Files: [The_Uni](https://github.com/petercpark/The_Uni) -- Hardware Supported: The Uni v1 and v2 (pro micro or equivalent) -- Hardware Availability: [website](https://www.stenokeyboards.com) +- Keyboard Maintainer: [Peter](https://github.com/petercpark) +- Link to Keyboard Files (pro_micro version): [https://github.com/petercpark/The_Uni](https://github.com/petercpark/The_Uni) +- Hardware Supported: -Make example for this keyboard (after setting up your build environment): + - The Uni v1 and v2 (pro_micro) + - The Uni v3 (usb_c) - make the_uni:default +- Hardware Availability: [https://www.stenokeyboards.com](https://www.stenokeyboards.com) -To enter the bootloader, short the rst and gnd pins with a conductive material such as a tweezer or a wire. Uni v2 will have reset pads next to the pro micro so you can short these pads to reset the pro micro. +# Bootloader + +Enter the bootloader by: + +* **Physical reset button**: On the Uni v3, briefly press the button on the back of the PCB. +* **Reset Pads**: Uni v1 and v2 have pins/pads you must short instead (RST to GND). + +Make examples for this keyboard (after setting up your build environment): + + make the_uni/pro_micro:default + + make the_uni/usb_c: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/the_uni/rules.mk b/keyboards/the_uni/rules.mk deleted file mode 100644 index 36c52b6777a..00000000000 --- a/keyboards/the_uni/rules.mk +++ /dev/null @@ -1,21 +0,0 @@ -# MCU name -MCU = atmega32u4 - -# Bootloader selection -BOOTLOADER = atmel-dfu - - -# Build Options -# comment out to disable the options. -# -BOOTMAGIC_ENABLE = lite # Enable Bootmagic Lite -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend -NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no -FORCE_NKRO = yes -EXTRAKEY_ENABLE = no -MOUSEKEY_ENABLE = no # Mouse keys -STENO_ENABLE = yes diff --git a/keyboards/the_uni/usb_c/config.h b/keyboards/the_uni/usb_c/config.h new file mode 100644 index 00000000000..3110c0d8218 --- /dev/null +++ b/keyboards/the_uni/usb_c/config.h @@ -0,0 +1,52 @@ +/* +Copyright 2021 Peter C. Park + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 0x9000 +#define PRODUCT_ID 0x0001 +#define DEVICE_VER 0x0002 +#define MANUFACTURER stenokeyboards +#define PRODUCT The Uni + +/* key matrix size */ +#define MATRIX_ROWS 3 +#define MATRIX_COLS 11 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { B7, D6, C7 } +#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, D5, D3, D2, D1, D0, 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 + + +/*force the nkro if it does not work*/ +#define FORCE_NKRO diff --git a/keyboards/the_uni/usb_c/readme.md b/keyboards/the_uni/usb_c/readme.md new file mode 100644 index 00000000000..23895db39fb --- /dev/null +++ b/keyboards/the_uni/usb_c/readme.md @@ -0,0 +1,20 @@ +# The Uni v3 Firmware + +- Keyboard Maintainer: [Peter](https://github.com/petercpark) +- Link to Keyboard Files: Not Available +- Hardware Supported: + - The Uni v3 (usb_c) +- Hardware Availability: [https://www.stenokeyboards.com](https://www.stenokeyboards.com) + +## Bootloader + +Enter the bootloader by: + +* **Physical reset button**: On the Uni v3, briefly press the button on the back of the PCB. +* **Reset Pads**: Uni v1 and v2 have pins/pads you must short instead (RST to GND). + +Make examples for this keyboard (after setting up your build environment): + + make the_uni/usb_c: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/the_uni/usb_c/rules.mk b/keyboards/the_uni/usb_c/rules.mk new file mode 100644 index 00000000000..e5d2f2e0422 --- /dev/null +++ b/keyboards/the_uni/usb_c/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 = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = no # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output +STENO_ENABLE = yes diff --git a/keyboards/the_uni/the_uni.c b/keyboards/the_uni/usb_c/usb_c.c similarity index 96% rename from keyboards/the_uni/the_uni.c rename to keyboards/the_uni/usb_c/usb_c.c index b99b06830c6..e690d0a886d 100644 --- a/keyboards/the_uni/the_uni.c +++ b/keyboards/the_uni/usb_c/usb_c.c @@ -15,4 +15,4 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#include "the_uni.h" +#include "usb_c.h" diff --git a/keyboards/the_uni/usb_c/usb_c.h b/keyboards/the_uni/usb_c/usb_c.h new file mode 100644 index 00000000000..9371c3a241d --- /dev/null +++ b/keyboards/the_uni/usb_c/usb_c.h @@ -0,0 +1,30 @@ +/* +Copyright 2021 Peter C. Park + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, \ + K202, K203, K204, K205, K206, K207 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110 }, \ + { KC_NO, KC_NO, K202, K203, K204, K205, K206, K207, KC_NO, KC_NO, KC_NO } \ +} diff --git a/keyboards/thedogkeyboard/config.h b/keyboards/thedogkeyboard/config.h index 89698ca3d4a..099c157cffe 100644 --- a/keyboards/thedogkeyboard/config.h +++ b/keyboards/thedogkeyboard/config.h @@ -118,59 +118,6 @@ along with this program. If not, see . */ //#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. diff --git a/keyboards/thevankeyboards/caravan/rules.mk b/keyboards/thevankeyboards/caravan/rules.mk index b40cdfd96ef..66cda91707b 100644 --- a/keyboards/thevankeyboards/caravan/rules.mk +++ b/keyboards/thevankeyboards/caravan/rules.mk @@ -14,5 +14,4 @@ CONSOLE_ENABLE = yes # Console for debug COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = yes # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output diff --git a/keyboards/thevankeyboards/minivan/keymaps/danbee/rules.mk b/keyboards/thevankeyboards/minivan/keymaps/danbee/rules.mk index b1434f75c84..0a5b666e855 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/danbee/rules.mk +++ b/keyboards/thevankeyboards/minivan/keymaps/danbee/rules.mk @@ -1,2 +1 @@ MOUSEKEY_ENABLE = no -KEYBOARD_LOCK_ENABLE = yes diff --git a/keyboards/thevankeyboards/minivan/rules.mk b/keyboards/thevankeyboards/minivan/rules.mk index 075a44f58de..b3af99d92b8 100644 --- a/keyboards/thevankeyboards/minivan/rules.mk +++ b/keyboards/thevankeyboards/minivan/rules.mk @@ -17,6 +17,5 @@ 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 -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output RGBLIGHT_ENABLE = yes # Enable support for RGB LEDs diff --git a/keyboards/thevankeyboards/roadkit/config.h b/keyboards/thevankeyboards/roadkit/config.h index 815dd715b44..edb1bd91c99 100644 --- a/keyboards/thevankeyboards/roadkit/config.h +++ b/keyboards/thevankeyboards/roadkit/config.h @@ -86,54 +86,6 @@ along with this program. If not, see . */ //#define FORCE_NKRO -/* - * Magic Key Options - * - * Magic keys are hotkey commands that allow control over firmware functions of - * the keyboard. They are best used in combination with the HID Listen program, - * found here: https://www.pjrc.com/teensy/hid_listen.html - * - * The options below allow the magic key functionality to be changed. This is - * useful if your keyboard/keypad is missing keys and you want magic key support. - * - */ - -/* control how magic key switches layers */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false - -/* override magic key keymap */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM -//#define MAGIC_KEY_HELP1 H -//#define MAGIC_KEY_HELP2 SLASH -//#define MAGIC_KEY_DEBUG D -//#define MAGIC_KEY_DEBUG_MATRIX X -//#define MAGIC_KEY_DEBUG_KBD K -//#define MAGIC_KEY_DEBUG_MOUSE M -//#define MAGIC_KEY_VERSION V -//#define MAGIC_KEY_STATUS S -//#define MAGIC_KEY_CONSOLE C -//#define MAGIC_KEY_LAYER0_ALT1 ESC -//#define MAGIC_KEY_LAYER0_ALT2 GRAVE -//#define MAGIC_KEY_LAYER0 0 -//#define MAGIC_KEY_LAYER1 1 -//#define MAGIC_KEY_LAYER2 2 -//#define MAGIC_KEY_LAYER3 3 -//#define MAGIC_KEY_LAYER4 4 -//#define MAGIC_KEY_LAYER5 5 -//#define MAGIC_KEY_LAYER6 6 -//#define MAGIC_KEY_LAYER7 7 -//#define MAGIC_KEY_LAYER8 8 -//#define MAGIC_KEY_LAYER9 9 -//#define MAGIC_KEY_BOOTLOADER PAUSE -//#define MAGIC_KEY_LOCK CAPS -//#define MAGIC_KEY_EEPROM E -//#define MAGIC_KEY_NKRO N -//#define MAGIC_KEY_SLEEP_LED Z - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/thevankeyboards/roadkit/rules.mk b/keyboards/thevankeyboards/roadkit/rules.mk index 51a84eeb95d..4de3295a9d4 100644 --- a/keyboards/thevankeyboards/roadkit/rules.mk +++ b/keyboards/thevankeyboards/roadkit/rules.mk @@ -17,7 +17,6 @@ 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 -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output LAYOUTS = numpad_4x4 ortho_4x4 diff --git a/keyboards/tkc/osav2/config.h b/keyboards/tkc/osav2/config.h index c70fdc98198..5622621e2b8 100644 --- a/keyboards/tkc/osav2/config.h +++ b/keyboards/tkc/osav2/config.h @@ -123,59 +123,6 @@ along with this program. If not, see . */ //#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_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) - -/* 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. diff --git a/keyboards/tkc/osav2/rules.mk b/keyboards/tkc/osav2/rules.mk index ccc6702bc92..6a44150852d 100644 --- a/keyboards/tkc/osav2/rules.mk +++ b/keyboards/tkc/osav2/rules.mk @@ -18,7 +18,6 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = yes # USB Nkey Rollover BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output LTO_ENABLE = yes # Reduces compile size diff --git a/keyboards/tkc/tkc1800/config.h b/keyboards/tkc/tkc1800/config.h index 17441b0849c..02fccd82ff3 100644 --- a/keyboards/tkc/tkc1800/config.h +++ b/keyboards/tkc/tkc1800/config.h @@ -96,54 +96,6 @@ along with this program. If not, see . */ //#define FORCE_NKRO -/* - * Magic Key Options - * - * Magic keys are hotkey commands that allow control over firmware functions of - * the keyboard. They are best used in combination with the HID Listen program, - * found here: https://www.pjrc.com/teensy/hid_listen.html - * - * The options below allow the magic key functionality to be changed. This is - * useful if your keyboard/keypad is missing keys and you want magic key support. - * - */ - -/* control how magic key switches layers */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false - -/* override magic key keymap */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM -//#define MAGIC_KEY_HELP1 H -//#define MAGIC_KEY_HELP2 SLASH -//#define MAGIC_KEY_DEBUG D -//#define MAGIC_KEY_DEBUG_MATRIX X -//#define MAGIC_KEY_DEBUG_KBD K -//#define MAGIC_KEY_DEBUG_MOUSE M -//#define MAGIC_KEY_VERSION V -//#define MAGIC_KEY_STATUS S -//#define MAGIC_KEY_CONSOLE C -//#define MAGIC_KEY_LAYER0_ALT1 ESC -//#define MAGIC_KEY_LAYER0_ALT2 GRAVE -//#define MAGIC_KEY_LAYER0 0 -//#define MAGIC_KEY_LAYER1 1 -//#define MAGIC_KEY_LAYER2 2 -//#define MAGIC_KEY_LAYER3 3 -//#define MAGIC_KEY_LAYER4 4 -//#define MAGIC_KEY_LAYER5 5 -//#define MAGIC_KEY_LAYER6 6 -//#define MAGIC_KEY_LAYER7 7 -//#define MAGIC_KEY_LAYER8 8 -//#define MAGIC_KEY_LAYER9 9 -//#define MAGIC_KEY_BOOTLOADER PAUSE -//#define MAGIC_KEY_LOCK CAPS -//#define MAGIC_KEY_EEPROM E -//#define MAGIC_KEY_NKRO N -//#define MAGIC_KEY_SLEEP_LED Z - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/tkc/tkc1800/rules.mk b/keyboards/tkc/tkc1800/rules.mk index 3e055a8aeec..d97c861178d 100644 --- a/keyboards/tkc/tkc1800/rules.mk +++ b/keyboards/tkc/tkc1800/rules.mk @@ -19,7 +19,6 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = yes # USB Nkey Rollover BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output OLED_ENABLE = yes OLED_DRIVER = SSD1306 diff --git a/keyboards/tkw/grandiceps/config.h b/keyboards/tkw/grandiceps/config.h index 93b6fd02f15..e51c9ab2235 100644 --- a/keyboards/tkw/grandiceps/config.h +++ b/keyboards/tkw/grandiceps/config.h @@ -17,19 +17,17 @@ #include "config_common.h" - /* USB Device descriptor parameter */ #define VENDOR_ID 0xFEED #define PRODUCT_ID 0x7812 #define DEVICE_VER 0x0001 +#define MANUFACTURER tkw #define PRODUCT Grandiceps Split /* key matrix size */ #define MATRIX_ROWS 10 #define MATRIX_COLS 6 - - #define MATRIX_COL_PINS { B0, A7, A3, A5, A4, A2 } #define MATRIX_ROW_PINS { B12, A6, B13, B9, B8 } #define MATRIX_COL_PINS_RIGHT { B0, A7, A3, A5, A4, A2 } @@ -61,7 +59,6 @@ /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 5 - /* disable these deprecated features by default */ #define NO_ACTION_MACRO #define NO_ACTION_FUNCTION diff --git a/keyboards/tkw/grandiceps/info.json b/keyboards/tkw/grandiceps/info.json index 4ca41b73af0..7a4324ffdc0 100644 --- a/keyboards/tkw/grandiceps/info.json +++ b/keyboards/tkw/grandiceps/info.json @@ -2,7 +2,7 @@ "keyboard_name": "grandiceps", "url": "https://github.com/vattern/grandiceps", "maintainer": "vattern", - "manufacturer": "TKW", + "manufacturer": "tkw", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/tkw/grandiceps/keymaps/default/keymap.c b/keyboards/tkw/grandiceps/keymaps/default/keymap.c index 121ae1c4122..14ae9619ead 100644 --- a/keyboards/tkw/grandiceps/keymaps/default/keymap.c +++ b/keyboards/tkw/grandiceps/keymaps/default/keymap.c @@ -35,7 +35,8 @@ enum custom_keycodes { KC_NXTWD, KC_LSTRT, KC_LEND, - KC_DLINE + KC_DLINE, + KC_TEAMS }; @@ -61,7 +62,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_DEL, 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_QUOT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MUTE, XXXXXXX,KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MUTE, KC_TEAMS,KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_LGUI,KC_LALT,KC_LCTRL, KC_LOWER, KC_SPC, KC_ENT, KC_RAISE, KC_RCTRL, KC_RALT, KC_RGUI ), /* @@ -103,7 +104,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_LOWER] = LAYOUT( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_F12, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_NUBS, _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PIPE, _______, KC_EQL, KC_MINS, KC_PLUS, KC_LCBR, KC_RCBR, _______, _______, KC_LBRC, KC_RBRC, KC_SCLN, KC_COLN, KC_BSLS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ @@ -311,6 +312,18 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { unregister_code(KC_Z); } return false; + + case KC_TEAMS: + if (record->event.pressed) { + register_mods(mod_config(MOD_LCTL)); + register_mods(mod_config(MOD_LSFT)); + register_code(KC_M); + } else { + unregister_mods(mod_config(MOD_LCTL)); + unregister_mods(mod_config(MOD_LSFT)); + unregister_code(KC_M); + } + return false; } return true; } @@ -447,7 +460,7 @@ bool encoder_update_user(uint8_t index, bool clockwise){ switch (get_highest_layer(layer_state)) { case _QWERTY: // Scrolling with PageUp and PgDn. - if (clockwise) { + if (!clockwise) { tap_code16(KC_PGDN); } else { tap_code16(KC_PGUP); @@ -462,6 +475,7 @@ bool encoder_update_user(uint8_t index, bool clockwise){ break; } } + return true; } #endif diff --git a/keyboards/tkw/grandiceps/readme.md b/keyboards/tkw/grandiceps/readme.md index 894f1c8d7aa..57a6dac28d5 100644 --- a/keyboards/tkw/grandiceps/readme.md +++ b/keyboards/tkw/grandiceps/readme.md @@ -8,12 +8,26 @@ ARM split keyboard with RGB underglow and encoders. * Hardware Supported: f411 blackpill * Hardware Availability: [grandiceps](https://github.com/vattern/grandiceps) +There are two versions of the Grandiceps. Please use the appropriate firmware for your board. + +* Revision 2 has I2C eeprom and support for a Pimoroni trackball. + Make example for this keyboard (after setting up your build environment): make tkw/grandiceps:default + make tkw/grandiceps/rev2:default Flashing example for this keyboard: make tkw/grandiceps:default:flash + make tkw/grandiceps/rev2: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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset buttons**: Hold down the BOOT0 button and then briefly press the NRST button on the BlackPill PCB. +* **Keycode in layout**: Press the key mapped to `RESET` if it is available diff --git a/keyboards/tkw/grandiceps/rev2/config.h b/keyboards/tkw/grandiceps/rev2/config.h new file mode 100644 index 00000000000..98b762087e8 --- /dev/null +++ b/keyboards/tkw/grandiceps/rev2/config.h @@ -0,0 +1,24 @@ +/* Copyright 2021 Thys de Wet + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 DEVICE_VER +#define DEVICE_VER 0x0002 +#undef PRODUCT +#define PRODUCT Grandiceps Split rev2 + +#define SPLIT_HAND_PIN B3 +#define EEPROM_I2C_24LC64 diff --git a/keyboards/tkw/grandiceps/rev2/rules.mk b/keyboards/tkw/grandiceps/rev2/rules.mk new file mode 100644 index 00000000000..c8f3f05bdd7 --- /dev/null +++ b/keyboards/tkw/grandiceps/rev2/rules.mk @@ -0,0 +1,5 @@ +EEPROM_DRIVER = i2c + +POINTING_DEVICE_ENABLE = yes +SRC += drivers/sensors/pimoroni_trackball.c +QUANTUM_LIB_SRC += i2c_master.c diff --git a/keyboards/tmo50/config.h b/keyboards/tmo50/config.h index 666f9fef15b..4547fcf63ef 100644 --- a/keyboards/tmo50/config.h +++ b/keyboards/tmo50/config.h @@ -111,54 +111,6 @@ along with this program. If not, see . */ //#define FORCE_NKRO -/* - * Magic Key Options - * - * Magic keys are hotkey commands that allow control over firmware functions of - * the keyboard. They are best used in combination with the HID Listen program, - * found here: https://www.pjrc.com/teensy/hid_listen.html - * - * The options below allow the magic key functionality to be changed. This is - * useful if your keyboard/keypad is missing keys and you want magic key support. - * - */ - -/* control how magic key switches layers */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false - -/* override magic key keymap */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM -//#define MAGIC_KEY_HELP1 H -//#define MAGIC_KEY_HELP2 SLASH -//#define MAGIC_KEY_DEBUG D -//#define MAGIC_KEY_DEBUG_MATRIX X -//#define MAGIC_KEY_DEBUG_KBD K -//#define MAGIC_KEY_DEBUG_MOUSE M -//#define MAGIC_KEY_VERSION V -//#define MAGIC_KEY_STATUS S -//#define MAGIC_KEY_CONSOLE C -//#define MAGIC_KEY_LAYER0_ALT1 ESC -//#define MAGIC_KEY_LAYER0_ALT2 GRAVE -//#define MAGIC_KEY_LAYER0 0 -//#define MAGIC_KEY_LAYER1 1 -//#define MAGIC_KEY_LAYER2 2 -//#define MAGIC_KEY_LAYER3 3 -//#define MAGIC_KEY_LAYER4 4 -//#define MAGIC_KEY_LAYER5 5 -//#define MAGIC_KEY_LAYER6 6 -//#define MAGIC_KEY_LAYER7 7 -//#define MAGIC_KEY_LAYER8 8 -//#define MAGIC_KEY_LAYER9 9 -//#define MAGIC_KEY_BOOTLOADER PAUSE -//#define MAGIC_KEY_LOCK CAPS -//#define MAGIC_KEY_EEPROM E -//#define MAGIC_KEY_NKRO N -//#define MAGIC_KEY_SLEEP_LED Z - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/tmo50/rules.mk b/keyboards/tmo50/rules.mk index a881bae71b0..c1677dcd9ed 100644 --- a/keyboards/tmo50/rules.mk +++ b/keyboards/tmo50/rules.mk @@ -18,5 +18,4 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = yes # USB Nkey Rollover BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output diff --git a/keyboards/tokyokeyboard/tokyo60/rules.mk b/keyboards/tokyokeyboard/tokyo60/rules.mk index 2be3157442e..2703c4269f3 100644 --- a/keyboards/tokyokeyboard/tokyo60/rules.mk +++ b/keyboards/tokyokeyboard/tokyo60/rules.mk @@ -13,7 +13,6 @@ EXTRAKEY_ENABLE = yes # Audio control and System control # 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 -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output CONSOLE_ENABLE = no # Console for debug COMMAND_ENABLE = yes # Commands for debug and configuration diff --git a/keyboards/torn/keymaps/manna-harbour_miryoku/config.h b/keyboards/torn/keymaps/manna-harbour_miryoku/config.h index 60ae65d5056..89a67474ca4 100644 --- a/keyboards/torn/keymaps/manna-harbour_miryoku/config.h +++ b/keyboards/torn/keymaps/manna-harbour_miryoku/config.h @@ -1,6 +1,6 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/keyboards/torn/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/torn/keymaps/manna-harbour_miryoku/keymap.c index 1520387e888..7c5717a0fee 100644 --- a/keyboards/torn/keymaps/manna-harbour_miryoku/keymap.c +++ b/keyboards/torn/keymaps/manna-harbour_miryoku/keymap.c @@ -1,5 +1,5 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/keyboards/touchpad/rules.mk b/keyboards/touchpad/rules.mk index ee0e428c2b8..f1febba12ff 100644 --- a/keyboards/touchpad/rules.mk +++ b/keyboards/touchpad/rules.mk @@ -16,7 +16,6 @@ COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality AUDIO_ENABLE = no # Audio output -UNICODE_ENABLE = no # Unicode RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. CUSTOM_MATRIX = yes diff --git a/keyboards/treadstone32/rules.mk b/keyboards/treadstone32/rules.mk index 450541136ef..11c1d342f22 100644 --- a/keyboards/treadstone32/rules.mk +++ b/keyboards/treadstone32/rules.mk @@ -12,7 +12,6 @@ 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 = no # Enable keyboard backlight functionality AUDIO_ENABLE = no # Audio output -UNICODE_ENABLE = no # Unicode RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. LEADER_ENABLE = no diff --git a/keyboards/treadstone48/rev1/config.h b/keyboards/treadstone48/rev1/config.h index 75e5252b3fa..ad9de636d0e 100644 --- a/keyboards/treadstone48/rev1/config.h +++ b/keyboards/treadstone48/rev1/config.h @@ -127,59 +127,6 @@ along with this program. If not, see . */ //#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. diff --git a/keyboards/treadstone48/rev2/config.h b/keyboards/treadstone48/rev2/config.h index e5be65f55c1..6df1467d8cd 100644 --- a/keyboards/treadstone48/rev2/config.h +++ b/keyboards/treadstone48/rev2/config.h @@ -121,59 +121,6 @@ along with this program. If not, see . */ //#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. diff --git a/keyboards/treasure/type9/config.h b/keyboards/treasure/type9/config.h index 1c65a36439c..cc629e3e455 100644 --- a/keyboards/treasure/type9/config.h +++ b/keyboards/treasure/type9/config.h @@ -99,54 +99,6 @@ along with this program. If not, see . */ //#define FORCE_NKRO -/* - * Magic Key Options - * - * Magic keys are hotkey commands that allow control over firmware functions of - * the keyboard. They are best used in combination with the HID Listen program, - * found here: https://www.pjrc.com/teensy/hid_listen.html - * - * The options below allow the magic key functionality to be changed. This is - * useful if your keyboard/keypad is missing keys and you want magic key support. - * - */ - -/* control how magic key switches layers */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false - -/* override magic key keymap */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM -//#define MAGIC_KEY_HELP1 H -//#define MAGIC_KEY_HELP2 SLASH -//#define MAGIC_KEY_DEBUG D -//#define MAGIC_KEY_DEBUG_MATRIX X -//#define MAGIC_KEY_DEBUG_KBD K -//#define MAGIC_KEY_DEBUG_MOUSE M -//#define MAGIC_KEY_VERSION V -//#define MAGIC_KEY_STATUS S -//#define MAGIC_KEY_CONSOLE C -//#define MAGIC_KEY_LAYER0_ALT1 ESC -//#define MAGIC_KEY_LAYER0_ALT2 GRAVE -//#define MAGIC_KEY_LAYER0 0 -//#define MAGIC_KEY_LAYER1 1 -//#define MAGIC_KEY_LAYER2 2 -//#define MAGIC_KEY_LAYER3 3 -//#define MAGIC_KEY_LAYER4 4 -//#define MAGIC_KEY_LAYER5 5 -//#define MAGIC_KEY_LAYER6 6 -//#define MAGIC_KEY_LAYER7 7 -//#define MAGIC_KEY_LAYER8 8 -//#define MAGIC_KEY_LAYER9 9 -//#define MAGIC_KEY_BOOTLOADER PAUSE -//#define MAGIC_KEY_LOCK CAPS -//#define MAGIC_KEY_EEPROM E -//#define MAGIC_KEY_NKRO N -//#define MAGIC_KEY_SLEEP_LED Z - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/treasure/type9/rules.mk b/keyboards/treasure/type9/rules.mk index f61fb39a1ce..f752158eec5 100644 --- a/keyboards/treasure/type9/rules.mk +++ b/keyboards/treasure/type9/rules.mk @@ -18,5 +18,4 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = no # USB Nkey Rollover BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output diff --git a/keyboards/ua62/config.h b/keyboards/ua62/config.h index c27ceafeb32..492bba93e8f 100644 --- a/keyboards/ua62/config.h +++ b/keyboards/ua62/config.h @@ -122,59 +122,6 @@ along with this program. If not, see . */ //#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. diff --git a/keyboards/undead60m/info.json b/keyboards/undead60m/info.json deleted file mode 100644 index 81f5a220afe..00000000000 --- a/keyboards/undead60m/info.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "keyboard_name": "Undead-60M", - "url": "", - "maintainer": "qmk", - "layouts": { - "LAYOUT": { - "layout": [ - {"label": "F1", "x": 0, "y": 0}, {"label": "F2", "x": 1, "y": 0}, {"label": "Esc", "x": 3.5, "y": 0}, {"label": "1", "x": 4.5, "y": 0}, {"label": "2", "x": 5.5, "y": 0}, {"label": "3", "x": 6.5, "y": 0}, {"label": "4", "x": 7.5, "y": 0}, {"label": "5", "x": 8.5, "y": 0}, {"label": "6", "x": 9.5, "y": 0}, {"label": "7", "x": 10.5, "y": 0}, {"label": "8", "x": 11.5, "y": 0}, {"label": "9", "x": 12.5, "y": 0}, {"label": "0", "x": 13.5, "y": 0}, {"label": "-", "x": 14.5, "y": 0}, {"label": "=", "x": 15.5, "y": 0}, {"label": "Backspace", "x": 16.5, "y": 0}, - {"label": "F2", "x": 0, "y": 1}, {"label": "F3", "x": 1, "y": 1}, {"label": "Tab", "x": 3.5, "y": 1}, {"label": "Q", "x": 5, "y": 1}, {"label": "W", "x": 6, "y": 1}, {"label": "E", "x": 7, "y": 1}, {"label": "R", "x": 8, "y": 1}, {"label": "T", "x": 9, "y": 1}, {"label": "Y", "x": 10, "y": 1}, {"label": "U", "x": 11, "y": 1}, {"label": "I", "x": 12, "y": 1}, {"label": "O", "x": 13, "y": 1}, {"label": "P", "x": 14, "y": 1}, {"label": "[", "x": 15, "y": 1}, {"label": "]", "x": 16, "y": 1}, {"label": "|", "x": 17, "y": 1}, - {"label": "F4", "x": 0, "y": 2}, {"label": "F5", "x": 1, "y": 2}, {"label": "Caps", "x": 3.5, "y": 2}, {"label": "A", "x": 5.25, "y": 2}, {"label": "S", "x": 6.25, "y": 2}, {"label": "D", "x": 7.25, "y": 2}, {"label": "F", "x": 8.25, "y": 2}, {"label": "G", "x": 9.25, "y": 2}, {"label": "H", "x": 10.25, "y": 2}, {"label": "J", "x": 11.25, "y": 2}, {"label": "K", "x": 12.25, "y": 2}, {"label": "L", "x": 13.25, "y": 2}, {"label": ";", "x": 14.25, "y": 2}, {"label": "'", "x": 15.25, "y": 2}, {"label": "Enter", "x": 16.25, "y": 2}, - {"label": "F6", "x": 0, "y": 3}, {"label": "F7", "x": 1, "y": 3}, {"label": "Shift", "x": 3.5, "y": 3}, {"label": "Z", "x": 5.5, "y": 3}, {"label": "X", "x": 6.5, "y": 3}, {"label": "C", "x": 7.5, "y": 3}, {"label": "V", "x": 8.5, "y": 3}, {"label": "B", "x": 9.5, "y": 3}, {"label": "N", "x": 10.5, "y": 3}, {"label": "M", "x": 11.5, "y": 3}, {"label": ",", "x": 12.5, "y": 3}, {"label": ".", "x": 13.5, "y": 3}, {"label": "/", "x": 14.5, "y": 3}, {"label": "Shift", "x": 15.5, "y": 3}, - {"label": "F1", "x": 0, "y": 4}, {"label": "F2", "x": 1, "y": 4}, {"label": "Ctrl", "x": 3.5, "y": 4}, {"label": "OS", "x": 4.75, "y": 4}, {"label": "Alt", "x": 6, "y": 4}, {"label": "Space", "x": 7.25, "y": 4}, {"label": "Alt", "x": 13.5, "y": 4}, {"label": "OS", "x": 14.75, "y": 4}, {"label": "Ctrl", "x": 16, "y": 4}, {"label": "Fn", "x": 17.25, "y": 4} - ] - } - } -} diff --git a/keyboards/uranuma/config.h b/keyboards/uranuma/config.h index b3dc62b52d5..c5acad4882f 100644 --- a/keyboards/uranuma/config.h +++ b/keyboards/uranuma/config.h @@ -108,59 +108,6 @@ */ //#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. diff --git a/keyboards/uranuma/rules.mk b/keyboards/uranuma/rules.mk index 5c865ddd1ba..0b804e053c3 100644 --- a/keyboards/uranuma/rules.mk +++ b/keyboards/uranuma/rules.mk @@ -18,8 +18,6 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = no # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output -#COMBO_ENABLE = yes #SRC += .nicola.c \ diff --git a/keyboards/ut472/rules.mk b/keyboards/ut472/rules.mk index 48b730df25b..23a07300526 100644 --- a/keyboards/ut472/rules.mk +++ b/keyboards/ut472/rules.mk @@ -17,6 +17,5 @@ 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 -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output RGBLIGHT_ENABLE = yes diff --git a/keyboards/uzu42/rules.mk b/keyboards/uzu42/rules.mk index ac742c8c02e..d33fedf728c 100644 --- a/keyboards/uzu42/rules.mk +++ b/keyboards/uzu42/rules.mk @@ -16,7 +16,6 @@ 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 = no # Enable keyboard backlight functionality AUDIO_ENABLE = no # Audio output -UNICODE_ENABLE = no # Unicode RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend diff --git a/keyboards/v60_type_r/config.h b/keyboards/v60_type_r/config.h index cc6c1f45082..c013bb99314 100644 --- a/keyboards/v60_type_r/config.h +++ b/keyboards/v60_type_r/config.h @@ -100,54 +100,6 @@ along with this program. If not, see . */ //#define FORCE_NKRO -/* - * Magic Key Options - * - * Magic keys are hotkey commands that allow control over firmware functions of - * the keyboard. They are best used in combination with the HID Listen program, - * found here: https://www.pjrc.com/teensy/hid_listen.html - * - * The options below allow the magic key functionality to be changed. This is - * useful if your keyboard/keypad is missing keys and you want magic key support. - * - */ - -/* control how magic key switches layers */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false - -/* override magic key keymap */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM -//#define MAGIC_KEY_HELP1 H -//#define MAGIC_KEY_HELP2 SLASH -//#define MAGIC_KEY_DEBUG D -//#define MAGIC_KEY_DEBUG_MATRIX X -//#define MAGIC_KEY_DEBUG_KBD K -//#define MAGIC_KEY_DEBUG_MOUSE M -//#define MAGIC_KEY_VERSION V -//#define MAGIC_KEY_STATUS S -//#define MAGIC_KEY_CONSOLE C -//#define MAGIC_KEY_LAYER0_ALT1 ESC -//#define MAGIC_KEY_LAYER0_ALT2 GRAVE -//#define MAGIC_KEY_LAYER0 0 -//#define MAGIC_KEY_LAYER1 1 -//#define MAGIC_KEY_LAYER2 2 -//#define MAGIC_KEY_LAYER3 3 -//#define MAGIC_KEY_LAYER4 4 -//#define MAGIC_KEY_LAYER5 5 -//#define MAGIC_KEY_LAYER6 6 -//#define MAGIC_KEY_LAYER7 7 -//#define MAGIC_KEY_LAYER8 8 -//#define MAGIC_KEY_LAYER9 9 -//#define MAGIC_KEY_BOOTLOADER PAUSE -//#define MAGIC_KEY_LOCK CAPS -//#define MAGIC_KEY_EEPROM E -//#define MAGIC_KEY_NKRO N -//#define MAGIC_KEY_SLEEP_LED Z - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/v60_type_r/rules.mk b/keyboards/v60_type_r/rules.mk index 57c21f367d4..0f1ac6a5766 100644 --- a/keyboards/v60_type_r/rules.mk +++ b/keyboards/v60_type_r/rules.mk @@ -19,7 +19,6 @@ NKRO_ENABLE = no # USB Nkey Rollover BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable the RGB Underglow RGBLIGHT_CUSTOM_DRIVER = yes -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output LTO_ENABLE = yes diff --git a/keyboards/viktus/sp_mini/keymaps/peott-fr/keymap.c b/keyboards/viktus/sp_mini/keymaps/peott-fr/keymap.c new file mode 100644 index 00000000000..93d65c93a21 --- /dev/null +++ b/keyboards/viktus/sp_mini/keymaps/peott-fr/keymap.c @@ -0,0 +1,117 @@ + /* Copyright 2021 peott + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 by name +enum custom_layers { + _BASE, + _LHAND, + _RHAND, + _NUM +}; + +// Layers defined by function +#define LHAND LT(_LHAND,KC_SPC) +#define RHAND LT(_RHAND,KC_BSPC) +#define NUM TG(_NUM) +// Keycodes for cleaner code +#define L_CTRL LCTL_T(KC_MPRV) +#define L_ALT LALT_T(KC_MNXT) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_all( + KC_MPLY, 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_TRNS, 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, NUM, + KC_TRNS, 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_DEL, + KC_TRNS, KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, + KC_TRNS, L_CTRL, KC_LGUI, L_ALT, KC_NO, LHAND, RHAND, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [_LHAND] = LAYOUT_all( + RESET, 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_HOME, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_TRNS, KC_TRNS, + KC_PGUP, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_ENT, KC_TRNS, + KC_PGDN, KC_LSFT, KC_CALC, KC_MYCM, KC_TRNS, KC_ENT, KC_BSPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_RSPC, KC_TRNS, + KC_END, KC_LCTL, KC_TRNS, KC_LALT, KC_TRNS, KC_TRNS, KC_TRNS, KC_RALT, KC_RCTL, KC_TRNS, KC_TRNS, KC_TRNS + ), + [_RHAND] = LAYOUT_all( + 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, KC_NO, + KC_NO, 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_NO, KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_UNDS, KC_PLUS, KC_NO, KC_PIPE, + KC_NO, KC_LSFT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_RSPC, 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 + ), + [_NUM] = LAYOUT_all( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, KC_NO, KC_NO, KC_NO, KC_F13, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_NO, KC_NO, KC_NO, NUM, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_P4, KC_P5, KC_P6, KC_PCMM, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_P1, KC_P2, KC_P3, KC_PEQL, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_P0, KC_PDOT, KC_PENT, KC_NO, KC_NO, KC_NO + ) +}; + +void keyboard_pre_init_user(void) { + setPinOutput(F5); // initialize F5 for LED + setPinOutput(F6); // initialize F6 for LED + setPinOutput(F7); // initialize F7 for LED +} + +layer_state_t layer_state_set_user(layer_state_t state) { + writePinLow(F5); + writePinLow(F6); + writePinLow(F7); + switch (get_highest_layer(state)) { + case _LHAND: + writePinHigh(F5); + break; + case _RHAND: + writePinHigh(F6); + break; + case _NUM: // replace 'XXXX' with the layer or function name + writePinHigh(F7); + break; + case KC_F13: + writePinHigh(F7); + writePinHigh(F5); + writePinHigh(F6); + break; + } + return state; +} + +bool spongebob_mode = false; +bool spongebob_case = false; +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (spongebob_mode) { + switch(keycode) { + case KC_A...KC_Z: + if (record->event.pressed) { + (spongebob_case ^= 1) == 0 ? tap_code16(S(keycode)) : tap_code(keycode); + return false; break; + } + } + } + switch(keycode) { + case KC_F13: + if (record->event.pressed) { + spongebob_mode ^= 1; + } + return false; break; + } + return true; +} + + diff --git a/keyboards/vitamins_included/rules.mk b/keyboards/vitamins_included/rules.mk index 7861da178f5..3fac08dabed 100644 --- a/keyboards/vitamins_included/rules.mk +++ b/keyboards/vitamins_included/rules.mk @@ -15,7 +15,6 @@ EXTRAKEY_ENABLE = yes # Audio control and System control MOUSEKEY_ENABLE = no # Mouse keys NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. -UNICODE_ENABLE = no # Unicode # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend diff --git a/keyboards/waldo/rules.mk b/keyboards/waldo/rules.mk index e1a743e0e72..2a1bb2cab7f 100644 --- a/keyboards/waldo/rules.mk +++ b/keyboards/waldo/rules.mk @@ -16,7 +16,6 @@ COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = yes # 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 AUDIO_ENABLE = no # Audio output -UNICODE_ENABLE = no # Unicode RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE diff --git a/keyboards/wallaby/config.h b/keyboards/wallaby/config.h index c81c97ff1c2..3c0d446418e 100644 --- a/keyboards/wallaby/config.h +++ b/keyboards/wallaby/config.h @@ -121,59 +121,6 @@ along with this program. If not, see . */ //#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. diff --git a/keyboards/westfoxtrot/aanzee/rules.mk b/keyboards/westfoxtrot/aanzee/rules.mk index 9f155049416..8107a9534d3 100644 --- a/keyboards/westfoxtrot/aanzee/rules.mk +++ b/keyboards/westfoxtrot/aanzee/rules.mk @@ -16,5 +16,4 @@ NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https:/ RGBLIGHT_ENABLE = yes # Enable keyboard underlight functionality BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality AUDIO_ENABLE = no -UNICODE_ENABLE = no # Unicode diff --git a/keyboards/westfoxtrot/cyclops/config.h b/keyboards/westfoxtrot/cyclops/config.h index 4ad660695de..ce5d3bbbc1e 100644 --- a/keyboards/westfoxtrot/cyclops/config.h +++ b/keyboards/westfoxtrot/cyclops/config.h @@ -86,54 +86,6 @@ along with this program. If not, see . */ //#define FORCE_NKRO -/* - * Magic Key Options - * - * Magic keys are hotkey commands that allow control over firmware functions of - * the keyboard. They are best used in combination with the HID Listen program, - * found here: https://www.pjrc.com/teensy/hid_listen.html - * - * The options below allow the magic key functionality to be changed. This is - * useful if your keyboard/keypad is missing keys and you want magic key support. - * - */ - -/* control how magic key switches layers */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false - -/* override magic key keymap */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM -//#define MAGIC_KEY_HELP1 H -//#define MAGIC_KEY_HELP2 SLASH -//#define MAGIC_KEY_DEBUG D -//#define MAGIC_KEY_DEBUG_MATRIX X -//#define MAGIC_KEY_DEBUG_KBD K -//#define MAGIC_KEY_DEBUG_MOUSE M -//#define MAGIC_KEY_VERSION V -//#define MAGIC_KEY_STATUS S -//#define MAGIC_KEY_CONSOLE C -//#define MAGIC_KEY_LAYER0_ALT1 ESC -//#define MAGIC_KEY_LAYER0_ALT2 GRAVE -//#define MAGIC_KEY_LAYER0 0 -//#define MAGIC_KEY_LAYER1 1 -//#define MAGIC_KEY_LAYER2 2 -//#define MAGIC_KEY_LAYER3 3 -//#define MAGIC_KEY_LAYER4 4 -//#define MAGIC_KEY_LAYER5 5 -//#define MAGIC_KEY_LAYER6 6 -//#define MAGIC_KEY_LAYER7 7 -//#define MAGIC_KEY_LAYER8 8 -//#define MAGIC_KEY_LAYER9 9 -//#define MAGIC_KEY_BOOTLOADER PAUSE -//#define MAGIC_KEY_LOCK CAPS -//#define MAGIC_KEY_EEPROM E -//#define MAGIC_KEY_NKRO N -//#define MAGIC_KEY_SLEEP_LED Z - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/westfoxtrot/cyclops/rules.mk b/keyboards/westfoxtrot/cyclops/rules.mk index a4fe1236510..1a11791486a 100644 --- a/keyboards/westfoxtrot/cyclops/rules.mk +++ b/keyboards/westfoxtrot/cyclops/rules.mk @@ -18,5 +18,4 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = yes # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output diff --git a/keyboards/westfoxtrot/cypher/rev1/rules.mk b/keyboards/westfoxtrot/cypher/rev1/rules.mk index 25e7b4b658b..78298572703 100644 --- a/keyboards/westfoxtrot/cypher/rev1/rules.mk +++ b/keyboards/westfoxtrot/cypher/rev1/rules.mk @@ -18,5 +18,4 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = yes # USB Nkey Rollover BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output diff --git a/keyboards/westfoxtrot/cypher/rev5/rules.mk b/keyboards/westfoxtrot/cypher/rev5/rules.mk index 5c4ab230c2e..c8d113f48cd 100644 --- a/keyboards/westfoxtrot/cypher/rev5/rules.mk +++ b/keyboards/westfoxtrot/cypher/rev5/rules.mk @@ -18,5 +18,4 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = yes # USB Nkey Rollover BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output diff --git a/keyboards/wheatfield/blocked65/rules.mk b/keyboards/wheatfield/blocked65/rules.mk index f8ade5009b3..f0b84d209f3 100644 --- a/keyboards/wheatfield/blocked65/rules.mk +++ b/keyboards/wheatfield/blocked65/rules.mk @@ -19,6 +19,5 @@ NKRO_ENABLE = no # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -UNICODE_ENABLE = no # Unicode LAYOUTS = 65_ansi_blocker diff --git a/keyboards/wilba_tech/rama_works_koyu/rules.mk b/keyboards/wilba_tech/rama_works_koyu/rules.mk index c73652815b2..803847b53c9 100644 --- a/keyboards/wilba_tech/rama_works_koyu/rules.mk +++ b/keyboards/wilba_tech/rama_works_koyu/rules.mk @@ -21,7 +21,6 @@ COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality AUDIO_ENABLE = no # Audio output -UNICODE_ENABLE = no # Unicode RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE diff --git a/keyboards/wilba_tech/rama_works_m10_b/config.h b/keyboards/wilba_tech/rama_works_m10_b/config.h index 4d41aae5678..d30cf7fe84e 100644 --- a/keyboards/wilba_tech/rama_works_m10_b/config.h +++ b/keyboards/wilba_tech/rama_works_m10_b/config.h @@ -90,54 +90,6 @@ along with this program. If not, see . */ //#define FORCE_NKRO -/* - * Magic Key Options - * - * Magic keys are hotkey commands that allow control over firmware functions of - * the keyboard. They are best used in combination with the HID Listen program, - * found here: https://www.pjrc.com/teensy/hid_listen.html - * - * The options below allow the magic key functionality to be changed. This is - * useful if your keyboard/keypad is missing keys and you want magic key support. - * - */ - -/* control how magic key switches layers */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false - -/* override magic key keymap */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM -//#define MAGIC_KEY_HELP1 H -//#define MAGIC_KEY_HELP2 SLASH -//#define MAGIC_KEY_DEBUG D -//#define MAGIC_KEY_DEBUG_MATRIX X -//#define MAGIC_KEY_DEBUG_KBD K -//#define MAGIC_KEY_DEBUG_MOUSE M -//#define MAGIC_KEY_VERSION V -//#define MAGIC_KEY_STATUS S -//#define MAGIC_KEY_CONSOLE C -//#define MAGIC_KEY_LAYER0_ALT1 ESC -//#define MAGIC_KEY_LAYER0_ALT2 GRAVE -//#define MAGIC_KEY_LAYER0 0 -//#define MAGIC_KEY_LAYER1 1 -//#define MAGIC_KEY_LAYER2 2 -//#define MAGIC_KEY_LAYER3 3 -//#define MAGIC_KEY_LAYER4 4 -//#define MAGIC_KEY_LAYER5 5 -//#define MAGIC_KEY_LAYER6 6 -//#define MAGIC_KEY_LAYER7 7 -//#define MAGIC_KEY_LAYER8 8 -//#define MAGIC_KEY_LAYER9 9 -//#define MAGIC_KEY_BOOTLOADER PAUSE -//#define MAGIC_KEY_LOCK CAPS -//#define MAGIC_KEY_EEPROM E -//#define MAGIC_KEY_NKRO N -//#define MAGIC_KEY_SLEEP_LED Z - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/wilba_tech/rama_works_m10_b/rules.mk b/keyboards/wilba_tech/rama_works_m10_b/rules.mk index df4c1b12c12..0bedbef4539 100644 --- a/keyboards/wilba_tech/rama_works_m10_b/rules.mk +++ b/keyboards/wilba_tech/rama_works_m10_b/rules.mk @@ -17,5 +17,4 @@ 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 -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output diff --git a/keyboards/wilba_tech/rama_works_m60_a/rules.mk b/keyboards/wilba_tech/rama_works_m60_a/rules.mk index 5bcc1b9b79d..c75ab4e04f0 100644 --- a/keyboards/wilba_tech/rama_works_m60_a/rules.mk +++ b/keyboards/wilba_tech/rama_works_m60_a/rules.mk @@ -21,7 +21,6 @@ COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality AUDIO_ENABLE = no # Audio output -UNICODE_ENABLE = no # Unicode RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE diff --git a/keyboards/wilba_tech/rama_works_m6_a/rules.mk b/keyboards/wilba_tech/rama_works_m6_a/rules.mk index fb3f1ea5607..446bf71d476 100644 --- a/keyboards/wilba_tech/rama_works_m6_a/rules.mk +++ b/keyboards/wilba_tech/rama_works_m6_a/rules.mk @@ -20,7 +20,6 @@ COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality AUDIO_ENABLE = no # Audio output -UNICODE_ENABLE = no # Unicode RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE diff --git a/keyboards/wilba_tech/rama_works_m6_b/rules.mk b/keyboards/wilba_tech/rama_works_m6_b/rules.mk index e12acee8996..d0d63b3dfcf 100644 --- a/keyboards/wilba_tech/rama_works_m6_b/rules.mk +++ b/keyboards/wilba_tech/rama_works_m6_b/rules.mk @@ -20,7 +20,6 @@ COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality AUDIO_ENABLE = no # Audio output -UNICODE_ENABLE = no # Unicode RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE diff --git a/keyboards/wilba_tech/rama_works_u80_a/config.h b/keyboards/wilba_tech/rama_works_u80_a/config.h index 0985183d3e0..2bc32a70068 100644 --- a/keyboards/wilba_tech/rama_works_u80_a/config.h +++ b/keyboards/wilba_tech/rama_works_u80_a/config.h @@ -89,54 +89,6 @@ */ //#define FORCE_NKRO -/* - * Magic Key Options - * - * Magic keys are hotkey commands that allow control over firmware functions of - * the keyboard. They are best used in combination with the HID Listen program, - * found here: https://www.pjrc.com/teensy/hid_listen.html - * - * The options below allow the magic key functionality to be changed. This is - * useful if your keyboard/keypad is missing keys and you want magic key support. - * - */ - -/* control how magic key switches layers */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false - -/* override magic key keymap */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM -//#define MAGIC_KEY_HELP1 H -//#define MAGIC_KEY_HELP2 SLASH -//#define MAGIC_KEY_DEBUG D -//#define MAGIC_KEY_DEBUG_MATRIX X -//#define MAGIC_KEY_DEBUG_KBD K -//#define MAGIC_KEY_DEBUG_MOUSE M -//#define MAGIC_KEY_VERSION V -//#define MAGIC_KEY_STATUS S -//#define MAGIC_KEY_CONSOLE C -//#define MAGIC_KEY_LAYER0_ALT1 ESC -//#define MAGIC_KEY_LAYER0_ALT2 GRAVE -//#define MAGIC_KEY_LAYER0 0 -//#define MAGIC_KEY_LAYER1 1 -//#define MAGIC_KEY_LAYER2 2 -//#define MAGIC_KEY_LAYER3 3 -//#define MAGIC_KEY_LAYER4 4 -//#define MAGIC_KEY_LAYER5 5 -//#define MAGIC_KEY_LAYER6 6 -//#define MAGIC_KEY_LAYER7 7 -//#define MAGIC_KEY_LAYER8 8 -//#define MAGIC_KEY_LAYER9 9 -//#define MAGIC_KEY_BOOTLOADER PAUSE -//#define MAGIC_KEY_LOCK CAPS -//#define MAGIC_KEY_EEPROM E -//#define MAGIC_KEY_NKRO N -//#define MAGIC_KEY_SLEEP_LED Z - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/wilba_tech/rama_works_u80_a/rules.mk b/keyboards/wilba_tech/rama_works_u80_a/rules.mk index 52b6125a4eb..ceedde0d4e9 100644 --- a/keyboards/wilba_tech/rama_works_u80_a/rules.mk +++ b/keyboards/wilba_tech/rama_works_u80_a/rules.mk @@ -17,7 +17,6 @@ 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 -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output CIE1931_CURVE = yes diff --git a/keyboards/wilba_tech/wt60_a/config.h b/keyboards/wilba_tech/wt60_a/config.h index bfb524c4e80..587c9b9ae79 100644 --- a/keyboards/wilba_tech/wt60_a/config.h +++ b/keyboards/wilba_tech/wt60_a/config.h @@ -89,54 +89,6 @@ */ //#define FORCE_NKRO -/* - * Magic Key Options - * - * Magic keys are hotkey commands that allow control over firmware functions of - * the keyboard. They are best used in combination with the HID Listen program, - * found here: https://www.pjrc.com/teensy/hid_listen.html - * - * The options below allow the magic key functionality to be changed. This is - * useful if your keyboard/keypad is missing keys and you want magic key support. - * - */ - -/* control how magic key switches layers */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false - -/* override magic key keymap */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM -//#define MAGIC_KEY_HELP1 H -//#define MAGIC_KEY_HELP2 SLASH -//#define MAGIC_KEY_DEBUG D -//#define MAGIC_KEY_DEBUG_MATRIX X -//#define MAGIC_KEY_DEBUG_KBD K -//#define MAGIC_KEY_DEBUG_MOUSE M -//#define MAGIC_KEY_VERSION V -//#define MAGIC_KEY_STATUS S -//#define MAGIC_KEY_CONSOLE C -//#define MAGIC_KEY_LAYER0_ALT1 ESC -//#define MAGIC_KEY_LAYER0_ALT2 GRAVE -//#define MAGIC_KEY_LAYER0 0 -//#define MAGIC_KEY_LAYER1 1 -//#define MAGIC_KEY_LAYER2 2 -//#define MAGIC_KEY_LAYER3 3 -//#define MAGIC_KEY_LAYER4 4 -//#define MAGIC_KEY_LAYER5 5 -//#define MAGIC_KEY_LAYER6 6 -//#define MAGIC_KEY_LAYER7 7 -//#define MAGIC_KEY_LAYER8 8 -//#define MAGIC_KEY_LAYER9 9 -//#define MAGIC_KEY_BOOTLOADER PAUSE -//#define MAGIC_KEY_LOCK CAPS -//#define MAGIC_KEY_EEPROM E -//#define MAGIC_KEY_NKRO N -//#define MAGIC_KEY_SLEEP_LED Z - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/wilba_tech/wt60_a/rules.mk b/keyboards/wilba_tech/wt60_a/rules.mk index 879d6de4c95..2c07cd045de 100644 --- a/keyboards/wilba_tech/wt60_a/rules.mk +++ b/keyboards/wilba_tech/wt60_a/rules.mk @@ -17,7 +17,6 @@ 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 -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output # project specific files diff --git a/keyboards/wilba_tech/wt60_b/rules.mk b/keyboards/wilba_tech/wt60_b/rules.mk index 575120b390b..252739a1a43 100644 --- a/keyboards/wilba_tech/wt60_b/rules.mk +++ b/keyboards/wilba_tech/wt60_b/rules.mk @@ -21,7 +21,6 @@ COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality AUDIO_ENABLE = no # Audio output -UNICODE_ENABLE = no # Unicode RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE diff --git a/keyboards/wilba_tech/wt60_bx/rules.mk b/keyboards/wilba_tech/wt60_bx/rules.mk index 575120b390b..252739a1a43 100644 --- a/keyboards/wilba_tech/wt60_bx/rules.mk +++ b/keyboards/wilba_tech/wt60_bx/rules.mk @@ -21,7 +21,6 @@ COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality AUDIO_ENABLE = no # Audio output -UNICODE_ENABLE = no # Unicode RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE diff --git a/keyboards/wilba_tech/wt60_c/rules.mk b/keyboards/wilba_tech/wt60_c/rules.mk index 575120b390b..252739a1a43 100644 --- a/keyboards/wilba_tech/wt60_c/rules.mk +++ b/keyboards/wilba_tech/wt60_c/rules.mk @@ -21,7 +21,6 @@ COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality AUDIO_ENABLE = no # Audio output -UNICODE_ENABLE = no # Unicode RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE diff --git a/keyboards/wilba_tech/wt60_d/config.h b/keyboards/wilba_tech/wt60_d/config.h index 1588f4c5701..e6d367f4b1c 100644 --- a/keyboards/wilba_tech/wt60_d/config.h +++ b/keyboards/wilba_tech/wt60_d/config.h @@ -89,54 +89,6 @@ */ //#define FORCE_NKRO -/* - * Magic Key Options - * - * Magic keys are hotkey commands that allow control over firmware functions of - * the keyboard. They are best used in combination with the HID Listen program, - * found here: https://www.pjrc.com/teensy/hid_listen.html - * - * The options below allow the magic key functionality to be changed. This is - * useful if your keyboard/keypad is missing keys and you want magic key support. - * - */ - -/* control how magic key switches layers */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false - -/* override magic key keymap */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM -//#define MAGIC_KEY_HELP1 H -//#define MAGIC_KEY_HELP2 SLASH -//#define MAGIC_KEY_DEBUG D -//#define MAGIC_KEY_DEBUG_MATRIX X -//#define MAGIC_KEY_DEBUG_KBD K -//#define MAGIC_KEY_DEBUG_MOUSE M -//#define MAGIC_KEY_VERSION V -//#define MAGIC_KEY_STATUS S -//#define MAGIC_KEY_CONSOLE C -//#define MAGIC_KEY_LAYER0_ALT1 ESC -//#define MAGIC_KEY_LAYER0_ALT2 GRAVE -//#define MAGIC_KEY_LAYER0 0 -//#define MAGIC_KEY_LAYER1 1 -//#define MAGIC_KEY_LAYER2 2 -//#define MAGIC_KEY_LAYER3 3 -//#define MAGIC_KEY_LAYER4 4 -//#define MAGIC_KEY_LAYER5 5 -//#define MAGIC_KEY_LAYER6 6 -//#define MAGIC_KEY_LAYER7 7 -//#define MAGIC_KEY_LAYER8 8 -//#define MAGIC_KEY_LAYER9 9 -//#define MAGIC_KEY_BOOTLOADER PAUSE -//#define MAGIC_KEY_LOCK CAPS -//#define MAGIC_KEY_EEPROM E -//#define MAGIC_KEY_NKRO N -//#define MAGIC_KEY_SLEEP_LED Z - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/wilba_tech/wt60_d/rules.mk b/keyboards/wilba_tech/wt60_d/rules.mk index df4c1b12c12..0bedbef4539 100644 --- a/keyboards/wilba_tech/wt60_d/rules.mk +++ b/keyboards/wilba_tech/wt60_d/rules.mk @@ -17,5 +17,4 @@ 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 -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output diff --git a/keyboards/wilba_tech/wt60_xt/config.h b/keyboards/wilba_tech/wt60_xt/config.h index a16c3c063ac..43f3f70db80 100644 --- a/keyboards/wilba_tech/wt60_xt/config.h +++ b/keyboards/wilba_tech/wt60_xt/config.h @@ -92,54 +92,6 @@ */ //#define FORCE_NKRO -/* - * Magic Key Options - * - * Magic keys are hotkey commands that allow control over firmware functions of - * the keyboard. They are best used in combination with the HID Listen program, - * found here: https://www.pjrc.com/teensy/hid_listen.html - * - * The options below allow the magic key functionality to be changed. This is - * useful if your keyboard/keypad is missing keys and you want magic key support. - * - */ - -/* control how magic key switches layers */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false - -/* override magic key keymap */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM -//#define MAGIC_KEY_HELP1 H -//#define MAGIC_KEY_HELP2 SLASH -//#define MAGIC_KEY_DEBUG D -//#define MAGIC_KEY_DEBUG_MATRIX X -//#define MAGIC_KEY_DEBUG_KBD K -//#define MAGIC_KEY_DEBUG_MOUSE M -//#define MAGIC_KEY_VERSION V -//#define MAGIC_KEY_STATUS S -//#define MAGIC_KEY_CONSOLE C -//#define MAGIC_KEY_LAYER0_ALT1 ESC -//#define MAGIC_KEY_LAYER0_ALT2 GRAVE -//#define MAGIC_KEY_LAYER0 0 -//#define MAGIC_KEY_LAYER1 1 -//#define MAGIC_KEY_LAYER2 2 -//#define MAGIC_KEY_LAYER3 3 -//#define MAGIC_KEY_LAYER4 4 -//#define MAGIC_KEY_LAYER5 5 -//#define MAGIC_KEY_LAYER6 6 -//#define MAGIC_KEY_LAYER7 7 -//#define MAGIC_KEY_LAYER8 8 -//#define MAGIC_KEY_LAYER9 9 -//#define MAGIC_KEY_BOOTLOADER PAUSE -//#define MAGIC_KEY_LOCK CAPS -//#define MAGIC_KEY_EEPROM E -//#define MAGIC_KEY_NKRO N -//#define MAGIC_KEY_SLEEP_LED Z - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/wilba_tech/wt60_xt/rules.mk b/keyboards/wilba_tech/wt60_xt/rules.mk index a910daef21c..dde7c27f425 100644 --- a/keyboards/wilba_tech/wt60_xt/rules.mk +++ b/keyboards/wilba_tech/wt60_xt/rules.mk @@ -17,5 +17,4 @@ 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 -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = yes # Audio output diff --git a/keyboards/wilba_tech/wt65_a/config.h b/keyboards/wilba_tech/wt65_a/config.h index a64a99efd9b..4eca9b3ba0f 100644 --- a/keyboards/wilba_tech/wt65_a/config.h +++ b/keyboards/wilba_tech/wt65_a/config.h @@ -89,54 +89,6 @@ */ //#define FORCE_NKRO -/* - * Magic Key Options - * - * Magic keys are hotkey commands that allow control over firmware functions of - * the keyboard. They are best used in combination with the HID Listen program, - * found here: https://www.pjrc.com/teensy/hid_listen.html - * - * The options below allow the magic key functionality to be changed. This is - * useful if your keyboard/keypad is missing keys and you want magic key support. - * - */ - -/* control how magic key switches layers */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false - -/* override magic key keymap */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM -//#define MAGIC_KEY_HELP1 H -//#define MAGIC_KEY_HELP2 SLASH -//#define MAGIC_KEY_DEBUG D -//#define MAGIC_KEY_DEBUG_MATRIX X -//#define MAGIC_KEY_DEBUG_KBD K -//#define MAGIC_KEY_DEBUG_MOUSE M -//#define MAGIC_KEY_VERSION V -//#define MAGIC_KEY_STATUS S -//#define MAGIC_KEY_CONSOLE C -//#define MAGIC_KEY_LAYER0_ALT1 ESC -//#define MAGIC_KEY_LAYER0_ALT2 GRAVE -//#define MAGIC_KEY_LAYER0 0 -//#define MAGIC_KEY_LAYER1 1 -//#define MAGIC_KEY_LAYER2 2 -//#define MAGIC_KEY_LAYER3 3 -//#define MAGIC_KEY_LAYER4 4 -//#define MAGIC_KEY_LAYER5 5 -//#define MAGIC_KEY_LAYER6 6 -//#define MAGIC_KEY_LAYER7 7 -//#define MAGIC_KEY_LAYER8 8 -//#define MAGIC_KEY_LAYER9 9 -//#define MAGIC_KEY_BOOTLOADER PAUSE -//#define MAGIC_KEY_LOCK CAPS -//#define MAGIC_KEY_EEPROM E -//#define MAGIC_KEY_NKRO N -//#define MAGIC_KEY_SLEEP_LED Z - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/wilba_tech/wt65_a/rules.mk b/keyboards/wilba_tech/wt65_a/rules.mk index 879d6de4c95..2c07cd045de 100644 --- a/keyboards/wilba_tech/wt65_a/rules.mk +++ b/keyboards/wilba_tech/wt65_a/rules.mk @@ -17,7 +17,6 @@ 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 -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output # project specific files diff --git a/keyboards/wilba_tech/wt65_b/config.h b/keyboards/wilba_tech/wt65_b/config.h index fdc44de8431..7db0552ce6c 100644 --- a/keyboards/wilba_tech/wt65_b/config.h +++ b/keyboards/wilba_tech/wt65_b/config.h @@ -89,54 +89,6 @@ */ //#define FORCE_NKRO -/* - * Magic Key Options - * - * Magic keys are hotkey commands that allow control over firmware functions of - * the keyboard. They are best used in combination with the HID Listen program, - * found here: https://www.pjrc.com/teensy/hid_listen.html - * - * The options below allow the magic key functionality to be changed. This is - * useful if your keyboard/keypad is missing keys and you want magic key support. - * - */ - -/* control how magic key switches layers */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false - -/* override magic key keymap */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM -//#define MAGIC_KEY_HELP1 H -//#define MAGIC_KEY_HELP2 SLASH -//#define MAGIC_KEY_DEBUG D -//#define MAGIC_KEY_DEBUG_MATRIX X -//#define MAGIC_KEY_DEBUG_KBD K -//#define MAGIC_KEY_DEBUG_MOUSE M -//#define MAGIC_KEY_VERSION V -//#define MAGIC_KEY_STATUS S -//#define MAGIC_KEY_CONSOLE C -//#define MAGIC_KEY_LAYER0_ALT1 ESC -//#define MAGIC_KEY_LAYER0_ALT2 GRAVE -//#define MAGIC_KEY_LAYER0 0 -//#define MAGIC_KEY_LAYER1 1 -//#define MAGIC_KEY_LAYER2 2 -//#define MAGIC_KEY_LAYER3 3 -//#define MAGIC_KEY_LAYER4 4 -//#define MAGIC_KEY_LAYER5 5 -//#define MAGIC_KEY_LAYER6 6 -//#define MAGIC_KEY_LAYER7 7 -//#define MAGIC_KEY_LAYER8 8 -//#define MAGIC_KEY_LAYER9 9 -//#define MAGIC_KEY_BOOTLOADER PAUSE -//#define MAGIC_KEY_LOCK CAPS -//#define MAGIC_KEY_EEPROM E -//#define MAGIC_KEY_NKRO N -//#define MAGIC_KEY_SLEEP_LED Z - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/wilba_tech/wt65_b/rules.mk b/keyboards/wilba_tech/wt65_b/rules.mk index 879d6de4c95..2c07cd045de 100644 --- a/keyboards/wilba_tech/wt65_b/rules.mk +++ b/keyboards/wilba_tech/wt65_b/rules.mk @@ -17,7 +17,6 @@ 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 -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output # project specific files diff --git a/keyboards/wilba_tech/wt69_a/config.h b/keyboards/wilba_tech/wt69_a/config.h index d4d50e24b3a..d8184a8d2e7 100644 --- a/keyboards/wilba_tech/wt69_a/config.h +++ b/keyboards/wilba_tech/wt69_a/config.h @@ -89,54 +89,6 @@ */ //#define FORCE_NKRO -/* - * Magic Key Options - * - * Magic keys are hotkey commands that allow control over firmware functions of - * the keyboard. They are best used in combination with the HID Listen program, - * found here: https://www.pjrc.com/teensy/hid_listen.html - * - * The options below allow the magic key functionality to be changed. This is - * useful if your keyboard/keypad is missing keys and you want magic key support. - * - */ - -/* control how magic key switches layers */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false - -/* override magic key keymap */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM -//#define MAGIC_KEY_HELP1 H -//#define MAGIC_KEY_HELP2 SLASH -//#define MAGIC_KEY_DEBUG D -//#define MAGIC_KEY_DEBUG_MATRIX X -//#define MAGIC_KEY_DEBUG_KBD K -//#define MAGIC_KEY_DEBUG_MOUSE M -//#define MAGIC_KEY_VERSION V -//#define MAGIC_KEY_STATUS S -//#define MAGIC_KEY_CONSOLE C -//#define MAGIC_KEY_LAYER0_ALT1 ESC -//#define MAGIC_KEY_LAYER0_ALT2 GRAVE -//#define MAGIC_KEY_LAYER0 0 -//#define MAGIC_KEY_LAYER1 1 -//#define MAGIC_KEY_LAYER2 2 -//#define MAGIC_KEY_LAYER3 3 -//#define MAGIC_KEY_LAYER4 4 -//#define MAGIC_KEY_LAYER5 5 -//#define MAGIC_KEY_LAYER6 6 -//#define MAGIC_KEY_LAYER7 7 -//#define MAGIC_KEY_LAYER8 8 -//#define MAGIC_KEY_LAYER9 9 -//#define MAGIC_KEY_BOOTLOADER PAUSE -//#define MAGIC_KEY_LOCK CAPS -//#define MAGIC_KEY_EEPROM E -//#define MAGIC_KEY_NKRO N -//#define MAGIC_KEY_SLEEP_LED Z - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/wilba_tech/wt69_a/rules.mk b/keyboards/wilba_tech/wt69_a/rules.mk index 034fc8b2f12..c70f8cced6d 100644 --- a/keyboards/wilba_tech/wt69_a/rules.mk +++ b/keyboards/wilba_tech/wt69_a/rules.mk @@ -17,7 +17,6 @@ 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 -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output # project specific files diff --git a/keyboards/wilba_tech/wt75_a/config.h b/keyboards/wilba_tech/wt75_a/config.h index 1bcfb08adc1..479cdda00d6 100644 --- a/keyboards/wilba_tech/wt75_a/config.h +++ b/keyboards/wilba_tech/wt75_a/config.h @@ -89,54 +89,6 @@ */ //#define FORCE_NKRO -/* - * Magic Key Options - * - * Magic keys are hotkey commands that allow control over firmware functions of - * the keyboard. They are best used in combination with the HID Listen program, - * found here: https://www.pjrc.com/teensy/hid_listen.html - * - * The options below allow the magic key functionality to be changed. This is - * useful if your keyboard/keypad is missing keys and you want magic key support. - * - */ - -/* control how magic key switches layers */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false - -/* override magic key keymap */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM -//#define MAGIC_KEY_HELP1 H -//#define MAGIC_KEY_HELP2 SLASH -//#define MAGIC_KEY_DEBUG D -//#define MAGIC_KEY_DEBUG_MATRIX X -//#define MAGIC_KEY_DEBUG_KBD K -//#define MAGIC_KEY_DEBUG_MOUSE M -//#define MAGIC_KEY_VERSION V -//#define MAGIC_KEY_STATUS S -//#define MAGIC_KEY_CONSOLE C -//#define MAGIC_KEY_LAYER0_ALT1 ESC -//#define MAGIC_KEY_LAYER0_ALT2 GRAVE -//#define MAGIC_KEY_LAYER0 0 -//#define MAGIC_KEY_LAYER1 1 -//#define MAGIC_KEY_LAYER2 2 -//#define MAGIC_KEY_LAYER3 3 -//#define MAGIC_KEY_LAYER4 4 -//#define MAGIC_KEY_LAYER5 5 -//#define MAGIC_KEY_LAYER6 6 -//#define MAGIC_KEY_LAYER7 7 -//#define MAGIC_KEY_LAYER8 8 -//#define MAGIC_KEY_LAYER9 9 -//#define MAGIC_KEY_BOOTLOADER PAUSE -//#define MAGIC_KEY_LOCK CAPS -//#define MAGIC_KEY_EEPROM E -//#define MAGIC_KEY_NKRO N -//#define MAGIC_KEY_SLEEP_LED Z - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/wilba_tech/wt75_a/rules.mk b/keyboards/wilba_tech/wt75_a/rules.mk index 879d6de4c95..2c07cd045de 100644 --- a/keyboards/wilba_tech/wt75_a/rules.mk +++ b/keyboards/wilba_tech/wt75_a/rules.mk @@ -17,7 +17,6 @@ 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 -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output # project specific files diff --git a/keyboards/wilba_tech/wt75_b/config.h b/keyboards/wilba_tech/wt75_b/config.h index ee7783e723f..e6365c4ef3e 100644 --- a/keyboards/wilba_tech/wt75_b/config.h +++ b/keyboards/wilba_tech/wt75_b/config.h @@ -89,54 +89,6 @@ */ //#define FORCE_NKRO -/* - * Magic Key Options - * - * Magic keys are hotkey commands that allow control over firmware functions of - * the keyboard. They are best used in combination with the HID Listen program, - * found here: https://www.pjrc.com/teensy/hid_listen.html - * - * The options below allow the magic key functionality to be changed. This is - * useful if your keyboard/keypad is missing keys and you want magic key support. - * - */ - -/* control how magic key switches layers */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false - -/* override magic key keymap */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM -//#define MAGIC_KEY_HELP1 H -//#define MAGIC_KEY_HELP2 SLASH -//#define MAGIC_KEY_DEBUG D -//#define MAGIC_KEY_DEBUG_MATRIX X -//#define MAGIC_KEY_DEBUG_KBD K -//#define MAGIC_KEY_DEBUG_MOUSE M -//#define MAGIC_KEY_VERSION V -//#define MAGIC_KEY_STATUS S -//#define MAGIC_KEY_CONSOLE C -//#define MAGIC_KEY_LAYER0_ALT1 ESC -//#define MAGIC_KEY_LAYER0_ALT2 GRAVE -//#define MAGIC_KEY_LAYER0 0 -//#define MAGIC_KEY_LAYER1 1 -//#define MAGIC_KEY_LAYER2 2 -//#define MAGIC_KEY_LAYER3 3 -//#define MAGIC_KEY_LAYER4 4 -//#define MAGIC_KEY_LAYER5 5 -//#define MAGIC_KEY_LAYER6 6 -//#define MAGIC_KEY_LAYER7 7 -//#define MAGIC_KEY_LAYER8 8 -//#define MAGIC_KEY_LAYER9 9 -//#define MAGIC_KEY_BOOTLOADER PAUSE -//#define MAGIC_KEY_LOCK CAPS -//#define MAGIC_KEY_EEPROM E -//#define MAGIC_KEY_NKRO N -//#define MAGIC_KEY_SLEEP_LED Z - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/wilba_tech/wt75_b/rules.mk b/keyboards/wilba_tech/wt75_b/rules.mk index 879d6de4c95..2c07cd045de 100644 --- a/keyboards/wilba_tech/wt75_b/rules.mk +++ b/keyboards/wilba_tech/wt75_b/rules.mk @@ -17,7 +17,6 @@ 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 -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output # project specific files diff --git a/keyboards/wilba_tech/wt75_c/config.h b/keyboards/wilba_tech/wt75_c/config.h index 900c8fb1af3..bbc4757e06e 100644 --- a/keyboards/wilba_tech/wt75_c/config.h +++ b/keyboards/wilba_tech/wt75_c/config.h @@ -89,54 +89,6 @@ */ //#define FORCE_NKRO -/* - * Magic Key Options - * - * Magic keys are hotkey commands that allow control over firmware functions of - * the keyboard. They are best used in combination with the HID Listen program, - * found here: https://www.pjrc.com/teensy/hid_listen.html - * - * The options below allow the magic key functionality to be changed. This is - * useful if your keyboard/keypad is missing keys and you want magic key support. - * - */ - -/* control how magic key switches layers */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false - -/* override magic key keymap */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM -//#define MAGIC_KEY_HELP1 H -//#define MAGIC_KEY_HELP2 SLASH -//#define MAGIC_KEY_DEBUG D -//#define MAGIC_KEY_DEBUG_MATRIX X -//#define MAGIC_KEY_DEBUG_KBD K -//#define MAGIC_KEY_DEBUG_MOUSE M -//#define MAGIC_KEY_VERSION V -//#define MAGIC_KEY_STATUS S -//#define MAGIC_KEY_CONSOLE C -//#define MAGIC_KEY_LAYER0_ALT1 ESC -//#define MAGIC_KEY_LAYER0_ALT2 GRAVE -//#define MAGIC_KEY_LAYER0 0 -//#define MAGIC_KEY_LAYER1 1 -//#define MAGIC_KEY_LAYER2 2 -//#define MAGIC_KEY_LAYER3 3 -//#define MAGIC_KEY_LAYER4 4 -//#define MAGIC_KEY_LAYER5 5 -//#define MAGIC_KEY_LAYER6 6 -//#define MAGIC_KEY_LAYER7 7 -//#define MAGIC_KEY_LAYER8 8 -//#define MAGIC_KEY_LAYER9 9 -//#define MAGIC_KEY_BOOTLOADER PAUSE -//#define MAGIC_KEY_LOCK CAPS -//#define MAGIC_KEY_EEPROM E -//#define MAGIC_KEY_NKRO N -//#define MAGIC_KEY_SLEEP_LED Z - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/wilba_tech/wt75_c/rules.mk b/keyboards/wilba_tech/wt75_c/rules.mk index 879d6de4c95..2c07cd045de 100644 --- a/keyboards/wilba_tech/wt75_c/rules.mk +++ b/keyboards/wilba_tech/wt75_c/rules.mk @@ -17,7 +17,6 @@ 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 -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output # project specific files diff --git a/keyboards/wilba_tech/wt80_a/config.h b/keyboards/wilba_tech/wt80_a/config.h index 33c4299a668..a09bcaebad4 100644 --- a/keyboards/wilba_tech/wt80_a/config.h +++ b/keyboards/wilba_tech/wt80_a/config.h @@ -89,54 +89,6 @@ */ //#define FORCE_NKRO -/* - * Magic Key Options - * - * Magic keys are hotkey commands that allow control over firmware functions of - * the keyboard. They are best used in combination with the HID Listen program, - * found here: https://www.pjrc.com/teensy/hid_listen.html - * - * The options below allow the magic key functionality to be changed. This is - * useful if your keyboard/keypad is missing keys and you want magic key support. - * - */ - -/* control how magic key switches layers */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false - -/* override magic key keymap */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM -//#define MAGIC_KEY_HELP1 H -//#define MAGIC_KEY_HELP2 SLASH -//#define MAGIC_KEY_DEBUG D -//#define MAGIC_KEY_DEBUG_MATRIX X -//#define MAGIC_KEY_DEBUG_KBD K -//#define MAGIC_KEY_DEBUG_MOUSE M -//#define MAGIC_KEY_VERSION V -//#define MAGIC_KEY_STATUS S -//#define MAGIC_KEY_CONSOLE C -//#define MAGIC_KEY_LAYER0_ALT1 ESC -//#define MAGIC_KEY_LAYER0_ALT2 GRAVE -//#define MAGIC_KEY_LAYER0 0 -//#define MAGIC_KEY_LAYER1 1 -//#define MAGIC_KEY_LAYER2 2 -//#define MAGIC_KEY_LAYER3 3 -//#define MAGIC_KEY_LAYER4 4 -//#define MAGIC_KEY_LAYER5 5 -//#define MAGIC_KEY_LAYER6 6 -//#define MAGIC_KEY_LAYER7 7 -//#define MAGIC_KEY_LAYER8 8 -//#define MAGIC_KEY_LAYER9 9 -//#define MAGIC_KEY_BOOTLOADER PAUSE -//#define MAGIC_KEY_LOCK CAPS -//#define MAGIC_KEY_EEPROM E -//#define MAGIC_KEY_NKRO N -//#define MAGIC_KEY_SLEEP_LED Z - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/wilba_tech/wt80_a/rules.mk b/keyboards/wilba_tech/wt80_a/rules.mk index 879d6de4c95..2c07cd045de 100644 --- a/keyboards/wilba_tech/wt80_a/rules.mk +++ b/keyboards/wilba_tech/wt80_a/rules.mk @@ -17,7 +17,6 @@ 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 -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output # project specific files diff --git a/keyboards/wilba_tech/wt80_bc/rules.mk b/keyboards/wilba_tech/wt80_bc/rules.mk index c38e84e0392..da542bd80d1 100644 --- a/keyboards/wilba_tech/wt80_bc/rules.mk +++ b/keyboards/wilba_tech/wt80_bc/rules.mk @@ -17,7 +17,6 @@ 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 -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output # project specific files diff --git a/keyboards/wilba_tech/wt8_a/rules.mk b/keyboards/wilba_tech/wt8_a/rules.mk index 034fc8b2f12..c70f8cced6d 100644 --- a/keyboards/wilba_tech/wt8_a/rules.mk +++ b/keyboards/wilba_tech/wt8_a/rules.mk @@ -17,7 +17,6 @@ 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 -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output # project specific files diff --git a/keyboards/wilba_tech/zeal60/rules.mk b/keyboards/wilba_tech/zeal60/rules.mk index 832077492df..1c385162e51 100644 --- a/keyboards/wilba_tech/zeal60/rules.mk +++ b/keyboards/wilba_tech/zeal60/rules.mk @@ -21,7 +21,6 @@ COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality AUDIO_ENABLE = no # Audio output -UNICODE_ENABLE = no # Unicode RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE diff --git a/keyboards/wilba_tech/zeal65/rules.mk b/keyboards/wilba_tech/zeal65/rules.mk index aa84617cb66..846c2d131e7 100644 --- a/keyboards/wilba_tech/zeal65/rules.mk +++ b/keyboards/wilba_tech/zeal65/rules.mk @@ -21,7 +21,6 @@ COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality AUDIO_ENABLE = no # Audio output -UNICODE_ENABLE = no # Unicode RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE diff --git a/keyboards/wolf/kuku65/config.h b/keyboards/wolf/kuku65/config.h new file mode 100644 index 00000000000..7c5afed524d --- /dev/null +++ b/keyboards/wolf/kuku65/config.h @@ -0,0 +1,56 @@ +/* +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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x5453 // TS - ToastyStoemp +#define PRODUCT_ID 0x0052 // kuku65 +#define DEVICE_VER 0x0001 // Version 1 +#define MANUFACTURER ToastyStoemp +#define PRODUCT kuku65 + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ + +// Checked with Eagle Schematic +#define MATRIX_ROW_PINS { B3, B2, B1, B0, B7 } +#define MATRIX_COL_PINS { D0, F6, F7, C7, C6, B6, B5, B4, D7, D6, D4, D5, D3, D2, D1 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION diff --git a/keyboards/wolf/kuku65/info.json b/keyboards/wolf/kuku65/info.json new file mode 100644 index 00000000000..1cd162aa325 --- /dev/null +++ b/keyboards/wolf/kuku65/info.json @@ -0,0 +1,288 @@ +{ + "keyboard_name": "kuku65", + "url": "", + "maintainer": "ToastyStoemp", + "layouts": { + "LAYOUT": { + "layout": [ + { + "x": 0, + "y": 0 + }, + { + "x": 1, + "y": 0 + }, + { + "x": 2, + "y": 0 + }, + { + "x": 3, + "y": 0 + }, + { + "x": 4, + "y": 0 + }, + { + "x": 5, + "y": 0 + }, + { + "x": 6, + "y": 0 + }, + { + "x": 7, + "y": 0 + }, + { + "x": 8, + "y": 0 + }, + { + "x": 9, + "y": 0 + }, + { + "x": 10, + "y": 0 + }, + { + "x": 11, + "y": 0 + }, + { + "x": 12, + "y": 0 + }, + { + "x": 13, + "y": 0, + "w": 2 + }, + { + "x": 0, + "y": 1, + "w": 1.5 + }, + { + "x": 1.5, + "y": 1 + }, + { + "x": 2.5, + "y": 1 + }, + { + "x": 3.5, + "y": 1 + }, + { + "x": 4.5, + "y": 1 + }, + { + "x": 5.5, + "y": 1 + }, + { + "x": 6.5, + "y": 1 + }, + { + "x": 7.5, + "y": 1 + }, + { + "x": 8.5, + "y": 1 + }, + { + "x": 9.5, + "y": 1 + }, + { + "x": 10.5, + "y": 1 + }, + { + "x": 11.5, + "y": 1 + }, + { + "x": 12.5, + "y": 1 + }, + { + "x": 13.5, + "y": 1, + "w": 1.5 + }, + { + "x": 15, + "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 + } + ] + } + } +} diff --git a/keyboards/wolf/kuku65/keymaps/default/keymap.c b/keyboards/wolf/kuku65/keymaps/default/keymap.c new file mode 100644 index 00000000000..11d9f26ff5d --- /dev/null +++ b/keyboards/wolf/kuku65/keymaps/default/keymap.c @@ -0,0 +1,67 @@ +/* +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 + +enum layers { + _LAYER0, + _LAYER1, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ + * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│Hom│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │PgU│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ + * │ Ctrl │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │PgD│ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│ ↑ │End│ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ + * │Ctrl│GUI │Alt │ │Alt │FN │ │ ← │ ↓ │ → │ + * └────┴────┴────┴────────────────────────┴────┴────┴─┴───┴───┴───┘ + */ + + [_LAYER0] = LAYOUT( + 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_PGUP, + 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_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 + ), + + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ + * │ ` │ F1│ F2│ F3│ F4│ F5│ F6│ F7│ F8│ F9│F10│F11│F12│ │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + * │ │ │ │ │ │Res│ │ │ │ │ │ │ V+│ V0│ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ + * │ │ │ │ │ │ │ │ PT│ V-│ NT│ + * └────┴────┴────┴────────────────────────┴────┴────┴─┴───┴───┴───┘ + */ + + [_LAYER1] = 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_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_AUDIO_VOL_UP, KC_AUDIO_MUTE, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK + ) +}; diff --git a/keyboards/wolf/kuku65/keymaps/via/keymap.c b/keyboards/wolf/kuku65/keymaps/via/keymap.c new file mode 100644 index 00000000000..44618f676b7 --- /dev/null +++ b/keyboards/wolf/kuku65/keymaps/via/keymap.c @@ -0,0 +1,85 @@ +/* +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 + +enum layers { + _LAYER0, + _LAYER1, + _LAYER2, + _LAYER3, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ + * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│Hom│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │PgU│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ + * │ Ctrl │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │PgD│ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│ ↑ │End│ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ + * │Ctrl│GUI │Alt │ │Alt │FN │ │ ← │ ↓ │ → │ + * └────┴────┴────┴────────────────────────┴────┴────┴─┴───┴───┴───┘ + */ + + [_LAYER0] = LAYOUT( + 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_PGUP, + 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_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 + ), + + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ + * │ ` │ F1│ F2│ F3│ F4│ F5│ F6│ F7│ F8│ F9│F10│F11│F12│ │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + * │ │ │ │ │ │Res│ │ │ │ │ │ │ V+│ V0│ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ + * │ │ │ │ │ │ │ │ PT│ V-│ NT│ + * └────┴────┴────┴────────────────────────┴────┴────┴─┴───┴───┴───┘ + */ + + [_LAYER1] = 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_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_AUDIO_VOL_UP, KC_AUDIO_MUTE, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK + ), + + [_LAYER2] = 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [_LAYER3] = 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/wolf/kuku65/keymaps/via/rules.mk b/keyboards/wolf/kuku65/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/wolf/kuku65/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/wolf/kuku65/kuku65.c b/keyboards/wolf/kuku65/kuku65.c new file mode 100644 index 00000000000..9c1be8cb83f --- /dev/null +++ b/keyboards/wolf/kuku65/kuku65.c @@ -0,0 +1,14 @@ +/* +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 "kuku65.h" diff --git a/keyboards/wolf/kuku65/kuku65.h b/keyboards/wolf/kuku65/kuku65.h new file mode 100644 index 00000000000..d8ad847274d --- /dev/null +++ b/keyboards/wolf/kuku65/kuku65.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" + +/* kuku65 Keymap Definitions */ +#define LAYOUT( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, 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, K46, K49, K4A, K4C, K4D, K4E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, KC_NO }, \ + { 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, KC_NO, K2D, K2E }, \ + { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ + { K40, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, K49, K4A, KC_NO, K4C, K4D, K4E } \ +} diff --git a/keyboards/wolf/kuku65/readme.md b/keyboards/wolf/kuku65/readme.md new file mode 100644 index 00000000000..34c4f334228 --- /dev/null +++ b/keyboards/wolf/kuku65/readme.md @@ -0,0 +1,22 @@ +# kuku65 + +The following is the QMK Firmware for the kuku65 Hotswap PCB. + +The PCB features: +* QMK & VIA compatibility +* Hotswap + +--- + +* Keyboard Maintainer: [ToastyStoemp](https://github.com/ToastyStoemp) + +Make example for this keyboard (after setting up your build environment): + + make wolf/kuku65: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). + +## Bootloader Enter the bootloader in 3 ways: +* **Bootmagic reset**: Hold down the key ESC key and plug in the keyboard (Top Left most switch) +* **Physical reset button**: Briefly press the button on the back of the PCB +* **Keycode in layout**: Press the B key on layer 1 which is mapped to `RESET` diff --git a/keyboards/wolf/kuku65/rules.mk b/keyboards/wolf/kuku65/rules.mk new file mode 100644 index 00000000000..8fc7be19c1f --- /dev/null +++ b/keyboards/wolf/kuku65/rules.mk @@ -0,0 +1,24 @@ +# MCU name +MCU = atmega32u4 + +# Processor frequency +F_CPU = 8000000 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/wolf/ts60/config.h b/keyboards/wolf/ts60/config.h new file mode 100644 index 00000000000..8074f6fc580 --- /dev/null +++ b/keyboards/wolf/ts60/config.h @@ -0,0 +1,78 @@ +/* +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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x5453 // TS - ToastyStoemp +#define PRODUCT_ID 0x0050 // TS60 +#define DEVICE_VER 0x0001 // Version 1 +#define MANUFACTURER ToastyStoemp +#define PRODUCT TS60 + +/* key matrix size */ +#define MATRIX_ROWS 10 +#define MATRIX_COLS 8 + +/* + * 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) + * +*/ + +// Checked with Eagle Schematic +#define MATRIX_ROW_PINS { D2, D3, D6, D4, F6, F7, F5, F0, F4, F1 } +#define MATRIX_COL_PINS { D1, D5, C7, C6, B6, B5, B4, D7} +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + + +/* Define RGB Underglow */ +#define RGB_DI_PIN D0 +#define RGBLED_NUM 16 +#define RGBLIGHT_EFFECT_BREATHING +#define RGBLIGHT_EFFECT_RAINBOW_MOOD +#define RGBLIGHT_EFFECT_RAINBOW_SWIRL +#define RGBLIGHT_EFFECT_SNAKE +#define RGBLIGHT_EFFECT_KNIGHT +#define RGBLIGHT_EFFECT_CHRISTMAS +#define RGBLIGHT_EFFECT_STATIC_GRADIENT +#define RGBLIGHT_EFFECT_RGB_TEST +#define RGBLIGHT_EFFECT_ALTERNATING +#define RGBLIGHT_EFFECT_TWINKLE +#define RGBLIGHT_SLEEP +#define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_SWIRL + +/* Define Per Key Backlight */ +#define BACKLIGHT_PIN B7 +#define BACKLIGHT_LEVELS 6 +#define BACKLIGHT_DEFAULT_LEVEL 6 + +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION \ No newline at end of file diff --git a/keyboards/wolf/ts60/info.json b/keyboards/wolf/ts60/info.json new file mode 100644 index 00000000000..d7d3bfe4976 --- /dev/null +++ b/keyboards/wolf/ts60/info.json @@ -0,0 +1,273 @@ +{ + "keyboard_name": "TS60", + "url": "https://www.vwolf.be/", + "maintainer": "ToastyStoemp", + "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}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":6, "y":3}, {"x":7, "y":3}, {"x":8, "y":3}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}, {"x":12, "y":3}, {"x":13, "y":3}, {"x":14, "y":3}, {"x":0, "y":4, "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.25}, {"x":6, "y":4, "w":1.25}, {"x":7.25, "y":4, "w":2.75}, {"x":10, "y":4}, {"x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}] + }, + "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 + } + ] + } + } +} \ No newline at end of file diff --git a/keyboards/wolf/ts60/keymaps/default/keymap.c b/keyboards/wolf/ts60/keymaps/default/keymap.c new file mode 100644 index 00000000000..fa2ac469648 --- /dev/null +++ b/keyboards/wolf/ts60/keymaps/default/keymap.c @@ -0,0 +1,39 @@ +/* +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 + +enum layers { + _LAYER0, + _LAYER1, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_LAYER0] = LAYOUT_60_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_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_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL + ), + + [_LAYER1] = 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, + _______, RGB_TOG, KC_UP, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + _______, _______, _______, BL_DEC, BL_TOGG, BL_INC, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/wolf/ts60/keymaps/via/keymap.c b/keyboards/wolf/ts60/keymaps/via/keymap.c new file mode 100644 index 00000000000..9d1b9aab625 --- /dev/null +++ b/keyboards/wolf/ts60/keymaps/via/keymap.c @@ -0,0 +1,58 @@ +/* +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 + +enum layers { + _LAYER0, + _LAYER1, + _LAYER2, + _LAYER3, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_LAYER0] = LAYOUT_60_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_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_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL + ), + + [_LAYER1] = 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, + _______, RGB_TOG, KC_UP, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + _______, _______, _______, BL_DEC, BL_TOGG, BL_INC, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [_LAYER2] = LAYOUT_60_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [_LAYER3] = LAYOUT_60_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ) + +}; \ No newline at end of file diff --git a/keyboards/wolf/ts60/keymaps/via/rules.mk b/keyboards/wolf/ts60/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/wolf/ts60/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/wolf/ts60/readme.md b/keyboards/wolf/ts60/readme.md new file mode 100644 index 00000000000..6883617cb18 --- /dev/null +++ b/keyboards/wolf/ts60/readme.md @@ -0,0 +1,25 @@ +# Wolf - TS 60 + +The following is the QMK Firmware for the TS60 PCB. + +The PCB features: +* QMK & VIA compatibility +* RGB underglow +* Per-Key LEDs + +--- + +* Keyboard Maintainer: [ToastyStoemp](https://github.com/ToastyStoemp) +* Hardware Supported: TF60 ANSI SOLDER + + +Make example for this keyboard (after setting up your build environment): + + make wolf/ts60: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). + +## Bootloader Enter the bootloader in 3 ways: +* **Bootmagic reset**: Hold down the key ESC key and plug in the keyboard (Top Left most switch) +* **Physical reset button**: Briefly press the button on the back of the PCB +* **Keycode in layout**: Press the Enter key on layer 1 which is mapped to `RESET` \ No newline at end of file diff --git a/keyboards/wolf/ts60/rules.mk b/keyboards/wolf/ts60/rules.mk new file mode 100644 index 00000000000..8edf0f7658d --- /dev/null +++ b/keyboards/wolf/ts60/rules.mk @@ -0,0 +1,27 @@ +# MCU name +MCU = atmega32u4 + +# Processor frequency +F_CPU = 8000000 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output + + +LAYOUTS = 60_ansi diff --git a/keyboards/wolf/ts60/ts60.c b/keyboards/wolf/ts60/ts60.c new file mode 100644 index 00000000000..199c79c9469 --- /dev/null +++ b/keyboards/wolf/ts60/ts60.c @@ -0,0 +1,14 @@ +/* +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 "ts60.h" diff --git a/keyboards/wolf/ts60/ts60.h b/keyboards/wolf/ts60/ts60.h new file mode 100644 index 00000000000..a402d954830 --- /dev/null +++ b/keyboards/wolf/ts60/ts60.h @@ -0,0 +1,82 @@ +/* +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" + +/* LAYOUT + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │0e │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ + * │10 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d │1e │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ + * │20 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │2d │ + * ├───┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬───┬───┤ + * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c │3d │3e │ + * ├───┴┬──┴─┬─┴──┬┴───┴───┼───┴┬──┴───┴───┼───┼───┼───┼───┼───┤ + * │40 │41 │42 │44 │46 │48 │4a │4b │4c │4d │4e │ + * └────┴────┴────┴────────┴────┴──────────┴───┴───┴───┴───┴───┘ +*/ +#define LAYOUT( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0a, K0b, K0c, K0d, K0e, \ + K10, K12, K13, K14, K15, K16, K17, K18, K19, K1a, K1b, K1c, K1d, K1e, \ + K20, K22, K23, K24, K25, K26, K27, K28, K29, K2a, K2b, K2c, K2d, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3a, K3b, K3c, K3d, K3e, \ + K40, K41, K42, K44, K46, K48, K4a, K4b, K4c, K4d, K4e \ +) { \ + { K00, K02, K04, K06, K08, K0a, K0c, K0d }, \ + { K01, K03, K05, K07, K09, K0b, KC_NO, K0e }, \ + { K10, K12, K14, K16, K18, K1a, K1c, K1d }, \ + { KC_NO, K13, K15, K17, K19, K1b, KC_NO, K1e }, \ + { K20, K22, K24, K26, K28, K2a, K2c, K2d }, \ + { KC_NO, K23, K25, K27, K29, K2b, KC_NO, K2e }, \ + { K30, K32, K34, K36, K38, K3a, K3c, K3d }, \ + { K31, K33, K35, K37, K39, K3b, KC_NO, K3e }, \ + { K40, K42, K44, K46, K48, K4a, K4c, K4d }, \ + { K41, KC_NO, KC_NO, KC_NO, KC_NO, K4b, KC_NO, K4e } \ +} + +/* LAYOUT_60_ansi + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0e │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │10 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d │1e │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ + * │20 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │2d │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ + * │30 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3d │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ + * │40 │41 │42 │46 │4a │4b │4d │4e │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + */ + #define LAYOUT_60_ansi( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0a, K0b, K0c, K0e, \ + K10, K12, K13, K14, K15, K16, K17, K18, K19, K1a, K1b, K1c, K1d, K1e, \ + K20, K22, K23, K24, K25, K26, K27, K28, K29, K2a, K2b, K2c, K2d, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3a, K3b, K3d, \ + K40, K41, K42, K46, K4a, K4b, K4d, K4e \ + ) { \ + { K00, K02, K04, K06, K08, K0a, K0c, K0e }, \ + { K01, K03, K05, K07, K09, K0b, KC_NO, KC_NO }, \ + { K10, K12, K14, K16, K18, K1a, K1c, K1d }, \ + { KC_NO, K13, K15, K17, K19, K1b, KC_NO, K1e }, \ + { K20, K22, K24, K26, K28, K2a, K2c, KC_NO }, \ + { KC_NO, K23, K25, K27, K29, K2b, KC_NO, K2d }, \ + { K30, K32, K34, K36, K38, K3a, KC_NO, K3d }, \ + { KC_NO, K33, K35, K37, K39, K3b, KC_NO, KC_NO }, \ + { K40, K42, KC_NO, K46, KC_NO, K4a, KC_NO, K4d }, \ + { K41, KC_NO, KC_NO, KC_NO, KC_NO, K4b, KC_NO, K4e } \ +} + diff --git a/keyboards/wolfmarkclub/wm1/rules.mk b/keyboards/wolfmarkclub/wm1/rules.mk index 50f792715df..18c26c3abc5 100644 --- a/keyboards/wolfmarkclub/wm1/rules.mk +++ b/keyboards/wolfmarkclub/wm1/rules.mk @@ -21,7 +21,6 @@ SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend NKRO_ENABLE = yes # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output LTO_ENABLE = yes diff --git a/keyboards/work_louder/loop/keymaps/via/keymap.c b/keyboards/work_louder/loop/keymaps/via/keymap.c index c5769b99109..22113e836e3 100644 --- a/keyboards/work_louder/loop/keymaps/via/keymap.c +++ b/keyboards/work_louder/loop/keymaps/via/keymap.c @@ -15,6 +15,14 @@ */ #include QMK_KEYBOARD_H +#define LAYOUT_via( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ + k00_a, k00_b, k01_a, k01_b, k02_a, k02_b \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \ + { k00_a, k00_b, k01_a, k01_b, k02_a, k02_b } \ +} + // clang-format off const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_via( diff --git a/keyboards/work_louder/loop/keymaps/via/rules.mk b/keyboards/work_louder/loop/keymaps/via/rules.mk index 36b7ba9cbc9..6098ef3ad8f 100644 --- a/keyboards/work_louder/loop/keymaps/via/rules.mk +++ b/keyboards/work_louder/loop/keymaps/via/rules.mk @@ -1,2 +1,4 @@ VIA_ENABLE = yes LTO_ENABLE = yes + +SRC += encoder_actions.c diff --git a/keyboards/work_louder/loop/loop.h b/keyboards/work_louder/loop/loop.h index acad9d7b3c3..cfc58146d1c 100644 --- a/keyboards/work_louder/loop/loop.h +++ b/keyboards/work_louder/loop/loop.h @@ -33,11 +33,3 @@ ) { \ { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b } \ } - -#define LAYOUT_via( \ - k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ - k00_a, k00_b, k01_a, k01_b, k02_a, k02_b \ -) { \ - { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \ - { k00_a, k00_b, k01_a, k01_b, k02_a, k02_b } \ -} diff --git a/keyboards/work_louder/loop/rules.mk b/keyboards/work_louder/loop/rules.mk index 7e3f75e176d..135291a7e26 100644 --- a/keyboards/work_louder/loop/rules.mk +++ b/keyboards/work_louder/loop/rules.mk @@ -20,7 +20,9 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes +LTO_ENABLE = yes + RGB_MATRIX_ENABLE = yes RGB_MATRIX_DRIVER = WS2812 -SRC += encoder_actions.c rgb_functions.c +SRC += rgb_functions.c diff --git a/keyboards/work_louder/nano/keymaps/via/keymap.c b/keyboards/work_louder/nano/keymaps/via/keymap.c index 84a54a4aac6..7461172e07d 100644 --- a/keyboards/work_louder/nano/keymaps/via/keymap.c +++ b/keyboards/work_louder/nano/keymaps/via/keymap.c @@ -16,6 +16,13 @@ #include QMK_KEYBOARD_H +#define LAYOUT_via( \ + k00, k01, k02, \ + k00_a, k00_b \ +) { \ + { k00, k01, k02, k00_a, k00_b } \ +} + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Base */ diff --git a/keyboards/work_louder/nano/keymaps/via/rules.mk b/keyboards/work_louder/nano/keymaps/via/rules.mk index 36b7ba9cbc9..6098ef3ad8f 100644 --- a/keyboards/work_louder/nano/keymaps/via/rules.mk +++ b/keyboards/work_louder/nano/keymaps/via/rules.mk @@ -1,2 +1,4 @@ VIA_ENABLE = yes LTO_ENABLE = yes + +SRC += encoder_actions.c diff --git a/keyboards/work_louder/nano/nano.h b/keyboards/work_louder/nano/nano.h index 6f7463e6a47..6230d75ab77 100644 --- a/keyboards/work_louder/nano/nano.h +++ b/keyboards/work_louder/nano/nano.h @@ -33,10 +33,3 @@ ) { \ { k00, k01, k02 } \ } - -#define LAYOUT_via( \ - k00, k01, k02, \ - k00_a, k00_b \ -) { \ - { k00, k01, k02, k00_a, k00_b } \ -} diff --git a/keyboards/work_louder/nano/rules.mk b/keyboards/work_louder/nano/rules.mk index 843d80fe6ae..a97f070422f 100644 --- a/keyboards/work_louder/nano/rules.mk +++ b/keyboards/work_louder/nano/rules.mk @@ -20,7 +20,9 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes +LTO_ENABLE = yes + RGB_MATRIX_ENABLE = yes RGB_MATRIX_DRIVER = WS2812 -SRC += encoder_actions.c rgb_functions.c +SRC += rgb_functions.c diff --git a/keyboards/work_louder/work_board/keymaps/drashna/config.h b/keyboards/work_louder/work_board/keymaps/drashna/config.h new file mode 100644 index 00000000000..5ea4dc7e483 --- /dev/null +++ b/keyboards/work_louder/work_board/keymaps/drashna/config.h @@ -0,0 +1,17 @@ +/* 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/work_louder/work_board/keymaps/drashna/keymap.c b/keyboards/work_louder/work_board/keymaps/drashna/keymap.c new file mode 100644 index 00000000000..3bbb81bf04e --- /dev/null +++ b/keyboards/work_louder/work_board/keymaps/drashna/keymap.c @@ -0,0 +1,217 @@ +/* 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 PLNK_1 SP_LWER +#define PLNK_2 BK_LWER +#define PLNK_3 DL_RAIS +#define PLNK_4 ET_RAIS + +/* + * The `LAYOUT_ortho_4x12_base` macro is a template to allow the use of identical + * modifiers for the default layouts (eg QWERTY, Colemak, Dvorak, etc), so + * that there is no need to set them up for each layout, and modify all of + * them if I want to change them. This helps to keep consistency and ease + * of use. K## is a placeholder to pass through the individual keycodes + */ +// clang-format off +#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__) +#define LAYOUT_base( \ + K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \ + K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \ + K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \ + ) \ + LAYOUT_wrapper( \ + KC_ESC, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_DEL, KC_MUTE, \ + LALT_T(KC_TAB), K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, RALT_T(K1B), \ + KC_MLSF, CTL_T(K21), K22, K23, K24, K25, K26, K27, K28, K29, RCTL_T(K2A), KC_ENT, \ + OS_LSFT, OS_LCTL, OS_LALT, OS_LGUI, PLNK_1, PLNK_2, PLNK_3, PLNK_4, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ + ) +#define LAYOUT_base_wrapper(...) LAYOUT_base(__VA_ARGS__) + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_DEFAULT_LAYER_1] = LAYOUT_base_wrapper( + _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, + _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, + _________________QWERTY_L3_________________, _________________QWERTY_R3_________________ + ), + + [_DEFAULT_LAYER_2] = LAYOUT_base_wrapper( + ______________COLEMAK_MOD_DH_L1____________, ______________COLEMAK_MOD_DH_R1____________, + ______________COLEMAK_MOD_DH_L2____________, ______________COLEMAK_MOD_DH_R2____________, + ______________COLEMAK_MOD_DH_L3____________, ______________COLEMAK_MOD_DH_R3____________ + ), + [_DEFAULT_LAYER_3] = LAYOUT_base_wrapper( + _________________COLEMAK_L1________________, _________________COLEMAK_R1________________, + _________________COLEMAK_L2________________, _________________COLEMAK_R2________________, + _________________COLEMAK_L3________________, _________________COLEMAK_R3________________ + ), + + [_DEFAULT_LAYER_4] = LAYOUT_base_wrapper( + _________________DVORAK_L1_________________, _________________DVORAK_R1_________________, + _________________DVORAK_L2_________________, _________________DVORAK_R2_________________, + _________________DVORAK_L3_________________, _________________DVORAK_R3_________________ + ), + + [_LOWER] = LAYOUT_wrapper( + KC_TILD, _________________LOWER_L1__________________, _________________LOWER_R1__________________, KC_BSPC, _______, + KC_DEL, _________________LOWER_L2__________________, _________________LOWER_R2__________________, KC_PIPE, + _______, _________________LOWER_L3__________________, _________________LOWER_R3__________________, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [_RAISE] = LAYOUT_wrapper( + KC_GRV, _________________RAISE_L1__________________, _________________RAISE_R1__________________, KC_BSPC, _______, + KC_DEL, _________________RAISE_L2__________________, _________________RAISE_R2__________________, KC_BSLS, + _______, _________________RAISE_L3__________________, _________________RAISE_R3__________________, _______, + _______, _______, _______, _______, _______, _______, _______, _________________RAISE_R3__________________ + ), + + [_ADJUST] = LAYOUT_wrapper( + KC_MAKE, _________________ADJUST_L1_________________, _________________ADJUST_R1_________________, KC_RST, _______, + VRSN, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, EEP_RST, + _______, _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, RGB_IDL, + KEYLOCK, _______, _______, _______, _______, KC_NUKE, _______, _______, _______, _______, _______, TG_MODS + ) + +}; + +#ifdef ENCODER_ENABLE +# ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [_DEFAULT_LAYER_1] = { { KC_DOWN, KC_UP } }, + [_DEFAULT_LAYER_2] = { { _______, _______ } }, + [_DEFAULT_LAYER_3] = { { _______, _______ } }, + [_DEFAULT_LAYER_4] = { { _______, _______ } }, + [_GAMEPAD] = { { _______, _______ } }, + [_DIABLO] = { { _______, _______ } }, + [_MOUSE] = { { KC_WH_D, KC_WH_U } }, + [_MEDIA] = { { _______, _______ } }, + [_RAISE] = { { KC_VOLD, KC_VOLU } }, + [_LOWER] = { { RGB_MOD, RGB_RMOD} }, + [_ADJUST] = { { CK_DOWN, CK_UP } }, +}; +// clang-format on +# else +bool encoder_update_user(uint8_t index, bool clockwise) { + switch (get_highest_layer(layer_state)) { + case _RAISE: + clockwise ? rgblight_step() : rgblight_step_reverse(); + break; + case _LOWER: + clockwise ? rgb_matrix_step() : rgb_matrix_step_reverse(); + break; + default: + clockwise ? tap_code(KC_VOLU) : tap_code(KC_VOLD); + break; + } + return false; +} +# endif // ENCODER_ENABLE + +#endif + +void rgb_matrix_indicators_user(void) {} + +void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { + uint8_t this_mod = get_mods(); + uint8_t this_led = host_keyboard_leds(); + uint8_t this_osm = get_oneshot_mods(); +#define THUMB_LED 6 +#define RGB_MATRIX_INDICATOR_SET_COLOR_wrapper(...) RGB_MATRIX_INDICATOR_SET_COLOR(__VA_ARGS__) + if (!userspace_config.rgb_layer_change) { + 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, led_min, led_max); + break; + case _DIABLO: + rgb_matrix_layer_helper(HSV_RED, 1, rgb_matrix_config.speed * 8, LED_FLAG_MODIFIER, led_min, led_max); + break; + case _RAISE: + rgb_matrix_layer_helper(HSV_YELLOW, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); + break; + case _LOWER: + rgb_matrix_layer_helper(HSV_GREEN, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); + break; + case _ADJUST: + rgb_matrix_layer_helper(HSV_RED, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); + break; + case _DEFAULT_LAYER_1: + rgb_matrix_layer_helper(DEFAULT_LAYER_1_HSV, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); + break; + case _DEFAULT_LAYER_2: + rgb_matrix_layer_helper(DEFAULT_LAYER_2_HSV, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); + break; + case _DEFAULT_LAYER_3: + rgb_matrix_layer_helper(DEFAULT_LAYER_3_HSV, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); + break; + case _DEFAULT_LAYER_4: + rgb_matrix_layer_helper(DEFAULT_LAYER_4_HSV, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); + break; + } + } + + extern bool host_driver_disabled; + if (host_driver_disabled) { + RGB_MATRIX_INDICATOR_SET_COLOR_wrapper(THUMB_LED, RGB_OFF); + } else { + switch (get_highest_layer(default_layer_state)) { + case _DEFAULT_LAYER_1: + RGB_MATRIX_INDICATOR_SET_COLOR_wrapper(THUMB_LED, DEFAULT_LAYER_1_RGB); + break; + case _DEFAULT_LAYER_2: + RGB_MATRIX_INDICATOR_SET_COLOR_wrapper(THUMB_LED, DEFAULT_LAYER_2_RGB); + break; + case _DEFAULT_LAYER_3: + RGB_MATRIX_INDICATOR_SET_COLOR_wrapper(THUMB_LED, DEFAULT_LAYER_3_RGB); + break; + case _DEFAULT_LAYER_4: + RGB_MATRIX_INDICATOR_SET_COLOR_wrapper(THUMB_LED, DEFAULT_LAYER_4_RGB); + break; + } + } + + if ((this_mod | this_osm) & MOD_MASK_SHIFT || this_led & (1 << USB_LED_CAPS_LOCK)) { + if (!layer_state_is(_ADJUST)) { + RGB_MATRIX_INDICATOR_SET_COLOR(12, 0x00, 0xFF, 0x00); + RGB_MATRIX_INDICATOR_SET_COLOR(13, 0x00, 0xFF, 0x00); + } + RGB_MATRIX_INDICATOR_SET_COLOR(24, 0x00, 0xFF, 0x00); + } + if ((this_mod | this_osm) & MOD_MASK_CTRL) { + RGB_MATRIX_INDICATOR_SET_COLOR(11, 0xFF, 0x00, 0x00); + RGB_MATRIX_INDICATOR_SET_COLOR(23, 0xFF, 0x00, 0x00); + RGB_MATRIX_INDICATOR_SET_COLOR(14, 0xFF, 0x00, 0x00); + } + if ((this_mod | this_osm) & MOD_MASK_GUI) { + RGB_MATRIX_INDICATOR_SET_COLOR(9, 0xFF, 0xD9, 0x00); + } + if ((this_mod | this_osm) & MOD_MASK_ALT) { + RGB_MATRIX_INDICATOR_SET_COLOR(10, 0x00, 0x00, 0xFF); + RGB_MATRIX_INDICATOR_SET_COLOR(25, 0x00, 0x00, 0xFF); + RGB_MATRIX_INDICATOR_SET_COLOR(36, 0x00, 0x00, 0xFF); + } + if (layer_state_is(_LOWER)) { + RGB_MATRIX_INDICATOR_SET_COLOR(7, 0x00, 0xFF, 0x00); + RGB_MATRIX_INDICATOR_SET_COLOR(8, 0x00, 0xFF, 0x00); + } + if (layer_state_is(_RAISE)) { + RGB_MATRIX_INDICATOR_SET_COLOR(4, 0xFF, 0xFF, 0x00); + RGB_MATRIX_INDICATOR_SET_COLOR(5, 0xFF, 0xFF, 0x00); + } +} diff --git a/keyboards/work_louder/work_board/keymaps/drashna/rules.mk b/keyboards/work_louder/work_board/keymaps/drashna/rules.mk new file mode 100644 index 00000000000..6a4558aa0e0 --- /dev/null +++ b/keyboards/work_louder/work_board/keymaps/drashna/rules.mk @@ -0,0 +1,6 @@ +BOOTMAGIC_ENABLE = lite +EXTRAKEY_ENABLE = yes +TAP_DANCE_ENABLE = no +NKRO_ENABLE = yes +RGBLIGHT_STARTUP_ANIMATION = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/work_louder/work_board/keymaps/via/keymap.c b/keyboards/work_louder/work_board/keymaps/via/keymap.c index 70027697b4e..5675adf2edf 100644 --- a/keyboards/work_louder/work_board/keymaps/via/keymap.c +++ b/keyboards/work_louder/work_board/keymaps/via/keymap.c @@ -30,6 +30,19 @@ enum tap_dances { #define LOWER FN_MO13 #define RAISE FN_MO23 +#define LAYOUT_via( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k0c_a, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k0c_b, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k0c_a }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k0c_b }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, ___ } \ +} + // clang-format off const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_QWERTY] = LAYOUT_via( diff --git a/keyboards/work_louder/work_board/keymaps/via/rules.mk b/keyboards/work_louder/work_board/keymaps/via/rules.mk index 791d5ab5021..7964f4279c7 100644 --- a/keyboards/work_louder/work_board/keymaps/via/rules.mk +++ b/keyboards/work_louder/work_board/keymaps/via/rules.mk @@ -1,2 +1,4 @@ VIA_ENABLE = yes TAP_DANCE_ENABLE = yes + +SRC += encoder_actions.c diff --git a/keyboards/work_louder/work_board/rules.mk b/keyboards/work_louder/work_board/rules.mk index 7ecf7db5dda..a97f070422f 100644 --- a/keyboards/work_louder/work_board/rules.mk +++ b/keyboards/work_louder/work_board/rules.mk @@ -25,4 +25,4 @@ LTO_ENABLE = yes RGB_MATRIX_ENABLE = yes RGB_MATRIX_DRIVER = WS2812 -SRC += encoder_actions.c rgb_functions.c +SRC += rgb_functions.c diff --git a/keyboards/work_louder/work_board/work_board.h b/keyboards/work_louder/work_board/work_board.h index 25a881a19c3..f1bc74b704b 100644 --- a/keyboards/work_louder/work_board/work_board.h +++ b/keyboards/work_louder/work_board/work_board.h @@ -55,29 +55,3 @@ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, ___ }, \ { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, ___ } \ } - -#define LAYOUT_2u_space_via( \ - k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, \ - k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k0c_a, \ - k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k0c_b, \ - k30, k31, k32, k33, k34, k35, k37, k38, k39, k3a, k3b \ -) \ -{ \ - { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c }, \ - { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k0c_a }, \ - { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k0c_b }, \ - { k30, k31, k32, k33, k34, k35, ___, k37, k38, k39, k3a, k3b, ___ } \ -} - -#define LAYOUT_via( \ - k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, \ - k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k0c_a, \ - k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k0c_b, \ - k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b \ -) \ -{ \ - { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c }, \ - { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k0c_a }, \ - { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k0c_b }, \ - { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, ___ } \ -} diff --git a/keyboards/wsk/gothic50/rules.mk b/keyboards/wsk/gothic50/rules.mk index 898966317b0..1e54e6c405e 100644 --- a/keyboards/wsk/gothic50/rules.mk +++ b/keyboards/wsk/gothic50/rules.mk @@ -18,5 +18,4 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = no # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output diff --git a/keyboards/wsk/gothic70/rules.mk b/keyboards/wsk/gothic70/rules.mk index 898966317b0..1e54e6c405e 100644 --- a/keyboards/wsk/gothic70/rules.mk +++ b/keyboards/wsk/gothic70/rules.mk @@ -18,5 +18,4 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = no # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output diff --git a/keyboards/wsk/pain27/rules.mk b/keyboards/wsk/pain27/rules.mk index 1fa251a82d9..cb1b3044fd1 100644 --- a/keyboards/wsk/pain27/rules.mk +++ b/keyboards/wsk/pain27/rules.mk @@ -8,9 +8,9 @@ BOOTLOADER = caterina # comment out to disable the options. # BOOTMAGIC_ENABLE = lite # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys(+4700) -EXTRAKEY_ENABLE = yes # Audio control and System control(+450) -CONSOLE_ENABLE = no # Console for debug(+400) +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug COMMAND_ENABLE = no # Commands for debug and configuration SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work diff --git a/keyboards/wsk/sl40/info.json b/keyboards/wsk/sl40/info.json index 586da2d4458..f70b3f8d515 100644 --- a/keyboards/wsk/sl40/info.json +++ b/keyboards/wsk/sl40/info.json @@ -7,7 +7,7 @@ "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":0, "y":1, "w":1.25}, {"x":1.25, "y":1}, {"x":2.25, "y":1}, {"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":8.25, "y":1}, {"x":9.25, "y":1}, {"x":10.25, "y":1}, {"x":11.25, "y":1}, {"x":12.25, "y":1, "w":1.75}, {"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, "w":1.25}, {"x":12, "y":2}, {"x":13, "y":2}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3, "w":1.25}, {"x":2.5, "y":3, "w":1.25}, {"x":3.75, "y":3, "w":6.25}, {"x":10, "y":3}, {"x":11, "y":3}, {"x":12, "y":3}, {"x":13, "y":3}] }, "LAYOUT_all": { - "layout": [{"label":"Esc", "x":0, "y":1}, {"label":"Q", "x":1, "y":1}, {"label":"W", "x":2, "y":1}, {"label":"E", "x":3, "y":1}, {"label":"R", "x":4, "y":1},{"label":"T", "x":5, "y":1}, {"label":"Y", "x":6, "y":1}, {"label":"U", "x":7, "y":1}, {"label":"I", "x":8, "y":1}, {"label":"O", "x":9, "y":1}, {"label":"P", "x":10, "y":1}, {"label":"{", "x":11, "y":1}, {"label":"}", "x":12, "y":1}, {"label":"BS", "x":13, "y":1}, {"label":"Tab", "x":0, "y":2, "w":1.25}, {"label":"A", "x":1.25, "y":2}, {"label":"S", "x":2.25, "y":2}, {"label":"D", "x":3.25, "y":2}, {"label":"F", "x":4.25, "y":2}, {"label":"G", "x":5.25, "y":2}, {"label":"H", "x":6.25, "y":2}, {"label":"J", "x":7.25, "y":2}, {"label":"K", "x":8.25, "y":2}, {"label":"L", "x":9.25, "y":2}, {"label":":", "x":10.25, "y":2}, {"label":"\"", "x":11.25, "y":2}, {"label":"Enter", "x":12.25, "y":2, "w":1.75}, {"label":"Shift", "x":0, "y":3, "w":1.75}, {"label":"Z", "x":1.75, "y":3}, {"label":"X", "x":2.75, "y":3}, {"label":"C", "x":3.75, "y":3}, {"label":"V", "x":4.75, "y":3}, {"label":"B", "x":5.75, "y":3}, {"label":"N", "x":6.75, "y":3}, {"label":"M", "x":7.75, "y":3}, {"label":"<", "x":8.75, "y":3}, {"label":">", "x":9.75, "y":3}, {"label":"?", "x":10.75, "y":3}, {"x":11.75, "y":3}, {"label":"Shift", "x":12.75, "y":3, "w":1.25}, {"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}, {"x":4.75, "y":4, "w":2.25}, {"x":7, "y":4, "w":2}, {"x":9, "y":4}, {"label":"Alt", "x":10, "y":4}, {"label":"Win", "x":11, "y":4}, {"label":"Menu", "x":12, "y":4}, {"label":"Ctrl", "x":13, "y":4}] + "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0},{"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"{", "x":11, "y":0}, {"label":"}", "x":12, "y":0}, {"label":"BS", "x":13, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.25}, {"label":"A", "x":1.25, "y":1}, {"label":"S", "x":2.25, "y":1}, {"label":"D", "x":3.25, "y":1}, {"label":"F", "x":4.25, "y":1}, {"label":"G", "x":5.25, "y":1}, {"label":"H", "x":6.25, "y":1}, {"label":"J", "x":7.25, "y":1}, {"label":"K", "x":8.25, "y":1}, {"label":"L", "x":9.25, "y":1}, {"label":":", "x":10.25, "y":1}, {"label":"\"", "x":11.25, "y":1}, {"label":"Enter", "x":12.25, "y":1, "w":1.75}, {"label":"Shift", "x":0, "y":2, "w":1.75}, {"label":"Z", "x":1.75, "y":2}, {"label":"X", "x":2.75, "y":2}, {"label":"C", "x":3.75, "y":2}, {"label":"V", "x":4.75, "y":2}, {"label":"B", "x":5.75, "y":2}, {"label":"N", "x":6.75, "y":2}, {"label":"M", "x":7.75, "y":2}, {"label":"<", "x":8.75, "y":2}, {"label":">", "x":9.75, "y":2}, {"label":"?", "x":10.75, "y":2}, {"x":11.75, "y":2}, {"label":"Shift", "x":12.75, "y":2, "w":1.25}, {"label":"Ctrl", "x":0, "y":3, "w":1.25}, {"label":"Win", "x":1.25, "y":3, "w":1.25}, {"label":"Alt", "x":2.5, "y":3, "w":1.25}, {"x":3.75, "y":3}, {"x":4.75, "y":3, "w":2.25}, {"x":7, "y":3, "w":2}, {"x":9, "y":3}, {"label":"Alt", "x":10, "y":3}, {"label":"Win", "x":11, "y":3}, {"label":"Menu", "x":12, "y":3}, {"label":"Ctrl", "x":13, "y":3}] } } } diff --git a/keyboards/wuque/ikki68_aurora/readme.md b/keyboards/wuque/ikki68_aurora/readme.md index 298d7e00ed9..98674d0d728 100644 --- a/keyboards/wuque/ikki68_aurora/readme.md +++ b/keyboards/wuque/ikki68_aurora/readme.md @@ -19,7 +19,7 @@ Flashing example for this keyboard: To reset the board into bootloader mode, do one of the following: -* Tap the Reset switch mounted on the PCB +* Under the **space1** key short the pins on the PCB as shown [here]( https://media.discordapp.net/attachments/768892137205923850/862663262180999218/image0.jpg?width=2520&height=910) * In the case of the default keymap, use the key combination Fn + PageUp * Hold the Esc key while connecting the USB cable (also erases persistent settings) diff --git a/keyboards/wuque/mammoth75x/config.h b/keyboards/wuque/mammoth75x/config.h new file mode 100644 index 00000000000..019a70f50d9 --- /dev/null +++ b/keyboards/wuque/mammoth75x/config.h @@ -0,0 +1,57 @@ +/* +Copyright 2021 wuquestudio + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 0xA06B +#define PRODUCT_ID 0x0004 +#define DEVICE_VER 0x0001 +#define MANUFACTURER wuque studio +#define PRODUCT mammoth75x + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 16 + +#define MATRIX_ROW_PINS { B0, C7, D2, F7, D1, D0 } +#define MATRIX_COL_PINS { D3, D5, D4, D6, D7, B4, B5, E6, F0, F1, F4, F5, F6, C6, B7, B3 } + +#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 + +/* Enable encoder */ +#define ENCODERS_PAD_A { B2 } +#define ENCODERS_PAD_B { B1 } + +#define ENCODERS 1 +// Note: array is { col, row ) +#define ENCODERS_CW_KEY { { 5, 5 } } +#define ENCODERS_CCW_KEY { { 3, 5 } } + +#define LED_CAPS_LOCK_PIN B6 +#define LED_PIN_ON_STATE 0 diff --git a/keyboards/wuque/mammoth75x/info.json b/keyboards/wuque/mammoth75x/info.json new file mode 100644 index 00000000000..4e65f835372 --- /dev/null +++ b/keyboards/wuque/mammoth75x/info.json @@ -0,0 +1,571 @@ +{ + "keyboard_name": "mammoth75x", + "url": "https://shop.wuquestudio.com/", + "maintainer": "spbgzh", + "layouts": { + "LAYOUT_all": { + "layout": [ + { "label": "Esc", "x": 0, "y": 0 }, + { "label": "F1", "x": 1.5, "y": 0 }, + { "label": "F2", "x": 2.5, "y": 0 }, + { "label": "F3", "x": 3.5, "y": 0 }, + { "label": "F4", "x": 4.5, "y": 0 }, + { "label": "F5", "x": 6, "y": 0 }, + { "label": "F6", "x": 7, "y": 0 }, + { "label": "F7", "x": 8, "y": 0 }, + { "label": "F8", "x": 9, "y": 0 }, + { "label": "F9", "x": 10.5, "y": 0 }, + { "label": "F10", "x": 11.5, "y": 0 }, + { "label": "F11", "x": 12.5, "y": 0 }, + { "label": "F12", "x": 13.5, "y": 0 }, + { "label": "Delete", "x": 15, "y": 0 }, + { "label": "EncoderRotateL", "x": 15.25, "y": 1.25, "w": 0.25 }, + { "label": "EncoderClick", "x": 15.75, "y": 1.25 }, + { "label": "EncoderRotateR", "x": 16.75, "y": 1.25, "w": 0.25 }, + + { "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": 6, "y": 1.25 }, + { "label": "7", "x": 7, "y": 1.25 }, + { "label": "8", "x": 8, "y": 1.25 }, + { "label": "9", "x": 9, "y": 1.25 }, + { "label": "0", "x": 10, "y": 1.25 }, + { "label": "-", "x": 11, "y": 1.25 }, + { "label": "=", "x": 12, "y": 1.25 }, + { "label": "Backspace", "x": 13, "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": 6.5, "y": 2.25 }, + { "label": "U", "x": 7.5, "y": 2.25 }, + { "label": "I", "x": 8.5, "y": 2.25 }, + { "label": "O", "x": 9.5, "y": 2.25 }, + { "label": "P", "x": 10.5, "y": 2.25 }, + { "label": "[", "x": 11.5, "y": 2.25 }, + { "label": "]", "x": 12.5, "y": 2.25 }, + { "label": "\\", "x": 13.5,"y": 2.25, "w": 1.5 }, + { "label": "Home", "x": 15.25, "y": 2.25 }, + { "label": "PageUp", "x": 16.25, "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": 6.75, "y": 3.25 }, + { "label": "J", "x": 7.75, "y": 3.25 }, + { "label": "K", "x": 8.75, "y": 3.25 }, + { "label": "L", "x": 9.75, "y": 3.25 }, + { "label": ";", "x": 10.75, "y": 3.25 }, + { "label": "'", "x": 11.75, "y": 3.25 }, + { "label": "Enter", "x": 12.75, "y": 3.25, "w": 2.25 }, + { "label": "Backspace1", "x": 14, "y": 1.25 }, + { "label": "End", "x": 15.25, "y": 3.25 }, + { "label": "PageDown", "x": 16.25, "y": 3.25 }, + + { "label": "Shift1", "x": 0, "y": 4.25, "w": 1.25 }, + { "label": "Shift2", "x": 1.25, "y": 4.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": 7.25, "y": 4.25 }, + { "label": "M", "x": 8.25, "y": 4.25 }, + { "label": ",", "x": 9.25, "y": 4.25 }, + { "label": ".", "x": 10.25, "y": 4.25 }, + { "label": "/", "x": 11.25, "y": 4.25 }, + { "label": "Shift1", "x": 12.25, "y": 4.25, "w": 1.75 }, + { "label": "Shift2", "x": 14, "y": 4.25 }, + { "label": "\u2191", "x": 15.25, "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 }, + { "label": "Space","x": 3.75, "y": 5.25, "w": 2.25 }, + { "label": "Space","x": 6, "y": 5.25, "w": 1.25 }, + { "label": "Space","x": 7.25, "y": 5.25, "w": 2.75 }, + { "label": "Alt", "x": 10, "y": 5.25, "w": 1.25 }, + { "label": "Ctrl", "x": 11.25, "y": 5.25, "w": 1.25 }, + { "label": "Menu", "x": 12.5, "y": 5.25, "w": 1.25 }, + { "label": "\u2190", "x": 14.25, "y": 5.25 }, + { "label": "\u2193", "x": 15.25, "y": 5.25 }, + { "label": "\u2192", "x": 16.25, "y": 5.25 } + ] + }, + "LAYOUT_75_ansi": { + "layout": [ + { "label": "Esc", "x": 0, "y": 0 }, + { "label": "F1", "x": 1.5, "y": 0 }, + { "label": "F2", "x": 2.5, "y": 0 }, + { "label": "F3", "x": 3.5, "y": 0 }, + { "label": "F4", "x": 4.5, "y": 0 }, + { "label": "F5", "x": 6, "y": 0 }, + { "label": "F6", "x": 7, "y": 0 }, + { "label": "F7", "x": 8, "y": 0 }, + { "label": "F8", "x": 9, "y": 0 }, + { "label": "F9", "x": 10.5, "y": 0 }, + { "label": "F10", "x": 11.5, "y": 0 }, + { "label": "F11", "x": 12.5, "y": 0 }, + { "label": "F12", "x": 13.5, "y": 0 }, + { "label": "Delete", "x": 15, "y": 0 }, + { "label": "EncoderClick", "x": 15.75, "y": 1.25 }, + + { "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": 6, "y": 1.25 }, + { "label": "7", "x": 7, "y": 1.25 }, + { "label": "8", "x": 8, "y": 1.25 }, + { "label": "9", "x": 9, "y": 1.25 }, + { "label": "0", "x": 10, "y": 1.25 }, + { "label": "-", "x": 11, "y": 1.25 }, + { "label": "=", "x": 12, "y": 1.25 }, + { "label": "Backspace", "x": 13, "y": 1.25, "w":2}, + + { "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": 6.5, "y": 2.25 }, + { "label": "U", "x": 7.5, "y": 2.25 }, + { "label": "I", "x": 8.5, "y": 2.25 }, + { "label": "O", "x": 9.5, "y": 2.25 }, + { "label": "P", "x": 10.5, "y": 2.25 }, + { "label": "[", "x": 11.5, "y": 2.25 }, + { "label": "]", "x": 12.5, "y": 2.25 }, + { "label": "\\", "x": 13.5,"y": 2.25, "w": 1.5 }, + { "label": "Home", "x": 15.25, "y": 2.25 }, + { "label": "PageUp", "x": 16.25, "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": 6.75, "y": 3.25 }, + { "label": "J", "x": 7.75, "y": 3.25 }, + { "label": "K", "x": 8.75, "y": 3.25 }, + { "label": "L", "x": 9.75, "y": 3.25 }, + { "label": ";", "x": 10.75, "y": 3.25 }, + { "label": "'", "x": 11.75, "y": 3.25 }, + { "label": "Enter", "x": 12.75, "y": 3.25, "w": 2.25 }, + { "label": "End", "x": 15.25, "y": 3.25 }, + { "label": "PageDown", "x": 16.25, "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": 7.25, "y": 4.25 }, + { "label": "M", "x": 8.25, "y": 4.25 }, + { "label": ",", "x": 9.25, "y": 4.25 }, + { "label": ".", "x": 10.25, "y": 4.25 }, + { "label": "/", "x": 11.25, "y": 4.25 }, + { "label": "Shift", "x": 12.25, "y": 4.25, "w": 2.75 }, + { "label": "\u2191", "x": 15.25, "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 }, + { "label": "Space","x": 3.75, "y": 5.25, "w": 6.25 }, + { "label": "Alt", "x": 10, "y": 5.25, "w": 1.25 }, + { "label": "Ctrl", "x": 11.25, "y": 5.25, "w": 1.25 }, + { "label": "Menu", "x": 12.5, "y": 5.25, "w": 1.25 }, + { "label": "\u2190", "x": 14.25, "y": 5.25 }, + { "label": "\u2193", "x": 15.25, "y": 5.25 }, + { "label": "\u2192", "x": 16.25, "y": 5.25 } + ] + }, + "LAYOUT_75_ansi_split_lshift": { + "layout": [ + { "label": "Esc", "x": 0, "y": 0 }, + { "label": "F1", "x": 1.5, "y": 0 }, + { "label": "F2", "x": 2.5, "y": 0 }, + { "label": "F3", "x": 3.5, "y": 0 }, + { "label": "F4", "x": 4.5, "y": 0 }, + { "label": "F5", "x": 6, "y": 0 }, + { "label": "F6", "x": 7, "y": 0 }, + { "label": "F7", "x": 8, "y": 0 }, + { "label": "F8", "x": 9, "y": 0 }, + { "label": "F9", "x": 10.5, "y": 0 }, + { "label": "F10", "x": 11.5, "y": 0 }, + { "label": "F11", "x": 12.5, "y": 0 }, + { "label": "F12", "x": 13.5, "y": 0 }, + { "label": "Delete", "x": 15, "y": 0 }, + { "label": "EncoderClick", "x": 15.75, "y": 1.25 }, + + { "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": 6, "y": 1.25 }, + { "label": "7", "x": 7, "y": 1.25 }, + { "label": "8", "x": 8, "y": 1.25 }, + { "label": "9", "x": 9, "y": 1.25 }, + { "label": "0", "x": 10, "y": 1.25 }, + { "label": "-", "x": 11, "y": 1.25 }, + { "label": "=", "x": 12, "y": 1.25 }, + { "label": "Backspace", "x": 13, "y": 1.25, "w":2}, + + { "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": 6.5, "y": 2.25 }, + { "label": "U", "x": 7.5, "y": 2.25 }, + { "label": "I", "x": 8.5, "y": 2.25 }, + { "label": "O", "x": 9.5, "y": 2.25 }, + { "label": "P", "x": 10.5, "y": 2.25 }, + { "label": "[", "x": 11.5, "y": 2.25 }, + { "label": "]", "x": 12.5, "y": 2.25 }, + { "label": "\\", "x": 13.5,"y": 2.25, "w": 1.5 }, + { "label": "Home", "x": 15.25, "y": 2.25 }, + { "label": "PageUp", "x": 16.25, "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": 6.75, "y": 3.25 }, + { "label": "J", "x": 7.75, "y": 3.25 }, + { "label": "K", "x": 8.75, "y": 3.25 }, + { "label": "L", "x": 9.75, "y": 3.25 }, + { "label": ";", "x": 10.75, "y": 3.25 }, + { "label": "'", "x": 11.75, "y": 3.25 }, + { "label": "Enter", "x": 12.75, "y": 3.25, "w": 2.25 }, + { "label": "End", "x": 15.25, "y": 3.25 }, + { "label": "PageDown", "x": 16.25, "y": 3.25 }, + + { "label": "Shift1", "x": 0, "y": 4.25, "w": 1.25 }, + { "label": "Shift2", "x": 1.25, "y": 4.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": 7.25, "y": 4.25 }, + { "label": "M", "x": 8.25, "y": 4.25 }, + { "label": ",", "x": 9.25, "y": 4.25 }, + { "label": ".", "x": 10.25, "y": 4.25 }, + { "label": "/", "x": 11.25, "y": 4.25 }, + { "label": "Shift", "x": 12.25, "y": 4.25, "w": 2.75 }, + { "label": "\u2191", "x": 15.25, "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 }, + { "label": "Space","x": 3.75, "y": 5.25, "w": 6.25 }, + { "label": "Alt", "x": 10, "y": 5.25, "w": 1.25 }, + { "label": "Ctrl", "x": 11.25, "y": 5.25, "w": 1.25 }, + { "label": "Menu", "x": 12.5, "y": 5.25, "w": 1.25 }, + { "label": "\u2190", "x": 14.25, "y": 5.25 }, + { "label": "\u2193", "x": 15.25, "y": 5.25 }, + { "label": "\u2192", "x": 16.25, "y": 5.25 } + ] + }, + "LAYOUT_75_ansi_split_rshift": { + "layout": [ + { "label": "Esc", "x": 0, "y": 0 }, + { "label": "F1", "x": 1.5, "y": 0 }, + { "label": "F2", "x": 2.5, "y": 0 }, + { "label": "F3", "x": 3.5, "y": 0 }, + { "label": "F4", "x": 4.5, "y": 0 }, + { "label": "F5", "x": 6, "y": 0 }, + { "label": "F6", "x": 7, "y": 0 }, + { "label": "F7", "x": 8, "y": 0 }, + { "label": "F8", "x": 9, "y": 0 }, + { "label": "F9", "x": 10.5, "y": 0 }, + { "label": "F10", "x": 11.5, "y": 0 }, + { "label": "F11", "x": 12.5, "y": 0 }, + { "label": "F12", "x": 13.5, "y": 0 }, + { "label": "Delete", "x": 15, "y": 0 }, + { "label": "EncoderClick", "x": 15.75, "y": 1.25 }, + + { "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": 6, "y": 1.25 }, + { "label": "7", "x": 7, "y": 1.25 }, + { "label": "8", "x": 8, "y": 1.25 }, + { "label": "9", "x": 9, "y": 1.25 }, + { "label": "0", "x": 10, "y": 1.25 }, + { "label": "-", "x": 11, "y": 1.25 }, + { "label": "=", "x": 12, "y": 1.25 }, + { "label": "Backspace", "x": 13, "y": 1.25, "w":2}, + + { "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": 6.5, "y": 2.25 }, + { "label": "U", "x": 7.5, "y": 2.25 }, + { "label": "I", "x": 8.5, "y": 2.25 }, + { "label": "O", "x": 9.5, "y": 2.25 }, + { "label": "P", "x": 10.5, "y": 2.25 }, + { "label": "[", "x": 11.5, "y": 2.25 }, + { "label": "]", "x": 12.5, "y": 2.25 }, + { "label": "\\", "x": 13.5,"y": 2.25, "w": 1.5 }, + { "label": "Home", "x": 15.25, "y": 2.25 }, + { "label": "PageUp", "x": 16.25, "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": 6.75, "y": 3.25 }, + { "label": "J", "x": 7.75, "y": 3.25 }, + { "label": "K", "x": 8.75, "y": 3.25 }, + { "label": "L", "x": 9.75, "y": 3.25 }, + { "label": ";", "x": 10.75, "y": 3.25 }, + { "label": "'", "x": 11.75, "y": 3.25 }, + { "label": "Enter", "x": 12.75, "y": 3.25, "w": 2.25 }, + { "label": "End", "x": 15.25, "y": 3.25 }, + { "label": "PageDown", "x": 16.25, "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": 7.25, "y": 4.25 }, + { "label": "M", "x": 8.25, "y": 4.25 }, + { "label": ",", "x": 9.25, "y": 4.25 }, + { "label": ".", "x": 10.25, "y": 4.25 }, + { "label": "/", "x": 11.25, "y": 4.25 }, + { "label": "Shift1", "x": 12.25, "y": 4.25, "w": 1.75 }, + { "label": "Shift2", "x": 14, "y": 4.25 }, + { "label": "\u2191", "x": 15.25, "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 }, + { "label": "Space","x": 3.75, "y": 5.25, "w": 6.25 }, + { "label": "Alt", "x": 10, "y": 5.25, "w": 1.25 }, + { "label": "Ctrl", "x": 11.25, "y": 5.25, "w": 1.25 }, + { "label": "Menu", "x": 12.5, "y": 5.25, "w": 1.25 }, + { "label": "\u2190", "x": 14.25, "y": 5.25 }, + { "label": "\u2193", "x": 15.25, "y": 5.25 }, + { "label": "\u2192", "x": 16.25, "y": 5.25 } + ] + }, + "LAYOUT_75_ansi_split_bs": { + "layout": [ + { "label": "Esc", "x": 0, "y": 0 }, + { "label": "F1", "x": 1.5, "y": 0 }, + { "label": "F2", "x": 2.5, "y": 0 }, + { "label": "F3", "x": 3.5, "y": 0 }, + { "label": "F4", "x": 4.5, "y": 0 }, + { "label": "F5", "x": 6, "y": 0 }, + { "label": "F6", "x": 7, "y": 0 }, + { "label": "F7", "x": 8, "y": 0 }, + { "label": "F8", "x": 9, "y": 0 }, + { "label": "F9", "x": 10.5, "y": 0 }, + { "label": "F10", "x": 11.5, "y": 0 }, + { "label": "F11", "x": 12.5, "y": 0 }, + { "label": "F12", "x": 13.5, "y": 0 }, + { "label": "Delete", "x": 15, "y": 0 }, + { "label": "EncoderClick", "x": 15.75, "y": 1.25 }, + + { "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": 6, "y": 1.25 }, + { "label": "7", "x": 7, "y": 1.25 }, + { "label": "8", "x": 8, "y": 1.25 }, + { "label": "9", "x": 9, "y": 1.25 }, + { "label": "0", "x": 10, "y": 1.25 }, + { "label": "-", "x": 11, "y": 1.25 }, + { "label": "=", "x": 12, "y": 1.25 }, + { "label": "Backspace", "x": 13, "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": 6.5, "y": 2.25 }, + { "label": "U", "x": 7.5, "y": 2.25 }, + { "label": "I", "x": 8.5, "y": 2.25 }, + { "label": "O", "x": 9.5, "y": 2.25 }, + { "label": "P", "x": 10.5, "y": 2.25 }, + { "label": "[", "x": 11.5, "y": 2.25 }, + { "label": "]", "x": 12.5, "y": 2.25 }, + { "label": "\\", "x": 13.5,"y": 2.25, "w": 1.5 }, + { "label": "Home", "x": 15.25, "y": 2.25 }, + { "label": "PageUp", "x": 16.25, "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": 6.75, "y": 3.25 }, + { "label": "J", "x": 7.75, "y": 3.25 }, + { "label": "K", "x": 8.75, "y": 3.25 }, + { "label": "L", "x": 9.75, "y": 3.25 }, + { "label": ";", "x": 10.75, "y": 3.25 }, + { "label": "'", "x": 11.75, "y": 3.25 }, + { "label": "Enter", "x": 12.75, "y": 3.25, "w": 2.25 }, + { "label": "Backspace1", "x": 14, "y": 1.25 }, + { "label": "End", "x": 15.25, "y": 3.25 }, + { "label": "PageDown", "x": 16.25, "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": 7.25, "y": 4.25 }, + { "label": "M", "x": 8.25, "y": 4.25 }, + { "label": ",", "x": 9.25, "y": 4.25 }, + { "label": ".", "x": 10.25, "y": 4.25 }, + { "label": "/", "x": 11.25, "y": 4.25 }, + { "label": "Shift", "x": 12.25, "y": 4.25, "w": 2.75 }, + { "label": "\u2191", "x": 15.25, "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 }, + { "label": "Space","x": 3.75, "y": 5.25, "w": 6.25 }, + { "label": "Alt", "x": 10, "y": 5.25, "w": 1.25 }, + { "label": "Ctrl", "x": 11.25, "y": 5.25, "w": 1.25 }, + { "label": "Menu", "x": 12.5, "y": 5.25, "w": 1.25 }, + { "label": "\u2190", "x": 14.25, "y": 5.25 }, + { "label": "\u2193", "x": 15.25, "y": 5.25 }, + { "label": "\u2192", "x": 16.25, "y": 5.25 } + ] + }, + "LAYOUT_75_ansi_split_space": { + "layout": [ + { "label": "Esc", "x": 0, "y": 0 }, + { "label": "F1", "x": 1.5, "y": 0 }, + { "label": "F2", "x": 2.5, "y": 0 }, + { "label": "F3", "x": 3.5, "y": 0 }, + { "label": "F4", "x": 4.5, "y": 0 }, + { "label": "F5", "x": 6, "y": 0 }, + { "label": "F6", "x": 7, "y": 0 }, + { "label": "F7", "x": 8, "y": 0 }, + { "label": "F8", "x": 9, "y": 0 }, + { "label": "F9", "x": 10.5, "y": 0 }, + { "label": "F10", "x": 11.5, "y": 0 }, + { "label": "F11", "x": 12.5, "y": 0 }, + { "label": "F12", "x": 13.5, "y": 0 }, + { "label": "Delete", "x": 15, "y": 0 }, + { "label": "EncoderClick", "x": 15.75, "y": 1.25 }, + + { "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": 6, "y": 1.25 }, + { "label": "7", "x": 7, "y": 1.25 }, + { "label": "8", "x": 8, "y": 1.25 }, + { "label": "9", "x": 9, "y": 1.25 }, + { "label": "0", "x": 10, "y": 1.25 }, + { "label": "-", "x": 11, "y": 1.25 }, + { "label": "=", "x": 12, "y": 1.25 }, + { "label": "Backspace", "x": 13, "y": 1.25, "w":2}, + + { "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": 6.5, "y": 2.25 }, + { "label": "U", "x": 7.5, "y": 2.25 }, + { "label": "I", "x": 8.5, "y": 2.25 }, + { "label": "O", "x": 9.5, "y": 2.25 }, + { "label": "P", "x": 10.5, "y": 2.25 }, + { "label": "[", "x": 11.5, "y": 2.25 }, + { "label": "]", "x": 12.5, "y": 2.25 }, + { "label": "\\", "x": 13.5,"y": 2.25, "w": 1.5 }, + { "label": "Home", "x": 15.25, "y": 2.25 }, + { "label": "PageUp", "x": 16.25, "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": 6.75, "y": 3.25 }, + { "label": "J", "x": 7.75, "y": 3.25 }, + { "label": "K", "x": 8.75, "y": 3.25 }, + { "label": "L", "x": 9.75, "y": 3.25 }, + { "label": ";", "x": 10.75, "y": 3.25 }, + { "label": "'", "x": 11.75, "y": 3.25 }, + { "label": "Enter", "x": 12.75, "y": 3.25, "w": 2.25 }, + { "label": "End", "x": 15.25, "y": 3.25 }, + { "label": "PageDown", "x": 16.25, "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": 7.25, "y": 4.25 }, + { "label": "M", "x": 8.25, "y": 4.25 }, + { "label": ",", "x": 9.25, "y": 4.25 }, + { "label": ".", "x": 10.25, "y": 4.25 }, + { "label": "/", "x": 11.25, "y": 4.25 }, + { "label": "Shift", "x": 12.25, "y": 4.25, "w": 2.75 }, + { "label": "\u2191", "x": 15.25, "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 }, + { "label": "Space","x": 3.75, "y": 5.25, "w": 2.25 }, + { "label": "Space","x": 6, "y": 5.25, "w": 1.25 }, + { "label": "Space","x": 7.25, "y": 5.25, "w": 2.75 }, + { "label": "Alt", "x": 10, "y": 5.25, "w": 1.25 }, + { "label": "Ctrl", "x": 11.25, "y": 5.25, "w": 1.25 }, + { "label": "Menu", "x": 12.5, "y": 5.25, "w": 1.25 }, + { "label": "\u2190", "x": 14.25, "y": 5.25 }, + { "label": "\u2193", "x": 15.25, "y": 5.25 }, + { "label": "\u2192", "x": 16.25, "y": 5.25 } + ] + } + } +} diff --git a/keyboards/wuque/mammoth75x/keymaps/75_ansi/keymap.c b/keyboards/wuque/mammoth75x/keymaps/75_ansi/keymap.c new file mode 100644 index 00000000000..a35038348ea --- /dev/null +++ b/keyboards/wuque/mammoth75x/keymaps/75_ansi/keymap.c @@ -0,0 +1,36 @@ +/* Copyright 2021 wuquestudio + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_75_ansi( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_MUTE, + 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, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_INS, 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_END, 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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_75_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/wuque/mammoth75x/keymaps/75_ansi/readme.md b/keyboards/wuque/mammoth75x/keymaps/75_ansi/readme.md new file mode 100644 index 00000000000..b6b384197af --- /dev/null +++ b/keyboards/wuque/mammoth75x/keymaps/75_ansi/readme.md @@ -0,0 +1 @@ +# The 75_ansi keymap for mammoth75x diff --git a/keyboards/wuque/mammoth75x/keymaps/75_split_bs/keymap.c b/keyboards/wuque/mammoth75x/keymaps/75_split_bs/keymap.c new file mode 100644 index 00000000000..c1717e6d221 --- /dev/null +++ b/keyboards/wuque/mammoth75x/keymaps/75_split_bs/keymap.c @@ -0,0 +1,36 @@ +/* Copyright 2021 wuquestudio + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_75_ansi_split_bs( + 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_MUTE, + 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, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_INS, 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_BSPC, KC_END, 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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_75_ansi_split_bs( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/wuque/mammoth75x/keymaps/75_split_bs/readme.md b/keyboards/wuque/mammoth75x/keymaps/75_split_bs/readme.md new file mode 100644 index 00000000000..ef0bf98c57f --- /dev/null +++ b/keyboards/wuque/mammoth75x/keymaps/75_split_bs/readme.md @@ -0,0 +1 @@ +# The 75_split_bs keymap for mammoth75x diff --git a/keyboards/wuque/mammoth75x/keymaps/75_split_lshift/keymap.c b/keyboards/wuque/mammoth75x/keymaps/75_split_lshift/keymap.c new file mode 100644 index 00000000000..611e1a2642c --- /dev/null +++ b/keyboards/wuque/mammoth75x/keymaps/75_split_lshift/keymap.c @@ -0,0 +1,36 @@ +/* Copyright 2021 wuquestudio + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_75_ansi_split_lshift( + 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_MUTE, + 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, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_INS, 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_END, KC_PGDN, + KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_75_ansi_split_lshift( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/wuque/mammoth75x/keymaps/75_split_lshift/readme.md b/keyboards/wuque/mammoth75x/keymaps/75_split_lshift/readme.md new file mode 100644 index 00000000000..cd6640f912b --- /dev/null +++ b/keyboards/wuque/mammoth75x/keymaps/75_split_lshift/readme.md @@ -0,0 +1 @@ +# The 75_split_lshift keymap for mammoth75x diff --git a/keyboards/wuque/mammoth75x/keymaps/75_split_rshift/keymap.c b/keyboards/wuque/mammoth75x/keymaps/75_split_rshift/keymap.c new file mode 100644 index 00000000000..1debfe81b74 --- /dev/null +++ b/keyboards/wuque/mammoth75x/keymaps/75_split_rshift/keymap.c @@ -0,0 +1,36 @@ +/* Copyright 2021 wuquestudio + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_75_ansi_split_rshift( + 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_MUTE, + 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, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_INS, 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_END, 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_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_75_ansi_split_rshift( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/wuque/mammoth75x/keymaps/75_split_rshift/readme.md b/keyboards/wuque/mammoth75x/keymaps/75_split_rshift/readme.md new file mode 100644 index 00000000000..cd6640f912b --- /dev/null +++ b/keyboards/wuque/mammoth75x/keymaps/75_split_rshift/readme.md @@ -0,0 +1 @@ +# The 75_split_lshift keymap for mammoth75x diff --git a/keyboards/wuque/mammoth75x/keymaps/75_split_space/keymap.c b/keyboards/wuque/mammoth75x/keymaps/75_split_space/keymap.c new file mode 100644 index 00000000000..2182216060c --- /dev/null +++ b/keyboards/wuque/mammoth75x/keymaps/75_split_space/keymap.c @@ -0,0 +1,36 @@ +/* Copyright 2021 wuquestudio + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_75_ansi_split_space( + 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_MUTE, + 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, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_INS, 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_END, 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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_75_ansi_split_space( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/wuque/mammoth75x/keymaps/75_split_space/readme.md b/keyboards/wuque/mammoth75x/keymaps/75_split_space/readme.md new file mode 100644 index 00000000000..c2057660f9f --- /dev/null +++ b/keyboards/wuque/mammoth75x/keymaps/75_split_space/readme.md @@ -0,0 +1 @@ +# The 75_split_space keymap for mammoth75x diff --git a/keyboards/wuque/mammoth75x/keymaps/default/keymap.c b/keyboards/wuque/mammoth75x/keymaps/default/keymap.c new file mode 100644 index 00000000000..9f998a3dd6b --- /dev/null +++ b/keyboards/wuque/mammoth75x/keymaps/default/keymap.c @@ -0,0 +1,36 @@ +/* Copyright 2021 wuquestudio + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_VOLD, KC_MUTE,KC_VOLU, + 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, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_INS, 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_BSPC, KC_END, KC_PGDN, + KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/wuque/mammoth75x/keymaps/default/readme.md b/keyboards/wuque/mammoth75x/keymaps/default/readme.md new file mode 100644 index 00000000000..73cba9c7b90 --- /dev/null +++ b/keyboards/wuque/mammoth75x/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for mammoth75x diff --git a/keyboards/wuque/mammoth75x/keymaps/via/keymap.c b/keyboards/wuque/mammoth75x/keymaps/via/keymap.c new file mode 100644 index 00000000000..d35ff6bccc2 --- /dev/null +++ b/keyboards/wuque/mammoth75x/keymaps/via/keymap.c @@ -0,0 +1,52 @@ +/* Copyright 2021 wuquestudio + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_VOLD, KC_MUTE,KC_VOLU, + 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, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_INS, 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_BSPC, KC_END, KC_PGDN, + KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/wuque/mammoth75x/keymaps/via/readme.md b/keyboards/wuque/mammoth75x/keymaps/via/readme.md new file mode 100644 index 00000000000..e6ea1cf87d9 --- /dev/null +++ b/keyboards/wuque/mammoth75x/keymaps/via/readme.md @@ -0,0 +1 @@ +# The via keymap for mammoth75x diff --git a/keyboards/wuque/mammoth75x/keymaps/via/rules.mk b/keyboards/wuque/mammoth75x/keymaps/via/rules.mk new file mode 100644 index 00000000000..36b7ba9cbc9 --- /dev/null +++ b/keyboards/wuque/mammoth75x/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/wuque/mammoth75x/mammoth75x.c b/keyboards/wuque/mammoth75x/mammoth75x.c new file mode 100644 index 00000000000..6f14657f889 --- /dev/null +++ b/keyboards/wuque/mammoth75x/mammoth75x.c @@ -0,0 +1,67 @@ +/* Copyright 2021 wuquestudio + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 "mammoth75x.h" + +#ifdef VIA_ENABLE +static uint8_t encoder_state[ENCODERS] = {0}; +static keypos_t encoder_cw[ENCODERS] = ENCODERS_CW_KEY; +static keypos_t encoder_ccw[ENCODERS] = ENCODERS_CCW_KEY; + +void encoder_action_unregister(void) +{ + for (int index = 0; index < ENCODERS; ++index) + { + if (encoder_state[index]) + { + keyevent_t encoder_event = (keyevent_t){ + .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index], + .pressed = false, + .time = (timer_read() | 1)}; + encoder_state[index] = 0; + action_exec(encoder_event); + } + } +} +void encoder_action_register(uint8_t index, bool clockwise) +{ + keyevent_t encoder_event = (keyevent_t){ + .key = clockwise ? encoder_cw[index] : encoder_ccw[index], + .pressed = true, + .time = (timer_read() | 1)}; + encoder_state[index] = (clockwise ^ 1) | (clockwise << 1); + action_exec(encoder_event); +} + +void matrix_scan_kb(void) +{ + encoder_action_unregister(); + matrix_scan_user(); +} + +bool encoder_update_kb(uint8_t index, bool clockwise) +{ + encoder_action_register(index, clockwise); + return true; +}; +#else +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { return false; } + tap_code_delay(clockwise ? KC_VOLU : KC_VOLD, 10); + return true; +} +#endif + diff --git a/keyboards/wuque/mammoth75x/mammoth75x.h b/keyboards/wuque/mammoth75x/mammoth75x.h new file mode 100644 index 00000000000..a3ab71caa16 --- /dev/null +++ b/keyboards/wuque/mammoth75x/mammoth75x.h @@ -0,0 +1,223 @@ +/* Copyright 2021 wuquestudio + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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" + + +/* Standard Arrangement + * ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ + * │00 ││01 │02 │03 │04 ││05 │06 │07 │08 ││09 │0a │0b │0c ││0d │ + * └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ◯ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d │3d │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ┌───┬───┐ + * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │2d │ │2e │2f │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ├───┼───┤ + * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c │ │3e │3f │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ └───┴───┘ + * │40 │41 │42 │43 │44 │45 │46 │47 │48 │49 │4a │4b │4c │4d │ ┌───┐ + * ├────┼───┴┬──┴─┬─┴───┴──┬┴───┼───┴───┴──┬┴───┼───┴┬────┬┴───┘ │4e │ + * │50 │51 │52 │54 │56 │58 │5a │5b │5c │ ┌───┼───┼───┐ + * └────┴────┴────┴────────┴────┴──────────┴────┴────┴────┘ │5d │5e │5f │ + * └───┴───┴───┘ + */ +#define LAYOUT_all( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K53, K0E, K55, \ + 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, K2E, K2F, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E, \ + K50, K51, K52, K54, K56, K58, K5A, K5B, K5C, K5D, K5E, K5F \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, 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, K2C, K2D, K2E, K2F }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E, KC_NO }, \ + { K50, K51, K52, K53, K54, K55, K56, KC_NO, K58, KC_NO, K5A, K5B, K5C, K5D, K5E, K5F }, \ +} + + +/* LAYOUT_75_ansi + * ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ + * │00 ││01 │02 │03 │04 ││05 │06 │07 │08 ││09 │0a │0b │0c ││0d │ + * └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ◯ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ┌───┬───┐ + * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │2d │ │2e │2f │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ├───┼───┤ + * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c │ │3e │3f │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ └───┴───┘ + * │40 │42 │43 │44 │45 │46 │47 │48 │49 │4a │4b │4c │ ┌───┐ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┘ │4e │ + * │50 │51 │52 │56 │5a │5b │5c │ ┌───┼───┼───┐ + * └────┴────┴────┴────────────────────────┴────┴────┴────┘ │5d │5e │5f │ + * └───┴───┴───┘ + */ +#define LAYOUT_75_ansi( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3E, K3F, \ + K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4E, \ + K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, 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, K2C, K2D, K2E, K2F }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO, K3E, K3F }, \ + { K40, KC_NO, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, KC_NO, K4E, KC_NO }, \ + { K50, K51, K52, KC_NO, KC_NO, KC_NO, K56, KC_NO, KC_NO, KC_NO, K5A, K5B, K5C, K5D, K5E, K5F }, \ +} + + +/* LAYOUT_75_ansi_split_lshift + * ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ + * │00 ││01 │02 │03 │04 ││05 │06 │07 │08 ││09 │0a │0b │0c ││0d │ + * └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ◯ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ┌───┬───┐ + * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │2d │ │2e │2f │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ├───┼───┤ + * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c │ │3e │3f │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ └───┴───┘ + * │40 │41 │42 │43 │44 │45 │46 │47 │48 │49 │4a │4b │4c │ ┌───┐ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┘ │4e │ + * │50 │51 │52 │56 │5a │5b │5c │ ┌───┼───┼───┐ + * └────┴────┴────┴────────────────────────┴────┴────┴────┘ │5d │5e │5f │ + * └───┴───┴───┘ + */ +#define LAYOUT_75_ansi_split_lshift( \ + 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, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3E, K3F, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4E, \ + K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, 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, K2C, K2D, K2E, K2F }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO, K3E, K3F }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, KC_NO, K4E, KC_NO }, \ + { K50, K51, K52, KC_NO, KC_NO, KC_NO, K56, KC_NO, KC_NO, KC_NO, K5A, K5B, K5C, K5D, K5E, K5F }, \ +} + + +/* LAYOUT_75_ansi_split_rshift + * ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ + * │00 ││01 │02 │03 │04 ││05 │06 │07 │08 ││09 │0a │0b │0c ││0d │ + * └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ◯ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ┌───┬───┐ + * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │2d │ │2e │2f │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ├───┼───┤ + * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c │ │3e │3f │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ └───┴───┘ + * │40 │42 │43 │44 │45 │46 │47 │48 │49 │4a │4b │4c │4d │ ┌───┐ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┘ │4e │ + * │50 │51 │52 │56 │5a │5b │5c │ ┌───┼───┼───┐ + * └────┴────┴────┴────────────────────────┴────┴────┴────┘ │5d │5e │5f │ + * └───┴───┴───┘ + */ +#define LAYOUT_75_ansi_split_rshift( \ + 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, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3E, K3F, \ + K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E, \ + K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, 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, K2C, K2D, K2E, K2F }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO, K3E, K3F }, \ + { K40, KC_NO, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E, KC_NO }, \ + { K50, K51, K52, KC_NO, KC_NO, KC_NO, K56, KC_NO, KC_NO, KC_NO, K5A, K5B, K5C, K5D, K5E, K5F }, \ +} + + +/* LAYOUT_75_ansi_split_bs + * ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ + * │00 ││01 │02 │03 │04 ││05 │06 │07 │08 ││09 │0a │0b │0c ││0d │ + * └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ◯ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d │3d │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ┌───┬───┐ + * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │2d │ │2e │2f │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ├───┼───┤ + * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c │ │3e │3f │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ └───┴───┘ + * │40 │42 │43 │44 │45 │46 │47 │48 │49 │4a │4b │4c │ ┌───┐ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┘ │4e │ + * │50 │51 │52 │56 │5a │5b │5c │ ┌───┼───┼───┐ + * └────┴────┴────┴────────────────────────┴────┴────┴────┘ │5d │5e │5f │ + * └───┴───┴───┘ + */ +#define LAYOUT_75_ansi_split_bs( \ + 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, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, \ + K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4E, \ + K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, 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, K2C, K2D, K2E, K2F }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F }, \ + { K40, KC_NO, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, KC_NO, K4E, KC_NO }, \ + { K50, K51, K52, KC_NO, KC_NO, KC_NO, K56, KC_NO, KC_NO, KC_NO, K5A, K5B, K5C, K5D, K5E, K5F }, \ +} + + +/* LAYOUT_75_ansi_split_space + * ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ + * │00 ││01 │02 │03 │04 ││05 │06 │07 │08 ││09 │0a │0b │0c ││0d │ + * └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ◯ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ┌───┬───┐ + * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │2d │ │2e │2f │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ├───┼───┤ + * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c │ │3e │3f │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ └───┴───┘ + * │40 │42 │43 │44 │45 │46 │47 │48 │49 │4a │4b │4c │ ┌───┐ + * ├────┬───┴┬──┴─┬─┴───┴──┬┴───┼───┴───┴──┬┴───┼───┴┬────┬────┘ │4e │ + * │50 │51 │52 │54 │56 │58 │5a │5b │5c │ ┌───┼───┼───┐ + * └────┴────┴────┴────────┴────┴──────────┴────┴────┴────┘ │5d │5e │5f │ + * └───┴───┴───┘ + */ +#define LAYOUT_75_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, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3E, K3F, \ + K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4E, \ + K50, K51, K52, K54, K56, K58, K5A, K5B, K5C, K5D, K5E, K5F \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, 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, K2C, K2D, K2E, K2F }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO, K3E, K3F }, \ + { K40, KC_NO, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, KC_NO, K4E, KC_NO }, \ + { K50, K51, K52, KC_NO, K54, KC_NO, K56, KC_NO, K58, KC_NO, K5A, K5B, K5C, K5D, K5E, K5F }, \ +} diff --git a/keyboards/wuque/mammoth75x/readme.md b/keyboards/wuque/mammoth75x/readme.md new file mode 100644 index 00000000000..9528552fb17 --- /dev/null +++ b/keyboards/wuque/mammoth75x/readme.md @@ -0,0 +1,25 @@ +# mammoth75x +​ +![mammoth75x](https://i.imgur.com/mhIKh2P.jpeg) +​ +More Info at [wuquestudio](https://shop.wuquestudio.com/). +​ +* Keyboard Maintainer: [spbgzh](https://github.com/spbgzh) +* Hardware Supported: mammoth75x Standard +* Hardware Availability: [mammoth75x](https://shop.wuquestudio.com/) +​ +Make example for this keyboard (after setting up your build environment): + + make wuque/mammoth75x:default + +Flashing example for this keyboard: + + make wuque/mammoth75x:default:flash + +To reset the board into bootloader mode, do one of the following: + +* Tap the Reset switch mounted on the PCB +* In the case of the default keymap, use the key combination Fn + PageUp +* Hold the Esc key while connecting the USB cable (also erases persistent settings) + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/wuque/mammoth75x/rules.mk b/keyboards/wuque/mammoth75x/rules.mk new file mode 100644 index 00000000000..d34c14e73fa --- /dev/null +++ b/keyboards/wuque/mammoth75x/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 = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output +ENCODER_ENABLE = yes # Enable Encoder diff --git a/keyboards/x16/config.h b/keyboards/x16/config.h index 23509e43002..7dda59b948e 100644 --- a/keyboards/x16/config.h +++ b/keyboards/x16/config.h @@ -118,59 +118,6 @@ */ //#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_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) - -/* 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. diff --git a/keyboards/xelus/dawn60/info.json b/keyboards/xelus/dawn60/info.json index dad605152ae..346422b92ad 100644 --- a/keyboards/xelus/dawn60/info.json +++ b/keyboards/xelus/dawn60/info.json @@ -2,8 +2,11 @@ "keyboard_name": "Dawn60", "url": "", "maintainer": "Xelus22", + "layout_aliases": { + "LAYOUT_60_all": "LAYOUT_all" + }, "layouts": { - "LAYOUT_60_all": { + "LAYOUT_all": { "layout": [ {"label":"Esc", "x":0, "y":0}, {"label":"1", "x":1, "y":0}, @@ -70,6 +73,147 @@ {"label":"Down", "x":13, "y":4}, {"label":"Right", "x":14, "y":4} ] + }, + "LAYOUT_60_ansi_arrow": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"1!", "x":1, "y":0}, + {"label":"2@", "x":2, "y":0}, + {"label":"3#", "x":3, "y":0}, + {"label":"4$", "x":4, "y":0}, + {"label":"5%", "x":5, "y":0}, + {"label":"6^", "x":6, "y":0}, + {"label":"7&", "x":7, "y":0}, + {"label":"8*", "x":8, "y":0}, + {"label":"9(", "x":9, "y":0}, + {"label":"0)", "x":10, "y":0}, + {"label":"-_", "x":11, "y":0}, + {"label":"=+", "x":12, "y":0}, + {"label":"Backspace", "x":13, "y":0, "w":2}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"[{", "x":11.5, "y":1}, + {"label":"]}", "x":12.5, "y":1}, + {"label":"\\|", "x":13.5, "y":1, "w":1.5}, + + {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":";:", "x":10.75, "y":2}, + {"label":"'\"", "x":11.75, "y":2}, + {"label":"Enter", "x":12.75, "y":2, "w":2.25}, + + {"label":"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":"Shift", "x":11.25, "y":3, "w":1.75}, + {"label":"Up", "x":13, "y":3}, + {"label":"Fn", "x":14, "y":3}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.25}, + {"label":"GUI", "x":1.25, "y":4, "w":1.25}, + {"label":"Alt", "x":2.5, "y":4, "w":1.25}, + {"label":"Space", "x":3.75, "y":4, "w":6.25}, + {"label":"Alt", "x":10, "y":4}, + {"label":"Ctrl", "x":11, "y":4}, + {"label":"Left", "x":12, "y":4}, + {"label":"Down", "x":13, "y":4}, + {"label":"Right", "x":14, "y":4} + ] + }, + "LAYOUT_60_tsangan_hhkb": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"1!", "x":1, "y":0}, + {"label":"2@", "x":2, "y":0}, + {"label":"3#", "x":3, "y":0}, + {"label":"4$", "x":4, "y":0}, + {"label":"5%", "x":5, "y":0}, + {"label":"6^", "x":6, "y":0}, + {"label":"7&", "x":7, "y":0}, + {"label":"8*", "x":8, "y":0}, + {"label":"9(", "x":9, "y":0}, + {"label":"0)", "x":10, "y":0}, + {"label":"-_", "x":11, "y":0}, + {"label":"=+", "x":12, "y":0}, + {"label":"\\|", "x":13, "y":0}, + {"label":"Delete", "x":14, "y":0}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"[{", "x":11.5, "y":1}, + {"label":"]}", "x":12.5, "y":1}, + {"label":"Backspace", "x":13.5, "y":1, "w":1.5}, + + {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":";:", "x":10.75, "y":2}, + {"label":"'\"", "x":11.75, "y":2}, + {"label":"Enter", "x":12.75, "y":2, "w":2.25}, + + {"label":"Shift", "x":0, "y":3, "w":2.25}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":",<", "x":9.25, "y":3}, + {"label":".>", "x":10.25, "y":3}, + {"label":"/?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":1.75}, + {"label":"Fn", "x":14, "y":3}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.5}, + {"label":"GUI", "x":1.5, "y":4}, + {"label":"Alt", "x":2.5, "y":4, "w":1.5}, + {"label":"Space", "x":4, "y":4, "w":7}, + {"label":"Alt", "x":11, "y":4, "w":1.5}, + {"label":"Menu", "x":12.5, "y":4}, + {"label":"Ctrl", "x":13.5, "y":4, "w":1.5} + ] } } } diff --git a/keyboards/xelus/dawn60/keymaps/default/keymap.c b/keyboards/xelus/dawn60/keymaps/default/keymap.c index 431a596c22d..479764f3c37 100644 --- a/keyboards/xelus/dawn60/keymaps/default/keymap.c +++ b/keyboards/xelus/dawn60/keymaps/default/keymap.c @@ -12,7 +12,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Default layer: Pressing caps-lock momentarily switches to Layer 1. // This is the default layer. Pressing an empty keycode on another layer will take you here. - [0] = LAYOUT_60_all( + [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_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, 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, @@ -20,7 +20,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT_60_all( + [1] = 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_PSCR, KC_CAPS, KC_TRNS, KC_UP , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, 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, @@ -28,7 +28,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END ), - [2] = LAYOUT_60_all( + [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, @@ -36,7 +36,7 @@ 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 ), - [3] = LAYOUT_60_all( + [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, diff --git a/keyboards/xelus/dawn60/keymaps/via/keymap.c b/keyboards/xelus/dawn60/keymaps/via/keymap.c index 431a596c22d..479764f3c37 100644 --- a/keyboards/xelus/dawn60/keymaps/via/keymap.c +++ b/keyboards/xelus/dawn60/keymaps/via/keymap.c @@ -12,7 +12,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Default layer: Pressing caps-lock momentarily switches to Layer 1. // This is the default layer. Pressing an empty keycode on another layer will take you here. - [0] = LAYOUT_60_all( + [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_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, 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, @@ -20,7 +20,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT_60_all( + [1] = 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_PSCR, KC_CAPS, KC_TRNS, KC_UP , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, 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, @@ -28,7 +28,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END ), - [2] = LAYOUT_60_all( + [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, @@ -36,7 +36,7 @@ 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 ), - [3] = LAYOUT_60_all( + [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, diff --git a/keyboards/xelus/dawn60/rev1/rev1.h b/keyboards/xelus/dawn60/rev1/rev1.h index 53d40e54990..49fd9420f2b 100644 --- a/keyboards/xelus/dawn60/rev1/rev1.h +++ b/keyboards/xelus/dawn60/rev1/rev1.h @@ -21,7 +21,24 @@ #define XXX KC_NO -#define LAYOUT_60_all( \ +/* LAYOUT_all + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───────┐ + * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │2D │ │0D │ 2u Backspace + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ └───────┘ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ + * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┬───┤ ┌───┬──────┬───┐ + * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3B │3C │3D │ │3B │3C │3D │ 1/1.75/1u + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬───┼───┼───┤ └───┴──────┴───┘ + * │40 │41 │42 │45 │49 │4A │4B │4C │4D │ + * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘ + * ┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐ + * │40 │41 │42 │45 │4A │4C │4D │ Tsangan + * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ + */ + +#define LAYOUT_all( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D, \ 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, \ @@ -34,3 +51,31 @@ { 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 } \ } + +#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 } \ +} + +#define LAYOUT_60_tsangan_hhkb( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D, \ + 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, K4A, 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, K2D }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, XXX, K3B, K3C, K3D }, \ + { K40, K41, K42, XXX, XXX, K45, XXX, XXX, XXX, XXX, K4A, XXX, K4C, K4D } \ +} diff --git a/keyboards/xelus/dawn60/rev1/rules.mk b/keyboards/xelus/dawn60/rev1/rules.mk index 59c338461b0..f82a270f440 100644 --- a/keyboards/xelus/dawn60/rev1/rules.mk +++ b/keyboards/xelus/dawn60/rev1/rules.mk @@ -22,7 +22,6 @@ 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 -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. - We have custom RGB underglow diff --git a/keyboards/xelus/dawn60/rev1_qmk/rev1_qmk.h b/keyboards/xelus/dawn60/rev1_qmk/rev1_qmk.h index 3625ab1f110..d5284c02800 100644 --- a/keyboards/xelus/dawn60/rev1_qmk/rev1_qmk.h +++ b/keyboards/xelus/dawn60/rev1_qmk/rev1_qmk.h @@ -19,7 +19,24 @@ #define XXX KC_NO -#define LAYOUT_60_all( \ +/* LAYOUT_all + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───────┐ + * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │2D │ │0D │ 2u Backspace + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ └───────┘ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ + * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┬───┤ ┌───┬──────┬───┐ + * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3B │3C │3D │ │3B │3C │3D │ 1/1.75/1u + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬───┼───┼───┤ └───┴──────┴───┘ + * │40 │41 │42 │45 │49 │4A │4B │4C │4D │ + * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘ + * ┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐ + * │40 │41 │42 │45 │4A │4C │4D │ Tsangan + * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ + */ + +#define LAYOUT_all( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D, \ 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, \ @@ -32,3 +49,31 @@ { 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 } \ } + +#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 } \ +} + +#define LAYOUT_60_tsangan_hhkb( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D, \ + 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, K4A, 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, K2D }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, XXX, K3B, K3C, K3D }, \ + { K40, K41, K42, XXX, XXX, K45, XXX, XXX, XXX, XXX, K4A, XXX, K4C, K4D } \ +} diff --git a/keyboards/xelus/dawn60/rev1_qmk/rules.mk b/keyboards/xelus/dawn60/rev1_qmk/rules.mk index ae963e6e079..bfaea5f495e 100644 --- a/keyboards/xelus/dawn60/rev1_qmk/rules.mk +++ b/keyboards/xelus/dawn60/rev1_qmk/rules.mk @@ -22,7 +22,6 @@ 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 -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. - We have custom RGB underglow diff --git a/keyboards/xelus/pachi/readme.md b/keyboards/xelus/pachi/readme.md index 4f40465672d..d6a0aec88bf 100644 --- a/keyboards/xelus/pachi/readme.md +++ b/keyboards/xelus/pachi/readme.md @@ -9,6 +9,7 @@ Make example for this keyboard (after setting up your build environment): make xelus/pachi/rev1:default make xelus/pachi/mini_32u4:default - make xelus/pachi/rgb:default + make xelus/pachi/rgb/rev1:default + make xelus/pachi/rgb/rev2: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/pachi/rgb/config.h b/keyboards/xelus/pachi/rgb/config.h index 9378b2c413a..956d35d69b0 100644 --- a/keyboards/xelus/pachi/rgb/config.h +++ b/keyboards/xelus/pachi/rgb/config.h @@ -14,63 +14,4 @@ * along with this program. If not, see . */ -#pragma once - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x5845 // "XE" -#define PRODUCT_ID 0x5052 // "PR" -#define DEVICE_VER 0x0001 -#define MANUFACTURER Xelus -#define PRODUCT Xelus Pachi RGB - -/* key matrix size */ -#define MATRIX_ROWS 6 -#define MATRIX_COLS 17 - -/* key matrix pins */ -#define MATRIX_ROW_PINS { B14, B13, B12, B2, A8, B15 } -#define MATRIX_COL_PINS { C13, C14, C15, H0, A0, A1, A2, A3, A4, A5, A6, A7, B0, B1, H1, B10, B11 } -#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 - -// I2C setup -#define I2C1_SCL 8 -#define I2C1_SDA 9 -#define I2C1_SCL_PAL_MODE 4 -#define I2C1_SDA_PAL_MODE 4 -#define I2C1_TIMINGR_PRESC 0U -#define I2C1_TIMINGR_SCLDEL 11U -#define I2C1_TIMINGR_SDADEL 0U -#define I2C1_TIMINGR_SCLH 14U -#define I2C1_TIMINGR_SCLL 42U - -// I2C EEPROM -#define EEPROM_I2C_24LC64 - -// RGB Matrix defines -#define DRIVER_ADDR_1 0b0110000 -#define DRIVER_ADDR_2 0b0110001 - -#define DRIVER_COUNT 1 -#define DRIVER_1_LED_TOTAL 117 -#define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL -#define ISSI_DRIVER_TOTAL DRIVER_LED_TOTAL - -#define RGB_MATRIX_STARTUP_VAL 80 -#define RGB_MATRIX_FRAMEBUFFER_EFFECTS -#define RGB_MATRIX_KEYPRESSES -#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended -#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_ALL - -#define FORCE_NKRO +#include "config_common.h" diff --git a/keyboards/xelus/pachi/rgb/rev1/config.h b/keyboards/xelus/pachi/rgb/rev1/config.h new file mode 100644 index 00000000000..276a128e0cc --- /dev/null +++ b/keyboards/xelus/pachi/rgb/rev1/config.h @@ -0,0 +1,120 @@ +/* Copyright 2021 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 0x5052 // "PR" +#define DEVICE_VER 0x0001 +#define MANUFACTURER Xelus +#define PRODUCT Xelus Pachi RGB + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 17 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { B14, B13, B12, B2, A8, B15 } +#define MATRIX_COL_PINS { C13, C14, C15, H0, A0, A1, A2, A3, A4, A5, A6, A7, B0, B1, H1, B10, B11 } +#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 + +// I2C setup +#define I2C1_SCL 8 +#define I2C1_SDA 9 +#define I2C1_SCL_PAL_MODE 4 +#define I2C1_SDA_PAL_MODE 4 +#define I2C1_TIMINGR_PRESC 0U +#define I2C1_TIMINGR_SCLDEL 11U +#define I2C1_TIMINGR_SDADEL 0U +#define I2C1_TIMINGR_SCLH 14U +#define I2C1_TIMINGR_SCLL 42U + +// I2C EEPROM +#define EEPROM_I2C_24LC64 + +// RGB Matrix defines +#define DRIVER_ADDR_1 0b0110000 + +#define DRIVER_COUNT 1 +#define DRIVER_1_LED_TOTAL 117 +#define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL +#define ISSI_DRIVER_TOTAL DRIVER_LED_TOTAL + +#define RGB_MATRIX_STARTUP_VAL 80 +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#define RGB_MATRIX_KEYPRESSES +#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended +#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_ALL + +#define ENABLE_RGB_MATRIX_ALPHAS_MODS +#define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN +#define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT +#define ENABLE_RGB_MATRIX_BREATHING +#define ENABLE_RGB_MATRIX_BAND_SAT +#define ENABLE_RGB_MATRIX_BAND_VAL +#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT +#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL +#define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT +#define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL +#define ENABLE_RGB_MATRIX_CYCLE_ALL +#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT +#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN +#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON +#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN +#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL +#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL +#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL +#define ENABLE_RGB_MATRIX_DUAL_BEACON +#define ENABLE_RGB_MATRIX_RAINBOW_BEACON +#define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS +#define ENABLE_RGB_MATRIX_RAINDROPS +#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS +#define ENABLE_RGB_MATRIX_HUE_BREATHING +#define ENABLE_RGB_MATRIX_HUE_PENDULUM +#define ENABLE_RGB_MATRIX_HUE_WAVE +#define ENABLE_RGB_MATRIX_FRACTAL +#define ENABLE_RGB_MATRIX_PIXEL_RAIN + +#define ENABLE_RGB_MATRIX_TYPING_HEATMAP +#define ENABLE_RGB_MATRIX_DIGITAL_RAIN + +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +#define ENABLE_RGB_MATRIX_SPLASH +#define ENABLE_RGB_MATRIX_MULTISPLASH +#define ENABLE_RGB_MATRIX_SOLID_SPLASH +#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH + +#define FORCE_NKRO diff --git a/keyboards/xelus/pachi/rgb/halconf.h b/keyboards/xelus/pachi/rgb/rev1/halconf.h similarity index 100% rename from keyboards/xelus/pachi/rgb/halconf.h rename to keyboards/xelus/pachi/rgb/rev1/halconf.h diff --git a/keyboards/xelus/pachi/rgb/mcuconf.h b/keyboards/xelus/pachi/rgb/rev1/mcuconf.h similarity index 100% rename from keyboards/xelus/pachi/rgb/mcuconf.h rename to keyboards/xelus/pachi/rgb/rev1/mcuconf.h diff --git a/keyboards/xelus/pachi/rgb/rev1/readme.md b/keyboards/xelus/pachi/rgb/rev1/readme.md new file mode 100644 index 00000000000..2fa775255a1 --- /dev/null +++ b/keyboards/xelus/pachi/rgb/rev1/readme.md @@ -0,0 +1,17 @@ +# Pachi RGB Rev 1 + +Pachi RGB Rev 1 TKL Keyboard that is a per-key RGB, hotswap, ANSI and tsangan. + +* Keyboard Maintainer: [Xelus22](https://github.com/Xelus22) +* Hardware Supported: Group buys + +Make example for this keyboard (after setting up your build environment): + + make xelus/pachi/rgb/rev1:default + +Reset your keyboard in 3 ways: +* Software reset on Fn + Backspace +* Bootmagic reset: hold down the top left key (usually escape) and plugin the keyboard +* Physical reset button: on the back of the PCB, there should be a small golden button you can press + +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/pachi/rgb/rev1/rev1.c b/keyboards/xelus/pachi/rgb/rev1/rev1.c new file mode 100644 index 00000000000..74f46e68127 --- /dev/null +++ b/keyboards/xelus/pachi/rgb/rev1/rev1.c @@ -0,0 +1,239 @@ +/* Copyright 2021 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 "rev1.h" + +// tested and working +void matrix_io_delay(void) { __asm__ volatile("nop\nnop\nnop\n"); } + +#ifdef RGB_MATRIX_ENABLE +#include "i2c_master.h" +#include "drivers/led/issi/is31fl3741.h" +const is31_led __flash g_is31_leds[DRIVER_LED_TOTAL] = { +/* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + {0, CS39_SW1, CS38_SW1, CS37_SW1}, //A1 + {0, CS36_SW1, CS35_SW1, CS34_SW1}, //A2 + {0, CS33_SW1, CS32_SW1, CS31_SW1}, //A3 + {0, CS30_SW1, CS29_SW1, CS28_SW1}, //A4 + {0, CS27_SW1, CS26_SW1, CS25_SW1}, //A5 + {0, CS24_SW1, CS23_SW1, CS22_SW1}, //A6 + {0, CS21_SW1, CS20_SW1, CS19_SW1}, //A7 + {0, CS18_SW1, CS17_SW1, CS16_SW1}, //A8 + {0, CS15_SW1, CS14_SW1, CS13_SW1}, //A9 + {0, CS12_SW1, CS11_SW1, CS10_SW1}, //A10 + {0, CS9_SW1 , CS8_SW1 , CS7_SW1 }, //A11 + {0, CS6_SW1 , CS5_SW1 , CS4_SW1 }, //A12 + {0, CS3_SW1 , CS2_SW1 , CS1_SW1 }, //A13 + + {0, CS39_SW2, CS38_SW2, CS37_SW2}, //B1 + {0, CS36_SW2, CS35_SW2, CS34_SW2}, //B2 + {0, CS33_SW2, CS32_SW2, CS31_SW2}, //B3 + {0, CS30_SW2, CS29_SW2, CS28_SW2}, //B4 + {0, CS27_SW2, CS26_SW2, CS25_SW2}, //B5 + {0, CS24_SW2, CS23_SW2, CS22_SW2}, //B6 + {0, CS21_SW2, CS20_SW2, CS19_SW2}, //B7 + {0, CS18_SW2, CS17_SW2, CS16_SW2}, //B8 + {0, CS15_SW2, CS14_SW2, CS13_SW2}, //B9 + {0, CS12_SW2, CS11_SW2, CS10_SW2}, //B10 + {0, CS9_SW2 , CS8_SW2 , CS7_SW2 }, //B11 + {0, CS6_SW2 , CS5_SW2 , CS4_SW2 }, //B12 + {0, CS3_SW2 , CS2_SW2 , CS1_SW2 }, //B13 + + {0, CS39_SW3, CS38_SW3, CS37_SW3}, //C1 + {0, CS36_SW3, CS35_SW3, CS34_SW3}, //C2 + {0, CS33_SW3, CS32_SW3, CS31_SW3}, //C3 + {0, CS30_SW3, CS29_SW3, CS28_SW3}, //C4 + {0, CS27_SW3, CS26_SW3, CS25_SW3}, //C5 + {0, CS24_SW3, CS23_SW3, CS22_SW3}, //C6 + {0, CS21_SW3, CS20_SW3, CS19_SW3}, //C7 + {0, CS18_SW3, CS17_SW3, CS16_SW3}, //C8 + {0, CS15_SW3, CS14_SW3, CS13_SW3}, //C9 + {0, CS12_SW3, CS11_SW3, CS10_SW3}, //C10 + {0, CS9_SW3 , CS8_SW3 , CS7_SW3 }, //C11 + {0, CS6_SW3 , CS5_SW3 , CS4_SW3 }, //C12 + {0, CS3_SW3 , CS2_SW3 , CS1_SW3 }, //C13 + + {0, CS39_SW4, CS38_SW4, CS37_SW4}, //D1 + {0, CS36_SW4, CS35_SW4, CS34_SW4}, //D2 + {0, CS33_SW4, CS32_SW4, CS31_SW4}, //D3 + {0, CS30_SW4, CS29_SW4, CS28_SW4}, //D4 + {0, CS27_SW4, CS26_SW4, CS25_SW4}, //D5 + {0, CS24_SW4, CS23_SW4, CS22_SW4}, //D6 + {0, CS21_SW4, CS20_SW4, CS19_SW4}, //D7 + {0, CS18_SW4, CS17_SW4, CS16_SW4}, //D8 + {0, CS15_SW4, CS14_SW4, CS13_SW4}, //D9 + {0, CS12_SW4, CS11_SW4, CS10_SW4}, //D10 + {0, CS9_SW4 , CS8_SW4 , CS7_SW4 }, //D11 + {0, CS6_SW4 , CS5_SW4 , CS4_SW4 }, //D12 + {0, CS3_SW4 , CS2_SW4 , CS1_SW4 }, //D13 + + {0, CS39_SW5, CS38_SW5, CS37_SW5}, //E1 + {0, CS36_SW5, CS35_SW5, CS34_SW5}, //E2 + {0, CS33_SW5, CS32_SW5, CS31_SW5}, //E3 + {0, CS30_SW5, CS29_SW5, CS28_SW5}, //E4 + {0, CS27_SW5, CS26_SW5, CS25_SW5}, //E5 + {0, CS24_SW5, CS23_SW5, CS22_SW5}, //E6 + {0, CS21_SW5, CS20_SW5, CS19_SW5}, //E7 + {0, CS18_SW5, CS17_SW5, CS16_SW5}, //E8 + {0, CS15_SW5, CS14_SW5, CS13_SW5}, //E9 + {0, CS12_SW5, CS11_SW5, CS10_SW5}, //E10 + {0, CS9_SW5 , CS8_SW5 , CS7_SW5 }, //E11 + {0, CS6_SW5 , CS5_SW5 , CS4_SW5 }, //E12 + {0, CS3_SW5 , CS2_SW5 , CS1_SW5 }, //E13 + + {0, CS39_SW6, CS38_SW6, CS37_SW6}, //F1 + {0, CS36_SW6, CS35_SW6, CS34_SW6}, //F2 + {0, CS33_SW6, CS32_SW6, CS31_SW6}, //F3 + {0, CS30_SW6, CS29_SW6, CS28_SW6}, //F4 + {0, CS27_SW6, CS26_SW6, CS25_SW6}, //F5 + {0, CS24_SW6, CS23_SW6, CS22_SW6}, //F6 + {0, CS21_SW6, CS20_SW6, CS19_SW6}, //F7 + {0, CS18_SW6, CS17_SW6, CS16_SW6}, //F8 + {0, CS15_SW6, CS14_SW6, CS13_SW6}, //F9 + {0, CS12_SW6, CS11_SW6, CS10_SW6}, //F10 + {0, CS9_SW6 , CS8_SW6 , CS7_SW6 }, //F11 + {0, CS6_SW6 , CS5_SW6 , CS4_SW6 }, //F12 + {0, CS3_SW6 , CS2_SW6 , CS1_SW6 }, //F13 + + {0, CS39_SW7, CS38_SW7, CS37_SW7}, //G1 + {0, CS36_SW7, CS35_SW7, CS34_SW7}, //G2 + {0, CS33_SW7, CS32_SW7, CS31_SW7}, //G3 + {0, CS30_SW7, CS29_SW7, CS28_SW7}, //G4 + {0, CS27_SW7, CS26_SW7, CS25_SW7}, //G5 + {0, CS24_SW7, CS23_SW7, CS22_SW7}, //G6 + {0, CS21_SW7, CS20_SW7, CS19_SW7}, //G7 + {0, CS18_SW7, CS17_SW7, CS16_SW7}, //G8 + {0, CS15_SW7, CS14_SW7, CS13_SW7}, //G9 + {0, CS12_SW7, CS11_SW7, CS10_SW7}, //G10 + {0, CS9_SW7 , CS8_SW7 , CS7_SW7 }, //G11 + {0, CS6_SW7 , CS5_SW7 , CS4_SW7 }, //G12 + {0, CS3_SW7 , CS2_SW7 , CS1_SW7 }, //G13 + + {0, CS39_SW8, CS38_SW8, CS37_SW8}, //H1 + {0, CS36_SW8, CS35_SW8, CS34_SW8}, //H2 + {0, CS33_SW8, CS32_SW8, CS31_SW8}, //H3 + {0, CS30_SW8, CS29_SW8, CS28_SW8}, //H4 + {0, CS27_SW8, CS26_SW8, CS25_SW8}, //H5 + {0, CS24_SW8, CS23_SW8, CS22_SW8}, //H6 + {0, CS21_SW8, CS20_SW8, CS19_SW8}, //H7 + {0, CS18_SW8, CS17_SW8, CS16_SW8}, //H8 + {0, CS15_SW8, CS14_SW8, CS13_SW8}, //H9 + {0, CS12_SW8, CS11_SW8, CS10_SW8}, //H10 + {0, CS9_SW8 , CS8_SW8 , CS7_SW8 }, //H11 + {0, CS6_SW8 , CS5_SW8 , CS4_SW8 }, //H12 + {0, CS3_SW8 , CS2_SW8 , CS1_SW8 }, //H13 + + {0, CS39_SW9, CS38_SW9, CS37_SW9}, //I1 + {0, CS36_SW9, CS35_SW9, CS34_SW9}, //I2 + {0, CS33_SW9, CS32_SW9, CS31_SW9}, //I3 + {0, CS30_SW9, CS29_SW9, CS28_SW9}, //I4 + {0, CS27_SW9, CS26_SW9, CS25_SW9}, //I5 + {0, CS24_SW9, CS23_SW9, CS22_SW9}, //I6 + {0, CS21_SW9, CS20_SW9, CS19_SW9}, //I7 + {0, CS18_SW9, CS17_SW9, CS16_SW9}, //I8 + {0, CS15_SW9, CS14_SW9, CS13_SW9}, //I9 + {0, CS12_SW9, CS11_SW9, CS10_SW9}, //I10 + {0, CS9_SW9 , CS8_SW9 , CS7_SW9 }, //I11 + {0, CS6_SW9 , CS5_SW9 , CS4_SW9 }, //I12 + {0, CS3_SW9 , CS2_SW9 , CS1_SW9 } //I13 +}; + +__attribute__ ((weak)) +led_config_t g_led_config = { { + { -1+00+3 , NO_LED, -1+26+3 , -1+39+3 , -1+52+3 , -1+65+3 , -1+78+3 , -1+91+3 , -1+104+3 , -1+00+1 , -1+13+1 , -1+26+1 , -1+39+1 , -1+52+1 , -1+65+1 , -1+78+1 , -1+91+1 }, + { -1+00+4 , -1+13+4 , -1+26+4 , -1+39+4 , -1+52+4 , -1+65+4 , -1+78+4 , -1+91+4 , -1+104+4 , -1+00+2 , -1+13+2 , -1+26+2 , -1+39+2 , -1+52+2 , -1+65+2 , -1+78+2 , -1+91+2 }, + { -1+00+6 , -1+13+6 , -1+26+6 , -1+39+6 , -1+52+6 , -1+65+6 , -1+78+6 , -1+91+6 , -1+104+6 , -1+00+5 , -1+13+5 , -1+26+5 , -1+39+5 , -1+52+5 , -1+65+5 , -1+78+5 , -1+91+6 }, + { -1+00+8 , -1+13+8 , -1+26+8 , -1+39+8 , -1+52+8 , -1+65+8 , -1+78+8 , -1+91+8 , -1+104+8 , -1+00+7 , -1+13+7 , -1+26+7 , NO_LED , -1+52+7 , NO_LED , NO_LED , NO_LED }, + { -1+00+11, -1+13+11, -1+26+11, -1+39+11, -1+52+11, -1+65+11, -1+78+11, -1+91+11, -1+104+11, -1+00+10, -1+13+10, NO_LED , -1+52+10, NO_LED , NO_LED , -1+78+10, NO_LED }, + { -1+00+9 , -1+13+9 , -1+26+9 , NO_LED , NO_LED , -1+65+9 , NO_LED , NO_LED , NO_LED , NO_LED , -1+13+12, NO_LED , -1+39+12, -1+52+12, -1+65+12, -1+78+12, -1+91+12} +}, { + {123, 0}, {117, 15}, {0 , 0}, {0 , 15}, {123, 27}, {3 , 27}, {127, 40}, {5 , 40}, {2 , 64}, {133, 52}, {8 , 52}, {131, 64}, {255,255}, + {143, 0}, {130, 15}, {255,255}, {13 , 15}, {136, 27}, {19 , 27}, {140, 40}, {23 , 40}, {18 , 64}, {146, 52}, {29 , 52}, {148, 64}, {255,255}, + {156, 0}, {143, 15}, {26 , 0}, {26 , 15}, {149, 27}, {32 , 27}, {153, 40}, {36 , 40}, {34 , 64}, {255,255}, {42 , 52}, {255,255}, {255,255}, + {169, 0}, {156, 15}, {39 , 0}, {39 , 15}, {162, 27}, {45 , 27}, {255,255}, {49 , 40}, {255,255}, {255,255}, {55 , 52}, {164, 64}, {255,255}, + {182, 0}, {175, 15}, {52 , 0}, {52 , 15}, {179, 27}, {58 , 27}, {174, 40}, {62 , 40}, {255,255}, {170, 52}, {68 , 52}, {180, 64}, {255,255}, + {198, 0}, {198, 15}, {65 , 0}, {65 , 15}, {198, 27}, {71 , 27}, {255,255}, {75 , 40}, {83 , 64}, {255,255}, {81 , 52}, {198, 64}, {255,255}, + {211, 0}, {211, 15}, {84 , 0}, {78 , 15}, {211, 27}, {84 , 27}, {255,255}, {88 , 40}, {255,255}, {211, 52}, {94 , 52}, {211, 64}, {255,255}, + {224, 0}, {224, 15}, {97 , 0}, {91 , 15}, {224, 27}, {97 , 27}, {255,255}, {101, 40}, {255,255}, {255,255}, {107, 52}, {224, 64}, {255,255}, + {255,255}, {255,255}, {110, 0}, {104, 15}, {255,255}, {110, 27}, {255,255}, {114, 40}, {255,255}, {255,255}, {120, 52}, {255,255}, {255,255} +}, { + 1, 4, 1, 1, 4, 1, 4, 1, 1, 4, 1, 4, 4, //0-12 + 1, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 1, 4, //13-25 + 1, 4, 1, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4, //26-38 + 1, 4, 1, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, //39-51 + 1, 1, 1, 4, 1, 4, 1, 4, 4, 1, 4, 1, 4, //52-64 + 1, 1, 1, 4, 1, 4, 4, 4, 1, 4, 4, 1, 4, //65-77 + 1, 1, 1, 4, 1, 4, 4, 4, 4, 1, 4, 1, 4, //78-90 + 1, 1, 1, 4, 1, 4, 4, 4, 4, 4, 4, 1, 4, //91-103 + 4, 4, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 //104-116 +} }; + +static void init(void) { + i2c_init(); + IS31FL3741_init(DRIVER_ADDR_1); + for (int index = 0; index < ISSI_DRIVER_TOTAL; index++) { + bool enabled = !( ( index == -1+0+13) || //A13 + ( index == -1+13+3) || //B3 + ( index == -1+13+13) || //B13 + ( index == -1+26+10) || //C10 + ( index == -1+26+12) || //C12 + ( index == -1+26+13) || //C13 + ( index == -1+39+7) || //D7 + ( index == -1+39+9) || //D9 + ( index == -1+39+10) || //D10 + ( index == -1+39+13) || //D13 + ( index == -1+52+9) || //E9 + ( index == -1+52+13) || //E13 + ( index == -1+65+7) || //F7 + ( index == -1+65+10) || //F10 + ( index == -1+65+13) || //F13 + ( index == -1+78+7) || //G7 + ( index == -1+78+9) || //G9 + ( index == -1+78+13) || //G13 + ( index == -1+91+7) || //H7 + ( index == -1+91+9) || //H9 + ( index == -1+91+10) || //H10 + ( index == -1+91+13) || //H13 + ( index == -1+104+1) || //I1 + ( index == -1+104+2) || //I2 + ( index == -1+104+5) || //I5 + ( index == -1+104+7) || //I7 + ( index == -1+104+9) || //I9 + ( index == -1+104+10) || //I10 + ( index == -1+104+12) || //I12 + ( index == -1+104+13) //I13 + ); + IS31FL3741_set_led_control_register(index, enabled, enabled, enabled); + } + IS31FL3741_update_led_control_registers(DRIVER_ADDR_1, 0); +} + +static void flush(void) { + IS31FL3741_update_pwm_buffers(DRIVER_ADDR_1, 0); +} + +const rgb_matrix_driver_t rgb_matrix_driver = { + .init = init, + .flush = flush, + .set_color = IS31FL3741_set_color, + .set_color_all = IS31FL3741_set_color_all +}; +#endif diff --git a/keyboards/xelus/pachi/rgb/rev1/rev1.h b/keyboards/xelus/pachi/rgb/rev1/rev1.h new file mode 100644 index 00000000000..894519ebe2e --- /dev/null +++ b/keyboards/xelus/pachi/rgb/rev1/rev1.h @@ -0,0 +1,36 @@ +/* Copyright 2021 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_ansi_tsangan( \ + K000, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K116, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, K216, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, \ + K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K412, K415, \ + K500, K501, K502, K505, K510, K512, K513, K514, K515, K516 \ +) { \ + { K000, ____, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K116 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, K216 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, ____, K313, ____, ____, ____ }, \ + { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, ____, K412, ____, ____, K415, ____ }, \ + { K500, K501, K502, ____, ____, K505, ____, ____, ____, ____, K510, ____, K512, K513, K514, K515, K516 } \ +} diff --git a/keyboards/xelus/pachi/rgb/rules.mk b/keyboards/xelus/pachi/rgb/rev1/rules.mk similarity index 96% rename from keyboards/xelus/pachi/rgb/rules.mk rename to keyboards/xelus/pachi/rgb/rev1/rules.mk index 79d44bf90ed..05eac7e9596 100644 --- a/keyboards/xelus/pachi/rgb/rules.mk +++ b/keyboards/xelus/pachi/rgb/rev1/rules.mk @@ -17,7 +17,6 @@ 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 -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches diff --git a/keyboards/xelus/pachi/rgb/rev2/config.h b/keyboards/xelus/pachi/rgb/rev2/config.h new file mode 100644 index 00000000000..f66afcfb795 --- /dev/null +++ b/keyboards/xelus/pachi/rgb/rev2/config.h @@ -0,0 +1,121 @@ +/* Copyright 2021 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 0x5052 // "PR" +#define DEVICE_VER 0x0002 +#define MANUFACTURER Xelus +#define PRODUCT Xelus Pachi RGB + +/* key matrix size */ +#define MATRIX_ROWS 12 +#define MATRIX_COLS 9 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { A5, A6, B0, A7, A8, B1, B4, B5, A15, B3, A13, A14 } +#define MATRIX_COL_PINS { C14, C15, A0, A1, A2, A3, A4, A10, A9} +#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 + +// I2C setup +#define I2C1_SCL 6 +#define I2C1_SDA 7 +#define I2C1_SCL_PAL_MODE 4 +#define I2C1_SDA_PAL_MODE 4 +#define I2C1_TIMINGR_PRESC 0U +#define I2C1_TIMINGR_SCLDEL 11U +#define I2C1_TIMINGR_SDADEL 0U +#define I2C1_TIMINGR_SCLH 14U +#define I2C1_TIMINGR_SCLL 42U + +// I2C EEPROM +#define EEPROM_I2C_24LC64 + +// RGB Matrix defines +#define DRIVER_ADDR_1 0b0110000 + +#define DRIVER_COUNT 1 +#define DRIVER_1_LED_TOTAL 117 +#define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL +#define ISSI_DRIVER_TOTAL DRIVER_LED_TOTAL + +#define RGB_MATRIX_STARTUP_VAL 80 +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#define RGB_MATRIX_KEYPRESSES +#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended +#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_ALL + +#define ENABLE_RGB_MATRIX_ALPHAS_MODS +#define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN +#define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT +#define ENABLE_RGB_MATRIX_BREATHING +#define ENABLE_RGB_MATRIX_BAND_SAT +#define ENABLE_RGB_MATRIX_BAND_VAL +#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT +#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL +#define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT +#define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL +#define ENABLE_RGB_MATRIX_CYCLE_ALL +#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT +#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN +#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON +#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN +#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL +#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL +#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL +#define ENABLE_RGB_MATRIX_DUAL_BEACON +#define ENABLE_RGB_MATRIX_RAINBOW_BEACON +#define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS +#define ENABLE_RGB_MATRIX_RAINDROPS +#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS +#define ENABLE_RGB_MATRIX_HUE_BREATHING +#define ENABLE_RGB_MATRIX_HUE_PENDULUM +#define ENABLE_RGB_MATRIX_HUE_WAVE +#define ENABLE_RGB_MATRIX_FRACTAL +#define ENABLE_RGB_MATRIX_PIXEL_RAIN + +#define ENABLE_RGB_MATRIX_TYPING_HEATMAP +#define ENABLE_RGB_MATRIX_DIGITAL_RAIN + +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +#define ENABLE_RGB_MATRIX_SPLASH +#define ENABLE_RGB_MATRIX_MULTISPLASH +#define ENABLE_RGB_MATRIX_SOLID_SPLASH +#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH + + +#define FORCE_NKRO diff --git a/keyboards/xelus/pachi/rgb/rev2/halconf.h b/keyboards/xelus/pachi/rgb/rev2/halconf.h new file mode 100644 index 00000000000..633d94a8802 --- /dev/null +++ b/keyboards/xelus/pachi/rgb/rev2/halconf.h @@ -0,0 +1,27 @@ +/* Copyright 2020 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/xelus/kangaroo/halconf.h -r platforms/chibios/common/configs/halconf.h` + */ + +#pragma once + +#define HAL_USE_I2C TRUE + +#include_next + diff --git a/keyboards/xelus/pachi/rgb/rev2/mcuconf.h b/keyboards/xelus/pachi/rgb/rev2/mcuconf.h new file mode 100644 index 00000000000..20db196d29d --- /dev/null +++ b/keyboards/xelus/pachi/rgb/rev2/mcuconf.h @@ -0,0 +1,28 @@ +/* Copyright 2020 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/xelus/kangaroo/mcuconf.h -r platforms/chibios/GENERIC_STM32_F072XB/configs/mcuconf.h` + */ + +#pragma once + +#include_next + +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE + diff --git a/keyboards/xelus/pachi/rgb/rev2/readme.md b/keyboards/xelus/pachi/rgb/rev2/readme.md new file mode 100644 index 00000000000..82a10e4185d --- /dev/null +++ b/keyboards/xelus/pachi/rgb/rev2/readme.md @@ -0,0 +1,18 @@ +# Pachi RGB Rev 2 + +Pachi RGB Rev 2 TKL Keyboard that is a per-key RGB, hotswap, ANSI and tsangan. + +* Keyboard Maintainer: [Xelus22](https://github.com/Xelus22) +* Hardware Supported: Group buys + +Make example for this keyboard (after setting up your build environment): + + make xelus/pachi/rgb/rev2:default + +Reset your keyboard in 3 ways: + +* Software reset on Fn + Backspace +* Bootmagic reset: hold down the top left key (usually escape) and plugin the keyboard +* Physical reset button: on the back of the PCB, there should be a small golden button you can press + +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/pachi/rgb/rev2/rev2.c b/keyboards/xelus/pachi/rgb/rev2/rev2.c new file mode 100644 index 00000000000..3a2e7cacada --- /dev/null +++ b/keyboards/xelus/pachi/rgb/rev2/rev2.c @@ -0,0 +1,245 @@ +/* Copyright 2021 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 "rev2.h" + +// tested and working +void matrix_io_delay(void) { __asm__ volatile("nop\nnop\nnop\n"); } + +#ifdef RGB_MATRIX_ENABLE +#include "i2c_master.h" +#include "drivers/led/issi/is31fl3741.h" +const is31_led __flash g_is31_leds[DRIVER_LED_TOTAL] = { +/* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + {0, CS39_SW1, CS38_SW1, CS37_SW1}, //A1 + {0, CS36_SW1, CS35_SW1, CS34_SW1}, //A2 + {0, CS33_SW1, CS32_SW1, CS31_SW1}, //A3 + {0, CS30_SW1, CS29_SW1, CS28_SW1}, //A4 + {0, CS27_SW1, CS26_SW1, CS25_SW1}, //A5 + {0, CS24_SW1, CS23_SW1, CS22_SW1}, //A6 + {0, CS21_SW1, CS20_SW1, CS19_SW1}, //A7 + {0, CS18_SW1, CS17_SW1, CS16_SW1}, //A8 + {0, CS15_SW1, CS14_SW1, CS13_SW1}, //A9 + {0, CS12_SW1, CS11_SW1, CS10_SW1}, //A10 + {0, CS9_SW1 , CS8_SW1 , CS7_SW1 }, //A11 + {0, CS6_SW1 , CS5_SW1 , CS4_SW1 }, //A12 + {0, CS3_SW1 , CS2_SW1 , CS1_SW1 }, //A13 + + {0, CS39_SW2, CS38_SW2, CS37_SW2}, //B1 + {0, CS36_SW2, CS35_SW2, CS34_SW2}, //B2 + {0, CS33_SW2, CS32_SW2, CS31_SW2}, //B3 + {0, CS30_SW2, CS29_SW2, CS28_SW2}, //B4 + {0, CS27_SW2, CS26_SW2, CS25_SW2}, //B5 + {0, CS24_SW2, CS23_SW2, CS22_SW2}, //B6 + {0, CS21_SW2, CS20_SW2, CS19_SW2}, //B7 + {0, CS18_SW2, CS17_SW2, CS16_SW2}, //B8 + {0, CS15_SW2, CS14_SW2, CS13_SW2}, //B9 + {0, CS12_SW2, CS11_SW2, CS10_SW2}, //B10 + {0, CS9_SW2 , CS8_SW2 , CS7_SW2 }, //B11 + {0, CS6_SW2 , CS5_SW2 , CS4_SW2 }, //B12 + {0, CS3_SW2 , CS2_SW2 , CS1_SW2 }, //B13 + + {0, CS39_SW3, CS38_SW3, CS37_SW3}, //C1 + {0, CS36_SW3, CS35_SW3, CS34_SW3}, //C2 + {0, CS33_SW3, CS32_SW3, CS31_SW3}, //C3 + {0, CS30_SW3, CS29_SW3, CS28_SW3}, //C4 + {0, CS27_SW3, CS26_SW3, CS25_SW3}, //C5 + {0, CS24_SW3, CS23_SW3, CS22_SW3}, //C6 + {0, CS21_SW3, CS20_SW3, CS19_SW3}, //C7 + {0, CS18_SW3, CS17_SW3, CS16_SW3}, //C8 + {0, CS15_SW3, CS14_SW3, CS13_SW3}, //C9 + {0, CS12_SW3, CS11_SW3, CS10_SW3}, //C10 + {0, CS9_SW3 , CS8_SW3 , CS7_SW3 }, //C11 + {0, CS6_SW3 , CS5_SW3 , CS4_SW3 }, //C12 + {0, CS3_SW3 , CS2_SW3 , CS1_SW3 }, //C13 + + {0, CS39_SW4, CS38_SW4, CS37_SW4}, //D1 + {0, CS36_SW4, CS35_SW4, CS34_SW4}, //D2 + {0, CS33_SW4, CS32_SW4, CS31_SW4}, //D3 + {0, CS30_SW4, CS29_SW4, CS28_SW4}, //D4 + {0, CS27_SW4, CS26_SW4, CS25_SW4}, //D5 + {0, CS24_SW4, CS23_SW4, CS22_SW4}, //D6 + {0, CS21_SW4, CS20_SW4, CS19_SW4}, //D7 + {0, CS18_SW4, CS17_SW4, CS16_SW4}, //D8 + {0, CS15_SW4, CS14_SW4, CS13_SW4}, //D9 + {0, CS12_SW4, CS11_SW4, CS10_SW4}, //D10 + {0, CS9_SW4 , CS8_SW4 , CS7_SW4 }, //D11 + {0, CS6_SW4 , CS5_SW4 , CS4_SW4 }, //D12 + {0, CS3_SW4 , CS2_SW4 , CS1_SW4 }, //D13 + + {0, CS39_SW5, CS38_SW5, CS37_SW5}, //E1 + {0, CS36_SW5, CS35_SW5, CS34_SW5}, //E2 + {0, CS33_SW5, CS32_SW5, CS31_SW5}, //E3 + {0, CS30_SW5, CS29_SW5, CS28_SW5}, //E4 + {0, CS27_SW5, CS26_SW5, CS25_SW5}, //E5 + {0, CS24_SW5, CS23_SW5, CS22_SW5}, //E6 + {0, CS21_SW5, CS20_SW5, CS19_SW5}, //E7 + {0, CS18_SW5, CS17_SW5, CS16_SW5}, //E8 + {0, CS15_SW5, CS14_SW5, CS13_SW5}, //E9 + {0, CS12_SW5, CS11_SW5, CS10_SW5}, //E10 + {0, CS9_SW5 , CS8_SW5 , CS7_SW5 }, //E11 + {0, CS6_SW5 , CS5_SW5 , CS4_SW5 }, //E12 + {0, CS3_SW5 , CS2_SW5 , CS1_SW5 }, //E13 + + {0, CS39_SW6, CS38_SW6, CS37_SW6}, //F1 + {0, CS36_SW6, CS35_SW6, CS34_SW6}, //F2 + {0, CS33_SW6, CS32_SW6, CS31_SW6}, //F3 + {0, CS30_SW6, CS29_SW6, CS28_SW6}, //F4 + {0, CS27_SW6, CS26_SW6, CS25_SW6}, //F5 + {0, CS24_SW6, CS23_SW6, CS22_SW6}, //F6 + {0, CS21_SW6, CS20_SW6, CS19_SW6}, //F7 + {0, CS18_SW6, CS17_SW6, CS16_SW6}, //F8 + {0, CS15_SW6, CS14_SW6, CS13_SW6}, //F9 + {0, CS12_SW6, CS11_SW6, CS10_SW6}, //F10 + {0, CS9_SW6 , CS8_SW6 , CS7_SW6 }, //F11 + {0, CS6_SW6 , CS5_SW6 , CS4_SW6 }, //F12 + {0, CS3_SW6 , CS2_SW6 , CS1_SW6 }, //F13 + + {0, CS39_SW7, CS38_SW7, CS37_SW7}, //G1 + {0, CS36_SW7, CS35_SW7, CS34_SW7}, //G2 + {0, CS33_SW7, CS32_SW7, CS31_SW7}, //G3 + {0, CS30_SW7, CS29_SW7, CS28_SW7}, //G4 + {0, CS27_SW7, CS26_SW7, CS25_SW7}, //G5 + {0, CS24_SW7, CS23_SW7, CS22_SW7}, //G6 + {0, CS21_SW7, CS20_SW7, CS19_SW7}, //G7 + {0, CS18_SW7, CS17_SW7, CS16_SW7}, //G8 + {0, CS15_SW7, CS14_SW7, CS13_SW7}, //G9 + {0, CS12_SW7, CS11_SW7, CS10_SW7}, //G10 + {0, CS9_SW7 , CS8_SW7 , CS7_SW7 }, //G11 + {0, CS6_SW7 , CS5_SW7 , CS4_SW7 }, //G12 + {0, CS3_SW7 , CS2_SW7 , CS1_SW7 }, //G13 + + {0, CS39_SW8, CS38_SW8, CS37_SW8}, //H1 + {0, CS36_SW8, CS35_SW8, CS34_SW8}, //H2 + {0, CS33_SW8, CS32_SW8, CS31_SW8}, //H3 + {0, CS30_SW8, CS29_SW8, CS28_SW8}, //H4 + {0, CS27_SW8, CS26_SW8, CS25_SW8}, //H5 + {0, CS24_SW8, CS23_SW8, CS22_SW8}, //H6 + {0, CS21_SW8, CS20_SW8, CS19_SW8}, //H7 + {0, CS18_SW8, CS17_SW8, CS16_SW8}, //H8 + {0, CS15_SW8, CS14_SW8, CS13_SW8}, //H9 + {0, CS12_SW8, CS11_SW8, CS10_SW8}, //H10 + {0, CS9_SW8 , CS8_SW8 , CS7_SW8 }, //H11 + {0, CS6_SW8 , CS5_SW8 , CS4_SW8 }, //H12 + {0, CS3_SW8 , CS2_SW8 , CS1_SW8 }, //H13 + + {0, CS39_SW9, CS38_SW9, CS37_SW9}, //I1 + {0, CS36_SW9, CS35_SW9, CS34_SW9}, //I2 + {0, CS33_SW9, CS32_SW9, CS31_SW9}, //I3 + {0, CS30_SW9, CS29_SW9, CS28_SW9}, //I4 + {0, CS27_SW9, CS26_SW9, CS25_SW9}, //I5 + {0, CS24_SW9, CS23_SW9, CS22_SW9}, //I6 + {0, CS21_SW9, CS20_SW9, CS19_SW9}, //I7 + {0, CS18_SW9, CS17_SW9, CS16_SW9}, //I8 + {0, CS15_SW9, CS14_SW9, CS13_SW9}, //I9 + {0, CS12_SW9, CS11_SW9, CS10_SW9}, //I10 + {0, CS9_SW9 , CS8_SW9 , CS7_SW9 }, //I11 + {0, CS6_SW9 , CS5_SW9 , CS4_SW9 }, //I12 + {0, CS3_SW9 , CS2_SW9 , CS1_SW9 } //I13 +}; + +__attribute__ ((weak)) +led_config_t g_led_config = { { + { -1+00+3 , -1+26+3 , -1+52+3 , -1+78+3 , -1+104+3, -1+13+1 , -1+39+1 , -1+65+1 , -1+91+1 }, + { NO_LED , -1+39+3 , -1+65+3 , -1+91+3 , -1+00+1 , -1+26+1 , -1+52+1 , -1+78+1 , NO_LED }, + { -1+00+4 , -1+26+4 , -1+52+4 , -1+78+4 , -1+104+4, -1+13+2 , -1+39+2 , -1+65+2 , -1+91+2 }, + { -1+13+4 , -1+39+4 , -1+65+4 , -1+91+4 , -1+00+2 , -1+26+2 , -1+52+2 , -1+78+2 , NO_LED }, + { -1+00+6 , -1+26+6 , -1+52+6 , -1+78+6 , -1+104+6, -1+13+5 , -1+39+5 , -1+65+5 , -1+91+6 }, + { -1+13+6 , -1+39+6 , -1+65+6 , -1+91+6 , -1+00+5 , -1+26+5 , -1+52+5 , -1+78+5 , NO_LED }, + { -1+00+8 , -1+26+8 , -1+52+8 , -1+78+8 , -1+104+8, -1+13+7 , NO_LED , NO_LED , NO_LED }, + { -1+13+8 , -1+39+8 , -1+65+8 , -1+91+8 , -1+00+7 , -1+26+7 , -1+52+7 , NO_LED , NO_LED }, + { -1+00+11, -1+26+11, -1+52+11, -1+78+11,-1+104+11, -1+13+10, -1+52+10, NO_LED , NO_LED }, + { -1+13+11, -1+39+11, -1+65+11, -1+91+11, -1+00+10, NO_LED , NO_LED , -1+78+10, NO_LED }, + { -1+00+9 , -1+26+9 , NO_LED , NO_LED , NO_LED , -1+13+12, -1+39+12, -1+65+12, -1+91+12 }, + { -1+13+9 , NO_LED , -1+65+9 , NO_LED , NO_LED , NO_LED , -1+52+12, -1+78+12, NO_LED } +}, { + {123, 0}, {117, 15}, {0 , 0}, {0 , 15}, {123, 27}, {3 , 27}, {127, 40}, {5 , 40}, {2 , 64}, {133, 52}, {8 , 52}, {131, 64}, {255,255}, + {143, 0}, {130, 15}, {255,255}, {13 , 15}, {136, 27}, {19 , 27}, {140, 40}, {23 , 40}, {18 , 64}, {146, 52}, {29 , 52}, {148, 64}, {255,255}, + {156, 0}, {143, 15}, {26 , 0}, {26 , 15}, {149, 27}, {32 , 27}, {153, 40}, {36 , 40}, {34 , 64}, {255,255}, {42 , 52}, {255,255}, {255,255}, + {169, 0}, {156, 15}, {39 , 0}, {39 , 15}, {162, 27}, {45 , 27}, {255,255}, {49 , 40}, {255,255}, {255,255}, {55 , 52}, {164, 64}, {255,255}, + {182, 0}, {175, 15}, {52 , 0}, {52 , 15}, {179, 27}, {58 , 27}, {174, 40}, {62 , 40}, {255,255}, {170, 52}, {68 , 52}, {180, 64}, {255,255}, + {198, 0}, {198, 15}, {65 , 0}, {65 , 15}, {198, 27}, {71 , 27}, {255,255}, {75 , 40}, {83 , 64}, {255,255}, {81 , 52}, {198, 64}, {255,255}, + {211, 0}, {211, 15}, {84 , 0}, {78 , 15}, {211, 27}, {84 , 27}, {255,255}, {88 , 40}, {255,255}, {211, 52}, {94 , 52}, {211, 64}, {255,255}, + {224, 0}, {224, 15}, {97 , 0}, {91 , 15}, {224, 27}, {97 , 27}, {255,255}, {101, 40}, {255,255}, {255,255}, {107, 52}, {224, 64}, {255,255}, + {255,255}, {255,255}, {110, 0}, {104, 15}, {255,255}, {110, 27}, {255,255}, {114, 40}, {255,255}, {255,255}, {120, 52}, {255,255}, {255,255} +}, { + 1, 4, 1, 1, 4, 1, 4, 1, 1, 4, 1, 4, 4, //0-12 + 1, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 1, 4, //13-25 + 1, 4, 1, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4, //26-38 + 1, 4, 1, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, //39-51 + 1, 1, 1, 4, 1, 4, 1, 4, 4, 1, 4, 1, 4, //52-64 + 1, 1, 1, 4, 1, 4, 4, 4, 1, 4, 4, 1, 4, //65-77 + 1, 1, 1, 4, 1, 4, 4, 4, 4, 1, 4, 1, 4, //78-90 + 1, 1, 1, 4, 1, 4, 4, 4, 4, 4, 4, 1, 4, //91-103 + 4, 4, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 //104-116 +} }; + +static void init(void) { + i2c_init(); + IS31FL3741_init(DRIVER_ADDR_1); + for (int index = 0; index < ISSI_DRIVER_TOTAL; index++) { + bool enabled = !( ( index == -1+0+13) || //A13 + ( index == -1+13+3) || //B3 + ( index == -1+13+13) || //B13 + ( index == -1+26+10) || //C10 + ( index == -1+26+12) || //C12 + ( index == -1+26+13) || //C13 + ( index == -1+39+7) || //D7 + ( index == -1+39+9) || //D9 + ( index == -1+39+10) || //D10 + ( index == -1+39+13) || //D13 + ( index == -1+52+9) || //E9 + ( index == -1+52+13) || //E13 + ( index == -1+65+7) || //F7 + ( index == -1+65+10) || //F10 + ( index == -1+65+13) || //F13 + ( index == -1+78+7) || //G7 + ( index == -1+78+9) || //G9 + ( index == -1+78+13) || //G13 + ( index == -1+91+7) || //H7 + ( index == -1+91+9) || //H9 + ( index == -1+91+10) || //H10 + ( index == -1+91+13) || //H13 + ( index == -1+104+1) || //I1 + ( index == -1+104+2) || //I2 + ( index == -1+104+5) || //I5 + ( index == -1+104+7) || //I7 + ( index == -1+104+9) || //I9 + ( index == -1+104+10) || //I10 + ( index == -1+104+12) || //I12 + ( index == -1+104+13) //I13 + ); + IS31FL3741_set_led_control_register(index, enabled, enabled, enabled); + } + IS31FL3741_update_led_control_registers(DRIVER_ADDR_1, 0); +} + +static void flush(void) { + IS31FL3741_update_pwm_buffers(DRIVER_ADDR_1, 0); +} + +const rgb_matrix_driver_t rgb_matrix_driver = { + .init = init, + .flush = flush, + .set_color = IS31FL3741_set_color, + .set_color_all = IS31FL3741_set_color_all +}; +#endif diff --git a/keyboards/xelus/pachi/rgb/rev2/rev2.h b/keyboards/xelus/pachi/rgb/rev2/rev2.h new file mode 100644 index 00000000000..edc164d729d --- /dev/null +++ b/keyboards/xelus/pachi/rgb/rev2/rev2.h @@ -0,0 +1,42 @@ +/* Copyright 2021 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_ansi_tsangan( \ + K0000, K0001, K0101, K0002, K0102, K0003, K0103, K0004, K0104, K0005, K0105, K0006, K0106, K0007, K0107, K0008, \ + K0200, K0300, K0201, K0301, K0202, K0302, K0203, K0303, K0204, K0304, K0205, K0305, K0206, K0306, K0207, K0307, K0208, \ + K0400, K0500, K0401, K0501, K0402, K0502, K0403, K0503, K0404, K0504, K0405, K0505, K0406, K0506, K0407, K0507, K0408, \ + K0600, K0700, K0601, K0701, K0602, K0702, K0603, K0703, K0604, K0704, K0605, K0705, K0706, \ + K0800, K0900, K0801, K0901, K0802, K0902, K0803, K0903, K0804, K0904, K0805, K0806, K0907, \ + K1000, K1100, K1001, K1102, K1005, K1006, K1106, K1007, K1107, K1008 \ +) { \ + { K0000, K0001, K0002, K0003, K0004, K0005, K0006, K0007, K0008 }, \ + { _____, K0101, K0102, K0103, K0104, K0105, K0106, K0107, _____ }, \ + { K0200, K0201, K0202, K0203, K0204, K0205, K0206, K0207, K0208 }, \ + { K0300, K0301, K0302, K0303, K0304, K0305, K0306, K0307, _____ }, \ + { K0400, K0401, K0402, K0403, K0404, K0405, K0406, K0407, K0408 }, \ + { K0500, K0501, K0502, K0503, K0504, K0505, K0506, K0507, _____ }, \ + { K0600, K0601, K0602, K0603, K0604, K0605, _____, _____, _____ }, \ + { K0700, K0701, K0702, K0703, K0704, K0705, K0706, _____, _____ }, \ + { K0800, K0801, K0802, K0803, K0804, K0805, K0806, _____, _____ }, \ + { K0900, K0901, K0902, K0903, K0904, _____, _____, K0907, _____ }, \ + { K1000, K1001, _____, _____, _____, K1005, K1006, K1007, K1008 }, \ + { K1100, _____, K1102, _____, _____, _____, K1106, K1107, _____ } \ +} diff --git a/keyboards/xelus/pachi/rgb/rev2/rules.mk b/keyboards/xelus/pachi/rgb/rev2/rules.mk new file mode 100644 index 00000000000..0834a9ab6f2 --- /dev/null +++ b/keyboards/xelus/pachi/rgb/rev2/rules.mk @@ -0,0 +1,31 @@ +# MCU name +MCU = STM32L422 + +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +AUDIO_ENABLE = no # Audio output + +EEPROM_DRIVER = i2c + +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = custom + +COMMON_VPATH += $(DRIVER_PATH)/issi +SRC += drivers/led/issi/is31fl3741.c + +LTO_ENABLE = yes +OPT = 2 diff --git a/keyboards/xelus/pachi/rgb/rgb.c b/keyboards/xelus/pachi/rgb/rgb.c index 6f44b13e12e..93ca8406dec 100644 --- a/keyboards/xelus/pachi/rgb/rgb.c +++ b/keyboards/xelus/pachi/rgb/rgb.c @@ -13,227 +13,4 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ - #include "rgb.h" -#include -#include - -// tested and working -void matrix_io_delay(void) { __asm__ volatile("nop\nnop\nnop\n"); } - -#ifdef RGB_MATRIX_ENABLE -#include -#include "drivers/led/issi/is31fl3741.h" -const is31_led __flash g_is31_leds[DRIVER_LED_TOTAL] = { -/* Refer to IS31 manual for these locations - * driver - * | R location - * | | G location - * | | | B location - * | | | | */ - {0, CS39_SW1, CS38_SW1, CS37_SW1}, //A1 - {0, CS36_SW1, CS35_SW1, CS34_SW1}, //A2 - {0, CS33_SW1, CS32_SW1, CS31_SW1}, //A3 - {0, CS30_SW1, CS29_SW1, CS28_SW1}, //A4 - {0, CS27_SW1, CS26_SW1, CS25_SW1}, //A5 - {0, CS24_SW1, CS23_SW1, CS22_SW1}, //A6 - {0, CS21_SW1, CS20_SW1, CS19_SW1}, //A7 - {0, CS18_SW1, CS17_SW1, CS16_SW1}, //A8 - {0, CS15_SW1, CS14_SW1, CS13_SW1}, //A9 - {0, CS12_SW1, CS11_SW1, CS10_SW1}, //A10 - {0, CS9_SW1 , CS8_SW1 , CS7_SW1 }, //A11 - {0, CS6_SW1 , CS5_SW1 , CS4_SW1 }, //A12 - {0, CS3_SW1 , CS2_SW1 , CS1_SW1 }, //A13 - - {0, CS39_SW2, CS38_SW2, CS37_SW2}, //B1 - {0, CS36_SW2, CS35_SW2, CS34_SW2}, //B2 - {0, CS33_SW2, CS32_SW2, CS31_SW2}, //B3 - {0, CS30_SW2, CS29_SW2, CS28_SW2}, //B4 - {0, CS27_SW2, CS26_SW2, CS25_SW2}, //B5 - {0, CS24_SW2, CS23_SW2, CS22_SW2}, //B6 - {0, CS21_SW2, CS20_SW2, CS19_SW2}, //B7 - {0, CS18_SW2, CS17_SW2, CS16_SW2}, //B8 - {0, CS15_SW2, CS14_SW2, CS13_SW2}, //B9 - {0, CS12_SW2, CS11_SW2, CS10_SW2}, //B10 - {0, CS9_SW2 , CS8_SW2 , CS7_SW2 }, //B11 - {0, CS6_SW2 , CS5_SW2 , CS4_SW2 }, //B12 - {0, CS3_SW2 , CS2_SW2 , CS1_SW2 }, //B13 - - {0, CS39_SW3, CS38_SW3, CS37_SW3}, //C1 - {0, CS36_SW3, CS35_SW3, CS34_SW3}, //C2 - {0, CS33_SW3, CS32_SW3, CS31_SW3}, //C3 - {0, CS30_SW3, CS29_SW3, CS28_SW3}, //C4 - {0, CS27_SW3, CS26_SW3, CS25_SW3}, //C5 - {0, CS24_SW3, CS23_SW3, CS22_SW3}, //C6 - {0, CS21_SW3, CS20_SW3, CS19_SW3}, //C7 - {0, CS18_SW3, CS17_SW3, CS16_SW3}, //C8 - {0, CS15_SW3, CS14_SW3, CS13_SW3}, //C9 - {0, CS12_SW3, CS11_SW3, CS10_SW3}, //C10 - {0, CS9_SW3 , CS8_SW3 , CS7_SW3 }, //C11 - {0, CS6_SW3 , CS5_SW3 , CS4_SW3 }, //C12 - {0, CS3_SW3 , CS2_SW3 , CS1_SW3 }, //C13 - - {0, CS39_SW4, CS38_SW4, CS37_SW4}, //D1 - {0, CS36_SW4, CS35_SW4, CS34_SW4}, //D2 - {0, CS33_SW4, CS32_SW4, CS31_SW4}, //D3 - {0, CS30_SW4, CS29_SW4, CS28_SW4}, //D4 - {0, CS27_SW4, CS26_SW4, CS25_SW4}, //D5 - {0, CS24_SW4, CS23_SW4, CS22_SW4}, //D6 - {0, CS21_SW4, CS20_SW4, CS19_SW4}, //D7 - {0, CS18_SW4, CS17_SW4, CS16_SW4}, //D8 - {0, CS15_SW4, CS14_SW4, CS13_SW4}, //D9 - {0, CS12_SW4, CS11_SW4, CS10_SW4}, //D10 - {0, CS9_SW4 , CS8_SW4 , CS7_SW4 }, //D11 - {0, CS6_SW4 , CS5_SW4 , CS4_SW4 }, //D12 - {0, CS3_SW4 , CS2_SW4 , CS1_SW4 }, //D13 - - {0, CS39_SW5, CS38_SW5, CS37_SW5}, //E1 - {0, CS36_SW5, CS35_SW5, CS34_SW5}, //E2 - {0, CS33_SW5, CS32_SW5, CS31_SW5}, //E3 - {0, CS30_SW5, CS29_SW5, CS28_SW5}, //E4 - {0, CS27_SW5, CS26_SW5, CS25_SW5}, //E5 - {0, CS24_SW5, CS23_SW5, CS22_SW5}, //E6 - {0, CS21_SW5, CS20_SW5, CS19_SW5}, //E7 - {0, CS18_SW5, CS17_SW5, CS16_SW5}, //E8 - {0, CS15_SW5, CS14_SW5, CS13_SW5}, //E9 - {0, CS12_SW5, CS11_SW5, CS10_SW5}, //E10 - {0, CS9_SW5 , CS8_SW5 , CS7_SW5 }, //E11 - {0, CS6_SW5 , CS5_SW5 , CS4_SW5 }, //E12 - {0, CS3_SW5 , CS2_SW5 , CS1_SW5 }, //E13 - - {0, CS39_SW6, CS38_SW6, CS37_SW6}, //F1 - {0, CS36_SW6, CS35_SW6, CS34_SW6}, //F2 - {0, CS33_SW6, CS32_SW6, CS31_SW6}, //F3 - {0, CS30_SW6, CS29_SW6, CS28_SW6}, //F4 - {0, CS27_SW6, CS26_SW6, CS25_SW6}, //F5 - {0, CS24_SW6, CS23_SW6, CS22_SW6}, //F6 - {0, CS21_SW6, CS20_SW6, CS19_SW6}, //F7 - {0, CS18_SW6, CS17_SW6, CS16_SW6}, //F8 - {0, CS15_SW6, CS14_SW6, CS13_SW6}, //F9 - {0, CS12_SW6, CS11_SW6, CS10_SW6}, //F10 - {0, CS9_SW6 , CS8_SW6 , CS7_SW6 }, //F11 - {0, CS6_SW6 , CS5_SW6 , CS4_SW6 }, //F12 - {0, CS3_SW6 , CS2_SW6 , CS1_SW6 }, //F13 - - {0, CS39_SW7, CS38_SW7, CS37_SW7}, //G1 - {0, CS36_SW7, CS35_SW7, CS34_SW7}, //G2 - {0, CS33_SW7, CS32_SW7, CS31_SW7}, //G3 - {0, CS30_SW7, CS29_SW7, CS28_SW7}, //G4 - {0, CS27_SW7, CS26_SW7, CS25_SW7}, //G5 - {0, CS24_SW7, CS23_SW7, CS22_SW7}, //G6 - {0, CS21_SW7, CS20_SW7, CS19_SW7}, //G7 - {0, CS18_SW7, CS17_SW7, CS16_SW7}, //G8 - {0, CS15_SW7, CS14_SW7, CS13_SW7}, //G9 - {0, CS12_SW7, CS11_SW7, CS10_SW7}, //G10 - {0, CS9_SW7 , CS8_SW7 , CS7_SW7 }, //G11 - {0, CS6_SW7 , CS5_SW7 , CS4_SW7 }, //G12 - {0, CS3_SW7 , CS2_SW7 , CS1_SW7 }, //G13 - - {0, CS39_SW8, CS38_SW8, CS37_SW8}, //H1 - {0, CS36_SW8, CS35_SW8, CS34_SW8}, //H2 - {0, CS33_SW8, CS32_SW8, CS31_SW8}, //H3 - {0, CS30_SW8, CS29_SW8, CS28_SW8}, //H4 - {0, CS27_SW8, CS26_SW8, CS25_SW8}, //H5 - {0, CS24_SW8, CS23_SW8, CS22_SW8}, //H6 - {0, CS21_SW8, CS20_SW8, CS19_SW8}, //H7 - {0, CS18_SW8, CS17_SW8, CS16_SW8}, //H8 - {0, CS15_SW8, CS14_SW8, CS13_SW8}, //H9 - {0, CS12_SW8, CS11_SW8, CS10_SW8}, //H10 - {0, CS9_SW8 , CS8_SW8 , CS7_SW8 }, //H11 - {0, CS6_SW8 , CS5_SW8 , CS4_SW8 }, //H12 - {0, CS3_SW8 , CS2_SW8 , CS1_SW8 }, //H13 - - {0, CS39_SW9, CS38_SW9, CS37_SW9}, //I1 - {0, CS36_SW9, CS35_SW9, CS34_SW9}, //I2 - {0, CS33_SW9, CS32_SW9, CS31_SW9}, //I3 - {0, CS30_SW9, CS29_SW9, CS28_SW9}, //I4 - {0, CS27_SW9, CS26_SW9, CS25_SW9}, //I5 - {0, CS24_SW9, CS23_SW9, CS22_SW9}, //I6 - {0, CS21_SW9, CS20_SW9, CS19_SW9}, //I7 - {0, CS18_SW9, CS17_SW9, CS16_SW9}, //I8 - {0, CS15_SW9, CS14_SW9, CS13_SW9}, //I9 - {0, CS12_SW9, CS11_SW9, CS10_SW9}, //I10 - {0, CS9_SW9 , CS8_SW9 , CS7_SW9 }, //I11 - {0, CS6_SW9 , CS5_SW9 , CS4_SW9 }, //I12 - {0, CS3_SW9 , CS2_SW9 , CS1_SW9 } //I13 -}; - -__attribute__ ((weak)) -led_config_t g_led_config = { { - { -1+00+3 , NO_LED, -1+26+3 , -1+39+3 , -1+52+3 , -1+65+3 , -1+78+3 , -1+91+3 , -1+104+3 , -1+00+1 , -1+13+1 , -1+26+1 , -1+39+1 , -1+52+1 , -1+65+1 , -1+78+1 , -1+91+1 }, - { -1+00+4 , -1+13+4 , -1+26+4 , -1+39+4 , -1+52+4 , -1+65+4 , -1+78+4 , -1+91+4 , -1+104+4 , -1+00+2 , -1+13+2 , -1+26+2 , -1+39+2 , -1+52+2 , -1+65+2 , -1+78+2 , -1+91+2 }, - { -1+00+6 , -1+13+6 , -1+26+6 , -1+39+6 , -1+52+6 , -1+65+6 , -1+78+6 , -1+91+6 , -1+104+6 , -1+00+5 , -1+13+5 , -1+26+5 , -1+39+5 , -1+52+5 , -1+65+5 , -1+78+5 , -1+91+6 }, - { -1+00+8 , -1+13+8 , -1+26+8 , -1+39+8 , -1+52+8 , -1+65+8 , -1+78+8 , -1+91+8 , -1+104+8 , -1+00+7 , -1+13+7 , -1+26+7 , NO_LED , -1+52+7 , NO_LED , NO_LED , NO_LED }, - { -1+00+11, -1+13+11, -1+26+11, -1+39+11, -1+52+11, -1+65+11, -1+78+11, -1+91+11, -1+104+11, -1+00+10, -1+13+10, NO_LED , -1+52+10, NO_LED , NO_LED , -1+78+10, NO_LED }, - { -1+00+9 , -1+13+9 , -1+26+9 , NO_LED , NO_LED , -1+65+9 , NO_LED , NO_LED , NO_LED , NO_LED , -1+13+12, NO_LED , -1+39+12, -1+52+12, -1+65+12, -1+78+12, -1+91+12} -}, { - {123, 0}, {117, 15}, {0 , 0}, {0 , 15}, {123, 27}, {3 , 27}, {127, 40}, {5 , 40}, {2 , 64}, {133, 52}, {8 , 52}, {131, 64}, {255,255}, - {143, 0}, {130, 15}, {255,255}, {13 , 15}, {136, 27}, {19 , 27}, {140, 40}, {23 , 40}, {18 , 64}, {146, 52}, {29 , 52}, {148, 64}, {255,255}, - {156, 0}, {143, 15}, {26 , 0}, {26 , 15}, {149, 27}, {32 , 27}, {153, 40}, {36 , 40}, {34 , 64}, {255,255}, {42 , 52}, {255,255}, {255,255}, - {169, 0}, {156, 15}, {39 , 0}, {39 , 15}, {162, 27}, {45 , 27}, {255,255}, {49 , 40}, {255,255}, {255,255}, {55 , 52}, {164, 64}, {255,255}, - {182, 0}, {175, 15}, {52 , 0}, {52 , 15}, {179, 27}, {58 , 27}, {174, 40}, {62 , 40}, {255,255}, {170, 52}, {68 , 52}, {180, 64}, {255,255}, - {198, 0}, {198, 15}, {65 , 0}, {65 , 15}, {198, 27}, {71 , 27}, {255,255}, {75 , 40}, {83 , 64}, {255,255}, {81 , 52}, {198, 64}, {255,255}, - {211, 0}, {211, 15}, {84 , 0}, {78 , 15}, {211, 27}, {84 , 27}, {255,255}, {88 , 40}, {255,255}, {211, 52}, {94 , 52}, {211, 64}, {255,255}, - {224, 0}, {224, 15}, {97 , 0}, {91 , 15}, {224, 27}, {97 , 27}, {255,255}, {101, 40}, {255,255}, {255,255}, {107, 52}, {224, 64}, {255,255}, - {255,255}, {255,255}, {110, 0}, {104, 15}, {255,255}, {110, 27}, {255,255}, {114, 40}, {255,255}, {255,255}, {120, 52}, {255,255}, {255,255} -}, { - 1, 4, 1, 1, 4, 1, 4, 1, 1, 4, 1, 4, 4, //0-12 - 1, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 1, 4, //13-25 - 1, 4, 1, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4, //26-38 - 1, 4, 1, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, //39-51 - 1, 1, 1, 4, 1, 4, 1, 4, 4, 1, 4, 1, 4, //52-64 - 1, 1, 1, 4, 1, 4, 4, 4, 1, 4, 4, 1, 4, //65-77 - 1, 1, 1, 4, 1, 4, 4, 4, 4, 1, 4, 1, 4, //78-90 - 1, 1, 1, 4, 1, 4, 4, 4, 4, 4, 4, 1, 4, //91-103 - 4, 4, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 //104-116 -} }; - -static void init(void) { - i2c_init(); - IS31FL3741_init(DRIVER_ADDR_1); - for (int index = 0; index < ISSI_DRIVER_TOTAL; index++) { - bool enabled = !( ( index == -1+0+13) || //A13 - ( index == -1+13+3) || //B3 - ( index == -1+13+13) || //B13 - ( index == -1+26+10) || //C10 - ( index == -1+26+12) || //C12 - ( index == -1+26+13) || //C13 - ( index == -1+39+7) || //D7 - ( index == -1+39+9) || //D9 - ( index == -1+39+10) || //D10 - ( index == -1+39+13) || //D13 - ( index == -1+52+9) || //E9 - ( index == -1+52+13) || //E13 - ( index == -1+65+7) || //F7 - ( index == -1+65+10) || //F10 - ( index == -1+65+13) || //F13 - ( index == -1+78+7) || //G7 - ( index == -1+78+9) || //G9 - ( index == -1+78+13) || //G13 - ( index == -1+91+7) || //H7 - ( index == -1+91+9) || //H9 - ( index == -1+91+10) || //H10 - ( index == -1+91+13) || //H13 - ( index == -1+104+1) || //I1 - ( index == -1+104+2) || //I2 - ( index == -1+104+5) || //I5 - ( index == -1+104+7) || //I7 - ( index == -1+104+9) || //I9 - ( index == -1+104+10) || //I10 - ( index == -1+104+12) || //I12 - ( index == -1+104+13) //I13 - ); - IS31FL3741_set_led_control_register(index, enabled, enabled, enabled); - } - IS31FL3741_update_led_control_registers(DRIVER_ADDR_1, 0); -} - -static void flush(void) { IS31FL3741_update_pwm_buffers(DRIVER_ADDR_1, DRIVER_ADDR_2); } - -const rgb_matrix_driver_t rgb_matrix_driver = { - .init = init, - .flush = flush, - .set_color = IS31FL3741_set_color, - .set_color_all = IS31FL3741_set_color_all -}; -#endif diff --git a/keyboards/xelus/pachi/rgb/rgb.h b/keyboards/xelus/pachi/rgb/rgb.h index 894519ebe2e..36ca2937a67 100644 --- a/keyboards/xelus/pachi/rgb/rgb.h +++ b/keyboards/xelus/pachi/rgb/rgb.h @@ -17,20 +17,8 @@ #include "quantum.h" -#define ____ KC_NO - -#define LAYOUT_ansi_tsangan( \ - K000, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, \ - K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K116, \ - K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, K216, \ - K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, \ - K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K412, K415, \ - K500, K501, K502, K505, K510, K512, K513, K514, K515, K516 \ -) { \ - { K000, ____, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016 }, \ - { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K116 }, \ - { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, K216 }, \ - { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, ____, K313, ____, ____, ____ }, \ - { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, ____, K412, ____, ____, K415, ____ }, \ - { K500, K501, K502, ____, ____, K505, ____, ____, ____, ____, K510, ____, K512, K513, K514, K515, K516 } \ -} +#if defined(KEYBOARD_xelus_pachi_rgb_rev1) + #include "rev1.h" +#elif defined(KEYBOARD_xelus_pachi_rgb_rev2) + #include "rev2.h" +#endif diff --git a/keyboards/xelus/snap96/rules.mk b/keyboards/xelus/snap96/rules.mk index fdedbf0c502..83626597d5e 100644 --- a/keyboards/xelus/snap96/rules.mk +++ b/keyboards/xelus/snap96/rules.mk @@ -17,6 +17,5 @@ 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 -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. - We have custom RGB underglow diff --git a/keyboards/xiudi/xd002/rules.mk b/keyboards/xiudi/xd002/rules.mk index cb95d7992e0..f6294c209fd 100644 --- a/keyboards/xiudi/xd002/rules.mk +++ b/keyboards/xiudi/xd002/rules.mk @@ -20,7 +20,6 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = no # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output # Save as much space as we can... diff --git a/keyboards/xiudi/xd004/v1/rules.mk b/keyboards/xiudi/xd004/v1/rules.mk index 41eae5bb178..cc04c573242 100644 --- a/keyboards/xiudi/xd004/v1/rules.mk +++ b/keyboards/xiudi/xd004/v1/rules.mk @@ -13,7 +13,6 @@ 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 = no # Enable keyboard backlight functionality AUDIO_ENABLE = no # Audio output -UNICODE_ENABLE = no # Unicode RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend SPACE_CADET_ENABLE = no diff --git a/keyboards/xiudi/xd60/keymaps/ansi_split_bs_rshift_space/keymap.c b/keyboards/xiudi/xd60/keymaps/ansi_split_bs_rshift_space/keymap.c new file mode 100644 index 00000000000..e630851db50 --- /dev/null +++ b/keyboards/xiudi/xd60/keymaps/ansi_split_bs_rshift_space/keymap.c @@ -0,0 +1,33 @@ +/* Copyright 2021 mizuho1998 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_split_bs_rshift_space( + 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NO, 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, KC_UP, KC_DEL, + KC_LCTL, KC_LGUI, KC_LALT, KC_LSFT, KC_SPC, KC_ESC, KC_RGUI, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT + ), + [1] = LAYOUT_60_ansi_split_bs_rshift_space( + 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_F13, KC_F14, + KC_NO, KC_WH_U, KC_UP, KC_WH_D, KC_BSPC,KC_HOME,KC_CALC,KC_NO, KC_INS, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_DEL, + KC_NO, KC_LEFT, KC_DOWN, KC_RIGHT,KC_DEL, KC_END, KC_PGDN,KC_NO, KC_NO, KC_NO, KC_HOME, KC_PGUP, KC_NO, KC_ENT, + KC_LSFT, KC_NO, KC_NO, KC_APP, BL_STEP,KC_NO, KC_NO, KC_VOLD,KC_VOLU,KC_MUTE, KC_END, KC_PGDN, KC_RSFT, KC_PGUP, KC_INS, + KC_LCTL, KC_LGUI, KC_LALT, KC_LSFT, KC_SPC, KC_ESC, KC_RGUI, MO(1), KC_HOME, KC_PGDOWN,KC_END + ) +}; diff --git a/keyboards/xiudi/xd60/keymaps/ansi_split_bs_rshift_space/readme.md b/keyboards/xiudi/xd60/keymaps/ansi_split_bs_rshift_space/readme.md new file mode 100644 index 00000000000..56f384f4366 --- /dev/null +++ b/keyboards/xiudi/xd60/keymaps/ansi_split_bs_rshift_space/readme.md @@ -0,0 +1,13 @@ +# Split Space Keymap for XIUDI's 60% XD60 PCB + +![Split Space Keymap for XD60](https://user-images.githubusercontent.com/39789796/140330345-2ccde096-dad5-49d0-b8a7-b231180018e6.png) + + +* Keyboard Maintainer: [mizuho1998](https://github.com/mizuho1998) +* Hardware Supported: xd60 PCB rev3 + +Make example for this keyboard (after setting up your build environment): + + make xiudi/xd60/rev3:ansi_split_bs_rshift_space + +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/xiudi/xd60/rev2/rules.mk b/keyboards/xiudi/xd60/rev2/rules.mk index 1e7721da3ab..c825de8dbe5 100644 --- a/keyboards/xiudi/xd60/rev2/rules.mk +++ b/keyboards/xiudi/xd60/rev2/rules.mk @@ -13,7 +13,6 @@ COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = yes # 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 AUDIO_ENABLE = no # Audio output -UNICODE_ENABLE = no # Unicode RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend diff --git a/keyboards/xiudi/xd60/rev3/rules.mk b/keyboards/xiudi/xd60/rev3/rules.mk index 1e7721da3ab..c825de8dbe5 100644 --- a/keyboards/xiudi/xd60/rev3/rules.mk +++ b/keyboards/xiudi/xd60/rev3/rules.mk @@ -13,7 +13,6 @@ COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = yes # 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 AUDIO_ENABLE = no # Audio output -UNICODE_ENABLE = no # Unicode RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend diff --git a/keyboards/xiudi/xd60/xd60.h b/keyboards/xiudi/xd60/xd60.h index dc6a1080f9a..cf698adcc13 100644 --- a/keyboards/xiudi/xd60/xd60.h +++ b/keyboards/xiudi/xd60/xd60.h @@ -60,6 +60,20 @@ inline void xd60_bl_led_off(void) { DDRF &= ~(1<<5); PORTF &= ~(1<<5); } { K40, K41, K42, KC_NO, KC_NO, K45, KC_NO, KC_NO, KC_NO, K49, K4A, K4B, K4C, K4D } \ } +#define LAYOUT_60_ansi_split_bs_rshift_space( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K49, \ + 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, K47, K3D, K3C, \ + K40, K41, K42, K46, K45, K44, K4A, K4B, K48, 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, K2D }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \ + { K40, K41, K42, KC_NO, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D } \ +} + #define LAYOUT_60_iso( \ 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, \ diff --git a/keyboards/xiudi/xd68/rules.mk b/keyboards/xiudi/xd68/rules.mk index ccff681631f..4310c112062 100644 --- a/keyboards/xiudi/xd68/rules.mk +++ b/keyboards/xiudi/xd68/rules.mk @@ -19,6 +19,5 @@ NKRO_ENABLE = yes # USB Nkey Rollover BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -UNICODE_ENABLE = no # Unicode LAYOUTS = 65_ansi 65_ansi_split_bs 65_iso diff --git a/keyboards/xiudi/xd84/config.h b/keyboards/xiudi/xd84/config.h index 9aa63a93f04..bba8cf55667 100644 --- a/keyboards/xiudi/xd84/config.h +++ b/keyboards/xiudi/xd84/config.h @@ -116,58 +116,6 @@ */ //#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_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) - -/* control how magic key switches layers */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false - -/* override magic key keymap */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM -//#define MAGIC_KEY_HELP1 H -//#define MAGIC_KEY_HELP2 SLASH -//#define MAGIC_KEY_DEBUG D -//#define MAGIC_KEY_DEBUG_MATRIX X -//#define MAGIC_KEY_DEBUG_KBD K -//#define MAGIC_KEY_DEBUG_MOUSE M -//#define MAGIC_KEY_VERSION V -//#define MAGIC_KEY_STATUS S -//#define MAGIC_KEY_CONSOLE C -//#define MAGIC_KEY_LAYER0_ALT1 ESC -//#define MAGIC_KEY_LAYER0_ALT2 GRAVE -//#define MAGIC_KEY_LAYER0 0 -//#define MAGIC_KEY_LAYER1 1 -//#define MAGIC_KEY_LAYER2 2 -//#define MAGIC_KEY_LAYER3 3 -//#define MAGIC_KEY_LAYER4 4 -//#define MAGIC_KEY_LAYER5 5 -//#define MAGIC_KEY_LAYER6 6 -//#define MAGIC_KEY_LAYER7 7 -//#define MAGIC_KEY_LAYER8 8 -//#define MAGIC_KEY_LAYER9 9 -//#define MAGIC_KEY_BOOTLOADER PAUSE -//#define MAGIC_KEY_LOCK CAPS -//#define MAGIC_KEY_EEPROM E -//#define MAGIC_KEY_NKRO N -//#define MAGIC_KEY_SLEEP_LED Z - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/xiudi/xd84/rules.mk b/keyboards/xiudi/xd84/rules.mk index c467036991a..54809bc998f 100644 --- a/keyboards/xiudi/xd84/rules.mk +++ b/keyboards/xiudi/xd84/rules.mk @@ -18,7 +18,6 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = no # USB Nkey Rollover BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output LTO_ENABLE = yes diff --git a/keyboards/xiudi/xd87/config.h b/keyboards/xiudi/xd87/config.h index 24e2dc2330c..41e8bf36905 100644 --- a/keyboards/xiudi/xd87/config.h +++ b/keyboards/xiudi/xd87/config.h @@ -105,54 +105,6 @@ along with this program. If not, see . */ //#define FORCE_NKRO -/* - * Magic Key Options - * - * Magic keys are hotkey commands that allow control over firmware functions of - * the keyboard. They are best used in combination with the HID Listen program, - * found here: https://www.pjrc.com/teensy/hid_listen.html - * - * The options below allow the magic key functionality to be changed. This is - * useful if your keyboard/keypad is missing keys and you want magic key support. - * - */ - -/* control how magic key switches layers */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false - -/* override magic key keymap */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM -//#define MAGIC_KEY_HELP1 H -//#define MAGIC_KEY_HELP2 SLASH -//#define MAGIC_KEY_DEBUG D -//#define MAGIC_KEY_DEBUG_MATRIX X -//#define MAGIC_KEY_DEBUG_KBD K -//#define MAGIC_KEY_DEBUG_MOUSE M -//#define MAGIC_KEY_VERSION V -//#define MAGIC_KEY_STATUS S -//#define MAGIC_KEY_CONSOLE C -//#define MAGIC_KEY_LAYER0_ALT1 ESC -//#define MAGIC_KEY_LAYER0_ALT2 GRAVE -//#define MAGIC_KEY_LAYER0 0 -//#define MAGIC_KEY_LAYER1 1 -//#define MAGIC_KEY_LAYER2 2 -//#define MAGIC_KEY_LAYER3 3 -//#define MAGIC_KEY_LAYER4 4 -//#define MAGIC_KEY_LAYER5 5 -//#define MAGIC_KEY_LAYER6 6 -//#define MAGIC_KEY_LAYER7 7 -//#define MAGIC_KEY_LAYER8 8 -//#define MAGIC_KEY_LAYER9 9 -//#define MAGIC_KEY_BOOTLOADER PAUSE -//#define MAGIC_KEY_LOCK CAPS -//#define MAGIC_KEY_EEPROM E -//#define MAGIC_KEY_NKRO N -//#define MAGIC_KEY_SLEEP_LED Z - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/xiudi/xd87/rules.mk b/keyboards/xiudi/xd87/rules.mk index 0bde383ae65..5fb8c67600c 100644 --- a/keyboards/xiudi/xd87/rules.mk +++ b/keyboards/xiudi/xd87/rules.mk @@ -18,7 +18,6 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = no # USB Nkey Rollover BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output # Supported layouts diff --git a/keyboards/xiudi/xd96/config.h b/keyboards/xiudi/xd96/config.h index 280fd39df54..5ec2543ffa7 100644 --- a/keyboards/xiudi/xd96/config.h +++ b/keyboards/xiudi/xd96/config.h @@ -117,58 +117,6 @@ */ //#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_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) - -/* control how magic key switches layers */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false - -/* override magic key keymap */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM -//#define MAGIC_KEY_HELP1 H -//#define MAGIC_KEY_HELP2 SLASH -//#define MAGIC_KEY_DEBUG D -//#define MAGIC_KEY_DEBUG_MATRIX X -//#define MAGIC_KEY_DEBUG_KBD K -//#define MAGIC_KEY_DEBUG_MOUSE M -//#define MAGIC_KEY_VERSION V -//#define MAGIC_KEY_STATUS S -//#define MAGIC_KEY_CONSOLE C -//#define MAGIC_KEY_LAYER0_ALT1 ESC -//#define MAGIC_KEY_LAYER0_ALT2 GRAVE -//#define MAGIC_KEY_LAYER0 0 -//#define MAGIC_KEY_LAYER1 1 -//#define MAGIC_KEY_LAYER2 2 -//#define MAGIC_KEY_LAYER3 3 -//#define MAGIC_KEY_LAYER4 4 -//#define MAGIC_KEY_LAYER5 5 -//#define MAGIC_KEY_LAYER6 6 -//#define MAGIC_KEY_LAYER7 7 -//#define MAGIC_KEY_LAYER8 8 -//#define MAGIC_KEY_LAYER9 9 -//#define MAGIC_KEY_BOOTLOADER PAUSE -//#define MAGIC_KEY_LOCK CAPS -//#define MAGIC_KEY_EEPROM E -//#define MAGIC_KEY_NKRO N -//#define MAGIC_KEY_SLEEP_LED Z - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/xiudi/xd96/rules.mk b/keyboards/xiudi/xd96/rules.mk index c10c24612af..baade350b0a 100644 --- a/keyboards/xiudi/xd96/rules.mk +++ b/keyboards/xiudi/xd96/rules.mk @@ -18,7 +18,6 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = no # USB Nkey Rollover BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output LTO_ENABLE = yes diff --git a/keyboards/xw60/rules.mk b/keyboards/xw60/rules.mk index 81288f05ca2..5921be64c39 100644 --- a/keyboards/xw60/rules.mk +++ b/keyboards/xw60/rules.mk @@ -16,7 +16,6 @@ COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality AUDIO_ENABLE = no # Audio output -UNICODE_ENABLE = no # Unicode RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. HAPTIC_ENABLE += SOLENOID # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE diff --git a/keyboards/yampad/config.h b/keyboards/yampad/config.h index d04ae37d5a4..b21a606ddc9 100644 --- a/keyboards/yampad/config.h +++ b/keyboards/yampad/config.h @@ -20,7 +20,7 @@ along with this program. If not, see . #include "config_common.h" /* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED +#define VENDOR_ID 0x5950 // YP #define PRODUCT_ID 0x8369 #define DEVICE_VER 0x0001 #define MANUFACTURER Mattia Dal Ben diff --git a/keyboards/yampad/keymaps/via/keymap.c b/keyboards/yampad/keymaps/via/keymap.c new file mode 100644 index 00000000000..d22eb26177b --- /dev/null +++ b/keyboards/yampad/keymaps/via/keymap.c @@ -0,0 +1,163 @@ +/* MIT License + +Copyright (c) 2019 Mattia Dal Ben + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +*/ + +#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 layers { + _BL, + _NV, + _FN +}; + +enum custom_keycodes { + KC_DBL0 = SAFE_RANGE, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap _BL: (Base Layer) Default Layer + * ,-------------------. + * | NV | / | * |-/FN| + * |----|----|----|----| + * | 7 | 8 | 9 | | + * |----|----|----| + | + * | 4 | 5 | 6 | | + * |----|----|----|----| + * | 1 | 2 | 3 | | + * |----|----|----| En | + * | 0 | 00 | . | | + * `-------------------' + */ + [_BL] = LAYOUT( + TG(_NV), KC_PSLS, KC_PAST, LT(_FN, 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_DBL0, KC_PDOT, KC_PENT + ), + +/* Keymap _NV: Navigation layer + * ,-------------------. + * |INS |HOME|PGUP| | + * |----|----|----|----| + * |DEL |END |PGDN| | + * |----|----|----| | + * | | | | | + * |----|----|----|----| + * | | UP | | | + * |----|----|----| | + * |LEFT|DOWN|RIGH| | + * `-------------------' + */ + [_NV] = LAYOUT( + KC_INS, KC_HOME, KC_PGUP, TG(_NV), + KC_DEL, KC_END, KC_PGDN, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, KC_UP, XXXXXXX, + KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX + ), + +/* Keymap _FN: RGB Function Layer + * ,-------------------. + * |RMOD|RGBP|RTOG| FN | + * |----|----|----|----| + * |HUD |HUI | | | + * |----|----|----| | + * |SAD |SAI | | | + * |----|----|----|----| + * |VAD |VAS | | | + * |----|----|----| | + * |RST | | | | + * `-------------------' + */ + [_FN] = LAYOUT( + RGB_MOD, RGB_M_P, RGB_TOG, _______, + RGB_HUD, RGB_HUI, XXXXXXX, + RGB_SAD, RGB_SAI, XXXXXXX, XXXXXXX, + RGB_VAD, RGB_VAI, XXXXXXX, + RESET, XXXXXXX, XXXXXXX, XXXXXXX + ), +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KC_DBL0: + if (record->event.pressed) { + SEND_STRING("00"); + } else { + // when keycode KC_DBL0 is released + } + break; + + } + return true; +}; + +#ifdef OLED_ENABLE + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + return OLED_ROTATION_270; // flips the display 270 degrees +} + +void oled_task_user(void) { + // Host Keyboard Layer Status + oled_write_P(PSTR("Layer"), false); + switch (get_highest_layer(layer_state)) { + case _BL: + oled_write_ln_P(PSTR(" BAS"), false); + break; + case _NV: + oled_write_ln_P(PSTR(" NAV"), false); + break; + case _FN: + oled_write_ln_P(PSTR(" RGB"), false); + break; + default: + // Or use the write_ln shortcut over adding '\n' to the end of your string + oled_write_ln_P(PSTR(" UND"), false); + } + + // Host Keyboard LED Status + led_t led_state = host_keyboard_led_state(); + oled_write_P(PSTR("-----"), false); + oled_write_P(PSTR("Stats"), false); + oled_write_P(led_state.num_lock ? PSTR("num:*") : PSTR("num:."), false); + oled_write_P(led_state.caps_lock ? PSTR("cap:*") : PSTR("cap:."), false); + oled_write_P(led_state.scroll_lock ? PSTR("scr:*") : PSTR("scr:."), false); + + // Host Keyboard RGB backlight status + oled_write_P(PSTR("-----"), false); + oled_write_P(PSTR("Light"), false); + + static char led_buf[30]; + snprintf(led_buf, sizeof(led_buf) - 1, "RGB:%cM: %2d\nh: %2ds: %2dv: %2d\n", + rgblight_is_enabled() ? '*' : '.', (uint8_t)rgblight_get_mode(), + (uint8_t)(rgblight_get_hue() / RGBLIGHT_HUE_STEP), + (uint8_t)(rgblight_get_sat() / RGBLIGHT_SAT_STEP), + (uint8_t)(rgblight_get_val() / RGBLIGHT_VAL_STEP)); + oled_write(led_buf, false); +} +#endif diff --git a/keyboards/yampad/keymaps/via/readme.md b/keyboards/yampad/keymaps/via/readme.md new file mode 100644 index 00000000000..29ea4d3cddf --- /dev/null +++ b/keyboards/yampad/keymaps/via/readme.md @@ -0,0 +1,9 @@ +![Yampad Layout Image](https://i.imgur.com/QwrufEt.png) + +# VIA Yampad Layout + +This is the layout in the VIA enabled firmware. +Optional 2U zero key to suit your Yampad build. + +Compile: `make yampad:via` +Flash: `make yampad:via:flash` diff --git a/keyboards/yampad/keymaps/via/rules.mk b/keyboards/yampad/keymaps/via/rules.mk new file mode 100644 index 00000000000..9bf0baa6854 --- /dev/null +++ b/keyboards/yampad/keymaps/via/rules.mk @@ -0,0 +1,4 @@ +EXTRAKEY_ENABLE = no +LTO_ENABLE = yes +MOUSEKEY_ENABLE = no +VIA_ENABLE = yes diff --git a/keyboards/yampad/rules.mk b/keyboards/yampad/rules.mk index 5e14808709e..667620e93b1 100644 --- a/keyboards/yampad/rules.mk +++ b/keyboards/yampad/rules.mk @@ -7,18 +7,17 @@ BOOTLOADER = caterina # Build Options # change yes to no to disable # -BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = no # Audio control and System control -CONSOLE_ENABLE = no # Console for debug +AUDIO_ENABLE = no # Audio output +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite 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 +CONSOLE_ENABLE = no # Console for debug +DEBOUNCE_TYPE = sym_eager_pk +EXTRAKEY_ENABLE = no # Audio control and System control +LTO_ENABLE = yes # Link time optimise, reduce firmware size +MOUSEKEY_ENABLE = no # Mouse keys # 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 -AUDIO_ENABLE = no # Audio output -OLED_ENABLE = yes OLED_DRIVER = SSD1306 -DEBOUNCE_TYPE = sym_eager_pk +OLED_ENABLE = yes +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow diff --git a/keyboards/yanghu/unicorne/config.h b/keyboards/yanghu/unicorne/config.h new file mode 100644 index 00000000000..652afeb3b47 --- /dev/null +++ b/keyboards/yanghu/unicorne/config.h @@ -0,0 +1,76 @@ +/* Copyright 2021 Yang Hu + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 0x0204 +#define DEVICE_VER 0x0001 +#define MANUFACTURER yanghu +#define PRODUCT unicorne + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 12 + +#define MATRIX_COL_PINS \ + { A14, A15, B13, B14, B15, A13, A0, A1, A2, A3, A6, A7 } +#define MATRIX_ROW_PINS \ + { B9, B8, A10, A9 } + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +#define ENCODERS_PAD_A \ + { B10, B2 } +#define ENCODERS_PAD_B \ + { B12, B0 } + +/* Audio */ +#define AUDIO_PIN A8 +#define AUDIO_PWM_PAL_MODE 1 +#define AUDIO_PWM_DRIVER PWMD1 +#define AUDIO_PWM_CHANNEL 1 +#define AUDIO_STATE_TIMER GPTD4 + +/* RGB LED */ +#define RGB_DI_PIN B1 +#define RGBLED_NUM 8 +#define DRIVER_LED_TOTAL RGBLED_NUM +#define RGBLIGHT_EFFECT_BREATHING +#define RGBLIGHT_EFFECT_RAINBOW_MOOD +#define RGBLIGHT_EFFECT_RAINBOW_SWIRL +#define RGBLIGHT_EFFECT_SNAKE +#define RGBLIGHT_EFFECT_KNIGHT +#define RGBLIGHT_EFFECT_CHRISTMAS +#define RGBLIGHT_EFFECT_STATIC_GRADIENT +#define RGBLIGHT_EFFECT_RGB_TEST +#define RGBLIGHT_EFFECT_ALTERNATING +#define RGBLIGHT_EFFECT_TWINKLE + +#define WS2812_PWM_DRIVER PWMD3 +#define WS2812_PWM_CHANNEL 4 +#define WS2812_PWM_PAL_MODE 2 +#define WS2812_DMA_STREAM STM32_DMA1_STREAM2 +#define WS2812_DMA_CHANNEL 5 +#define WS2812_EXTERNAL_PULLUP + + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 diff --git a/keyboards/yanghu/unicorne/f411/halconf.h b/keyboards/yanghu/unicorne/f411/halconf.h new file mode 100644 index 00000000000..d28ae12fde5 --- /dev/null +++ b/keyboards/yanghu/unicorne/f411/halconf.h @@ -0,0 +1,27 @@ +/* Copyright 2020 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* PWM for AUDIO and RGB LED */ +#define HAL_USE_PWM TRUE +/* GPT and PAL for Audio */ +#define HAL_USE_GPT TRUE +#define HAL_USE_PAL TRUE +/* I2C for OLED display */ +#define HAL_USE_I2C TRUE + +#include_next diff --git a/keyboards/yanghu/unicorne/f411/mcuconf.h b/keyboards/yanghu/unicorne/f411/mcuconf.h new file mode 100644 index 00000000000..f4dc31bff28 --- /dev/null +++ b/keyboards/yanghu/unicorne/f411/mcuconf.h @@ -0,0 +1,34 @@ +/* Copyright 2020 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +/* TIM1 PWM used for audio driver */ +#undef STM32_PWM_USE_TIM1 +#define STM32_PWM_USE_TIM1 TRUE +/* TIM5 GPT used for audio driver */ +#undef STM32_GPT_USE_TIM4 +#define STM32_GPT_USE_TIM4 TRUE + +/* TIM3 used for WS2812 driver */ +#undef STM32_PWM_USE_TIM3 +#define STM32_PWM_USE_TIM3 TRUE + +/* I2C used for OLED display */ +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE diff --git a/keyboards/yanghu/unicorne/f411/rules.mk b/keyboards/yanghu/unicorne/f411/rules.mk new file mode 100644 index 00000000000..b32a8b7f5bd --- /dev/null +++ b/keyboards/yanghu/unicorne/f411/rules.mk @@ -0,0 +1,5 @@ +# MCU name +MCU = STM32F411 + +# Bootloader selection +BOOTLOADER = stm32-dfu diff --git a/keyboards/yanghu/unicorne/glcdfont.c b/keyboards/yanghu/unicorne/glcdfont.c new file mode 100644 index 00000000000..24c06471ff3 --- /dev/null +++ b/keyboards/yanghu/unicorne/glcdfont.c @@ -0,0 +1,247 @@ +/* Copyright 2021 Yang Hu + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 "progmem.h" + +// clang-format off +const unsigned char font[] PROGMEM = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00, + 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00, + 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, + 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00, + 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00, + 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, + 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, + 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, + 0x00, 0x18, 0x24, 0x18, 0x00, 0x00, + 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00, + 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00, + 0x26, 0x29, 0x79, 0x29, 0x26, 0x00, + 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00, + 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00, + 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00, + 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00, + 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00, + 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00, + 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00, + 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, + 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00, + 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, + 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00, + 0x08, 0x04, 0x7E, 0x04, 0x08, 0x00, + 0x10, 0x20, 0x7E, 0x20, 0x10, 0x00, + 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00, + 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00, + 0x1E, 0x10, 0x10, 0x10, 0x10, 0x00, + 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, + 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, + 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, + 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, + 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00, + 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00, + 0x23, 0x13, 0x08, 0x64, 0x62, 0x00, + 0x36, 0x49, 0x56, 0x20, 0x50, 0x00, + 0x00, 0x08, 0x07, 0x03, 0x00, 0x00, + 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, + 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, + 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, + 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, + 0x00, 0x80, 0x70, 0x30, 0x00, 0x00, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, + 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, + 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, + 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, + 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00, + 0x72, 0x49, 0x49, 0x49, 0x46, 0x00, + 0x21, 0x41, 0x49, 0x4D, 0x33, 0x00, + 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00, + 0x27, 0x45, 0x45, 0x45, 0x39, 0x00, + 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00, + 0x41, 0x21, 0x11, 0x09, 0x07, 0x00, + 0x36, 0x49, 0x49, 0x49, 0x36, 0x00, + 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00, + 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x00, 0x40, 0x34, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x14, 0x22, 0x41, 0x00, + 0x14, 0x14, 0x14, 0x14, 0x14, 0x00, + 0x00, 0x41, 0x22, 0x14, 0x08, 0x00, + 0x02, 0x01, 0x59, 0x09, 0x06, 0x00, + 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00, + 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00, + 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00, + 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00, + 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00, + 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00, + 0x7F, 0x09, 0x09, 0x09, 0x01, 0x00, + 0x3E, 0x41, 0x41, 0x51, 0x73, 0x00, + 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, + 0x00, 0x41, 0x7F, 0x41, 0x00, 0x00, + 0x20, 0x40, 0x41, 0x3F, 0x01, 0x00, + 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00, + 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00, + 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00, + 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00, + 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, + 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00, + 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00, + 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00, + 0x26, 0x49, 0x49, 0x49, 0x32, 0x00, + 0x03, 0x01, 0x7F, 0x01, 0x03, 0x00, + 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00, + 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00, + 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00, + 0x63, 0x14, 0x08, 0x14, 0x63, 0x00, + 0x03, 0x04, 0x78, 0x04, 0x03, 0x00, + 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00, + 0x00, 0x7F, 0x41, 0x41, 0x41, 0x00, + 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, + 0x00, 0x41, 0x41, 0x41, 0x7F, 0x00, + 0x04, 0x02, 0x01, 0x02, 0x04, 0x00, + 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, + 0x00, 0x03, 0x07, 0x08, 0x00, 0x00, + 0x20, 0x54, 0x54, 0x78, 0x40, 0x00, + 0x7F, 0x28, 0x44, 0x44, 0x38, 0x00, + 0x38, 0x44, 0x44, 0x44, 0x28, 0x00, + 0x38, 0x44, 0x44, 0x28, 0x7F, 0x00, + 0x38, 0x54, 0x54, 0x54, 0x18, 0x00, + 0x00, 0x08, 0x7E, 0x09, 0x02, 0x00, + 0x58, 0xA4, 0xA4, 0x9C, 0x78, 0x00, + 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00, + 0x00, 0x44, 0x7D, 0x40, 0x00, 0x00, + 0x20, 0x40, 0x40, 0x3D, 0x00, 0x00, + 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00, + 0x00, 0x41, 0x7F, 0x40, 0x00, 0x00, + 0x7C, 0x04, 0x78, 0x04, 0x78, 0x00, + 0x7C, 0x08, 0x04, 0x04, 0x78, 0x00, + 0x38, 0x44, 0x44, 0x44, 0x38, 0x00, + 0xFC, 0x18, 0x24, 0x24, 0x18, 0x00, + 0x18, 0x24, 0x24, 0x18, 0xFC, 0x00, + 0x7C, 0x08, 0x04, 0x04, 0x08, 0x00, + 0x48, 0x54, 0x54, 0x54, 0x24, 0x00, + 0x04, 0x04, 0x3F, 0x44, 0x24, 0x00, + 0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00, + 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00, + 0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00, + 0x44, 0x28, 0x10, 0x28, 0x44, 0x00, + 0x4C, 0x10, 0x10, 0x10, 0x7C, 0x00, + 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, + 0x00, 0x08, 0x36, 0x41, 0x00, 0x00, + 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, + 0x00, 0x41, 0x36, 0x08, 0x00, 0x00, + 0x02, 0x01, 0x02, 0x04, 0x02, 0x00, + 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, + 0x00, 0x00, 0xF0, 0xF8, 0x9C, 0x0C, + 0x0C, 0x1C, 0xF8, 0xE0, 0x00, 0x00, + 0x00, 0xE0, 0xF8, 0x1C, 0x0C, 0x0C, + 0x9C, 0xF8, 0x60, 0x00, 0x00, 0x00, + 0x00, 0x0C, 0x0C, 0x0C, 0x3C, 0xF8, + 0xC0, 0x00, 0x00, 0x00, 0x00, 0x0C, + 0x0C, 0x0C, 0x0C, 0x0C, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0xC0, 0xE0, + 0xF0, 0xF8, 0xFC, 0xFC, 0xF8, 0xF0, + 0xE0, 0xC0, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xC0, 0xE0, 0x70, 0x38, + 0x1C, 0x0C, 0x06, 0x86, 0x86, 0x86, + 0x86, 0x86, 0xC6, 0xC6, 0x0C, 0x1C, + 0x38, 0xF0, 0xE0, 0xC0, 0x00, 0x00, + 0x00, 0x60, 0xF8, 0x0C, 0x24, 0xE6, + 0xE6, 0x24, 0x06, 0x06, 0x24, 0xE6, + 0xE6, 0x24, 0x06, 0x06, 0x24, 0xE6, + 0xE6, 0x24, 0x0C, 0xF8, 0x60, 0x00, + 0x00, 0xE0, 0xF0, 0x18, 0x0C, 0x04, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x86, 0x86, 0xC6, 0x46, 0xE6, 0x66, + 0x04, 0x0C, 0x18, 0xF0, 0xE0, 0x00, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xFE, 0x8A, 0x92, 0xA2, 0xC2, + 0xFE, 0xC2, 0xA2, 0x92, 0x0A, 0x02, + 0x82, 0xE2, 0x7A, 0x5A, 0x42, 0x42, + 0x42, 0xC2, 0xC2, 0x42, 0xFE, 0x00, + 0xFE, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x82, 0xE2, 0xFA, 0x7A, + 0xFA, 0xE2, 0x82, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0xFE, 0x00, + 0x00, 0x00, 0x00, 0x81, 0x81, 0xC3, + 0xC3, 0xC3, 0xFF, 0xFF, 0xC3, 0xC3, + 0xC3, 0xFF, 0xFF, 0xC3, 0xC3, 0xC3, + 0x81, 0x81, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x0F, 0x3C, 0xF0, 0xC0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x06, 0x07, 0x07, 0x07, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0x07, 0x07, 0x07, 0x06, 0x00, + 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x7F, 0xFF, 0xC1, 0xC1, + 0xC1, 0xC1, 0xFF, 0x7F, 0xE0, 0x80, + 0x80, 0xC0, 0xFF, 0x7F, 0x00, 0x00, + 0x00, 0xDB, 0xFF, 0x00, 0x00, 0x1F, + 0x3F, 0x70, 0xE0, 0xC0, 0xC0, 0xFF, + 0xFF, 0xC0, 0xC0, 0xE0, 0x70, 0x3F, + 0x1F, 0x00, 0x00, 0xFF, 0xDB, 0x00, + 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, + 0xC0, 0xF8, 0xFE, 0xFF, 0xF9, 0xF1, + 0x61, 0x60, 0x3C, 0x07, 0x01, 0x00, + 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, + 0x00, 0x00, 0xC0, 0xF0, 0x3C, 0x0E, + 0x0E, 0x3C, 0xF0, 0xC0, 0x00, 0x00, + 0x00, 0xFF, 0x48, 0x44, 0xC2, 0xE1, + 0x7F, 0x51, 0xC2, 0xC4, 0x4C, 0x06, + 0x03, 0x0F, 0x38, 0x60, 0xC0, 0xE0, + 0x38, 0x0F, 0x00, 0x00, 0xFF, 0x00, + 0xFF, 0x00, 0x00, 0x00, 0x80, 0xE0, + 0xF8, 0x7E, 0x67, 0x63, 0x60, 0x60, + 0x60, 0x63, 0x67, 0x7E, 0xF8, 0xE0, + 0x80, 0x00, 0x00, 0x00, 0xFF, 0x00, + 0x00, 0x00, 0x0F, 0x1F, 0x39, 0x30, + 0x30, 0x18, 0x1F, 0x07, 0x00, 0x00, + 0x00, 0x07, 0x1F, 0x38, 0x30, 0x30, + 0x39, 0x1F, 0x06, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x0F, + 0x3C, 0x30, 0x30, 0x30, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, + 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, + 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x07, 0x0E, + 0x1C, 0x38, 0x30, 0x30, 0x30, 0x30, + 0x30, 0x30, 0x38, 0x18, 0x18, 0x01, + 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x06, 0x1F, 0x30, 0x20, 0x60, + 0x60, 0x20, 0x64, 0x64, 0x26, 0x67, + 0x67, 0x26, 0x64, 0x64, 0x20, 0x60, + 0x60, 0x20, 0x30, 0x1F, 0x06, 0x00, + 0x00, 0x07, 0x0F, 0x18, 0x30, 0x23, + 0x63, 0x61, 0x61, 0x60, 0x60, 0x60, + 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, + 0x20, 0x30, 0x18, 0x0F, 0x07, 0x00, + 0x0C, 0x0F, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x0F, 0x0C, + 0x00, 0x7F, 0x60, 0x71, 0x53, 0x5E, + 0x4C, 0x4E, 0x5B, 0x50, 0x60, 0x70, + 0x58, 0x4C, 0x46, 0x43, 0x41, 0x43, + 0x4E, 0x78, 0x70, 0x60, 0x7F, 0x00, + 0x7F, 0x40, 0x4C, 0x4E, 0x4F, 0x43, + 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, + 0x40, 0x40, 0x40, 0x40, 0x40, 0x43, + 0x4F, 0x4E, 0x4C, 0x40, 0x7F, 0x00, +}; +// clang-format on diff --git a/keyboards/yanghu/unicorne/info.json b/keyboards/yanghu/unicorne/info.json new file mode 100644 index 00000000000..995bed8a03b --- /dev/null +++ b/keyboards/yanghu/unicorne/info.json @@ -0,0 +1,62 @@ +{ + "keyboard_name": "Unicorne", + "url": "https://github.com/yanghu/unicorne", + "maintainer": "yanghu", + "layouts": { + "LAYOUT_unicorne": { + "layout": [ + {"label":"Tab", "x":0, "y":0.8}, + {"label":"Q", "x":1, "y":0.8}, + {"label":"W", "x":2, "y":0.1}, + {"label":"E", "x":3, "y":0}, + {"label":"R", "x":4, "y":0.1}, + {"label":"T", "x":5, "y":0.2}, + + {"label":"Y", "x":9, "y":0.2}, + {"label":"U", "x":10, "y":0.1}, + {"label":"I", "x":11, "y":0}, + {"label":"O", "x":12, "y":0.1}, + {"label":"P", "x":13, "y":0.8}, + {"label":"Back Space", "x":14, "y":0.8}, + + {"label":"Ctrl / Esc", "x":0, "y":1.8}, + {"label":"A", "x":1, "y":1.8}, + {"label":"S", "x":2, "y":1.1}, + {"label":"D", "x":3, "y":1}, + {"label":"F", "x":4, "y":1.1}, + {"label":"G", "x":5, "y":1.2}, + + {"label":"H", "x":9, "y":1.2}, + {"label":"J", "x":10, "y":1.1}, + {"label":"K", "x":11, "y":1}, + {"label":"L", "x":12, "y":1.1}, + {"label":";", "x":13, "y":1.8}, + {"label":"'", "x":14, "y":1.8}, + + {"label":"Shift", "x":0, "y":2.8}, + {"label":"Z", "x":1, "y":2.8}, + {"label":"X", "x":2, "y":2.1}, + {"label":"C", "x":3, "y":2}, + {"label":"V", "x":4, "y":2.1}, + {"label":"B", "x":5, "y":2.2}, + + {"label":"N", "x":9, "y":2.2}, + {"label":"M", "x":10, "y":2.1}, + {"label":",", "x":11, "y":2}, + {"label":".", "x":12, "y":2.1}, + {"label":"/", "x":13, "y":2.8}, + {"label":"Shift / Enter", "x":14, "y":2.8}, + + {"label":"Ctrl", "x":3, "y":3.7}, + {"label":"Alt", "x":4, "y":3.7}, + {"label":"Lower", "x":5, "y":3.7}, + {"label":"Enter", "x":6, "y":3.2, "h":1.5}, + + {"label":"Backspace", "x":8, "y":3.2, "h":1.5}, + {"label":"Space", "x":9, "y":3.7}, + {"label":"Raise", "x":10, "y":3.7}, + {"label":"RGUI", "x":11, "y":3.7} + ] + } + } +} diff --git a/keyboards/yanghu/unicorne/keymaps/default/config.h b/keyboards/yanghu/unicorne/keymaps/default/config.h new file mode 100644 index 00000000000..e7ee9814efe --- /dev/null +++ b/keyboards/yanghu/unicorne/keymaps/default/config.h @@ -0,0 +1,22 @@ +/* Copyright 2021 Yang Hu + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 OLED_FONT_H "keyboards/yanghu/unicorne/glcdfont.c" +#define ENCODER_RESOLUTION 4 +#define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_BREATHING +#define RGBLIGHT_DEFAULT_COLOR HSV_BLUE diff --git a/keyboards/yanghu/unicorne/keymaps/default/keymap.c b/keyboards/yanghu/unicorne/keymaps/default/keymap.c new file mode 100644 index 00000000000..26fb0142609 --- /dev/null +++ b/keyboards/yanghu/unicorne/keymaps/default/keymap.c @@ -0,0 +1,92 @@ +/* Copyright 2021 Yang Hu + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 "layers.h" + +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) +#define ADJUST MO(_ADJUST) + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_split_3x6_4( + 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, 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, RSFT_T(KC_ENT), + KC_LCTL, KC_LALT, LOWER, KC_ENT, KC_BSPC, KC_SPC, RAISE, KC_RGUI + ), + + [_LOWER] = LAYOUT_split_3x6_4( + _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, + _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_GRV, KC_TILD, + _______, KC_ESC, KC_LGUI, KC_LALT, KC_CAPS, KC_DQUO, KC_HOME, KC_END, KC_PGUP, KC_PGDN, KC_PSCR, RSFT_T(KC_SPC), + _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [_RAISE] = LAYOUT_split_3x6_4( + _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, + _______, KC_ESC, KC_RGUI, KC_RALT, KC_CAPS, KC_QUOT, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [_ADJUST] = LAYOUT_split_3x6_4( + RGB_VAI, RGB_SAI, RGB_HUI, RGB_MOD, XXXXXXX, RGB_TOG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + RGB_VAD, RGB_SAD, RGB_HUD, RGB_RMOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; +// clang-format on +layer_state_t layer_state_set_user(layer_state_t state) { return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); } + +// Left encoder scrolls the mousewheel. Right encoder adjusts underglow hue. +bool encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { + if (clockwise) { +#ifdef MOUSEKEY_ENABLE + tap_code(KC_MS_WH_DOWN); +#else + tap_code(KC_PGDN); +#endif + } else { +#ifdef MOUSEKEY_ENABLE + tap_code(KC_MS_WH_UP); +#else + tap_code(KC_PGUP); +#endif + } + } else { // index = 1: right encoder + if (clockwise) { +#ifdef RGB_MATRIX_ENABLE + rgb_matrix_step(); +#else + rgblight_increase_hue_noeeprom(); +#endif + } else { +#ifdef RGB_MATRIX_ENABLE + rgb_matrix_step_reverse(); +#else + rgblight_decrease_hue_noeeprom(); +#endif + } + } + return false; +} + +// Set underglow color to blue. +void keyboard_post_init_user(void) { rgblight_sethsv_noeeprom(RGBLIGHT_DEFAULT_COLOR); } diff --git a/keyboards/yanghu/unicorne/keymaps/default/layers.h b/keyboards/yanghu/unicorne/keymaps/default/layers.h new file mode 100644 index 00000000000..0505d4956ba --- /dev/null +++ b/keyboards/yanghu/unicorne/keymaps/default/layers.h @@ -0,0 +1,24 @@ +/* Copyright 2021 Yang Hu + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _LOWER, + _RAISE, + _ADJUST, +}; diff --git a/keyboards/yanghu/unicorne/keymaps/default/oled.c b/keyboards/yanghu/unicorne/keymaps/default/oled.c new file mode 100644 index 00000000000..417f573ff03 --- /dev/null +++ b/keyboards/yanghu/unicorne/keymaps/default/oled.c @@ -0,0 +1,67 @@ +/* Copyright 2021 Yang Hu + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 OLED_ENABLE +# include QMK_KEYBOARD_H +# include "layers.h" + +// Some characters position: +// alt: 84 85 86/a..../c... +// shift:87 88 89/a.../c... +// ctrl: b6 b6/d.../ +// capslock: 9c-9f/b.../d... +// numlock: 98-9b/b.../d... +// navigation logo: 92-95/b2.../d2... +// symbol logo: 8a-8d/aa..../ca.... +// qmk logos; 8e-91/ae..../ce.... +void oled_render_layer(void) { + /* static const char PROGMEM cmd_logo[] = { */ + /* 0x80, 0x81, 0x82, 0x83, 10, */ + /* 0xa0, 0xa1, 0xa2, 0xa3, 10, */ + /* 0xc0, 0xc1, 0xc2, 0xc3, 10, */ + /* 0}; */ + // clang-format off + static const char PROGMEM numlock_logo[] = { + 0x98, 0x99, 0x9a, 0x9b, 10, + 0xb8, 0xb9, 0xba, 0xbb, 10, + 0xd8, 0xd9, 0xda, 0xdb, 10, 0}; + static const char PROGMEM symbol_logo[] = { + 0x8a, 0x8b, 0x8c, 0x8d, 10, + 0xaa, 0xab, 0xac, 0xad, 10, + 0xca, 0xcb, 0xcc, 0xcd, 10, 0}; + static const char PROGMEM qmk_logo[] = { + 0x8e, 0x8f, 0x90, 0x91, 10, + 0xae, 0xaf, 0xb0, 0xb1, 10, + 0xce, 0xcf, 0xd0, 0xd1, 10, 0}; + // clang-format on + if (IS_LAYER_ON(_LOWER)) { + oled_write_P(symbol_logo, false); + } else if (IS_LAYER_ON(_RAISE)) { + oled_write_P(numlock_logo, false); + } else if (IS_LAYER_ON(_BASE)) { + oled_write_P(qmk_logo, false); + } else { + if (IS_LAYER_ON(_ADJUST)) { + oled_write_ln("ADJ", false); + } else { + oled_write_ln("?????", false); + } + oled_write_ln(" ", false); + oled_write_ln(" ", false); + oled_write_ln(" ", false); + } +} + +#endif diff --git a/keyboards/yanghu/unicorne/keymaps/default/readme.md b/keyboards/yanghu/unicorne/keymaps/default/readme.md new file mode 100644 index 00000000000..b6ce9e42375 --- /dev/null +++ b/keyboards/yanghu/unicorne/keymaps/default/readme.md @@ -0,0 +1,10 @@ +![keymap](https://imgur.com/48cFzA5.jpg) + +# Default Unicorne Layout + +This is the default layout for Unicorne. The "lower" layer consists of symbols +and navigation, while "raises' has numbers, some other symbols and function +keys. + +Press `lower` and `raise` together activates `adjust` layer, with RGB controls, +as well as access to reset/bootloader. diff --git a/keyboards/yanghu/unicorne/keymaps/default/rules.mk b/keyboards/yanghu/unicorne/keymaps/default/rules.mk new file mode 100644 index 00000000000..dbfa81b6ce0 --- /dev/null +++ b/keyboards/yanghu/unicorne/keymaps/default/rules.mk @@ -0,0 +1 @@ +SRC += oled.c diff --git a/keyboards/yanghu/unicorne/readme.md b/keyboards/yanghu/unicorne/readme.md new file mode 100644 index 00000000000..3da5e97bf4f --- /dev/null +++ b/keyboards/yanghu/unicorne/readme.md @@ -0,0 +1,17 @@ +# Unicorne + +![Unicorne](https://imgur.com/g1nN3b4h.jpg) + +A compact 40% (3x6\_4) single-piece angled ortholinear ergo keyboard kit inspired by crkbd, Kyria, Ferris and Reviung41. Features OLED display, audio buzzer, RGB LED underglow as well as encoders. + +* Keyboard Maintainer: [Yang Hu](https://github.com/yanghu) +* Hardware Supported: Unicorne PCB 1.0 +* Hardware Availability: Open source design at https://github.com/yanghu/unicorne + +To enter bootloader, long press the reset button for 3-5 seconds then release. More details can be found at [keyboard wiki](https://github.com/yanghu/unicorne/wiki/Build-guide#testing-the-board). + +Make example for this keyboard (after setting up your build environment): + + make yanghu/unicorne: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/yanghu/unicorne/rules.mk b/keyboards/yanghu/unicorne/rules.mk new file mode 100644 index 00000000000..17296a9bc2d --- /dev/null +++ b/keyboards/yanghu/unicorne/rules.mk @@ -0,0 +1,26 @@ +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = yes # Audio output +ENCODER_ENABLE = yes +OLED_ENABLE = yes +OLED_DRIVER = SSD1306 + +WS2812_DRIVER = pwm +AUDIO_DRIVER = pwm_hardware + +RGB_MATRIX_ENABLE = no # Do not enable with RGBLIGHT +RGB_MATRIX_DRIVER = WS2812 + +DEFAULT_FOLDER = yanghu/unicorne/f411 diff --git a/keyboards/yanghu/unicorne/unicorne.c b/keyboards/yanghu/unicorne/unicorne.c new file mode 100644 index 00000000000..27b87253df2 --- /dev/null +++ b/keyboards/yanghu/unicorne/unicorne.c @@ -0,0 +1,148 @@ +/* Copyright 2021 Yang Hu + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 "unicorne.h" + + +// Custom i2c init to enable internal pull up resistor for i2c. +void i2c_init(void) { + static bool is_initialised = false; + if (!is_initialised) { + is_initialised = true; + + // Try releasing special pins for a short time + palSetPadMode(I2C1_SCL_BANK, I2C1_SCL, PAL_MODE_INPUT); + palSetPadMode(I2C1_SDA_BANK, I2C1_SDA, PAL_MODE_INPUT); + + chThdSleepMilliseconds(10); + // Use internal pull up since we do not have pull up on i2c pins in v1 design. + palSetPadMode(I2C1_SCL_BANK, I2C1_SCL, PAL_MODE_ALTERNATE(I2C1_SCL_PAL_MODE) | PAL_STM32_OTYPE_OPENDRAIN | PAL_STM32_PUPDR_PULLUP); + palSetPadMode(I2C1_SDA_BANK, I2C1_SDA, PAL_MODE_ALTERNATE(I2C1_SDA_PAL_MODE) | PAL_STM32_OTYPE_OPENDRAIN | PAL_STM32_PUPDR_PULLUP); + } +} + +// LED matrix +// physical location +// 2 3 4 5 +// +// 1 6 +// 0 7 +#ifdef RGB_MATRIX_ENABLE +// clang-format off +led_config_t g_led_config = {{ + // Key Matrix to LED Index + // Since we only have 8 LEDs, map the keys near them to the same LED. + {2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5}, + {2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5}, + {1, 1, 1, 0, 0, 0, 7, 7, 7, 6, 6, 6}, + {NO_LED, NO_LED, NO_LED, 0, 0, 0, 7, 7, 7, NO_LED, NO_LED, NO_LED}, +}, {// LED Index to Physical Position + {94, 60}, + {18, 44}, + {8, 10}, + {94, 10}, + {130,10}, + {216, 10}, + {208, 44}, + {130, 60} +}, {// LED Index to Flag + LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, + LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL +}}; +// clang-format on +#endif + +#ifdef OLED_ENABLE +// OLED shared code +// The oled is vertical. Need to rotate 270 degrees. +__attribute__((weak)) oled_rotation_t oled_init_user(oled_rotation_t rotation) { return OLED_ROTATION_270; } + +// Render layer status on OLED. To be re-implemented by keymaps since layers are +// defined there. +__attribute__((weak)) void oled_render_layer(void) { return; } + +// Oneshot mods status +uint8_t osmods; + +__attribute__((weak)) void oled_render_mods(void) { + static const char PROGMEM ctrl[] = {0xb6, 0xb7, 10, 0xd6, 0xd7, 10, 0x20, 0x20, 10, 0}; + static const char PROGMEM shift[] = {0x87, 0x88, 0x89, 10, 0xa7, 0xa8, 0xa9, 10, 0xc7, 0xc8, 0xc9, 10, 0}; + static const char PROGMEM alt[] = {0x84, 0x85, 0x86, 10, 0xa4, 0xa5, 0xa6, 10, 0xc4, 0xc5, 0xc6, 10, 0}; + static const char PROGMEM ctrl_alt[] = {0xb6, 0xb7, 0x84, 0x85, 0x86, 0xd6, 0xd7, 0xa4, 0xa5, 0xa6, 0x20, 0x20, 0xc4, 0xc5, 0xc6, 0}; + + static const char PROGMEM ctrl_shift[] = {0xb6, 0xb7, 0x87, 0x88, 0x89, 0xd6, 0xd7, 0xa7, 0xa8, 0xa9, 0x20, 0x20, 0xc7, 0xc8, 0xc9, 0}; + static const char PROGMEM c_a_shift[] = {0xb6, 0xb7, 0x84, 0x85, 0x86, 0xd6, 0xd7, 0xa4, 0xa5, 0xa6, 0x20, 0x20, 0xc4, 0xc5, 0xc6, 0x87, 0x88, 0x89, 10, 0xa7, 0xa8, 0xa9, 10, 0xc7, 0xc8, 0xc9, 10, 0}; + // Now check mod status and render. + static uint8_t mods; + mods = get_mods() | osmods; + if ((mods & MOD_MASK_CTRL) && (mods & MOD_MASK_ALT) && (mods & MOD_MASK_SHIFT)) { + oled_write_P(c_a_shift, false); + } else if ((mods & MOD_MASK_CTRL) && (mods & MOD_MASK_ALT)) { + oled_write_P(ctrl_alt, false); + } else if ((mods & MOD_MASK_CTRL) && (mods & MOD_MASK_SHIFT)) { + oled_write_P(ctrl_shift, false); + } else if ((mods & MOD_MASK_SHIFT) && (mods & MOD_MASK_ALT)) { + oled_write_P(alt, false); + oled_write_P(shift, false); + } else if (mods & MOD_MASK_CTRL) { + oled_write_P(ctrl, false); + } else if (mods & MOD_MASK_ALT) { + oled_write_P(alt, false); + } else if (mods & MOD_MASK_SHIFT) { + oled_write_P(shift, false); + } else { + for (int i = 0; i < 6; ++i) { + oled_write_ln(" ", false); + } + } + return; +} + +void oneshot_mods_changed_user(uint8_t mods) { osmods = mods; } + +// Call this from "led_update_user" and use `led_state.caps_lock` to check +// the status of capslock. +__attribute__((weak)) void oled_render_capslock(bool caps_on) { + static const char PROGMEM capslock_logo[] = {0x9c, 0x9d, 0x9e, 0x9f, 10, 0xbc, 0xbd, 0xbe, 0xbf, 10, 0xdc, 0xdd, 0xde, 0xdf, 10, 0}; + if (caps_on) { + oled_write_P(capslock_logo, false); + } else { + for (int i = 0; i < 3; ++i) { + oled_write_ln(" ", false); + } + } +} + +char keylog_str[24] = {}; + +const char code_to_name[60] = {' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', 'R', 'E', 'B', 'T', '_', '-', '=', '[', ']', '\\', '#', ';', '\'', '`', ',', '.', '/', ' ', ' ', ' '}; + +void set_keylog(uint16_t keycode, keyrecord_t *record) { + if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) || (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)) { + keycode = keycode & 0xFF; + } +} + +__attribute__((weak)) void oled_render_keylog(void) { oled_write(keylog_str, false); } + +// Keymaps can override this function +__attribute__((weak)) void oled_task_user(void) { + /* oled_render_keylog(); */ + oled_render_layer(); + oled_render_mods(); + led_t led_state = host_keyboard_led_state(); + oled_render_capslock(led_state.caps_lock); +} +#endif diff --git a/keyboards/yanghu/unicorne/unicorne.h b/keyboards/yanghu/unicorne/unicorne.h new file mode 100644 index 00000000000..f0b5685f1d8 --- /dev/null +++ b/keyboards/yanghu/unicorne/unicorne.h @@ -0,0 +1,50 @@ +/* Copyright 2021 Yang Hu + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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" + +#ifdef OLED_ENABLE +void oled_render_capslock(bool caps_on); +void oled_render_mods(void); +void oled_render_keylog(void); +#endif +/* 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. + */ + +// clang-format off +#define LAYOUT_split_3x6_4( \ + 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, \ + K30, K31, K32, K33, K34, K35, K36, K37 \ +) \ +{ \ + { 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, K30, K31, K32, K33, K34, K35, K36, K37, KC_NO, KC_NO} \ +} +// clang-format on + +#define LAYOUT LAYOUT_split_3x6_4 diff --git a/keyboards/yd68/config.h b/keyboards/yd68/config.h index 0a2b93e617a..a501a984766 100644 --- a/keyboards/yd68/config.h +++ b/keyboards/yd68/config.h @@ -102,54 +102,6 @@ along with this program. If not, see . */ //#define FORCE_NKRO -/* - * Magic Key Options - * - * Magic keys are hotkey commands that allow control over firmware functions of - * the keyboard. They are best used in combination with the HID Listen program, - * found here: https://www.pjrc.com/teensy/hid_listen.html - * - * The options below allow the magic key functionality to be changed. This is - * useful if your keyboard/keypad is missing keys and you want magic key support. - * - */ - -/* control how magic key switches layers */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false - -/* override magic key keymap */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM -//#define MAGIC_KEY_HELP1 H -//#define MAGIC_KEY_HELP2 SLASH -//#define MAGIC_KEY_DEBUG D -//#define MAGIC_KEY_DEBUG_MATRIX X -//#define MAGIC_KEY_DEBUG_KBD K -//#define MAGIC_KEY_DEBUG_MOUSE M -//#define MAGIC_KEY_VERSION V -//#define MAGIC_KEY_STATUS S -//#define MAGIC_KEY_CONSOLE C -//#define MAGIC_KEY_LAYER0_ALT1 ESC -//#define MAGIC_KEY_LAYER0_ALT2 GRAVE -//#define MAGIC_KEY_LAYER0 0 -//#define MAGIC_KEY_LAYER1 1 -//#define MAGIC_KEY_LAYER2 2 -//#define MAGIC_KEY_LAYER3 3 -//#define MAGIC_KEY_LAYER4 4 -//#define MAGIC_KEY_LAYER5 5 -//#define MAGIC_KEY_LAYER6 6 -//#define MAGIC_KEY_LAYER7 7 -//#define MAGIC_KEY_LAYER8 8 -//#define MAGIC_KEY_LAYER9 9 -//#define MAGIC_KEY_BOOTLOADER PAUSE -//#define MAGIC_KEY_LOCK CAPS -//#define MAGIC_KEY_EEPROM E -//#define MAGIC_KEY_NKRO N -//#define MAGIC_KEY_SLEEP_LED Z - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/yd68/rules.mk b/keyboards/yd68/rules.mk index 05f4a7157a1..b43693882f2 100644 --- a/keyboards/yd68/rules.mk +++ b/keyboards/yd68/rules.mk @@ -18,5 +18,4 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = no # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output diff --git a/keyboards/yeehaw/rules.mk b/keyboards/yeehaw/rules.mk index ae2fa58f48e..34c43877971 100644 --- a/keyboards/yeehaw/rules.mk +++ b/keyboards/yeehaw/rules.mk @@ -16,5 +16,4 @@ 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 RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -UNICODE_ENABLE = no # Unicode ENCODER_ENABLE = yes diff --git a/keyboards/yncognito/batpad/batpad.h b/keyboards/yncognito/batpad/batpad.h index 1cc79edf814..e3391881bc6 100644 --- a/keyboards/yncognito/batpad/batpad.h +++ b/keyboards/yncognito/batpad/batpad.h @@ -24,6 +24,3 @@ { K00, K01, K02, K03 }, \ { K10, K11, K12, K13 }, \ } - -// generated by KBFirmware JSON to QMK Parser -// https://noroadsleft.github.io/kbf_qmk_converter/ diff --git a/keyboards/yncognito/batpad/info.json b/keyboards/yncognito/batpad/info.json index 75848d14080..393fff59475 100644 --- a/keyboards/yncognito/batpad/info.json +++ b/keyboards/yncognito/batpad/info.json @@ -16,5 +16,4 @@ ] } } - ,"meta": "https://noroadsleft.github.io/kbf_qmk_converter/" } diff --git a/keyboards/yncognito/batpad/rules.mk b/keyboards/yncognito/batpad/rules.mk index 0863a93c52e..ab2800ba340 100644 --- a/keyboards/yncognito/batpad/rules.mk +++ b/keyboards/yncognito/batpad/rules.mk @@ -19,8 +19,4 @@ NKRO_ENABLE = yes # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGB_MATRIX_ENABLE = yes RGB_MATRIX_DRIVER = WS2812 -UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output - -# generated by KBFirmware JSON to QMK Parser -# https://noroadsleft.github.io/kbf_qmk_converter/ diff --git a/keyboards/yosino58/rules.mk b/keyboards/yosino58/rules.mk index 97b37ba1d3b..8ba43d1db0b 100644 --- a/keyboards/yosino58/rules.mk +++ b/keyboards/yosino58/rules.mk @@ -16,7 +16,6 @@ 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 = no # Enable keyboard backlight functionality AUDIO_ENABLE = no # Audio output -UNICODE_ENABLE = no # Unicode RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. SUBPROJECT_rev1 = no USE_I2C = yes diff --git a/keyboards/yurei/config.h b/keyboards/yurei/config.h index c3527956aeb..57877dc8faa 100644 --- a/keyboards/yurei/config.h +++ b/keyboards/yurei/config.h @@ -121,59 +121,6 @@ along with this program. If not, see . */ //#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. diff --git a/keyboards/yushakobo/quick7/config.h b/keyboards/yushakobo/quick7/config.h index fdff5d92ece..01cc0f0a874 100644 --- a/keyboards/yushakobo/quick7/config.h +++ b/keyboards/yushakobo/quick7/config.h @@ -121,59 +121,6 @@ along with this program. If not, see . */ //#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. diff --git a/keyboards/z12/config.h b/keyboards/z12/config.h new file mode 100644 index 00000000000..7f897b795d8 --- /dev/null +++ b/keyboards/z12/config.h @@ -0,0 +1,53 @@ +/* Copyright 2020 Sergi Meseguer + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 0x7A74 +#define PRODUCT_ID 0x0001 +#define DEVICE_VER 0x0001 +#define MANUFACTURER zigotica +#define PRODUCT z12 + +#define ENCODERS_PAD_A { B4, B2 } +#define ENCODERS_PAD_B { B5, B6 } +#define ENCODER_DIRECTION_FLIP + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 4 + +/*Keyboard Matrix Assignments */ + +#define DIRECT_PINS { \ + { NO_PIN, E6, C6, NO_PIN }, \ + { D2, D7, D4, D3 }, \ + { F7, B1, B3, NO_PIN }, \ + { F6, F5, F4, 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 diff --git a/keyboards/z12/info.json b/keyboards/z12/info.json new file mode 100644 index 00000000000..3ae8937571e --- /dev/null +++ b/keyboards/z12/info.json @@ -0,0 +1,26 @@ +{ + "keyboard_name": "z12", + "url": "https://github.com/zigotica/mechanical-keyboards/tree/main/z12", + "maintainer": "@zigotica", + "layouts": { + "LAYOUT": { + "layout": [ + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + + {"x": 0, "y": 0.5}, + {"x": 1, "y": 1}, + {"x": 2, "y": 1}, + {"x": 3, "y": 0.5}, + + {"x": 0.5, "y": 2}, + {"x": 1.5, "y": 2}, + {"x": 2.5, "y": 2}, + + {"x": 0.5, "y": 3}, + {"x": 1.5, "y": 3}, + {"x": 2.5, "y": 3}, + ] + } + } +} diff --git a/keyboards/z12/keymaps/default/config.h b/keyboards/z12/keymaps/default/config.h new file mode 100644 index 00000000000..1fcf924f353 --- /dev/null +++ b/keyboards/z12/keymaps/default/config.h @@ -0,0 +1,26 @@ +/* Copyright 2020 Sergi Meseguer + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 OLED_DISPLAY_128X32 + +// EC11 encoders' resolution. +// Reduce the value to 2 if you feel missing values: +#define ENCODER_RESOLUTION 4 + +// Allows correct registered values by rotary encoder: +#define TAP_CODE_DELAY 10 diff --git a/keyboards/z12/keymaps/default/keymap.c b/keyboards/z12/keymaps/default/keymap.c new file mode 100644 index 00000000000..16a6c1f70e9 --- /dev/null +++ b/keyboards/z12/keymaps/default/keymap.c @@ -0,0 +1,59 @@ +/* Copyright 2020 Sergi Meseguer + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 { + BASE = 0 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* + * Base Layer: BASE + * + * ,-----------------------. + * | | o | o | | + * |-------+---+---+-------| + * | o | o | o | o | + * |-------+-------+-------| + * | o | o | o | + * |-------+-------+-------| + * | o | o | o | + * |-------+-------+-------| + */ + [BASE] = LAYOUT( + KC_Q, KC_W, + KC_E, KC_R, KC_T, KC_Y, + KC_U, KC_I, KC_O, + KC_P, KC_K, KC_A + ), + +/* + * TEMPLATE + * + * ,-----------------------. + * | | o | o | | + * |-------+---+---+-------| + * | o | o | o | o | + * |-------+-------+-------| + * | o | o | o | + * |-------+-------+-------| + * | o | o | o | + * |-------+-------+-------| + */ + +}; + diff --git a/keyboards/z12/keymaps/default/readme.md b/keyboards/z12/keymaps/default/readme.md new file mode 100644 index 00000000000..5f30ab6a396 --- /dev/null +++ b/keyboards/z12/keymaps/default/readme.md @@ -0,0 +1,3 @@ +# Default z12 Layout + +This is the default layout that comes flashed on every z12. diff --git a/keyboards/z12/keymaps/default/rules.mk b/keyboards/z12/keymaps/default/rules.mk new file mode 100644 index 00000000000..b220469c6c6 --- /dev/null +++ b/keyboards/z12/keymaps/default/rules.mk @@ -0,0 +1,2 @@ +OLED_ENABLE = yes # Enables the use of OLED displays +MOUSEKEY_ENABLE = yes diff --git a/keyboards/z12/keymaps/zigotica/config.h b/keyboards/z12/keymaps/zigotica/config.h new file mode 100644 index 00000000000..fbab76d5f0d --- /dev/null +++ b/keyboards/z12/keymaps/zigotica/config.h @@ -0,0 +1,30 @@ +/* Copyright 2020 Sergi Meseguer + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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" + +#ifdef OLED_ENABLE + #define OLED_DISPLAY_128X32 +#endif + +// EC11 encoders' resolution. +// Reduce the value to 2 if you feel missing values: +#define ENCODER_RESOLUTION 4 + +// Allows correct registered values by rotary encoder: +#define TAP_CODE_DELAY 10 diff --git a/keyboards/z12/keymaps/zigotica/encoder.c b/keyboards/z12/keymaps/zigotica/encoder.c new file mode 100644 index 00000000000..49a3d859b66 --- /dev/null +++ b/keyboards/z12/keymaps/zigotica/encoder.c @@ -0,0 +1,114 @@ +/* Copyright 2020 Sergi Meseguer + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 "zigotica.h" + +bool encoder_update_user(uint8_t index, bool clockwise) { + switch(get_highest_layer(layer_state)){ + case _VIM: + if (index == 0) { // LEFT + // Cycle through buffers + if (clockwise) { + register_code(KC_ESC); + SEND_STRING(":bprevious"); + register_code(KC_ENT); + unregister_code(KC_ESC); + unregister_code(KC_ENT); + } else { + register_code(KC_ESC); + SEND_STRING(":bnext"); + register_code(KC_ENT); + unregister_code(KC_ESC); + unregister_code(KC_ENT); + } + } else { // RIGHT + // Scroll + if (clockwise) { + tap_code(KC_PGDN); + } else { + tap_code(KC_PGUP); + } + } + break; + case _BROWSER: + if (index == 0) { // LEFT + // Cycle through Tabs + if (clockwise) { + tap_code16(C(KC_TAB)); + /* register_code16(G(KC_RCBR)); */ + /* unregister_code16(G(KC_RCBR)); */ + } else { + tap_code16(S(C(KC_TAB))); + /* register_code16(G(KC_LCBR)); */ + /* unregister_code16(G(KC_LCBR)); */ + } + } else { // RIGHT + // Scroll up/down + if (clockwise) { + register_code(KC_WH_U); + unregister_code(KC_WH_U); + } else { + register_code(KC_WH_D); + unregister_code(KC_WH_D); + } + } + break; + case _FIGMA: + if (index == 0) { // LEFT + // Volume control. + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } else { // RIGHT + // Zoom in/out + if (clockwise) { + register_code(KC_LGUI); + register_code(KC_WH_D); + unregister_code(KC_WH_D); + unregister_code(KC_LGUI); + } else { + register_code(KC_LGUI); + register_code(KC_WH_U); + unregister_code(KC_WH_U); + unregister_code(KC_LGUI); + } + } + break; + case _TERMINAL: + default: + if (index == 0) { // LEFT + // Volume control. + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } else { // RIGHT + // Scroll + if (clockwise) { + tap_code(KC_PGDN); + } else { + tap_code(KC_PGUP); + } + } + break; + } + return false; +} + + diff --git a/keyboards/z12/keymaps/zigotica/encoder.h b/keyboards/z12/keymaps/zigotica/encoder.h new file mode 100644 index 00000000000..2422c68f286 --- /dev/null +++ b/keyboards/z12/keymaps/zigotica/encoder.h @@ -0,0 +1,18 @@ +/* Copyright 2020 Sergi Meseguer + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 "zigotica.h" diff --git a/keyboards/z12/keymaps/zigotica/keymap.c b/keyboards/z12/keymaps/zigotica/keymap.c new file mode 100644 index 00000000000..7e969de96ed --- /dev/null +++ b/keyboards/z12/keymaps/zigotica/keymap.c @@ -0,0 +1,126 @@ +/* Copyright 2020 + Sergi Meseguer + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 "zigotica.h" + +// Custom Keycodes +#define MODE_1 TO(_TERMINAL) +#define MODE_2 TO(_FIGMA) +#define MODE_3 TO(_BROWSER) +#define MODE_4 TO(_VIM) + +enum custom_keycodes { + VIM_SIP = SAFE_RANGE +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case VIM_SIP: + if (record->event.pressed) { + register_code(KC_ESC); + SEND_STRING(":Ag "); + } else { + // released + unregister_code(KC_ESC); + } + break; + } + return true; +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* + * TERMINAL Layer + * + * ,-----------------------------. + * | | TERM | FIGM | | + * |-------+------+------+-------| + * | VOL | BROW | VIM | SCROLL| + * |-------+------+------+-------| + * |-------+-------+-------| + * | MEDIA | o | o | + * |-------+-------+-------| + * | o | o | o | + * |-------+-------+-------| + */ + [_TERMINAL] = LAYOUT( + MODE_1, MODE_2, + ZK_MEDIA, MODE_3, MODE_4, _______, + _______, _______, _______, + _______, _______, _______ + ), +/* + * VIM Layer + * + * ,-----------------------------. + * | | TERM | FIGM | | + * |-------+------+------+-------| + * |BUFFER | BROW | VIM | SCROLL| + * |-------+------+------+-------| + * |-------+-------+-------| + * |SEARCH | o | o | + * |-------+-------+-------| + * | o | o | o | + * |-------+-------+-------| + */ + [_VIM] = LAYOUT( + _______, _______, + _______, _______, _______, _______, + VIM_SIP, _______, _______, + _______, _______, _______ + ), +/* + * FIGMA Layer + * + * ,-----------------------------. + * | | TERM | FIGM | | + * |-------+------+------+-------| + * | VOL | BROW | VIM | ZOOM | + * |-------+------+------+-------| + * |-------+-------+-------| + * | ZOOM | GRIDS | FULL | + * |-------+-------+-------| + * | o | o | o | + * |-------+-------+-------| + */ + [_FIGMA] = LAYOUT( + _______, _______, + _______, _______, _______, _______, + LSFT(KC_1), LCTL(KC_G), LGUI(KC_BSLS), + _______, _______, _______ + ), +/* + * BROWSER Layer + * + * ,-----------------------------. + * | | TERM | FIGM | | + * |-------+------+------+-------| + * | TABS | BROW | VIM | SCROLL| + * |-------+------+------+-------| + * |-------+-------+-------| + * |SEARCH | BOOKM | DEVTL | + * |-------+-------+-------| + * | o | o | o | + * |-------+-------+-------| + */ + [_BROWSER] = LAYOUT( + _______, _______, + _______, _______, _______, _______, + G(KC_F), G(KC_D), G(A(KC_I)), + _______, _______, _______ + ), +}; diff --git a/keyboards/z12/keymaps/zigotica/oled.c b/keyboards/z12/keymaps/zigotica/oled.c new file mode 100644 index 00000000000..4b428a42b1d --- /dev/null +++ b/keyboards/z12/keymaps/zigotica/oled.c @@ -0,0 +1,43 @@ +/* Copyright 2020 Sergi Meseguer + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 "zigotica.h" + +static void render_status(void) { + oled_write_P(PSTR("z12 v1.0\n"), false); + oled_write_P(PSTR("Layer: "), false); + switch (get_highest_layer(layer_state)) { + case _VIM: + oled_write_P(PSTR("VIM\n\nBUFFER SCROLL"), false); + break; + case _FIGMA: + oled_write_P(PSTR("FIGMA\n\nVOLUME ZOOM"), false); + break; + case _BROWSER: + oled_write_P(PSTR("BROWSER\n\nTABS SCROLL"), false); + break; + case _TERMINAL: + oled_write_P(PSTR("TERMINAL\n\nVOLUME SCROLL"), false); + break; + default: + oled_write_P(PSTR("Undef\n"), false); + } +} + +void oled_task_user(void) { + render_status(); +} + diff --git a/keyboards/z12/keymaps/zigotica/oled.h b/keyboards/z12/keymaps/zigotica/oled.h new file mode 100644 index 00000000000..2422c68f286 --- /dev/null +++ b/keyboards/z12/keymaps/zigotica/oled.h @@ -0,0 +1,18 @@ +/* Copyright 2020 Sergi Meseguer + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 "zigotica.h" diff --git a/keyboards/z12/keymaps/zigotica/rules.mk b/keyboards/z12/keymaps/zigotica/rules.mk new file mode 100644 index 00000000000..02e37aa80b3 --- /dev/null +++ b/keyboards/z12/keymaps/zigotica/rules.mk @@ -0,0 +1,4 @@ +OLED_ENABLE = yes # Enables the use of OLED displays +RAW_ENABLE = yes +TAP_DANCE_ENABLE = yes +MOUSEKEY_ENABLE = yes diff --git a/keyboards/z12/readme.md b/keyboards/z12/readme.md new file mode 100644 index 00000000000..17e4bfdb848 --- /dev/null +++ b/keyboards/z12/readme.md @@ -0,0 +1,3 @@ +# z12 + +Firmware for [z12 micropad](https://github.com/zigotica/mechanical-keyboards/tree/main/z12) designed by @zigotica diff --git a/keyboards/z12/rules.mk b/keyboards/z12/rules.mk new file mode 100644 index 00000000000..32cdab8e959 --- /dev/null +++ b/keyboards/z12/rules.mk @@ -0,0 +1,24 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +ENCODER_ENABLE = yes # Enables the use of encoders +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output +LTO_ENABLE = yes # Enables Link Time Optimization (LTO) which reduces the compiled size +OLED_ENABLE = yes # Enables the use of OLED displays +OLED_DRIVER = SSD1306 # Enables the use of OLED displays + diff --git a/keyboards/z12/z12.c b/keyboards/z12/z12.c new file mode 100644 index 00000000000..2af8836cab5 --- /dev/null +++ b/keyboards/z12/z12.c @@ -0,0 +1,23 @@ +/* Copyright 2020 Sergi Meseguer + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 "z12.h" + +#ifdef ENCODER_ENABLE +bool encoder_update_kb(uint8_t index, bool clockwise) { + return encoder_update_user(index, clockwise); +} +#endif diff --git a/keyboards/z12/z12.h b/keyboards/z12/z12.h new file mode 100644 index 00000000000..0ea6c303f73 --- /dev/null +++ b/keyboards/z12/z12.h @@ -0,0 +1,34 @@ +/* Copyright 2020 Sergi Meseguer + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 */ + +#define ___ KC_NO + +#define LAYOUT( \ + BN4, BN2, \ + SW7, BN3, BN1, SW8, \ + SW4, SW5, SW6, \ + SW3, SW2, SW1 \ + ) \ + { \ + { ___, BN4, BN2, ___ }, \ + { SW7, BN3, BN1, SW8 }, \ + { SW4, SW5, SW6, ___ }, \ + { SW3, SW2, SW1, ___ }, \ + } diff --git a/keyboards/z34/config.h b/keyboards/z34/config.h new file mode 100644 index 00000000000..71d6528ce80 --- /dev/null +++ b/keyboards/z34/config.h @@ -0,0 +1,65 @@ +/* Copyright 2020 Sergi Meseguer + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 0x7A74 +#define PRODUCT_ID 0x0002 +#define DEVICE_VER 0x0001 +#define MANUFACTURER zigotica +#define PRODUCT z34 + +/* key matrix size */ +#define MATRIX_ROWS 8 +#define MATRIX_COLS 5 + +/*Keyboard Matrix Assignments */ + +#define DIRECT_PINS { \ + { C6, F7, F6, F5, F4 }, \ + { D7, B6, B2, B3, B1 }, \ + { E6, D4, D0, D1, D3 }, \ + { B4, B5, NO_PIN, NO_PIN, NO_PIN } \ +} + +#define DIRECT_PINS_RIGHT { \ + { F4, F5, F6, F7, C6 }, \ + { B1, B3, B2, B6, D7 }, \ + { D3, D1, D0, D4, E6 }, \ + { B5, B4, NO_PIN, NO_PIN, NO_PIN } \ +} + +#define UNUSED_PINS + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* Serial settings */ +#define USE_SERIAL +/* serial.c configuration for split keyboard */ +#define SOFT_SERIAL_PIN D2 + +// EE_HANDS MASTER_RIGHT MASTER_LEFT +#define MASTER_RIGHT + diff --git a/keyboards/z34/info.json b/keyboards/z34/info.json new file mode 100644 index 00000000000..4a6dce75254 --- /dev/null +++ b/keyboards/z34/info.json @@ -0,0 +1,52 @@ +{ + "keyboard_name": "z34", + "url": "https://github.com/zigotica/mechanical-keyboards/tree/main/z34", + "maintainer": "@zigotica", + "layouts": { + "LAYOUT": { + "layout": [ + {"x": 0, "y": 0.93}, + {"x": 1, "y": 0.31}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0.28}, + {"x": 4, "y": 0.42}, + + {"x": 7, "y": 0.42}, + {"x": 8, "y": 0.28}, + {"x": 9, "y": 0}, + {"x": 10, "y": 0.31}, + {"x": 11, "y": 0.93}, + + {"x": 0, "y": 1.93}, + {"x": 1, "y": 1.31}, + {"x": 2, "y": 1}, + {"x": 3, "y": 1.28}, + {"x": 4, "y": 1.42}, + + {"x": 7, "y": 1.42}, + {"x": 8, "y": 1.28}, + {"x": 9, "y": 1}, + {"x": 10, "y": 1.31}, + {"x": 11, "y": 1.93}, + + {"x": 0, "y": 2.93}, + {"x": 1, "y": 2.31}, + {"x": 2, "y": 2}, + {"x": 3, "y": 2.28}, + {"x": 4, "y": 2.42}, + + {"x": 7, "y": 2.42}, + {"x": 8, "y": 2.28}, + {"x": 9, "y": 2}, + {"x": 10, "y": 2.31}, + {"x": 11, "y": 2.93}, + + {"x": 3.5, "y": 3.5}, + {"x": 4.5, "y": 4}, + + {"x": 6.5, "y": 4}, + {"x": 7.5, "y": 3.5} + ] + } + } +} diff --git a/keyboards/z34/keymaps/default/config.h b/keyboards/z34/keymaps/default/config.h new file mode 100644 index 00000000000..ae9881d3abf --- /dev/null +++ b/keyboards/z34/keymaps/default/config.h @@ -0,0 +1,22 @@ +/* Copyright 2020 Sergi Meseguer + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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" + +// EE_HANDS MASTER_RIGHT MASTER_LEFT +#define MASTER_RIGHT diff --git a/keyboards/z34/keymaps/default/keymap.c b/keyboards/z34/keymaps/default/keymap.c new file mode 100644 index 00000000000..973d24eafbc --- /dev/null +++ b/keyboards/z34/keymaps/default/keymap.c @@ -0,0 +1,77 @@ +/* Copyright 2020 Sergi Meseguer + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 { + BASE = 0 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* + * Base Layer: BASE + * + * ,---------------------------------------. ,---------------------------------------. + * | | | | | | | | | | | | + * | Q | W | E | R | T | | Y | U | I | O | P | + * | | | | | | | | | | | | + * |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| + * | | | | | | | | | | | | + * | A | S | D | F | G | | H | J | K | L | ' | + * | | | | | | | | | | | | + * |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| + * | | | | | | | | | | | | + * | Z | X | C | V | B | | N | M | , | . | / | + * | | | | | | | | | | | | + * `-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------. + * | | | | | | + * | ESC | SPC | | ENTER | BSPC | + * | | | | | | + * `---------------' `---------------' + * + */ + [BASE] = LAYOUT( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, + KC_ESC, KC_SPC, KC_ENT, KC_BSPC + ), + +/* + * TEMPLATE + * + * ,---------------------------------------. ,---------------------------------------. + * | | | | | | | | | | | | + * | | | | | | | | | | | | + * | | | | | | | | | | | | + * |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| + * | | | | | | | | | | | | + * | | | | | | | | | | | | + * | | | | | | | | | | | | + * |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| + * | | | | | | | | | | | | + * | | | | | | | | | | | | + * | | | | | | | | | | | | + * `-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------. + * | | | | | | + * | | | | | | + * | | | | | | + * `---------------' `---------------' + * + */ + +}; + diff --git a/keyboards/z34/keymaps/default/readme.md b/keyboards/z34/keymaps/default/readme.md new file mode 100644 index 00000000000..c6a0115573c --- /dev/null +++ b/keyboards/z34/keymaps/default/readme.md @@ -0,0 +1,3 @@ +# Default z34 Layout + +This is the default QWERTY layout that comes flashed on every z34. diff --git a/keyboards/z34/keymaps/default/rules.mk b/keyboards/z34/keymaps/default/rules.mk new file mode 100644 index 00000000000..827811a3623 --- /dev/null +++ b/keyboards/z34/keymaps/default/rules.mk @@ -0,0 +1,3 @@ +# There are no extra pins, so we make sure to disable OLED and Encoders +OLED_SUPPORTED = no +ENCODER_SUPPORTED = no diff --git a/keyboards/z34/keymaps/zigotica/config.h b/keyboards/z34/keymaps/zigotica/config.h new file mode 100644 index 00000000000..1b223cb71d2 --- /dev/null +++ b/keyboards/z34/keymaps/zigotica/config.h @@ -0,0 +1,28 @@ +/* Copyright 2020 Sergi Meseguer + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 MASTER_RIGHT + +// these should work better for homerow modifiers +#define TAPPING_TERM 350 +#define PERMISSIVE_HOLD +#define IGNORE_MOD_TAP_INTERRUPT +#define TAPPING_FORCE_HOLD + diff --git a/keyboards/z34/keymaps/zigotica/keymap.c b/keyboards/z34/keymaps/zigotica/keymap.c new file mode 100644 index 00000000000..88c6a3db1bb --- /dev/null +++ b/keyboards/z34/keymaps/zigotica/keymap.c @@ -0,0 +1,57 @@ +/* Copyright 2020 Sergi Meseguer + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 "zigotica.h" + +#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [BASE] = LAYOUT_wrapper( + _STENAI_L1, _STENAI_R1, + _STENAI_L2, _STENAI_R2, + _STENAI_L3, _STENAI_R3, + _STENAI_LT, _STENAI_RT + ), + + [_NUM] = LAYOUT_wrapper( + ____NUM_L1, ____NUM_R1, + ____NUM_L2, ____NUM_R2, + ____NUM_L3, ____NUM_R3, + ____NUM_LT, ____NUM_RT + ), + + [_NAV] = LAYOUT_wrapper( + ____NAV_L1, ____NAV_R1, + ____NAV_L2, ____NAV_R2, + ____NAV_L3, ____NAV_R3, + ____NAV_LT, ____NAV_RT + ), + + [_SYM] = LAYOUT_wrapper( + ____SYM_L1, ____SYM_R1, + ____SYM_L2, ____SYM_R2, + ____SYM_L3, ____SYM_R3, + ____SYM_LT, ____SYM_RT + ), + + [_FN] = LAYOUT_wrapper( + ____FN_L1, ____FN_R1, + ____FN_L2, ____FN_R2, + ____FN_L3, ____FN_R3, + ____FN_LT, ____FN_RT + ), +}; + diff --git a/keyboards/z34/keymaps/zigotica/rules.mk b/keyboards/z34/keymaps/zigotica/rules.mk new file mode 100644 index 00000000000..9abdfb40b49 --- /dev/null +++ b/keyboards/z34/keymaps/zigotica/rules.mk @@ -0,0 +1,7 @@ +# There are no extra pins, so we make sure to disable OLED and Encoders +OLED_SUPPORTED = no +ENCODER_SUPPORTED = no + +MOUSEKEY_ENABLE = yes +COMBO_ENABLE = yes +TAP_DANCE_ENABLE = yes diff --git a/keyboards/z34/readme.md b/keyboards/z34/readme.md new file mode 100644 index 00000000000..29bbf571a34 --- /dev/null +++ b/keyboards/z34/readme.md @@ -0,0 +1,3 @@ +# z34 + +Firmware for [z34 split keyboard](https://github.com/zigotica/mechanical-keyboards/tree/main/z34) designed by @zigotica diff --git a/keyboards/z34/rules.mk b/keyboards/z34/rules.mk new file mode 100644 index 00000000000..6370c7a93f7 --- /dev/null +++ b/keyboards/z34/rules.mk @@ -0,0 +1,28 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output +SPLIT_KEYBOARD = yes # Split common +LTO_ENABLE = yes # Enables Link Time Optimization (LTO) which reduces the compiled size + +# There are no extra pins, so we make sure to disable OLED and Encoders +OLED_SUPPORTED = no # Enables the use of OLED displays +ENCODER_SUPPORTED = no # Enables the use of encoders + diff --git a/keyboards/z34/z34.c b/keyboards/z34/z34.c new file mode 100644 index 00000000000..779562e630e --- /dev/null +++ b/keyboards/z34/z34.c @@ -0,0 +1,17 @@ +/* Copyright 2020 Sergi Meseguer + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 "z34.h" diff --git a/keyboards/z34/z34.h b/keyboards/z34/z34.h new file mode 100644 index 00000000000..3def2d4c2c8 --- /dev/null +++ b/keyboards/z34/z34.h @@ -0,0 +1,39 @@ +/* Copyright 2020 Sergi Meseguer + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 */ + +#define ___ KC_NO + +#define LAYOUT( \ + L05, L04, L03, L02, L01, R01, R02, R03, R04, R05, \ + L10, L09, L08, L07, L06, R06, R07, R08, R09, R10, \ + L15, L14, L13, L12, L11, R11, R12, R13, R14, R15, \ + L17, L16, R16, R17 \ + ) \ + { \ + { L05, L04, L03, L02, L01 }, \ + { L10, L09, L08, L07, L06 }, \ + { L15, L14, L13, L12, L11 }, \ + { L17, L16, ___, ___ , ___}, \ + { R01, R02, R03, R04, R05 }, \ + { R06, R07, R08, R09, R10 }, \ + { R11, R12, R13, R14, R15 }, \ + { R16, R17, ___, ___, ___ } \ + } + diff --git a/keyboards/ziggurat/config.h b/keyboards/ziggurat/config.h new file mode 100644 index 00000000000..9c38f5e796a --- /dev/null +++ b/keyboards/ziggurat/config.h @@ -0,0 +1,46 @@ +/* +Copyright 2021 kb-elmo + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 0x8F5D +#define PRODUCT_ID 0x5258 +#define DEVICE_VER 0x0001 +#define MANUFACTURER LaminarWoob +#define PRODUCT Ziggurat + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 18 + +/* Keyboard Matrix Assignments */ +#define MATRIX_ROW_PINS { A2, A1, A0, F7, A3 } +#define MATRIX_COL_PINS { F6, F5, F4, F3, F2, F1, B5, B6, C2, C3, C4, C5, C6, C7, A7, A6, A5, 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 + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION diff --git a/keyboards/ziggurat/info.json b/keyboards/ziggurat/info.json new file mode 100644 index 00000000000..77bb288dd66 --- /dev/null +++ b/keyboards/ziggurat/info.json @@ -0,0 +1,414 @@ +{ + "keyboard_name": "ziggurat", + "url": "", + "maintainer": "kb-elmo", + "layouts": { + "LAYOUT_all": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2.5, "y":0}, + {"x":3.5, "y":0}, + {"x":4.5, "y":0}, + {"x":5.5, "y":0}, + {"x":6.5, "y":0}, + {"x":7.5, "y":0}, + {"x":8.5, "y":0}, + {"x":9.5, "y":0}, + {"x":10.5, "y":0}, + {"x":11.5, "y":0}, + {"x":12.5, "y":0}, + {"x":13.5, "y":0}, + {"x":14.5, "y":0}, + {"x":15.5, "y":0}, + {"x":16.5, "y":0}, + {"x":17.5, "y":0}, + {"x":0, "y":1}, + {"x":1, "y":1}, + {"x":2.5, "y":1, "w":1.5}, + {"x":4, "y":1}, + {"x":5, "y":1}, + {"x":6, "y":1}, + {"x":7, "y":1}, + {"x":8, "y":1}, + {"x":9, "y":1}, + {"x":10, "y":1}, + {"x":11, "y":1}, + {"x":12, "y":1}, + {"x":13, "y":1}, + {"x":14, "y":1}, + {"x":15, "y":1}, + {"x":16, "y":1, "w":1.5}, + {"x":17.5, "y":1}, + {"x":0, "y":2}, + {"x":1, "y":2}, + {"x":2.5, "y":2, "w":1.75}, + {"x":4.25, "y":2}, + {"x":5.25, "y":2}, + {"x":6.25, "y":2}, + {"x":7.25, "y":2}, + {"x":8.25, "y":2}, + {"x":9.25, "y":2}, + {"x":10.25, "y":2}, + {"x":11.25, "y":2}, + {"x":12.25, "y":2}, + {"x":13.25, "y":2}, + {"x":14.25, "y":2}, + {"x":15.25, "y":2, "w":2.25}, + {"x":17.5, "y":2}, + {"x":0, "y":3}, + {"x":1, "y":3}, + {"x":2.5, "y":3, "w":1.25}, + {"x":3.75, "y":3}, + {"x":4.75, "y":3}, + {"x":5.75, "y":3}, + {"x":6.75, "y":3}, + {"x":7.75, "y":3}, + {"x":8.75, "y":3}, + {"x":9.75, "y":3}, + {"x":10.75, "y":3}, + {"x":11.75, "y":3}, + {"x":12.75, "y":3}, + {"x":13.75, "y":3}, + {"x":14.75, "y":3, "w":1.75}, + {"x":16.5, "y":3}, + {"x":17.5, "y":3}, + {"x":0, "y":4}, + {"x":1, "y":4}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":1.25}, + {"x":5, "y":4, "w":1.25}, + {"x":6.25, "y":4, "w":6.25}, + {"x":12.5, "y":4, "w":1.25}, + {"x":13.75, "y":4, "w":1.25}, + {"x":15.5, "y":4}, + {"x":16.5, "y":4}, + {"x":17.5, "y":4} + ] + }, + "LAYOUT_ansi": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2.5, "y":0}, + {"x":3.5, "y":0}, + {"x":4.5, "y":0}, + {"x":5.5, "y":0}, + {"x":6.5, "y":0}, + {"x":7.5, "y":0}, + {"x":8.5, "y":0}, + {"x":9.5, "y":0}, + {"x":10.5, "y":0}, + {"x":11.5, "y":0}, + {"x":12.5, "y":0}, + {"x":13.5, "y":0}, + {"x":14.5, "y":0}, + {"x":15.5, "y":0, "w":2}, + {"x":17.5, "y":0}, + {"x":0, "y":1}, + {"x":1, "y":1}, + {"x":2.5, "y":1, "w":1.5}, + {"x":4, "y":1}, + {"x":5, "y":1}, + {"x":6, "y":1}, + {"x":7, "y":1}, + {"x":8, "y":1}, + {"x":9, "y":1}, + {"x":10, "y":1}, + {"x":11, "y":1}, + {"x":12, "y":1}, + {"x":13, "y":1}, + {"x":14, "y":1}, + {"x":15, "y":1}, + {"x":16, "y":1, "w":1.5}, + {"x":17.5, "y":1}, + {"x":0, "y":2}, + {"x":1, "y":2}, + {"x":2.5, "y":2, "w":1.75}, + {"x":4.25, "y":2}, + {"x":5.25, "y":2}, + {"x":6.25, "y":2}, + {"x":7.25, "y":2}, + {"x":8.25, "y":2}, + {"x":9.25, "y":2}, + {"x":10.25, "y":2}, + {"x":11.25, "y":2}, + {"x":12.25, "y":2}, + {"x":13.25, "y":2}, + {"x":14.25, "y":2}, + {"x":15.25, "y":2, "w":2.25}, + {"x":17.5, "y":2}, + {"x":0, "y":3}, + {"x":1, "y":3}, + {"x":2.5, "y":3, "w":2.25}, + {"x":4.75, "y":3}, + {"x":5.75, "y":3}, + {"x":6.75, "y":3}, + {"x":7.75, "y":3}, + {"x":8.75, "y":3}, + {"x":9.75, "y":3}, + {"x":10.75, "y":3}, + {"x":11.75, "y":3}, + {"x":12.75, "y":3}, + {"x":13.75, "y":3}, + {"x":14.75, "y":3, "w":1.75}, + {"x":16.5, "y":3}, + {"x":17.5, "y":3}, + {"x":0, "y":4}, + {"x":1, "y":4}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":1.25}, + {"x":5, "y":4, "w":1.25}, + {"x":6.25, "y":4, "w":6.25}, + {"x":12.5, "y":4, "w":1.25}, + {"x":13.75, "y":4, "w":1.25}, + {"x":15.5, "y":4}, + {"x":16.5, "y":4}, + {"x":17.5, "y":4} + ] + }, + "LAYOUT_ansi_tsangan": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2.5, "y":0}, + {"x":3.5, "y":0}, + {"x":4.5, "y":0}, + {"x":5.5, "y":0}, + {"x":6.5, "y":0}, + {"x":7.5, "y":0}, + {"x":8.5, "y":0}, + {"x":9.5, "y":0}, + {"x":10.5, "y":0}, + {"x":11.5, "y":0}, + {"x":12.5, "y":0}, + {"x":13.5, "y":0}, + {"x":14.5, "y":0}, + {"x":15.5, "y":0, "w":2}, + {"x":17.5, "y":0}, + {"x":0, "y":1}, + {"x":1, "y":1}, + {"x":2.5, "y":1, "w":1.5}, + {"x":4, "y":1}, + {"x":5, "y":1}, + {"x":6, "y":1}, + {"x":7, "y":1}, + {"x":8, "y":1}, + {"x":9, "y":1}, + {"x":10, "y":1}, + {"x":11, "y":1}, + {"x":12, "y":1}, + {"x":13, "y":1}, + {"x":14, "y":1}, + {"x":15, "y":1}, + {"x":16, "y":1, "w":1.5}, + {"x":17.5, "y":1}, + {"x":0, "y":2}, + {"x":1, "y":2}, + {"x":2.5, "y":2, "w":1.75}, + {"x":4.25, "y":2}, + {"x":5.25, "y":2}, + {"x":6.25, "y":2}, + {"x":7.25, "y":2}, + {"x":8.25, "y":2}, + {"x":9.25, "y":2}, + {"x":10.25, "y":2}, + {"x":11.25, "y":2}, + {"x":12.25, "y":2}, + {"x":13.25, "y":2}, + {"x":14.25, "y":2}, + {"x":15.25, "y":2, "w":2.25}, + {"x":17.5, "y":2}, + {"x":0, "y":3}, + {"x":1, "y":3}, + {"x":2.5, "y":3, "w":2.25}, + {"x":4.75, "y":3}, + {"x":5.75, "y":3}, + {"x":6.75, "y":3}, + {"x":7.75, "y":3}, + {"x":8.75, "y":3}, + {"x":9.75, "y":3}, + {"x":10.75, "y":3}, + {"x":11.75, "y":3}, + {"x":12.75, "y":3}, + {"x":13.75, "y":3}, + {"x":14.75, "y":3, "w":1.75}, + {"x":16.5, "y":3}, + {"x":17.5, "y":3}, + {"x":0, "y":4}, + {"x":1, "y":4}, + {"x":2.5, "y":4, "w":1.5}, + {"x":4, "y":4}, + {"x":5, "y":4, "w":1.5}, + {"x":6.5, "y":4, "w":7}, + {"x":13.5, "y":4, "w":1.5}, + {"x":15.5, "y":4}, + {"x":16.5, "y":4}, + {"x":17.5, "y":4} + ] + }, + "LAYOUT_iso": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2.5, "y":0}, + {"x":3.5, "y":0}, + {"x":4.5, "y":0}, + {"x":5.5, "y":0}, + {"x":6.5, "y":0}, + {"x":7.5, "y":0}, + {"x":8.5, "y":0}, + {"x":9.5, "y":0}, + {"x":10.5, "y":0}, + {"x":11.5, "y":0}, + {"x":12.5, "y":0}, + {"x":13.5, "y":0}, + {"x":14.5, "y":0}, + {"x":15.5, "y":0, "w":2}, + {"x":17.5, "y":0}, + {"x":0, "y":1}, + {"x":1, "y":1}, + {"x":2.5, "y":1, "w":1.5}, + {"x":4, "y":1}, + {"x":5, "y":1}, + {"x":6, "y":1}, + {"x":7, "y":1}, + {"x":8, "y":1}, + {"x":9, "y":1}, + {"x":10, "y":1}, + {"x":11, "y":1}, + {"x":12, "y":1}, + {"x":13, "y":1}, + {"x":14, "y":1}, + {"x":15, "y":1}, + {"x":17.5, "y":1}, + {"x":0, "y":2}, + {"x":1, "y":2}, + {"x":2.5, "y":2, "w":1.75}, + {"x":4.25, "y":2}, + {"x":5.25, "y":2}, + {"x":6.25, "y":2}, + {"x":7.25, "y":2}, + {"x":8.25, "y":2}, + {"x":9.25, "y":2}, + {"x":10.25, "y":2}, + {"x":11.25, "y":2}, + {"x":12.25, "y":2}, + {"x":13.25, "y":2}, + {"x":14.25, "y":2}, + {"x":15.25, "y":2}, + {"x":16.25, "y":1, "w":1.25, "h":2}, + {"x":17.5, "y":2}, + {"x":0, "y":3}, + {"x":1, "y":3}, + {"x":2.5, "y":3, "w":1.25}, + {"x":3.75, "y":3}, + {"x":4.75, "y":3}, + {"x":5.75, "y":3}, + {"x":6.75, "y":3}, + {"x":7.75, "y":3}, + {"x":8.75, "y":3}, + {"x":9.75, "y":3}, + {"x":10.75, "y":3}, + {"x":11.75, "y":3}, + {"x":12.75, "y":3}, + {"x":13.75, "y":3}, + {"x":14.75, "y":3, "w":1.75}, + {"x":16.5, "y":3}, + {"x":17.5, "y":3}, + {"x":0, "y":4}, + {"x":1, "y":4}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":1.25}, + {"x":5, "y":4, "w":1.25}, + {"x":6.25, "y":4, "w":6.25}, + {"x":12.5, "y":4, "w":1.25}, + {"x":13.75, "y":4, "w":1.25}, + {"x":15.5, "y":4}, + {"x":16.5, "y":4}, + {"x":17.5, "y":4} + ] + }, + "LAYOUT_iso_tsangan": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2.5, "y":0}, + {"x":3.5, "y":0}, + {"x":4.5, "y":0}, + {"x":5.5, "y":0}, + {"x":6.5, "y":0}, + {"x":7.5, "y":0}, + {"x":8.5, "y":0}, + {"x":9.5, "y":0}, + {"x":10.5, "y":0}, + {"x":11.5, "y":0}, + {"x":12.5, "y":0}, + {"x":13.5, "y":0}, + {"x":14.5, "y":0}, + {"x":15.5, "y":0, "w":2}, + {"x":17.5, "y":0}, + {"x":0, "y":1}, + {"x":1, "y":1}, + {"x":2.5, "y":1, "w":1.5}, + {"x":4, "y":1}, + {"x":5, "y":1}, + {"x":6, "y":1}, + {"x":7, "y":1}, + {"x":8, "y":1}, + {"x":9, "y":1}, + {"x":10, "y":1}, + {"x":11, "y":1}, + {"x":12, "y":1}, + {"x":13, "y":1}, + {"x":14, "y":1}, + {"x":15, "y":1}, + {"x":17.5, "y":1}, + {"x":0, "y":2}, + {"x":1, "y":2}, + {"x":2.5, "y":2, "w":1.75}, + {"x":4.25, "y":2}, + {"x":5.25, "y":2}, + {"x":6.25, "y":2}, + {"x":7.25, "y":2}, + {"x":8.25, "y":2}, + {"x":9.25, "y":2}, + {"x":10.25, "y":2}, + {"x":11.25, "y":2}, + {"x":12.25, "y":2}, + {"x":13.25, "y":2}, + {"x":14.25, "y":2}, + {"x":15.25, "y":2}, + {"x":16.25, "y":1, "w":1.25, "h":2}, + {"x":17.5, "y":2}, + {"x":0, "y":3}, + {"x":1, "y":3}, + {"x":2.5, "y":3, "w":1.25}, + {"x":3.75, "y":3}, + {"x":4.75, "y":3}, + {"x":5.75, "y":3}, + {"x":6.75, "y":3}, + {"x":7.75, "y":3}, + {"x":8.75, "y":3}, + {"x":9.75, "y":3}, + {"x":10.75, "y":3}, + {"x":11.75, "y":3}, + {"x":12.75, "y":3}, + {"x":13.75, "y":3}, + {"x":14.75, "y":3, "w":1.75}, + {"x":16.5, "y":3}, + {"x":17.5, "y":3}, + {"x":0, "y":4}, + {"x":1, "y":4}, + {"x":2.5, "y":4, "w":1.5}, + {"x":4, "y":4}, + {"x":5, "y":4, "w":1.5}, + {"x":6.5, "y":4, "w":7}, + {"x":13.5, "y":4, "w":1.5}, + {"x":15.5, "y":4}, + {"x":16.5, "y":4}, + {"x":17.5, "y":4} + ] + } + } +} diff --git a/keyboards/ziggurat/keymaps/default/keymap.c b/keyboards/ziggurat/keymaps/default/keymap.c new file mode 100644 index 00000000000..5a06fecca57 --- /dev/null +++ b/keyboards/ziggurat/keymaps/default/keymap.c @@ -0,0 +1,33 @@ +/* Copyright 2021 kb-elmo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_ansi( + KC_F1, KC_F2, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, + KC_F3, KC_F4, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_HOME, + KC_F5, KC_F6, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, + KC_F7, KC_F8, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_F9, KC_F10, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_ansi( + KC_TRNS, KC_TRNS, KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/ziggurat/keymaps/iso/keymap.c b/keyboards/ziggurat/keymaps/iso/keymap.c new file mode 100644 index 00000000000..c994adb55f7 --- /dev/null +++ b/keyboards/ziggurat/keymaps/iso/keymap.c @@ -0,0 +1,33 @@ +/* Copyright 2021 kb-elmo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_iso( + KC_F1, KC_F2, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, + KC_F3, KC_F4, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_HOME, + KC_F5, KC_F6, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGUP, + KC_F7, KC_F8, 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_F9, KC_F10, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_iso( + KC_TRNS, KC_TRNS, KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/ziggurat/keymaps/via/keymap.c b/keyboards/ziggurat/keymaps/via/keymap.c new file mode 100644 index 00000000000..92d3d80ed47 --- /dev/null +++ b/keyboards/ziggurat/keymaps/via/keymap.c @@ -0,0 +1,47 @@ +/* Copyright 2021 kb-elmo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_F1, KC_F2, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_DEL, + KC_F3, KC_F4, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_HOME, + KC_F5, KC_F6, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, + KC_F7, KC_F8, KC_LSFT, KC_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_F9, KC_F10, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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 + ), + [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 + ) +}; diff --git a/keyboards/ziggurat/keymaps/via/rules.mk b/keyboards/ziggurat/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/ziggurat/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/ziggurat/readme.md b/keyboards/ziggurat/readme.md new file mode 100644 index 00000000000..85f88b53617 --- /dev/null +++ b/keyboards/ziggurat/readme.md @@ -0,0 +1,25 @@ +# Ziggurat + + + +An extended 65% keyboard + +* Keyboard Maintainer: [kb-elmo](https://github.com/kb-elmo) +* Hardware Supported: Ziggurat PCB +* Hardware Availability: future groupbuy + +Make example for this keyboard (after setting up your build environment): + + make ziggurat:default + +Flashing example for this keyboard: + + make ziggurat: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). + +## Bootloader + +* **Bootmagic reset**: Hold down the top left key and plug in the keyboard +* **Physical reset button**: Press the button labeled "SW1" on the back of the PCB +* **Keycode in layout**: Press the key mapped to `RESET` if it is available diff --git a/keyboards/ziggurat/rules.mk b/keyboards/ziggurat/rules.mk new file mode 100644 index 00000000000..98db987b2b3 --- /dev/null +++ b/keyboards/ziggurat/rules.mk @@ -0,0 +1,21 @@ +# MCU name +MCU = at90usb1286 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/ziggurat/ziggurat.c b/keyboards/ziggurat/ziggurat.c new file mode 100644 index 00000000000..11afa56b76f --- /dev/null +++ b/keyboards/ziggurat/ziggurat.c @@ -0,0 +1,17 @@ +/* Copyright 2021 kb-elmo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 "ziggurat.h" diff --git a/keyboards/ziggurat/ziggurat.h b/keyboards/ziggurat/ziggurat.h new file mode 100644 index 00000000000..9a8b51b9985 --- /dev/null +++ b/keyboards/ziggurat/ziggurat.h @@ -0,0 +1,91 @@ +/* Copyright 2021 kb-elmo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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( \ + k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k015, k016, k017, \ + k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, k116, k117, \ + k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, k215, k217, \ + k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, k314, k316, k317, \ + k400, k401, k402, k403, k404, k408, k412, k413, k415, k416, k417 \ +) { \ + { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k015, k016, k017 }, \ + { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, ____, k116, k117 }, \ + { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, ____, k215, ____, k217 }, \ + { k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, k314, ____, k316, k317 }, \ + { k400, k401, k402, k403, k404, ____, ____, ____, k408, ____, ____, ____, k412, k413, ____, k415, k416, k417 }, \ +} + +#define LAYOUT_ansi( \ + k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k016, k017, \ + k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, k116, k117, \ + k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, k215, k217, \ + k300, k301, k302, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, k314, k316, k317, \ + k400, k401, k402, k403, k404, k408, k412, k413, k415, k416, k417 \ +) { \ + { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, ____, k016, k017 }, \ + { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, ____, k116, k117 }, \ + { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, ____, k215, ____, k217 }, \ + { k300, k301, k302, ____, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, k314, ____, k316, k317 }, \ + { k400, k401, k402, k403, k404, ____, ____, ____, k408, ____, ____, ____, k412, k413, ____, k415, k416, k417 }, \ +} + +#define LAYOUT_ansi_tsangan( \ + k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k016, k017, \ + k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, k116, k117, \ + k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, k215, k217, \ + k300, k301, k302, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, k314, k316, k317, \ + k400, k401, k402, k403, k404, k408, k413, k415, k416, k417 \ +) { \ + { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, ____, k016, k017 }, \ + { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, ____, k116, k117 }, \ + { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, ____, k215, ____, k217 }, \ + { k300, k301, k302, ____, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, k314, ____, k316, k317 }, \ + { k400, k401, k402, k403, k404, ____, ____, ____, k408, ____, ____, ____, ____, k413, ____, k415, k416, k417 }, \ +} + +#define LAYOUT_iso( \ + k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k016, k017, \ + k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, k117, \ + k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, k215, k116, k217, \ + k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, k314, k316, k317, \ + k400, k401, k402, k403, k404, k408, k412, k413, k415, k416, k417 \ +) { \ + { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, ____, k016, k017 }, \ + { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, ____, k116, k117 }, \ + { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, ____, k215, ____, k217 }, \ + { k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, k314, ____, k316, k317 }, \ + { k400, k401, k402, k403, k404, ____, ____, ____, k408, ____, ____, ____, k412, k413, ____, k415, k416, k417 }, \ +} + +#define LAYOUT_iso_tsangan( \ + k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k016, k017, \ + k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, k117, \ + k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, k215, k116, k217, \ + k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, k314, k316, k317, \ + k400, k401, k402, k403, k404, k408, k413, k415, k416, k417 \ +) { \ + { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, ____, k016, k017 }, \ + { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, ____, k116, k117 }, \ + { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, ____, k215, ____, k217 }, \ + { k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, k314, ____, k316, k317 }, \ + { k400, k401, k402, k403, k404, ____, ____, ____, k408, ____, ____, ____, ____, k413, ____, k415, k416, k417 }, \ +} diff --git a/keyboards/zinc/keymaps/default/rules.mk b/keyboards/zinc/keymaps/default/rules.mk index 883f0fc6030..6fea7875a41 100644 --- a/keyboards/zinc/keymaps/default/rules.mk +++ b/keyboards/zinc/keymaps/default/rules.mk @@ -9,11 +9,10 @@ CONSOLE_ENABLE = no # Console for debug 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 = no # Enable keyboard backlight functionality -MIDI_ENABLE = no # MIDI controls AUDIO_ENABLE = no # Audio output -UNICODE_ENABLE = no # Unicode RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. SWAP_HANDS_ENABLE = no # Enable one-hand typing +LTO_ENABLE = no # if firmware size over limit, try this option define ZINC_CUSTOMISE_MSG $(info Zinc customize) @@ -35,7 +34,6 @@ RGB_MATRIX = no # RGB LED Matrix RGB_MATRIX_SPLIT_RIGHT = no # RGB Matrix for RIGHT Hand LED_ANIMATIONS = yes # LED animations IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone) -Link_Time_Optimization = no # if firmware size over limit, try this option #### LED_BACK_ENABLE and LED_UNDERGLOW_ENABLE. #### Do not enable these with audio at the same time. @@ -121,10 +119,6 @@ ifeq ($(strip $(RGB_MATRIX_SPLIT_RIGHT)), yes) OPT_DEFS += -DRGB_MATRIX_SPLIT_RIGHT endif -ifeq ($(strip $(Link_Time_Optimization)),yes) - EXTRAFLAGS += -flto -DUSE_Link_Time_Optimization -endif - # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend diff --git a/keyboards/zinc/keymaps/ginjake/rules.mk b/keyboards/zinc/keymaps/ginjake/rules.mk index 63e5227ef99..f2cb3633c6e 100644 --- a/keyboards/zinc/keymaps/ginjake/rules.mk +++ b/keyboards/zinc/keymaps/ginjake/rules.mk @@ -15,6 +15,7 @@ UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. SWAP_HANDS_ENABLE = no # Enable one-hand typing +LTO_ENABLE = no # if firmware size over limit, try this option define ZINC_CUSTOMISE_MSG $(info Zinc customize) @@ -33,7 +34,6 @@ LED_BOTH_ENABLE = no # LED backlight and underglow LED_RGB_CONT = no # LED continuous backlight or/and underglow between left Zinc and right Zinc LED_ANIMATIONS = yes # LED animations IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone) -Link_Time_Optimization = no # if firmware size over limit, try this option #### LED_BACK_ENABLE and LED_UNDERGLOW_ENABLE. #### Do not enable these with audio at the same time. @@ -104,10 +104,6 @@ ifeq ($(strip $(LED_ANIMATIONS)), yes) endif -ifeq ($(strip $(Link_Time_Optimization)),yes) - EXTRAFLAGS += -flto -DUSE_Link_Time_Optimization -endif - # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend diff --git a/keyboards/zinc/keymaps/monks/rules.mk b/keyboards/zinc/keymaps/monks/rules.mk index d8ec4497e7a..46646f919ce 100644 --- a/keyboards/zinc/keymaps/monks/rules.mk +++ b/keyboards/zinc/keymaps/monks/rules.mk @@ -15,6 +15,7 @@ UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. SWAP_HANDS_ENABLE = no # Enable one-hand typing +LTO_ENABLE = no # if firmware size over limit, try this option define ZINC_CUSTOMISE_MSG $(info Zinc customize) @@ -33,7 +34,6 @@ LED_BOTH_ENABLE = no # LED backlight and underglow LED_RGB_CONT = no # LED continuous backlight or/and underglow between left Zinc and right Zinc LED_ANIMATIONS = yes # LED animations IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone) -Link_Time_Optimization = no # if firmware size over limit, try this option #### LED_BACK_ENABLE and LED_UNDERGLOW_ENABLE. #### Do not enable these with audio at the same time. @@ -104,10 +104,6 @@ ifeq ($(strip $(LED_ANIMATIONS)), yes) endif -ifeq ($(strip $(Link_Time_Optimization)),yes) - EXTRAFLAGS += -flto -DUSE_Link_Time_Optimization -endif - # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend diff --git a/keyboards/zinc/keymaps/toshi0383/rules.mk b/keyboards/zinc/keymaps/toshi0383/rules.mk index 7860cbd0190..9fef6963a1e 100644 --- a/keyboards/zinc/keymaps/toshi0383/rules.mk +++ b/keyboards/zinc/keymaps/toshi0383/rules.mk @@ -15,6 +15,7 @@ UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. SWAP_HANDS_ENABLE = no # Enable one-hand typing +LTO_ENABLE = no # if firmware size over limit, try this option define ZINC_CUSTOMISE_MSG $(info Zinc customize) @@ -36,7 +37,6 @@ RGB_MATRIX = no # RGB LED Matrix RGB_MATRIX_SPLIT_RIGHT = no # RGB Matrix for RIGHT Hand LED_ANIMATIONS = yes # LED animations IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone) -Link_Time_Optimization = no # if firmware size over limit, try this option #### LED_BACK_ENABLE and LED_UNDERGLOW_ENABLE. #### Do not enable these with audio at the same time. @@ -122,10 +122,6 @@ ifeq ($(strip $(RGB_MATRIX_SPLIT_RIGHT)), yes) OPT_DEFS += -DRGB_MATRIX_SPLIT_RIGHT endif -ifeq ($(strip $(Link_Time_Optimization)),yes) - EXTRAFLAGS += -flto -DUSE_Link_Time_Optimization -endif - # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend diff --git a/keyboards/zinc/rules.mk b/keyboards/zinc/rules.mk index 2a42dddcd74..4edbdd9e325 100644 --- a/keyboards/zinc/rules.mk +++ b/keyboards/zinc/rules.mk @@ -16,7 +16,6 @@ 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 = no # Enable keyboard backlight functionality AUDIO_ENABLE = no # Audio output -UNICODE_ENABLE = no # Unicode RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend RGB_MATRIX_ENABLE = no diff --git a/keyboards/zvecr/split_blackpill/config.h b/keyboards/zvecr/split_blackpill/config.h index 33653abc644..c6ca34779a9 100644 --- a/keyboards/zvecr/split_blackpill/config.h +++ b/keyboards/zvecr/split_blackpill/config.h @@ -99,59 +99,6 @@ */ //#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. diff --git a/keyboards/zvecr/zv48/config.h b/keyboards/zvecr/zv48/config.h index 15ff8c4e843..881282c2865 100644 --- a/keyboards/zvecr/zv48/config.h +++ b/keyboards/zvecr/zv48/config.h @@ -105,59 +105,6 @@ */ //#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. diff --git a/layouts/community/60_ansi/manna-harbour_miryoku/config.h b/layouts/community/60_ansi/manna-harbour_miryoku/config.h index 14bf842165f..81f1ceb42f5 100644 --- a/layouts/community/60_ansi/manna-harbour_miryoku/config.h +++ b/layouts/community/60_ansi/manna-harbour_miryoku/config.h @@ -1,6 +1,6 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . @@ -9,7 +9,7 @@ #define XXX KC_NO #if defined MIRYOKU_MAPPING_NOREVERSEANGLE -#define LAYOUT_miryoku(\ + #define LAYOUT_miryoku(\ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ @@ -22,8 +22,38 @@ K00, K01, K02, K03, K04, XXX, XXX, XXX, K05, K06, K07, K08, K09, XX XXX, K32, K33, K34, XXX, XXX, XXX, XXX, K35, K36, K37, XXX,\ XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX\ ) +#elif defined MIRYOKU_MAPPING_LITE + #if defined MIRYOKU_LAYERS_FLIP + #define LAYOUT_miryoku( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ + N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ +) \ +LAYOUT_60_ansi( \ +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, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, KC_LBRC, KC_RBRC, KC_BSLS, \ +KC_CAPS, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, KC_SCLN, KC_ENT, \ +KC_LSFT, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, KC_RSFT, \ +KC_LCTL, KC_LGUI, KC_LALT, K36, KC_RALT, KC_RGUI, KC_APP, KC_RCTL \ +) + #else + #define LAYOUT_miryoku( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ + N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ +) \ +LAYOUT_60_ansi( \ +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, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, KC_LBRC, KC_RBRC, KC_BSLS, \ +KC_CAPS, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, KC_SCLN, KC_ENT, \ +KC_LSFT, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, KC_RSFT, \ +KC_LCTL, KC_LGUI, KC_LALT, K33, KC_RALT, KC_RGUI, KC_APP, KC_RCTL \ +) + #endif #else -#define LAYOUT_miryoku(\ + #define LAYOUT_miryoku(\ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ diff --git a/layouts/community/60_ansi/manna-harbour_miryoku/keymap.c b/layouts/community/60_ansi/manna-harbour_miryoku/keymap.c index 1520387e888..7c5717a0fee 100644 --- a/layouts/community/60_ansi/manna-harbour_miryoku/keymap.c +++ b/layouts/community/60_ansi/manna-harbour_miryoku/keymap.c @@ -1,5 +1,5 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/layouts/community/60_ansi/mechmerlin-ansi/keymap.c b/layouts/community/60_ansi/mechmerlin-ansi/keymap.c index 5ae09ec0869..97116462acb 100644 --- a/layouts/community/60_ansi/mechmerlin-ansi/keymap.c +++ b/layouts/community/60_ansi/mechmerlin-ansi/keymap.c @@ -11,23 +11,23 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_FL] = 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, \ - BL_TOGG, BL_INC, BL_DEC, BL_STEP, 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_SAI, RGB_VAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ - VLK_TOG, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, KC_TRNS, MO(_CL), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + BL_TOGG, BL_INC, BL_DEC, BL_STEP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, \ + VLK_TOG, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, \ + _______, _______, _______, MO(_CL), _______, _______, _______, _______), [_AL] = LAYOUT_60_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_UP, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT), + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, \ + _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT), [_CL] = LAYOUT_60_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, EEP_RST, 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), + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, EEP_RST, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, KC_VER, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______), }; diff --git a/layouts/community/60_ansi/mechmerlin-ansi/readme.md b/layouts/community/60_ansi/mechmerlin-ansi/readme.md index 1e8d6de597f..5e9c4f1a881 100644 --- a/layouts/community/60_ansi/mechmerlin-ansi/readme.md +++ b/layouts/community/60_ansi/mechmerlin-ansi/readme.md @@ -5,8 +5,7 @@ YouTube channel. It is used on his * [1up60HSE](https://github.com/qmk/qmk_firmware/tree/master/keyboards/1upkeyboards/1up60hse) -* [dz60rgb-ansi](https://github.com/qmk/qmk_firmware/tree/master/keyboards/dztech/dz60rgb) -* [HS60 V2](https://github.com/qmk/qmk_firmware/tree/master/keyboards/hs60/v2) +* [DZ60rgb-ANSI V1](https://github.com/qmk/qmk_firmware/tree/master/keyboards/dztech/dz60rgb) ## Keymap Notes - Arrow toggle switch is tapping the `FN` key once. diff --git a/layouts/community/60_ansi_split_bs_rshift/mechmerlin-split/keymap.c b/layouts/community/60_ansi_split_bs_rshift/mechmerlin-split/keymap.c index 2b822863810..2cea4fd44ff 100644 --- a/layouts/community/60_ansi_split_bs_rshift/mechmerlin-split/keymap.c +++ b/layouts/community/60_ansi_split_bs_rshift/mechmerlin-split/keymap.c @@ -11,23 +11,23 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_FL] = LAYOUT_60_ansi_split_bs_rshift( 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, \ - BL_TOGG, BL_INC, BL_DEC, BL_STEP, RESET, 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_SAI, RGB_VAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ - VLK_TOG, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, KC_TRNS, MO(_CL), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + BL_TOGG, BL_INC, BL_DEC, BL_STEP, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, \ + VLK_TOG, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, \ + _______, _______, _______, MO(_CL), _______, _______, _______, _______), [_AL] = LAYOUT_60_ansi_split_bs_rshift( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT), + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, \ + _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT), [_CL] = LAYOUT_60_ansi_split_bs_rshift( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, KC_TRNS, EEP_RST, 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) + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, EEP_RST, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, KC_VER, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______) }; diff --git a/layouts/community/60_ansi_split_bs_rshift/mechmerlin-split/readme.md b/layouts/community/60_ansi_split_bs_rshift/mechmerlin-split/readme.md index e3f6311b191..f883a3d0469 100644 --- a/layouts/community/60_ansi_split_bs_rshift/mechmerlin-split/readme.md +++ b/layouts/community/60_ansi_split_bs_rshift/mechmerlin-split/readme.md @@ -10,6 +10,7 @@ It is used on his * [Sentraq S60-X RGB](https://github.com/qmk/qmk_firmware/tree/master/keyboards/s60_x) * [Waldo](https://github.com/qmk/qmk_firmware/tree/master/keyboards/waldo) * [Zeal60 Rev4](https://github.com/qmk/qmk_firmware/tree/master/keyboards/zeal60) +* [AN-C](https://github.com/qmk/qmk_firmware/tree/master/keyboards/cannonkeys/an_c) ## Keymap Notes - Highly influenced by the KBP V60 and WKL B.Face standard layouts diff --git a/layouts/community/65_ansi/mechmerlin/keymap.c b/layouts/community/65_ansi/mechmerlin/keymap.c index df75b11f3f7..47990836617 100644 --- a/layouts/community/65_ansi/mechmerlin/keymap.c +++ b/layouts/community/65_ansi/mechmerlin/keymap.c @@ -50,7 +50,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, EEP_RST, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, KC_VER, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), }; diff --git a/layouts/community/65_ansi_blocker/mechmerlin/keymap.c b/layouts/community/65_ansi_blocker/mechmerlin/keymap.c index 0ce4f38c64a..d82a6327d19 100644 --- a/layouts/community/65_ansi_blocker/mechmerlin/keymap.c +++ b/layouts/community/65_ansi_blocker/mechmerlin/keymap.c @@ -37,7 +37,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, EEP_RST, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, KC_VER, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) }; diff --git a/layouts/community/65_ansi_blocker/mechmerlin/readme.md b/layouts/community/65_ansi_blocker/mechmerlin/readme.md index 70ee6e385f4..1649c889743 100644 --- a/layouts/community/65_ansi_blocker/mechmerlin/readme.md +++ b/layouts/community/65_ansi_blocker/mechmerlin/readme.md @@ -6,6 +6,7 @@ YouTube channel. It is used on his * [RGB Doro67](https://github.com/qmk/qmk_firmware/tree/master/keyboards/doro67/rgb) * [KBD67 mkii](https://github.com/qmk/qmk_firmware/tree/master/keyboards/kbdfans/kbd67/mkiirgb/v1) +* [Iron 165](https://github.com/qmk/qmk_firmware/tree/master/keyboards/cannonkeys/iron165) ### Build To build the firmware file associated with this keymap, simply run `make your_keyboard:mechmerlin`. \ No newline at end of file diff --git a/layouts/community/66_ansi/mechmerlin/keymap.c b/layouts/community/66_ansi/mechmerlin/keymap.c index 8de35811d9d..737b52e84cd 100644 --- a/layouts/community/66_ansi/mechmerlin/keymap.c +++ b/layouts/community/66_ansi/mechmerlin/keymap.c @@ -20,6 +20,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { BL_STEP,RGB_M_P,RGB_M_B,RGB_M_R,RGB_M_SW,RGB_M_SN,RGB_M_K,RGB_M_X,RGB_M_G,_______,_______,_______,_______, _______, RGB_VAI, \ _______,_______,_______,EEP_RST,RESET, _______,_______,_______,_______,_______,_______,_______,_______,_______, RGB_VAD, \ _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \ - VLK_TOG, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, RGB_SAI, \ + VLK_TOG, _______,_______,_______,KC_VER,_______,_______,_______,_______,_______,_______, _______, RGB_SAI, \ CK_TOGG,_______,_______, _______, _______,_______,_______,RGB_HUD,RGB_SAD,RGB_HUI), }; diff --git a/layouts/community/68_ansi/mechmerlin/keymap.c b/layouts/community/68_ansi/mechmerlin/keymap.c index b3789d84a43..19f30f8f001 100644 --- a/layouts/community/68_ansi/mechmerlin/keymap.c +++ b/layouts/community/68_ansi/mechmerlin/keymap.c @@ -20,6 +20,6 @@ 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EEP_RST, 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_VER, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), }; \ No newline at end of file diff --git a/layouts/community/75_ansi/mechmerlin-75_ansi/keymap.c b/layouts/community/75_ansi/mechmerlin-75_ansi/keymap.c index c239e268342..387f2d9edbe 100644 --- a/layouts/community/75_ansi/mechmerlin-75_ansi/keymap.c +++ b/layouts/community/75_ansi/mechmerlin-75_ansi/keymap.c @@ -12,20 +12,18 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FL), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [_FL] = LAYOUT_75_ansi(\ - RESET, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, RGB_M_K, RGB_M_X, RGB_M_G, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, 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_TOGG, BL_INC, BL_DEC, BL_STEP, 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_SAI, RGB_VAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - VLK_TOG, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, KC_PGUP, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, MO(_CL), KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END), + _______, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, RGB_M_K, RGB_M_X, RGB_M_G, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_TOGG, BL_INC, BL_DEC, BL_STEP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + VLK_TOG, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, KC_PGUP, _______, + _______, _______, _______, MO(_CL), _______, _______, _______, KC_HOME, KC_PGDN, KC_END), [_CL] = LAYOUT_75_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, EEP_RST, 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_PGUP, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - - + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, EEP_RST, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, KC_VER, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), }; diff --git a/layouts/community/75_ansi/mechmerlin-75_ansi/readme.md b/layouts/community/75_ansi/mechmerlin-75_ansi/readme.md index d406155bc7f..8205abe283e 100644 --- a/layouts/community/75_ansi/mechmerlin-75_ansi/readme.md +++ b/layouts/community/75_ansi/mechmerlin-75_ansi/readme.md @@ -3,9 +3,7 @@ This is the 75% layout used by u/merlin36, host of the [MechMerlin](www.youtube.com/mechmerlin) YouTube channel. -It is used on his -* [Duck Octagon V2](https://github.com/qmk/qmk_firmware/tree/master/keyboards/duck/octagon/v2) -* [XD84](https://github.com/qmk/qmk_firmware/tree/master/keyboards/xd84) +MechMerlin currently has no keyboard supporting this layout. ### Build To build the firmware file associated with this keymap, simply run `make your_keyboard:mechmerlin-ansi`. diff --git a/layouts/community/ergodox/algernon/tools/log-to-heatmap.py b/layouts/community/ergodox/algernon/tools/log-to-heatmap.py index e927e0e39d4..5f52d9932ba 100755 --- a/layouts/community/ergodox/algernon/tools/log-to-heatmap.py +++ b/layouts/community/ergodox/algernon/tools/log-to-heatmap.py @@ -8,7 +8,6 @@ import time from math import floor from os.path import dirname -from subprocess import Popen, PIPE, STDOUT from blessings import Terminal class Heatmap(object): @@ -122,7 +121,6 @@ class Heatmap(object): for (c, r) in self.log: coords = self.coord(c, r) - b, n = coords cap = self.max_cnt if cap == 0: cap = 1 @@ -302,7 +300,7 @@ def main(opts): break if not process_line(line, heatmaps, opts): continue - except: + except Exception: pass stamped_log = open ("%s/stamped-log" % (out_dir), "a+") diff --git a/layouts/community/ergodox/algernon/tools/text-to-log.py b/layouts/community/ergodox/algernon/tools/text-to-log.py index f080c32cd0d..ba60a2e281d 100755 --- a/layouts/community/ergodox/algernon/tools/text-to-log.py +++ b/layouts/community/ergodox/algernon/tools/text-to-log.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -import os import sys charmap = { diff --git a/layouts/community/ergodox/drashna/keymap.c b/layouts/community/ergodox/drashna/keymap.c index 430328fed7f..dd47899d7ad 100644 --- a/layouts/community/ergodox/drashna/keymap.c +++ b/layouts/community/ergodox/drashna/keymap.c @@ -174,7 +174,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_MAKE, _______, _______, _______, _______, _______, UC_MOD, KC_NUKE, _________________ADJUST_R1_________________, KC_RST, VRSN, _________________ADJUST_L1_________________, _______, _______, _________________ADJUST_R1_________________, EEP_RST, _______, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, RGB_IDL, - _______, _________________ADJUST_L3_________________, _______, _______, _________________ADJUST_R3_________________, TG_MODS, + KEYLOCK, _________________ADJUST_L3_________________, _______, _______, _________________ADJUST_R3_________________, TG_MODS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/layouts/community/ergodox/french_hacker/keymap.c b/layouts/community/ergodox/french_hacker/keymap.c index b4c8e37bd99..44b0c47860e 100644 --- a/layouts/community/ergodox/french_hacker/keymap.c +++ b/layouts/community/ergodox/french_hacker/keymap.c @@ -7,82 +7,64 @@ #define BASE 0 // default Colemak Mod-DH layer #define SYMB 1 // symbols #define MDIA 2 // media keys -#define ACC 3 // accented characters - -#define QCOPY 0 // Qubes OS VM to VM copy -#define QPASTE 1 // Qubes OS VM to VM paste -#define M_ACIRC 2 // â -#define M_ECIRC 3 // ê -#define M_ICIRC 4 // î -#define M_OCIRC 5 // ô -#define M_UCIRC 6 // û -#define M_YCIRC 7 // ŷ -#define M_AUMLT 8 // ä -#define M_EUMLT 9 // ë -#define M_IUMLT 10 // ï -#define M_OUMLT 11 // ö -#define M_UUMLT 12 // ü -#define M_YUMLT 13 // ÿ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 0: Base Colemak Mod-DH layer * * ,--------------------------------------------------. ,--------------------------------------------------. - * | Esc | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | | + * | Esc | & _1 | é _2 | " _3 | ' _4 | ( _5 | | | | - _6 | è _7 | _ _8 | ç _9 | à _0 | | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | Q | W | F | P | B | TO(0)| |TO(2) | J | L | U | Y | ; | | + * | | Q | W | F | P | B | TO(0)| |TO(2) | J | L | U | Y | ; | Ins | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * | Tab | A | R | S | T | G |------| |------| M | N | E | I | O | Bcksp | - * |--------+------+------+------+------+------| TO(1)| |OSL(3)|------+------+------+------+------+--------| + * |--------+------+------+------+------+------| TO(1)| | MEH |------+------+------+------+------+--------| * | LShift | Z | X | C | D | V | | | | K | H | , | . | : | Rshift | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | Ins | Caps | Left | Right| MO(2)| | MO(2)| Down | Up | PgDn | PgUp | + * | ù | | Left | Right| MO(2)| | MO(2)| Down | Up | PgDn | PgUp | * `----------------------------------' `----------------------------------' * ,-------------. ,-------------. - * |QCopy | Ralt | | Ralt |QPaste| - * ,------|------|------| |------+------+------. - * | | | Home | | End | | | - * | Space| Ctrl |------| |------| Ctrl |Enter | - * | | | LAlt | | LAlt | | | - * `--------------------' `--------------------' + * | | Ralt | | Ralt | | + * ,-------|------|------| |------+------+------. + * | | | Home | | End | | | + * | Space | Ctrl |------| |------| Ctrl | Enter | + * | | | LAlt | | LAlt | | | + * `---------------------' `---------------------' */ - // If it accepts an argument (i.e, is a function), it doesn't need KC_. -// Otherwise, it needs KC_* [BASE] = LAYOUT_ergodox( // layer 0 : default // left hand - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, - KC_TRNS, FR_Q, FR_W, KC_F, KC_P, KC_B, TO(BASE), - KC_TAB, FR_A, KC_R, KC_S, KC_T, KC_G, - KC_LSFT, FR_Z, KC_X, KC_C, KC_D, KC_V, TO(SYMB), - KC_INS, KC_CAPS, KC_LEFT,KC_RIGHT, MO(SYMB), - M(QCOPY), KC_RALT, + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_NO, + KC_NO, FR_Q, FR_W, KC_F, KC_P, KC_B, TO(BASE), + KC_TAB, FR_A, KC_R, KC_S, KC_T, KC_G, + KC_LSFT, FR_Z, KC_X, KC_C, KC_D, KC_V, TO(SYMB), + FR_UGRV, KC_NO, KC_LEFT, KC_RIGHT, MO(SYMB), + KC_NO, KC_RALT, KC_HOME, KC_SPC,KC_LCTRL, KC_LALT, // right hand - KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, - TO(MDIA), KC_J, KC_L, KC_U, KC_Y, FR_SCLN, KC_TRNS, - FR_M, KC_N, KC_E, KC_I, KC_O, KC_BSPC, - OSL(ACC), KC_K, KC_H, FR_COMM, FR_DOT, FR_COLN, KC_RSFT, - MO(SYMB), KC_DOWN, KC_UP, KC_PGDN, KC_PGUP, + KC_NO, KC_6, KC_7, KC_8, KC_9, KC_0, KC_NO, + TO(MDIA), KC_J, KC_L, KC_U, KC_Y, FR_SCLN, KC_INS, + FR_M, KC_N, KC_E, KC_I, KC_O, KC_BSPC, + OSM(MOD_MEH), KC_K, KC_H, FR_COMM, FR_DOT, FR_COLN, KC_RSFT, + MO(SYMB), KC_DOWN, KC_UP, KC_PGDN, KC_PGUP, - KC_RALT, M(QPASTE), + KC_RALT, KC_NO, KC_END, KC_LALT,KC_RCTL, KC_ENT ), /* Keymap 1: Symbol Layer - * // TODO missing: ¤ + * * ,--------------------------------------------------. ,--------------------------------------------------. * |Version | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | § | < | { | \ | ~ | | | | % | @ | } | > | µ | F12 | + * | | § | < | { | \ | ~ | | | | % | @ | } | > | ¨ | F12 | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * | | ' | = | - | ( | + |------| |------| * | ) | _ | / | " | | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * | | ` | ? | # | [ | | | | | | & | ] | $ | ! | ^ | | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | € | £ | $ | | | | | | | ß | | + * | € | £ | ¤ | ² | | | | ° | µ | ß | | * `----------------------------------' `----------------------------------' * ,-------------. ,-------------. * | | | | | | @@ -95,20 +77,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // SYMBOLS [SYMB] = LAYOUT_ergodox( // left hand - M(0), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, - KC_TRNS,FR_SECT,FR_LABK, FR_LCBR,FR_BSLS,FR_TILD,KC_TRNS, - KC_TRNS,FR_QUOT,FR_EQL, FR_MINS,FR_LPRN,FR_PLUS, - KC_TRNS,FR_GRV,FR_QUES,FR_HASH,FR_LBRC,FR_PIPE,KC_TRNS, - FR_EURO,FR_PND,FR_DLR,KC_TRNS,KC_TRNS, + M(0), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_TRNS, FR_SECT, FR_LABK, FR_LCBR, FR_BSLS, FR_TILD, KC_TRNS, + KC_TRNS, FR_QUOT, FR_EQL, FR_MINS, FR_LPRN, FR_PLUS, + KC_TRNS, FR_GRV, FR_QUES, FR_HASH, FR_LBRC, FR_PIPE, KC_TRNS, + FR_EURO, FR_PND, FR_CURR, FR_SUP2, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, // right hand - KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, - KC_TRNS, FR_PERC, FR_AT, FR_RCBR, FR_RABK, FR_MICR, KC_F12, - FR_ASTR, FR_RPRN, FR_UNDS, FR_SLSH, FR_DQUO, KC_TRNS, - KC_TRNS, FR_AMPR, FR_RBRC, FR_DLR, FR_EXLM, FR_CIRC, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, ALGR(KC_S), KC_TRNS, + KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, FR_PERC, FR_AT, FR_RCBR, FR_RABK, FR_DIAE, KC_F12, + FR_ASTR, FR_RPRN, FR_UNDS, FR_SLSH, FR_DQUO, KC_TRNS, + KC_TRNS, FR_AMPR, FR_RBRC, FR_DLR, FR_EXLM, FR_CIRC, KC_TRNS, + KC_TRNS, FR_DEG, FR_MICR, ALGR(KC_S), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS @@ -154,178 +136,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_WBAK ), - -/* Keymap 3: accented characters - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | | | | | | | | | | | | | | | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | à | â | ä | | | | | | | î | ï | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | é | è | ê | ë | |------| |------| | | ô | ö | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | ù | û | ü | | | | | | | ŷ | ÿ | | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | | | | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | | | - * | | |------| |------| | | - * | | | | | | | | - * `--------------------' `--------------------' - */ -// ACCENTED CHARACTERS -[ACC] = LAYOUT_ergodox( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - - KC_TRNS, KC_TRNS, FR_AGRV, M(M_ACIRC), M(M_AUMLT), KC_TRNS, KC_TRNS, - KC_TRNS, FR_EACU, FR_EGRV, M(M_ECIRC), M(M_EUMLT), KC_TRNS, - KC_TRNS, KC_TRNS, FR_UGRV, M(M_UCIRC), M(M_UUMLT), KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, - // right hand - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, M(M_ICIRC), M(M_IUMLT), KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, M(M_OCIRC), M(M_OUMLT), KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, M(M_YCIRC), M(M_YUMLT), KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS -), -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case QCOPY: - if (record->event.pressed) { - return MACRO(I(255), - D(LCTRL), - T(C), - D(LSFT), - T(C), - U(LCTRL), - U(LSFT), - END); - } - break; - case QPASTE: - if (record->event.pressed) { - return MACRO(I(255), - D(LCTRL), - D(LSFT), - T(V), - U(LCTRL), - T(INS), - U(LSFT), - END); - } - break; - case M_ACIRC: - if (record->event.pressed) { - return MACRO(T(LBRC), // FR_CIRC - T(Q), // FR_A - END); - } - break; - case M_ECIRC: - if (record->event.pressed) { - return MACRO(T(LBRC), // FR_CIRC - T(E), - END); - } - break; - case M_UCIRC: - if (record->event.pressed) { - return MACRO(T(LBRC), // FR_CIRC - T(U), - END); - } - break; - case M_ICIRC: - if (record->event.pressed) { - return MACRO(T(LBRC), // FR_CIRC - T(I), - END); - } - break; - case M_OCIRC: - if (record->event.pressed) { - return MACRO(T(LBRC), // FR_CIRC - T(O), - END); - } - break; - case M_YCIRC: - if (record->event.pressed) { - return MACRO(T(LBRC), // FR_CIRC - T(Y), - END); - } - break; - case M_AUMLT: - if (record->event.pressed) { - return MACRO(D(LSFT), - T(LBRC), - U(LSFT), - T(Q), - END); - } - break; - case M_EUMLT: - if (record->event.pressed) { - return MACRO(D(LSFT), - T(LBRC), - U(LSFT), - T(E), - END); - } - break; - case M_UUMLT: - if (record->event.pressed) { - return MACRO(D(LSFT), - T(LBRC), - U(LSFT), - T(U), - END); - } - break; - case M_IUMLT: - if (record->event.pressed) { - return MACRO(D(LSFT), - T(LBRC), - U(LSFT), - T(I), - END); - } - break; - case M_OUMLT: - if (record->event.pressed) { - return MACRO(D(LSFT), - T(LBRC), - U(LSFT), - T(O), - END); - } - break; - case M_YUMLT: - if (record->event.pressed) { - return MACRO(D(LSFT), - T(LBRC), - U(LSFT), - T(Y), - END); - } - break; - - } - return MACRO_NONE; }; // Runs just one time when the keyboard initializes. @@ -350,9 +160,6 @@ void matrix_scan_user(void) { case MDIA: ergodox_right_led_2_on(); break; - case ACC: - ergodox_right_led_3_on(); - break; default: // none break; diff --git a/layouts/community/ergodox/french_hacker/readme.md b/layouts/community/ergodox/french_hacker/readme.md index 6b0575af136..829013597a0 100644 --- a/layouts/community/ergodox/french_hacker/readme.md +++ b/layouts/community/ergodox/french_hacker/readme.md @@ -1,30 +1,27 @@ # French hacker layout -## Introduction - [Colemak Mod-DH](https://colemakmods.github.io/mod-dh/) layout for users keeping an `azerty` layout configuration on their OS. +## Introduction + This keymap is for users keeping their operating systems configured with -`azerty` - for typing passwords or in their native languages - but who -wants a Colemak Mod-DH layout on their mechanical. +`azerty` - for typing passwords in their native languages, or for their laptop +keyboard - but who wants a Colemak Mod-DH layout on their mechanical keyboard. The symbols layers was done after analysing various programming languages sources codes and should be close to optimal for typing -confort. - -Special macros for [Qubes OS](https://www.qubes-os.org/) are included. - -There is an accented characters layer for infrequent typing of french -accents. +confort, see the link at the end of the README. -Special macros for [Qubes OS](https://www.qubes-os.org/) are included. +The design is done to minimize the usage of the pinky fingers and reduces stress +on the hands, thus Alt and Ctrl keys are accessible for both hands. -## Build +## Flashing the firmware - cd keyboards/ergodox - make french_hacker +``` +qmk flash -kb ergodox_ez -km french_hacker +``` ## Design explanations -See my [blog post](http://dialectical-computing.de/blog/blog/2017/01/29/a-better-coder-layout-for-the-ergodox-ez-keyboard/). +See my [blog post](http://www.dialectical-computing.de/blog/blog/2017/01/29/a-better-coder-layout-for-the-ergodox-ez-keyboard/). diff --git a/layouts/community/ergodox/german-manuneo/compile_keymap.py b/layouts/community/ergodox/german-manuneo/compile_keymap.py index 9ad5c88ecca..df5d4298426 100644 --- a/layouts/community/ergodox/german-manuneo/compile_keymap.py +++ b/layouts/community/ergodox/german-manuneo/compile_keymap.py @@ -584,11 +584,6 @@ def unicode_macro_cases(config): for macro_id, uc_hex in config['unicode_macros'].items(): hi = int(uc_hex, 16) >> 8 lo = int(uc_hex, 16) & 0xFF - unimacro_keys = ", ".join( - "T({})".format( - "KP_" + digit if digit.isdigit() else digit - ) for digit in uc_hex - ) yield UNICODE_MACRO_TEMPLATE.format( macro_id=macro_id, hi=hi, lo=lo ) diff --git a/layouts/community/ergodox/manna-harbour_miryoku/config.h b/layouts/community/ergodox/manna-harbour_miryoku/config.h index 836193ddce3..10c61fdfdc7 100644 --- a/layouts/community/ergodox/manna-harbour_miryoku/config.h +++ b/layouts/community/ergodox/manna-harbour_miryoku/config.h @@ -1,6 +1,6 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/layouts/community/ergodox/manna-harbour_miryoku/keymap.c b/layouts/community/ergodox/manna-harbour_miryoku/keymap.c index 1520387e888..7c5717a0fee 100644 --- a/layouts/community/ergodox/manna-harbour_miryoku/keymap.c +++ b/layouts/community/ergodox/manna-harbour_miryoku/keymap.c @@ -1,5 +1,5 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/layouts/community/ortho_4x10/manna-harbour_miryoku/config.h b/layouts/community/ortho_4x10/manna-harbour_miryoku/config.h index 7142f2960d0..b1e9526f991 100644 --- a/layouts/community/ortho_4x10/manna-harbour_miryoku/config.h +++ b/layouts/community/ortho_4x10/manna-harbour_miryoku/config.h @@ -1,20 +1,37 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General 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 XXX KC_NO + +#if defined MIRYOKU_MAPPING_ROTATE +#define LAYOUT_miryoku( \ +K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ +K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ +K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ +N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ +) \ +LAYOUT_ortho_4x10( \ +XXX, XXX, K37, K36, K35, K34, K33, K32, XXX, XXX, \ +K29, K28, K27, K26, K25, K24, K23, K22, K21, K20, \ +K19, K18, K17, K16, K15, K14, K13, K12, K11, K10, \ +K09, K08, K07, K06, K05, K04, K03, K02, K01, K00 \ +) +#else #define LAYOUT_miryoku(\ -K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ -K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ -K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ -N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\ -)\ -LAYOUT_ortho_4x10(\ -K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ -K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ -K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ -KC_NO, KC_NO, K32, K33, K34, K35, K36, K37, KC_NO, KC_NO\ +K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ +K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ +K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ +N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ +) \ +LAYOUT_ortho_4x10( \ +K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ +K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ +K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ +XXX, XXX, K32, K33, K34, K35, K36, K37, XXX, XXX \ ) +#endif diff --git a/layouts/community/ortho_4x10/manna-harbour_miryoku/keymap.c b/layouts/community/ortho_4x10/manna-harbour_miryoku/keymap.c index 1520387e888..7c5717a0fee 100644 --- a/layouts/community/ortho_4x10/manna-harbour_miryoku/keymap.c +++ b/layouts/community/ortho_4x10/manna-harbour_miryoku/keymap.c @@ -1,5 +1,5 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/layouts/community/ortho_4x12/ajp10304/keymap.c b/layouts/community/ortho_4x12/ajp10304/keymap.c index c55e99af79b..4d9ddb12453 100644 --- a/layouts/community/ortho_4x12/ajp10304/keymap.c +++ b/layouts/community/ortho_4x12/ajp10304/keymap.c @@ -111,7 +111,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Mouse * ,-----------------------------------------------------------------------------------. - * | ESC | | | | | | | | BTN3 | | | | + * | ESC | | | | | | WH_L | WH_UP| BTN3 | WH_D | WH_R | | * |------+------+------+------+------+-------------+------+------+------+------+------| * | ACC0 | ACC1 | ACC2 | | | | | BTN1 | UP | BTN2 | | | * |------+------+------+------+------+------|------+------+------+------+------+------| @@ -121,10 +121,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_MOUSE] = LAYOUT_ortho_4x12( - KC_ESC , _______, _______, _______, _______, _______, _______, _______, KC_MS_BTN3, _______, _______, _______, - KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, _______, _______, _______, _______, KC_MS_BTN1, KC_MS_UP, KC_MS_BTN2, _______, _______, - KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, _______, _______, _______, _______, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + KC_ESC , _______, _______, _______, _______, _______, KC_MS_WH_LEFT, KC_MS_WH_UP, KC_MS_BTN3, KC_MS_WH_DOWN, KC_MS_WH_RIGHT, _______, + KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, _______, _______, _______, _______, KC_MS_BTN1, KC_MS_UP, KC_MS_BTN2, _______, _______, + KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, _______, _______, _______, _______, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), /* Num Pad diff --git a/layouts/community/ortho_4x12/ajp10304/readme.md b/layouts/community/ortho_4x12/ajp10304/readme.md index be6afa6fe4a..6db0b851d92 100644 --- a/layouts/community/ortho_4x12/ajp10304/readme.md +++ b/layouts/community/ortho_4x12/ajp10304/readme.md @@ -101,7 +101,7 @@ Activated when `fn` and `raise` held together. | | | | | | | | | | | | | | :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| -| ESC | | | | | | | | BTN3 | | | | +| ESC | | | | | | W_L | W_UP | BTN3 | W_DWN| W_R | | | ACC0 | ACC1 | ACC2 | | | | | BTN1 | UP | BTN2 | | | | ACC0 | ACC1 | ACC2 | | | | | LEFT | DOWN | RIGHT| | | | | | | | | | | | | | | | diff --git a/layouts/community/ortho_4x12/drashna/keymap.c b/layouts/community/ortho_4x12/drashna/keymap.c index cb3166c9403..3ba9cf64f97 100644 --- a/layouts/community/ortho_4x12/drashna/keymap.c +++ b/layouts/community/ortho_4x12/drashna/keymap.c @@ -106,7 +106,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_MAKE, _________________ADJUST_L1_________________, _________________ADJUST_R1_________________, KC_RST, VRSN, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, EEP_RST, TH_LVL, _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, RGB_IDL, - HPT_TOG, _______, _______, _______, _______, KC_NUKE, _______, _______, _______, _______, _______, TG_MODS + KEYLOCK, _______, _______, _______, _______, KC_NUKE, _______, _______, _______, _______, _______, TG_MODS ) }; diff --git a/layouts/community/ortho_4x12/manna-harbour_miryoku/config.h b/layouts/community/ortho_4x12/manna-harbour_miryoku/config.h index 8ccab4da9f6..5d7ccd257f7 100644 --- a/layouts/community/ortho_4x12/manna-harbour_miryoku/config.h +++ b/layouts/community/ortho_4x12/manna-harbour_miryoku/config.h @@ -1,6 +1,6 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/layouts/community/ortho_4x12/manna-harbour_miryoku/keymap.c b/layouts/community/ortho_4x12/manna-harbour_miryoku/keymap.c index 1520387e888..7c5717a0fee 100644 --- a/layouts/community/ortho_4x12/manna-harbour_miryoku/keymap.c +++ b/layouts/community/ortho_4x12/manna-harbour_miryoku/keymap.c @@ -1,5 +1,5 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/layouts/community/ortho_5x12/drashna/keymap.c b/layouts/community/ortho_5x12/drashna/keymap.c index 01b06d627d4..ab70be2822c 100644 --- a/layouts/community/ortho_5x12/drashna/keymap.c +++ b/layouts/community/ortho_5x12/drashna/keymap.c @@ -124,7 +124,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_MAKE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_RST, VRSN, _________________ADJUST_L1_________________, _________________ADJUST_R1_________________, EEP_RST, _______, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, RGB_IDL, - _______, _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, TG_MODS, + KEYLOCK, _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, TG_MODS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) }; diff --git a/layouts/community/ortho_5x12/manna-harbour_miryoku/config.h b/layouts/community/ortho_5x12/manna-harbour_miryoku/config.h index 86b854db5c2..927567fe4be 100644 --- a/layouts/community/ortho_5x12/manna-harbour_miryoku/config.h +++ b/layouts/community/ortho_5x12/manna-harbour_miryoku/config.h @@ -1,6 +1,6 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/layouts/community/ortho_5x12/manna-harbour_miryoku/keymap.c b/layouts/community/ortho_5x12/manna-harbour_miryoku/keymap.c index 1520387e888..7c5717a0fee 100644 --- a/layouts/community/ortho_5x12/manna-harbour_miryoku/keymap.c +++ b/layouts/community/ortho_5x12/manna-harbour_miryoku/keymap.c @@ -1,5 +1,5 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/layouts/community/ortho_5x12/riblee/keymap.c b/layouts/community/ortho_5x12/riblee/keymap.c index eb5f1af8071..b7224837598 100644 --- a/layouts/community/ortho_5x12/riblee/keymap.c +++ b/layouts/community/ortho_5x12/riblee/keymap.c @@ -84,17 +84,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+-------------+------+------+------+------+------| * | Esc | A | R | S | T | D | H | N | E | I | O | " | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | + * | Shift| Z | X | C | V | B | K | M | , | . | Up |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | / | Left | Down |Right | * `-----------------------------------------------------------------------------------' */ [_COLEMAK] = 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_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_DEL, KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, - BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_UP, KC_ENT, + BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT ), /* Dvorak @@ -118,6 +118,27 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT ), +/* Workman + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | D | R | W | B | J | F | U | P | ; | Del | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Esc | A | S | H | T | G | Y | N | E | O | I | ' | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Shift| Z | X | M | C | V | K | L | , | . | Up |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | / | Left | Down |Right | + * `-----------------------------------------------------------------------------------' + */ +[_WORKMAN] = 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_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_SCLN, KC_DEL, + KC_ESC, KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, KC_DOT, KC_UP, KC_ENT, + BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT +), + /* Lower * ,-----------------------------------------------------------------------------------. * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | @@ -126,7 +147,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+-------------+------+------+------+------+------| * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | F7 | F8 | F9 | F10 | F11 | F12 | | Home | End | MS_U | BTN2 | + * | | F7 | F8 | F9 | F10 | F11 | F12 | Ins | Home | End | MS_U | BTN2 | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | BTN1 | BTN2 | | BTN1 | MS_L | MS_D | MS_R | * `-----------------------------------------------------------------------------------' @@ -135,7 +156,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_LBRC, KC_RBRC, 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, _______, KC_HOME, KC_END, KC_MS_U, KC_BTN2, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_HOME, KC_END, KC_MS_U, KC_BTN2, _______, _______, _______, _______, _______, KC_BTN1, KC_BTN2, _______, KC_BTN1, KC_MS_L, KC_MS_D, KC_MS_R ), @@ -164,21 +185,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------------------------------------------------. * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | |Reset |Debug | | | | | | | | | Del | + * | |Reset |Debug | | | | | | | Ins |Prt sc| Del | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | |Mu mod|Aud on|AudOff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| HUN | | + * | | |Mu mod|Aud on|AudOff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| HUN |Wrkmn | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | | | | | | NKRO | Swap |Un swp|UC Mod| | | + * | | | | | | | NKRO | Mac |Linux | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ [_ADJUST] = LAYOUT_ortho_5x12( - 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, DEBUG, _______, _______, _______, _______, TERM_ON, TERM_OFF,_______, _______, KC_DEL, - _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, HUNGARIAN, _______, - _______, _______, _______, _______, _______, _______, NK_TOGG, LCG_SWP, LCG_NRM, UC_MOD, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + 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, DEBUG, _______, _______, _______, _______, TERM_ON, TERM_OFF, KC_INS, KC_PSCR, KC_DEL, + _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, HUNGARIAN, WORKMAN, + _______, _______, _______, _______, _______, _______, NK_TOGG, CG_NORM, CG_SWAP, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) }; \ No newline at end of file diff --git a/layouts/community/ortho_5x15/manna-harbour_miryoku/config.h b/layouts/community/ortho_5x15/manna-harbour_miryoku/config.h index f9ccbdf2dfc..42e03851699 100644 --- a/layouts/community/ortho_5x15/manna-harbour_miryoku/config.h +++ b/layouts/community/ortho_5x15/manna-harbour_miryoku/config.h @@ -1,6 +1,6 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/layouts/community/ortho_5x15/manna-harbour_miryoku/keymap.c b/layouts/community/ortho_5x15/manna-harbour_miryoku/keymap.c index 1520387e888..7c5717a0fee 100644 --- a/layouts/community/ortho_5x15/manna-harbour_miryoku/keymap.c +++ b/layouts/community/ortho_5x15/manna-harbour_miryoku/keymap.c @@ -1,5 +1,5 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/layouts/community/planck_mit/manna-harbour_miryoku/config.h b/layouts/community/planck_mit/manna-harbour_miryoku/config.h index c1024d80128..df24fbba0f8 100644 --- a/layouts/community/planck_mit/manna-harbour_miryoku/config.h +++ b/layouts/community/planck_mit/manna-harbour_miryoku/config.h @@ -1,6 +1,6 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/layouts/community/planck_mit/manna-harbour_miryoku/keymap.c b/layouts/community/planck_mit/manna-harbour_miryoku/keymap.c index 1520387e888..7c5717a0fee 100644 --- a/layouts/community/planck_mit/manna-harbour_miryoku/keymap.c +++ b/layouts/community/planck_mit/manna-harbour_miryoku/keymap.c @@ -1,5 +1,5 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/layouts/community/split_3x5_3/manna-harbour_miryoku/config.h b/layouts/community/split_3x5_3/manna-harbour_miryoku/config.h index ad9495a9344..b34f6ad18d0 100644 --- a/layouts/community/split_3x5_3/manna-harbour_miryoku/config.h +++ b/layouts/community/split_3x5_3/manna-harbour_miryoku/config.h @@ -1,6 +1,6 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/layouts/community/split_3x5_3/manna-harbour_miryoku/keymap.c b/layouts/community/split_3x5_3/manna-harbour_miryoku/keymap.c index 1520387e888..7c5717a0fee 100644 --- a/layouts/community/split_3x5_3/manna-harbour_miryoku/keymap.c +++ b/layouts/community/split_3x5_3/manna-harbour_miryoku/keymap.c @@ -1,5 +1,5 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/layouts/community/split_3x6_3/drashna/keymap.c b/layouts/community/split_3x6_3/drashna/keymap.c index 707dd3646b4..7c31972e3f8 100644 --- a/layouts/community/split_3x6_3/drashna/keymap.c +++ b/layouts/community/split_3x6_3/drashna/keymap.c @@ -89,7 +89,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_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, + KEYLOCK, _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, RGB_IDL, HPT_TOG, KC_NUKE, _______, _______, TG_MODS, HPT_FBK ) }; @@ -97,6 +97,143 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #ifdef OLED_ENABLE oled_rotation_t oled_init_keymap(oled_rotation_t rotation) { return OLED_ROTATION_270; } + +# ifdef CONVERT_TO_PROTON_C +// WPM-responsive animation stuff here +# define SLEEP_FRAMES 2 +# define SLEEP_SPEED 10 // below this wpm value your animation will idle + +# define WAKE_FRAMES 2 // uncomment if >1 + +# define KAKI_FRAMES 3 +# define KAKI_SPEED 40 // above this wpm value typing animation to triggere + +# define RTOGI_FRAMES 2 +//#define LTOGI_FRAMES 2 + +//#define ANIM_FRAME_DURATION 500 // how long each frame lasts in ms +// #define SLEEP_TIMER 60000 // should sleep after this period of 0 wpm, needs fixing +# define ANIM_SIZE 512 // number of bytes in array, minimize for adequate firmware size, max is 1024 + +uint32_t anim_timer = 0; +uint32_t anim_frame_duration = 500; +uint8_t current_sleep_frame = 0; +uint8_t current_wake_frame = 0; // uncomment if WAKE_FRAMES >1 +uint8_t current_kaki_frame = 0; +uint8_t current_rtogi_frame = 0; +// uint8_t current_ltogi_frame = 0; +// clang-format off +void render_kitty(void) { + // Images credit j-inc(/James Incandenza) and pixelbenny. Credit to obosob for initial animation approach. + static const char PROGMEM sleep[SLEEP_FRAMES][ANIM_SIZE] = {{ + // 'sleep1', 32x32px + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0xa8, 0x48, 0xa8, 0x18, 0x08, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x03, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x80, 0x44, 0x84, 0x06, 0x05, 0x04, 0x80, 0x40, 0x20, 0x10, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x20, 0x18, 0x04, 0x04, 0x02, 0x7a, 0x86, 0x01, 0x80, 0x80, 0x01, 0x03, 0x05, 0x07, 0x01, 0x00, 0x00, 0x80, 0x83, 0x45, 0xfa, 0x3c, 0xe0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x08, 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x24, 0x28, 0x28, 0x29, 0x29, 0x29, 0x3a, 0x18, 0x1c, 0x39, 0x24, 0x24, 0x3a, 0x2d, 0x26, 0x31, 0x1f, 0x00, + }, + {// 'sleep2', 32x32px + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x22, 0x3a, 0x2a, 0x26, 0x22, 0x80, 0xc0, 0x80, 0x00, 0x24, 0x34, 0x2c, 0xe4, 0x60, 0x10, 0x70, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x38, 0x04, 0x02, 0x02, 0x01, 0x79, 0x87, 0x01, 0x80, 0x81, 0x83, 0x05, 0x05, 0x03, 0x01, 0x00, 0x00, 0x80, 0x43, 0x05, 0xfa, 0x3c, 0xe0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x08, 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x24, 0x28, 0x28, 0x28, 0x29, 0x29, 0x3a, 0x18, 0x1c, 0x39, 0x24, 0x24, 0x3a, 0x2d, 0x26, 0x31, 0x1f, 0x00 + }}; + static const char PROGMEM wake[WAKE_FRAMES][ANIM_SIZE] = {{ + // 'mati2', 32x32px + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x30, 0x08, 0x10, 0x60, 0x80, 0x00, 0x80, 0x60, 0x10, 0x08, 0x30, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x80, 0x40, 0x40, 0x5c, 0x00, 0x01, 0x41, 0x01, 0x00, 0x5c, 0x40, 0x40, 0x80, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x80, 0xe1, 0x12, 0x0a, 0x06, 0x00, 0x80, 0x00, 0x06, 0x0a, 0x12, 0xe1, 0x80, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x1f, 0x14, 0x14, 0x10, 0x10, 0x11, 0x1f, 0x10, 0x10, 0x18, 0x0f, 0x18, 0x10, 0x10, 0x1f, 0x11, 0x10, 0x10, 0x14, 0x14, 0x1f, 0x1c, 0x14, 0x14, 0x14, 0x08 + }, + {// 'mati3', 32x32px + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x30, 0x08, 0x10, 0x60, 0x80, 0x00, 0x80, 0x60, 0x10, 0x08, 0x30, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x90, 0x12, 0x0a, 0x02, 0xf4, 0x09, 0x0d, 0xf1, 0x04, 0x02, 0x0a, 0x12, 0x90, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x80, 0xe1, 0x12, 0x0a, 0x06, 0x01, 0x81, 0x00, 0x06, 0x0a, 0x12, 0xe1, 0x80, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x1f, 0x14, 0x14, 0x10, 0x10, 0x11, 0x1f, 0x10, 0x10, 0x18, 0x0f, 0x18, 0x10, 0x10, 0x1f, 0x11, 0x10, 0x10, 0x14, 0x14, 0x1f, 0x1c, 0x14, 0x14, 0x14, 0x08 + }}; + static const char PROGMEM kaki[KAKI_FRAMES][ANIM_SIZE] = {{ + // 'jare2', 32x32px + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x40, 0x40, 0x80, 0x80, 0x80, 0x00, 0xfc, 0x84, 0x08, 0x08, 0x10, 0x20, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1e, 0x60, 0x80, 0x00, 0x00, 0x91, 0xa1, 0x80, 0x00, 0x00, 0x22, 0x84, 0x40, 0x50, 0x48, 0xc1, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x41, 0x82, 0xe2, 0x12, 0x0a, 0x06, 0x00, 0x80, 0x88, 0x4f, 0x02, 0x22, 0xe2, 0x9f, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x1f, 0x14, 0x14, 0x10, 0x10, 0x11, 0x1f, 0x10, 0x10, 0x18, 0x0f, 0x18, 0x14, 0x10, 0x10, 0x10, 0x10, 0x10, 0x14, 0x14, 0x1f, 0x1a, 0x0a, 0x0a, 0x04, 0x00 + }, + { + // 'kaki1', 32x32px + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x06, 0x1a, 0x22, 0xc2, 0x04, 0x04, 0x04, 0x07, 0x00, 0xc0, 0x20, 0x10, 0x80, 0x80, 0x01, 0x01, 0x02, 0xfc, 0xfe, 0x02, 0x3c, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0d, 0x8d, 0x55, 0x50, 0x94, 0xf0, 0x10, 0x09, 0x08, 0x00, 0x80, 0x00, 0x06, 0x09, 0x1b, 0xee, 0x00, 0x00, 0x00, 0x00, 0x81, 0xfe, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x1f, 0x14, 0x14, 0x10, 0x10, 0x11, 0x1f, 0x10, 0x10, 0x18, 0x0f, 0x18, 0x10, 0x10, 0x1f, 0x19, 0x18, 0x1c, 0x14, 0x16, 0x15, 0x14, 0x14, 0x14, 0x14, 0x08 + }, + {// 'kaki2', 32x32px + 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x10, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x01, 0x02, 0x04, 0x04, 0x03, 0x80, 0x40, 0x40, 0x20, 0x00, 0x01, 0x02, 0x8c, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0d, 0x8d, 0x55, 0x50, 0x94, 0xf0, 0x10, 0x0a, 0x0e, 0x1d, 0x95, 0x24, 0x24, 0x27, 0x13, 0xe1, 0x01, 0x01, 0x01, 0x01, 0x02, 0xfc, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x1f, 0x14, 0x14, 0x10, 0x10, 0x11, 0x1f, 0x10, 0x10, 0x18, 0x0f, 0x18, 0x10, 0x10, 0x1f, 0x19, 0x18, 0x1c, 0x14, 0x14, 0x17, 0x14, 0x14, 0x14, 0x14, 0x08, + }}; + static const char PROGMEM rtogi[KAKI_FRAMES][ANIM_SIZE] = {{ + // 'rtogi1', 32x32px + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x20, 0x10, 0x10, 0x08, 0x04, 0x02, 0x01, 0x0f, 0x90, 0x10, 0x20, 0xf0, 0xf8, 0xf8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x48, 0x47, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x88, 0xc7, 0xc4, 0x62, 0x23, 0x11, 0x3f, + 0x80, 0x40, 0x20, 0x10, 0x88, 0xcc, 0x43, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xc0, 0x80, 0x80, 0xc0, 0xe1, 0xfe, 0xb8, 0x88, 0x0c, 0x04, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x06, 0x04, 0x04, 0x04, 0x04, 0x05, 0x04, 0x04, 0x04, 0x07, 0x07, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }, + {// 'rtogi2', 32x32px + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x20, 0x10, 0x10, 0x08, 0x04, 0x02, 0x01, 0x1f, 0xa0, 0x20, 0x40, 0x80, 0x00, 0xf0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x48, 0x47, 0x88, 0x00, 0x00, 0x00, 0x00, 0x24, 0x24, 0x28, 0x6b, 0x40, 0xa0, 0x99, 0x86, 0xff, + 0x0f, 0x11, 0x22, 0x44, 0x48, 0x4c, 0x43, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xc0, 0x80, 0x80, 0xc0, 0xe1, 0xfe, 0xb8, 0x88, 0x0c, 0x04, 0x06, 0x06, 0x06, 0x0e, 0x0e, 0x06, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x06, 0x04, 0x04, 0x04, 0x04, 0x05, 0x04, 0x04, 0x04, 0x07, 0x07, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }}; + + // assumes 1 frame prep stage + extern bool swap_hands; + void animation_phase(void) { + if (swap_hands) { + anim_frame_duration = 300; + current_rtogi_frame = (current_rtogi_frame + 1) % RTOGI_FRAMES; + oled_write_raw_P(rtogi[abs((RTOGI_FRAMES - 1) - current_rtogi_frame)], ANIM_SIZE); + } else { + if (get_current_wpm() <= SLEEP_SPEED) { + anim_frame_duration = 500; + current_sleep_frame = (current_sleep_frame + 1) % SLEEP_FRAMES; + oled_write_raw_P(sleep[abs((SLEEP_FRAMES - 1) - current_sleep_frame)], ANIM_SIZE); + } + // if(get_current_wpm() >IDLE_SPEED && get_current_wpm() SLEEP_SPEED) { + anim_frame_duration = 800; + current_wake_frame = (current_wake_frame + 1) % WAKE_FRAMES; + oled_write_raw_P(wake[abs((WAKE_FRAMES - 1) - current_wake_frame)], ANIM_SIZE); + // oled_write_raw_P(wake[0], ANIM_SIZE); // remove if IDLE_FRAMES >1 + } + if (get_current_wpm() >= KAKI_SPEED) { + anim_frame_duration = 500; + current_kaki_frame = (current_kaki_frame + 1) % KAKI_FRAMES; + oled_write_raw_P(kaki[abs((KAKI_FRAMES - 1) - current_kaki_frame)], ANIM_SIZE); + } + } + } + if (get_current_wpm() != 000) { + // if(timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) { + if (timer_elapsed32(anim_timer) > anim_frame_duration) { + anim_timer = timer_read32(); + animation_phase(); + } + } else { + // if(timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) { + if (timer_elapsed32(anim_timer) > anim_frame_duration) { + anim_timer = timer_read32(); + animation_phase(); + } + } +} + +void oled_driver_render_logo_right(void) { + render_kitty(); + + oled_set_cursor(0, 4); + render_default_layer_state(); +} +# endif #endif #ifdef TAPPING_TERM_PER_KEY @@ -111,10 +248,6 @@ uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { #endif #ifdef RGB_MATRIX_ENABLE -void suspend_power_down_keymap(void) { rgb_matrix_set_suspend_state(true); } - -void suspend_wakeup_init_keymap(void) { rgb_matrix_set_suspend_state(false); } - void check_default_layer(uint8_t mode, uint8_t type, uint8_t led_min, uint8_t led_max) { switch (get_highest_layer(default_layer_state)) { case _QWERTY: diff --git a/layouts/community/split_3x6_3/manna-harbour_miryoku/config.h b/layouts/community/split_3x6_3/manna-harbour_miryoku/config.h index f21188f3336..4ce96c76005 100644 --- a/layouts/community/split_3x6_3/manna-harbour_miryoku/config.h +++ b/layouts/community/split_3x6_3/manna-harbour_miryoku/config.h @@ -1,6 +1,6 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/layouts/community/split_3x6_3/manna-harbour_miryoku/keymap.c b/layouts/community/split_3x6_3/manna-harbour_miryoku/keymap.c index 1520387e888..7c5717a0fee 100644 --- a/layouts/community/split_3x6_3/manna-harbour_miryoku/keymap.c +++ b/layouts/community/split_3x6_3/manna-harbour_miryoku/keymap.c @@ -1,5 +1,5 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/layouts/default/tkl_nofrow_ansi/default_tkl_nofrow_ansi/keymap.c b/layouts/default/tkl_nofrow_ansi/default_tkl_nofrow_ansi/keymap.c new file mode 100644 index 00000000000..c2b7ecfeaf4 --- /dev/null +++ b/layouts/default/tkl_nofrow_ansi/default_tkl_nofrow_ansi/keymap.c @@ -0,0 +1,24 @@ +#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│ │Ins│Hom│PgU│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ │Del│End│PgD│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ + * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ │ ↑ │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ + * │Ctrl│GUI │Alt │ │ Alt│ GUI│Menu│Ctrl│ │ ← │ ↓ │ → │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ + */ + [0] = LAYOUT_tkl_nofrow_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_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ) +}; diff --git a/layouts/default/tkl_nofrow_ansi/info.json b/layouts/default/tkl_nofrow_ansi/info.json new file mode 100644 index 00000000000..dfb0fc92b4e --- /dev/null +++ b/layouts/default/tkl_nofrow_ansi/info.json @@ -0,0 +1,90 @@ +{ + "keyboard_name": "Tenkeyless No F-Row ANSI Layout", + "url": "", + "maintainer": "qmk", + "layouts": { + "LAYOUT": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6, "y":0}, + {"x":7, "y":0}, + {"x":8, "y":0}, + {"x":9, "y":0}, + {"x":10, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0, "w":2}, + + {"x":15.25, "y":0}, + {"x":16.25, "y":0}, + {"x":17.25, "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.25, "y":1}, + {"x":16.25, "y":1}, + {"x":17.25, "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":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":16.25, "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":12.5, "y":4, "w":1.25}, + {"x":13.75, "y":4, "w":1.25}, + + {"x":15.25, "y":4}, + {"x":16.25, "y":4}, + {"x":17.25, "y":4} + ] + } + } +} \ No newline at end of file diff --git a/layouts/default/tkl_nofrow_ansi/layout.json b/layouts/default/tkl_nofrow_ansi/layout.json new file mode 100644 index 00000000000..b8f86b4ac22 --- /dev/null +++ b/layouts/default/tkl_nofrow_ansi/layout.json @@ -0,0 +1,6 @@ +[{a:7},"","","","","","","","","","","","","",{w:2},"",{x:0.25},"","",""], +[{w:1.5},"","","","","","","","","","","","","",{w:1.5},"",{x:0.25},"","",""], +[{w:1.75},"","","","","","","","","","","","",{w:2.25},""], +[{w:2.25},"","","","","","","","","","","",{w:2.75},"",{x:1.25},""], +[{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:6.25},"",{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:1.25},"",{x:0.25},"","",""] + diff --git a/layouts/default/tkl_nofrow_ansi/readme.md b/layouts/default/tkl_nofrow_ansi/readme.md new file mode 100644 index 00000000000..693b1245e62 --- /dev/null +++ b/layouts/default/tkl_nofrow_ansi/readme.md @@ -0,0 +1,3 @@ +# tkl_nofrow_ansi + + LAYOUT_tkl_nofrow_ansi diff --git a/lib/python/qmk/cli/__init__.py b/lib/python/qmk/cli/__init__.py index f45e33240c6..ea961315bdc 100644 --- a/lib/python/qmk/cli/__init__.py +++ b/lib/python/qmk/cli/__init__.py @@ -31,6 +31,7 @@ safe_commands = [ subcommands = [ 'qmk.cli.bux', 'qmk.cli.c2json', + 'qmk.cli.cd', 'qmk.cli.cformat', 'qmk.cli.chibios.confmigrate', 'qmk.cli.clean', @@ -60,6 +61,7 @@ subcommands = [ 'qmk.cli.lint', 'qmk.cli.list.keyboards', 'qmk.cli.list.keymaps', + 'qmk.cli.list.layouts', 'qmk.cli.kle2json', 'qmk.cli.multibuild', 'qmk.cli.new.keyboard', diff --git a/lib/python/qmk/cli/cd.py b/lib/python/qmk/cli/cd.py new file mode 100755 index 00000000000..c62c3f56c6b --- /dev/null +++ b/lib/python/qmk/cli/cd.py @@ -0,0 +1,46 @@ +"""Open a shell in the QMK Home directory +""" +import sys +import os + +from milc import cli + +from qmk.path import under_qmk_firmware + + +@cli.subcommand('Go to QMK Home') +def cd(cli): + """Go to QMK Home + """ + if not sys.stdout.isatty(): + cli.log.error("This command is for interactive usage only. For non-interactive usage, 'cd $(qmk env QMK_HOME)' is more robust.") + sys.exit(1) + + if not under_qmk_firmware(): + # Only do anything if the user is not under qmk_firmware already + # in order to reduce the possibility of starting multiple shells + cli.log.info("Spawning a subshell in your QMK_HOME directory.") + cli.log.info("Type 'exit' to get back to the parent shell.") + if not cli.platform.lower().startswith('windows'): + # For Linux/Mac/etc + # Check the user's login shell from 'passwd' + # alternatively fall back to $SHELL env var + # and finally to '/bin/bash'. + import getpass + import pwd + shell = pwd.getpwnam(getpass.getuser()).pw_shell + if not shell: + shell = os.environ.get('SHELL', '/bin/bash') + # Start the new subshell + os.execl(shell, shell) + else: + # For Windows + # Check the $SHELL env var + # and fall back to '/usr/bin/bash'. + qmk_env = os.environ.copy() + # Set the prompt for the new shell + qmk_env['MSYS2_PS1'] = qmk_env['PS1'] + # Start the new subshell + cli.run([os.environ.get('SHELL', '/usr/bin/bash')], env=qmk_env) + else: + cli.log.info("Already within qmk_firmware directory.") diff --git a/lib/python/qmk/cli/docs.py b/lib/python/qmk/cli/docs.py index d8f9b045a12..c24b914bc13 100644 --- a/lib/python/qmk/cli/docs.py +++ b/lib/python/qmk/cli/docs.py @@ -2,6 +2,7 @@ """ import http.server import os +import shutil import webbrowser from milc import cli @@ -11,20 +12,33 @@ from milc import cli @cli.argument('-b', '--browser', action='store_true', help='Open the docs in the default browser.') @cli.subcommand('Run a local webserver for QMK documentation.', hidden=False if cli.config.user.developer else True) def docs(cli): - """Spin up a local HTTPServer instance for the QMK docs. + """Spin up a local HTTP server for the QMK docs. """ os.chdir('docs') - with http.server.HTTPServer(('', cli.config.docs.port), http.server.SimpleHTTPRequestHandler) as httpd: - cli.log.info(f"Serving QMK docs at http://localhost:{cli.config.docs.port}/") - cli.log.info("Press Control+C to exit.") + # If docsify-cli is installed, run that instead so we get live reload + if shutil.which('docsify'): + command = ['docsify', 'serve', '--port', f'{cli.config.docs.port}', '--open' if cli.config.docs.browser else ''] - if cli.config.docs.browser: - webbrowser.open(f'http://localhost:{cli.config.docs.port}') + cli.log.info(f"Running {{fg_cyan}}{str.join(' ', command)}{{fg_reset}}") + cli.log.info("Press Control+C to exit.") try: - httpd.serve_forever() + cli.run(command, capture_output=False) except KeyboardInterrupt: cli.log.info("Stopping HTTP server...") - finally: - httpd.shutdown() + else: + # Fall back to Python HTTPServer + with http.server.HTTPServer(('', cli.config.docs.port), http.server.SimpleHTTPRequestHandler) as httpd: + cli.log.info(f"Serving QMK docs at http://localhost:{cli.config.docs.port}/") + cli.log.info("Press Control+C to exit.") + + if cli.config.docs.browser: + webbrowser.open(f'http://localhost:{cli.config.docs.port}') + + try: + httpd.serve_forever() + except KeyboardInterrupt: + cli.log.info("Stopping HTTP server...") + finally: + httpd.shutdown() diff --git a/lib/python/qmk/cli/doctor/linux.py b/lib/python/qmk/cli/doctor/linux.py index 6ce00f6ef19..94683d3307a 100644 --- a/lib/python/qmk/cli/doctor/linux.py +++ b/lib/python/qmk/cli/doctor/linux.py @@ -118,10 +118,9 @@ def check_udev_rules(): cli.log.warning("{fg_yellow}Found old, deprecated udev rules for '%s' boards. The new rules on https://docs.qmk.fm/#/faq_build?id=linux-udev-rules offer better security with the same functionality.", bootloader) else: # For caterina, check if ModemManager is running - if bootloader == "caterina": - if check_modem_manager(): - rc = CheckStatus.WARNING - cli.log.warning("{fg_yellow}Detected ModemManager without the necessary udev rules. Please either disable it or set the appropriate udev rules if you are using a Pro Micro.") + if bootloader == "caterina" and check_modem_manager(): + cli.log.warning("{fg_yellow}Detected ModemManager without the necessary udev rules. Please either disable it or set the appropriate udev rules if you are using a Pro Micro.") + rc = CheckStatus.WARNING cli.log.warning("{fg_yellow}Missing or outdated udev rules for '%s' boards. Run 'sudo cp %s/util/udev/50-qmk.rules /etc/udev/rules.d/'.", bootloader, QMK_FIRMWARE) @@ -167,6 +166,5 @@ def os_test_linux(): return CheckStatus.OK else: cli.log.info("Detected {fg_cyan}Linux{fg_reset}.") - from .linux import check_udev_rules return check_udev_rules() diff --git a/lib/python/qmk/cli/doctor/main.py b/lib/python/qmk/cli/doctor/main.py index 6a31ccdfdde..ed20f46d3f7 100755 --- a/lib/python/qmk/cli/doctor/main.py +++ b/lib/python/qmk/cli/doctor/main.py @@ -79,12 +79,13 @@ def doctor(cli): cli.log.info('CLI version: %s', cli.version) cli.log.info('QMK home: {fg_cyan}%s', QMK_FIRMWARE) - status = os_tests() + status = os_status = os_tests() + git_status = git_tests() - status = git_tests() + if git_status == CheckStatus.ERROR or (os_status == CheckStatus.OK and git_status == CheckStatus.WARNING): + status = git_status - venv = in_virtualenv() - if venv: + if in_virtualenv(): cli.log.info('CLI installed in virtualenv.') # Make sure the basic CLI tools we need are available and can be executed. diff --git a/lib/python/qmk/cli/format/python.py b/lib/python/qmk/cli/format/python.py index 00612f97ecd..95868d18a05 100755 --- a/lib/python/qmk/cli/format/python.py +++ b/lib/python/qmk/cli/format/python.py @@ -4,23 +4,65 @@ from subprocess import CalledProcessError, DEVNULL from milc import cli +from qmk.path import normpath -@cli.argument('-n', '--dry-run', arg_only=True, action='store_true', help="Don't actually format.") -@cli.subcommand("Format python code according to QMK's style.", hidden=False if cli.config.user.developer else True) -def format_python(cli): - """Format python code according to QMK's style. - """ +py_file_suffixes = ('py',) +py_dirs = ['lib/python'] + + +def yapf_run(files): edit = '--diff' if cli.args.dry_run else '--in-place' - yapf_cmd = ['yapf', '-vv', '--recursive', edit, 'bin/qmk', 'lib/python'] + yapf_cmd = ['yapf', '-vv', '--recursive', edit, *files] try: cli.run(yapf_cmd, check=True, capture_output=False, stdin=DEVNULL) - cli.log.info('Python code in `bin/qmk` and `lib/python` is correctly formatted.') - return True + cli.log.info('Successfully formatted the python code.') except CalledProcessError: - if cli.args.dry_run: - cli.log.error('Python code in `bin/qmk` and `lib/python` incorrectly formatted!') + cli.log.error(f'Python code in {",".join(py_dirs)} incorrectly formatted!') + return False + + +def filter_files(files): + """Yield only files to be formatted and skip the rest + """ + + for file in files: + if file and file.name.split('.')[-1] in py_file_suffixes: + yield file else: - cli.log.error('Error formatting python code!') + cli.log.debug('Skipping file %s', file) + + +@cli.argument('-n', '--dry-run', arg_only=True, action='store_true', help="Don't actually format.") +@cli.argument('-b', '--base-branch', default='origin/master', help='Branch to compare to diffs to.') +@cli.argument('-a', '--all-files', arg_only=True, action='store_true', help='Format all files.') +@cli.argument('files', nargs='*', arg_only=True, type=normpath, help='Filename(s) to format.') +@cli.subcommand("Format python code according to QMK's style.", hidden=False if cli.config.user.developer else True) +def format_python(cli): + """Format python code according to QMK's style. + """ + # Find the list of files to format + if cli.args.files: + files = list(filter_files(cli.args.files)) + + if not files: + cli.log.error('No Python files in filelist: %s', ', '.join(map(str, cli.args.files))) + exit(0) + + if cli.args.all_files: + cli.log.warning('Filenames passed with -a, only formatting: %s', ','.join(map(str, files))) + + elif cli.args.all_files: + files = py_dirs + + else: + git_diff_cmd = ['git', 'diff', '--name-only', cli.args.base_branch, *py_dirs] + git_diff = cli.run(git_diff_cmd, stdin=DEVNULL) + files = list(filter(None, git_diff.stdout.split('\n'))) + + # Sanity check + if not files: + cli.log.error('No changed files detected. Use "qmk format-python -a" to format all files') + return False - return False + return yapf_run(files) diff --git a/lib/python/qmk/cli/format/text.py b/lib/python/qmk/cli/format/text.py index e7e07b7297e..6dd45118965 100644 --- a/lib/python/qmk/cli/format/text.py +++ b/lib/python/qmk/cli/format/text.py @@ -1,27 +1,57 @@ """Ensure text files have the proper line endings. """ -from subprocess import CalledProcessError +from itertools import islice +from subprocess import DEVNULL from milc import cli +from qmk.path import normpath + +def _get_chunks(it, size): + """Break down a collection into smaller parts + """ + it = iter(it) + return iter(lambda: tuple(islice(it, size)), ()) + + +def dos2unix_run(files): + """Spawn multiple dos2unix subprocess avoiding too long commands on formatting everything + """ + for chunk in _get_chunks(files, 10): + dos2unix = cli.run(['dos2unix', *chunk]) + + if dos2unix.returncode: + return False + + +@cli.argument('-b', '--base-branch', default='origin/master', help='Branch to compare to diffs to.') +@cli.argument('-a', '--all-files', arg_only=True, action='store_true', help='Format all files.') +@cli.argument('files', nargs='*', arg_only=True, type=normpath, help='Filename(s) to format.') @cli.subcommand("Ensure text files have the proper line endings.", hidden=True) def format_text(cli): """Ensure text files have the proper line endings. """ - try: - file_list_cmd = cli.run(['git', 'ls-files', '-z'], check=True) - except CalledProcessError as e: - cli.log.error('Could not get file list: %s', e) - exit(1) - except Exception as e: - cli.log.error('Unhandled exception: %s: %s', e.__class__.__name__, e) - cli.log.exception(e) - exit(1) - - dos2unix = cli.run(['xargs', '-0', 'dos2unix'], stdin=None, input=file_list_cmd.stdout) - - if dos2unix.returncode != 0: - print(dos2unix.stderr) - - return dos2unix.returncode + # Find the list of files to format + if cli.args.files: + files = list(cli.args.files) + + if cli.args.all_files: + cli.log.warning('Filenames passed with -a, only formatting: %s', ','.join(map(str, files))) + + elif cli.args.all_files: + git_ls_cmd = ['git', 'ls-files'] + git_ls = cli.run(git_ls_cmd, stdin=DEVNULL) + files = list(filter(None, git_ls.stdout.split('\n'))) + + else: + git_diff_cmd = ['git', 'diff', '--name-only', cli.args.base_branch] + git_diff = cli.run(git_diff_cmd, stdin=DEVNULL) + files = list(filter(None, git_diff.stdout.split('\n'))) + + # Sanity check + if not files: + cli.log.error('No changed files detected. Use "qmk format-text -a" to format all files') + return False + + return dos2unix_run(files) diff --git a/lib/python/qmk/cli/generate/config_h.py b/lib/python/qmk/cli/generate/config_h.py index ca7e14fe6be..f16dca1de8b 100755 --- a/lib/python/qmk/cli/generate/config_h.py +++ b/lib/python/qmk/cli/generate/config_h.py @@ -173,7 +173,7 @@ def generate_config_h(cli): kb_info_json = dotty(info_json(cli.args.keyboard)) # Build the info_config.h file. - config_h_lines = ['/* This file was generated by `qmk generate-config-h`. Do not edit or copy.' ' */', '', '#pragma once'] + config_h_lines = ['/* This file was generated by `qmk generate-config-h`. Do not edit or copy.', ' */', '', '#pragma once'] generate_config_items(kb_info_json, config_h_lines) diff --git a/lib/python/qmk/cli/generate/dfu_header.py b/lib/python/qmk/cli/generate/dfu_header.py index 211ed9991a1..5a1b109f1e9 100644 --- a/lib/python/qmk/cli/generate/dfu_header.py +++ b/lib/python/qmk/cli/generate/dfu_header.py @@ -30,7 +30,7 @@ def generate_dfu_header(cli): # Build the Keyboard.h file. kb_info_json = dotty(info_json(cli.config.generate_dfu_header.keyboard)) - keyboard_h_lines = ['/* This file was generated by `qmk generate-dfu-header`. Do not edit or copy.' ' */', '', '#pragma once'] + keyboard_h_lines = ['/* This file was generated by `qmk generate-dfu-header`. Do not edit or copy.', ' */', '', '#pragma once'] keyboard_h_lines.append(f'#define MANUFACTURER {kb_info_json["manufacturer"]}') keyboard_h_lines.append(f'#define PRODUCT {cli.config.generate_dfu_header.keyboard} Bootloader') diff --git a/lib/python/qmk/cli/generate/keyboard_h.py b/lib/python/qmk/cli/generate/keyboard_h.py index c9d7f549b30..f05178cedef 100755 --- a/lib/python/qmk/cli/generate/keyboard_h.py +++ b/lib/python/qmk/cli/generate/keyboard_h.py @@ -36,7 +36,7 @@ def generate_keyboard_h(cli): has_layout_h = would_populate_layout_h(cli.args.keyboard) # Build the layouts.h file. - keyboard_h_lines = ['/* This file was generated by `qmk generate-keyboard-h`. Do not edit or copy.' ' */', '', '#pragma once', '#include "quantum.h"'] + keyboard_h_lines = ['/* This file was generated by `qmk generate-keyboard-h`. Do not edit or copy.', ' */', '', '#pragma once', '#include "quantum.h"'] if not has_layout_h: keyboard_h_lines.append('#pragma error(".h is only optional for data driven keyboards - kb.h == bad times")') diff --git a/lib/python/qmk/cli/generate/layouts.py b/lib/python/qmk/cli/generate/layouts.py index 4de982f822f..e44266e1c8f 100755 --- a/lib/python/qmk/cli/generate/layouts.py +++ b/lib/python/qmk/cli/generate/layouts.py @@ -38,7 +38,7 @@ def generate_layouts(cli): kb_info_json = info_json(cli.config.generate_layouts.keyboard) # Build the layouts.h file. - layouts_h_lines = ['/* This file was generated by `qmk generate-layouts`. Do not edit or copy.' ' */', '', '#pragma once'] + layouts_h_lines = ['/* This file was generated by `qmk generate-layouts`. Do not edit or copy.', ' */', '', '#pragma once'] if 'matrix_pins' in kb_info_json: if 'direct' in kb_info_json['matrix_pins']: diff --git a/lib/python/qmk/cli/generate/rules_mk.py b/lib/python/qmk/cli/generate/rules_mk.py index cdf17dfbcb9..dcaff29fae0 100755 --- a/lib/python/qmk/cli/generate/rules_mk.py +++ b/lib/python/qmk/cli/generate/rules_mk.py @@ -26,7 +26,7 @@ def process_mapping_rule(kb_info_json, rules_key, info_dict): except KeyError: return None - if key_type == 'array': + if key_type in ['array', 'list']: return f'{rules_key} ?= {" ".join(rules_value)}' elif key_type == 'bool': return f'{rules_key} ?= {"on" if rules_value else "off"}' diff --git a/lib/python/qmk/cli/list/keymaps.py b/lib/python/qmk/cli/list/keymaps.py index d79ab75b582..d2ef136c06a 100644 --- a/lib/python/qmk/cli/list/keymaps.py +++ b/lib/python/qmk/cli/list/keymaps.py @@ -13,5 +13,10 @@ from qmk.keyboard import keyboard_completer, keyboard_folder def list_keymaps(cli): """List the keymaps for a specific keyboard """ + if not cli.config.list_keymaps.keyboard: + cli.log.error('Missing required arguments: --keyboard') + cli.subcommands['list-keymaps'].print_help() + return False + for name in qmk.keymap.list_keymaps(cli.config.list_keymaps.keyboard): print(name) diff --git a/lib/python/qmk/cli/list/layouts.py b/lib/python/qmk/cli/list/layouts.py new file mode 100644 index 00000000000..df593dc3902 --- /dev/null +++ b/lib/python/qmk/cli/list/layouts.py @@ -0,0 +1,23 @@ +"""List the keymaps for a specific keyboard +""" +from milc import cli + +from qmk.decorators import automagic_keyboard +from qmk.keyboard import keyboard_completer, keyboard_folder +from qmk.info import info_json + + +@cli.argument("-kb", "--keyboard", type=keyboard_folder, completer=keyboard_completer, help="Specify keyboard name. Example: monarch") +@cli.subcommand("List the layouts for a specific keyboard") +@automagic_keyboard +def list_layouts(cli): + """List the layouts for a specific keyboard + """ + if not cli.config.list_layouts.keyboard: + cli.log.error('Missing required arguments: --keyboard') + cli.subcommands['list-layouts'].print_help() + return False + + info_data = info_json(cli.config.list_layouts.keyboard) + for name in sorted(info_data.get('community_layouts', [])): + print(name) diff --git a/lib/python/qmk/cli/new/keyboard.py b/lib/python/qmk/cli/new/keyboard.py index 369d2bd7daf..4093b8c90d0 100644 --- a/lib/python/qmk/cli/new/keyboard.py +++ b/lib/python/qmk/cli/new/keyboard.py @@ -1,10 +1,8 @@ """This script automates the creation of new keyboard directories using a starter template. """ from datetime import date -import fileinput from pathlib import Path import re -import shutil from qmk.commands import git_get_username import qmk.path @@ -32,6 +30,7 @@ def validate_keyboard_name(name): @cli.argument('-kb', '--keyboard', help='Specify the name for the new keyboard directory', arg_only=True, type=keyboard_name) @cli.argument('-t', '--type', help='Specify the keyboard type', arg_only=True, choices=KEYBOARD_TYPES) @cli.argument('-u', '--username', help='Specify your username (default from Git config)', arg_only=True) +@cli.argument('-n', '--realname', help='Specify your real name if you want to use that. Defaults to username', arg_only=True) @cli.subcommand('Creates a new keyboard directory') def new_keyboard(cli): """Creates a new keyboard. @@ -69,7 +68,7 @@ def new_keyboard(cli): # Get username user_name = None while not user_name: - user_name = question('Your Name:', default=find_user_name()) + user_name = question('Your GitHub User Name:', default=find_user_name()) if not user_name: cli.log.error('You didn\'t provide a username, and we couldn\'t find one set in your QMK or Git configs. Please try again.') @@ -78,26 +77,21 @@ def new_keyboard(cli): if cli.args.username: return False - # Copy all the files - copy_templates(keyboard_type, keyboard_path) + real_name = None + while not real_name: + real_name = question('Your real name:', default=user_name) - # Replace all the placeholders keyboard_basename = keyboard_path.name - replacements = [ - ('%YEAR%', str(date.today().year)), - ('%KEYBOARD%', keyboard_basename), - ('%YOUR_NAME%', user_name), - ] - filenames = [ - keyboard_path / 'config.h', - keyboard_path / 'info.json', - keyboard_path / 'readme.md', - keyboard_path / f'{keyboard_basename}.c', - keyboard_path / f'{keyboard_basename}.h', - keyboard_path / 'keymaps/default/readme.md', - keyboard_path / 'keymaps/default/keymap.c', - ] - replace_placeholders(replacements, filenames) + replacements = { + "YEAR": str(date.today().year), + "KEYBOARD": keyboard_basename, + "USER_NAME": user_name, + "YOUR_NAME": real_name, + } + + template_dir = Path('data/templates') + template_tree(template_dir / 'base', keyboard_path, replacements) + template_tree(template_dir / keyboard_type, keyboard_path, replacements) cli.echo('') cli.log.info(f'{{fg_green}}Created a new keyboard called {{fg_cyan}}{new_keyboard_name}{{fg_green}}.{{fg_reset}}') @@ -114,29 +108,32 @@ def find_user_name(): return git_get_username() -def copy_templates(keyboard_type, keyboard_path): - """Copies the template files from data/templates to the new keyboard directory. - """ - template_base_path = Path('data/templates') - keyboard_basename = keyboard_path.name +def template_tree(src: Path, dst: Path, replacements: dict): + """Recursively copy template and replace placeholders - cli.log.info('Copying base template files...') - shutil.copytree(template_base_path / 'base', keyboard_path) + Args: + src (Path) + The source folder to copy from + dst (Path) + The destination folder to copy to + replacements (dict) + a dictionary with "key":"value" pairs to replace. - cli.log.info(f'Copying {{fg_cyan}}{keyboard_type}{{fg_reset}} template files...') - shutil.copytree(template_base_path / keyboard_type, keyboard_path, dirs_exist_ok=True) + Raises: + FileExistsError + When trying to overwrite existing files + """ - cli.log.info(f'Renaming {{fg_cyan}}keyboard.[ch]{{fg_reset}} to {{fg_cyan}}{keyboard_basename}.[ch]{{fg_reset}}...') - shutil.move(keyboard_path / 'keyboard.c', keyboard_path / f'{keyboard_basename}.c') - shutil.move(keyboard_path / 'keyboard.h', keyboard_path / f'{keyboard_basename}.h') + dst.mkdir(parents=True, exist_ok=True) + for child in src.iterdir(): + if child.is_dir(): + template_tree(child, dst / child.name, replacements=replacements) -def replace_placeholders(replacements, filenames): - """Replaces the given placeholders in each template file. - """ - for replacement in replacements: - cli.log.info(f'Replacing {{fg_cyan}}{replacement[0]}{{fg_reset}} with {{fg_cyan}}{replacement[1]}{{fg_reset}}...') + if child.is_file(): + file_name = dst / (child.name % replacements) - with fileinput.input(files=filenames, inplace=True) as file: - for line in file: - print(line.replace(replacement[0], replacement[1]), end='') + with file_name.open(mode='x') as dst_f: + with child.open() as src_f: + template = src_f.read() + dst_f.write(template % replacements) diff --git a/lib/python/qmk/info.py b/lib/python/qmk/info.py index 7f3aabdc3b0..cc994845196 100644 --- a/lib/python/qmk/info.py +++ b/lib/python/qmk/info.py @@ -25,14 +25,21 @@ def _valid_community_layout(layout): return (Path('layouts/default') / layout).exists() +def _remove_newlines_from_labels(layouts): + for layout_name, layout_json in layouts.items(): + for key in layout_json['layout']: + if '\n' in key['label']: + key['label'] = key['label'].split('\n')[0] + + def info_json(keyboard): """Generate the info.json data for a specific keyboard. """ cur_dir = Path('keyboards') - rules = parse_rules_mk_file(cur_dir / keyboard / 'rules.mk') - if 'DEFAULT_FOLDER' in rules: - keyboard = rules['DEFAULT_FOLDER'] - rules = parse_rules_mk_file(cur_dir / keyboard / 'rules.mk', rules) + root_rules_mk = parse_rules_mk_file(cur_dir / keyboard / 'rules.mk') + + if 'DEFAULT_FOLDER' in root_rules_mk: + keyboard = root_rules_mk['DEFAULT_FOLDER'] info_data = { 'keyboard_name': str(keyboard), @@ -99,6 +106,9 @@ def info_json(keyboard): # Check that the reported matrix size is consistent with the actual matrix size _check_matrix(info_data) + # Remove newline characters from layout labels + _remove_newlines_from_labels(layouts) + return info_data @@ -691,8 +701,8 @@ def merge_info_jsons(keyboard, info_data): if layout_name in info_data['layouts']: if len(info_data['layouts'][layout_name]['layout']) != len(layout['layout']): - msg = '%s: %s: Number of elements in info.json does not match! info.json:%s != %s:%s' - _log_error(info_data, msg % (info_data['keyboard_folder'], layout_name, len(layout['layout']), layout_name, len(info_data['layouts'][layout_name]['layout']))) + msg = 'Number of keys for %s does not match! info.json specifies %d keys, C macro specifies %d' + _log_error(info_data, msg % (layout_name, len(layout['layout']), len(info_data['layouts'][layout_name]['layout']))) else: for new_key, existing_key in zip(layout['layout'], info_data['layouts'][layout_name]['layout']): existing_key.update(new_key) diff --git a/lib/python/qmk/keymap.py b/lib/python/qmk/keymap.py index 2d5921e7a86..6eec49cfd1a 100644 --- a/lib/python/qmk/keymap.py +++ b/lib/python/qmk/keymap.py @@ -149,8 +149,8 @@ def is_keymap_dir(keymap, c=True, json=True, additional_files=None): for file in files: if (keymap / file).is_file(): if additional_files: - for file in additional_files: - if not (keymap / file).is_file(): + for additional_file in additional_files: + if not (keymap / additional_file).is_file(): return False return True diff --git a/lib/python/qmk/tests/test_cli_commands.py b/lib/python/qmk/tests/test_cli_commands.py index b39fe5e46da..0dad5d5fc45 100644 --- a/lib/python/qmk/tests/test_cli_commands.py +++ b/lib/python/qmk/tests/test_cli_commands.py @@ -81,9 +81,9 @@ def test_hello(): def test_format_python(): - result = check_subcommand('format-python', '--dry-run') + result = check_subcommand('format-python', '-n', '-a') check_returncode(result) - assert 'Python code in `bin/qmk` and `lib/python` is correctly formatted.' in result.stdout + assert 'Successfully formatted the python code.' in result.stdout def test_list_keyboards(): diff --git a/message.mk b/message.mk index 419e3f5f314..cb4ef43719a 100644 --- a/message.mk +++ b/message.mk @@ -88,6 +88,7 @@ endef MSG_AVAILABLE_KEYMAPS = $(eval $(call GENERATE_MSG_AVAILABLE_KEYMAPS))$(MSG_AVAILABLE_KEYMAPS_ACTUAL) MSG_CHECK_FILESIZE = Checking file size of $(TARGET).$(FIRMWARE_FORMAT) +MSG_CHECK_FILESIZE_SKIPPED = (Firmware size check does not yet support $(MCU_ORIG); skipping) MSG_FILE_TOO_BIG = $(ERROR_COLOR)The firmware is too large!$(NO_COLOR) $(CURRENT_SIZE)/$(MAX_SIZE) ($(OVER_SIZE) bytes over)\n MSG_FILE_TOO_SMALL = The firmware is too small! $(CURRENT_SIZE)/$(MAX_SIZE)\n MSG_FILE_JUST_RIGHT = The firmware size is fine - $(CURRENT_SIZE)/$(MAX_SIZE) ($(PERCENT_SIZE)%%, $(FREE_SIZE) bytes free)\n diff --git a/platforms/chibios/drivers/analog.c b/platforms/chibios/drivers/analog.c index 8c476fcac20..b1081623d32 100644 --- a/platforms/chibios/drivers/analog.c +++ b/platforms/chibios/drivers/analog.c @@ -123,7 +123,7 @@ static ADCConversionGroup adcConversionGroup = { .smpr = ADC_SAMPLING_RATE, #elif defined(USE_ADCV2) # if !defined(STM32F1XX) - .cr2 = ADC_CR2_SWSTART, // F103 seem very unhappy with, F401 seems very unhappy without... + .cr2 = ADC_CR2_SWSTART, // F103 seem very unhappy with, F401 seems very unhappy without... # endif .smpr2 = ADC_SMPR2_SMP_AN0(ADC_SAMPLING_RATE) | ADC_SMPR2_SMP_AN1(ADC_SAMPLING_RATE) | ADC_SMPR2_SMP_AN2(ADC_SAMPLING_RATE) | ADC_SMPR2_SMP_AN3(ADC_SAMPLING_RATE) | ADC_SMPR2_SMP_AN4(ADC_SAMPLING_RATE) | ADC_SMPR2_SMP_AN5(ADC_SAMPLING_RATE) | ADC_SMPR2_SMP_AN6(ADC_SAMPLING_RATE) | ADC_SMPR2_SMP_AN7(ADC_SAMPLING_RATE) | ADC_SMPR2_SMP_AN8(ADC_SAMPLING_RATE) | ADC_SMPR2_SMP_AN9(ADC_SAMPLING_RATE), .smpr1 = ADC_SMPR1_SMP_AN10(ADC_SAMPLING_RATE) | ADC_SMPR1_SMP_AN11(ADC_SAMPLING_RATE) | ADC_SMPR1_SMP_AN12(ADC_SAMPLING_RATE) | ADC_SMPR1_SMP_AN13(ADC_SAMPLING_RATE) | ADC_SMPR1_SMP_AN14(ADC_SAMPLING_RATE) | ADC_SMPR1_SMP_AN15(ADC_SAMPLING_RATE), diff --git a/quantum/action.c b/quantum/action.c index be135f18f20..208690f5e4c 100644 --- a/quantum/action.c +++ b/quantum/action.c @@ -782,9 +782,10 @@ void register_code(uint8_t code) { } #endif - else if IS_KEY (code) { - // TODO: should push command_proc out of this block? - if (command_proc(code)) return; + else if + IS_KEY(code) { + // TODO: should push command_proc out of this block? + if (command_proc(code)) return; #ifndef NO_ACTION_ONESHOT /* TODO: remove @@ -801,33 +802,35 @@ void register_code(uint8_t code) { } else */ #endif - { - // Force a new key press if the key is already pressed - // without this, keys with the same keycode, but different - // modifiers will be reported incorrectly, see issue #1708 - if (is_key_pressed(keyboard_report, code)) { - del_key(code); + { + // Force a new key press if the key is already pressed + // without this, keys with the same keycode, but different + // modifiers will be reported incorrectly, see issue #1708 + if (is_key_pressed(keyboard_report, code)) { + del_key(code); + send_keyboard_report(); + } + add_key(code); send_keyboard_report(); } - add_key(code); + } + else if + IS_MOD(code) { + add_mods(MOD_BIT(code)); send_keyboard_report(); } - } else if IS_MOD (code) { - add_mods(MOD_BIT(code)); - send_keyboard_report(); - } #ifdef EXTRAKEY_ENABLE - else if IS_SYSTEM (code) { - host_system_send(KEYCODE2SYSTEM(code)); - } else if IS_CONSUMER (code) { - host_consumer_send(KEYCODE2CONSUMER(code)); - } + else if + IS_SYSTEM(code) { host_system_send(KEYCODE2SYSTEM(code)); } + else if + IS_CONSUMER(code) { host_consumer_send(KEYCODE2CONSUMER(code)); } #endif #ifdef MOUSEKEY_ENABLE - else if IS_MOUSEKEY (code) { - mousekey_on(code); - mousekey_send(); - } + else if + IS_MOUSEKEY(code) { + mousekey_on(code); + mousekey_send(); + } #endif } @@ -872,22 +875,26 @@ void unregister_code(uint8_t code) { } #endif - else if IS_KEY (code) { - del_key(code); - send_keyboard_report(); - } else if IS_MOD (code) { - del_mods(MOD_BIT(code)); - send_keyboard_report(); - } else if IS_SYSTEM (code) { - host_system_send(0); - } else if IS_CONSUMER (code) { - host_consumer_send(0); - } + else if + IS_KEY(code) { + del_key(code); + send_keyboard_report(); + } + else if + IS_MOD(code) { + del_mods(MOD_BIT(code)); + send_keyboard_report(); + } + else if + IS_SYSTEM(code) { host_system_send(0); } + else if + IS_CONSUMER(code) { host_consumer_send(0); } #ifdef MOUSEKEY_ENABLE - else if IS_MOUSEKEY (code) { - mousekey_off(code); - mousekey_send(); - } + else if + IS_MOUSEKEY(code) { + mousekey_off(code); + mousekey_send(); + } #endif } diff --git a/quantum/action.h b/quantum/action.h index 8a357ded87b..b562f18c5b3 100644 --- a/quantum/action.h +++ b/quantum/action.h @@ -88,7 +88,7 @@ extern bool disable_action_cache; /* Code for handling one-handed key modifiers. */ #ifdef SWAP_HANDS_ENABLE -extern bool swap_hands; +extern bool swap_hands; extern const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS]; # if (MATRIX_COLS <= 8) typedef uint8_t swap_state_row_t; diff --git a/quantum/action_tapping.c b/quantum/action_tapping.c index 36839f9fafc..60e56fb811c 100644 --- a/quantum/action_tapping.c +++ b/quantum/action_tapping.c @@ -18,11 +18,11 @@ # define IS_TAPPING_PRESSED() (IS_TAPPING() && tapping_key.event.pressed) # define IS_TAPPING_RELEASED() (IS_TAPPING() && !tapping_key.event.pressed) # define IS_TAPPING_KEY(k) (IS_TAPPING() && KEYEQ(tapping_key.event.key, (k))) -#ifndef COMBO_ENABLE -# define IS_TAPPING_RECORD(r) (IS_TAPPING() && KEYEQ(tapping_key.event.key, (r->event.key))) -#else -# define IS_TAPPING_RECORD(r) (IS_TAPPING() && KEYEQ(tapping_key.event.key, (r->event.key)) && tapping_key.keycode == r->keycode) -#endif +# ifndef COMBO_ENABLE +# define IS_TAPPING_RECORD(r) (IS_TAPPING() && KEYEQ(tapping_key.event.key, (r->event.key))) +# else +# define IS_TAPPING_RECORD(r) (IS_TAPPING() && KEYEQ(tapping_key.event.key, (r->event.key)) && tapping_key.keycode == r->keycode) +# endif __attribute__((weak)) uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { return TAPPING_TERM; } @@ -212,11 +212,15 @@ bool process_tapping(keyrecord_t *keyp) { if (tapping_key.tap.count > 1) { debug("Tapping: Start new tap with releasing last tap(>1).\n"); // unregister key - process_record(&(keyrecord_t){.tap = tapping_key.tap, .event.key = tapping_key.event.key, .event.time = event.time, .event.pressed = false, -#ifdef COMBO_ENABLE - .keycode = tapping_key.keycode, -#endif - }); + process_record(&(keyrecord_t){ + .tap = tapping_key.tap, + .event.key = tapping_key.event.key, + .event.time = event.time, + .event.pressed = false, +# ifdef COMBO_ENABLE + .keycode = tapping_key.keycode, +# endif + }); } else { debug("Tapping: Start while last tap(1).\n"); } @@ -254,11 +258,15 @@ bool process_tapping(keyrecord_t *keyp) { if (tapping_key.tap.count > 1) { debug("Tapping: Start new tap with releasing last timeout tap(>1).\n"); // unregister key - process_record(&(keyrecord_t){.tap = tapping_key.tap, .event.key = tapping_key.event.key, .event.time = event.time, .event.pressed = false, -#ifdef COMBO_ENABLE - .keycode = tapping_key.keycode, -#endif - }); + process_record(&(keyrecord_t){ + .tap = tapping_key.tap, + .event.key = tapping_key.event.key, + .event.time = event.time, + .event.pressed = false, +# ifdef COMBO_ENABLE + .keycode = tapping_key.keycode, +# endif + }); } else { debug("Tapping: Start while last timeout tap(1).\n"); } diff --git a/quantum/action_util.c b/quantum/action_util.c index 2b3c00cba00..9a85bd50406 100644 --- a/quantum/action_util.c +++ b/quantum/action_util.c @@ -32,16 +32,6 @@ static uint8_t weak_override_mods = 0; static uint8_t suppressed_mods = 0; #endif -#ifdef USB_6KRO_ENABLE -# define RO_ADD(a, b) ((a + b) % KEYBOARD_REPORT_KEYS) -# define RO_SUB(a, b) ((a - b + KEYBOARD_REPORT_KEYS) % KEYBOARD_REPORT_KEYS) -# define RO_INC(a) RO_ADD(a, 1) -# define RO_DEC(a) RO_SUB(a, 1) -static int8_t cb_head = 0; -static int8_t cb_tail = 0; -static int8_t cb_count = 0; -#endif - // TODO: pointer variable is not needed // report_keyboard_t keyboard_report = {}; report_keyboard_t *keyboard_report = &(report_keyboard_t){}; diff --git a/quantum/command.c b/quantum/command.c index 2ff640a7bcd..6d56a25ea11 100644 --- a/quantum/command.c +++ b/quantum/command.c @@ -39,7 +39,7 @@ along with this program. If not, see . # include "backlight.h" #endif -#if defined(MOUSEKEY_ENABLE) && !defined(MK_3_SPEED) +#if defined(MOUSEKEY_ENABLE) # include "mousekey.h" #endif @@ -53,7 +53,7 @@ static void print_version(void); static void print_status(void); static bool command_console(uint8_t code); static void command_console_help(void); -#if defined(MOUSEKEY_ENABLE) && !defined(MK_3_SPEED) +#if defined(MOUSEKEY_ENABLE) static bool mousekey_console(uint8_t code); #endif @@ -73,7 +73,7 @@ bool command_proc(uint8_t code) { else return (command_console_extra(code) || command_console(code)); break; -#if defined(MOUSEKEY_ENABLE) && !defined(MK_3_SPEED) +#if defined(MOUSEKEY_ENABLE) case MOUSEKEY: mousekey_console(code); break; diff --git a/quantum/debounce/asym_eager_defer_pk.c b/quantum/debounce/asym_eager_defer_pk.c index 24380dc5e58..81f39383c4f 100644 --- a/quantum/debounce/asym_eager_defer_pk.c +++ b/quantum/debounce/asym_eager_defer_pk.c @@ -46,17 +46,17 @@ When no state changes have occured for DEBOUNCE milliseconds, we push the state. #define ROW_SHIFTER ((matrix_row_t)1) typedef struct { - bool pressed : 1; + bool pressed : 1; uint8_t time : 7; } debounce_counter_t; #if DEBOUNCE > 0 static debounce_counter_t *debounce_counters; -static fast_timer_t last_time; -static bool counters_need_update; -static bool matrix_need_update; +static fast_timer_t last_time; +static bool counters_need_update; +static bool matrix_need_update; -#define DEBOUNCE_ELAPSED 0 +# define DEBOUNCE_ELAPSED 0 static void update_debounce_counters_and_transfer_if_expired(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, uint8_t elapsed_time); static void transfer_matrix_values(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows); @@ -64,7 +64,7 @@ static void transfer_matrix_values(matrix_row_t raw[], matrix_row_t cooked[], ui // we use num_rows rather than MATRIX_ROWS to support split keyboards void debounce_init(uint8_t num_rows) { debounce_counters = malloc(num_rows * MATRIX_COLS * sizeof(debounce_counter_t)); - int i = 0; + int i = 0; for (uint8_t r = 0; r < num_rows; r++) { for (uint8_t c = 0; c < MATRIX_COLS; c++) { debounce_counters[i++].time = DEBOUNCE_ELAPSED; @@ -81,10 +81,10 @@ void debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool bool updated_last = false; if (counters_need_update) { - fast_timer_t now = timer_read_fast(); + fast_timer_t now = timer_read_fast(); fast_timer_t elapsed_time = TIMER_DIFF_FAST(now, last_time); - last_time = now; + last_time = now; updated_last = true; if (elapsed_time > UINT8_MAX) { elapsed_time = UINT8_MAX; @@ -108,7 +108,7 @@ static void update_debounce_counters_and_transfer_if_expired(matrix_row_t raw[], debounce_counter_t *debounce_pointer = debounce_counters; counters_need_update = false; - matrix_need_update = false; + matrix_need_update = false; for (uint8_t row = 0; row < num_rows; row++) { for (uint8_t col = 0; col < MATRIX_COLS; col++) { @@ -146,8 +146,8 @@ static void transfer_matrix_values(matrix_row_t raw[], matrix_row_t cooked[], ui if (delta & col_mask) { if (debounce_pointer->time == DEBOUNCE_ELAPSED) { debounce_pointer->pressed = (raw[row] & col_mask); - debounce_pointer->time = DEBOUNCE; - counters_need_update = true; + debounce_pointer->time = DEBOUNCE; + counters_need_update = true; if (debounce_pointer->pressed) { // key-down: eager diff --git a/quantum/debounce/sym_defer_g.c b/quantum/debounce/sym_defer_g.c index fbefd55ede5..9155eb914cb 100644 --- a/quantum/debounce/sym_defer_g.c +++ b/quantum/debounce/sym_defer_g.c @@ -25,7 +25,7 @@ When no state changes have occured for DEBOUNCE milliseconds, we push the state. #endif #if DEBOUNCE > 0 -static bool debouncing = false; +static bool debouncing = false; static fast_timer_t debouncing_time; void debounce_init(uint8_t num_rows) {} diff --git a/quantum/debounce/sym_defer_pk.c b/quantum/debounce/sym_defer_pk.c index 626a9be841c..1b698ba347d 100644 --- a/quantum/debounce/sym_defer_pk.c +++ b/quantum/debounce/sym_defer_pk.c @@ -49,7 +49,7 @@ static debounce_counter_t *debounce_counters; static fast_timer_t last_time; static bool counters_need_update; -#define DEBOUNCE_ELAPSED 0 +# define DEBOUNCE_ELAPSED 0 static void update_debounce_counters_and_transfer_if_expired(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, uint8_t elapsed_time); static void start_debounce_counters(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows); @@ -74,10 +74,10 @@ void debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool bool updated_last = false; if (counters_need_update) { - fast_timer_t now = timer_read_fast(); + fast_timer_t now = timer_read_fast(); fast_timer_t elapsed_time = TIMER_DIFF_FAST(now, last_time); - last_time = now; + last_time = now; updated_last = true; if (elapsed_time > UINT8_MAX) { elapsed_time = UINT8_MAX; diff --git a/quantum/debounce/sym_eager_pk.c b/quantum/debounce/sym_eager_pk.c index 15a3242e685..9da000ea9a5 100644 --- a/quantum/debounce/sym_eager_pk.c +++ b/quantum/debounce/sym_eager_pk.c @@ -50,7 +50,7 @@ static fast_timer_t last_time; static bool counters_need_update; static bool matrix_need_update; -#define DEBOUNCE_ELAPSED 0 +# define DEBOUNCE_ELAPSED 0 static void update_debounce_counters(uint8_t num_rows, uint8_t elapsed_time); static void transfer_matrix_values(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows); @@ -75,10 +75,10 @@ void debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool bool updated_last = false; if (counters_need_update) { - fast_timer_t now = timer_read_fast(); + fast_timer_t now = timer_read_fast(); fast_timer_t elapsed_time = TIMER_DIFF_FAST(now, last_time); - last_time = now; + last_time = now; updated_last = true; if (elapsed_time > UINT8_MAX) { elapsed_time = UINT8_MAX; @@ -107,7 +107,7 @@ static void update_debounce_counters(uint8_t num_rows, uint8_t elapsed_time) { for (uint8_t col = 0; col < MATRIX_COLS; col++) { if (*debounce_pointer != DEBOUNCE_ELAPSED) { if (*debounce_pointer <= elapsed_time) { - *debounce_pointer = DEBOUNCE_ELAPSED; + *debounce_pointer = DEBOUNCE_ELAPSED; matrix_need_update = true; } else { *debounce_pointer -= elapsed_time; diff --git a/quantum/debounce/sym_eager_pr.c b/quantum/debounce/sym_eager_pr.c index 2ad592c5a62..eda92a263b0 100644 --- a/quantum/debounce/sym_eager_pr.c +++ b/quantum/debounce/sym_eager_pr.c @@ -49,7 +49,7 @@ static debounce_counter_t *debounce_counters; static fast_timer_t last_time; static bool counters_need_update; -#define DEBOUNCE_ELAPSED 0 +# define DEBOUNCE_ELAPSED 0 static void update_debounce_counters(uint8_t num_rows, uint8_t elapsed_time); static void transfer_matrix_values(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows); @@ -71,10 +71,10 @@ void debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool bool updated_last = false; if (counters_need_update) { - fast_timer_t now = timer_read_fast(); + fast_timer_t now = timer_read_fast(); fast_timer_t elapsed_time = TIMER_DIFF_FAST(now, last_time); - last_time = now; + last_time = now; updated_last = true; if (elapsed_time > UINT8_MAX) { elapsed_time = UINT8_MAX; @@ -102,7 +102,7 @@ static void update_debounce_counters(uint8_t num_rows, uint8_t elapsed_time) { for (uint8_t row = 0; row < num_rows; row++) { if (*debounce_pointer != DEBOUNCE_ELAPSED) { if (*debounce_pointer <= elapsed_time) { - *debounce_pointer = DEBOUNCE_ELAPSED; + *debounce_pointer = DEBOUNCE_ELAPSED; matrix_need_update = true; } else { *debounce_pointer -= elapsed_time; diff --git a/quantum/debounce/tests/asym_eager_defer_pk_tests.cpp b/quantum/debounce/tests/asym_eager_defer_pk_tests.cpp index fe374c3dfac..44b4fe19560 100644 --- a/quantum/debounce/tests/asym_eager_defer_pk_tests.cpp +++ b/quantum/debounce/tests/asym_eager_defer_pk_tests.cpp @@ -19,7 +19,8 @@ #include "debounce_test_common.h" TEST_F(DebounceTest, OneKeyShort1) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, /* Release key after 1ms delay */ {1, {{0, 1, UP}}, {}}, @@ -43,7 +44,8 @@ TEST_F(DebounceTest, OneKeyShort1) { } TEST_F(DebounceTest, OneKeyShort2) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, /* Release key after 2ms delay */ {2, {{0, 1, UP}}, {}}, @@ -58,7 +60,8 @@ TEST_F(DebounceTest, OneKeyShort2) { } TEST_F(DebounceTest, OneKeyShort3) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, /* Release key after 3ms delay */ {3, {{0, 1, UP}}, {}}, @@ -73,7 +76,8 @@ TEST_F(DebounceTest, OneKeyShort3) { } TEST_F(DebounceTest, OneKeyShort4) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, /* Release key after 4ms delay */ {4, {{0, 1, UP}}, {}}, @@ -88,7 +92,8 @@ TEST_F(DebounceTest, OneKeyShort4) { } TEST_F(DebounceTest, OneKeyShort5) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, /* Release key after 5ms delay */ @@ -102,7 +107,8 @@ TEST_F(DebounceTest, OneKeyShort5) { } TEST_F(DebounceTest, OneKeyShort6) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, /* Release key after 6ms delay */ @@ -116,7 +122,8 @@ TEST_F(DebounceTest, OneKeyShort6) { } TEST_F(DebounceTest, OneKeyShort7) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, /* Release key after 7ms delay */ @@ -130,7 +137,8 @@ TEST_F(DebounceTest, OneKeyShort7) { } TEST_F(DebounceTest, OneKeyShort8) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, /* Release key after 1ms delay */ {1, {{0, 1, UP}}, {}}, @@ -145,7 +153,8 @@ TEST_F(DebounceTest, OneKeyShort8) { } TEST_F(DebounceTest, OneKeyShort9) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, /* Release key after 1ms delay */ {1, {{0, 1, UP}}, {}}, @@ -159,7 +168,8 @@ TEST_F(DebounceTest, OneKeyShort9) { } TEST_F(DebounceTest, OneKeyBouncing1) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, {1, {{0, 1, UP}}, {}}, {2, {{0, 1, DOWN}}, {}}, @@ -185,7 +195,8 @@ TEST_F(DebounceTest, OneKeyBouncing1) { } TEST_F(DebounceTest, OneKeyBouncing2) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, /* Change twice in the same time period */ {1, {{0, 1, UP}}, {}}, @@ -217,7 +228,8 @@ TEST_F(DebounceTest, OneKeyBouncing2) { } TEST_F(DebounceTest, OneKeyLong) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, {25, {{0, 1, UP}}, {}}, @@ -236,7 +248,8 @@ TEST_F(DebounceTest, OneKeyLong) { } TEST_F(DebounceTest, TwoKeysShort) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, {1, {{0, 2, DOWN}}, {{0, 2, DOWN}}}, /* Release key after 2ms delay */ @@ -249,14 +262,14 @@ TEST_F(DebounceTest, TwoKeysShort) { {10, {}, {{0, 1, UP}}}, /* 5ms+5ms after DOWN at time 0 */ /* Press key again after 1ms delay */ {11, {{0, 1, DOWN}}, {{0, 1, DOWN}, {0, 2, UP}}}, /* 5ms+5ms after DOWN at time 0 */ - {12, {{0, 2, DOWN}}, {{0, 2, DOWN}}}, /* 5ms+5ms after DOWN at time 0 */ + {12, {{0, 2, DOWN}}, {{0, 2, DOWN}}}, /* 5ms+5ms after DOWN at time 0 */ }); runEvents(); } - TEST_F(DebounceTest, OneKeyDelayedScan1) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, /* Processing is very late, immediately release key */ @@ -269,7 +282,8 @@ TEST_F(DebounceTest, OneKeyDelayedScan1) { } TEST_F(DebounceTest, OneKeyDelayedScan2) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, /* Processing is very late, immediately release key */ @@ -283,7 +297,8 @@ TEST_F(DebounceTest, OneKeyDelayedScan2) { } TEST_F(DebounceTest, OneKeyDelayedScan3) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, /* Processing is very late */ @@ -298,7 +313,8 @@ TEST_F(DebounceTest, OneKeyDelayedScan3) { } TEST_F(DebounceTest, OneKeyDelayedScan4) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, /* Processing is very late */ @@ -314,7 +330,8 @@ TEST_F(DebounceTest, OneKeyDelayedScan4) { } TEST_F(DebounceTest, OneKeyDelayedScan5) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, {5, {{0, 1, UP}}, {}}, @@ -329,7 +346,8 @@ TEST_F(DebounceTest, OneKeyDelayedScan5) { } TEST_F(DebounceTest, OneKeyDelayedScan6) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, {5, {{0, 1, UP}}, {}}, @@ -345,7 +363,8 @@ TEST_F(DebounceTest, OneKeyDelayedScan6) { } TEST_F(DebounceTest, OneKeyDelayedScan7) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, {5, {{0, 1, UP}}, {}}, @@ -358,7 +377,8 @@ TEST_F(DebounceTest, OneKeyDelayedScan7) { } TEST_F(DebounceTest, OneKeyDelayedScan8) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, /* Processing is a bit late */ diff --git a/quantum/debounce/tests/debounce_test_common.cpp b/quantum/debounce/tests/debounce_test_common.cpp index 1c5e7c9f4e7..f9414e571d8 100644 --- a/quantum/debounce/tests/debounce_test_common.cpp +++ b/quantum/debounce/tests/debounce_test_common.cpp @@ -31,9 +31,7 @@ void set_time(uint32_t t); void advance_time(uint32_t ms); } -void DebounceTest::addEvents(std::initializer_list events) { - events_.insert(events_.end(), events.begin(), events.end()); -} +void DebounceTest::addEvents(std::initializer_list events) { events_.insert(events_.end(), events.begin(), events.end()); } void DebounceTest::runEvents() { /* Run the test multiple times, from 1kHz to 10kHz scan rate */ @@ -54,7 +52,7 @@ void DebounceTest::runEvents() { void DebounceTest::runEventsInternal() { fast_timer_t previous = 0; - bool first = true; + bool first = true; /* Initialise keyboard with start time (offset to avoid testing at 0) and all keys UP */ debounce_init(MATRIX_ROWS); @@ -80,7 +78,7 @@ void DebounceTest::runEventsInternal() { } } - first = false; + first = false; previous = event.time_; /* Prepare input matrix */ @@ -98,12 +96,7 @@ void DebounceTest::runEventsInternal() { /* Check output matrix has expected change events */ for (auto &output : event.outputs_) { - EXPECT_EQ(!!(cooked_matrix_[output.row_] & (1U << output.col_)), directionValue(output.direction_)) - << "Missing event at " << strTime() - << " expected key " << output.row_ << "," << output.col_ << " " << directionLabel(output.direction_) - << "\ninput_matrix: changed=" << !event.inputs_.empty() << "\n" << strMatrix(input_matrix_) - << "\nexpected_matrix:\n" << strMatrix(output_matrix_) - << "\nactual_matrix:\n" << strMatrix(cooked_matrix_); + EXPECT_EQ(!!(cooked_matrix_[output.row_] & (1U << output.col_)), directionValue(output.direction_)) << "Missing event at " << strTime() << " expected key " << output.row_ << "," << output.col_ << " " << directionLabel(output.direction_) << "\ninput_matrix: changed=" << !event.inputs_.empty() << "\n" << strMatrix(input_matrix_) << "\nexpected_matrix:\n" << strMatrix(output_matrix_) << "\nactual_matrix:\n" << strMatrix(cooked_matrix_); } /* Check output matrix has no other changes */ @@ -133,27 +126,20 @@ void DebounceTest::runDebounce(bool changed) { debounce(raw_matrix_, cooked_matrix_, MATRIX_ROWS, changed); if (!std::equal(std::begin(input_matrix_), std::end(input_matrix_), std::begin(raw_matrix_))) { - FAIL() << "Fatal error: debounce() modified raw matrix at " << strTime() - << "\ninput_matrix: changed=" << changed << "\n" << strMatrix(input_matrix_) - << "\nraw_matrix:\n" << strMatrix(raw_matrix_); + FAIL() << "Fatal error: debounce() modified raw matrix at " << strTime() << "\ninput_matrix: changed=" << changed << "\n" << strMatrix(input_matrix_) << "\nraw_matrix:\n" << strMatrix(raw_matrix_); } } void DebounceTest::checkCookedMatrix(bool changed, const std::string &error_message) { if (!std::equal(std::begin(output_matrix_), std::end(output_matrix_), std::begin(cooked_matrix_))) { - FAIL() << "Unexpected event: " << error_message << " at " << strTime() - << "\ninput_matrix: changed=" << changed << "\n" << strMatrix(input_matrix_) - << "\nexpected_matrix:\n" << strMatrix(output_matrix_) - << "\nactual_matrix:\n" << strMatrix(cooked_matrix_); + FAIL() << "Unexpected event: " << error_message << " at " << strTime() << "\ninput_matrix: changed=" << changed << "\n" << strMatrix(input_matrix_) << "\nexpected_matrix:\n" << strMatrix(output_matrix_) << "\nactual_matrix:\n" << strMatrix(cooked_matrix_); } } std::string DebounceTest::strTime() { std::stringstream text; - text << "time " << (timer_read_fast() - time_offset_) - << " (extra_iterations=" << extra_iterations_ - << ", auto_advance_time=" << auto_advance_time_ << ")"; + text << "time " << (timer_read_fast() - time_offset_) << " (extra_iterations=" << extra_iterations_ << ", auto_advance_time=" << auto_advance_time_ << ")"; return text.str(); } @@ -181,49 +167,39 @@ std::string DebounceTest::strMatrix(matrix_row_t matrix[]) { bool DebounceTest::directionValue(Direction direction) { switch (direction) { - case DOWN: - return true; + case DOWN: + return true; - case UP: - return false; + case UP: + return false; } } std::string DebounceTest::directionLabel(Direction direction) { switch (direction) { - case DOWN: - return "DOWN"; + case DOWN: + return "DOWN"; - case UP: - return "UP"; + case UP: + return "UP"; } } /* Modify a matrix and verify that events always specify a change */ void DebounceTest::matrixUpdate(matrix_row_t matrix[], const std::string &name, const MatrixTestEvent &event) { - ASSERT_NE(!!(matrix[event.row_] & (1U << event.col_)), directionValue(event.direction_)) - << "Test " << name << " at " << strTime() - << " sets key " << event.row_ << "," << event.col_ << " " << directionLabel(event.direction_) - << " but it is already " << directionLabel(event.direction_) - << "\n" << name << "_matrix:\n" << strMatrix(matrix); + ASSERT_NE(!!(matrix[event.row_] & (1U << event.col_)), directionValue(event.direction_)) << "Test " << name << " at " << strTime() << " sets key " << event.row_ << "," << event.col_ << " " << directionLabel(event.direction_) << " but it is already " << directionLabel(event.direction_) << "\n" << name << "_matrix:\n" << strMatrix(matrix); switch (event.direction_) { - case DOWN: - matrix[event.row_] |= (1U << event.col_); - break; + case DOWN: + matrix[event.row_] |= (1U << event.col_); + break; - case UP: - matrix[event.row_] &= ~(1U << event.col_); - break; + case UP: + matrix[event.row_] &= ~(1U << event.col_); + break; } } -DebounceTestEvent::DebounceTestEvent(fast_timer_t time, - std::initializer_list inputs, - std::initializer_list outputs) - : time_(time), inputs_(inputs), outputs_(outputs) { -} +DebounceTestEvent::DebounceTestEvent(fast_timer_t time, std::initializer_list inputs, std::initializer_list outputs) : time_(time), inputs_(inputs), outputs_(outputs) {} -MatrixTestEvent::MatrixTestEvent(int row, int col, Direction direction) - : row_(row), col_(col), direction_(direction) { -} +MatrixTestEvent::MatrixTestEvent(int row, int col, Direction direction) : row_(row), col_(col), direction_(direction) {} diff --git a/quantum/debounce/tests/debounce_test_common.h b/quantum/debounce/tests/debounce_test_common.h index d87e310594e..b7becb37826 100644 --- a/quantum/debounce/tests/debounce_test_common.h +++ b/quantum/debounce/tests/debounce_test_common.h @@ -31,36 +31,34 @@ enum Direction { }; class MatrixTestEvent { -public: + public: MatrixTestEvent(int row, int col, Direction direction); - const int row_; - const int col_; + const int row_; + const int col_; const Direction direction_; }; class DebounceTestEvent { -public: + public: // 0, {{0, 1, DOWN}}, {{0, 1, DOWN}}) - DebounceTestEvent(fast_timer_t time, - std::initializer_list inputs, - std::initializer_list outputs); + DebounceTestEvent(fast_timer_t time, std::initializer_list inputs, std::initializer_list outputs); - const fast_timer_t time_; + const fast_timer_t time_; const std::list inputs_; const std::list outputs_; }; class DebounceTest : public ::testing::Test { -protected: + protected: void addEvents(std::initializer_list events); void runEvents(); fast_timer_t time_offset_ = 7777; - bool time_jumps_ = false; + bool time_jumps_ = false; -private: - static bool directionValue(Direction direction); + private: + static bool directionValue(Direction direction); static std::string directionLabel(Direction direction); void runEventsInternal(); @@ -78,6 +76,6 @@ private: matrix_row_t cooked_matrix_[MATRIX_ROWS]; matrix_row_t output_matrix_[MATRIX_ROWS]; - int extra_iterations_; + int extra_iterations_; bool auto_advance_time_; }; diff --git a/quantum/debounce/tests/sym_defer_g_tests.cpp b/quantum/debounce/tests/sym_defer_g_tests.cpp index a56aecd8f32..73d3d45e306 100644 --- a/quantum/debounce/tests/sym_defer_g_tests.cpp +++ b/quantum/debounce/tests/sym_defer_g_tests.cpp @@ -19,7 +19,8 @@ #include "debounce_test_common.h" TEST_F(DebounceTest, OneKeyShort1) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {}}, {5, {}, {{0, 1, DOWN}}}, @@ -32,7 +33,8 @@ TEST_F(DebounceTest, OneKeyShort1) { } TEST_F(DebounceTest, OneKeyShort2) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {}}, {5, {}, {{0, 1, DOWN}}}, @@ -45,7 +47,8 @@ TEST_F(DebounceTest, OneKeyShort2) { } TEST_F(DebounceTest, OneKeyShort3) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {}}, {5, {}, {{0, 1, DOWN}}}, @@ -58,7 +61,8 @@ TEST_F(DebounceTest, OneKeyShort3) { } TEST_F(DebounceTest, OneKeyTooQuick1) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {}}, /* Release key exactly on the debounce time */ {5, {{0, 1, UP}}, {}}, @@ -67,7 +71,8 @@ TEST_F(DebounceTest, OneKeyTooQuick1) { } TEST_F(DebounceTest, OneKeyTooQuick2) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {}}, {5, {}, {{0, 1, DOWN}}}, @@ -80,7 +85,8 @@ TEST_F(DebounceTest, OneKeyTooQuick2) { } TEST_F(DebounceTest, OneKeyBouncing1) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {}}, {1, {{0, 1, UP}}, {}}, {2, {{0, 1, DOWN}}, {}}, @@ -94,7 +100,8 @@ TEST_F(DebounceTest, OneKeyBouncing1) { } TEST_F(DebounceTest, OneKeyBouncing2) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {}}, {5, {}, {{0, 1, DOWN}}}, {6, {{0, 1, UP}}, {}}, @@ -108,7 +115,8 @@ TEST_F(DebounceTest, OneKeyBouncing2) { } TEST_F(DebounceTest, OneKeyLong) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {}}, {5, {}, {{0, 1, DOWN}}}, @@ -125,7 +133,8 @@ TEST_F(DebounceTest, OneKeyLong) { } TEST_F(DebounceTest, TwoKeysShort) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {}}, {1, {{0, 2, DOWN}}, {}}, @@ -140,7 +149,8 @@ TEST_F(DebounceTest, TwoKeysShort) { } TEST_F(DebounceTest, TwoKeysSimultaneous1) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}, {0, 2, DOWN}}, {}}, {5, {}, {{0, 1, DOWN}, {0, 2, DOWN}}}, @@ -152,7 +162,8 @@ TEST_F(DebounceTest, TwoKeysSimultaneous1) { } TEST_F(DebounceTest, TwoKeysSimultaneous2) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {}}, {1, {{0, 2, DOWN}}, {}}, @@ -167,7 +178,8 @@ TEST_F(DebounceTest, TwoKeysSimultaneous2) { } TEST_F(DebounceTest, OneKeyDelayedScan1) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {}}, /* Processing is very late */ @@ -182,7 +194,8 @@ TEST_F(DebounceTest, OneKeyDelayedScan1) { } TEST_F(DebounceTest, OneKeyDelayedScan2) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {}}, /* Processing is very late */ @@ -197,7 +210,8 @@ TEST_F(DebounceTest, OneKeyDelayedScan2) { } TEST_F(DebounceTest, OneKeyDelayedScan3) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {}}, /* Release key before debounce expires */ @@ -208,7 +222,8 @@ TEST_F(DebounceTest, OneKeyDelayedScan3) { } TEST_F(DebounceTest, OneKeyDelayedScan4) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {}}, /* Processing is a bit late */ diff --git a/quantum/debounce/tests/sym_defer_pk_tests.cpp b/quantum/debounce/tests/sym_defer_pk_tests.cpp index 1f3061e59c0..7542c2dad42 100644 --- a/quantum/debounce/tests/sym_defer_pk_tests.cpp +++ b/quantum/debounce/tests/sym_defer_pk_tests.cpp @@ -19,7 +19,8 @@ #include "debounce_test_common.h" TEST_F(DebounceTest, OneKeyShort1) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {}}, {5, {}, {{0, 1, DOWN}}}, @@ -32,7 +33,8 @@ TEST_F(DebounceTest, OneKeyShort1) { } TEST_F(DebounceTest, OneKeyShort2) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {}}, {5, {}, {{0, 1, DOWN}}}, @@ -45,7 +47,8 @@ TEST_F(DebounceTest, OneKeyShort2) { } TEST_F(DebounceTest, OneKeyShort3) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {}}, {5, {}, {{0, 1, DOWN}}}, @@ -58,7 +61,8 @@ TEST_F(DebounceTest, OneKeyShort3) { } TEST_F(DebounceTest, OneKeyTooQuick1) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {}}, /* Release key exactly on the debounce time */ {5, {{0, 1, UP}}, {}}, @@ -67,7 +71,8 @@ TEST_F(DebounceTest, OneKeyTooQuick1) { } TEST_F(DebounceTest, OneKeyTooQuick2) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {}}, {5, {}, {{0, 1, DOWN}}}, @@ -80,7 +85,8 @@ TEST_F(DebounceTest, OneKeyTooQuick2) { } TEST_F(DebounceTest, OneKeyBouncing1) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {}}, {1, {{0, 1, UP}}, {}}, {2, {{0, 1, DOWN}}, {}}, @@ -94,7 +100,8 @@ TEST_F(DebounceTest, OneKeyBouncing1) { } TEST_F(DebounceTest, OneKeyBouncing2) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {}}, {5, {}, {{0, 1, DOWN}}}, {6, {{0, 1, UP}}, {}}, @@ -108,7 +115,8 @@ TEST_F(DebounceTest, OneKeyBouncing2) { } TEST_F(DebounceTest, OneKeyLong) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {}}, {5, {}, {{0, 1, DOWN}}}, @@ -125,7 +133,8 @@ TEST_F(DebounceTest, OneKeyLong) { } TEST_F(DebounceTest, TwoKeysShort) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {}}, {1, {{0, 2, DOWN}}, {}}, @@ -142,7 +151,8 @@ TEST_F(DebounceTest, TwoKeysShort) { } TEST_F(DebounceTest, TwoKeysSimultaneous1) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}, {0, 2, DOWN}}, {}}, {5, {}, {{0, 1, DOWN}, {0, 2, DOWN}}}, @@ -154,7 +164,8 @@ TEST_F(DebounceTest, TwoKeysSimultaneous1) { } TEST_F(DebounceTest, TwoKeysSimultaneous2) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {}}, {1, {{0, 2, DOWN}}, {}}, @@ -169,7 +180,8 @@ TEST_F(DebounceTest, TwoKeysSimultaneous2) { } TEST_F(DebounceTest, OneKeyDelayedScan1) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {}}, /* Processing is very late */ @@ -184,7 +196,8 @@ TEST_F(DebounceTest, OneKeyDelayedScan1) { } TEST_F(DebounceTest, OneKeyDelayedScan2) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {}}, /* Processing is very late */ @@ -199,7 +212,8 @@ TEST_F(DebounceTest, OneKeyDelayedScan2) { } TEST_F(DebounceTest, OneKeyDelayedScan3) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {}}, /* Release key before debounce expires */ @@ -210,7 +224,8 @@ TEST_F(DebounceTest, OneKeyDelayedScan3) { } TEST_F(DebounceTest, OneKeyDelayedScan4) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {}}, /* Processing is a bit late */ diff --git a/quantum/debounce/tests/sym_eager_pk_tests.cpp b/quantum/debounce/tests/sym_eager_pk_tests.cpp index e0fc205e334..d9a02fe33c7 100644 --- a/quantum/debounce/tests/sym_eager_pk_tests.cpp +++ b/quantum/debounce/tests/sym_eager_pk_tests.cpp @@ -19,7 +19,8 @@ #include "debounce_test_common.h" TEST_F(DebounceTest, OneKeyShort1) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, {1, {{0, 1, UP}}, {}}, @@ -32,7 +33,8 @@ TEST_F(DebounceTest, OneKeyShort1) { } TEST_F(DebounceTest, OneKeyShort2) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, {1, {{0, 1, UP}}, {}}, @@ -45,7 +47,8 @@ TEST_F(DebounceTest, OneKeyShort2) { } TEST_F(DebounceTest, OneKeyShort3) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, {1, {{0, 1, UP}}, {}}, @@ -58,7 +61,8 @@ TEST_F(DebounceTest, OneKeyShort3) { } TEST_F(DebounceTest, OneKeyShort4) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, {1, {{0, 1, UP}}, {}}, @@ -71,7 +75,8 @@ TEST_F(DebounceTest, OneKeyShort4) { } TEST_F(DebounceTest, OneKeyShort5) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, {1, {{0, 1, UP}}, {}}, @@ -83,7 +88,8 @@ TEST_F(DebounceTest, OneKeyShort5) { } TEST_F(DebounceTest, OneKeyShort6) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, {1, {{0, 1, UP}}, {}}, @@ -95,7 +101,8 @@ TEST_F(DebounceTest, OneKeyShort6) { } TEST_F(DebounceTest, OneKeyBouncing1) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, {1, {{0, 1, UP}}, {}}, {2, {{0, 1, DOWN}}, {}}, @@ -110,7 +117,8 @@ TEST_F(DebounceTest, OneKeyBouncing1) { } TEST_F(DebounceTest, OneKeyBouncing2) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, /* Change twice in the same time period */ {1, {{0, 1, UP}}, {}}, @@ -135,7 +143,8 @@ TEST_F(DebounceTest, OneKeyBouncing2) { } TEST_F(DebounceTest, OneKeyLong) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, {25, {{0, 1, UP}}, {{0, 1, UP}}}, @@ -146,7 +155,8 @@ TEST_F(DebounceTest, OneKeyLong) { } TEST_F(DebounceTest, TwoKeysShort) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, {1, {{0, 1, UP}}, {}}, {2, {{0, 2, DOWN}}, {{0, 2, DOWN}}}, @@ -167,7 +177,8 @@ TEST_F(DebounceTest, TwoKeysShort) { } TEST_F(DebounceTest, OneKeyDelayedScan1) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, /* Processing is very late but the change will now be accepted */ @@ -178,7 +189,8 @@ TEST_F(DebounceTest, OneKeyDelayedScan1) { } TEST_F(DebounceTest, OneKeyDelayedScan2) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, /* Processing is very late but the change will now be accepted even with a 1 scan delay */ @@ -190,7 +202,8 @@ TEST_F(DebounceTest, OneKeyDelayedScan2) { } TEST_F(DebounceTest, OneKeyDelayedScan3) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, /* Processing is very late but the change will now be accepted even with a 1ms delay */ @@ -202,7 +215,8 @@ TEST_F(DebounceTest, OneKeyDelayedScan3) { } TEST_F(DebounceTest, OneKeyDelayedScan4) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, /* Processing is a bit late but the change will now be accepted */ @@ -213,7 +227,8 @@ TEST_F(DebounceTest, OneKeyDelayedScan4) { } TEST_F(DebounceTest, OneKeyDelayedScan5) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, /* Processing is very late but the change will now be accepted even with a 1 scan delay */ @@ -225,7 +240,8 @@ TEST_F(DebounceTest, OneKeyDelayedScan5) { } TEST_F(DebounceTest, OneKeyDelayedScan6) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, /* Processing is very late but the change will now be accepted even with a 1ms delay */ diff --git a/quantum/debounce/tests/sym_eager_pr_tests.cpp b/quantum/debounce/tests/sym_eager_pr_tests.cpp index 2c4bca127ea..e91dd9cb87c 100644 --- a/quantum/debounce/tests/sym_eager_pr_tests.cpp +++ b/quantum/debounce/tests/sym_eager_pr_tests.cpp @@ -19,7 +19,8 @@ #include "debounce_test_common.h" TEST_F(DebounceTest, OneKeyShort1) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, {1, {{0, 1, UP}}, {}}, @@ -32,7 +33,8 @@ TEST_F(DebounceTest, OneKeyShort1) { } TEST_F(DebounceTest, OneKeyShort2) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, {1, {{0, 1, UP}}, {}}, @@ -45,7 +47,8 @@ TEST_F(DebounceTest, OneKeyShort2) { } TEST_F(DebounceTest, OneKeyShort3) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, {1, {{0, 1, UP}}, {}}, @@ -58,7 +61,8 @@ TEST_F(DebounceTest, OneKeyShort3) { } TEST_F(DebounceTest, OneKeyShort4) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, {1, {{0, 1, UP}}, {}}, @@ -71,7 +75,8 @@ TEST_F(DebounceTest, OneKeyShort4) { } TEST_F(DebounceTest, OneKeyShort5) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, {1, {{0, 1, UP}}, {}}, @@ -83,7 +88,8 @@ TEST_F(DebounceTest, OneKeyShort5) { } TEST_F(DebounceTest, OneKeyShort6) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, {1, {{0, 1, UP}}, {}}, @@ -95,7 +101,8 @@ TEST_F(DebounceTest, OneKeyShort6) { } TEST_F(DebounceTest, OneKeyBouncing1) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, {1, {{0, 1, UP}}, {}}, {2, {{0, 1, DOWN}}, {}}, @@ -110,7 +117,8 @@ TEST_F(DebounceTest, OneKeyBouncing1) { } TEST_F(DebounceTest, OneKeyBouncing2) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, /* Change twice in the same time period */ {1, {{0, 1, UP}}, {}}, @@ -135,7 +143,8 @@ TEST_F(DebounceTest, OneKeyBouncing2) { } TEST_F(DebounceTest, OneKeyLong) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, {25, {{0, 1, UP}}, {{0, 1, UP}}}, @@ -146,7 +155,8 @@ TEST_F(DebounceTest, OneKeyLong) { } TEST_F(DebounceTest, TwoRowsShort) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, {1, {{0, 1, UP}}, {}}, {2, {{2, 0, DOWN}}, {{2, 0, DOWN}}}, @@ -167,7 +177,8 @@ TEST_F(DebounceTest, TwoRowsShort) { } TEST_F(DebounceTest, TwoKeysOverlap) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, {1, {{0, 1, UP}}, {}}, /* Press a second key during the first debounce */ @@ -190,7 +201,8 @@ TEST_F(DebounceTest, TwoKeysOverlap) { } TEST_F(DebounceTest, TwoKeysSimultaneous1) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}, {0, 2, DOWN}}, {{0, 1, DOWN}, {0, 2, DOWN}}}, {20, {{0, 1, UP}}, {{0, 1, UP}}}, {21, {{0, 2, UP}}, {}}, @@ -202,7 +214,8 @@ TEST_F(DebounceTest, TwoKeysSimultaneous1) { } TEST_F(DebounceTest, TwoKeysSimultaneous2) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}, {0, 2, DOWN}}, {{0, 1, DOWN}, {0, 2, DOWN}}}, {20, {{0, 1, UP}, {0, 2, UP}}, {{0, 1, UP}, {0, 2, UP}}}, }); @@ -210,7 +223,8 @@ TEST_F(DebounceTest, TwoKeysSimultaneous2) { } TEST_F(DebounceTest, OneKeyDelayedScan1) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, /* Processing is very late but the change will now be accepted */ @@ -221,7 +235,8 @@ TEST_F(DebounceTest, OneKeyDelayedScan1) { } TEST_F(DebounceTest, OneKeyDelayedScan2) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, /* Processing is very late but the change will now be accepted even with a 1 scan delay */ @@ -233,7 +248,8 @@ TEST_F(DebounceTest, OneKeyDelayedScan2) { } TEST_F(DebounceTest, OneKeyDelayedScan3) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, /* Processing is very late but the change will now be accepted even with a 1ms delay */ @@ -245,7 +261,8 @@ TEST_F(DebounceTest, OneKeyDelayedScan3) { } TEST_F(DebounceTest, OneKeyDelayedScan4) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, /* Processing is a bit late but the change will now be accepted */ @@ -256,7 +273,8 @@ TEST_F(DebounceTest, OneKeyDelayedScan4) { } TEST_F(DebounceTest, OneKeyDelayedScan5) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, /* Processing is very late but the change will now be accepted even with a 1 scan delay */ @@ -268,7 +286,8 @@ TEST_F(DebounceTest, OneKeyDelayedScan5) { } TEST_F(DebounceTest, OneKeyDelayedScan6) { - addEvents({ /* Time, Inputs, Outputs */ + addEvents({ + /* Time, Inputs, Outputs */ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, /* Processing is very late but the change will now be accepted even with a 1ms delay */ diff --git a/quantum/keymap_extras/keymap_steno.h b/quantum/keymap_extras/keymap_steno.h index ab95b43fdde..310aa074094 100644 --- a/quantum/keymap_extras/keymap_steno.h +++ b/quantum/keymap_extras/keymap_steno.h @@ -74,8 +74,7 @@ enum steno_keycodes { }; #ifdef STENO_COMBINEDMAP -enum steno_combined_keycodes -{ +enum steno_combined_keycodes { STN_S3 = QK_STENO_COMB, STN_TKL, STN_PWL, diff --git a/quantum/mcu_selection.mk b/quantum/mcu_selection.mk index f7eaeec8ac4..3b86433a869 100644 --- a/quantum/mcu_selection.mk +++ b/quantum/mcu_selection.mk @@ -122,7 +122,7 @@ ifneq ($(findstring STM32F042, $(MCU)),) MCU_SERIES = STM32F0xx # Linker script to use - # - it should exist either in /os/common/ports/ARMCMx/compilers/GCC/ld/ + # - it should exist either in /os/common/startup/ARMCMx/compilers/GCC/ld/ # or /ld/ MCU_LDSCRIPT ?= STM32F042x6 @@ -154,7 +154,7 @@ ifneq ($(findstring STM32F072, $(MCU)),) MCU_SERIES = STM32F0xx # Linker script to use - # - it should exist either in /os/common/ports/ARMCMx/compilers/GCC/ld/ + # - it should exist either in /os/common/startup/ARMCMx/compilers/GCC/ld/ # or /ld/ MCU_LDSCRIPT ?= STM32F072xB @@ -186,7 +186,7 @@ ifneq ($(findstring STM32F103, $(MCU)),) MCU_SERIES = STM32F1xx # Linker script to use - # - it should exist either in /os/common/ports/ARMCMx/compilers/GCC/ld/ + # - it should exist either in /os/common/startup/ARMCMx/compilers/GCC/ld/ # or /ld/ MCU_LDSCRIPT ?= STM32F103x8 @@ -218,7 +218,7 @@ ifneq ($(findstring STM32F303, $(MCU)),) MCU_SERIES = STM32F3xx # Linker script to use - # - it should exist either in /os/common/ports/ARMCMx/compilers/GCC/ld/ + # - it should exist either in /os/common/startup/ARMCMx/compilers/GCC/ld/ # or /ld/ MCU_LDSCRIPT ?= STM32F303xC @@ -250,7 +250,7 @@ ifneq ($(findstring STM32F401, $(MCU)),) MCU_SERIES = STM32F4xx # Linker script to use - # - it should exist either in /os/common/ports/ARMCMx/compilers/GCC/ld/ + # - it should exist either in /os/common/startup/ARMCMx/compilers/GCC/ld/ # or /ld/ ifeq ($(strip $(BOOTLOADER)), tinyuf2) MCU_LDSCRIPT ?= STM32F401xC_tinyuf2 @@ -287,7 +287,7 @@ ifneq ($(findstring STM32F407, $(MCU)),) MCU_SERIES = STM32F4xx # Linker script to use - # - it should exist either in /os/common/ports/ARMCMx/compilers/GCC/ld/ + # - it should exist either in /os/common/startup/ARMCMx/compilers/GCC/ld/ # or /ld/ MCU_LDSCRIPT ?= STM32F407xE @@ -319,7 +319,7 @@ ifneq ($(findstring STM32F411, $(MCU)),) MCU_SERIES = STM32F4xx # Linker script to use - # - it should exist either in /os/common/ports/ARMCMx/compilers/GCC/ld/ + # - it should exist either in /os/common/startup/ARMCMx/compilers/GCC/ld/ # or /ld/ ifeq ($(strip $(BOOTLOADER)), tinyuf2) MCU_LDSCRIPT ?= STM32F411xE_tinyuf2 @@ -356,8 +356,7 @@ ifneq ($(findstring STM32F446, $(MCU)),) MCU_SERIES = STM32F4xx # Linker script to use - # - it should exist either in /os/common/ports/ARMCMx/compilers/GCC/ld/ - # or /os/common/startup/ARMCMx/compilers/GCC/ld/ + # - it should exist either in /os/common/startup/ARMCMx/compilers/GCC/ld/ # or /ld/ MCU_LDSCRIPT ?= STM32F446xE @@ -386,7 +385,7 @@ ifneq ($(findstring STM32G431, $(MCU)),) MCU_SERIES = STM32G4xx # Linker script to use - # - it should exist either in /os/common/ports/ARMCMx/compilers/GCC/ld/ + # - it should exist either in /os/common/startup/ARMCMx/compilers/GCC/ld/ # or /ld/ MCU_LDSCRIPT ?= STM32G431xB @@ -418,7 +417,7 @@ ifneq ($(findstring STM32G474, $(MCU)),) MCU_SERIES = STM32G4xx # Linker script to use - # - it should exist either in /os/common/ports/ARMCMx/compilers/GCC/ld/ + # - it should exist either in /os/common/startup/ARMCMx/compilers/GCC/ld/ # or /ld/ MCU_LDSCRIPT ?= STM32G474xE @@ -450,7 +449,7 @@ ifneq (,$(filter $(MCU),STM32L433 STM32L443)) MCU_SERIES = STM32L4xx # Linker script to use - # - it should exist either in /os/common/ports/ARMCMx/compilers/GCC/ld/ + # - it should exist either in /os/common/startup/ARMCMx/compilers/GCC/ld/ # or /ld/ MCU_LDSCRIPT ?= STM32L432xC @@ -484,7 +483,7 @@ ifneq (,$(filter $(MCU),STM32L412 STM32L422)) MCU_SERIES = STM32L4xx # Linker script to use - # - it should exist either in /os/common/ports/ARMCMx/compilers/GCC/ld/ + # - it should exist either in /os/common/startup/ARMCMx/compilers/GCC/ld/ # or /ld/ MCU_LDSCRIPT ?= STM32L412xB diff --git a/quantum/process_keycode/process_combo.c b/quantum/process_keycode/process_combo.c index e8661839c7b..a050161edf8 100644 --- a/quantum/process_keycode/process_combo.c +++ b/quantum/process_keycode/process_combo.c @@ -18,10 +18,9 @@ #include "process_combo.h" #include "action_tapping.h" - #ifdef COMBO_COUNT -__attribute__((weak)) combo_t key_combos[COMBO_COUNT]; -uint16_t COMBO_LEN = COMBO_COUNT; +__attribute__((weak)) combo_t key_combos[COMBO_COUNT]; +uint16_t COMBO_LEN = COMBO_COUNT; #else extern combo_t key_combos[]; extern uint16_t COMBO_LEN; @@ -46,64 +45,86 @@ __attribute__((weak)) bool process_combo_key_release(uint16_t combo_index, combo #endif #ifndef COMBO_NO_TIMER -static uint16_t timer = 0; +static uint16_t timer = 0; #endif -static bool b_combo_enable = true; // defaults to enabled -static uint16_t longest_term = 0; +static bool b_combo_enable = true; // defaults to enabled +static uint16_t longest_term = 0; typedef struct { keyrecord_t record; - uint16_t combo_index; - uint16_t keycode; + uint16_t combo_index; + uint16_t keycode; } queued_record_t; -static uint8_t key_buffer_size = 0; +static uint8_t key_buffer_size = 0; static queued_record_t key_buffer[COMBO_KEY_BUFFER_LENGTH]; typedef struct { uint16_t combo_index; } queued_combo_t; -static uint8_t combo_buffer_write= 0; -static uint8_t combo_buffer_read = 0; +static uint8_t combo_buffer_write = 0; +static uint8_t combo_buffer_read = 0; static queued_combo_t combo_buffer[COMBO_BUFFER_LENGTH]; #define INCREMENT_MOD(i) i = (i + 1) % COMBO_BUFFER_LENGTH -#define COMBO_KEY_POS ((keypos_t){.col=254, .row=254}) - +#define COMBO_KEY_POS ((keypos_t){.col = 254, .row = 254}) #ifndef EXTRA_SHORT_COMBOS /* flags are their own elements in combo_t struct. */ -# define COMBO_ACTIVE(combo) (combo->active) +# define COMBO_ACTIVE(combo) (combo->active) # define COMBO_DISABLED(combo) (combo->disabled) -# define COMBO_STATE(combo) (combo->state) - -# define ACTIVATE_COMBO(combo) do {combo->active = true;}while(0) -# define DEACTIVATE_COMBO(combo) do {combo->active = false;}while(0) -# define DISABLE_COMBO(combo) do {combo->disabled = true;}while(0) -# define RESET_COMBO_STATE(combo) do { \ - combo->disabled = false; \ - combo->state = 0; \ -}while(0) +# define COMBO_STATE(combo) (combo->state) + +# define ACTIVATE_COMBO(combo) \ + do { \ + combo->active = true; \ + } while (0) +# define DEACTIVATE_COMBO(combo) \ + do { \ + combo->active = false; \ + } while (0) +# define DISABLE_COMBO(combo) \ + do { \ + combo->disabled = true; \ + } while (0) +# define RESET_COMBO_STATE(combo) \ + do { \ + combo->disabled = false; \ + combo->state = 0; \ + } while (0) #else /* flags are at the two high bits of state. */ -# define COMBO_ACTIVE(combo) (combo->state & 0x80) +# define COMBO_ACTIVE(combo) (combo->state & 0x80) # define COMBO_DISABLED(combo) (combo->state & 0x40) -# define COMBO_STATE(combo) (combo->state & 0x3F) - -# define ACTIVATE_COMBO(combo) do {combo->state |= 0x80;}while(0) -# define DEACTIVATE_COMBO(combo) do {combo->state &= ~0x80;}while(0) -# define DISABLE_COMBO(combo) do {combo->state |= 0x40;}while(0) -# define RESET_COMBO_STATE(combo) do {combo->state &= ~0x7F;}while(0) +# define COMBO_STATE(combo) (combo->state & 0x3F) + +# define ACTIVATE_COMBO(combo) \ + do { \ + combo->state |= 0x80; \ + } while (0) +# define DEACTIVATE_COMBO(combo) \ + do { \ + combo->state &= ~0x80; \ + } while (0) +# define DISABLE_COMBO(combo) \ + do { \ + combo->state |= 0x40; \ + } while (0) +# define RESET_COMBO_STATE(combo) \ + do { \ + combo->state &= ~0x7F; \ + } while (0) #endif static inline void release_combo(uint16_t combo_index, combo_t *combo) { if (combo->keycode) { keyrecord_t record = { - .event = { - .key = COMBO_KEY_POS, - .time = timer_read()|1, - .pressed = false, - }, + .event = + { + .key = COMBO_KEY_POS, + .time = timer_read() | 1, + .pressed = false, + }, .keycode = combo->keycode, }; #ifndef NO_ACTION_TAPPING @@ -123,18 +144,17 @@ static inline bool _get_combo_must_hold(uint16_t combo_index, combo_t *combo) { #elif defined(COMBO_MUST_HOLD_PER_COMBO) return get_combo_must_hold(combo_index, combo); #elif defined(COMBO_MUST_HOLD_MODS) - return (KEYCODE_IS_MOD(combo->keycode) || - (combo->keycode >= QK_MOMENTARY && combo->keycode <= QK_MOMENTARY_MAX)); + return (KEYCODE_IS_MOD(combo->keycode) || (combo->keycode >= QK_MOMENTARY && combo->keycode <= QK_MOMENTARY_MAX)); #endif return false; } -static inline uint16_t _get_wait_time(uint16_t combo_index, combo_t *combo ) { +static inline uint16_t _get_wait_time(uint16_t combo_index, combo_t *combo) { if (_get_combo_must_hold(combo_index, combo) #ifdef COMBO_MUST_TAP_PER_COMBO - || get_combo_must_tap(combo_index, combo) + || get_combo_must_tap(combo_index, combo) #endif - ) { + ) { if (longest_term < COMBO_HOLD_TERM) { return COMBO_HOLD_TERM; } @@ -144,9 +164,8 @@ static inline uint16_t _get_wait_time(uint16_t combo_index, combo_t *combo ) { } static inline uint16_t _get_combo_term(uint16_t combo_index, combo_t *combo) { - #if defined(COMBO_TERM_PER_COMBO) - return get_combo_term(combo_index, combo); + return get_combo_term(combo_index, combo); #endif return COMBO_TERM; @@ -154,7 +173,7 @@ static inline uint16_t _get_combo_term(uint16_t combo_index, combo_t *combo) { void clear_combos(void) { uint16_t index = 0; - longest_term = 0; + longest_term = 0; for (index = 0; index < COMBO_LEN; ++index) { combo_t *combo = &key_combos[index]; if (!COMBO_ACTIVE(combo)) { @@ -175,7 +194,7 @@ static inline void dump_key_buffer(void) { key_buffer_next = key_buffer_i + 1; queued_record_t *qrecord = &key_buffer[key_buffer_i]; - keyrecord_t *record = &qrecord->record; + keyrecord_t * record = &qrecord->record; if (IS_NOEVENT(record->event)) { continue; @@ -185,9 +204,9 @@ static inline void dump_key_buffer(void) { process_combo_event(qrecord->combo_index, true); } else { #ifndef NO_ACTION_TAPPING - action_tapping_process(*record); + action_tapping_process(*record); #else - process_record(record); + process_record(record); #endif } record->event.time = 0; @@ -242,7 +261,9 @@ void apply_combo(uint16_t combo_index, combo_t *combo) { /* Apply combo's result keycode to the last chord key of the combo and * disable the other keys. */ - if (COMBO_DISABLED(combo)) { return; } + if (COMBO_DISABLED(combo)) { + return; + } // state to check against so we find the last key of the combo from the buffer #if defined(EXTRA_EXTRA_LONG_COMBOS) @@ -254,12 +275,11 @@ void apply_combo(uint16_t combo_index, combo_t *combo) { #endif for (uint8_t key_buffer_i = 0; key_buffer_i < key_buffer_size; key_buffer_i++) { - queued_record_t *qrecord = &key_buffer[key_buffer_i]; - keyrecord_t *record = &qrecord->record; - uint16_t keycode = qrecord->keycode; + keyrecord_t * record = &qrecord->record; + uint16_t keycode = qrecord->keycode; - uint8_t key_count = 0; + uint8_t key_count = 0; uint16_t key_index = -1; _find_key_index_and_count(combo->keys, keycode, &key_index, &key_count); @@ -271,7 +291,7 @@ void apply_combo(uint16_t combo_index, combo_t *combo) { KEY_STATE_DOWN(state, key_index); if (ALL_COMBO_KEYS_ARE_DOWN(state, key_count)) { // this in the end executes the combo when the key_buffer is dumped. - record->keycode = combo->keycode; + record->keycode = combo->keycode; record->event.key = COMBO_KEY_POS; qrecord->combo_index = combo_index; @@ -283,19 +303,15 @@ void apply_combo(uint16_t combo_index, combo_t *combo) { // by making it a TICK event. record->event.time = 0; } - } drop_combo_from_buffer(combo_index); } static inline void apply_combos(void) { // Apply all buffered normal combos. - for (uint8_t i = combo_buffer_read; - i != combo_buffer_write; - INCREMENT_MOD(i)) { - + for (uint8_t i = combo_buffer_read; i != combo_buffer_write; INCREMENT_MOD(i)) { queued_combo_t *buffered_combo = &combo_buffer[i]; - combo_t *combo = &key_combos[buffered_combo->combo_index]; + combo_t * combo = &key_combos[buffered_combo->combo_index]; #ifdef COMBO_MUST_TAP_PER_COMBO if (get_combo_must_tap(buffered_combo->combo_index, combo)) { @@ -310,15 +326,15 @@ static inline void apply_combos(void) { clear_combos(); } -combo_t* overlaps(combo_t *combo1, combo_t *combo2) { +combo_t *overlaps(combo_t *combo1, combo_t *combo2) { /* Checks if the combos overlap and returns the combo that should be * dropped from the combo buffer. * The combo that has less keys will be dropped. If they have the same * amount of keys, drop combo1. */ - uint8_t idx1 = 0, idx2 = 0; + uint8_t idx1 = 0, idx2 = 0; uint16_t key1, key2; - bool overlaps = false; + bool overlaps = false; while ((key1 = pgm_read_word(&combo1->keys[idx1])) != COMBO_END) { idx2 = 0; @@ -335,7 +351,7 @@ combo_t* overlaps(combo_t *combo1, combo_t *combo2) { } static bool process_single_combo(combo_t *combo, uint16_t keycode, keyrecord_t *record, uint16_t combo_index) { - uint8_t key_count = 0; + uint8_t key_count = 0; uint16_t key_index = -1; _find_key_index_and_count(combo->keys, keycode, &key_index, &key_count); @@ -369,12 +385,9 @@ static bool process_single_combo(combo_t *combo, uint16_t keycode, keyrecord_t * // disable readied combos that overlap with this combo combo_t *drop = NULL; - for (uint8_t combo_buffer_i = combo_buffer_read; - combo_buffer_i != combo_buffer_write; - INCREMENT_MOD(combo_buffer_i)) { - - queued_combo_t *qcombo = &combo_buffer[combo_buffer_i]; - combo_t *buffered_combo = &key_combos[qcombo->combo_index]; + for (uint8_t combo_buffer_i = combo_buffer_read; combo_buffer_i != combo_buffer_write; INCREMENT_MOD(combo_buffer_i)) { + queued_combo_t *qcombo = &combo_buffer[combo_buffer_i]; + combo_t * buffered_combo = &key_combos[qcombo->combo_index]; if ((drop = overlaps(buffered_combo, combo))) { DISABLE_COMBO(drop); @@ -387,21 +400,19 @@ static bool process_single_combo(combo_t *combo, uint16_t keycode, keyrecord_t * INCREMENT_MOD(combo_buffer_read); } } - } if (drop != combo) { // save this combo to buffer combo_buffer[combo_buffer_write] = (queued_combo_t){ - .combo_index=combo_index, + .combo_index = combo_index, }; INCREMENT_MOD(combo_buffer_write); // get possible longer waiting time for tap-/hold-only combos. longest_term = _get_wait_time(combo_index, combo); } - } // if timer elapsed end - + } // if timer elapsed end } } else { // chord releases @@ -416,7 +427,7 @@ static bool process_single_combo(combo_t *combo, uint16_t keycode, keyrecord_t * else if (get_combo_must_tap(combo_index, combo)) { // immediately apply tap-only combo apply_combo(combo_index, combo); - apply_combos(); // also apply other prepared combos and dump key buffer + apply_combos(); // also apply other prepared combos and dump key buffer # ifdef COMBO_PROCESS_KEY_RELEASE if (process_combo_key_release(combo_index, combo, key_index, keycode)) { release_combo(combo_index, combo); @@ -424,10 +435,7 @@ static bool process_single_combo(combo_t *combo, uint16_t keycode, keyrecord_t * # endif } #endif - } else if (COMBO_ACTIVE(combo) - && ONLY_ONE_KEY_IS_DOWN(COMBO_STATE(combo)) - && KEY_NOT_YET_RELEASED(COMBO_STATE(combo), key_index) - ) { + } else if (COMBO_ACTIVE(combo) && ONLY_ONE_KEY_IS_DOWN(COMBO_STATE(combo)) && KEY_NOT_YET_RELEASED(COMBO_STATE(combo), key_index)) { /* last key released */ release_combo(combo_index, combo); key_is_part_of_combo = true; @@ -435,9 +443,7 @@ static bool process_single_combo(combo_t *combo, uint16_t keycode, keyrecord_t * #ifdef COMBO_PROCESS_KEY_RELEASE process_combo_key_release(combo_index, combo, key_index, keycode); #endif - } else if (COMBO_ACTIVE(combo) - && KEY_NOT_YET_RELEASED(COMBO_STATE(combo), key_index) - ) { + } else if (COMBO_ACTIVE(combo) && KEY_NOT_YET_RELEASED(COMBO_STATE(combo), key_index)) { /* first or middle key released */ key_is_part_of_combo = true; @@ -489,21 +495,21 @@ bool process_combo(uint16_t keycode, keyrecord_t *record) { if (record->event.pressed && is_combo_key) { #ifndef COMBO_NO_TIMER -# ifdef COMBO_STRICT_TIMER +# ifdef COMBO_STRICT_TIMER if (!timer) { // timer is set only on the first key timer = timer_read(); } -# else +# else timer = timer_read(); -# endif +# endif #endif if (key_buffer_size < COMBO_KEY_BUFFER_LENGTH) { key_buffer[key_buffer_size++] = (queued_record_t){ - .record = *record, - .keycode = keycode, - .combo_index = -1, // this will be set when applying combos + .record = *record, + .keycode = keycode, + .combo_index = -1, // this will be set when applying combos }; } } else { @@ -532,7 +538,7 @@ void combo_task(void) { if (combo_buffer_read != combo_buffer_write) { apply_combos(); longest_term = 0; - timer = 0; + timer = 0; } else { dump_key_buffer(); timer = 0; @@ -546,9 +552,9 @@ void combo_enable(void) { b_combo_enable = true; } void combo_disable(void) { #ifndef COMBO_NO_TIMER - timer = 0; + timer = 0; #endif - b_combo_enable = false; + b_combo_enable = false; combo_buffer_read = combo_buffer_write; clear_combos(); dump_key_buffer(); diff --git a/quantum/process_keycode/process_combo.h b/quantum/process_keycode/process_combo.h index 43c36d79e6a..4c4e574e34f 100644 --- a/quantum/process_keycode/process_combo.h +++ b/quantum/process_keycode/process_combo.h @@ -43,8 +43,8 @@ typedef struct { #ifdef EXTRA_SHORT_COMBOS uint8_t state; #else - bool disabled; - bool active; + bool disabled; + bool active; # if defined(EXTRA_EXTRA_LONG_COMBOS) uint32_t state; # elif defined(EXTRA_LONG_COMBOS) diff --git a/quantum/process_keycode/process_magic.c b/quantum/process_keycode/process_magic.c index 01f2fb92892..d5cff4f12aa 100644 --- a/quantum/process_keycode/process_magic.c +++ b/quantum/process_keycode/process_magic.c @@ -43,6 +43,7 @@ bool process_magic(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case MAGIC_SWAP_CONTROL_CAPSLOCK ... MAGIC_TOGGLE_ALT_GUI: case MAGIC_SWAP_LCTL_LGUI ... MAGIC_EE_HANDS_RIGHT: + case MAGIC_TOGGLE_GUI: /* keymap config */ keymap_config.raw = eeconfig_read_keymap(); switch (keycode) { diff --git a/quantum/process_keycode/process_steno.c b/quantum/process_keycode/process_steno.c index a964aead351..5d0bb313b4c 100644 --- a/quantum/process_keycode/process_steno.c +++ b/quantum/process_keycode/process_steno.c @@ -67,7 +67,7 @@ static const uint8_t boltmap[64] PROGMEM = {TXB_NUL, TXB_NUM, TXB_NUM, TXB_NUM, #ifdef STENO_COMBINEDMAP /* Used to look up when pressing the middle row key to combine two consonant or vowel keys */ -static const uint16_t combinedmap_first[] PROGMEM = {STN_S1, STN_TL, STN_PL, STN_HL, STN_FR, STN_PR, STN_LR, STN_TR, STN_DR, STN_A, STN_E}; +static const uint16_t combinedmap_first[] PROGMEM = {STN_S1, STN_TL, STN_PL, STN_HL, STN_FR, STN_PR, STN_LR, STN_TR, STN_DR, STN_A, STN_E}; static const uint16_t combinedmap_second[] PROGMEM = {STN_S2, STN_KL, STN_WL, STN_RL, STN_RR, STN_BR, STN_GR, STN_SR, STN_ZR, STN_O, STN_U}; #endif @@ -174,11 +174,10 @@ bool process_steno(uint16_t keycode, keyrecord_t *record) { return false; #ifdef STENO_COMBINEDMAP - case QK_STENO_COMB ... QK_STENO_COMB_MAX: - { + case QK_STENO_COMB ... QK_STENO_COMB_MAX: { uint8_t result; - result = process_steno(combinedmap_first[keycode-QK_STENO_COMB], record); - result &= process_steno(combinedmap_second[keycode-QK_STENO_COMB], record); + result = process_steno(combinedmap_first[keycode - QK_STENO_COMB], record); + result &= process_steno(combinedmap_second[keycode - QK_STENO_COMB], record); return result; } #endif diff --git a/quantum/process_keycode/process_tap_dance.c b/quantum/process_keycode/process_tap_dance.c index 225b36cd5fd..c707fdea308 100644 --- a/quantum/process_keycode/process_tap_dance.c +++ b/quantum/process_keycode/process_tap_dance.c @@ -20,7 +20,7 @@ uint8_t get_oneshot_mods(void); #endif static uint16_t last_td; -static int8_t highest_td = -1; +static int16_t highest_td = -1; void qk_tap_dance_pair_on_each_tap(qk_tap_dance_state_t *state, void *user_data) { qk_tap_dance_pair_t *pair = (qk_tap_dance_pair_t *)user_data; diff --git a/quantum/process_keycode/process_unicode_common.c b/quantum/process_keycode/process_unicode_common.c index 46fcaaa86b7..889c768a85c 100644 --- a/quantum/process_keycode/process_unicode_common.c +++ b/quantum/process_keycode/process_unicode_common.c @@ -100,6 +100,7 @@ __attribute__((weak)) void unicode_input_start(void) { break; case UC_WIN: register_code(KC_LALT); + wait_ms(UNICODE_TYPE_DELAY); tap_code(KC_PPLS); break; case UC_WINC: diff --git a/quantum/quantum.c b/quantum/quantum.c index e60378afe4b..0ae12b5834b 100644 --- a/quantum/quantum.c +++ b/quantum/quantum.c @@ -145,12 +145,13 @@ void reset_keyboard(void) { /* Convert record into usable keycode via the contained event. */ uint16_t get_record_keycode(keyrecord_t *record, bool update_layer_cache) { #ifdef COMBO_ENABLE - if (record->keycode) { return record->keycode; } + if (record->keycode) { + return record->keycode; + } #endif return get_event_keycode(record->event, update_layer_cache); } - /* Convert event into usable keycode. Checks the layer cache to ensure that it * retains the correct keycode after a layer change, if the key is still pressed. * "update_layer_cache" is to ensure that it only updates the layer cache when @@ -179,12 +180,12 @@ uint16_t get_event_keycode(keyevent_t event, bool update_layer_cache) { bool pre_process_record_quantum(keyrecord_t *record) { if (!( #ifdef COMBO_ENABLE - process_combo(get_record_keycode(record, true), record) && + process_combo(get_record_keycode(record, true), record) && #endif - true)) { + true)) { return false; } - return true; // continue processing + return true; // continue processing } /* Get keycode, and then call keyboard function */ diff --git a/quantum/quantum_keycodes.h b/quantum/quantum_keycodes.h index ef4b0f457b4..99eade0e036 100644 --- a/quantum/quantum_keycodes.h +++ b/quantum/quantum_keycodes.h @@ -775,12 +775,12 @@ enum quantum_keycodes { #define CMD_T(kc) LCMD_T(kc) #define WIN_T(kc) LWIN_T(kc) -#define C_S_T(kc) MT(MOD_LCTL | MOD_LSFT, kc) // Left Control + Shift e.g. for gnome-terminal -#define MEH_T(kc) MT(MOD_LCTL | MOD_LSFT | MOD_LALT, kc) // Meh is a less hyper version of the Hyper key -- doesn't include GUI, so just Left Control + Shift + Alt -#define LCAG_T(kc) MT(MOD_LCTL | MOD_LALT | MOD_LGUI, kc) // Left Control + Alt + GUI -#define RCAG_T(kc) MT(MOD_RCTL | MOD_RALT | MOD_RGUI, kc) // Right Control + Alt + GUI +#define C_S_T(kc) MT(MOD_LCTL | MOD_LSFT, kc) // Left Control + Shift e.g. for gnome-terminal +#define MEH_T(kc) MT(MOD_LCTL | MOD_LSFT | MOD_LALT, kc) // Meh is a less hyper version of the Hyper key -- doesn't include GUI, so just Left Control + Shift + Alt +#define LCAG_T(kc) MT(MOD_LCTL | MOD_LALT | MOD_LGUI, kc) // Left Control + Alt + GUI +#define RCAG_T(kc) MT(MOD_RCTL | MOD_RALT | MOD_RGUI, kc) // Right Control + Alt + GUI #define HYPR_T(kc) MT(MOD_LCTL | MOD_LSFT | MOD_LALT | MOD_LGUI, kc) // see http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/ -#define LSG_T(kc) MT(MOD_LSFT | MOD_LGUI, kc) // Left Shift + GUI +#define LSG_T(kc) MT(MOD_LSFT | MOD_LGUI, kc) // Left Shift + GUI #define SGUI_T(kc) LSG_T(kc) #define SCMD_T(kc) LSG_T(kc) #define SWIN_T(kc) LSG_T(kc) @@ -811,7 +811,7 @@ enum quantum_keycodes { #define UC_M_MA UNICODE_MODE_MAC #define UNICODE_MODE_OSX UNICODE_MODE_MAC // Deprecated alias -#define UC_M_OS UNICODE_MODE_MAC // Deprecated alias +#define UC_M_OS UNICODE_MODE_MAC // Deprecated alias #define UC_M_LN UNICODE_MODE_LNX #define UC_M_WI UNICODE_MODE_WIN #define UC_M_BS UNICODE_MODE_BSD diff --git a/quantum/split_common/transactions.c b/quantum/split_common/transactions.c index fd676f07297..3ff87710e7e 100644 --- a/quantum/split_common/transactions.c +++ b/quantum/split_common/transactions.c @@ -42,8 +42,8 @@ { &dummy, 0, 0, sizeof_member(split_shared_memory_t, member), offsetof(split_shared_memory_t, member), cb } #define trans_target2initiator_initializer(member) trans_target2initiator_initializer_cb(member, NULL) -#define transport_write(id, data, length) transport_execute_transaction(id, data, length, NULL, 0) -#define transport_read(id, data, length) transport_execute_transaction(id, NULL, 0, data, length) +#define transport_write(id, data, length) transport_execute_transaction(id, data, length, NULL, 0) +#define transport_read(id, data, length) transport_execute_transaction(id, NULL, 0, data, length) #if defined(SPLIT_TRANSACTION_IDS_KB) || defined(SPLIT_TRANSACTION_IDS_USER) // Forward-declare the RPC callback handlers @@ -157,8 +157,8 @@ static void master_matrix_handlers_slave(matrix_row_t master_matrix[], matrix_ro memcpy(master_matrix, split_shmem->mmatrix.matrix, sizeof(split_shmem->mmatrix.matrix)); } -# define TRANSACTIONS_MASTER_MATRIX_MASTER() TRANSACTION_HANDLER_MASTER(master_matrix) -# define TRANSACTIONS_MASTER_MATRIX_SLAVE() TRANSACTION_HANDLER_SLAVE(master_matrix) +# define TRANSACTIONS_MASTER_MATRIX_MASTER() TRANSACTION_HANDLER_MASTER(master_matrix) +# define TRANSACTIONS_MASTER_MATRIX_SLAVE() TRANSACTION_HANDLER_SLAVE(master_matrix) # define TRANSACTIONS_MASTER_MATRIX_REGISTRATIONS [PUT_MASTER_MATRIX] = trans_initiator2target_initializer(mmatrix.matrix), #else // SPLIT_TRANSPORT_MIRROR @@ -235,8 +235,8 @@ static void sync_timer_handlers_slave(matrix_row_t master_matrix[], matrix_row_t } } -# define TRANSACTIONS_SYNC_TIMER_MASTER() TRANSACTION_HANDLER_MASTER(sync_timer) -# define TRANSACTIONS_SYNC_TIMER_SLAVE() TRANSACTION_HANDLER_SLAVE(sync_timer) +# define TRANSACTIONS_SYNC_TIMER_MASTER() TRANSACTION_HANDLER_MASTER(sync_timer) +# define TRANSACTIONS_SYNC_TIMER_SLAVE() TRANSACTION_HANDLER_SLAVE(sync_timer) # define TRANSACTIONS_SYNC_TIMER_REGISTRATIONS [PUT_SYNC_TIMER] = trans_initiator2target_initializer(sync_timer), #else // DISABLE_SYNC_TIMER @@ -300,8 +300,8 @@ static void led_state_handlers_slave(matrix_row_t master_matrix[], matrix_row_t set_split_host_keyboard_leds(split_shmem->led_state); } -# define TRANSACTIONS_LED_STATE_MASTER() TRANSACTION_HANDLER_MASTER(led_state) -# define TRANSACTIONS_LED_STATE_SLAVE() TRANSACTION_HANDLER_SLAVE(led_state) +# define TRANSACTIONS_LED_STATE_MASTER() TRANSACTION_HANDLER_MASTER(led_state) +# define TRANSACTIONS_LED_STATE_SLAVE() TRANSACTION_HANDLER_SLAVE(led_state) # define TRANSACTIONS_LED_STATE_REGISTRATIONS [PUT_LED_STATE] = trans_initiator2target_initializer(led_state), #else // SPLIT_LED_STATE_ENABLE @@ -357,8 +357,8 @@ static void mods_handlers_slave(matrix_row_t master_matrix[], matrix_row_t slave # endif } -# define TRANSACTIONS_MODS_MASTER() TRANSACTION_HANDLER_MASTER(mods) -# define TRANSACTIONS_MODS_SLAVE() TRANSACTION_HANDLER_SLAVE(mods) +# define TRANSACTIONS_MODS_MASTER() TRANSACTION_HANDLER_MASTER(mods) +# define TRANSACTIONS_MODS_SLAVE() TRANSACTION_HANDLER_SLAVE(mods) # define TRANSACTIONS_MODS_REGISTRATIONS [PUT_MODS] = trans_initiator2target_initializer(mods), #else // SPLIT_MODS_ENABLE @@ -382,8 +382,8 @@ static bool backlight_handlers_master(matrix_row_t master_matrix[], matrix_row_t static void backlight_handlers_slave(matrix_row_t master_matrix[], matrix_row_t slave_matrix[]) { backlight_set(split_shmem->backlight_level); } -# define TRANSACTIONS_BACKLIGHT_MASTER() TRANSACTION_HANDLER_MASTER(backlight) -# define TRANSACTIONS_BACKLIGHT_SLAVE() TRANSACTION_HANDLER_SLAVE(backlight) +# define TRANSACTIONS_BACKLIGHT_MASTER() TRANSACTION_HANDLER_MASTER(backlight) +# define TRANSACTIONS_BACKLIGHT_SLAVE() TRANSACTION_HANDLER_SLAVE(backlight) # define TRANSACTIONS_BACKLIGHT_REGISTRATIONS [PUT_BACKLIGHT] = trans_initiator2target_initializer(backlight_level), #else // BACKLIGHT_ENABLE @@ -419,8 +419,8 @@ static void rgblight_handlers_slave(matrix_row_t master_matrix[], matrix_row_t s } } -# define TRANSACTIONS_RGBLIGHT_MASTER() TRANSACTION_HANDLER_MASTER(rgblight) -# define TRANSACTIONS_RGBLIGHT_SLAVE() TRANSACTION_HANDLER_SLAVE(rgblight) +# define TRANSACTIONS_RGBLIGHT_MASTER() TRANSACTION_HANDLER_MASTER(rgblight) +# define TRANSACTIONS_RGBLIGHT_SLAVE() TRANSACTION_HANDLER_SLAVE(rgblight) # define TRANSACTIONS_RGBLIGHT_REGISTRATIONS [PUT_RGBLIGHT] = trans_initiator2target_initializer(rgblight_sync), #else // defined(RGBLIGHT_ENABLE) && defined(RGBLIGHT_SPLIT) @@ -449,8 +449,8 @@ static void led_matrix_handlers_slave(matrix_row_t master_matrix[], matrix_row_t led_matrix_set_suspend_state(split_shmem->led_matrix_sync.led_suspend_state); } -# define TRANSACTIONS_LED_MATRIX_MASTER() TRANSACTION_HANDLER_MASTER(led_matrix) -# define TRANSACTIONS_LED_MATRIX_SLAVE() TRANSACTION_HANDLER_SLAVE(led_matrix) +# define TRANSACTIONS_LED_MATRIX_MASTER() TRANSACTION_HANDLER_MASTER(led_matrix) +# define TRANSACTIONS_LED_MATRIX_SLAVE() TRANSACTION_HANDLER_SLAVE(led_matrix) # define TRANSACTIONS_LED_MATRIX_REGISTRATIONS [PUT_LED_MATRIX] = trans_initiator2target_initializer(led_matrix_sync), #else // defined(LED_MATRIX_ENABLE) && defined(LED_MATRIX_SPLIT) @@ -479,8 +479,8 @@ static void rgb_matrix_handlers_slave(matrix_row_t master_matrix[], matrix_row_t rgb_matrix_set_suspend_state(split_shmem->rgb_matrix_sync.rgb_suspend_state); } -# define TRANSACTIONS_RGB_MATRIX_MASTER() TRANSACTION_HANDLER_MASTER(rgb_matrix) -# define TRANSACTIONS_RGB_MATRIX_SLAVE() TRANSACTION_HANDLER_SLAVE(rgb_matrix) +# define TRANSACTIONS_RGB_MATRIX_MASTER() TRANSACTION_HANDLER_MASTER(rgb_matrix) +# define TRANSACTIONS_RGB_MATRIX_SLAVE() TRANSACTION_HANDLER_SLAVE(rgb_matrix) # define TRANSACTIONS_RGB_MATRIX_REGISTRATIONS [PUT_RGB_MATRIX] = trans_initiator2target_initializer(rgb_matrix_sync), #else // defined(RGB_MATRIX_ENABLE) && defined(RGB_MATRIX_SPLIT) @@ -504,8 +504,8 @@ static bool wpm_handlers_master(matrix_row_t master_matrix[], matrix_row_t slave static void wpm_handlers_slave(matrix_row_t master_matrix[], matrix_row_t slave_matrix[]) { set_current_wpm(split_shmem->current_wpm); } -# define TRANSACTIONS_WPM_MASTER() TRANSACTION_HANDLER_MASTER(wpm) -# define TRANSACTIONS_WPM_SLAVE() TRANSACTION_HANDLER_SLAVE(wpm) +# define TRANSACTIONS_WPM_MASTER() TRANSACTION_HANDLER_MASTER(wpm) +# define TRANSACTIONS_WPM_SLAVE() TRANSACTION_HANDLER_SLAVE(wpm) # define TRANSACTIONS_WPM_REGISTRATIONS [PUT_WPM] = trans_initiator2target_initializer(current_wpm), #else // defined(WPM_ENABLE) && defined(SPLIT_WPM_ENABLE) @@ -535,8 +535,8 @@ static void oled_handlers_slave(matrix_row_t master_matrix[], matrix_row_t slave } } -# define TRANSACTIONS_OLED_MASTER() TRANSACTION_HANDLER_MASTER(oled) -# define TRANSACTIONS_OLED_SLAVE() TRANSACTION_HANDLER_SLAVE(oled) +# define TRANSACTIONS_OLED_MASTER() TRANSACTION_HANDLER_MASTER(oled) +# define TRANSACTIONS_OLED_SLAVE() TRANSACTION_HANDLER_SLAVE(oled) # define TRANSACTIONS_OLED_REGISTRATIONS [PUT_OLED] = trans_initiator2target_initializer(current_oled_state), #else // defined(OLED_ENABLE) && defined(SPLIT_OLED_ENABLE) @@ -566,8 +566,8 @@ static void st7565_handlers_slave(matrix_row_t master_matrix[], matrix_row_t sla } } -# define TRANSACTIONS_ST7565_MASTER() TRANSACTION_HANDLER_MASTER(st7565) -# define TRANSACTIONS_ST7565_SLAVE() TRANSACTION_HANDLER_SLAVE(st7565) +# define TRANSACTIONS_ST7565_MASTER() TRANSACTION_HANDLER_MASTER(st7565) +# define TRANSACTIONS_ST7565_SLAVE() TRANSACTION_HANDLER_SLAVE(st7565) # define TRANSACTIONS_ST7565_REGISTRATIONS [PUT_ST7565] = trans_initiator2target_initializer(current_st7565_state), #else // defined(ST7565_ENABLE) && defined(SPLIT_ST7565_ENABLE) diff --git a/show_options.mk b/show_options.mk index ce2f9c06360..60ae850cf85 100644 --- a/show_options.mk +++ b/show_options.mk @@ -65,14 +65,13 @@ OTHER_OPTION_NAMES = \ HAPTIC_ENABLE \ HHKB_RN42_ENABLE \ ISSI_ENABLE \ - KEYBOARD_LOCK_ENABLE \ KEYLOGGER_ENABLE \ LCD_BACKLIGHT_ENABLE \ MACROS_ENABLED \ PS2_MOUSE_ENABLE \ RAW_ENABLE \ SWAP_HANDS_ENABLE \ - USB_6KRO_ENABLE \ + RING_BUFFERED_6KRO_REPORT_ENABLE \ WATCHDOG_ENABLE \ XT_ENABLE \ ERGOINU \ diff --git a/tests/test_common/keyboard_report_util.cpp b/tests/test_common/keyboard_report_util.cpp index cb044c92b39..f73cf239e05 100644 --- a/tests/test_common/keyboard_report_util.cpp +++ b/tests/test_common/keyboard_report_util.cpp @@ -24,7 +24,7 @@ std::vector get_keys(const report_keyboard_t& report) { std::vector result; #if defined(NKRO_ENABLE) # error NKRO support not implemented yet -#elif defined(USB_6KRO_ENABLE) +#elif defined(RING_BUFFERED_6KRO_REPORT_ENABLE) # error 6KRO support not implemented yet #else for (size_t i = 0; i < KEYBOARD_REPORT_KEYS; i++) { diff --git a/tmk_core/common.mk b/tmk_core/common.mk index 7f742005907..e44ff2f0ab5 100644 --- a/tmk_core/common.mk +++ b/tmk_core/common.mk @@ -63,8 +63,8 @@ ifeq ($(strip $(NKRO_ENABLE)), yes) endif endif -ifeq ($(strip $(USB_6KRO_ENABLE)), yes) - TMK_COMMON_DEFS += -DUSB_6KRO_ENABLE +ifeq ($(strip $(RING_BUFFERED_6KRO_REPORT_ENABLE)), yes) + TMK_COMMON_DEFS += -DRING_BUFFERED_6KRO_REPORT_ENABLE endif ifeq ($(strip $(SLEEP_LED_ENABLE)), yes) diff --git a/tmk_core/common/chibios/sleep_led.c b/tmk_core/common/chibios/sleep_led.c index 1c65016a427..477056a454f 100644 --- a/tmk_core/common/chibios/sleep_led.c +++ b/tmk_core/common/chibios/sleep_led.c @@ -65,7 +65,7 @@ void sleep_led_timer_callback(void) { /* LPTMR clock options */ # define LPTMR_CLOCK_MCGIRCLK 0 /* 4MHz clock */ -# define LPTMR_CLOCK_LPO 1 /* 1kHz clock */ +# define LPTMR_CLOCK_LPO 1 /* 1kHz clock */ # define LPTMR_CLOCK_ERCLK32K 2 /* external 32kHz crystal */ # define LPTMR_CLOCK_OSCERCLK 3 /* output from OSC */ @@ -121,7 +121,7 @@ void sleep_led_init(void) { MCG->C2 |= MCG_C2_IRCS; // fast (4MHz) internal ref clock # if defined(KL27) // divide the 8MHz IRC by 2, to have the same MCGIRCLK speed as others MCG->MC |= MCG_MC_LIRC_DIV2_DIV2; -# endif /* KL27 */ +# endif /* KL27 */ MCG->C1 |= MCG_C1_IRCLKEN; // enable internal ref clock // to work in stop mode, also MCG_C1_IREFSTEN // Divide 4MHz by 2^N (N=6) => 62500 irqs/sec => diff --git a/tmk_core/common/report.c b/tmk_core/common/report.c index 1bcb6f2adb9..854b59ae481 100644 --- a/tmk_core/common/report.c +++ b/tmk_core/common/report.c @@ -21,6 +21,16 @@ #include "util.h" #include +#ifdef RING_BUFFERED_6KRO_REPORT_ENABLE +# define RO_ADD(a, b) ((a + b) % KEYBOARD_REPORT_KEYS) +# define RO_SUB(a, b) ((a - b + KEYBOARD_REPORT_KEYS) % KEYBOARD_REPORT_KEYS) +# define RO_INC(a) RO_ADD(a, 1) +# define RO_DEC(a) RO_SUB(a, 1) +static int8_t cb_head = 0; +static int8_t cb_tail = 0; +static int8_t cb_count = 0; +#endif + /** \brief has_anykey * * FIXME: Needs doc @@ -54,7 +64,7 @@ uint8_t get_first_key(report_keyboard_t* keyboard_report) { return i << 3 | biton(keyboard_report->nkro.bits[i]); } #endif -#ifdef USB_6KRO_ENABLE +#ifdef RING_BUFFERED_6KRO_REPORT_ENABLE uint8_t i = cb_head; do { if (keyboard_report->keys[i] != 0) { @@ -99,7 +109,7 @@ bool is_key_pressed(report_keyboard_t* keyboard_report, uint8_t key) { * FIXME: Needs doc */ void add_key_byte(report_keyboard_t* keyboard_report, uint8_t code) { -#ifdef USB_6KRO_ENABLE +#ifdef RING_BUFFERED_6KRO_REPORT_ENABLE int8_t i = cb_head; int8_t empty = -1; if (cb_count) { @@ -166,7 +176,7 @@ void add_key_byte(report_keyboard_t* keyboard_report, uint8_t code) { * FIXME: Needs doc */ void del_key_byte(report_keyboard_t* keyboard_report, uint8_t code) { -#ifdef USB_6KRO_ENABLE +#ifdef RING_BUFFERED_6KRO_REPORT_ENABLE uint8_t i = cb_head; if (cb_count) { do { diff --git a/tmk_core/protocol/chibios/usb_main.c b/tmk_core/protocol/chibios/usb_main.c index cc282e6a9b4..04049c1a9a3 100644 --- a/tmk_core/protocol/chibios/usb_main.c +++ b/tmk_core/protocol/chibios/usb_main.c @@ -921,6 +921,17 @@ static void send_extra(uint8_t report_id, uint16_t data) { return; } + if (usbGetTransmitStatusI(&USB_DRIVER, SHARED_IN_EPNUM)) { + /* Need to either suspend, or loop and call unlock/lock during + * every iteration - otherwise the system will remain locked, + * no interrupts served, so USB not going through as well. + * Note: for suspend, need USB_USE_WAIT == TRUE in halconf.h */ + if (osalThreadSuspendTimeoutS(&(&USB_DRIVER)->epc[SHARED_IN_EPNUM]->in_state->thread, TIME_MS2I(10)) == MSG_TIMEOUT) { + osalSysUnlock(); + return; + } + } + static report_extra_t report; report = (report_extra_t){.report_id = report_id, .usage = data}; diff --git a/tmk_core/protocol/ps2_mouse.c b/tmk_core/protocol/ps2_mouse.c index 39251a64343..43c88084d2d 100644 --- a/tmk_core/protocol/ps2_mouse.c +++ b/tmk_core/protocol/ps2_mouse.c @@ -158,8 +158,8 @@ static inline void ps2_mouse_convert_report_to_hid(report_mouse_t *mouse_report) #ifdef PS2_MOUSE_INVERT_BUTTONS // swap left & right buttons - uint8_t needs_left = mouse_report->buttons & PS2_MOUSE_BTN_RIGHT; - uint8_t needs_right = mouse_report->buttons & PS2_MOUSE_BTN_LEFT; + uint8_t needs_left = mouse_report->buttons & PS2_MOUSE_BTN_RIGHT; + uint8_t needs_right = mouse_report->buttons & PS2_MOUSE_BTN_LEFT; mouse_report->buttons = (mouse_report->buttons & ~(PS2_MOUSE_BTN_MASK)) | (needs_left ? PS2_MOUSE_BTN_LEFT : 0) | (needs_right ? PS2_MOUSE_BTN_RIGHT : 0); #else // remove sign and overflow flags diff --git a/tmk_core/rules.mk b/tmk_core/rules.mk index 5a7f299102e..5a629d1eb09 100644 --- a/tmk_core/rules.mk +++ b/tmk_core/rules.mk @@ -479,12 +479,12 @@ check-size: $(PRINT_WARNING_PLAIN); printf " * $(MSG_FILE_NEAR_LIMIT)"; \ else \ $(PRINT_OK); $(SILENT) || printf " * $(MSG_FILE_JUST_RIGHT)"; \ - fi \ - fi \ + fi ; \ + fi ; \ fi else check-size: - $(SILENT) || echo "(Firmware size check does not yet support $(MCU) microprocessors; skipping.)" + $(SILENT) || echo "$(MSG_CHECK_FILESIZE_SKIPPED)" endif check-md5: diff --git a/users/ajp10304/readme.md b/users/ajp10304/readme.md index 2ac0a69964e..bfc39535c1c 100644 --- a/users/ajp10304/readme.md +++ b/users/ajp10304/readme.md @@ -1,4 +1,4 @@ -Copyright 2020 Alan Pocklington @ajp10304 +Copyright 2021 Alan Pocklington @ajp10304 This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -116,7 +116,7 @@ Activated when `fn` and `raise` held together. | | | | | | | | | | | | | | :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| -| ESC | | | | | | | | BTN3 | | | | +| ESC | | | | | | W_L | W_UP | BTN3 | W_DWN| W_R | | | ACC0 | ACC1 | ACC2 | | | | | BTN1 | UP | BTN2 | | | | ACC0 | ACC1 | ACC2 | | | | | LEFT | DOWN | RIGHT| | | | | | | | | | | | | | | | diff --git a/users/arkag/arkag.c b/users/arkag/arkag.c index ea716ecdab8..da85d4f6d49 100644 --- a/users/arkag/arkag.c +++ b/users/arkag/arkag.c @@ -392,6 +392,10 @@ void matrix_scan_user(void) { // end format functions // start fancy functions + SEQ_TWO_KEYS(KC_V, KC_P) { + SEND_STRING("ggvG}x:set paste\ni"); + pri_mod_keystroke(KC_V); + } SEQ_THREE_KEYS(KC_C, KC_C, KC_ENT) { surround_type(6, KC_GRAVE, false); pri_mod_keystroke(KC_V); diff --git a/users/bcat/rules.mk b/users/bcat/rules.mk index 6d748875a4f..651ee96fe07 100644 --- a/users/bcat/rules.mk +++ b/users/bcat/rules.mk @@ -29,7 +29,6 @@ SLEEP_LED_ENABLE = no # Disable other unused options on all keyboards. AUTO_SHIFT_ENABLE = no COMBO_ENABLE = no -KEYBOARD_LOCK_ENABLE = no KEY_LOCK_ENABLE = no LEADER_ENABLE = no SWAP_HANDS_ENABLE = no diff --git a/users/dennytom/chording_engine/chord.py b/users/dennytom/chording_engine/chord.py index 707f36b82a8..5e3b6d2834f 100644 --- a/users/dennytom/chording_engine/chord.py +++ b/users/dennytom/chording_engine/chord.py @@ -1,5 +1,4 @@ from functools import reduce -import re strings = [] number_of_strings = -1 @@ -463,4 +462,4 @@ def secret_chord(PSEUDOLAYER, ACTION, INPUT_STRING, data, output_buffer, index, hash = hash[3:] if hash != "": - return add_key(PSEUDOLAYER, hash, ACTION, output_buffer, index, number_of_strings, strings) \ No newline at end of file + return add_key(PSEUDOLAYER, hash, ACTION, output_buffer, index, number_of_strings, strings) diff --git a/users/drashna/config.h b/users/drashna/config.h index 5e935827bf2..a7c99ed0d6b 100644 --- a/users/drashna/config.h +++ b/users/drashna/config.h @@ -147,14 +147,33 @@ // # define OLED_FONT_5X5 // # define OLED_FONT_AZTECH // # define OLED_FONT_BMPLAIN +// # define OLED_FONT_CRACKERS +# define OLED_FONT_DEAD_MEAL +// # define OLED_FONT_EIN +// # define OLED_FONT_HISKYF21 +// # define OLED_FONT_SQUASH +// # define OLED_FONT_ZXPIX // # define OLED_FONT_SUPER_DIGG -// # define OLED_LOGO_GMK_BAD -// # define OLED_LOGO_HUE_MANITEE + +// # define OLED_LOGO_BEBOP // # define OLED_LOGO_CORNE +// # define OLED_LOGO_GMK_BAD // # define OLED_LOGO_GOTHAM +// # define OLED_LOGO_HUE_MANITEE +// # define OLED_LOGO_LOOSE # define OLED_LOGO_SCIFI +// # define OLED_LOGO_SETS3N +// # define OLED_LOGO_SKEEB #endif +// #define WPM_ESTIMATED_WORD_SIZE 5 +#define WPM_ALLOW_COUNT_REGRESSION +// #define WPM_UNFILTERED +// #define WPM_SAMPLE_SECONDS 5 +// #define WPM_SAMPLE_PERIODS 50 +// #define WPM_LAUNCH_CONTROL + + #ifndef ONESHOT_TAP_TOGGLE # define ONESHOT_TAP_TOGGLE 2 #endif // !ONESHOT_TAP_TOGGLE @@ -163,17 +182,12 @@ # define ONESHOT_TIMEOUT 3000 #endif // !ONESHOT_TIMEOUT -// this makes it possible to do rolling combos (zx) with keys that -// convert to other keys on hold (z becomes ctrl when you hold it, -// and when this option isn't enabled, z rapidly followed by x -// actually sends Ctrl-x. That's bad.) -#define IGNORE_MOD_TAP_INTERRUPT -#undef PERMISSIVE_HOLD -//#define TAPPING_FORCE_HOLD_PER_KEY -//#define RETRO_TAPPING_PER_KEY -#if !defined(KEYBOARD_kyria) && !defined(KEYBOARD_splitkb_kyria) -# define TAPPING_TERM_PER_KEY -#endif +#define IGNORE_MOD_TAP_INTERRUPT_PER_KEY +#define PERMISSIVE_HOLD_PER_KEY +#define TAPPING_FORCE_HOLD_PER_KEY +#define RETRO_TAPPING_PER_KEY +#define TAPPING_TERM_PER_KEY + #ifndef TAPPING_TOGGLE # define TAPPING_TOGGLE 1 diff --git a/users/drashna/drashna.c b/users/drashna/drashna.c index 3423e379a1e..7e07a2c7c57 100644 --- a/users/drashna/drashna.c +++ b/users/drashna/drashna.c @@ -73,11 +73,6 @@ void matrix_init_user(void) { matrix_init_secret(); matrix_init_keymap(); -#if defined(AUDIO_ENABLE) && defined(SPLIT_KEYBOARD) - if (!is_keyboard_master()) { - stop_all_notes(); - } -#endif } __attribute__((weak)) void keyboard_post_init_keymap(void) {} @@ -108,8 +103,11 @@ void shutdown_user(void) { #ifdef RGB_MATRIX_ENABLE rgb_matrix_set_color_all(0xFF, 0x00, 0x00); rgb_matrix_update_pwm_buffers(); - #endif // RGB_MATRIX_ENABLE +#ifdef OLED_ENABLE + oled_off(); +#endif + shutdown_keymap(); } @@ -227,16 +225,15 @@ bool hasAllBitsInMask(uint8_t value, uint8_t mask) { } #ifdef SPLIT_KEYBOARD -# if defined(AUDIO_ENABLE) -bool delayed_tasks_run = false; -# endif __attribute__((weak)) void matrix_slave_scan_keymap(void) {} void matrix_slave_scan_user(void) { # if defined(AUDIO_ENABLE) # if !defined(NO_MUSIC_MODE) music_task(); # endif +# ifdef AUDIO_INIT_DELAY if (!is_keyboard_master()) { + static bool delayed_tasks_run = false; static uint16_t delayed_task_timer = 0; if (!delayed_tasks_run) { if (!delayed_task_timer) { @@ -247,6 +244,7 @@ void matrix_slave_scan_user(void) { } } } +# endif # endif # ifdef SEQUENCER_ENABLE sequencer_task(); @@ -261,3 +259,61 @@ void matrix_slave_scan_user(void) { matrix_slave_scan_keymap(); } #endif + +__attribute__((weak)) uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + default: + return TAPPING_TERM; + } +} + +__attribute__((weak)) bool get_permissive_hold(uint16_t keycode, keyrecord_t *record) { + // Immediately select the hold action when another key is tapped: + // return true; + // Do not select the hold action when another key is tapped. + // return false; + switch (keycode) { + default: + return false; + } +} + +__attribute__((weak)) bool get_hold_on_other_key_press(uint16_t keycode, keyrecord_t *record) { + // Immediately select the hold action when another key is pressed. + // return true; + // Do not select the hold action when another key is pressed. + // return false; + switch (keycode) { + case QK_LAYER_TAP ... QK_LAYER_TAP_MAX: + return true; + default: + return false; + } +} + +__attribute__((weak)) bool get_ignore_mod_tap_interrupt(uint16_t keycode, keyrecord_t *record) { + // Do not force the mod-tap key press to be handled as a modifier + // if any other key was pressed while the mod-tap key is held down. + // return true; + // Force the mod-tap key press to be handled as a modifier if any + // other key was pressed while the mod-tap key is held down. + // return false; + switch (keycode) { + default: + return true; + } +} + +__attribute__((weak)) bool get_tapping_force_hold(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + default: + return false; + } +} + +__attribute__((weak)) bool get_retro_tapping(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + default: + return false; + } +} diff --git a/users/drashna/drashna.h b/users/drashna/drashna.h index af26fdc433f..6a45141d9a8 100644 --- a/users/drashna/drashna.h +++ b/users/drashna/drashna.h @@ -50,6 +50,7 @@ enum userspace_layers { LAST_DEFAULT_LAYER = _DVORAK, _GAMEPAD, _DIABLO, + _DIABLOII, _MOUSE, _MEDIA, _LOWER, diff --git a/users/drashna/drashna_font.h b/users/drashna/drashna_font.h index e9353e62a9f..844292a53a0 100644 --- a/users/drashna/drashna_font.h +++ b/users/drashna/drashna_font.h @@ -6,660 +6,947 @@ #if __has_include("../../../../Documents/qmk/oled_font.h") # include "../../../../Documents/qmk/oled_font.h" #else + +// additional fonts from +// https://github.com/datacute/TinyOLED-Fonts + # include "progmem.h" // clang-format off static const unsigned char font[] PROGMEM = { - 0x07, 0x08, 0x7F, 0x08, 0x07, 0x00, // 0x00 0 - 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00, // 0x01 1 - 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00, // 0x02 2 - 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, // 0x03 3 ♥ - 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00, // 0x04 4 ♦ - 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00, // 0x05 5 ♧ - 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, // 0x06 6 ♤ - 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, // 0x07 7 - 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, // 0x08 8 - 0x00, 0x18, 0x24, 0x18, 0x00, 0x00, // 0x09 9 - 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00, // 0x0A 10 - 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00, // 0x0B 11 ♂ - 0x26, 0x29, 0x79, 0x29, 0x26, 0x00, // 0x0C 12 ♀ - 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00, // 0x0D 13 ♪ - 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00, // 0x0E 14 ♫ - 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00, // 0x0F 15 - 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00, // 0x10 16 - 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00, // 0x11 17 - 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00, // 0x12 18 ↕ - 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00, // 0x13 19 ‼ - 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, // 0x14 20 ¶ - 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00, // 0x15 21 § - 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, // 0x16 22 _ - 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00, // 0x17 23 ↨ - 0x08, 0x04, 0x7E, 0x04, 0x08, 0x00, // 0x18 24 ↑ - 0x10, 0x20, 0x7E, 0x20, 0x10, 0x00, // 0x19 25 ↓ - 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00, // 0x1A 26 → - 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00, // 0x1B 27 ← - 0x1E, 0x10, 0x10, 0x10, 0x10, 0x00, // 0x1C 28 ⌙h - 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, // 0x1D 29 ↭ - 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, // 0x1E 30 - 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, // 0x1F 31 + 0x07, 0x08, 0x7F, 0x08, 0x07, 0x00, + 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00, + 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00, + 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, + 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00, + 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00, + 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, + 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, + 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, + 0x00, 0x18, 0x24, 0x18, 0x00, 0x00, + 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00, + 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00, + 0x26, 0x29, 0x79, 0x29, 0x26, 0x00, + 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00, + 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00, + 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00, + 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00, + 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00, + 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00, + 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00, + 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, + 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00, + 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, + 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00, + 0x08, 0x04, 0x7E, 0x04, 0x08, 0x00, + 0x10, 0x20, 0x7E, 0x20, 0x10, 0x00, + 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00, + 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00, + 0x1E, 0x10, 0x10, 0x10, 0x10, 0x00, + 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, + 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, + 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, + # if defined(OLED_FONT_5X5) - 0x00,0x00,0x00,0x00,0x00,0x00, // 0x20 32 - 0x5c,0x00,0x00,0x00,0x00,0x00, // 0x21 33 ! - 0x06,0x00,0x06,0x00,0x00,0x00, // 0x22 34 " - 0x28,0x7c,0x28,0x7c,0x28,0x00, // 0x23 35 # - 0x5c,0x54,0xfe,0x54,0x74,0x00, // 0x24 36 $ - 0x44,0x20,0x10,0x08,0x44,0x00, // 0x25 37 % - 0x28,0x54,0x54,0x20,0x50,0x00, // 0x26 38 & - 0x06,0x00,0x00,0x00,0x00,0x00, // 0x27 39 ' - 0x38,0x44,0x00,0x00,0x00,0x00, // 0x28 40 ( - 0x44,0x38,0x00,0x00,0x00,0x00, // 0x29 41 ) - 0x02,0x07,0x02,0x00,0x00,0x00, // 0x2A 42 * - 0x10,0x10,0x7c,0x10,0x10,0x00, // 0x2B 43 + - 0xc0,0x00,0x00,0x00,0x00,0x00, // 0x2C 44 , - 0x10,0x10,0x10,0x10,0x10,0x00, // 0x2D 45 - - 0x40,0x00,0x00,0x00,0x00,0x00, // 0x2E 46 . - 0x60,0x10,0x0c,0x00,0x00,0x00, // 0x2F 47 / - 0x7c,0x64,0x54,0x4c,0x7c,0x00, // 0x30 48 0 - 0x48,0x7c,0x40,0x00,0x00,0x00, // 0x31 49 1 - 0x64,0x54,0x54,0x54,0x48,0x00, // 0x32 50 2 - 0x44,0x54,0x54,0x54,0x6c,0x00, // 0x33 51 3 - 0x3c,0x20,0x70,0x20,0x20,0x00, // 0x34 52 4 - 0x5c,0x54,0x54,0x54,0x24,0x00, // 0x35 53 5 - 0x7c,0x54,0x54,0x54,0x74,0x00, // 0x36 54 6 - 0x04,0x04,0x64,0x14,0x0c,0x00, // 0x37 55 7 - 0x7c,0x54,0x54,0x54,0x7c,0x00, // 0x38 56 8 - 0x5c,0x54,0x54,0x54,0x7c,0x00, // 0x39 57 9 - 0x44,0x00,0x00,0x00,0x00,0x00, // 0x3A 58 : - 0xc4,0x00,0x00,0x00,0x00,0x00, // 0x3B 59 ; - 0x10,0x28,0x44,0x00,0x00,0x00, // 0x3C 60 < - 0x28,0x28,0x28,0x28,0x28,0x00, // 0x3D 61 = - 0x44,0x28,0x10,0x00,0x00,0x00, // 0x3E 62 > - 0x08,0x04,0x54,0x08,0x00,0x00, // 0x3F 63 ? - 0x7c,0x44,0x54,0x54,0x5c,0x00, // 0x40 64 @ - 0x7c,0x24,0x24,0x24,0x7c,0x00, // 0x41 65 A - 0x7c,0x54,0x54,0x54,0x6c,0x00, // 0x42 66 B - 0x7c,0x44,0x44,0x44,0x44,0x00, // 0x43 67 C - 0x7c,0x44,0x44,0x44,0x38,0x00, // 0x44 68 D - 0x7c,0x54,0x54,0x54,0x44,0x00, // 0x45 69 E - 0x7c,0x14,0x14,0x14,0x04,0x00, // 0x46 70 F - 0x7c,0x44,0x44,0x54,0x74,0x00, // 0x47 71 G - 0x7c,0x10,0x10,0x10,0x7c,0x00, // 0x48 72 H - 0x44,0x44,0x7c,0x44,0x44,0x00, // 0x49 73 I - 0x60,0x40,0x40,0x44,0x7c,0x00, // 0x4A 74 J - 0x7c,0x10,0x10,0x28,0x44,0x00, // 0x4B 75 K - 0x7c,0x40,0x40,0x40,0x40,0x00, // 0x4C 76 L - 0x7c,0x08,0x10,0x08,0x7c,0x00, // 0x4D 77 M - 0x7c,0x08,0x10,0x20,0x7c,0x00, // 0x4E 78 N - 0x38,0x44,0x44,0x44,0x38,0x00, // 0x4F 79 O - 0x7c,0x14,0x14,0x14,0x08,0x00, // 0x50 80 P - 0x3c,0x24,0x64,0x24,0x3c,0x00, // 0x51 81 Q - 0x7c,0x14,0x14,0x14,0x68,0x00, // 0x52 82 R - 0x5c,0x54,0x54,0x54,0x74,0x00, // 0x53 83 S - 0x04,0x04,0x7c,0x04,0x04,0x00, // 0x54 84 T - 0x7c,0x40,0x40,0x40,0x7c,0x00, // 0x55 85 U - 0x0c,0x30,0x40,0x30,0x0c,0x00, // 0x56 86 V - 0x3c,0x40,0x30,0x40,0x3c,0x00, // 0x57 87 W - 0x44,0x28,0x10,0x28,0x44,0x00, // 0x58 88 X - 0x0c,0x10,0x60,0x10,0x0c,0x00, // 0x59 89 Y - 0x44,0x64,0x54,0x4c,0x44,0x00, // 0x5A 90 Z - 0x7c,0x44,0x00,0x00,0x00,0x00, // 0x5B 91 [ - 0x0c,0x10,0x60,0x00,0x00,0x00, // 0x5C 92 \ backslash - 0x44,0x7c,0x00,0x00,0x00,0x00, // 0x5D 93 ] - 0x00,0x01,0x00,0x01,0x00,0x00, // 0x5E 94 ^ - 0x40,0x40,0x40,0x40,0x40,0x40, // 0x5F 95 _ - 0x00,0x01,0x00,0x00,0x00,0x00, // 0x60 96 ` - 0x7c,0x24,0x24,0x24,0x7c,0x00, // 0x61 97 a - 0x7c,0x54,0x54,0x54,0x6c,0x00, // 0x62 98 b - 0x7c,0x44,0x44,0x44,0x44,0x00, // 0x63 99 c - 0x7c,0x44,0x44,0x44,0x38,0x00, // 0x64 100 d - 0x7c,0x54,0x54,0x54,0x44,0x00, // 0x65 101 e - 0x7c,0x14,0x14,0x14,0x04,0x00, // 0x66 102 f - 0x7c,0x44,0x44,0x54,0x74,0x00, // 0x67 103 g - 0x7c,0x10,0x10,0x10,0x7c,0x00, // 0x68 104 h - 0x44,0x44,0x7c,0x44,0x44,0x00, // 0x69 105 i - 0x60,0x40,0x40,0x44,0x7c,0x00, // 0x6A 106 j - 0x7c,0x10,0x10,0x28,0x44,0x00, // 0x6B 107 k - 0x7c,0x40,0x40,0x40,0x40,0x00, // 0x6C 108 l - 0x7c,0x08,0x10,0x08,0x7c,0x00, // 0x6D 109 m - 0x7c,0x08,0x10,0x20,0x7c,0x00, // 0x6E 110 n - 0x38,0x44,0x44,0x44,0x38,0x00, // 0x6F 111 o - 0x7c,0x14,0x14,0x14,0x08,0x00, // 0x70 112 p - 0x3c,0x24,0x64,0x24,0x3c,0x00, // 0x71 113 q - 0x7c,0x14,0x14,0x14,0x68,0x00, // 0x72 114 r - 0x5c,0x54,0x54,0x54,0x74,0x00, // 0x73 115 s - 0x04,0x04,0x7c,0x04,0x04,0x00, // 0x74 116 t - 0x7c,0x40,0x40,0x40,0x7c,0x00, // 0x75 117 u - 0x0c,0x30,0x40,0x30,0x0c,0x00, // 0x76 118 v - 0x3c,0x40,0x30,0x40,0x3c,0x00, // 0x77 119 w - 0x44,0x28,0x10,0x28,0x44,0x00, // 0x78 120 x - 0x0c,0x10,0x60,0x10,0x0c,0x00, // 0x79 121 y - 0x44,0x64,0x54,0x4c,0x44,0x00, // 0x7A 122 z - 0x10,0x7c,0x44,0x00,0x00,0x00, // 0x7B 123 { - 0x6c,0x00,0x00,0x00,0x00,0x00, // 0x7C 124 | - 0x44,0x7c,0x10,0x00,0x00,0x00, // 0x7D 125 } - 0x02,0x01,0x02,0x01,0x00,0x00, // 0x7E 126 ~ - 0x00,0x00,0x00,0x00,0x00,0x00, // 0x7F 127 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x28, 0x7c, 0x28, 0x7c, 0x28, 0x00, + 0x5c, 0x54, 0xfe, 0x54, 0x74, 0x00, + 0x44, 0x20, 0x10, 0x08, 0x44, 0x00, + 0x28, 0x54, 0x54, 0x20, 0x50, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x38, 0x44, 0x00, 0x00, 0x00, 0x00, + 0x44, 0x38, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x07, 0x02, 0x00, 0x00, 0x00, + 0x10, 0x10, 0x7c, 0x10, 0x10, 0x00, + 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, + 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x60, 0x10, 0x0c, 0x00, 0x00, 0x00, + 0x7c, 0x64, 0x54, 0x4c, 0x7c, 0x00, + 0x48, 0x7c, 0x40, 0x00, 0x00, 0x00, + 0x64, 0x54, 0x54, 0x54, 0x48, 0x00, + 0x44, 0x54, 0x54, 0x54, 0x6c, 0x00, + 0x3c, 0x20, 0x70, 0x20, 0x20, 0x00, + 0x5c, 0x54, 0x54, 0x54, 0x24, 0x00, + 0x7c, 0x54, 0x54, 0x54, 0x74, 0x00, + 0x04, 0x04, 0x64, 0x14, 0x0c, 0x00, + 0x7c, 0x54, 0x54, 0x54, 0x7c, 0x00, + 0x5c, 0x54, 0x54, 0x54, 0x7c, 0x00, + 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc4, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x10, 0x28, 0x44, 0x00, 0x00, 0x00, + 0x28, 0x28, 0x28, 0x28, 0x28, 0x00, + 0x44, 0x28, 0x10, 0x00, 0x00, 0x00, + 0x08, 0x04, 0x54, 0x08, 0x00, 0x00, + 0x7c, 0x44, 0x54, 0x54, 0x5c, 0x00, + 0x7c, 0x24, 0x24, 0x24, 0x7c, 0x00, + 0x7c, 0x54, 0x54, 0x54, 0x6c, 0x00, + 0x7c, 0x44, 0x44, 0x44, 0x44, 0x00, + 0x7c, 0x44, 0x44, 0x44, 0x38, 0x00, + 0x7c, 0x54, 0x54, 0x54, 0x44, 0x00, + 0x7c, 0x14, 0x14, 0x14, 0x04, 0x00, + 0x7c, 0x44, 0x44, 0x54, 0x74, 0x00, + 0x7c, 0x10, 0x10, 0x10, 0x7c, 0x00, + 0x44, 0x44, 0x7c, 0x44, 0x44, 0x00, + 0x60, 0x40, 0x40, 0x44, 0x7c, 0x00, + 0x7c, 0x10, 0x10, 0x28, 0x44, 0x00, + 0x7c, 0x40, 0x40, 0x40, 0x40, 0x00, + 0x7c, 0x08, 0x10, 0x08, 0x7c, 0x00, + 0x7c, 0x08, 0x10, 0x20, 0x7c, 0x00, + 0x38, 0x44, 0x44, 0x44, 0x38, 0x00, + 0x7c, 0x14, 0x14, 0x14, 0x08, 0x00, + 0x3c, 0x24, 0x64, 0x24, 0x3c, 0x00, + 0x7c, 0x14, 0x14, 0x14, 0x68, 0x00, + 0x5c, 0x54, 0x54, 0x54, 0x74, 0x00, + 0x04, 0x04, 0x7c, 0x04, 0x04, 0x00, + 0x7c, 0x40, 0x40, 0x40, 0x7c, 0x00, + 0x0c, 0x30, 0x40, 0x30, 0x0c, 0x00, + 0x3c, 0x40, 0x30, 0x40, 0x3c, 0x00, + 0x44, 0x28, 0x10, 0x28, 0x44, 0x00, + 0x0c, 0x10, 0x60, 0x10, 0x0c, 0x00, + 0x44, 0x64, 0x54, 0x4c, 0x44, 0x00, + 0x7c, 0x44, 0x00, 0x00, 0x00, 0x00, + 0x0c, 0x10, 0x60, 0x00, 0x00, 0x00, + 0x44, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, + 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x7c, 0x24, 0x24, 0x24, 0x7c, 0x00, + 0x7c, 0x54, 0x54, 0x54, 0x6c, 0x00, + 0x7c, 0x44, 0x44, 0x44, 0x44, 0x00, + 0x7c, 0x44, 0x44, 0x44, 0x38, 0x00, + 0x7c, 0x54, 0x54, 0x54, 0x44, 0x00, + 0x7c, 0x14, 0x14, 0x14, 0x04, 0x00, + 0x7c, 0x44, 0x44, 0x54, 0x74, 0x00, + 0x7c, 0x10, 0x10, 0x10, 0x7c, 0x00, + 0x44, 0x44, 0x7c, 0x44, 0x44, 0x00, + 0x60, 0x40, 0x40, 0x44, 0x7c, 0x00, + 0x7c, 0x10, 0x10, 0x28, 0x44, 0x00, + 0x7c, 0x40, 0x40, 0x40, 0x40, 0x00, + 0x7c, 0x08, 0x10, 0x08, 0x7c, 0x00, + 0x7c, 0x08, 0x10, 0x20, 0x7c, 0x00, + 0x38, 0x44, 0x44, 0x44, 0x38, 0x00, + 0x7c, 0x14, 0x14, 0x14, 0x08, 0x00, + 0x3c, 0x24, 0x64, 0x24, 0x3c, 0x00, + 0x7c, 0x14, 0x14, 0x14, 0x68, 0x00, + 0x5c, 0x54, 0x54, 0x54, 0x74, 0x00, + 0x04, 0x04, 0x7c, 0x04, 0x04, 0x00, + 0x7c, 0x40, 0x40, 0x40, 0x7c, 0x00, + 0x0c, 0x30, 0x40, 0x30, 0x0c, 0x00, + 0x3c, 0x40, 0x30, 0x40, 0x3c, 0x00, + 0x44, 0x28, 0x10, 0x28, 0x44, 0x00, + 0x0c, 0x10, 0x60, 0x10, 0x0c, 0x00, + 0x44, 0x64, 0x54, 0x4c, 0x44, 0x00, + 0x10, 0x7c, 0x44, 0x00, 0x00, 0x00, + 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x44, 0x7c, 0x10, 0x00, 0x00, 0x00, + 0x02, 0x01, 0x02, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, # lif defined(OLED_FONT_AZTECH) - 0x00,0x00,0x00,0x00,0x00,0x00, // 0x20 32 - 0x00,0x2e,0x00,0x00,0x00,0x00, // 0x21 33 ! - 0x00,0x02,0x00,0x02,0x00,0x00, // 0x22 34 " - 0x00,0x0a,0x1e,0x0a,0x1e,0x00, // 0x23 35 # - 0x00,0x0e,0x2a,0x6b,0x2a,0x3a, // 0x24 36 $ - 0x00,0x06,0x06,0x26,0x18,0x06, // 0x25 37 % - 0x38,0x3e,0x2a,0x2a,0x28,0x38, // 0x26 38 & - 0x18,0x02,0x00,0x00,0x00,0x00, // 0x27 39 ' - 0x00,0x3e,0x22,0x00,0x00,0x00, // 0x28 40 ( - 0x00,0x22,0x3e,0x00,0x00,0x00, // 0x29 41 ) - 0x00,0x0e,0x0e,0x0e,0x04,0x00, // 0x2A 42 * - 0x00,0x08,0x1c,0x08,0x00,0x00, // 0x2B 43 + - 0x00,0x20,0x00,0x00,0x00,0x00, // 0x2C 44 , - 0x00,0x08,0x08,0x08,0x00,0x00, // 0x2D 45 - - 0x00,0x20,0x00,0x00,0x00,0x00, // 0x2E 46 . - 0x00,0x20,0x18,0x06,0x00,0x00, // 0x2F 47 / - 0x00,0x3e,0x22,0x2a,0x22,0x3e, // 0x30 48 0 - 0x02,0x3e,0x00,0x00,0x00,0x00, // 0x31 49 1 - 0x00,0x38,0x28,0x2a,0x2a,0x2e, // 0x32 50 2 - 0x00,0x22,0x2a,0x2e,0x38,0x00, // 0x33 51 3 - 0x00,0x0e,0x08,0x08,0x3e,0x08, // 0x34 52 4 - 0x00,0x2e,0x2a,0x2a,0x28,0x38, // 0x35 53 5 - 0x00,0x3e,0x2a,0x2a,0x28,0x38, // 0x36 54 6 - 0x00,0x06,0x02,0x02,0x0a,0x3e, // 0x37 55 7 - 0x00,0x38,0x2e,0x2a,0x2e,0x38, // 0x38 56 8 - 0x00,0x0e,0x0a,0x2a,0x2a,0x3e, // 0x39 57 9 - 0x00,0x28,0x00,0x00,0x00,0x00, // 0x3A 58 : - 0x00,0x28,0x00,0x00,0x00,0x00, // 0x3B 59 ; - 0x00,0x08,0x14,0x22,0x00,0x00, // 0x3C 60 < - 0x00,0x14,0x14,0x14,0x14,0x00, // 0x3D 61 = - 0x00,0x22,0x14,0x08,0x00,0x00, // 0x3E 62 > - 0x00,0x06,0x02,0x2a,0x0a,0x06, // 0x3F 63 ? - 0x00,0x3e,0x02,0x3a,0x2a,0x0a, // 0x40 64 @ - 0x22,0x3e,0x02,0x0a,0x0a,0x3e, // 0x41 65 A - 0x00,0x3e,0x22,0x2a,0x2e,0x38, // 0x42 66 B - 0x00,0x3e,0x22,0x22,0x20,0x30, // 0x43 67 C - 0x00,0x3e,0x22,0x22,0x22,0x3c, // 0x44 68 D - 0x00,0x3e,0x2a,0x22,0x20,0x30, // 0x45 69 E - 0x00,0x3e,0x0a,0x0a,0x06,0x02, // 0x46 70 F - 0x00,0x3e,0x22,0x2a,0x28,0x38, // 0x47 71 G - 0x00,0x3e,0x08,0x08,0x08,0x3e, // 0x48 72 H - 0x00,0x22,0x3e,0x22,0x00,0x00, // 0x49 73 I - 0x00,0x30,0x20,0x20,0x22,0x3e, // 0x4A 74 J - 0x00,0x3e,0x08,0x08,0x0e,0x38, // 0x4B 75 K - 0x00,0x3e,0x20,0x20,0x20,0x30, // 0x4C 76 L - 0x00,0x3e,0x02,0x3e,0x20,0x3e, // 0x4D 77 M - 0x3e,0x3e,0x02,0x3e,0x20,0x3e, // 0x4E 78 N - 0x00,0x3e,0x22,0x22,0x22,0x3e, // 0x4F 79 O - 0x00,0x3e,0x02,0x0a,0x0a,0x0e, // 0x50 80 P - 0x00,0x3e,0x22,0x22,0x22,0x3e, // 0x51 81 Q - 0x00,0x3e,0x02,0x0a,0x0e,0x38, // 0x52 82 R - 0x00,0x0e,0x0a,0x2a,0x2a,0x3a, // 0x53 83 S - 0x00,0x06,0x02,0x3e,0x02,0x06, // 0x54 84 T - 0x00,0x3e,0x20,0x20,0x20,0x3e, // 0x55 85 U - 0x00,0x3e,0x20,0x20,0x3e,0x00, // 0x56 86 V - 0x00,0x3e,0x20,0x3e,0x02,0x3e, // 0x57 87 W - 0x3e,0x3a,0x0e,0x08,0x0e,0x3a, // 0x58 88 X - 0x00,0x0e,0x08,0x08,0x28,0x3e, // 0x59 89 Y - 0x00,0x3a,0x2a,0x2a,0x0a,0x0e, // 0x5A 90 Z - 0x00,0x3e,0x22,0x00,0x00,0x00, // 0x5B 91 [ - 0x00,0x02,0x0c,0x30,0x00,0x00, // 0x5C 92 \ backslash - 0x22,0x3e,0x00,0x00,0x00,0x00, // 0x5D 93 ] - 0x00,0x01,0x00,0x01,0x00,0x00, // 0x5E 94 ^ - 0x00,0x20,0x20,0x20,0x00,0x00, // 0x5F 95 _ - 0x00,0x01,0x00,0x00,0x00,0x00, // 0x60 96 ` - 0x00,0x38,0x28,0x28,0x08,0x38, // 0x61 97 a - 0x00,0x3e,0x20,0x28,0x28,0x38, // 0x62 98 b - 0x00,0x38,0x28,0x28,0x20,0x30, // 0x63 99 c - 0x00,0x38,0x28,0x28,0x20,0x3e, // 0x64 100 d - 0x00,0xf8,0x88,0x28,0x28,0x38, // 0x65 101 e - 0x00,0xf8,0x28,0x28,0x18,0x08, // 0x66 102 f - 0x00,0x38,0x28,0xa8,0x88,0xf8, // 0x67 103 g - 0x00,0x3c,0x08,0x08,0x08,0x38, // 0x68 104 h - 0x00,0x3a,0x00,0x00,0x00,0x00, // 0x69 105 i - 0x80,0xfa,0x00,0x00,0x00,0x00, // 0x6A 106 j - 0x00,0x3e,0x08,0x08,0x38,0x2c, // 0x6B 107 k - 0x00,0x3e,0x20,0x00,0x00,0x00, // 0x6C 108 l - 0x00,0x38,0x08,0x38,0x20,0x38, // 0x6D 109 m - 0x38,0x38,0x08,0x38,0x20,0x38, // 0x6E 110 n - 0x00,0x38,0x28,0x28,0x28,0x38, // 0x6F 111 o - 0x00,0xf8,0x08,0x28,0x28,0x38, // 0x70 112 p - 0x00,0x38,0x28,0x28,0x08,0xf8, // 0x71 113 q - 0x00,0x38,0x08,0x08,0x18,0x08, // 0x72 114 r - 0x00,0x38,0x28,0xa8,0xa8,0xe8, // 0x73 115 s - 0x00,0x3e,0x28,0x28,0x20,0x30, // 0x74 116 t - 0x00,0x38,0x20,0x20,0x20,0x38, // 0x75 117 u - 0x00,0x38,0x20,0x38,0x00,0x00, // 0x76 118 v - 0x00,0x38,0x20,0x38,0x08,0x38, // 0x77 119 w - 0x38,0x28,0x38,0x10,0x38,0x28, // 0x78 120 x - 0x00,0x38,0x20,0xa0,0xa0,0xf8, // 0x79 121 y - 0x00,0xe8,0xa8,0xa8,0x28,0x38, // 0x7A 122 z - 0x08,0x3e,0x22,0x00,0x00,0x00, // 0x7B 123 { - 0x00,0x3f,0x00,0x00,0x00,0x00, // 0x7C 124 | - 0x22,0x3e,0x08,0x00,0x00,0x00, // 0x7D 125 } - 0x00,0x00,0x00,0x00,0x00,0x00, // 0x7E 126 ~ - 0x00,0x00,0x00,0x00,0x00,0x00, // 0x7F 127 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x2e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, + 0x00, 0x0a, 0x1e, 0x0a, 0x1e, 0x00, + 0x00, 0x0e, 0x2a, 0x6b, 0x2a, 0x3a, + 0x00, 0x06, 0x06, 0x26, 0x18, 0x06, + 0x38, 0x3e, 0x2a, 0x2a, 0x28, 0x38, + 0x18, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x3e, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x22, 0x3e, 0x00, 0x00, 0x00, + 0x00, 0x0e, 0x0e, 0x0e, 0x04, 0x00, + 0x00, 0x08, 0x1c, 0x08, 0x00, 0x00, + 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x08, 0x08, 0x00, 0x00, + 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x20, 0x18, 0x06, 0x00, 0x00, + 0x00, 0x3e, 0x22, 0x2a, 0x22, 0x3e, + 0x02, 0x3e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x28, 0x2a, 0x2a, 0x2e, + 0x00, 0x22, 0x2a, 0x2e, 0x38, 0x00, + 0x00, 0x0e, 0x08, 0x08, 0x3e, 0x08, + 0x00, 0x2e, 0x2a, 0x2a, 0x28, 0x38, + 0x00, 0x3e, 0x2a, 0x2a, 0x28, 0x38, + 0x00, 0x06, 0x02, 0x02, 0x0a, 0x3e, + 0x00, 0x38, 0x2e, 0x2a, 0x2e, 0x38, + 0x00, 0x0e, 0x0a, 0x2a, 0x2a, 0x3e, + 0x00, 0x28, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x28, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x14, 0x22, 0x00, 0x00, + 0x00, 0x14, 0x14, 0x14, 0x14, 0x00, + 0x00, 0x22, 0x14, 0x08, 0x00, 0x00, + 0x00, 0x06, 0x02, 0x2a, 0x0a, 0x06, + 0x00, 0x3e, 0x02, 0x3a, 0x2a, 0x0a, + 0x22, 0x3e, 0x02, 0x0a, 0x0a, 0x3e, + 0x00, 0x3e, 0x22, 0x2a, 0x2e, 0x38, + 0x00, 0x3e, 0x22, 0x22, 0x20, 0x30, + 0x00, 0x3e, 0x22, 0x22, 0x22, 0x3c, + 0x00, 0x3e, 0x2a, 0x22, 0x20, 0x30, + 0x00, 0x3e, 0x0a, 0x0a, 0x06, 0x02, + 0x00, 0x3e, 0x22, 0x2a, 0x28, 0x38, + 0x00, 0x3e, 0x08, 0x08, 0x08, 0x3e, + 0x00, 0x22, 0x3e, 0x22, 0x00, 0x00, + 0x00, 0x30, 0x20, 0x20, 0x22, 0x3e, + 0x00, 0x3e, 0x08, 0x08, 0x0e, 0x38, + 0x00, 0x3e, 0x20, 0x20, 0x20, 0x30, + 0x00, 0x3e, 0x02, 0x3e, 0x20, 0x3e, + 0x3e, 0x3e, 0x02, 0x3e, 0x20, 0x3e, + 0x00, 0x3e, 0x22, 0x22, 0x22, 0x3e, + 0x00, 0x3e, 0x02, 0x0a, 0x0a, 0x0e, + 0x00, 0x3e, 0x22, 0x22, 0x22, 0x3e, + 0x00, 0x3e, 0x02, 0x0a, 0x0e, 0x38, + 0x00, 0x0e, 0x0a, 0x2a, 0x2a, 0x3a, + 0x00, 0x06, 0x02, 0x3e, 0x02, 0x06, + 0x00, 0x3e, 0x20, 0x20, 0x20, 0x3e, + 0x00, 0x3e, 0x20, 0x20, 0x3e, 0x00, + 0x00, 0x3e, 0x20, 0x3e, 0x02, 0x3e, + 0x3e, 0x3a, 0x0e, 0x08, 0x0e, 0x3a, + 0x00, 0x0e, 0x08, 0x08, 0x28, 0x3e, + 0x00, 0x3a, 0x2a, 0x2a, 0x0a, 0x0e, + 0x00, 0x3e, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x02, 0x0c, 0x30, 0x00, 0x00, + 0x22, 0x3e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x20, 0x20, 0x20, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x28, 0x28, 0x08, 0x38, + 0x00, 0x3e, 0x20, 0x28, 0x28, 0x38, + 0x00, 0x38, 0x28, 0x28, 0x20, 0x30, + 0x00, 0x38, 0x28, 0x28, 0x20, 0x3e, + 0x00, 0xf8, 0x88, 0x28, 0x28, 0x38, + 0x00, 0xf8, 0x28, 0x28, 0x18, 0x08, + 0x00, 0x38, 0x28, 0xa8, 0x88, 0xf8, + 0x00, 0x3c, 0x08, 0x08, 0x08, 0x38, + 0x00, 0x3a, 0x00, 0x00, 0x00, 0x00, + 0x80, 0xfa, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x3e, 0x08, 0x08, 0x38, 0x2c, + 0x00, 0x3e, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x08, 0x38, 0x20, 0x38, + 0x38, 0x38, 0x08, 0x38, 0x20, 0x38, + 0x00, 0x38, 0x28, 0x28, 0x28, 0x38, + 0x00, 0xf8, 0x08, 0x28, 0x28, 0x38, + 0x00, 0x38, 0x28, 0x28, 0x08, 0xf8, + 0x00, 0x38, 0x08, 0x08, 0x18, 0x08, + 0x00, 0x38, 0x28, 0xa8, 0xa8, 0xe8, + 0x00, 0x3e, 0x28, 0x28, 0x20, 0x30, + 0x00, 0x38, 0x20, 0x20, 0x20, 0x38, + 0x00, 0x38, 0x20, 0x38, 0x00, 0x00, + 0x00, 0x38, 0x20, 0x38, 0x08, 0x38, + 0x38, 0x28, 0x38, 0x10, 0x38, 0x28, + 0x00, 0x38, 0x20, 0xa0, 0xa0, 0xf8, + 0x00, 0xe8, 0xa8, 0xa8, 0x28, 0x38, + 0x08, 0x3e, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, + 0x22, 0x3e, 0x08, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, # elif defined(OLED_FONT_BMPLAIN) - 0x00,0x00,0x00,0x00,0x00,0x00, // 0x20 32 - 0x2e,0x00,0x00,0x00,0x00,0x00, // 0x21 33 ! - 0x03,0x00,0x03,0x00,0x00,0x00, // 0x22 34 " - 0x0a,0x1f,0x0a,0x1f,0x0a,0x00, // 0x23 35 # - 0x2e,0x2a,0x6b,0x2a,0x3a,0x00, // 0x24 36 $ - 0x0e,0x2a,0x1e,0x08,0x3c,0x2a, // 0x25 37 % - 0x3e,0x2a,0x2a,0x22,0x38,0x08, // 0x26 38 & - 0x03,0x00,0x00,0x00,0x00,0x00, // 0x27 39 ' - 0x1c,0x22,0x00,0x00,0x00,0x00, // 0x28 40 ( - 0x22,0x1c,0x00,0x00,0x00,0x00, // 0x29 41 ) - 0x15,0x0e,0x04,0x0e,0x15,0x00, // 0x2A 42 * - 0x08,0x08,0x3e,0x08,0x08,0x00, // 0x2B 43 + - 0x60,0x00,0x00,0x00,0x00,0x00, // 0x2C 44 , - 0x08,0x08,0x08,0x08,0x08,0x00, // 0x2D 45 - - 0x20,0x00,0x00,0x00,0x00,0x00, // 0x2E 46 . - 0x20,0x10,0x08,0x04,0x02,0x00, // 0x2F 47 / - 0x3e,0x22,0x2a,0x22,0x3e,0x00, // 0x30 48 0 - 0x04,0x3e,0x00,0x00,0x00,0x00, // 0x31 49 1 - 0x3a,0x2a,0x2a,0x2a,0x2e,0x00, // 0x32 50 2 - 0x2a,0x2a,0x2a,0x2a,0x3e,0x00, // 0x33 51 3 - 0x0e,0x08,0x08,0x08,0x3e,0x00, // 0x34 52 4 - 0x2e,0x2a,0x2a,0x2a,0x3a,0x00, // 0x35 53 5 - 0x3e,0x2a,0x2a,0x2a,0x3a,0x00, // 0x36 54 6 - 0x02,0x02,0x02,0x02,0x3e,0x00, // 0x37 55 7 - 0x3e,0x2a,0x2a,0x2a,0x3e,0x00, // 0x38 56 8 - 0x2e,0x2a,0x2a,0x2a,0x3e,0x00, // 0x39 57 9 - 0x14,0x00,0x00,0x00,0x00,0x00, // 0x3A 58 : - 0x34,0x00,0x00,0x00,0x00,0x00, // 0x3B 59 ; - 0x08,0x14,0x22,0x00,0x00,0x00, // 0x3C 60 < - 0x14,0x14,0x14,0x14,0x14,0x00, // 0x3D 61 = - 0x22,0x14,0x08,0x00,0x00,0x00, // 0x3E 62 > - 0x06,0x02,0x2a,0x0a,0x0e,0x00, // 0x3F 63 ? - 0x3e,0x02,0x3a,0x2a,0x3e,0x00, // 0x40 64 @ - 0x3e,0x12,0x12,0x12,0x3e,0x00, // 0x41 65 A - 0x3e,0x2a,0x2a,0x2a,0x36,0x00, // 0x42 66 B - 0x3e,0x22,0x22,0x22,0x22,0x00, // 0x43 67 C - 0x3e,0x22,0x22,0x22,0x1c,0x00, // 0x44 68 D - 0x3e,0x2a,0x2a,0x2a,0x22,0x00, // 0x45 69 E - 0x3e,0x0a,0x0a,0x0a,0x02,0x00, // 0x46 70 F - 0x3e,0x22,0x2a,0x2a,0x3a,0x00, // 0x47 71 G - 0x3e,0x08,0x08,0x08,0x3e,0x00, // 0x48 72 H - 0x22,0x3e,0x22,0x00,0x00,0x00, // 0x49 73 I - 0x38,0x20,0x20,0x20,0x3e,0x00, // 0x4A 74 J - 0x3e,0x08,0x08,0x14,0x22,0x00, // 0x4B 75 K - 0x3e,0x20,0x20,0x20,0x20,0x00, // 0x4C 76 L - 0x3e,0x04,0x38,0x04,0x3e,0x00, // 0x4D 77 M - 0x3e,0x04,0x08,0x10,0x3e,0x00, // 0x4E 78 N - 0x3e,0x22,0x22,0x22,0x3e,0x00, // 0x4F 79 O - 0x3e,0x0a,0x0a,0x0a,0x0e,0x00, // 0x50 80 P - 0x3e,0x22,0x72,0x22,0x3e,0x00, // 0x51 81 Q - 0x3e,0x0a,0x0a,0x1a,0x2e,0x00, // 0x52 82 R - 0x2e,0x2a,0x2a,0x2a,0x3a,0x00, // 0x53 83 S - 0x02,0x02,0x3e,0x02,0x02,0x00, // 0x54 84 T - 0x1e,0x20,0x20,0x20,0x1e,0x00, // 0x55 85 U - 0x0e,0x10,0x20,0x10,0x0e,0x00, // 0x56 86 V - 0x3e,0x10,0x0e,0x10,0x3e,0x00, // 0x57 87 W - 0x22,0x14,0x08,0x14,0x22,0x00, // 0x58 88 X - 0x02,0x04,0x38,0x04,0x02,0x00, // 0x59 89 Y - 0x3a,0x2a,0x2a,0x2a,0x2e,0x00, // 0x5A 90 Z - 0x3e,0x22,0x00,0x00,0x00,0x00, // 0x5B 91 [ - 0x3f,0x21,0x3f,0x00,0x00,0x00, // 0x5C 92 \ backslash - 0x22,0x3e,0x00,0x00,0x00,0x00, // 0x5D 93 ] - 0x0c,0x1e,0x3c,0x1e,0x0c,0x00, // 0x5E 94 ^ - 0x20,0x20,0x20,0x20,0x20,0x00, // 0x5F 95 _ - 0x1c,0x3e,0x3e,0x3e,0x1c,0x00, // 0x60 96 ` - 0x3c,0x24,0x24,0x24,0x3c,0x20, // 0x61 97 a - 0x3e,0x24,0x24,0x24,0x3c,0x00, // 0x62 98 b - 0x3c,0x24,0x24,0x24,0x24,0x00, // 0x63 99 c - 0x3c,0x24,0x24,0x24,0x3e,0x00, // 0x64 100 d - 0x3c,0x24,0x34,0x2c,0x24,0x00, // 0x65 101 e - 0x08,0x3e,0x0a,0x0a,0x00,0x00, // 0x66 102 f - 0x1c,0x54,0x54,0x54,0x7c,0x00, // 0x67 103 g - 0x3e,0x04,0x04,0x04,0x3c,0x00, // 0x68 104 h - 0x3a,0x00,0x00,0x00,0x00,0x00, // 0x69 105 i - 0x7a,0x00,0x00,0x00,0x00,0x00, // 0x6A 106 j - 0x3e,0x08,0x14,0x22,0x00,0x00, // 0x6B 107 k - 0x02,0x3e,0x00,0x00,0x00,0x00, // 0x6C 108 l - 0x3c,0x04,0x3c,0x04,0x3c,0x00, // 0x6D 109 m - 0x3c,0x04,0x04,0x04,0x3c,0x00, // 0x6E 110 n - 0x3c,0x24,0x24,0x24,0x3c,0x00, // 0x6F 111 o - 0x7c,0x24,0x24,0x24,0x3c,0x00, // 0x70 112 p - 0x3c,0x24,0x24,0x24,0x7c,0x00, // 0x71 113 q - 0x3c,0x04,0x04,0x04,0x00,0x00, // 0x72 114 r - 0x24,0x2c,0x34,0x24,0x00,0x00, // 0x73 115 s - 0x04,0x3e,0x24,0x24,0x00,0x00, // 0x74 116 t - 0x3c,0x20,0x20,0x20,0x3c,0x00, // 0x75 117 u - 0x0c,0x10,0x20,0x10,0x0c,0x00, // 0x76 118 v - 0x3c,0x20,0x3c,0x20,0x3c,0x00, // 0x77 119 w - 0x24,0x24,0x18,0x24,0x24,0x00, // 0x78 120 x - 0x1c,0x50,0x50,0x50,0x7c,0x00, // 0x79 121 y - 0x24,0x34,0x2c,0x24,0x00,0x00, // 0x7A 122 z - 0x08,0x3e,0x22,0x00,0x00,0x00, // 0x7B 123 { - 0x1c,0x22,0x22,0x22,0x1c,0x00, // 0x7C 124 | - 0x22,0x3e,0x08,0x00,0x00,0x00, // 0x7D 125 } - 0x01,0x01,0x01,0x00,0x00,0x00, // 0x7E 126 ~ - 0x00,0x00,0x00,0x00,0x00,0x00, // 0x7F 127 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x0a, 0x1f, 0x0a, 0x1f, 0x0a, 0x00, + 0x2e, 0x2a, 0x6b, 0x2a, 0x3a, 0x00, + 0x0e, 0x2a, 0x1e, 0x08, 0x3c, 0x2a, + 0x3e, 0x2a, 0x2a, 0x22, 0x38, 0x08, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1c, 0x22, 0x00, 0x00, 0x00, 0x00, + 0x22, 0x1c, 0x00, 0x00, 0x00, 0x00, + 0x15, 0x0e, 0x04, 0x0e, 0x15, 0x00, + 0x08, 0x08, 0x3e, 0x08, 0x08, 0x00, + 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, + 0x3e, 0x22, 0x2a, 0x22, 0x3e, 0x00, + 0x04, 0x3e, 0x00, 0x00, 0x00, 0x00, + 0x3a, 0x2a, 0x2a, 0x2a, 0x2e, 0x00, + 0x2a, 0x2a, 0x2a, 0x2a, 0x3e, 0x00, + 0x0e, 0x08, 0x08, 0x08, 0x3e, 0x00, + 0x2e, 0x2a, 0x2a, 0x2a, 0x3a, 0x00, + 0x3e, 0x2a, 0x2a, 0x2a, 0x3a, 0x00, + 0x02, 0x02, 0x02, 0x02, 0x3e, 0x00, + 0x3e, 0x2a, 0x2a, 0x2a, 0x3e, 0x00, + 0x2e, 0x2a, 0x2a, 0x2a, 0x3e, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x08, 0x14, 0x22, 0x00, 0x00, 0x00, + 0x14, 0x14, 0x14, 0x14, 0x14, 0x00, + 0x22, 0x14, 0x08, 0x00, 0x00, 0x00, + 0x06, 0x02, 0x2a, 0x0a, 0x0e, 0x00, + 0x3e, 0x02, 0x3a, 0x2a, 0x3e, 0x00, + 0x3e, 0x12, 0x12, 0x12, 0x3e, 0x00, + 0x3e, 0x2a, 0x2a, 0x2a, 0x36, 0x00, + 0x3e, 0x22, 0x22, 0x22, 0x22, 0x00, + 0x3e, 0x22, 0x22, 0x22, 0x1c, 0x00, + 0x3e, 0x2a, 0x2a, 0x2a, 0x22, 0x00, + 0x3e, 0x0a, 0x0a, 0x0a, 0x02, 0x00, + 0x3e, 0x22, 0x2a, 0x2a, 0x3a, 0x00, + 0x3e, 0x08, 0x08, 0x08, 0x3e, 0x00, + 0x22, 0x3e, 0x22, 0x00, 0x00, 0x00, + 0x38, 0x20, 0x20, 0x20, 0x3e, 0x00, + 0x3e, 0x08, 0x08, 0x14, 0x22, 0x00, + 0x3e, 0x20, 0x20, 0x20, 0x20, 0x00, + 0x3e, 0x04, 0x38, 0x04, 0x3e, 0x00, + 0x3e, 0x04, 0x08, 0x10, 0x3e, 0x00, + 0x3e, 0x22, 0x22, 0x22, 0x3e, 0x00, + 0x3e, 0x0a, 0x0a, 0x0a, 0x0e, 0x00, + 0x3e, 0x22, 0x72, 0x22, 0x3e, 0x00, + 0x3e, 0x0a, 0x0a, 0x1a, 0x2e, 0x00, + 0x2e, 0x2a, 0x2a, 0x2a, 0x3a, 0x00, + 0x02, 0x02, 0x3e, 0x02, 0x02, 0x00, + 0x1e, 0x20, 0x20, 0x20, 0x1e, 0x00, + 0x0e, 0x10, 0x20, 0x10, 0x0e, 0x00, + 0x3e, 0x10, 0x0e, 0x10, 0x3e, 0x00, + 0x22, 0x14, 0x08, 0x14, 0x22, 0x00, + 0x02, 0x04, 0x38, 0x04, 0x02, 0x00, + 0x3a, 0x2a, 0x2a, 0x2a, 0x2e, 0x00, + 0x3e, 0x22, 0x00, 0x00, 0x00, 0x00, + 0x3f, 0x21, 0x3f, 0x00, 0x00, 0x00, + 0x22, 0x3e, 0x00, 0x00, 0x00, 0x00, + 0x0c, 0x1e, 0x3c, 0x1e, 0x0c, 0x00, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, + 0x1c, 0x3e, 0x3e, 0x3e, 0x1c, 0x00, + 0x3c, 0x24, 0x24, 0x24, 0x3c, 0x20, + 0x3e, 0x24, 0x24, 0x24, 0x3c, 0x00, + 0x3c, 0x24, 0x24, 0x24, 0x24, 0x00, + 0x3c, 0x24, 0x24, 0x24, 0x3e, 0x00, + 0x3c, 0x24, 0x34, 0x2c, 0x24, 0x00, + 0x08, 0x3e, 0x0a, 0x0a, 0x00, 0x00, + 0x1c, 0x54, 0x54, 0x54, 0x7c, 0x00, + 0x3e, 0x04, 0x04, 0x04, 0x3c, 0x00, + 0x3a, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x7a, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3e, 0x08, 0x14, 0x22, 0x00, 0x00, + 0x02, 0x3e, 0x00, 0x00, 0x00, 0x00, + 0x3c, 0x04, 0x3c, 0x04, 0x3c, 0x00, + 0x3c, 0x04, 0x04, 0x04, 0x3c, 0x00, + 0x3c, 0x24, 0x24, 0x24, 0x3c, 0x00, + 0x7c, 0x24, 0x24, 0x24, 0x3c, 0x00, + 0x3c, 0x24, 0x24, 0x24, 0x7c, 0x00, + 0x3c, 0x04, 0x04, 0x04, 0x00, 0x00, + 0x24, 0x2c, 0x34, 0x24, 0x00, 0x00, + 0x04, 0x3e, 0x24, 0x24, 0x00, 0x00, + 0x3c, 0x20, 0x20, 0x20, 0x3c, 0x00, + 0x0c, 0x10, 0x20, 0x10, 0x0c, 0x00, + 0x3c, 0x20, 0x3c, 0x20, 0x3c, 0x00, + 0x24, 0x24, 0x18, 0x24, 0x24, 0x00, + 0x1c, 0x50, 0x50, 0x50, 0x7c, 0x00, + 0x24, 0x34, 0x2c, 0x24, 0x00, 0x00, + 0x08, 0x3e, 0x22, 0x00, 0x00, 0x00, + 0x1c, 0x22, 0x22, 0x22, 0x1c, 0x00, + 0x22, 0x3e, 0x08, 0x00, 0x00, 0x00, + 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +# elif defined(OLED_FONT_CRACKERS) + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x5E, 0x06, 0x06, 0x00, 0x00, 0x00, + 0x1E, 0x00, 0x00, 0x1E, 0x00, 0x00, + 0x20, 0x7C, 0x38, 0x38, 0x7C, 0x08, + 0x48, 0xFE, 0x64, 0x64, 0x00, 0x00, + 0x64, 0x60, 0x60, 0x18, 0x0C, 0x0C, + 0x74, 0x4A, 0x4A, 0x7E, 0x48, 0x00, + 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3C, 0x7E, 0x7E, 0x42, 0x00, 0x00, + 0x42, 0x7E, 0x7E, 0x3C, 0x00, 0x00, + 0x04, 0x0C, 0x04, 0x06, 0x0C, 0x04, + 0x10, 0x3C, 0x3C, 0x3C, 0x10, 0x00, + 0x00, 0x60, 0xE0, 0x00, 0x00, 0x00, + 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, + 0x60, 0x60, 0x60, 0x00, 0x00, 0x00, + 0x60, 0x78, 0x78, 0x1E, 0x06, 0x00, + 0x3C, 0x3C, 0x7E, 0x42, 0x7E, 0x7E, + 0x04, 0x7E, 0x7E, 0x7E, 0x00, 0x00, + 0x76, 0x7A, 0x7E, 0x7E, 0x4C, 0x00, + 0x4A, 0x7E, 0x7E, 0x7C, 0x00, 0x00, + 0x0E, 0x08, 0x7E, 0x7E, 0x7E, 0x00, + 0x4E, 0x4E, 0x4E, 0x7A, 0x1A, 0x00, + 0x3C, 0x7E, 0x7E, 0x4A, 0x7A, 0x00, + 0x02, 0x02, 0x0A, 0x7E, 0x7E, 0x7E, + 0x7E, 0x7E, 0x7E, 0x4A, 0x7E, 0x00, + 0x0C, 0x4A, 0x7E, 0x7E, 0x3C, 0x00, + 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, + 0x66, 0xE6, 0x00, 0x00, 0x00, 0x00, + 0x08, 0x3C, 0x7E, 0x7E, 0x62, 0x00, + 0x14, 0x14, 0x14, 0x00, 0x00, 0x00, + 0x62, 0x7E, 0x7E, 0x3C, 0x08, 0x00, + 0x02, 0x4A, 0x0E, 0x0E, 0x0C, 0x00, + 0x3C, 0x7E, 0x7E, 0x4A, 0x72, 0x30, + 0x7A, 0x4A, 0x7E, 0x7E, 0x7C, 0x00, + 0x7E, 0x7E, 0x7E, 0x4A, 0x24, 0x00, + 0x3C, 0x7E, 0x7E, 0x7E, 0x46, 0x00, + 0x7E, 0x7E, 0x7E, 0x62, 0x3C, 0x00, + 0x7E, 0x7E, 0x7E, 0x4A, 0x00, 0x00, + 0x7E, 0x7E, 0x7E, 0x0A, 0x00, 0x00, + 0x3C, 0x7E, 0x7E, 0x42, 0x62, 0x00, + 0x7E, 0x7E, 0x7E, 0x18, 0x7E, 0x00, + 0x7E, 0x7E, 0x7E, 0x00, 0x00, 0x00, + 0x40, 0x7E, 0x7E, 0x7E, 0x00, 0x00, + 0x7E, 0x7E, 0x7E, 0x3C, 0x66, 0x00, + 0x7E, 0x7E, 0x7E, 0x40, 0x00, 0x00, + 0x7E, 0x3E, 0x3E, 0x7C, 0x3E, 0x3E, + 0x7E, 0x3E, 0x7E, 0x7C, 0x7E, 0x00, + 0x3C, 0x3C, 0x7E, 0x62, 0x7E, 0x7E, + 0x7E, 0x7E, 0x7E, 0x22, 0x0C, 0x00, + 0x3C, 0x7E, 0x7E, 0x62, 0x7E, 0x7C, + 0x7E, 0x7E, 0x7E, 0x0A, 0x64, 0x00, + 0x4C, 0x4E, 0x4E, 0x7A, 0x1A, 0x00, + 0x02, 0x7E, 0x7E, 0x7E, 0x02, 0x00, + 0x7E, 0x60, 0x7E, 0x7E, 0x7E, 0x00, + 0x3E, 0x60, 0x7E, 0x7E, 0x3E, 0x00, + 0x7E, 0x7C, 0x7C, 0x3E, 0x7C, 0x7C, + 0x46, 0x7E, 0x08, 0x7E, 0x62, 0x62, + 0x5E, 0x5E, 0x5E, 0x70, 0x3E, 0x00, + 0x66, 0x7A, 0x7A, 0x5E, 0x66, 0x00, + 0x7E, 0x7E, 0x7E, 0x42, 0x00, 0x00, + 0x06, 0x1E, 0x1E, 0x78, 0x60, 0x00, + 0x42, 0x7E, 0x7E, 0x7E, 0x00, 0x00, + 0x0C, 0x06, 0x0C, 0x00, 0x00, 0x00, + 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, + 0x02, 0x06, 0x06, 0x04, 0x00, 0x00, + 0x78, 0x24, 0x7C, 0x7C, 0x78, 0x00, + 0x7C, 0x7C, 0x7C, 0x48, 0x20, 0x00, + 0x18, 0x7C, 0x7C, 0x7C, 0x4C, 0x00, + 0x20, 0x48, 0x7C, 0x7C, 0x7C, 0x00, + 0x18, 0x7C, 0x7C, 0x74, 0x4C, 0x00, + 0x78, 0x7C, 0x7C, 0x24, 0x00, 0x00, + 0x18, 0x7C, 0x7C, 0x44, 0x74, 0x00, + 0x7C, 0x7C, 0x7C, 0x08, 0x60, 0x00, + 0x7C, 0x7C, 0x7C, 0x00, 0x00, 0x00, + 0x40, 0x7C, 0x7C, 0x7C, 0x00, 0x00, + 0x7C, 0x7C, 0x7C, 0x20, 0x48, 0x00, + 0x7C, 0x7C, 0x7C, 0x40, 0x00, 0x00, + 0x7C, 0x3C, 0x3C, 0x78, 0x3C, 0x3C, + 0x7C, 0x7C, 0x7C, 0x04, 0x78, 0x00, + 0x18, 0x18, 0x7C, 0x44, 0x7C, 0x7C, + 0x7C, 0x7C, 0x7C, 0x24, 0x08, 0x00, + 0x18, 0x18, 0x7C, 0x44, 0x7C, 0x7C, + 0x7C, 0x7C, 0x7C, 0x04, 0x00, 0x00, + 0x5C, 0x7C, 0x7C, 0x74, 0x00, 0x00, + 0x08, 0x7C, 0x7C, 0x7C, 0x48, 0x00, + 0x7C, 0x60, 0x7C, 0x7C, 0x7C, 0x00, + 0x3C, 0x60, 0x7C, 0x7C, 0x3C, 0x00, + 0x7C, 0x78, 0x78, 0x3C, 0x78, 0x78, + 0x4C, 0x3C, 0x3C, 0x78, 0x64, 0x00, + 0x4C, 0x4C, 0x4C, 0x78, 0x3C, 0x00, + 0x5C, 0x74, 0x44, 0x5C, 0x74, 0x00, + 0x24, 0x7E, 0x42, 0x42, 0x00, 0x00, + 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x42, 0x7E, 0x24, 0x00, 0x00, 0x00, + 0x04, 0x06, 0x06, 0x02, 0x04, 0x06, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +# elif defined(OLED_FONT_EIN) + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, + 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, + 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00, + 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00, + 0x23, 0x13, 0x08, 0x64, 0x62, 0x00, + 0x36, 0x49, 0x56, 0x20, 0x50, 0x00, + 0x00, 0x08, 0x07, 0x03, 0x00, 0x00, + 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, + 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, + 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, + 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, + 0x00, 0x80, 0x70, 0x30, 0x00, 0x00, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, + 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, + 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, + 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, + 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00, + 0x72, 0x49, 0x49, 0x49, 0x46, 0x00, + 0x21, 0x41, 0x49, 0x4D, 0x33, 0x00, + 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00, + 0x27, 0x45, 0x45, 0x45, 0x39, 0x00, + 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00, + 0x41, 0x21, 0x11, 0x09, 0x07, 0x00, + 0x36, 0x49, 0x49, 0x49, 0x36, 0x00, + 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00, + 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x00, 0x40, 0x34, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x14, 0x22, 0x41, 0x00, + 0x14, 0x14, 0x14, 0x14, 0x14, 0x00, + 0x00, 0x41, 0x22, 0x14, 0x08, 0x00, + 0x02, 0x01, 0x59, 0x09, 0x06, 0x00, + 0x00, 0x41, 0x5D, 0x59, 0x4E, 0x00, + 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00, + 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00, + 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00, + 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00, + 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00, + 0x7F, 0x09, 0x09, 0x09, 0x01, 0x00, + 0x3E, 0x41, 0x41, 0x51, 0x73, 0x00, + 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, + 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, + 0x20, 0x40, 0x40, 0x3F, 0x00, 0x00, + 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00, + 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00, + 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00, + 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00, + 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, + 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00, + 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00, + 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00, + 0x26, 0x49, 0x49, 0x49, 0x32, 0x00, + 0x01, 0x01, 0x7F, 0x01, 0x01, 0x00, + 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00, + 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00, + 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00, + 0x63, 0x14, 0x08, 0x14, 0x63, 0x00, + 0x03, 0x04, 0x78, 0x04, 0x03, 0x00, + 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00, + 0x00, 0x7F, 0x41, 0x41, 0x41, 0x00, + 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, + 0x00, 0x41, 0x41, 0x41, 0x7F, 0x00, + 0x04, 0x02, 0x01, 0x02, 0x04, 0x00, + 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, + 0x00, 0x03, 0x07, 0x08, 0x00, 0x00, + 0x78, 0x14, 0x14, 0x78, 0x00, 0x00, + 0x7C, 0x54, 0x54, 0x28, 0x00, 0x00, + 0x38, 0x44, 0x44, 0x28, 0x00, 0x00, + 0x7C, 0x44, 0x44, 0x38, 0x00, 0x00, + 0x7C, 0x54, 0x54, 0x44, 0x00, 0x00, + 0x7C, 0x14, 0x14, 0x04, 0x00, 0x00, + 0x38, 0x44, 0x54, 0x34, 0x00, 0x00, + 0x7C, 0x10, 0x10, 0x7C, 0x00, 0x00, + 0x00, 0x7C, 0x00, 0x00, 0x00, 0x00, + 0x20, 0x40, 0x40, 0x3C, 0x00, 0x00, + 0x7C, 0x10, 0x28, 0x44, 0x00, 0x00, + 0x7C, 0x40, 0x40, 0x40, 0x00, 0x00, + 0x7C, 0x08, 0x70, 0x08, 0x7C, 0x00, + 0x7C, 0x08, 0x10, 0x7C, 0x00, 0x00, + 0x38, 0x44, 0x44, 0x38, 0x00, 0x00, + 0x7C, 0x14, 0x14, 0x08, 0x00, 0x00, + 0x38, 0x44, 0x24, 0x58, 0x00, 0x00, + 0x7C, 0x14, 0x34, 0x48, 0x00, 0x00, + 0x48, 0x54, 0x54, 0x24, 0x00, 0x00, + 0x04, 0x7C, 0x04, 0x00, 0x00, 0x00, + 0x3C, 0x40, 0x40, 0x3C, 0x00, 0x00, + 0x3C, 0x40, 0x20, 0x1C, 0x00, 0x00, + 0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00, + 0x44, 0x28, 0x10, 0x28, 0x44, 0x00, + 0x0C, 0x10, 0x70, 0x10, 0x0C, 0x00, + 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, + 0x00, 0x08, 0x36, 0x41, 0x00, 0x00, + 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, + 0x00, 0x41, 0x36, 0x08, 0x00, 0x00, + 0x02, 0x01, 0x02, 0x04, 0x02, 0x00, + 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, +# elif defined(OLED_FONT_HISKYF21) + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x5C, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0C, 0x00, 0x0C, 0x00, 0x00, 0x00, + 0x28, 0x7C, 0x28, 0x7C, 0x28, 0x00, + 0x48, 0x54, 0x54, 0xFE, 0x54, 0x54, + 0x44, 0x20, 0x10, 0x08, 0x44, 0x00, + 0x28, 0x54, 0x54, 0x54, 0x74, 0x10, + 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x78, 0x84, 0x00, 0x00, 0x00, 0x00, + 0x84, 0x78, 0x00, 0x00, 0x00, 0x00, + 0x48, 0x30, 0x30, 0x48, 0x00, 0x00, + 0x10, 0x38, 0x10, 0x00, 0x00, 0x00, + 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, + 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x60, 0x10, 0x0C, 0x00, 0x00, 0x00, + 0x38, 0x44, 0x44, 0x44, 0x44, 0x38, + 0x08, 0x7C, 0x00, 0x00, 0x00, 0x00, + 0x64, 0x54, 0x54, 0x54, 0x48, 0x00, + 0x44, 0x54, 0x54, 0x54, 0x28, 0x00, + 0x1C, 0x10, 0x10, 0x10, 0x7C, 0x00, + 0x4C, 0x54, 0x54, 0x54, 0x24, 0x00, + 0x38, 0x54, 0x54, 0x54, 0x54, 0x20, + 0x44, 0x24, 0x14, 0x0C, 0x00, 0x00, + 0x28, 0x54, 0x54, 0x54, 0x54, 0x28, + 0x08, 0x54, 0x54, 0x54, 0x54, 0x38, + 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xC8, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x10, 0x28, 0x44, 0x00, 0x00, 0x00, + 0x28, 0x28, 0x28, 0x28, 0x00, 0x00, + 0x44, 0x28, 0x10, 0x00, 0x00, 0x00, + 0x04, 0x54, 0x14, 0x14, 0x08, 0x00, + 0x38, 0x44, 0x5C, 0x54, 0x48, 0x00, + 0x60, 0x18, 0x14, 0x14, 0x18, 0x60, + 0x7C, 0x54, 0x54, 0x54, 0x58, 0x30, + 0x38, 0x44, 0x44, 0x44, 0x40, 0x00, + 0x7C, 0x44, 0x44, 0x44, 0x38, 0x00, + 0x7C, 0x54, 0x54, 0x54, 0x54, 0x40, + 0x7C, 0x14, 0x14, 0x14, 0x10, 0x00, + 0x38, 0x44, 0x44, 0x44, 0x70, 0x10, + 0x7C, 0x10, 0x10, 0x10, 0x10, 0x7C, + 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x20, 0x40, 0x40, 0x40, 0x40, 0x3C, + 0x7C, 0x10, 0x10, 0x28, 0x44, 0x00, + 0x7C, 0x40, 0x40, 0x40, 0x00, 0x00, + 0x7C, 0x08, 0x10, 0x60, 0x10, 0x08, + 0x7C, 0x08, 0x10, 0x20, 0x7C, 0x00, + 0x38, 0x44, 0x44, 0x44, 0x44, 0x38, + 0x7C, 0x24, 0x24, 0x24, 0x18, 0x00, + 0x38, 0x44, 0x64, 0x44, 0x38, 0x00, + 0x7C, 0x14, 0x14, 0x14, 0x68, 0x00, + 0x48, 0x54, 0x54, 0x54, 0x54, 0x20, + 0x04, 0x04, 0x7C, 0x04, 0x04, 0x00, + 0x3C, 0x40, 0x40, 0x40, 0x3C, 0x00, + 0x0C, 0x30, 0x40, 0x30, 0x0C, 0x00, + 0x0C, 0x30, 0x40, 0x20, 0x1C, 0x20, + 0x74, 0x2C, 0x10, 0x28, 0x44, 0x00, + 0x04, 0x08, 0x70, 0x08, 0x04, 0x00, + 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, + 0xFC, 0x84, 0x00, 0x00, 0x00, 0x00, + 0x0C, 0x10, 0x60, 0x00, 0x00, 0x00, + 0x84, 0xFC, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x7F, 0x41, 0x7F, 0x00, 0x00, + 0x40, 0x40, 0x40, 0x40, 0x00, 0x00, + 0x00, 0x7F, 0x41, 0x7F, 0x00, 0x00, + 0x60, 0x18, 0x14, 0x14, 0x18, 0x60, + 0x7C, 0x54, 0x54, 0x54, 0x58, 0x30, + 0x38, 0x44, 0x44, 0x44, 0x40, 0x00, + 0x7C, 0x44, 0x44, 0x44, 0x38, 0x00, + 0x7C, 0x54, 0x54, 0x54, 0x54, 0x40, + 0x7C, 0x14, 0x14, 0x14, 0x10, 0x00, + 0x38, 0x44, 0x44, 0x44, 0x70, 0x10, + 0x7C, 0x10, 0x10, 0x10, 0x10, 0x7C, + 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x20, 0x40, 0x40, 0x40, 0x40, 0x3C, + 0x7C, 0x10, 0x10, 0x28, 0x44, 0x00, + 0x7C, 0x40, 0x40, 0x40, 0x00, 0x00, + 0x7C, 0x08, 0x10, 0x60, 0x10, 0x08, + 0x7C, 0x08, 0x10, 0x20, 0x7C, 0x00, + 0x38, 0x44, 0x44, 0x44, 0x44, 0x38, + 0x7C, 0x24, 0x24, 0x24, 0x18, 0x00, + 0x38, 0x44, 0x64, 0x44, 0x38, 0x00, + 0x7C, 0x14, 0x14, 0x14, 0x68, 0x00, + 0x48, 0x54, 0x54, 0x54, 0x54, 0x20, + 0x04, 0x04, 0x7C, 0x04, 0x04, 0x00, + 0x3C, 0x40, 0x40, 0x40, 0x3C, 0x00, + 0x0C, 0x30, 0x40, 0x30, 0x0C, 0x00, + 0x0C, 0x30, 0x40, 0x20, 0x1C, 0x20, + 0x74, 0x2C, 0x10, 0x28, 0x44, 0x00, + 0x04, 0x08, 0x70, 0x08, 0x04, 0x00, + 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, + 0x00, 0x7F, 0x41, 0x7F, 0x00, 0x00, + 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x7F, 0x41, 0x7F, 0x00, 0x00, + 0x00, 0x7F, 0x41, 0x7F, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, # elif defined(OLED_FONT_SUPER_DIGG) - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x20 32 - 0x58, 0x5C, 0x00, 0x00, 0x00, 0x00, // 0x21 33 ! - 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, // 0x22 34 " - 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00, // 0x23 35 # - 0x5C, 0xFE, 0x54, 0xFE, 0x74, 0x00, // 0x24 36 $ - 0x03, 0x63, 0x38, 0x0C, 0x63, 0x60, // 0x25 37 % - 0x70, 0x5C, 0x54, 0x74, 0x7C, 0x50, // 0x26 38 & - 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, // 0x27 39 ' - 0x70, 0x7C, 0x44, 0x00, 0x00, 0x00, // 0x28 40 ( - 0x44, 0x7C, 0x70, 0x00, 0x00, 0x00, // 0x29 41 ) - 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, // 0x2A 42 * - 0x10, 0x10, 0x70, 0x7C, 0x10, 0x00, // 0x2B 43 + - 0x40, 0xC0, 0x00, 0x00, 0x00, 0x00, // 0x2C 44 , - 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, // 0x2D 45 - - 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, // 0x2E 46 . - 0x70, 0x7C, 0x03, 0x00, 0x00, 0x00, // 0x2F 47 / - 0x7C, 0x44, 0x44, 0x44, 0x7C, 0x1C, // 0x30 48 0 - 0x04, 0x04, 0x7C, 0x1C, 0x00, 0x00, // 0x31 49 1 - 0x74, 0x74, 0x54, 0x54, 0x5C, 0x00, // 0x32 50 2 - 0x44, 0x54, 0x54, 0x54, 0x7C, 0x70, // 0x33 51 3 - 0x1C, 0x10, 0x10, 0x7C, 0x7C, 0x00, // 0x34 52 4 - 0x5C, 0x5C, 0x54, 0x54, 0x74, 0x00, // 0x35 53 5 - 0x70, 0x7C, 0x54, 0x54, 0x74, 0x00, // 0x36 54 6 - 0x04, 0x14, 0x14, 0x14, 0x7C, 0x70, // 0x37 55 7 - 0x70, 0x5C, 0x54, 0x74, 0x7C, 0x00, // 0x38 56 8 - 0x5C, 0x54, 0x54, 0x54, 0x7C, 0x1C, // 0x39 57 9 - 0x50, 0x50, 0x00, 0x00, 0x00, 0x00, // 0x3A 58 : - 0x50, 0xD0, 0x00, 0x00, 0x00, 0x00, // 0x3B 59 ; - 0x18, 0x18, 0x24, 0x42, 0x00, 0x00, // 0x3C 60 < - 0x28, 0x28, 0x28, 0x28, 0x00, 0x00, // 0x3D 61 = - 0x42, 0x24, 0x18, 0x18, 0x00, 0x00, // 0x3E 62 > - 0x04, 0x14, 0x54, 0x54, 0x1C, 0x1C, // 0x3F 63 ? - 0xF8, 0x04, 0x74, 0x74, 0x54, 0x54, // 0x40 64 @ - 0x70, 0x7C, 0x14, 0x14, 0x3C, 0x00, // 0x41 65 A - 0x7C, 0x74, 0x54, 0x54, 0x7C, 0x00, // 0x42 66 B - 0x70, 0x7C, 0x44, 0x44, 0x44, 0x44, // 0x43 67 C - 0x70, 0x7C, 0x44, 0x44, 0x48, 0x70, // 0x44 68 D - 0x70, 0x7C, 0x54, 0x54, 0x54, 0x44, // 0x45 69 E - 0x70, 0x7C, 0x14, 0x14, 0x14, 0x04, // 0x46 70 F - 0x70, 0x7C, 0x44, 0x44, 0x54, 0x74, // 0x47 71 G - 0x70, 0x7C, 0x10, 0x10, 0x7C, 0x00, // 0x48 72 H - 0x70, 0x7C, 0x00, 0x00, 0x00, 0x00, // 0x49 73 I - 0x60, 0x40, 0x40, 0x40, 0x7C, 0x70, // 0x4A 74 J - 0x7C, 0x70, 0x10, 0x1C, 0x70, 0x00, // 0x4B 75 K - 0x70, 0x7C, 0x40, 0x40, 0x40, 0x60, // 0x4C 76 L - 0x70, 0x7C, 0x04, 0x04, 0x7C, 0x04, // 0x4D 77 M - 0x70, 0x7C, 0x04, 0x04, 0x04, 0x7C, // 0x4E 78 N - 0x70, 0x7C, 0x44, 0x44, 0x44, 0x7C, // 0x4F 79 O - 0x70, 0x7C, 0x24, 0x24, 0x3C, 0x00, // 0x50 80 P - 0x7C, 0x44, 0x44, 0x44, 0x7C, 0x00, // 0x51 81 Q - 0x7C, 0x74, 0x14, 0x14, 0x3C, 0x00, // 0x52 82 R - 0x5C, 0x5C, 0x54, 0x54, 0x74, 0x00, // 0x53 83 S - 0x04, 0x04, 0x7C, 0x74, 0x04, 0x00, // 0x54 84 T - 0x70, 0x7C, 0x40, 0x40, 0x40, 0x7C, // 0x55 85 U - 0x70, 0x7C, 0x40, 0x40, 0x20, 0x1C, // 0x56 86 V - 0x70, 0x7C, 0x40, 0x40, 0x7C, 0x40, // 0x57 87 W - 0x70, 0x7C, 0x10, 0x10, 0x3C, 0x00, // 0x58 88 X - 0x1C, 0x10, 0x70, 0x70, 0x1C, 0x00, // 0x59 89 Y - 0x74, 0x74, 0x54, 0x54, 0x5C, 0x00, // 0x5A 90 Z - 0xF0, 0xFE, 0x82, 0x00, 0x00, 0x00, // 0x5B 91 [ - 0x03, 0x7C, 0x70, 0x00, 0x00, 0x00, // 0x5C 92 \ backslash - 0x82, 0xFE, 0xF0, 0x00, 0x00, 0x00, // 0x5D 93 ] - 0x04, 0x02, 0x01, 0x06, 0x04, 0x00, // 0x5E 94 ^ - 0x40, 0x40, 0x40, 0x40, 0x00, 0x00, // 0x5F 95 _ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x60 96 ` - 0x70, 0x7C, 0x14, 0x14, 0x3C, 0x00, // 0x61 97 a - 0x7C, 0x74, 0x54, 0x54, 0x7C, 0x00, // 0x62 98 b - 0x70, 0x7C, 0x44, 0x44, 0x44, 0x44, // 0x63 99 c - 0x70, 0x7C, 0x44, 0x44, 0x48, 0x70, // 0x64 100 d - 0x70, 0x7C, 0x54, 0x54, 0x54, 0x44, // 0x65 101 e - 0x70, 0x7C, 0x14, 0x14, 0x14, 0x04, // 0x66 102 f - 0x70, 0x7C, 0x44, 0x44, 0x54, 0x74, // 0x67 103 g - 0x70, 0x7C, 0x10, 0x10, 0x7C, 0x00, // 0x68 104 h - 0x70, 0x7C, 0x00, 0x00, 0x00, 0x00, // 0x69 105 i - 0x60, 0x40, 0x40, 0x40, 0x7C, 0x70, // 0x6A 106 j - 0x7C, 0x70, 0x10, 0x1C, 0x70, 0x00, // 0x6B 107 k - 0x70, 0x7C, 0x40, 0x40, 0x40, 0x60, // 0x6C 108 l - 0x70, 0x7C, 0x04, 0x04, 0x7C, 0x04, // 0x6D 109 m - 0x70, 0x7C, 0x04, 0x04, 0x04, 0x7C, // 0x6E 110 n - 0x70, 0x7C, 0x44, 0x44, 0x44, 0x7C, // 0x6F 111 o - 0x70, 0x7C, 0x24, 0x24, 0x3C, 0x00, // 0x70 112 p - 0x7C, 0x44, 0x44, 0x44, 0x7C, 0x00, // 0x71 113 q - 0x7C, 0x74, 0x14, 0x14, 0x3C, 0x00, // 0x72 114 r - 0x5C, 0x5C, 0x54, 0x54, 0x74, 0x00, // 0x73 115 s - 0x04, 0x04, 0x7C, 0x74, 0x04, 0x00, // 0x74 116 t - 0x70, 0x7C, 0x40, 0x40, 0x40, 0x7C, // 0x75 117 u - 0x70, 0x7C, 0x40, 0x40, 0x20, 0x1C, // 0x76 118 v - 0x70, 0x7C, 0x40, 0x40, 0x7C, 0x40, // 0x77 119 w - 0x70, 0x7C, 0x10, 0x10, 0x3C, 0x00, // 0x78 120 x - 0x1C, 0x10, 0x70, 0x70, 0x1C, 0x00, // 0x79 121 y - 0x74, 0x74, 0x54, 0x54, 0x5C, 0x00, // 0x7A 122 z - 0x10, 0xFE, 0xC2, 0x00, 0x00, 0x00, // 0x7B 123 { - 0x00, 0x44, 0x77, 0x00, 0x00, 0x00, // 0x7C 124 | - 0xC2, 0xFE, 0x10, 0x00, 0x00, 0x00, // 0x7D 125 } - 0x02, 0x01, 0x03, 0x04, 0x06, 0x02, // 0x7E 126 ~ - 0x3C, 0x22, 0x21, 0x22, 0x3C, 0x00, // 0x7F 127 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x58, 0x5C, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, + 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00, + 0x5C, 0xFE, 0x54, 0xFE, 0x74, 0x00, + 0x03, 0x63, 0x38, 0x0C, 0x63, 0x60, + 0x70, 0x5C, 0x54, 0x74, 0x7C, 0x50, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x70, 0x7C, 0x44, 0x00, 0x00, 0x00, + 0x44, 0x7C, 0x70, 0x00, 0x00, 0x00, + 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, + 0x10, 0x10, 0x70, 0x7C, 0x10, 0x00, + 0x40, 0xC0, 0x00, 0x00, 0x00, 0x00, + 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, + 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, + 0x70, 0x7C, 0x03, 0x00, 0x00, 0x00, + 0x7C, 0x44, 0x44, 0x44, 0x7C, 0x1C, + 0x04, 0x04, 0x7C, 0x1C, 0x00, 0x00, + 0x74, 0x74, 0x54, 0x54, 0x5C, 0x00, + 0x44, 0x54, 0x54, 0x54, 0x7C, 0x70, + 0x1C, 0x10, 0x10, 0x7C, 0x7C, 0x00, + 0x5C, 0x5C, 0x54, 0x54, 0x74, 0x00, + 0x70, 0x7C, 0x54, 0x54, 0x74, 0x00, + 0x04, 0x14, 0x14, 0x14, 0x7C, 0x70, + 0x70, 0x5C, 0x54, 0x74, 0x7C, 0x00, + 0x5C, 0x54, 0x54, 0x54, 0x7C, 0x1C, + 0x50, 0x50, 0x00, 0x00, 0x00, 0x00, + 0x50, 0xD0, 0x00, 0x00, 0x00, 0x00, + 0x18, 0x18, 0x24, 0x42, 0x00, 0x00, + 0x28, 0x28, 0x28, 0x28, 0x00, 0x00, + 0x42, 0x24, 0x18, 0x18, 0x00, 0x00, + 0x04, 0x14, 0x54, 0x54, 0x1C, 0x1C, + 0xF8, 0x04, 0x74, 0x74, 0x54, 0x54, + 0x70, 0x7C, 0x14, 0x14, 0x3C, 0x00, + 0x7C, 0x74, 0x54, 0x54, 0x7C, 0x00, + 0x70, 0x7C, 0x44, 0x44, 0x44, 0x44, + 0x70, 0x7C, 0x44, 0x44, 0x48, 0x70, + 0x70, 0x7C, 0x54, 0x54, 0x54, 0x44, + 0x70, 0x7C, 0x14, 0x14, 0x14, 0x04, + 0x70, 0x7C, 0x44, 0x44, 0x54, 0x74, + 0x70, 0x7C, 0x10, 0x10, 0x7C, 0x00, + 0x70, 0x7C, 0x00, 0x00, 0x00, 0x00, + 0x60, 0x40, 0x40, 0x40, 0x7C, 0x70, + 0x7C, 0x70, 0x10, 0x1C, 0x70, 0x00, + 0x70, 0x7C, 0x40, 0x40, 0x40, 0x60, + 0x70, 0x7C, 0x04, 0x04, 0x7C, 0x04, + 0x70, 0x7C, 0x04, 0x04, 0x04, 0x7C, + 0x70, 0x7C, 0x44, 0x44, 0x44, 0x7C, + 0x70, 0x7C, 0x24, 0x24, 0x3C, 0x00, + 0x7C, 0x44, 0x44, 0x44, 0x7C, 0x00, + 0x7C, 0x74, 0x14, 0x14, 0x3C, 0x00, + 0x5C, 0x5C, 0x54, 0x54, 0x74, 0x00, + 0x04, 0x04, 0x7C, 0x74, 0x04, 0x00, + 0x70, 0x7C, 0x40, 0x40, 0x40, 0x7C, + 0x70, 0x7C, 0x40, 0x40, 0x20, 0x1C, + 0x70, 0x7C, 0x40, 0x40, 0x7C, 0x40, + 0x70, 0x7C, 0x10, 0x10, 0x3C, 0x00, + 0x1C, 0x10, 0x70, 0x70, 0x1C, 0x00, + 0x74, 0x74, 0x54, 0x54, 0x5C, 0x00, + 0xF0, 0xFE, 0x82, 0x00, 0x00, 0x00, + 0x03, 0x7C, 0x70, 0x00, 0x00, 0x00, + 0x82, 0xFE, 0xF0, 0x00, 0x00, 0x00, + 0x04, 0x02, 0x01, 0x06, 0x04, 0x00, + 0x40, 0x40, 0x40, 0x40, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x70, 0x7C, 0x14, 0x14, 0x3C, 0x00, + 0x7C, 0x74, 0x54, 0x54, 0x7C, 0x00, + 0x70, 0x7C, 0x44, 0x44, 0x44, 0x44, + 0x70, 0x7C, 0x44, 0x44, 0x48, 0x70, + 0x70, 0x7C, 0x54, 0x54, 0x54, 0x44, + 0x70, 0x7C, 0x14, 0x14, 0x14, 0x04, + 0x70, 0x7C, 0x44, 0x44, 0x54, 0x74, + 0x70, 0x7C, 0x10, 0x10, 0x7C, 0x00, + 0x70, 0x7C, 0x00, 0x00, 0x00, 0x00, + 0x60, 0x40, 0x40, 0x40, 0x7C, 0x70, + 0x7C, 0x70, 0x10, 0x1C, 0x70, 0x00, + 0x70, 0x7C, 0x40, 0x40, 0x40, 0x60, + 0x70, 0x7C, 0x04, 0x04, 0x7C, 0x04, + 0x70, 0x7C, 0x04, 0x04, 0x04, 0x7C, + 0x70, 0x7C, 0x44, 0x44, 0x44, 0x7C, + 0x70, 0x7C, 0x24, 0x24, 0x3C, 0x00, + 0x7C, 0x44, 0x44, 0x44, 0x7C, 0x00, + 0x7C, 0x74, 0x14, 0x14, 0x3C, 0x00, + 0x5C, 0x5C, 0x54, 0x54, 0x74, 0x00, + 0x04, 0x04, 0x7C, 0x74, 0x04, 0x00, + 0x70, 0x7C, 0x40, 0x40, 0x40, 0x7C, + 0x70, 0x7C, 0x40, 0x40, 0x20, 0x1C, + 0x70, 0x7C, 0x40, 0x40, 0x7C, 0x40, + 0x70, 0x7C, 0x10, 0x10, 0x3C, 0x00, + 0x1C, 0x10, 0x70, 0x70, 0x1C, 0x00, + 0x74, 0x74, 0x54, 0x54, 0x5C, 0x00, + 0x10, 0xFE, 0xC2, 0x00, 0x00, 0x00, + 0x00, 0x44, 0x77, 0x00, 0x00, 0x00, + 0xC2, 0xFE, 0x10, 0x00, 0x00, 0x00, + 0x02, 0x01, 0x03, 0x04, 0x06, 0x02, + 0x3C, 0x22, 0x21, 0x22, 0x3C, 0x00, +#elif defined (OLED_FONT_ZXPIX) + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x12, 0x3F, 0x12, 0x12, 0x3F, 0x12, + 0x2E, 0x2A, 0x7F, 0x2A, 0x3A, 0x00, + 0x23, 0x13, 0x08, 0x04, 0x32, 0x31, + 0x10, 0x2A, 0x25, 0x2A, 0x10, 0x20, + 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x1E, 0x21, 0x00, 0x00, 0x00, 0x00, + 0x21, 0x1E, 0x00, 0x00, 0x00, 0x00, + 0x08, 0x2A, 0x1C, 0x2A, 0x08, 0x08, + 0x08, 0x08, 0x3E, 0x08, 0x08, 0x08, + 0x80, 0x60, 0x00, 0x00, 0x00, 0x00, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, + 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, + 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, + 0x1E, 0x31, 0x29, 0x25, 0x23, 0x1E, + 0x22, 0x21, 0x3F, 0x20, 0x20, 0x20, + 0x32, 0x29, 0x29, 0x29, 0x29, 0x26, + 0x12, 0x21, 0x21, 0x25, 0x25, 0x1A, + 0x18, 0x14, 0x12, 0x3F, 0x10, 0x10, + 0x17, 0x25, 0x25, 0x25, 0x25, 0x19, + 0x1E, 0x25, 0x25, 0x25, 0x25, 0x18, + 0x01, 0x01, 0x31, 0x09, 0x05, 0x03, + 0x1A, 0x25, 0x25, 0x25, 0x25, 0x1A, + 0x06, 0x29, 0x29, 0x29, 0x29, 0x1E, + 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x64, 0x00, 0x00, 0x00, 0x00, + 0x08, 0x14, 0x22, 0x00, 0x00, 0x00, + 0x14, 0x14, 0x14, 0x14, 0x14, 0x00, + 0x22, 0x14, 0x08, 0x00, 0x00, 0x00, + 0x02, 0x01, 0x01, 0x29, 0x05, 0x02, + 0x1E, 0x21, 0x2D, 0x2B, 0x2D, 0x0E, + 0x3E, 0x09, 0x09, 0x09, 0x09, 0x3E, + 0x3F, 0x25, 0x25, 0x25, 0x25, 0x1A, + 0x1E, 0x21, 0x21, 0x21, 0x21, 0x12, + 0x3F, 0x21, 0x21, 0x21, 0x12, 0x0C, + 0x3F, 0x25, 0x25, 0x25, 0x25, 0x21, + 0x3F, 0x05, 0x05, 0x05, 0x05, 0x01, + 0x1E, 0x21, 0x21, 0x21, 0x29, 0x1A, + 0x3F, 0x04, 0x04, 0x04, 0x04, 0x3F, + 0x21, 0x21, 0x3F, 0x21, 0x21, 0x21, + 0x10, 0x20, 0x20, 0x20, 0x20, 0x1F, + 0x3F, 0x04, 0x0C, 0x0A, 0x11, 0x20, + 0x3F, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x3F, 0x02, 0x04, 0x04, 0x02, 0x3F, + 0x3F, 0x02, 0x04, 0x08, 0x10, 0x3F, + 0x1E, 0x21, 0x21, 0x21, 0x21, 0x1E, + 0x3F, 0x09, 0x09, 0x09, 0x09, 0x06, + 0x1E, 0x21, 0x29, 0x31, 0x21, 0x1E, + 0x3F, 0x09, 0x09, 0x09, 0x19, 0x26, + 0x12, 0x25, 0x25, 0x25, 0x25, 0x18, + 0x01, 0x01, 0x01, 0x3F, 0x01, 0x01, + 0x1F, 0x20, 0x20, 0x20, 0x20, 0x1F, + 0x0F, 0x10, 0x20, 0x20, 0x10, 0x0F, + 0x1F, 0x20, 0x10, 0x10, 0x20, 0x1F, + 0x21, 0x12, 0x0C, 0x0C, 0x12, 0x21, + 0x01, 0x02, 0x0C, 0x38, 0x04, 0x02, + 0x21, 0x31, 0x29, 0x25, 0x23, 0x21, + 0x3F, 0x21, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, + 0x21, 0x3F, 0x00, 0x00, 0x00, 0x00, + 0x04, 0x02, 0x3F, 0x02, 0x04, 0x00, + 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, + 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x10, 0x30, 0x2A, 0x2A, 0x3C, 0x00, + 0x3F, 0x24, 0x24, 0x24, 0x18, 0x00, + 0x0C, 0x14, 0x22, 0x22, 0x00, 0x00, + 0x18, 0x24, 0x24, 0x24, 0x3F, 0x00, + 0x1C, 0x2C, 0x2A, 0x2A, 0x24, 0x00, + 0x3E, 0x05, 0x01, 0x00, 0x00, 0x00, + 0x18, 0x28, 0xA4, 0xA4, 0x7C, 0x00, + 0x3F, 0x04, 0x04, 0x0C, 0x30, 0x00, + 0x24, 0x3D, 0x20, 0x00, 0x00, 0x00, + 0x20, 0x40, 0x40, 0x3D, 0x00, 0x00, + 0x3F, 0x0C, 0x12, 0x20, 0x00, 0x00, + 0x1F, 0x20, 0x20, 0x00, 0x00, 0x00, + 0x3E, 0x02, 0x3C, 0x02, 0x3C, 0x00, + 0x3E, 0x02, 0x02, 0x02, 0x3C, 0x00, + 0x0C, 0x14, 0x22, 0x32, 0x0C, 0x00, + 0xFC, 0x24, 0x24, 0x24, 0x18, 0x00, + 0x18, 0x24, 0x24, 0x24, 0xFC, 0x80, + 0x3C, 0x04, 0x02, 0x02, 0x00, 0x00, + 0x24, 0x2C, 0x2A, 0x2A, 0x10, 0x00, + 0x02, 0x1F, 0x22, 0x20, 0x00, 0x00, + 0x1E, 0x20, 0x20, 0x20, 0x1E, 0x00, + 0x06, 0x18, 0x20, 0x18, 0x06, 0x00, + 0x1E, 0x30, 0x1C, 0x30, 0x0E, 0x00, + 0x22, 0x14, 0x08, 0x14, 0x22, 0x00, + 0x0C, 0x10, 0xA0, 0xA0, 0x7C, 0x00, + 0x22, 0x32, 0x2A, 0x26, 0x22, 0x22, + 0x0C, 0x3F, 0x21, 0x00, 0x00, 0x00, + 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x21, 0x3F, 0x0C, 0x00, 0x00, 0x00, + 0x02, 0x01, 0x02, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, # else // default font - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x20 32 - 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, // 0x21 33 ! - 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, // 0x22 34 " - 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00, // 0x23 35 # - 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00, // 0x24 36 $ - 0x23, 0x13, 0x08, 0x64, 0x62, 0x00, // 0x25 37 % - 0x36, 0x49, 0x56, 0x20, 0x50, 0x00, // 0x26 38 & - 0x00, 0x08, 0x07, 0x03, 0x00, 0x00, // 0x27 39 ' - 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, // 0x28 40 ( - 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, // 0x29 41 ) - 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, // 0x2A 42 * - 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, // 0x2B 43 + - 0x00, 0x80, 0x70, 0x30, 0x00, 0x00, // 0x2C 44 , - 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, // 0x2D 45 - - 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, // 0x2E 46 . - 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, // 0x2F 47 / - 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, // 0x30 48 0 - 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00, // 0x31 49 1 - 0x72, 0x49, 0x49, 0x49, 0x46, 0x00, // 0x32 50 2 - 0x21, 0x41, 0x49, 0x4D, 0x33, 0x00, // 0x33 51 3 - 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00, // 0x34 52 4 - 0x27, 0x45, 0x45, 0x45, 0x39, 0x00, // 0x35 53 5 - 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00, // 0x36 54 6 - 0x41, 0x21, 0x11, 0x09, 0x07, 0x00, // 0x37 55 7 - 0x36, 0x49, 0x49, 0x49, 0x36, 0x00, // 0x38 56 8 - 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00, // 0x39 57 9 - 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, // 0x3A 58 : - 0x00, 0x40, 0x34, 0x00, 0x00, 0x00, // 0x3B 59 ; - 0x00, 0x08, 0x14, 0x22, 0x41, 0x00, // 0x3C 60 < - 0x14, 0x14, 0x14, 0x14, 0x14, 0x00, // 0x3D 61 = - 0x00, 0x41, 0x22, 0x14, 0x08, 0x00, // 0x3E 62 > - 0x02, 0x01, 0x59, 0x09, 0x06, 0x00, // 0x3F 63 ? - 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00, // 0x40 64 @ - 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00, // 0x41 65 A - 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00, // 0x42 66 B - 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00, // 0x43 67 C - 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00, // 0x44 68 D - 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00, // 0x45 69 E - 0x7F, 0x09, 0x09, 0x09, 0x01, 0x00, // 0x46 70 F - 0x3E, 0x41, 0x41, 0x51, 0x73, 0x00, // 0x47 71 G - 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, // 0x48 72 H - 0x00, 0x41, 0x7F, 0x41, 0x00, 0x00, // 0x49 73 I - 0x20, 0x40, 0x41, 0x3F, 0x01, 0x00, // 0x4A 74 J - 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00, // 0x4B 75 K - 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00, // 0x4C 76 L - 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00, // 0x4D 77 M - 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00, // 0x4E 78 N - 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, // 0x4F 79 O - 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00, // 0x50 80 P - 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00, // 0x51 81 Q - 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00, // 0x52 82 R - 0x26, 0x49, 0x49, 0x49, 0x32, 0x00, // 0x53 83 S - 0x03, 0x01, 0x7F, 0x01, 0x03, 0x00, // 0x54 84 T - 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00, // 0x55 85 U - 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00, // 0x56 86 V - 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00, // 0x57 87 W - 0x63, 0x14, 0x08, 0x14, 0x63, 0x00, // 0x58 88 X - 0x03, 0x04, 0x78, 0x04, 0x03, 0x00, // 0x59 89 Y - 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00, // 0x5A 90 Z - 0x00, 0x7F, 0x41, 0x41, 0x41, 0x00, // 0x5B 91 [ - 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, // 0x5C 92 \ backslash - 0x00, 0x41, 0x41, 0x41, 0x7F, 0x00, // 0x5D 93 ] - 0x04, 0x02, 0x01, 0x02, 0x04, 0x00, // 0x5E 94 ^ - 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, // 0x5F 95 _ - 0x00, 0x03, 0x07, 0x08, 0x00, 0x00, // 0x60 96 ` - 0x20, 0x54, 0x54, 0x78, 0x40, 0x00, // 0x61 97 a - 0x7F, 0x28, 0x44, 0x44, 0x38, 0x00, // 0x62 98 b - 0x38, 0x44, 0x44, 0x44, 0x28, 0x00, // 0x63 99 c - 0x38, 0x44, 0x44, 0x28, 0x7F, 0x00, // 0x64 100 d - 0x38, 0x54, 0x54, 0x54, 0x18, 0x00, // 0x65 101 e - 0x00, 0x08, 0x7E, 0x09, 0x02, 0x00, // 0x66 102 f - 0x18, 0x24, 0x24, 0x1C, 0x78, 0x00, // 0x67 103 g - 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00, // 0x68 104 h - 0x00, 0x44, 0x7D, 0x40, 0x00, 0x00, // 0x69 105 i - 0x20, 0x40, 0x40, 0x3D, 0x00, 0x00, // 0x6A 106 j - 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00, // 0x6B 107 k - 0x00, 0x41, 0x7F, 0x40, 0x00, 0x00, // 0x6C 108 l - 0x7C, 0x04, 0x78, 0x04, 0x78, 0x00, // 0x6D 109 m - 0x7C, 0x08, 0x04, 0x04, 0x78, 0x00, // 0x6E 110 n - 0x38, 0x44, 0x44, 0x44, 0x38, 0x00, // 0x6F 111 o - 0x7C, 0x18, 0x24, 0x24, 0x18, 0x00, // 0x70 112 p - 0x18, 0x24, 0x24, 0x18, 0x7C, 0x00, // 0x71 113 q - 0x7C, 0x08, 0x04, 0x04, 0x08, 0x00, // 0x72 114 r - 0x48, 0x54, 0x54, 0x54, 0x24, 0x00, // 0x73 115 s - 0x04, 0x04, 0x3F, 0x44, 0x24, 0x00, // 0x74 116 t - 0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00, // 0x75 117 u - 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00, // 0x76 118 v - 0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00, // 0x77 119 w - 0x44, 0x28, 0x10, 0x28, 0x44, 0x00, // 0x78 120 x - 0x4C, 0x90, 0x10, 0x90, 0x7C, 0x00, // 0x79 121 y - 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, // 0x7A 122 z - 0x00, 0x08, 0x36, 0x41, 0x00, 0x00, // 0x7B 123 { - 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, // 0x7C 124 | - 0x00, 0x41, 0x36, 0x08, 0x00, 0x00, // 0x7D 125 } - 0x02, 0x01, 0x02, 0x04, 0x02, 0x00, // 0x7E 126 ~ - 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, // 0x7F 127 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, + 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, + 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00, + 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00, + 0x23, 0x13, 0x08, 0x64, 0x62, 0x00, + 0x36, 0x49, 0x56, 0x20, 0x50, 0x00, + 0x00, 0x08, 0x07, 0x03, 0x00, 0x00, + 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, + 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, + 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, + 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, + 0x00, 0x80, 0x70, 0x30, 0x00, 0x00, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, + 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, + 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, + 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, + 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00, + 0x72, 0x49, 0x49, 0x49, 0x46, 0x00, + 0x21, 0x41, 0x49, 0x4D, 0x33, 0x00, + 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00, + 0x27, 0x45, 0x45, 0x45, 0x39, 0x00, + 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00, + 0x41, 0x21, 0x11, 0x09, 0x07, 0x00, + 0x36, 0x49, 0x49, 0x49, 0x36, 0x00, + 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00, + 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x00, 0x40, 0x34, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x14, 0x22, 0x41, 0x00, + 0x14, 0x14, 0x14, 0x14, 0x14, 0x00, + 0x00, 0x41, 0x22, 0x14, 0x08, 0x00, + 0x02, 0x01, 0x59, 0x09, 0x06, 0x00, + 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00, + 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00, + 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00, + 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00, + 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00, + 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00, + 0x7F, 0x09, 0x09, 0x09, 0x01, 0x00, + 0x3E, 0x41, 0x41, 0x51, 0x73, 0x00, + 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, + 0x00, 0x41, 0x7F, 0x41, 0x00, 0x00, + 0x20, 0x40, 0x41, 0x3F, 0x01, 0x00, + 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00, + 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00, + 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00, + 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00, + 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, + 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00, + 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00, + 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00, + 0x26, 0x49, 0x49, 0x49, 0x32, 0x00, + 0x03, 0x01, 0x7F, 0x01, 0x03, 0x00, + 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00, + 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00, + 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00, + 0x63, 0x14, 0x08, 0x14, 0x63, 0x00, + 0x03, 0x04, 0x78, 0x04, 0x03, 0x00, + 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00, + 0x00, 0x7F, 0x41, 0x41, 0x41, 0x00, + 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, + 0x00, 0x41, 0x41, 0x41, 0x7F, 0x00, + 0x04, 0x02, 0x01, 0x02, 0x04, 0x00, + 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, + 0x00, 0x03, 0x07, 0x08, 0x00, 0x00, + 0x20, 0x54, 0x54, 0x78, 0x40, 0x00, + 0x7F, 0x28, 0x44, 0x44, 0x38, 0x00, + 0x38, 0x44, 0x44, 0x44, 0x28, 0x00, + 0x38, 0x44, 0x44, 0x28, 0x7F, 0x00, + 0x38, 0x54, 0x54, 0x54, 0x18, 0x00, + 0x00, 0x08, 0x7E, 0x09, 0x02, 0x00, + 0x18, 0x24, 0x24, 0x1C, 0x78, 0x00, + 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00, + 0x00, 0x44, 0x7D, 0x40, 0x00, 0x00, + 0x20, 0x40, 0x40, 0x3D, 0x00, 0x00, + 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00, + 0x00, 0x41, 0x7F, 0x40, 0x00, 0x00, + 0x7C, 0x04, 0x78, 0x04, 0x78, 0x00, + 0x7C, 0x08, 0x04, 0x04, 0x78, 0x00, + 0x38, 0x44, 0x44, 0x44, 0x38, 0x00, + 0x7C, 0x18, 0x24, 0x24, 0x18, 0x00, + 0x18, 0x24, 0x24, 0x18, 0x7C, 0x00, + 0x7C, 0x08, 0x04, 0x04, 0x08, 0x00, + 0x48, 0x54, 0x54, 0x54, 0x24, 0x00, + 0x04, 0x04, 0x3F, 0x44, 0x24, 0x00, + 0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00, + 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00, + 0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00, + 0x44, 0x28, 0x10, 0x28, 0x44, 0x00, + 0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00, + 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, + 0x00, 0x08, 0x36, 0x41, 0x00, 0x00, + 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, + 0x00, 0x41, 0x36, 0x08, 0x00, 0x00, + 0x02, 0x01, 0x02, 0x04, 0x02, 0x00, + 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, # endif +// top Logo section # if defined(OLED_LOGO_GMK_BAD) - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x80 - 0x80, 0xC0, 0xE0, 0xF0, 0xF0, 0x70, // 0x81 - 0x38, 0x38, 0x38, 0x78, 0x70, 0xF0, // 0x82 - 0xE0, 0xE0, 0x80, 0x00, 0x00, 0x00, // 0x83 - 0x00, 0x00, 0x00, 0x80, 0xF0, 0xF8, // 0x84 - 0xF8, 0xF8, 0xF8, 0x00, 0x00, 0x00, // 0x85 - 0x80, 0xE0, 0xF8, 0xF8, 0xF8, 0xF8, // 0x86 - 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x87 - 0x80, 0xF8, 0xF8, 0xF8, 0x38, 0x00, // 0x88 - 0x80, 0xE0, 0xF0, 0xF8, 0x78, 0x38, // 0x89 - 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, // 0x8A - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x8B - 0x80, 0xF8, 0xF8, 0xF8, 0x38, 0x38, // 0x8C - 0x38, 0xF8, 0xF0, 0xF0, 0xE0, 0x00, // 0x8D - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x8E - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x8F - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x90 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x91 - 0x00, 0x00, 0x00, 0x80, 0xFC, 0xFC, // 0x92 - 0xFC, 0x1C, 0x00, 0x00, 0x00, 0x00, // 0x93 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x94 - 0xE0, 0xF0, 0xF0, 0xF0, 0xE0, 0xEC, // 0x95 - 0xEE, 0xF7, 0xF3, 0x70, 0x20, 0x00, // 0x96 - 0x7C, 0x7C, 0x7C, 0x7E, 0x00, 0x7E, // 0x97 - 0x7E, 0x7E, 0x7F, 0x7F, 0x7F, 0x00, // 0x98 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x99 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x9A - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x9B - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x9C - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x9D - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x9E - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x9F - 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, // 0xA0 - 0xFF, 0xFF, 0xFF, 0xC1, 0x80, 0x00, // 0xA1 - 0x00, 0x38, 0x38, 0xB8, 0xB8, 0xF9, // 0xA2 - 0xF9, 0xF8, 0x38, 0x00, 0x00, 0x00, // 0xA3 - 0x00, 0xC0, 0xF8, 0xFF, 0xFF, 0x1F, // 0xA4 - 0x01, 0x3F, 0xFF, 0xFF, 0xF0, 0xFE, // 0xA5 - 0x7F, 0x0F, 0x03, 0xFF, 0xFF, 0xFF, // 0xA6 - 0xFF, 0x00, 0x00, 0x00, 0x00, 0x80, // 0xA7 - 0xFF, 0xFF, 0xFF, 0x3F, 0x1E, 0x7F, // 0xA8 - 0xFF, 0xFF, 0xF3, 0xC1, 0x80, 0x00, // 0xA9 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xAA - 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, // 0xAB - 0xFF, 0xFF, 0xFF, 0x3F, 0x1C, 0x1C, // 0xAC - 0x9C, 0xFF, 0xFF, 0xF3, 0xE1, 0x00, // 0xAD - 0x00, 0x00, 0x00, 0xF0, 0xFC, 0xFE, // 0xAE - 0xFF, 0x0F, 0x07, 0x07, 0x8E, 0xFF, // 0xAF - 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, // 0xB0 - 0x00, 0xF0, 0xFC, 0xFE, 0xFF, 0x8F, // 0xB1 - 0x07, 0x07, 0x8E, 0xFF, 0xFF, 0xFF, // 0xB2 - 0x3F, 0x00, 0x00, 0x00, 0x00, 0x80, // 0xB3 - 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, // 0xB4 - 0x0F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F, // 0xB5 - 0x7F, 0x7F, 0x3F, 0x1E, 0x0C, 0x00, // 0xB6 - 0x1F, 0x1F, 0x1F, 0x3F, 0x00, 0x3F, // 0xB7 - 0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x00, // 0xB8 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xB9 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xBA - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xBB - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xBC - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xBD - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xBE - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xBF - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xC0 - 0x00, 0x01, 0x03, 0x03, 0x03, 0x07, // 0xC1 - 0x07, 0x07, 0x07, 0x03, 0x03, 0x03, // 0xC2 - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xC3 - 0x06, 0x07, 0x07, 0x07, 0x01, 0x00, // 0xC4 - 0x00, 0x00, 0x07, 0x07, 0x07, 0x01, // 0xC5 - 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, // 0xC6 - 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, // 0xC7 - 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, // 0xC8 - 0x00, 0x03, 0x07, 0x07, 0x07, 0x06, // 0xC9 - 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xCA - 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, // 0xCB - 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, // 0xCC - 0x07, 0x07, 0x03, 0x01, 0x00, 0x00, // 0xCD - 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, // 0xCE - 0x07, 0x07, 0x07, 0x03, 0x07, 0x07, // 0xCF - 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, // 0xD0 - 0x00, 0x00, 0x03, 0x07, 0x07, 0x07, // 0xD1 - 0x07, 0x03, 0x07, 0x07, 0x07, 0x07, // 0xD2 - 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, // 0xD3 - 0x07, 0x07, 0x01, 0x00, 0x00, 0x00, // 0xD4 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xD5 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xD6 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xD7 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xD8 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xD9 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xDA - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xDB - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xDC - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xDD - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xDE - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xDF - 0x00, 0x1C, 0x1C, 0x3E, 0x7F, 0x7F, - 0x00, 0x14, 0x08, 0x14, 0x00, 0x00, - 0x00, 0x1C, 0x1C, 0x3E, 0x7F, 0x7F, - 0x00, 0x22, 0x1C, 0x41, 0x3E, 0x00, - 0x00, 0x00, 0x00, 0x30, 0x18, 0x0C, - 0x06, 0x0C, 0x18, 0x30, 0x00, 0x00, - 0x00, 0x00, 0x06, 0x06, 0x06, 0x0C, - 0x18, 0x30, 0x66, 0x66, 0x66, 0x00, - 0x00, 0x00, 0x00, 0x08, 0x0C, 0x7E, - 0x7F, 0x7E, 0x0C, 0x08, 0x00, 0x00, - 0x00, 0x00, 0x77, 0x77, 0x77, 0x00, - 0x77, 0x77, 0x77, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xE7, 0xA5, 0xFF, 0x24, - 0x24, 0xFF, 0xA5, 0xE7, 0x00, 0x00, - 0x00, 0x00, 0x1C, 0x22, 0xC9, 0xD1, - 0xC9, 0x22, 0x1C, 0x00, 0x00, 0x00, - 0x00, 0x10, 0x02, 0x38, 0xFC, 0xED, - 0xFC, 0x38, 0x02, 0x10, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x3E, 0x4A, 0x4F, - 0x4A, 0x3E, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x40, 0x60, 0x6A, 0x64, - 0x6A, 0x60, 0x40, 0x00, 0x00, 0x00, - 0x00, 0x04, 0x42, 0x69, 0x65, 0x65, - 0x65, 0x69, 0x42, 0x04, 0x00, 0x00, - 0x00, 0x00, 0x1C, 0x14, 0x1C, 0x08, - 0x18, 0x08, 0x18, 0x00, 0x00, 0x00, - 0x00, 0x70, 0xC8, 0xEE, 0xF9, 0x70, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0xC0, 0xE0, 0xF0, 0xF0, 0x70, + 0x38, 0x38, 0x38, 0x78, 0x70, 0xF0, + 0xE0, 0xE0, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0xF0, 0xF8, + 0xF8, 0xF8, 0xF8, 0x00, 0x00, 0x00, + 0x80, 0xE0, 0xF8, 0xF8, 0xF8, 0xF8, + 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0xF8, 0xF8, 0xF8, 0x38, 0x00, + 0x80, 0xE0, 0xF0, 0xF8, 0x78, 0x38, + 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0xF8, 0xF8, 0xF8, 0x38, 0x38, + 0x38, 0xF8, 0xF0, 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, 0x00, + 0x00, 0x00, 0x00, 0x80, 0xFC, 0xFC, + 0xFC, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, # elif defined(OLED_LOGO_HUE_MANITEE) - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x80 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xC0, 0x90, 0x70, 0xE8, 0xA8, 0xE4, 0xC4, 0xC4, 0xA0, 0xE4, 0xB0, 0xDC, 0xE4, @@ -675,120 +962,13 @@ static const unsigned char font[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xF8, 0xF8, 0x00, 0x00, 0x00, 0x00, // 0x90 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xE0, 0xF0, 0xF0, 0xF0, 0xE0, 0xEC, - 0xEE, 0xF7, 0xF3, 0x70, 0x20, 0x00, - 0x7C, 0x7C, 0x7C, 0x7E, 0x00, 0x7E, - 0x7E, 0x7E, 0x7F, 0x7F, 0x7F, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 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, // 0xA0 - 0xFC, 0xF6, 0xF7, 0xEF, 0xFF, 0x87, - 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, - 0x1F, 0x1F, 0x1F, 0xFF, 0xFF, 0xFF, - 0xFF, 0x07, 0x1F, 0x1F, 0x19, 0x15, - 0xF7, 0x16, 0x1A, 0x1B, 0x16, 0x07, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x0C, 0x0C, 0x33, 0x33, - 0x33, 0x33, 0x33, 0x33, 0xC0, 0xC0, - 0x00, 0x00, 0x03, 0x03, 0xFF, 0xFF, - 0x03, 0x03, 0x00, 0x00, 0xC0, 0xC0, - 0x00, 0x00, 0x00, 0xFC, 0xFC, 0x03, - 0x03, 0x03, 0x03, 0x03, 0x03, 0xFC, - 0xFC, 0x00, 0x00, 0x00, 0xFC, 0xFC, - 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, - 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, - 0xFF, 0xFF, 0x30, 0x30, 0xCC, 0xCC, // 0xB0 - 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x0F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F, - 0x7F, 0x7F, 0x3F, 0x1E, 0x0C, 0x00, - 0x1F, 0x1F, 0x1F, 0x3F, 0x00, 0x3F, - 0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, // 0xC0 - 0x03, 0x07, 0x07, 0x07, 0x07, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x03, 0x07, 0x07, - 0x03, 0x00, 0x00, 0x02, 0x04, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, - 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, - 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, // 0xD0 - 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xDF - 0x00, 0x1C, 0x1C, 0x3E, 0x7F, 0x7F, - 0x00, 0x14, 0x08, 0x14, 0x00, 0x00, - 0x00, 0x1C, 0x1C, 0x3E, 0x7F, 0x7F, - 0x00, 0x22, 0x1C, 0x41, 0x3E, 0x00, - 0x00, 0x00, 0x00, 0x30, 0x18, 0x0C, - 0x06, 0x0C, 0x18, 0x30, 0x00, 0x00, - 0x00, 0x00, 0x06, 0x06, 0x06, 0x0C, - 0x18, 0x30, 0x66, 0x66, 0x66, 0x00, - 0x00, 0x00, 0x00, 0x08, 0x0C, 0x7E, - 0x7F, 0x7E, 0x0C, 0x08, 0x00, 0x00, - 0x00, 0x00, 0x77, 0x77, 0x77, 0x00, - 0x77, 0x77, 0x77, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xE7, 0xA5, 0xFF, 0x24, - 0x24, 0xFF, 0xA5, 0xE7, 0x00, 0x00, - 0x00, 0x00, 0x1C, 0x22, 0xC9, 0xD1, - 0xC9, 0x22, 0x1C, 0x00, 0x00, 0x00, - 0x00, 0x10, 0x02, 0x38, 0xFC, 0xED, - 0xFC, 0x38, 0x02, 0x10, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x3E, 0x4A, 0x4F, - 0x4A, 0x3E, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x40, 0x60, 0x6A, 0x64, - 0x6A, 0x60, 0x40, 0x00, 0x00, 0x00, - 0x00, 0x04, 0x42, 0x69, 0x65, 0x65, - 0x65, 0x69, 0x42, 0x04, 0x00, 0x00, - 0x00, 0x00, 0x1C, 0x14, 0x1C, 0x08, - 0x18, 0x08, 0x18, 0x00, 0x00, 0x00, - 0x00, 0x70, 0xC8, 0xEE, 0xF9, 0x70, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xF8, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, # elif defined(OLED_LOGO_CORNE) - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x80 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xE0, 0xF0, 0xF8, 0xF8, 0x18, 0x00, 0xC0, @@ -804,11 +984,80 @@ static const unsigned char font[] PROGMEM = { 0xC0, 0xE0, 0xE0, 0xE0, 0xE0, 0x00, 0x00, 0xE0, 0xE0, 0xC0, 0xC0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xC0, 0x80, - 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, // 0x90 + 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +# elif defined(OLED_LOGO_LOOSE) + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xC0, 0xE0, 0xF0, 0xF8, + 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0x00, + 0xFC, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, + 0x02, 0xF9, 0x01, 0x01, 0x05, 0x09, + 0x11, 0x22, 0x06, 0xFE, 0xFE, 0xFE, + 0xFE, 0xFE, 0xFE, 0xFE, 0x46, 0x46, + 0x44, 0x44, 0x45, 0x44, 0x29, 0x28, + 0x2A, 0x28, 0x11, 0x13, 0x05, 0x07, + 0x05, 0x07, 0x05, 0x07, 0x05, 0x07, + 0xE5, 0xE7, 0xE5, 0x07, 0x05, 0x07, + 0x05, 0x07, 0x05, 0x07, 0x05, 0x07, + 0x85, 0xC7, 0xE5, 0xE7, 0xE5, 0xE7, + 0xE5, 0xE7, 0xE5, 0xC7, 0x85, 0x07, + 0x85, 0xC7, 0xE5, 0xE7, 0xE5, 0xE7, + 0xE5, 0xE7, 0xE5, 0xC7, 0x85, 0x07, + 0x85, 0xC7, 0xE5, 0xE7, 0xE5, 0xE7, + 0xE5, 0xE7, 0xE5, 0xE7, 0xE5, 0x07, + 0xE5, 0xE7, 0xE5, 0xE7, 0xE5, 0xE7, + 0xE5, 0xE7, 0xE5, 0xE7, 0xE5, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +# elif defined(OLED_LOGO_SKEEB) + 0xC0, 0x20, 0x10, 0x08, 0x04, 0x02, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x03, 0x07, 0x0F, 0x1F, + 0x3F, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x01, + 0xFF, 0xFF, 0x01, 0x01, 0xFF, 0xFF, + 0x01, 0x01, 0xFF, 0xFF, 0x19, 0x19, + 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, + 0x01, 0x01, 0xFF, 0xFF, 0x81, 0x81, + 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, + 0x19, 0x19, 0xFF, 0xFF, 0xF9, 0xF9, + 0xF9, 0xF9, 0x01, 0x01, 0xF9, 0xF9, + 0xF9, 0xF9, 0xFF, 0xFF, 0x99, 0x99, + 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, + 0xF9, 0xF9, 0xFF, 0xFF, 0x19, 0x19, + 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, + 0x67, 0x67, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x3F, + 0x1F, 0x0F, 0x07, 0x03, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x02, 0x04, 0x08, 0x10, 0x20, 0xC0, +# else + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x40, 0x40, 0x40, 0xF0, 0xF8, 0xF8, + 0xFF, 0x38, 0xFF, 0xF8, 0xF8, 0x3F, + 0xF8, 0xF8, 0xFF, 0x38, 0xFF, 0xF8, + 0xF8, 0xF0, 0x40, 0x40, 0x40, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0xC0, 0xC0, 0xC0, 0x80, 0x00, 0x00, + 0xC0, 0xC0, 0x80, 0x00, 0x00, 0x00, + 0x80, 0xC0, 0xC0, 0x00, 0xC0, 0xC0, + 0x00, 0x00, 0x80, 0xC0, 0xC0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0, + 0xC0, 0xC0, 0xC0, 0x00, 0xC0, 0xC0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +#endif + +// First icon section 0xE0, 0xF0, 0xF0, 0xF0, 0xE0, 0xEC, 0xEE, 0xF7, 0xF3, 0x70, 0x20, 0x00, 0x7C, 0x7C, 0x7C, 0x7E, 0x00, 0x7E, @@ -817,10 +1066,57 @@ static const unsigned char font[] PROGMEM = { 0x4F, 0x5B, 0xFE, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0xDC, 0xD7, 0xDE, 0xDE, 0xDE, 0xD7, 0xDC, 0x00, 0xC0, 0x00, + 0x3E, 0x4A, 0x4F, 0x4A, 0x3E, 0x00, + 0x18, 0x3C, 0x7C, 0x3A, 0x7D, 0x24, + 0x14, 0x36, 0x00, 0x36, 0x77, 0x77, + +// middle logo section +# if defined(OLED_LOGO_GMK_BAD) + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, + 0xFF, 0xFF, 0xFF, 0xC1, 0x80, 0x00, + 0x00, 0x38, 0x38, 0xB8, 0xB8, 0xF9, + 0xF9, 0xF8, 0x38, 0x00, 0x00, 0x00, + 0x00, 0xC0, 0xF8, 0xFF, 0xFF, 0x1F, + 0x01, 0x3F, 0xFF, 0xFF, 0xF0, 0xFE, + 0x7F, 0x0F, 0x03, 0xFF, 0xFF, 0xFF, + 0xFF, 0x00, 0x00, 0x00, 0x00, 0x80, + 0xFF, 0xFF, 0xFF, 0x3F, 0x1E, 0x7F, + 0xFF, 0xFF, 0xF3, 0xC1, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0xFF, 0xFF, 0xFF, 0x3F, 0x1C, 0x1C, + 0x9C, 0xFF, 0xFF, 0xF3, 0xE1, 0x00, + 0x00, 0x00, 0x00, 0xF0, 0xFC, 0xFE, + 0xFF, 0x0F, 0x07, 0x07, 0x8E, 0xFF, + 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, + 0x00, 0xF0, 0xFC, 0xFE, 0xFF, 0x8F, + 0x07, 0x07, 0x8E, 0xFF, 0xFF, 0xFF, + 0x3F, 0x00, 0x00, 0x00, 0x00, 0x80, + 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, +# elif defined(OLED_LOGO_HUE_MANITEE) + 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, + 0xFC, 0xF6, 0xF7, 0xEF, 0xFF, 0x87, + 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, + 0x1F, 0x1F, 0x1F, 0xFF, 0xFF, 0xFF, + 0xFF, 0x07, 0x1F, 0x1F, 0x19, 0x15, + 0xF7, 0x16, 0x1A, 0x1B, 0x16, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0C, 0x0C, 0x33, 0x33, + 0x33, 0x33, 0x33, 0x33, 0xC0, 0xC0, + 0x00, 0x00, 0x03, 0x03, 0xFF, 0xFF, + 0x03, 0x03, 0x00, 0x00, 0xC0, 0xC0, + 0x00, 0x00, 0x00, 0xFC, 0xFC, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0xFC, + 0xFC, 0x00, 0x00, 0x00, 0xFC, 0xFC, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0x30, 0x30, 0xCC, 0xCC, + 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +# elif defined(OLED_LOGO_CORNE) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xA0 0x00, 0x00, 0x00, 0xF8, 0xFC, 0xFE, 0xFF, 0xE0, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, @@ -836,250 +1132,57 @@ static const unsigned char font[] PROGMEM = { 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, - 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, // 0xB0 + 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x9D, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x9D, 0xDF, 0xDF, 0xDF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x0F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F, - 0x7F, 0x7F, 0x3F, 0x1E, 0x0C, 0x00, - 0x1F, 0x1F, 0x1F, 0x3F, 0x00, 0x3F, - 0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x00, - 0x30, 0x7B, 0x7F, 0x78, 0x30, 0x20, - 0x20, 0x30, 0x78, 0x7F, 0x3B, 0x00, - 0x03, 0x00, 0x0F, 0x7F, 0x0F, 0x0F, - 0x0F, 0x7F, 0x0F, 0x00, 0x03, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xC0 - 0x00, 0x00, 0x00, 0x03, 0x0F, 0x1F, - 0x3F, 0x3F, 0x3F, 0x3F, 0x1F, 0x1F, - 0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x3F, - 0x3F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F, - 0x7F, 0x7C, 0x78, 0x78, 0x38, 0x1C, - 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x01, 0x03, 0x07, 0x07, - 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, - 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x03, 0x07, 0x07, 0x07, 0x07, - 0x07, 0x07, 0x07, 0x07, 0x03, 0x01, - 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x07, 0x07, 0x07, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, - 0x07, 0x00, 0x00, 0x00, 0x01, 0x03, // 0xD0 - 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, - 0x07, 0x07, 0x03, 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, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +# elif defined(OLED_LOGO_LOOSE) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xDF - 0x00, 0x1C, 0x1C, 0x3E, 0x7F, 0x7F, - 0x00, 0x14, 0x08, 0x14, 0x00, 0x00, - 0x00, 0x1C, 0x1C, 0x3E, 0x7F, 0x7F, - 0x00, 0x22, 0x1C, 0x41, 0x3E, 0x00, - 0x00, 0x00, 0x00, 0x30, 0x18, 0x0C, - 0x06, 0x0C, 0x18, 0x30, 0x00, 0x00, - 0x00, 0x00, 0x06, 0x06, 0x06, 0x0C, - 0x18, 0x30, 0x66, 0x66, 0x66, 0x00, - 0x00, 0x00, 0x00, 0x08, 0x0C, 0x7E, - 0x7F, 0x7E, 0x0C, 0x08, 0x00, 0x00, - 0x00, 0x00, 0x77, 0x77, 0x77, 0x00, - 0x77, 0x77, 0x77, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xE7, 0xA5, 0xFF, 0x24, - 0x24, 0xFF, 0xA5, 0xE7, 0x00, 0x00, - 0x00, 0x00, 0x1C, 0x22, 0xC9, 0xD1, - 0xC9, 0x22, 0x1C, 0x00, 0x00, 0x00, - 0x00, 0x10, 0x02, 0x38, 0xFC, 0xED, - 0xFC, 0x38, 0x02, 0x10, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x3E, 0x4A, 0x4F, - 0x4A, 0x3E, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x40, 0x60, 0x6A, 0x64, - 0x6A, 0x60, 0x40, 0x00, 0x00, 0x00, - 0x00, 0x04, 0x42, 0x69, 0x65, 0x65, - 0x65, 0x69, 0x42, 0x04, 0x00, 0x00, - 0x00, 0x00, 0x1C, 0x14, 0x1C, 0x08, - 0x18, 0x08, 0x18, 0x00, 0x00, 0x00, - 0x00, 0x70, 0xC8, 0xEE, 0xF9, 0x70, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - -# elif defined(OLED_LOGO_GOTHAM) // see /keyboards/crkbd/keymaps/gotham/oled.c - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x80 - 0x00, 0x00, 0xC0, 0x60, 0x30, 0x18, - 0xF8, 0x18, 0x00, 0xC0, 0x70, 0x1C, - 0x06, 0x03, 0x01, 0x01, 0x01, 0x01, - 0x01, 0xC3, 0x7E, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x08, 0x08, 0x08, 0x00, - 0x00, 0x08, 0x08, 0x08, 0x00, 0x1C, - 0x22, 0x41, 0x41, 0x41, 0x22, 0x1C, - 0x00, 0x08, 0x08, 0x08, 0x00, 0x00, - 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x20, 0x20, 0xF8, - 0x0C, 0x04, 0xE7, 0xE4, 0xE4, 0x07, - 0x04, 0xE4, 0xE7, 0xE4, 0x04, 0x07, - 0xE4, 0xE4, 0xE7, 0x04, 0x0C, 0xF8, - 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x1C, 0x1C, 0x3E, 0x7F, 0x7F, - 0x00, 0x14, 0x08, 0x14, 0x00, 0x00, // 0x90 - 0x00, 0x1C, 0x1C, 0x3E, 0x7F, 0x7F, - 0x00, 0x22, 0x1C, 0x41, 0x3E, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, - 0x18, 0x0C, 0x06, 0x0C, 0x18, 0x30, - 0x77, 0x77, 0x77, 0x00, 0x77, 0x77, - 0x77, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x3E, 0x4A, 0x4F, - 0x4A, 0x3E, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, - 0x00, 0x00, 0x08, 0x00, 0x00, 0x60, - 0x70, 0x3E, 0x1F, 0x19, 0x18, 0x0C, - 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xF8, 0x0C, 0x06, 0x07, 0xFC, // 0xA0 - 0x00, 0xFF, 0x01, 0x00, 0x00, 0x00, - 0xFF, 0x80, 0xFF, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xF0, 0x1C, - 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x1C, 0x22, 0x41, 0x00, - 0x00, 0x1C, 0x22, 0x00, 0x00, 0x1C, - 0x3E, 0x7F, 0x63, 0x41, 0x22, 0x1C, - 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x49, 0x49, 0xFF, - 0x00, 0x00, 0x0F, 0x1F, 0x3F, 0x38, - 0x30, 0xFF, 0xFF, 0xFF, 0x30, 0x38, - 0x3F, 0x1F, 0x0F, 0x00, 0x00, 0xFF, - 0x49, 0x49, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x40, 0x60, 0x6A, 0x64, - 0x6A, 0x60, 0x40, 0x00, 0x00, 0x00, // 0xB0 - 0x00, 0x04, 0x42, 0x69, 0x65, 0x65, - 0x65, 0x69, 0x42, 0x04, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x06, 0x06, 0x06, - 0x0C, 0x18, 0x30, 0x66, 0x66, 0x66, - 0x00, 0x00, 0xFC, 0x24, 0x24, 0xFC, - 0x24, 0x24, 0xFC, 0x24, 0x24, 0xFC, - 0x24, 0x24, 0xFC, 0x24, 0x24, 0xFC, - 0x24, 0x24, 0xFC, 0x24, 0x24, 0xFC, - 0x24, 0x24, 0xFC, 0x00, 0x00, 0x00, - 0xF0, 0x90, 0x90, 0xF0, 0x90, 0x90, - 0xF0, 0x98, 0x9C, 0xF2, 0x22, 0x21, - 0xE1, 0x01, 0x01, 0x01, 0xF1, 0x91, - 0x91, 0xFA, 0x4C, 0x4C, 0xF8, 0x48, - 0x48, 0xF8, 0x48, 0x48, 0xF8, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x03, 0x0E, 0x18, 0x30, 0x21, // 0xC0 - 0x21, 0x31, 0x18, 0x10, 0x30, 0x20, - 0x60, 0x41, 0x60, 0x20, 0x30, 0x18, - 0x30, 0x60, 0x40, 0x40, 0x47, 0x4C, - 0x48, 0x68, 0x38, 0x1C, 0x0F, 0x00, - 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, - 0x00, 0x00, 0x08, 0x00, 0x00, 0x1C, - 0x22, 0x41, 0x63, 0x7F, 0x3E, 0x1C, - 0x00, 0x00, 0x22, 0x1C, 0x00, 0x00, - 0x41, 0x22, 0x1C, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x02, 0x02, 0x0F, - 0x18, 0x10, 0x70, 0x10, 0x10, 0x70, - 0x10, 0x13, 0x73, 0x13, 0x10, 0x70, - 0x10, 0x10, 0x70, 0x10, 0x18, 0x0F, - 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x1C, 0x22, 0xC9, 0xD1, - 0xC9, 0x22, 0x1C, 0x00, 0x00, 0x00, // 0xD0 - 0x00, 0x10, 0x02, 0x38, 0xFC, 0xED, - 0xFC, 0x38, 0x02, 0x10, 0x00, 0x00, - 0x08, 0x0C, 0x7E, 0x7F, 0x7E, 0x0C, - 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x0F, 0x09, 0x09, 0x09, - 0x0F, 0x09, 0x09, 0x0F, 0x09, 0x09, + 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xE3, 0xC1, 0xC1, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x00, 0xFF, 0x00, 0x00, 0x80, 0x00, + 0x1C, 0x3E, 0x7F, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x22, 0x22, + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, + 0x22, 0x22, 0x22, 0x14, 0x14, 0x14, + 0x14, 0x14, 0x08, 0x08, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0xBE, + 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0x81, 0xBD, + 0x81, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, + 0x8F, 0x9F, 0x9C, 0x9C, 0x9C, 0x9C, + 0x9C, 0x9C, 0x9C, 0xFC, 0xF8, 0x00, + 0xFF, 0xFF, 0xFF, 0x9C, 0x9C, 0x9C, + 0x9C, 0x9C, 0x9C, 0x80, 0x80, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +# elif defined(OLED_LOGO_SKEEB) + 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, + 0x0F, 0x0F, 0x0F, 0x0F, 0x08, 0x08, + 0x0F, 0x0F, 0x0E, 0x0E, 0x0F, 0x0F, + 0x08, 0x08, 0x0F, 0x0F, 0x08, 0x08, + 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, + 0x08, 0x08, 0x0F, 0x0F, 0x09, 0x09, + 0x09, 0x09, 0xF9, 0xF9, 0x09, 0x09, + 0x08, 0x08, 0x0F, 0x0F, 0x0F, 0x0F, + 0x0F, 0x0F, 0x08, 0x08, 0x0F, 0x0F, + 0x0F, 0x0F, 0x0F, 0x0F, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, - 0x09, 0x0F, 0x09, 0x09, 0x0F, 0x09, - 0x09, 0x09, 0x0F, 0x00, 0x00, 0x00, - 0x07, 0x04, 0x04, 0x07, 0x04, 0x04, - 0x07, 0x04, 0x04, 0x0F, 0x09, 0x09, - 0x0F, 0x00, 0x00, 0x00, 0x07, 0x04, - 0x04, 0x07, 0x02, 0x02, 0x03, 0x02, - 0x02, 0x03, 0x02, 0x02, 0x03, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xDF - 0x00, 0x1C, 0x1C, 0x3E, 0x7F, 0x7F, - 0x00, 0x14, 0x08, 0x14, 0x00, 0x00, - 0x00, 0x1C, 0x1C, 0x3E, 0x7F, 0x7F, - 0x00, 0x22, 0x1C, 0x41, 0x3E, 0x00, - 0x00, 0x00, 0x00, 0x30, 0x18, 0x0C, - 0x06, 0x0C, 0x18, 0x30, 0x00, 0x00, - 0x00, 0x00, 0x06, 0x06, 0x06, 0x0C, - 0x18, 0x30, 0x66, 0x66, 0x66, 0x00, - 0x00, 0x00, 0x00, 0x08, 0x0C, 0x7E, - 0x7F, 0x7E, 0x0C, 0x08, 0x00, 0x00, - 0x00, 0x00, 0x77, 0x77, 0x77, 0x00, - 0x77, 0x77, 0x77, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xE7, 0xA5, 0xFF, 0x24, - 0x24, 0xFF, 0xA5, 0xE7, 0x00, 0x00, - 0x00, 0x00, 0x1C, 0x22, 0xC9, 0xD1, - 0xC9, 0x22, 0x1C, 0x00, 0x00, 0x00, - 0x00, 0x10, 0x02, 0x38, 0xFC, 0xED, - 0xFC, 0x38, 0x02, 0x10, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x3E, 0x4A, 0x4F, - 0x4A, 0x3E, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x40, 0x60, 0x6A, 0x64, - 0x6A, 0x60, 0x40, 0x00, 0x00, 0x00, - 0x00, 0x04, 0x42, 0x69, 0x65, 0x65, - 0x65, 0x69, 0x42, 0x04, 0x00, 0x00, - 0x00, 0x00, 0x1C, 0x14, 0x1C, 0x08, - 0x18, 0x08, 0x18, 0x00, 0x00, 0x00, - 0x00, 0x70, 0xC8, 0xEE, 0xF9, 0x70, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x09, 0x09, 0x0F, 0x0F, 0x08, 0x08, + 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, + 0x08, 0x08, 0x0F, 0x0F, 0x0F, 0x0F, + 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, # else - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x80 - 0x40, 0x40, 0x40, 0xF0, 0xF8, 0xF8, - 0xFF, 0x38, 0xFF, 0xF8, 0xF8, 0x3F, - 0xF8, 0xF8, 0xFF, 0x38, 0xFF, 0xF8, - 0xF8, 0xF0, 0x40, 0x40, 0x40, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, - 0xC0, 0xC0, 0xC0, 0x80, 0x00, 0x00, - 0xC0, 0xC0, 0x80, 0x00, 0x00, 0x00, - 0x80, 0xC0, 0xC0, 0x00, 0xC0, 0xC0, - 0x00, 0x00, 0x80, 0xC0, 0xC0, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0, - 0xC0, 0xC0, 0xC0, 0x00, 0xC0, 0xC0, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x90 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xE0, 0xF0, 0xF0, 0xF0, 0xE0, 0xEC, - 0xEE, 0xF7, 0xF3, 0x70, 0x20, 0x00, - 0x7C, 0x7C, 0x7C, 0x7E, 0x00, 0x7E, - 0x7E, 0x7E, 0x7F, 0x7F, 0x7F, 0x00, - 0x00, 0x80, 0xC0, 0xE0, 0x7E, 0x5B, - 0x4F, 0x5B, 0xFE, 0xC0, 0x00, 0x00, - 0xC0, 0x00, 0xDC, 0xD7, 0xDE, 0xDE, - 0xDE, 0xD7, 0xDC, 0x00, 0xC0, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xA0 0x49, 0x49, 0x49, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0xDF, 0xBF, 0xBF, 0x00, 0xBF, 0xBF, 0xDF, 0xE0, 0xFF, 0xFF, @@ -1095,11 +1198,14 @@ static const unsigned char font[] PROGMEM = { 0x7F, 0x7E, 0x03, 0x03, 0x7E, 0x7E, 0x03, 0x03, 0x7F, 0x7E, 0x00, 0x0F, 0x3E, 0x70, 0x3C, 0x06, 0x3C, 0x70, - 0x3E, 0x0F, 0x00, 0x32, 0x7B, 0x49, // 0xB0 + 0x3E, 0x0F, 0x00, 0x32, 0x7B, 0x49, 0x49, 0x3F, 0x7E, 0x00, 0x7F, 0x7E, 0x03, 0x03, 0x00, 0x1E, 0x3F, 0x69, 0x69, 0x6F, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +# endif + +// second icon section 0x0F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x3F, 0x1E, 0x0C, 0x00, 0x1F, 0x1F, 0x1F, 0x3F, 0x00, 0x3F, @@ -1108,26 +1214,113 @@ static const unsigned char font[] PROGMEM = { 0x20, 0x30, 0x78, 0x7F, 0x3B, 0x00, 0x03, 0x00, 0x0F, 0x7F, 0x0F, 0x0F, 0x0F, 0x7F, 0x0F, 0x00, 0x03, 0x00, + 0x00, 0x44, 0x28, 0xFF, 0x5A, 0x24, + 0xF0, 0xFE, 0xF1, 0x91, 0xF6, 0xF0, + 0xF0, 0xFC, 0xF2, 0x92, 0xFC, 0xF0, + +// bottom logo section +# if defined(OLED_LOGO_GMK_BAD) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x03, 0x03, 0x03, 0x07, + 0x07, 0x07, 0x07, 0x03, 0x03, 0x03, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x06, 0x07, 0x07, 0x07, 0x01, 0x00, + 0x00, 0x00, 0x07, 0x07, 0x07, 0x01, + 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, + 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x03, 0x07, 0x07, 0x07, 0x06, + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x03, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, + 0x07, 0x07, 0x07, 0x03, 0x07, 0x07, + 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x03, 0x07, 0x07, 0x07, + 0x07, 0x03, 0x07, 0x07, 0x07, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, + 0x07, 0x07, 0x01, 0x00, 0x00, 0x00, +# elif defined(OLED_LOGO_HUE_MANITEE) + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x03, 0x07, 0x07, 0x07, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x07, 0x07, + 0x03, 0x00, 0x00, 0x02, 0x04, 0x00, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xC0 - 0x01, 0x01, 0x01, 0x07, 0x0F, 0x0F, - 0x7F, 0x0F, 0x7F, 0x0F, 0x0F, 0x7E, - 0x0F, 0x0F, 0x7F, 0x0F, 0x7F, 0x0F, - 0x0F, 0x07, 0x01, 0x01, 0x01, 0x00, + 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, + 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +# elif defined(OLED_LOGO_CORNE) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x0F, 0x1F, + 0x3F, 0x3F, 0x3F, 0x3F, 0x1F, 0x1F, + 0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x3F, + 0x3F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F, + 0x7F, 0x7C, 0x78, 0x78, 0x38, 0x1C, + 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x03, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x03, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x03, 0x01, + 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x07, 0x07, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, + 0x07, 0x00, 0x00, 0x00, 0x01, 0x03, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x03, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +# elif defined(OLED_LOGO_LOOSE) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x03, 0x07, 0x0F, + 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x00, + 0x1F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, + 0x20, 0x47, 0x48, 0x50, 0x40, 0x41, + 0x42, 0x24, 0x30, 0x3F, 0x3F, 0x3F, + 0x3F, 0x3F, 0x3F, 0x3F, 0x31, 0x31, + 0x11, 0x51, 0x11, 0x11, 0x4A, 0x0A, + 0x2A, 0x0A, 0x44, 0x64, 0x50, 0x70, + 0x50, 0x70, 0x50, 0x70, 0x50, 0x70, + 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, + 0x53, 0x73, 0x53, 0x73, 0x53, 0x70, + 0x50, 0x71, 0x53, 0x73, 0x53, 0x73, + 0x53, 0x73, 0x53, 0x71, 0x50, 0x70, + 0x50, 0x71, 0x53, 0x73, 0x53, 0x73, + 0x53, 0x73, 0x53, 0x71, 0x50, 0x70, + 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, + 0x53, 0x73, 0x53, 0x73, 0x51, 0x70, + 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, + 0x53, 0x73, 0x53, 0x73, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xD0 +# elif defined(OLED_LOGO_SKEEB) + 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0x08, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x08, 0x08, 0x08, 0x08, 0xFF, + 0x08, 0x08, 0x0F, 0x0F, 0x08, 0x08, + 0x03, 0x04, 0x08, 0x10, 0x20, 0x40, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x40, 0x20, 0x10, 0x08, 0x04, 0x03, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, + 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + 0x80, 0xC0, 0xE0, 0xF0, 0xF8, 0xF8, + 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, + 0xF8, 0xF8, 0xF0, 0xE0, 0xC0, 0x80, + 0x01, 0x02, 0xFC, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -1135,6 +1328,16 @@ static const unsigned char font[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, +#else + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x01, 0x01, 0x07, 0x0F, 0x0F, + 0x7F, 0x0F, 0x7F, 0x0F, 0x0F, 0x7E, + 0x0F, 0x0F, 0x7F, 0x0F, 0x7F, 0x0F, + 0x0F, 0x07, 0x01, 0x01, 0x01, 0x00, + 0x00, 0x00, 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, 0x00, @@ -1142,7 +1345,28 @@ static const unsigned char font[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xDF + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +#endif + +// third icon section + 0x1F, 0x05, 0x00, 0x02, 0x1F, 0x00, + 0x1F, 0x05, 0x00, 0x1D, 0x17, 0x00, + 0x1F, 0x05, 0x00, 0x15, 0x1F, 0x00, + 0x1F, 0x05, 0x00, 0x07, 0x1C, 0x00, + 0x1F, 0x05, 0x00, 0x17, 0x1D, 0x00, + 0x1F, 0x05, 0x00, 0x1F, 0x1D, 0x00, + 0x1F, 0x05, 0x00, 0x01, 0x1F, 0x00, + 0x1F, 0x05, 0x00, 0x1F, 0x1F, 0x00, + 0x1F, 0x05, 0x00, 0x07, 0x1F, 0x00, + 0x1F, 0x05, 0x00, 0x70, 0x77, 0x00, + 0x1F, 0x05, 0x00, 0x00, 0x77, 0x00, + +// fourth icon section 0x00, 0x1C, 0x1C, 0x3E, 0x7F, 0x7F, 0x00, 0x14, 0x08, 0x14, 0x00, 0x00, 0x00, 0x1C, 0x1C, 0x3E, 0x7F, 0x7F, @@ -1170,13 +1394,11 @@ static const unsigned char font[] PROGMEM = { 0x00, 0x00, 0x1C, 0x14, 0x1C, 0x08, 0x18, 0x08, 0x18, 0x00, 0x00, 0x00, 0x00, 0x70, 0xC8, 0xEE, 0xF9, 0x70, + 0x1F, 0x05, 0x00, 0x10, 0x77, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - -# endif }; // clang-format on #endif diff --git a/users/drashna/oled_stuff.c b/users/drashna/oled_stuff.c index 0bdd0212bea..6413f5e1c75 100644 --- a/users/drashna/oled_stuff.c +++ b/users/drashna/oled_stuff.c @@ -16,6 +16,8 @@ #include "drashna.h" +extern bool host_driver_disabled; + #ifndef KEYLOGGER_LENGTH // # ifdef OLED_DISPLAY_128X64 # define KEYLOGGER_LENGTH ((uint8_t)(OLED_DISPLAY_HEIGHT / OLED_FONT_WIDTH)) @@ -29,24 +31,24 @@ static char keylog_str[KEYLOGGER_LENGTH + 1] = {0}; static uint16_t log_timer = 0; // clang-format off -static const char PROGMEM code_to_name[0xFF] = { +static const char PROGMEM code_to_name[256] = { // 0 1 2 3 4 5 6 7 8 9 A B c D E F ' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', // 0x 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '1', '2', // 1x '3', '4', '5', '6', '7', '8', '9', '0', 20, 19, 27, 26, 22, '-', '=', '[', // 2x - ']','\\', '#', ';','\'', '`', ',', '.', '/', 128, ' ', ' ', ' ', ' ', ' ', ' ', // 3x - ' ', ' ', ' ', ' ', ' ', ' ', 'P', 'S', ' ', ' ', ' ', ' ', 16, ' ', ' ', ' ', // 4x - ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 5x - ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 6x + ']','\\', '#', ';','\'', '`', ',', '.', '/', 128,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA, // 3x + 0xDB,0xDC,0xDD,0xDE,0XDF,0xFB,'P', 'S', 19, ' ', 17, 30, 16, 16, 31, 26, // 4x + 27, 25, 24, 'N', '/', '*', '-', '+', 23, '1', '2', '3', '4', '5', '6', '7', // 5x + '8', '9', '0', '.','\\', 'A', 0, '=', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 6x ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 7x ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 8x ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 9x - ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // Ax + ' ', ' ', ' ', ' ', ' ', 0, ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // Ax ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // Bx ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // Cx ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // Dx - 'C', 'S', 'A', 'C', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // Ex - ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' // Fx + 'C', 'S', 'A', 'C', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 24, 26, 24, // Ex + 25,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, 24, 25, 27, 26, ' ', ' ', ' ' // Fx }; // clang-format on @@ -62,6 +64,9 @@ void add_keylog(uint16_t keycode, keyrecord_t *record) { return; } } + if (keycode > 0xFF) { + return; + } for (uint8_t i = 1; i < KEYLOGGER_LENGTH; i++) { keylog_str[i - 1] = keylog_str[i]; @@ -145,8 +150,8 @@ void render_keylock_status(uint8_t led_usb_state) { oled_write_P(PSTR(OLED_RENDER_LOCK_NUML), led_usb_state & (1 << USB_LED_NUM_LOCK)); oled_write_P(PSTR(" "), false); oled_write_P(PSTR(OLED_RENDER_LOCK_CAPS), led_usb_state & (1 << USB_LED_CAPS_LOCK)); - oled_write_P(PSTR(" "), false); - oled_write_P(PSTR(OLED_RENDER_LOCK_SCLK), led_usb_state & (1 << USB_LED_SCROLL_LOCK)); +// oled_write_P(PSTR(" "), false); +// oled_write_P(PSTR(OLED_RENDER_LOCK_SCLK), led_usb_state & (1 << USB_LED_SCROLL_LOCK)); } void render_matrix_scan_rate(void) { @@ -250,6 +255,17 @@ extern bool tap_toggling; #endif void render_user_status(void) { +#ifdef AUDIO_ENABLE + bool is_audio_on = false, is_clicky_on = false; +# ifdef SPLIT_KEYBOARD + + is_audio_on = user_state.audio_enable; + is_clicky_on = user_state.audio_clicky_enable; +# else + is_audio_on = is_audio_on(); + is_clicky_on = is_clicky_on(); +# endif +#endif oled_write_P(PSTR(OLED_RENDER_USER_NAME), false); #if !defined(OLED_DISPLAY_128X64) oled_write_P(PSTR(" "), false); @@ -265,11 +281,11 @@ void render_user_status(void) { #endif #ifdef AUDIO_ENABLE static const char PROGMEM audio_status[2][3] = {{0xE0, 0xE1, 0}, {0xE2, 0xE3, 0}}; - oled_write_P(audio_status[is_audio_on()], false); + oled_write_P(audio_status[is_audio_on], false); # ifdef AUDIO_CLICKY static const char PROGMEM audio_clicky_status[2][3] = {{0xF4, 0xF5, 0}, {0xF6, 0xF7, 0}}; - oled_write_P(audio_clicky_status[is_clicky_on() && is_audio_on()], false); + oled_write_P(audio_clicky_status[is_clicky_on && is_audio_on], false); # if !defined(OLED_DISPLAY_128X64) oled_write_P(PSTR(" "), false); # endif @@ -278,12 +294,22 @@ void render_user_status(void) { static const char PROGMEM rgb_layer_status[2][3] = {{0xEE, 0xEF, 0}, {0xF0, 0xF1, 0}}; oled_write_P(rgb_layer_status[userspace_config.rgb_layer_change], false); - static const char PROGMEM nukem_good[2][3] = {{0xF8, 0xF9, 0}, {0xF6, 0xF7, 0}}; - oled_write_P(nukem_good[0], userspace_config.nuke_switch); + static const char PROGMEM cat_mode[2][3] = {{0xF8, 0xF9, 0}, {0xF6, 0xF7, 0}}; + oled_write_P(cat_mode[0], host_driver_disabled); #if defined(UNICODE_ENABLE) static const char PROGMEM uc_mod_status[5][3] = {{0xEA, 0xEB, 0}, {0xEC, 0xED, 0}}; oled_write_P(uc_mod_status[get_unicode_input_mode() == UC_MAC], false); #endif + if (userspace_config.nuke_switch) { +#if !defined(OLED_DISPLAY_128X64) + oled_write_P(PSTR(" "), false); +#endif + static const char PROGMEM nukem_good[2] = {0xFA, 0}; + oled_write_P(nukem_good, false); +#if !defined(OLED_DISPLAY_128X64) + oled_advance_page(true); +#endif + } #if defined(OLED_DISPLAY_128X64) oled_advance_page(true); #endif @@ -370,7 +396,7 @@ void render_status_secondary(void) { /* Show Keyboard Layout */ render_layer_state(); render_mod_status(get_mods() | get_oneshot_mods()); -#if !defined(OLED_DISPLAY_128X64) && defined(WPM_ENABLE) +#if !defined(OLED_DISPLAY_128X64) && defined(WPM_ENABLE) && !defined(CONVERT_TO_PROTON_C) render_wpm(2); #endif // render_keylock_status(host_keyboard_leds()); diff --git a/users/drashna/process_records.c b/users/drashna/process_records.c index 900b6da15e8..c16c70c0504 100644 --- a/users/drashna/process_records.c +++ b/users/drashna/process_records.c @@ -18,7 +18,7 @@ #include "version.h" uint16_t copy_paste_timer; - +bool host_driver_disabled = false; // Defines actions tor my global custom keycodes. Defined in drashna.h file // Then runs the _keymap's record handier if not processed here @@ -198,7 +198,24 @@ bool process_record_user(uint16_t keycode, keyrecord_t *re eeconfig_update_user(userspace_config.raw); } } + break; #endif + case KEYLOCK: { + static host_driver_t *host_driver = 0; + + if (record->event.pressed) { + if (host_get_driver()) { + host_driver = host_get_driver(); + clear_keyboard(); + host_set_driver(0); + host_driver_disabled = true; + } else { + host_set_driver(host_driver); + host_driver_disabled = false; + } + } + break; + } } return true; } diff --git a/users/drashna/process_records.h b/users/drashna/process_records.h index 231480ac590..897d7bbcc90 100644 --- a/users/drashna/process_records.h +++ b/users/drashna/process_records.h @@ -46,6 +46,7 @@ enum userspace_custom_keycodes { UC_TABL, // ┬─┬ノ( º _ ºノ) UC_SHRG, // ¯\_(ツ)_/¯ UC_DISA, // ಠ_ಠ + KEYLOCK, // Locks keyboard by unmounting driver NEW_SAFE_RANGE // use "NEWPLACEHOLDER for keymap specific codes }; diff --git a/users/drashna/rules.mk b/users/drashna/rules.mk index dbacae1d561..e9911979c74 100644 --- a/users/drashna/rules.mk +++ b/users/drashna/rules.mk @@ -1,5 +1,5 @@ -SRC += drashna.c \ - process_records.c +SRC += $(USER_PATH)/drashna.c \ + $(USER_PATH)/process_records.c ifneq ($(PLATFORM),CHIBIOS) ifneq ($(strip $(LTO_SUPPORTED)), no) @@ -11,7 +11,7 @@ GRAVE_ESC_ENABLE = no ifneq ($(strip $(NO_SECRETS)), yes) ifneq ("$(wildcard $(USER_PATH)/secrets.c)","") - SRC += secrets.c + SRC += $(USER_PATH)/secrets.c endif ifeq ($(strip $(NO_SECRETS)), lite) OPT_DEFS += -DNO_SECRETS @@ -21,14 +21,14 @@ endif CUSTOM_TAP_DANCE ?= yes ifeq ($(strip $(TAP_DANCE_ENABLE)), yes) ifeq ($(strip $(TAP_DANCE_ENABLE)), yes) - SRC += tap_dances.c + SRC += $(USER_PATH)/tap_dances.c endif endif CUSTOM_RGBLIGHT ?= yes ifeq ($(strip $(RGBLIGHT_ENABLE)), yes) ifeq ($(strip $(CUSTOM_RGBLIGHT)), yes) - SRC += rgb_stuff.c + SRC += $(USER_PATH)/rgb_stuff.c ifeq ($(strip $(RGBLIGHT_NOEEPROM)), yes) OPT_DEFS += -DRGBLIGHT_NOEEPROM endif @@ -41,7 +41,7 @@ endif CUSTOM_RGB_MATRIX ?= yes ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes) ifeq ($(strip $(CUSTOM_RGB_MATRIX)), yes) - SRC += rgb_matrix_stuff.c + SRC += $(USER_PATH)/rgb_matrix_stuff.c endif endif @@ -66,7 +66,7 @@ endif CUSTOM_OLED_DRIVER ?= yes ifeq ($(strip $(OLED_ENABLE)), yes) ifeq ($(strip $(CUSTOM_OLED_DRIVER)), yes) - SRC += oled_stuff.c + SRC += $(USER_PATH)/oled_stuff.c OPT_DEFS += -DCUSTOM_OLED_DRIVER_CODE endif endif @@ -81,7 +81,7 @@ endif CUSTOM_SPLIT_TRANSPORT_SYNC ?= yes ifeq ($(strip $(CUSTOM_SPLIT_TRANSPORT_SYNC)), yes) ifeq ($(strip $(SPLIT_KEYBOARD)), yes) - QUANTUM_LIB_SRC += transport_sync.c + QUANTUM_LIB_SRC += $(USER_PATH)/transport_sync.c OPT_DEFS += -DCUSTOM_SPLIT_TRANSPORT_SYNC endif endif diff --git a/users/drashna/transport_sync.c b/users/drashna/transport_sync.c index fdd596c04c1..daa14bbef76 100644 --- a/users/drashna/transport_sync.c +++ b/users/drashna/transport_sync.c @@ -23,7 +23,8 @@ extern unicode_config_t unicode_config; #endif #ifdef AUDIO_ENABLE # include "audio.h" -extern bool delayed_tasks_run; +extern audio_config_t audio_config; +extern bool delayed_tasks_run; #endif #if defined(POINTING_DEVICE_ENABLE) && defined(KEYBOARD_handwired_tractyl_manuform) extern bool tap_toggling; @@ -32,23 +33,16 @@ extern bool tap_toggling; extern bool swap_hands; #endif extern userspace_config_t userspace_config; - -__attribute__((aligned(8))) typedef struct { - bool audio_enable; - bool audio_clicky_enable; - bool tap_toggling; - bool unicode_mode; - bool swap_hands; -} user_runtime_config_t; +extern bool host_driver_disabled; uint16_t transport_keymap_config = 0; -uint32_t transport_userspace_config = 0; +uint32_t transport_userspace_config = 0, transport_user_state = 0; user_runtime_config_t user_state; void user_state_sync(uint8_t initiator2target_buffer_size, const void* initiator2target_buffer, uint8_t target2initiator_buffer_size, void* target2initiator_buffer) { - if (initiator2target_buffer_size == sizeof(user_state)) { - memcpy(&user_state, initiator2target_buffer, initiator2target_buffer_size); + if (initiator2target_buffer_size == sizeof(transport_user_state)) { + memcpy(&transport_user_state, initiator2target_buffer, initiator2target_buffer_size); } } void user_keymap_sync(uint8_t initiator2target_buffer_size, const void* initiator2target_buffer, uint8_t target2initiator_buffer_size, void* target2initiator_buffer) { @@ -80,56 +74,43 @@ void user_transport_update(void) { #if defined(POINTING_DEVICE_ENABLE) && defined(KEYBOARD_handwired_tractyl_manuform) user_state.tap_toggling = tap_toggling; #endif +#ifdef UNICODE_ENABLE + user_state.unicode_mode = unicode_config.input_mode; +#endif #ifdef SWAP_HANDS_ENABLE user_state.swap_hands = swap_hands; #endif + user_state.host_driver_disabled = host_driver_disabled; + transport_user_state = user_state.raw; } else { keymap_config.raw = transport_keymap_config; userspace_config.raw = transport_userspace_config; + user_state.raw = transport_user_state; #ifdef UNICODE_ENABLE unicode_config.input_mode = user_state.unicode_mode; #endif -#ifdef AUDIO_ENABLE - if (delayed_tasks_run) { - if (user_state.audio_enable != is_audio_on()) { - if (user_state.audio_enable) { - audio_on(); - } else { - audio_off(); - } - } - if (user_state.audio_clicky_enable != is_clicky_on()) { - if (user_state.audio_clicky_enable) { - clicky_on(); - } else { - clicky_off(); - } - } - } -#endif #if defined(POINTING_DEVICE_ENABLE) && defined(KEYBOARD_handwired_tractyl_manuform) tap_toggling = user_state.tap_toggling; #endif #ifdef SWAP_HANDS_ENABLE swap_hands = user_state.swap_hands; #endif + host_driver_disabled = user_state.host_driver_disabled; } } void user_transport_sync(void) { if (is_keyboard_master()) { // Keep track of the last state, so that we can tell if we need to propagate to slave - static user_runtime_config_t last_user_state; static uint16_t last_keymap = 0; - static uint32_t last_config = 0; - static uint32_t last_sync[3]; + static uint32_t last_config = 0, last_sync[3], last_user_state = 0; bool needs_sync = false; // Check if the state values are different - if (memcmp(&user_state, &last_user_state, sizeof(user_state))) { + if (memcmp(&transport_user_state, &last_user_state, sizeof(transport_user_state))) { needs_sync = true; - memcpy(&last_user_state, &user_state, sizeof(user_state)); + memcpy(&last_user_state, &transport_user_state, sizeof(transport_user_state)); } // Send to slave every 500ms regardless of state change if (timer_elapsed32(last_sync[0]) > 250) { diff --git a/users/drashna/transport_sync.h b/users/drashna/transport_sync.h index e2b3eae76bb..70b6ea522be 100644 --- a/users/drashna/transport_sync.h +++ b/users/drashna/transport_sync.h @@ -19,4 +19,18 @@ #include "drashna.h" +typedef union { + uint32_t raw; + struct { + bool audio_enable :1; + bool audio_clicky_enable :1; + bool tap_toggling :1; + bool unicode_mode :1; + bool swap_hands :1; + bool host_driver_disabled :1; + }; +} user_runtime_config_t; + +extern user_runtime_config_t user_state; + void keyboard_post_init_transport_sync(void); diff --git a/users/drashna/wrappers.h b/users/drashna/wrappers.h index 8ac252926e1..c1ae8155795 100644 --- a/users/drashna/wrappers.h +++ b/users/drashna/wrappers.h @@ -167,13 +167,76 @@ NOTE: These are all the same length. If you do a search/replace #define _________________HALMAK_R3_________________ KC_G, KC_P, KC_X, KC_K, KC_Y -#define _________________HALMAK_L1_________________ KC_W, KC_L, KC_R, KC_B, KC_Z -#define _________________HALMAK_L2_________________ KC_S, KC_H, KC_N, KC_T, KC_COMM -#define _________________HALMAK_L3_________________ KC_F, KC_M, KC_V, KC_V, KC_SLASH +#define __________________ISRT_L1__________________ KC_W, KC_C, KC_L, KC_M, KC_K +#define __________________ISRT_L2__________________ KC_I, KC_S, KC_R, KC_T, KC_G +#define __________________ISRT_L3__________________ KC_Q, KC_V, KC_W, KC_D, KC_J -#define _________________HALMAK_R1_________________ KC_SCLN, KC_Q, KC_U, KC_D, KC_J -#define _________________HALMAK_R2_________________ KC_DOT, KC_A, KC_E, KC_O, KC_I, KC_QUOTE -#define _________________HALMAK_R3_________________ KC_G, KC_P, KC_X, KC_K, KC_Y +#define __________________ISRT_R1__________________ KC_Z, KC_F, KC_U, KC_COMM, KC_QUOTE +#define __________________ISRT_R2__________________ KC_P, KC_N, KC_E, KC_A, KC_O, KC_SCLN +#define __________________ISRT_R3__________________ KC_B, KC_H, KC_SLSH, KC_DOT, KC_X + + +#define __________________SOUL_L1__________________ KC_Q, KC_W, KC_L, KC_D, KC_P +#define __________________SOUL_L2__________________ KC_A, KC_S, KC_R, KC_T, KC_G +#define __________________SOUL_L3__________________ KC_Z, KC_X, KC_C, KC_V, KC_J + +#define __________________SOUL_R1__________________ KC_K, KC_M, KC_U, KC_Y, KC_SCLN +#define __________________SOUL_R2__________________ KC_F, KC_N, KC_E, KC_I, KC_O, KC_QUOTE +#define __________________SOUL_R3__________________ KC_B, KC_H, KC_COMM, KC_DOT, KC_SLSH + + +#define __________________NIRO_L1__________________ KC_Q, KC_W, KC_U, KC_D, KC_P +#define __________________NIRO_L2__________________ KC_A, KC_S, KC_E, KC_T, KC_G +#define __________________NIRO_L3__________________ KC_Z, KC_X, KC_C, KC_V, KC_B + +#define __________________NIRO_R1__________________ KC_J, KC_F, KC_Y, KC_L, KC_SCLN +#define __________________NIRO_R2__________________ KC_H, KC_N, KC_I, KC_R, KC_O, KC_QUOTE +#define __________________NIRO_R3__________________ KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH + + +#define _________________ASSET_L1__________________ KC_Q, KC_W, KC_J, KC_F, KC_G +#define _________________ASSET_L2__________________ KC_A, KC_S, KC_E, KC_T, KC_D +#define _________________ASSET_L3__________________ KC_Z, KC_X, KC_C, KC_V, KC_B + +#define _________________ASSET_R1__________________ KC_Y, KC_P, KC_U, KC_L, KC_SCLN +#define _________________ASSET_R2__________________ KC_H, KC_N, KC_I, KC_O, KC_R, KC_QUOTE +#define _________________ASSET_R3__________________ KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH + + +#define _________________MTGAP_L1__________________ KC_Y, KC_P, KC_O, KC_U, KC_J +#define _________________MTGAP_L2__________________ KC_I, KC_N, KC_E, KC_A, KC_COMM +#define _________________MTGAP_L3__________________ KC_Q, KC_Z, KC_SLSH, KC_DOT, KC_SCLN + +#define _________________MTGAP_R1__________________ KC_K, KC_D, KC_L, KC_C, KC_W +#define _________________MTGAP_R2__________________ KC_M, KC_H, KC_T, KC_S, KC_R, KC_QUOTE +#define _________________MTGAP_R3__________________ KC_B, KC_F, KC_G, KC_V, KC_X + + +#define _________________MINIMAK_L1________________ KC_Q, KC_W, KC_D, KC_R, KC_K +#define _________________MINIMAK_L2________________ KC_A, KC_S, KC_T, KC_F, KC_G +#define _________________MINIMAK_L3________________ KC_Z, KC_X, KC_C, KC_V, KC_B + +#define _________________MINIMAK_R1________________ KC_Y, KC_U, KC_I, KC_O, KC_P +#define _________________MINIMAK_R2________________ KC_H, KC_J, KC_E, KC_L, KC_SCLN, KC_QUOT +#define _________________MINIMAK_R3________________ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH + + +#define ________________MINIMAK_8_L1_______________ KC_Q, KC_W, KC_D, KC_R, KC_K +#define ________________MINIMAK_8_L2_______________ KC_A, KC_S, KC_T, KC_F, KC_G +#define ________________MINIMAK_8_L3_______________ KC_Z, KC_X, KC_C, KC_V, KC_B + +#define ________________MINIMAK_8_R1_______________ KC_Y, KC_U, KC_I, KC_L, KC_P +#define ________________MINIMAK_8_R2_______________ KC_H, KC_N, KC_E, KC_O, KC_SCLN, KC_QUOT +#define ________________MINIMAK_8_R3_______________ KC_J, KC_M, KC_COMM, KC_DOT, KC_SLSH + + +#define _______________MINIMAK_12_L1_______________ KC_Q, KC_W, KC_D, KC_F, KC_K +#define _______________MINIMAK_12_L2_______________ KC_A, KC_S, KC_T, KC_R, KC_G +#define _______________MINIMAK_12_L3_______________ KC_Z, KC_X, KC_C, KC_V, KC_B + +#define _______________MINIMAK_12_R1_______________ KC_Y, KC_U, KC_I, KC_L, KC_SCLN +#define _______________MINIMAK_12_R2_______________ KC_H, KC_N, KC_E, KC_O, KC_P, KC_QUOT +#define _______________MINIMAK_12_R3_______________ KC_J, KC_M, KC_COMM, KC_DOT, KC_SLSH #define ________________NUMBER_LEFT________________ KC_1, KC_2, KC_3, KC_4, KC_5 diff --git a/users/jonavin/config.h b/users/jonavin/config.h index 440d222df0c..7b6e335e3c5 100644 --- a/users/jonavin/config.h +++ b/users/jonavin/config.h @@ -23,6 +23,7 @@ #define GRAVE_ESC_CTRL_OVERRIDE // Always send Escape if Control is pressed #define TAPPING_TERM 180 +#define TAPPING_TERM_PER_KEY #ifdef RGB_MATRIX_ENABLE #define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_SOLID_COLOR diff --git a/users/jonavin/jonavin.c b/users/jonavin/jonavin.c index bd6c55e9fed..b66b444f365 100644 --- a/users/jonavin/jonavin.c +++ b/users/jonavin/jonavin.c @@ -95,95 +95,28 @@ along with this program. If not, see . } // timeout_threshold = 0 will disable timeout } +#endif // IDLE_TIMEOUT_ENABLE + +#if defined(ALTTAB_SCROLL_ENABLE) || defined(IDLE_TIMEOUT_ENABLE) // timer features __attribute__((weak)) void matrix_scan_keymap(void) {} void matrix_scan_user(void) { - timeout_tick_timer(); + #ifdef ALTTAB_SCROLL_ENABLE + encoder_tick_alttabscroll(); + #endif + #ifdef IDLE_TIMEOUT_ENABLE + timeout_tick_timer(); + #endif matrix_scan_keymap(); } -#endif // IDLE_TIMEOUT_ENABLE - - -#if defined(ENCODER_ENABLE) && defined(ENCODER_DEFAULTACTIONS_ENABLE) // Encoder Functionality - #ifndef DYNAMIC_KEYMAP_LAYER_COUNT - #define DYNAMIC_KEYMAP_LAYER_COUNT 4 //default in case this is not already defined elsewhere - #endif - #ifndef ENCODER_DEFAULTACTIONS_INDEX - #define ENCODER_DEFAULTACTIONS_INDEX 0 // can select encoder index if there are multiple encoders - #endif - -uint8_t selected_layer = 0; - -__attribute__((weak)) bool encoder_update_keymap(uint8_t index, bool clockwise) { return true; } - -bool encoder_update_user(uint8_t index, bool clockwise) { - if (!encoder_update_keymap(index, clockwise)) { return false; } - if (index != ENCODER_DEFAULTACTIONS_INDEX) {return true;} // exit if the index doesn't match - if ( clockwise ) { - if (keyboard_report->mods & MOD_BIT(KC_LSFT) ) { // If you are holding L shift, encoder changes layers - if(selected_layer < (DYNAMIC_KEYMAP_LAYER_COUNT - 1)) { - selected_layer ++; - layer_move(selected_layer); - } - } else if (keyboard_report->mods & MOD_BIT(KC_RSFT) ) { // If you are holding R shift, Page up - unregister_mods(MOD_BIT(KC_RSFT)); - register_code(KC_PGDN); - register_mods(MOD_BIT(KC_RSFT)); - } else if (keyboard_report->mods & MOD_BIT(KC_LCTL)) { // if holding Left Ctrl, navigate next word - tap_code16(LCTL(KC_RGHT)); - } else if (keyboard_report->mods & MOD_BIT(KC_LALT)) { // if holding Left Alt, change media next track - tap_code(KC_MEDIA_NEXT_TRACK); - } else { - switch (selected_layer) { - case _FN1: - #ifdef IDLE_TIMEOUT_ENABLE - timeout_update_threshold(true); - #endif - break; - default: - tap_code(KC_VOLU); // Otherwise it just changes volume - break; - } - } - } else { - if (keyboard_report->mods & MOD_BIT(KC_LSFT) ) { - if (selected_layer > 0) { - selected_layer --; - layer_move(selected_layer); - } - } else if (keyboard_report->mods & MOD_BIT(KC_RSFT) ) { - unregister_mods(MOD_BIT(KC_RSFT)); - register_code(KC_PGUP); - register_mods(MOD_BIT(KC_RSFT)); - } else if (keyboard_report->mods & MOD_BIT(KC_LCTL)) { // if holding Left Ctrl, navigate previous word - tap_code16(LCTL(KC_LEFT)); - } else if (keyboard_report->mods & MOD_BIT(KC_LALT)) { // if holding Left Alt, change media previous track - tap_code(KC_MEDIA_PREV_TRACK); - } else { - switch (selected_layer) { - case _FN1: - #ifdef IDLE_TIMEOUT_ENABLE - timeout_update_threshold(false); - #endif - break; - default: - tap_code(KC_VOLD); - break; - } - } - } - - return true; - } -#endif // ENCODER_ENABLE - +#endif // ALTTAB_SCROLL_ENABLE or IDLE_TIMEOUT_ENABLE // PROCESS KEY CODES __attribute__ ((weak)) bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { return true; } bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (!process_record_keymap(keycode, record)) { return false; } - switch (keycode) { + switch (keycode) { case KC_00: if (record->event.pressed) { // when keycode KC_00 is pressed @@ -215,6 +148,41 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } else unregister_code16(keycode); break; #endif // RGB_MATRIX_ENABLE + +#ifdef EMOTICON_ENABLE + case EMO_SHRUG: + if (record->event.pressed) SEND_STRING("`\\_(\"/)_/`"); + else unregister_code16(keycode); + break; + case EMO_CONFUSE: + if (record->event.pressed) SEND_STRING("(*_*)"); + else unregister_code16(keycode); + break; + case EMO_TEARS: + if (record->event.pressed) SEND_STRING("(T_T)"); + else unregister_code16(keycode); + break; + case EMO_NERVOUS: + if (record->event.pressed) SEND_STRING("(~_~;)"); + else unregister_code16(keycode); + break; + case EMO_JOY: + if (record->event.pressed) SEND_STRING("(^o^)"); + else unregister_code16(keycode); + break; + case EMO_SAD: + if (record->event.pressed) SEND_STRING(":'-("); + else unregister_code16(keycode); + break; + #endif // EMOTICON_ENABLE + + #ifdef ALTTAB_SCROLL_ENABLE + case KC_TSTOG: + if (record->event.pressed) encoder_toggle_alttabscroll(); + else unregister_code16(keycode); + break; + #endif // ALTTAB_SCROLL_ENABLE + default: if (record->event.pressed) { #ifdef RGB_MATRIX_ENABLE @@ -230,6 +198,18 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { }; +uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KC_SFTUP: + return 300; + case KC_RAISESPC: + case KC_LOWERSPC: + return 450; + default: + return TAPPING_TERM; + } +} + // Turn on/off NUM LOCK if current state is different void activate_numlock(bool turn_on) { if (IS_HOST_LED_ON(USB_LED_NUM_LOCK) != turn_on) { diff --git a/users/jonavin/jonavin.h b/users/jonavin/jonavin.h index 5f467bc845f..ab2ce0dff2f 100644 --- a/users/jonavin/jonavin.h +++ b/users/jonavin/jonavin.h @@ -36,12 +36,30 @@ enum custom_user_keycodes { KC_WINLCK, //Toggles Win key on and off RGB_TOI, // Timeout idle time up RGB_TOD, // Timeout idle time down - RGB_NITE // Turns off all rgb but allow rgb indicators to work + RGB_NITE, // Turns off all rgb but allow rgb indicators to work + + EMO_SHRUG, // `\_("/)_/` + EMO_CONFUSE, // (*_*) + EMO_SAD, // :'-( + EMO_NERVOUS, // (~_~;) + EMO_JOY, // (^o^) + EMO_TEARS, // (T_T) + + KC_TSTOG, // Tab Scroll Toggle + + NEW_SAFE_RANGE // new safe range for keymap level custom keycodes }; -#define KC_CAD LALT(LCTL(KC_DEL)) +#define KC_CAD LALT(LCTL(KC_DEL)) #define KC_AF4 LALT(KC_F4) #define KC_TASK LCTL(LSFT(KC_ESC)) +#define CT_PGUP RCTL(KC_PGUP) +#define CT_PGDN RCTL(KC_PGDN) +#define CT_HOME RCTL(KC_HOME) +#define CT_END RCTL(KC_END) +#define KC_SFTUP RSFT_T(KC_UP) // Shift when held, Up arrow when tapped +#define KC_RAISESPC LT(_RAISE,KC_SPC) // _RAISE layer mod when held, space when tapped +#define KC_LOWERSPC LT(_LOWER,KC_SPC) // _LOWER layer mod when held, space when tapped #ifdef TD_LSFT_CAPSLOCK_ENABLE @@ -58,6 +76,32 @@ enum custom_user_keycodes { #endif // TD_LSFT_CAPSLOCK_ENABLE +// ENCODER ACTIONS +#ifdef ENCODER_ENABLE + void encoder_action_volume(bool clockwise); + void encoder_action_mediatrack(bool clockwise); + void encoder_action_navword(bool clockwise); + void encoder_action_navpage(bool clockwise); + + uint8_t get_selected_layer(void); + void encoder_action_layerchange(bool clockwise); + + #if defined(RGB_MATRIX_ENABLE) || defined(RGBLIGHT_ENABLE) + void encoder_action_rgb_speed(bool clockwise); + void encoder_action_rgb_hue(bool clockwise); + void encoder_action_rgb_saturation(bool clockwise); + void encoder_action_rgb_brightness(bool clockwise); + void encoder_action_rgb_mode(bool clockwise); + #endif // RGB_MATRIX_ENABLE / RGBLIGHT_ENABLE + + #ifdef ALTTAB_SCROLL_ENABLE + void encoder_action_alttabscroll(bool clockwise); + void encoder_toggle_alttabscroll(void); + void encoder_tick_alttabscroll(void); + #endif // ALTTAB_SCROLL_ENABLE +#endif // ENCODER_ENABLE + + #ifdef RGB_MATRIX_ENABLE //RGB custom colours #define RGB_GODSPEED 0x00, 0xE4, 0xFF // colour for matching keycaps diff --git a/users/jonavin/jonavin_encoder.c b/users/jonavin/jonavin_encoder.c new file mode 100644 index 00000000000..387ed5f4300 --- /dev/null +++ b/users/jonavin/jonavin_encoder.c @@ -0,0 +1,219 @@ + +/* Copyright 2021 Jonavin Eng @Jonavin + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 "jonavin.h" + +#ifdef ENCODER_ENABLE + #ifndef DYNAMIC_KEYMAP_LAYER_COUNT + #define DYNAMIC_KEYMAP_LAYER_COUNT 4 //default in case this is not already defined elsewhere + #endif + #ifndef ENCODER_DEFAULTACTIONS_INDEX + #define ENCODER_DEFAULTACTIONS_INDEX 0 // can select encoder index if there are multiple encoders + #endif + + void encoder_action_volume(bool clockwise) { + if (clockwise) + tap_code(KC_VOLU); + else + tap_code(KC_VOLD); + } + + void encoder_action_mediatrack(bool clockwise) { + if (clockwise) + tap_code(KC_MEDIA_NEXT_TRACK); + else + tap_code(KC_MEDIA_PREV_TRACK); + } + + void encoder_action_navword(bool clockwise) { + if (clockwise) + tap_code16(LCTL(KC_RGHT)); + else + tap_code16(LCTL(KC_LEFT)); + } + + void encoder_action_navpage(bool clockwise) { + if (clockwise) + tap_code16(KC_PGUP); + else + tap_code16(KC_PGDN); + } + + // LAYER HANDLING + uint8_t selected_layer = 0; + + uint8_t get_selected_layer(void) { + return selected_layer; + } + + void encoder_action_layerchange(bool clockwise) { + if (clockwise) { + if(selected_layer < (DYNAMIC_KEYMAP_LAYER_COUNT - 1)) { + selected_layer ++; + layer_move(selected_layer); + } + } else { + if (selected_layer > 0) { + selected_layer --; + layer_move(selected_layer); + } + } + } + + #ifdef RGB_MATRIX_ENABLE + void encoder_action_rgb_speed(bool clockwise) { + if (clockwise) + rgb_matrix_increase_speed_noeeprom(); + else + rgb_matrix_decrease_speed_noeeprom(); + } + void encoder_action_rgb_hue(bool clockwise) { + if (clockwise) + rgb_matrix_increase_hue_noeeprom(); + else + rgb_matrix_decrease_hue_noeeprom(); + } + void encoder_action_rgb_saturation(bool clockwise) { + if (clockwise) + rgb_matrix_increase_sat_noeeprom(); + else + rgb_matrix_decrease_sat_noeeprom(); + } + void encoder_action_rgb_brightness(bool clockwise) { + if (clockwise) + rgb_matrix_increase_val_noeeprom(); + else + rgb_matrix_decrease_val_noeeprom(); + } + void encoder_action_rgb_mode(bool clockwise) { + if (clockwise) + rgb_matrix_step_noeeprom(); + else + rgb_matrix_step_reverse_noeeprom(); + } + #elif defined(RGBLIGHT_ENABLE) + void encoder_action_rgb_speed(bool clockwise) { + if (clockwise) + rgblight_increase_speed_noeeprom(); + else + rgblight_decrease_speed_noeeprom(); + } + void encoder_action_rgb_hue(bool clockwise) { + if (clockwise) + rgblight_increase_hue_noeeprom(); + else + rgblight_decrease_hue_noeeprom(); + } + void encoder_action_rgb_saturation(bool clockwise) { + if (clockwise) + rgblight_increase_sat_noeeprom(); + else + rgblight_decrease_sat_noeeprom(); + } + void encoder_action_rgb_brightness(bool clockwise) { + if (clockwise) + rgblight_increase_val_noeeprom(); + else + rgblight_decrease_val_noeeprom(); + } + void encoder_action_rgb_mode(bool clockwise) { + if (clockwise) + rgblight_step_noeeprom(); + else + rgblight_step_reverse_noeeprom(); + } + #endif // RGB_MATRIX_ENABLE || RGBLIGHT_ENABLE + + #ifdef ALTTAB_SCROLL_ENABLE + bool is_tab_scrolling = false; + bool is_alt_tab_active = false; + uint16_t alt_tab_timer = 0; + + + void encoder_toggle_alttabscroll(void) { + is_tab_scrolling = !is_tab_scrolling; + } + + void encoder_action_alttabscroll(bool clockwise) { + if (clockwise) { + if (!is_alt_tab_active) { + is_alt_tab_active = true; + register_mods(MOD_RALT); + } + tap_code16(KC_TAB); + } + else { + tap_code16(S(KC_TAB)); + } + alt_tab_timer = timer_read(); + } + + void encoder_tick_alttabscroll(void) { + if (is_alt_tab_active) { + if (timer_elapsed(alt_tab_timer) > 600) { + unregister_mods(MOD_RALT); + is_alt_tab_active = false; + } + } + } + #endif // ALTTAB_SCROLL_ENABLE +#endif // ENCODER_ENABLE + +#if defined(ENCODER_ENABLE) && defined(ENCODER_DEFAULTACTIONS_ENABLE) // Encoder Functionality + + __attribute__((weak)) bool encoder_update_keymap(uint8_t index, bool clockwise) { return true; } + + bool encoder_update_user(uint8_t index, bool clockwise) { + if (!encoder_update_keymap(index, clockwise)) { return false; } + if (index != ENCODER_DEFAULTACTIONS_INDEX) {return true;} // exit if the index doesn't match + uint8_t mods_state = get_mods(); + if (mods_state & MOD_BIT(KC_LSFT) ) { // If you are holding L shift, encoder changes layers + encoder_action_layerchange(clockwise); + } else if (mods_state & MOD_BIT(KC_RSFT) ) { // If you are holding R shift, Page up/dn + unregister_mods(MOD_BIT(KC_RSFT)); + encoder_action_navpage(clockwise); + register_mods(MOD_BIT(KC_RSFT)); + } else if (mods_state & MOD_BIT(KC_LCTL)) { // if holding Left Ctrl, navigate next/prev word + encoder_action_navword(clockwise); + } else if (mods_state & MOD_BIT(KC_LALT)) { // if holding Left Alt, change media next/prev track + encoder_action_mediatrack(clockwise); + } else { + switch(get_highest_layer(layer_state)) { + case _FN1: + #ifdef IDLE_TIMEOUT_ENABLE + timeout_update_threshold(clockwise); + #endif + break; + default: + #ifdef ALTTAB_SCROLL_ENABLE + if (is_tab_scrolling) + encoder_action_alttabscroll(clockwise); + else + encoder_action_volume(clockwise); // Otherwise it just changes volume + #else + encoder_action_volume(clockwise); // Otherwise it just changes volume + #endif // ALTTAB_SCROLL_ENABLE + break; + } + } + return false; + } +#endif // ENCODER_ENABLE + + diff --git a/users/jonavin/readme.md b/users/jonavin/readme.md index 97fff6520cb..8ec0e0ea16b 100644 --- a/users/jonavin/readme.md +++ b/users/jonavin/readme.md @@ -14,63 +14,111 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . LAYERS: - 0 = _BASE - 1 = _FN1 - 2 = _LOWER - 3 = _RAISE +- 0 = _BASE +- 1 = _FN1 +- 2 = _LOWER +- 3 = _RAISE KEYCODES: - KC_CAD Ctrl-Alt-Del - KC_AF4 Alt-F4 - KC_TASK Windows Task Manager (Ctrl-Shift-Esc) - LSFT_CAPSLOCK When LSFT_CAPSLOCK_ENABLE is defined, hold for Shift double tap for CAPSLOCK; otherwise, just Shift - KC_00 double zero "00" - KC_WINLCK toggles LGui/Win key lock - RGB_TOI Increase Timeout idle time threshold - RGB_TOD Decrease Timeout idle time threshold +- KC_CAD Ctrl-Alt-Del +- KC_AF4 Alt-F4 +- KC_TASK Windows Task Manager (Ctrl-Shift-Esc) +- LSFT_CAPSLOCK When LSFT_CAPSLOCK_ENABLE is defined, hold for Shift double tap for CAPSLOCK; otherwise, just Shift +- KC_00 double zero "00" +- KC_WINLCK toggles LGui/Win key lock +- RGB_TOI Increase Timeout idle time threshold +- RGB_TOD Decrease Timeout idle time threshold +- CT_PGUP Ctrl-PgUp +- CT_PGDN Ctrl-PgDn +- CT_HOME Ctrl-HOme +- CT_END Ctrl-End +- KC_SFTUP RShift when held, Up arrow when tapped +- KC_RAISESPC _RAISE layer mod when held, space when tapped +- KC_LOWERSPC _LOWER layer mod when held, space when tapped +- KC_TSTOG toggles between volume and Alt-Tab encoder control +- + When EMOTICON_ENABLE = yes +- EMO_SHRUG `\_("/)_/` +- EMO_CONFUSE (*_*) +- EMD_TEARS (T_T) +- EMO_NERVOUS (~_~;) +- EMO_JOY (^o^) +- EMO_SAD :'-( + + +AVAILABLE ENCODER ACTIONS: +- void encoder_action_volume(bool clockwise); +- void encoder_action_mediatrack(bool clockwise); +- void encoder_action_navword(bool clockwise); +- void encoder_action_navpage(bool clockwise); +- +- uint8_t get_selected_layer(void); +- void encoder_action_layerchange(bool clockwise); +- +- void encoder_action_rgb_speed(bool clockwise); +- void encoder_action_rgb_hue(bool clockwise); +- void encoder_action_rgb_saturation(bool clockwise); +- void encoder_action_rgb_brightness(bool clockwise); +- void encoder_action_rgb_mode(bool clockwise); +- +- void encoder_action_alttabscroll(bool clockwise) +- void encoder_toggle_alttabscroll(void); ENABLE FEATURES your keymap rules.mk +--------------------------------------- STARTUP_NUMLOCK_ON = yes - turns on NUMLOCK by default +- turns on NUMLOCK by default ENCODER_DEFAULTACTIONS_ENABLE = yes - Enabled default encoder funtions - When enabled, use this in the keymap for an additional encoder processing - bool encoder_update_keymap(uint8_t index, bool clockwise) - - OPTION: set ENCODER_DEFAULTACTIONS_INDEX to the encoder number if the encoder is not index 0 +- Enabled default encoder funtions +- When enabled, use this in the keymap for an additional encoder processing +- bool encoder_update_keymap(uint8_t index, bool clockwise) +OPTION: set ENCODER_DEFAULTACTIONS_INDEX to the encoder number if the encoder is not index 0 + TD_LSFT_CAPSLOCK_ENABLE = yes - This will enable double tap on Left Shift to toggle CAPSLOCK - KC_LSFTCAPS to bind to left Shift to enable feature - KC_LSFTCAPSWIN does the same thing but will not turn on CAPS when Win Lkey is disabled +- This will enable double tap on Left Shift to toggle CAPSLOCK +- KC_LSFTCAPS to bind to left Shift to enable feature +- KC_LSFTCAPSWIN does the same thing but will not turn on CAPS when Win Lkey is disabled IDLE_TIMEOUT_ENABLE = yes - Enables Timer functionality; for RGB idle timeouts that can be changed dynamically - When enabled, use this in the keymap for an additional matrix processing - void matrix_scan_keymap(void) +- Enables Timer functionality; for RGB idle timeouts that can be changed dynamically +- When enabled, use this in the keymap for an additional matrix processing: void matrix_scan_keymap(void) + +EMOTICON_ENABLE +- adds EMO_ keycodes for text emojis - Functions: - u16int_t get_timeout_threshold(void) // returns the current timeout threshold - void timeout_update_threshold(bool increase) // change threshold: true = increase, false = decrease - void timeout_reset_timer(void) // resets timer (put in process_record_user if you override it) - void timeout_tick_timer(void) // registers time ticks (put in maxtrix_scan_user if you override it) +INVERT_NUMLOCK_INDICATOR +- inverts the Num lock indicator, LED is on when num lock is off + +ALTTAB_SCROLL_ENABLE +- When ENCODER_DEFAULTACTIONS_ENABLE = yes, + Enables Alt-Tab scrolling functions in default encoder, + bind KS_TSTOG to a key to enable/disable Alt-Tab vs Volume control +- When defining your own encoder functions use encoder_action_alttabscroll(bool clockwise) to assign the encodr action + + +FUNCTIONS +------------------------ +- u16int_t get_timeout_threshold(void) // returns the current timeout threshold +- void timeout_update_threshold(bool increase) // change threshold: true = increase, false = decrease +- void timeout_reset_timer(void) // resets timer (put in process_record_user if you override it) +- void timeout_tick_timer(void) // registers time ticks (put in maxtrix_scan_user if you override it) Other Functions: - - activate_numlock(bool turn_on) // true = turn on NUM LOCK, false = off +- activate_numlock(bool turn_on) // true = turn on NUM LOCK, false = off KEYMAP LEVEL ADDITIONAL PROCESSING FUNCTIONS - bool process_record_keymap(uint16_t keycode, keyrecord_t *record) - void keyboard_post_init_keymap(void) +- bool process_record_keymap(uint16_t keycode, keyrecord_t *record) +- void keyboard_post_init_keymap(void) LIST OF COMPATIBLE KEYMAPS - - gmmk/pro - - gmmk/pro/ansi - - keebio/quefrency/rev3 - - mechwild/mercutio - - mechwild/murphpad (*) - - mechwild/OBE (*) - - nopunin10did/kastenwagen (*) +- gmmk/pro/ansi +- keebio/quefrency/rev3 +- mechwild/mercutio +- mechwild/murphpad +- mechwild/OBE +- nopunin10did/kastenwagen (*) (*) coming soon diff --git a/users/jonavin/rules.mk b/users/jonavin/rules.mk index e2918d9e263..4f65db27b9e 100644 --- a/users/jonavin/rules.mk +++ b/users/jonavin/rules.mk @@ -1,6 +1,13 @@ SRC += jonavin.c -ifeq ($(strip $(ENCODER_DEFAULTACTIONS_ENABLE)), yes) - OPT_DEFS += -DENCODER_DEFAULTACTIONS_ENABLE +ifdef ENCODER_ENABLE + # include encoder related code when enabled + ifeq ($(strip $(ENCODER_DEFAULTACTIONS_ENABLE)), yes) + OPT_DEFS += -DENCODER_DEFAULTACTIONS_ENABLE + endif + ifeq ($(strip $(ALTTAB_SCROLL_ENABLE)), yes) + OPT_DEFS += -DALTTAB_SCROLL_ENABLE + endif + SRC += jonavin_encoder.c endif ifeq ($(strip $(TD_LSFT_CAPSLOCK_ENABLE)), yes) OPT_DEFS += -DTD_LSFT_CAPSLOCK_ENABLE @@ -14,3 +21,9 @@ endif ifeq ($(strip $(COLEMAK_LAYER_ENABLE)), yes) OPT_DEFS += -DCOLEMAK_LAYER_ENABLE endif +ifeq ($(strip $(EMOTICON_ENABLE)), yes) + OPT_DEFS += -DEMOTICON_ENABLE +endif +ifeq ($(strip $(INVERT_NUMLOCK_INDICATOR)), yes) + OPT_DEFS += -DINVERT_NUMLOCK_INDICATOR +endif diff --git a/users/manna-harbour_miryoku/README.org b/users/manna-harbour_miryoku/README.org deleted file mode 120000 index b6caaade167..00000000000 --- a/users/manna-harbour_miryoku/README.org +++ /dev/null @@ -1 +0,0 @@ -miryoku.org \ No newline at end of file diff --git a/users/manna-harbour_miryoku/config.h b/users/manna-harbour_miryoku/config.h index 38d363299e2..d24f52edae6 100644 --- a/users/manna-harbour_miryoku/config.h +++ b/users/manna-harbour_miryoku/config.h @@ -1,6 +1,6 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/users/manna-harbour_miryoku/manna-harbour_miryoku.c b/users/manna-harbour_miryoku/manna-harbour_miryoku.c index ff25b77934f..6347183417e 100644 --- a/users/manna-harbour_miryoku/manna-harbour_miryoku.c +++ b/users/manna-harbour_miryoku/manna-harbour_miryoku.c @@ -1,6 +1,6 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . @@ -9,40 +9,50 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined MIRYOKU_LAYERS_FLIP [BASE] = LAYOUT_miryoku( - #if defined MIRYOKU_ALPHAS_COLEMAK + #if defined MIRYOKU_ALPHAS_AZERTY + KC_A, KC_Z, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + LGUI_T(KC_Q), LALT_T(KC_S), LCTL_T(KC_D), LSFT_T(KC_F), KC_G, KC_H, LSFT_T(KC_J), LCTL_T(KC_K), LALT_T(KC_L), LGUI_T(KC_M), + LT(BUTTON, KC_W), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_COMM, KC_DOT, ALGR_T(KC_SLSH), LT(BUTTON, KC_QUOT), + U_NP, U_NP, LT(FUN, KC_DEL), LT(NUM, KC_BSPC), LT(SYM, KC_ENT), LT(MOUSE, KC_TAB), LT(NAV, KC_SPC), LT(MEDIA, KC_ESC), U_NP, U_NP + #elif defined MIRYOKU_ALPHAS_COLEMAK KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, LGUI_T(KC_A), LALT_T(KC_R), LCTL_T(KC_S), LSFT_T(KC_T), KC_D, KC_H, LSFT_T(KC_N), LCTL_T(KC_E), LALT_T(KC_I), LGUI_T(KC_O), - KC_Z, ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, ALGR_T(KC_DOT), KC_SLSH, + LT(BUTTON, KC_Z), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, KC_SLSH), U_NP, U_NP, LT(FUN, KC_DEL), LT(NUM, KC_BSPC), LT(SYM, KC_ENT), LT(MOUSE, KC_TAB), LT(NAV, KC_SPC), LT(MEDIA, KC_ESC), U_NP, U_NP #elif defined MIRYOKU_ALPHAS_COLEMAKDHK KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, LGUI_T(KC_A), LALT_T(KC_R), LCTL_T(KC_S), LSFT_T(KC_T), KC_G, KC_K, LSFT_T(KC_N), LCTL_T(KC_E), LALT_T(KC_I), LGUI_T(KC_O), - KC_Z, ALGR_T(KC_X), KC_C, KC_D, KC_V, KC_M, KC_H, KC_COMM, ALGR_T(KC_DOT), KC_SLSH, + LT(BUTTON, KC_Z), ALGR_T(KC_X), KC_C, KC_D, KC_V, KC_M, KC_H, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, KC_SLSH), U_NP, U_NP, LT(FUN, KC_DEL), LT(NUM, KC_BSPC), LT(SYM, KC_ENT), LT(MOUSE, KC_TAB), LT(NAV, KC_SPC), LT(MEDIA, KC_ESC), U_NP, U_NP #elif defined MIRYOKU_ALPHAS_DVORAK KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, LGUI_T(KC_A), LALT_T(KC_O), LCTL_T(KC_E), LSFT_T(KC_U), KC_I, KC_D, LSFT_T(KC_H), LCTL_T(KC_T), LALT_T(KC_N), LGUI_T(KC_S), - KC_SLSH, ALGR_T(KC_Q), KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, ALGR_T(KC_V), KC_Z, + LT(BUTTON, KC_SLSH), ALGR_T(KC_Q), KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, ALGR_T(KC_V), LT(BUTTON, KC_Z), U_NP, U_NP, LT(FUN, KC_DEL), LT(NUM, KC_BSPC), LT(SYM, KC_ENT), LT(MOUSE, KC_TAB), LT(NAV, KC_SPC), LT(MEDIA, KC_ESC), U_NP, U_NP #elif defined MIRYOKU_ALPHAS_HALMAK KC_W, KC_L, KC_R, KC_B, KC_Z, KC_QUOT, KC_Q, KC_U, KC_D, KC_J, LGUI_T(KC_S), LALT_T(KC_H), LCTL_T(KC_N), LSFT_T(KC_T), KC_COMM, KC_DOT, LSFT_T(KC_A), LCTL_T(KC_E), LALT_T(KC_O), LGUI_T(KC_I), - KC_F, ALGR_T(KC_M), KC_V, KC_C, KC_SLSH, KC_G, KC_P, KC_X, ALGR_T(KC_K), KC_Y, + LT(BUTTON, KC_F), ALGR_T(KC_M), KC_V, KC_C, KC_SLSH, KC_G, KC_P, KC_X, ALGR_T(KC_K), LT(BUTTON, KC_Y), U_NP, U_NP, LT(FUN, KC_DEL), LT(NUM, KC_BSPC), LT(SYM, KC_ENT), LT(MOUSE, KC_TAB), LT(NAV, KC_SPC), LT(MEDIA, KC_ESC), U_NP, U_NP #elif defined MIRYOKU_ALPHAS_WORKMAN KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_QUOT, LGUI_T(KC_A), LALT_T(KC_S), LCTL_T(KC_H), LSFT_T(KC_T), KC_G, KC_Y, LSFT_T(KC_N), LCTL_T(KC_E), LALT_T(KC_O), LGUI_T(KC_I), - KC_Z, ALGR_T(KC_X), KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, ALGR_T(KC_DOT), KC_SLSH, + LT(BUTTON, KC_Z), ALGR_T(KC_X), KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, KC_SLSH), U_NP, U_NP, LT(FUN, KC_DEL), LT(NUM, KC_BSPC), LT(SYM, KC_ENT), LT(MOUSE, KC_TAB), LT(NAV, KC_SPC), LT(MEDIA, KC_ESC), U_NP, U_NP #elif defined MIRYOKU_ALPHAS_QWERTY KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, LGUI_T(KC_A), LALT_T(KC_S), LCTL_T(KC_D), LSFT_T(KC_F), KC_G, KC_H, LSFT_T(KC_J), LCTL_T(KC_K), LALT_T(KC_L), LGUI_T(KC_QUOT), - KC_Z, ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, ALGR_T(KC_DOT), KC_SLSH, + LT(BUTTON, KC_Z), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, KC_SLSH), + U_NP, U_NP, LT(FUN, KC_DEL), LT(NUM, KC_BSPC), LT(SYM, KC_ENT), LT(MOUSE, KC_TAB), LT(NAV, KC_SPC), LT(MEDIA, KC_ESC), U_NP, U_NP + #elif defined MIRYOKU_ALPHAS_QWERTZ + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Z, KC_U, KC_I, KC_O, KC_P, + LGUI_T(KC_A), LALT_T(KC_S), LCTL_T(KC_D), LSFT_T(KC_F), KC_G, KC_H, LSFT_T(KC_J), LCTL_T(KC_K), LALT_T(KC_L), LGUI_T(KC_QUOT), + LT(BUTTON, KC_Y), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, KC_SLSH), U_NP, U_NP, LT(FUN, KC_DEL), LT(NUM, KC_BSPC), LT(SYM, KC_ENT), LT(MOUSE, KC_TAB), LT(NAV, KC_SPC), LT(MEDIA, KC_ESC), U_NP, U_NP #else KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, LGUI_T(KC_A), LALT_T(KC_R), LCTL_T(KC_S), LSFT_T(KC_T), KC_G, KC_M, LSFT_T(KC_N), LCTL_T(KC_E), LALT_T(KC_I), LGUI_T(KC_O), - KC_Z, ALGR_T(KC_X), KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, ALGR_T(KC_DOT), KC_SLSH, + LT(BUTTON, KC_Z), ALGR_T(KC_X), KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, KC_SLSH), U_NP, U_NP, LT(FUN, KC_DEL), LT(NUM, KC_BSPC), LT(SYM, KC_ENT), LT(MOUSE, KC_TAB), LT(NAV, KC_SPC), LT(MEDIA, KC_ESC), U_NP, U_NP #endif ), @@ -85,12 +95,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { U_NP, U_NP, KC_MUTE, KC_MPLY, KC_MSTP, U_NA, U_NA, U_NA, U_NP, U_NP ), #endif - [MBO] = LAYOUT_miryoku( - U_RDO, U_PST, U_CPY, U_CUT, U_UND, U_RDO, U_PST, U_CPY, U_CUT, U_UND, - KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, KC_TRNS, KC_TRNS, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - U_NP, U_NP, KC_BTN2, KC_BTN3, KC_BTN1, KC_BTN1, KC_BTN3, KC_BTN2, U_NP, U_NP - ), [NUM] = LAYOUT_miryoku( RESET, U_NA, U_NA, U_NA, U_NA, KC_LBRC, KC_7, KC_8, KC_9, KC_RBRC, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NA, KC_EQL, KC_4, KC_5, KC_6, KC_SCLN, @@ -108,44 +112,53 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NA, KC_SLCK, KC_F4, KC_F5, KC_F6, KC_F11, U_NA, KC_ALGR, U_NA, U_NA, U_NA, KC_PAUS, KC_F1, KC_F2, KC_F3, KC_F10, U_NP, U_NP, U_NA, U_NA, U_NA, KC_TAB, KC_SPC, KC_APP, U_NP, U_NP - ) -, + ), #else [BASE] = LAYOUT_miryoku( - #if defined MIRYOKU_ALPHAS_COLEMAK + #if defined MIRYOKU_ALPHAS_AZERTY + KC_A, KC_Z, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + LGUI_T(KC_Q), LALT_T(KC_S), LCTL_T(KC_D), LSFT_T(KC_F), KC_G, KC_H, LSFT_T(KC_J), LCTL_T(KC_K), LALT_T(KC_L), LGUI_T(KC_M), + LT(BUTTON, KC_W), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_COMM, KC_DOT, ALGR_T(KC_SLSH), LT(BUTTON, KC_QUOT), + U_NP, U_NP, LT(MEDIA, KC_ESC), LT(NAV, KC_SPC), LT(MOUSE, KC_TAB), LT(SYM, KC_ENT), LT(NUM, KC_BSPC), LT(FUN, KC_DEL), U_NP, U_NP + #elif defined MIRYOKU_ALPHAS_COLEMAK KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, LGUI_T(KC_A), LALT_T(KC_R), LCTL_T(KC_S), LSFT_T(KC_T), KC_D, KC_H, LSFT_T(KC_N), LCTL_T(KC_E), LALT_T(KC_I), LGUI_T(KC_O), - KC_Z, ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, ALGR_T(KC_DOT), KC_SLSH, + LT(BUTTON, KC_Z), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, KC_SLSH), U_NP, U_NP, LT(MEDIA, KC_ESC), LT(NAV, KC_SPC), LT(MOUSE, KC_TAB), LT(SYM, KC_ENT), LT(NUM, KC_BSPC), LT(FUN, KC_DEL), U_NP, U_NP #elif defined MIRYOKU_ALPHAS_COLEMAKDHK KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, LGUI_T(KC_A), LALT_T(KC_R), LCTL_T(KC_S), LSFT_T(KC_T), KC_G, KC_K, LSFT_T(KC_N), LCTL_T(KC_E), LALT_T(KC_I), LGUI_T(KC_O), - KC_Z, ALGR_T(KC_X), KC_C, KC_D, KC_V, KC_M, KC_H, KC_COMM, ALGR_T(KC_DOT), KC_SLSH, + LT(BUTTON, KC_Z), ALGR_T(KC_X), KC_C, KC_D, KC_V, KC_M, KC_H, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, KC_SLSH), U_NP, U_NP, LT(MEDIA, KC_ESC), LT(NAV, KC_SPC), LT(MOUSE, KC_TAB), LT(SYM, KC_ENT), LT(NUM, KC_BSPC), LT(FUN, KC_DEL), U_NP, U_NP #elif defined MIRYOKU_ALPHAS_DVORAK KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, LGUI_T(KC_A), LALT_T(KC_O), LCTL_T(KC_E), LSFT_T(KC_U), KC_I, KC_D, LSFT_T(KC_H), LCTL_T(KC_T), LALT_T(KC_N), LGUI_T(KC_S), - KC_SLSH, ALGR_T(KC_Q), KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, ALGR_T(KC_V), KC_Z, + LT(BUTTON, KC_SLSH), ALGR_T(KC_Q), KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, ALGR_T(KC_V), LT(BUTTON, KC_Z), U_NP, U_NP, LT(MEDIA, KC_ESC), LT(NAV, KC_SPC), LT(MOUSE, KC_TAB), LT(SYM, KC_ENT), LT(NUM, KC_BSPC), LT(FUN, KC_DEL), U_NP, U_NP #elif defined MIRYOKU_ALPHAS_HALMAK KC_W, KC_L, KC_R, KC_B, KC_Z, KC_QUOT, KC_Q, KC_U, KC_D, KC_J, LGUI_T(KC_S), LALT_T(KC_H), LCTL_T(KC_N), LSFT_T(KC_T), KC_COMM, KC_DOT, LSFT_T(KC_A), LCTL_T(KC_E), LALT_T(KC_O), LGUI_T(KC_I), - KC_F, ALGR_T(KC_M), KC_V, KC_C, KC_SLSH, KC_G, KC_P, KC_X, ALGR_T(KC_K), KC_Y, + LT(BUTTON, KC_F), ALGR_T(KC_M), KC_V, KC_C, KC_SLSH, KC_G, KC_P, KC_X, ALGR_T(KC_K), LT(BUTTON, KC_Y), U_NP, U_NP, LT(MEDIA, KC_ESC), LT(NAV, KC_SPC), LT(MOUSE, KC_TAB), LT(SYM, KC_ENT), LT(NUM, KC_BSPC), LT(FUN, KC_DEL), U_NP, U_NP #elif defined MIRYOKU_ALPHAS_WORKMAN KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_QUOT, LGUI_T(KC_A), LALT_T(KC_S), LCTL_T(KC_H), LSFT_T(KC_T), KC_G, KC_Y, LSFT_T(KC_N), LCTL_T(KC_E), LALT_T(KC_O), LGUI_T(KC_I), - KC_Z, ALGR_T(KC_X), KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, ALGR_T(KC_DOT), KC_SLSH, + LT(BUTTON, KC_Z), ALGR_T(KC_X), KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, KC_SLSH), U_NP, U_NP, LT(MEDIA, KC_ESC), LT(NAV, KC_SPC), LT(MOUSE, KC_TAB), LT(SYM, KC_ENT), LT(NUM, KC_BSPC), LT(FUN, KC_DEL), U_NP, U_NP #elif defined MIRYOKU_ALPHAS_QWERTY KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, LGUI_T(KC_A), LALT_T(KC_S), LCTL_T(KC_D), LSFT_T(KC_F), KC_G, KC_H, LSFT_T(KC_J), LCTL_T(KC_K), LALT_T(KC_L), LGUI_T(KC_QUOT), - KC_Z, ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, ALGR_T(KC_DOT), KC_SLSH, + LT(BUTTON, KC_Z), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, KC_SLSH), + U_NP, U_NP, LT(MEDIA, KC_ESC), LT(NAV, KC_SPC), LT(MOUSE, KC_TAB), LT(SYM, KC_ENT), LT(NUM, KC_BSPC), LT(FUN, KC_DEL), U_NP, U_NP + #elif defined MIRYOKU_ALPHAS_QWERTZ + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Z, KC_U, KC_I, KC_O, KC_P, + LGUI_T(KC_A), LALT_T(KC_S), LCTL_T(KC_D), LSFT_T(KC_F), KC_G, KC_H, LSFT_T(KC_J), LCTL_T(KC_K), LALT_T(KC_L), LGUI_T(KC_QUOT), + LT(BUTTON, KC_Y), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, KC_SLSH), U_NP, U_NP, LT(MEDIA, KC_ESC), LT(NAV, KC_SPC), LT(MOUSE, KC_TAB), LT(SYM, KC_ENT), LT(NUM, KC_BSPC), LT(FUN, KC_DEL), U_NP, U_NP #else KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, LGUI_T(KC_A), LALT_T(KC_R), LCTL_T(KC_S), LSFT_T(KC_T), KC_G, KC_M, LSFT_T(KC_N), LCTL_T(KC_E), LALT_T(KC_I), LGUI_T(KC_O), - KC_Z, ALGR_T(KC_X), KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, ALGR_T(KC_DOT), KC_SLSH, + LT(BUTTON, KC_Z), ALGR_T(KC_X), KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, KC_SLSH), U_NP, U_NP, LT(MEDIA, KC_ESC), LT(NAV, KC_SPC), LT(MOUSE, KC_TAB), LT(SYM, KC_ENT), LT(NUM, KC_BSPC), LT(FUN, KC_DEL), U_NP, U_NP #endif ), @@ -188,12 +201,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { U_NP, U_NP, U_NA, U_NA, U_NA, KC_MSTP, KC_MPLY, KC_MUTE, U_NP, U_NP ), #endif - [MBO] = LAYOUT_miryoku( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, KC_TRNS, KC_TRNS, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, - U_RDO, U_PST, U_CPY, U_CUT, U_UND, U_RDO, U_PST, U_CPY, U_CUT, U_UND, - U_NP, U_NP, KC_BTN2, KC_BTN3, KC_BTN1, KC_BTN1, KC_BTN3, KC_BTN2, U_NP, U_NP - ), [NUM] = LAYOUT_miryoku( KC_LBRC, KC_7, KC_8, KC_9, KC_RBRC, U_NA, U_NA, U_NA, U_NA, RESET, KC_SCLN, KC_4, KC_5, KC_6, KC_EQL, U_NA, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, @@ -211,6 +218,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_F11, KC_F4, KC_F5, KC_F6, KC_SLCK, U_NA, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, KC_F10, KC_F1, KC_F2, KC_F3, KC_PAUS, U_NA, U_NA, U_NA, KC_ALGR, U_NA, U_NP, U_NP, KC_APP, KC_SPC, KC_TAB, U_NA, U_NA, U_NA, U_NP, U_NP - ) + ), #endif + [BUTTON] = LAYOUT_miryoku( + U_UND, U_CUT, U_CPY, U_PST, U_RDO, U_RDO, U_PST, U_CPY, U_CUT, U_UND, + KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, KC_TRNS, KC_TRNS, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, + U_UND, U_CUT, U_CPY, U_PST, U_RDO, U_RDO, U_PST, U_CPY, U_CUT, U_UND, + U_NP, U_NP, KC_BTN2, KC_BTN3, KC_BTN1, KC_BTN1, KC_BTN3, KC_BTN2, U_NP, U_NP + ) }; diff --git a/users/manna-harbour_miryoku/manna-harbour_miryoku.h b/users/manna-harbour_miryoku/manna-harbour_miryoku.h index 4d62c170796..1d14f617105 100644 --- a/users/manna-harbour_miryoku/manna-harbour_miryoku.h +++ b/users/manna-harbour_miryoku/manna-harbour_miryoku.h @@ -1,6 +1,6 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . @@ -12,7 +12,7 @@ #define U_NA KC_NO // present but not available for use #define U_NU KC_NO // available but not used -enum layers { BASE, MBO, MEDIA, NAV, MOUSE, SYM, NUM, FUN }; +enum layers { BASE, BUTTON, MEDIA, NAV, MOUSE, SYM, NUM, FUN }; #if defined MIRYOKU_CLIPBOARD_FUN #define U_RDO KC_AGIN diff --git a/users/manna-harbour_miryoku/miryoku.org b/users/manna-harbour_miryoku/readme.org similarity index 79% rename from users/manna-harbour_miryoku/miryoku.org rename to users/manna-harbour_miryoku/readme.org index 2f6b1d5a88e..b904738a676 100644 --- a/users/manna-harbour_miryoku/miryoku.org +++ b/users/manna-harbour_miryoku/readme.org @@ -1,100 +1,41 @@ # After making changes to code or tables call org-babel-tangle (C-c C-v t). -#+Title: Miryoku [[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/logos/miryoku-roa-32.png]] +* Miryoku QMK [[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/logos/miryoku-roa-32.png]] [[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/cover/miryoku-kle-cover.png]] -Miryoku is an ergonomic, minimal, orthogonal layout for ergo or ortho keyboards, -implemented as part of the QMK firmware. +[[https://github.com/manna-harbour/miryoku/][Miryoku]] is an ergonomic, minimal, orthogonal, and universal keyboard layout. This is the Miryoku implementation for [[https://qmk.fm][QMK]]. -The layout is maintained in emacs org-mode tables and converted to QMK keymap -data structures using embedded python scripts. It is mapped onto keyboards with -different physical layouts as a subset without code duplication using the QMK -userspace feature and C macros. +** Branches + + +*** QMK master + +Miryoku QMK is periodically merged upstream into QMK master and it is generally recommended to build directly from QMK master. + +QMK master is at https://github.com/qmk/qmk_firmware/tree/master, and the corresponding Miryoku QMK readme is at https://github.com/qmk/qmk_firmware/tree/master/users/manna-harbour_miryoku. + + +*** Miryoku QMK development branch + +The Miryoku QMK development branch is ~miryoku~ and may contain new commits not yet merged into QMK master. -Please see the [[https://github.com/manna-harbour/qmk_firmware/blob/miryoku/users/manna-harbour_miryoku/miryoku.org][development branch]] for any [[https://github.com/qmk/qmk_firmware/compare/master...manna-harbour:miryoku][updates not yet merged into QMK]]. +~miryoku~ is at https://github.com/manna-harbour/miryoku_qmk/tree/miryoku, and the corresponding Miryoku QMK readme is at https://github.com/manna-harbour/miryoku_qmk/tree/miryoku/users/manna-harbour_miryoku. -To checkout the development branch in your existing QMK build environment: +New commits can be seen at the top of the [[https://github.com/manna-harbour/miryoku_qmk/commits/miryoku][history]] with commit messages beginning ~[miryoku]~. After the new commits are squashed and merged upstream into QMK master by pull request the ~miryoku~ branch is renamed and a new ~miryoku~ branch is created from QMK master. + +To checkout the ~miryoku~ branch in your existing QMK build environment: #+BEGIN_SRC sh :tangle no -git remote add manna-harbour git@github.com:manna-harbour/qmk_firmware.git # ssh -git remote add manna-harbour https://github.com/manna-harbour/qmk_firmware.git # https -git fetch manna-harbour -git checkout --track manna-harbour/miryoku -#+END_SRC - -Additional implementations and visualisations are provided outside QMK in the -[[https://github.com/manna-harbour/miryoku/blob/master/README.org][Miryoku (Extras) repository]]. - - -* Contents :TOC_3: -- [[#layout][Layout]] - - [[#general-principles][General Principles]] - - [[#details][Details]] - - [[#layers][Layers]] - - [[#base][Base]] - - [[#nav][Nav]] - - [[#mouse][Mouse]] - - [[#mouse-buttons-overlay][Mouse Buttons Overlay]] - - [[#media][Media]] - - [[#num][Num]] - - [[#sym][Sym]] - - [[#fun][Fun]] - - [[#alternative-layouts][Alternative Layouts]] -- [[#code-generation][Code Generation]] - - [[#table-conversion-scripts][Table Conversion Scripts]] - - [[#table-layout-taphold][table-layout-taphold]] - - [[#table-layout-half][table-layout-half]] - - [[#table-layout-full][table-layout-full]] - - [[#table-enums][table-enums]] - - [[#table-keycode-mappings][table-keycode-mappings]] - - [[#data][Data]] - - [[#symbol-names][symbol-names]] - - [[#mods][mods]] - - [[#nonkc][nonkc]] - - [[#header][header]] - - [[#license-qmk][license-qmk]] -- [[#subset-mapping][Subset Mapping]] - - [[#userspace][Userspace]] - - [[#usersmanna-harbour_miryokurulesmk][users/manna-harbour_miryoku/rules.mk]] - - [[#usersmanna-harbour_miryokuconfigh][users/manna-harbour_miryoku/config.h]] - - [[#usersmanna-harbour_miryokumanna-harbour_miryokuh][users/manna-harbour_miryoku/manna-harbour_miryoku.h]] - - [[#usersmanna-harbour_miryokumanna-harbour_miryokuc][users/manna-harbour_miryoku/manna-harbour_miryoku.c]] - - [[#layouts][Layouts]] - - [[#60_ansi][60_ansi]] - - [[#ergodox][ergodox]] - - [[#ortho_4x10][ortho_4x10]] - - [[#ortho_4x12][ortho_4x12]] - - [[#ortho_5x12][ortho_5x12]] - - [[#ortho_5x15][ortho_5x15]] - - [[#planck_mit][planck_mit]] - - [[#split_3x5_3][split_3x5_3]] - - [[#split_3x6_3][split_3x6_3]] - - [[#keyboards][Keyboards]] - - [[#atreus][atreus]] - - [[#ergotravel][ergotravel]] - - [[#for_science][for_science]] - - [[#gergo][gergo]] - - [[#handwireddactyl_manuform4x5][handwired/dactyl_manuform/4x5]] - - [[#handwireddactyl_manuform5x6][handwired/dactyl_manuform/5x6]] - - [[#keebioiris][keebio/iris]] - - [[#keyboardioatreus][keyboardio/atreus]] - - [[#kyria][kyria]] - - [[#lily58][lily58]] - - [[#moonlander][moonlander]] - - [[#redox_w][redox_w]] - - [[#sofle][sofle]] - - [[#torn][torn]] - - [[#customisation][Customisation]] - - [[#examples][Examples]] -- [[#experimental-features][Experimental Features]] - - [[#bilateral-combinations][Bilateral Combinations]] - - [[#retro-shift][Retro Shift]] -- [[#documentation][Documentation]] -- [[#contact][Contact]] - -* Layout - -** General Principles +git remote add miryoku_qmk git@github.com:manna-harbour/miryoku_qmk.git # if using SSH +git remote add miryoku_qmk https://github.com/manna-harbour/miryoku_qmk.git # if using HTTPS +git fetch miryoku_qmk +git checkout --track miryoku_qmk/miryoku +#+END_SRC + + +** Layout + +*** General Principles - Use layers instead of reaching. - Use both hands instead of contortions. @@ -103,7 +44,7 @@ Additional implementations and visualisations are provided outside QMK in the - Avoid unnecessary complication. -** Details +*** Details - 5 columns, 3 rows, 3 thumb keys, 2 hands. - Can be used on almost any split or non-split ergo or ortho keyboard. @@ -133,7 +74,7 @@ Additional implementations and visualisations are provided outside QMK in the - Auto Shift for numbers and symbols. -** Layers +*** Layers [[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/layers/miryoku-kle-reference.png]] @@ -153,7 +94,7 @@ Mods (and reset) will be available on sub layers on the same hand as the layer change thumb key. Unknown names are considered to be layer names. -*** Base +**** Base [[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/layers/miryoku-kle-base.png]] @@ -164,10 +105,10 @@ backspace, enter, delete on the right and space, tab, escape on the left. Alternative alpha arrangements are also available. -**** Tap +***** Tap -***** Alphas +****** Alphas #+NAME: colemakdh | Q | W | F | P | B | J | L | U | Y | ' | @@ -175,22 +116,22 @@ Alternative alpha arrangements are also available. | Z | X | C | D | V | K | H | , | DOT | / | -***** Thumbs +****** Thumbs #+NAME: thumbs | U_NP | U_NP | ESC | SPC | TAB | ENT | BSPC | DEL | U_NP | U_NP | -**** Hold +***** Hold #+NAME: hold -| RESET | | | | | | | | | RESET | -| LGUI | LALT | LCTL | LSFT | | | LSFT | LCTL | LALT | LGUI | -| | ALGR | | | | | | | ALGR | | -| U_NP | U_NP | MEDIA | NAV | MOUSE | SYM | NUM | FUN | U_NP | U_NP | +| RESET | | | | | | | | | RESET | +| LGUI | LALT | LCTL | LSFT | | | LSFT | LCTL | LALT | LGUI | +| BUTTON | ALGR | | | | | | | ALGR | BUTTON | +| U_NP | U_NP | MEDIA | NAV | MOUSE | SYM | NUM | FUN | U_NP | U_NP | -*** Nav +**** Nav [[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/layers/miryoku-kle-nav.png]] @@ -209,7 +150,7 @@ available. | ENT | BSPC | DEL | U_NP | U_NP | -*** Mouse +**** Mouse [[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/layers/miryoku-kle-mouse.png]] @@ -226,19 +167,24 @@ layer. | BTN1 | BTN3 | BTN2 | U_NP | U_NP | -*** Mouse Buttons Overlay +**** Button -Available for automatic activation depending on keyboard hardware and -configuration. Not activated manually. +[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/layers/miryoku-kle-button.png]] -#+NAME: mbo -| U_RDO | U_PST | U_CPY | U_CUT | U_UND | U_RDO | U_PST | U_CPY | U_CUT | U_UND | +Provides mouse buttons, mods, and clipboard keys for use with integrated or +external pointing devices, used with either hand. The layer is available for +automatic activation depending on hardware and configuration. It can also be +activated manually by holding a bottom row pinkie key (however GUI and Undo will +be unavailable). + +#+NAME: button +| U_UND | U_CUT | U_CPY | U_PST | U_RDO | U_RDO | U_PST | U_CPY | U_CUT | U_UND | | LGUI | LALT | LCTL | LSFT | | | LSFT | LCTL | LALT | LGUI | -| | | | | | | | | | | +| U_UND | U_CUT | U_CPY | U_PST | U_RDO | U_RDO | U_PST | U_CPY | U_CUT | U_UND | | U_NP | U_NP | BTN2 | BTN3 | BTN1 | BTN1 | BTN3 | BTN2 | U_NP | U_NP | -*** Media +**** Media [[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/layers/miryoku-kle-media.png]] @@ -254,7 +200,7 @@ available for other related functions. | MSTP | MPLY | MUTE | U_NP | U_NP | -*** Num +**** Num [[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/layers/miryoku-kle-num.png]] @@ -269,7 +215,7 @@ Dot is duplicated from the base layer. | U_NP | U_NP | DOT | 0 | MINS | -*** Sym +**** Sym [[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/layers/miryoku-kle-sym.png]] @@ -284,7 +230,7 @@ next to close parenthesis. | U_NP | U_NP | ( | ) | _ | -*** Fun +**** Fun [[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/layers/miryoku-kle-fun.png]] @@ -301,19 +247,29 @@ the base layer to enable auto-repeat. | U_NP | U_NP | APP | SPC | TAB | -*** Alternative Layouts +**** Alternative Layouts The defaults are recommended, but alternative layouts are provided to accommodate existing muscle memory and platform differences. -**** Alphas +***** Alphas To select, append the corresponding option to the ~make~ command line when building, e.g. ~MIRYOKU_ALPHAS=QWERTY~. -***** Colemak +****** AZERTY + +~MIRYOKU_ALPHAS=AZERTY~ + +#+NAME: azerty +| A | Z | E | R | T | Y | U | I | O | P | +| Q | S | D | F | G | H | J | K | L | M | +| W | X | C | V | B | N | , | DOT | / | ' | + + +****** Colemak ~MIRYOKU_ALPHAS=COLEMAK~ @@ -323,7 +279,7 @@ building, e.g. ~MIRYOKU_ALPHAS=QWERTY~. | Z | X | C | V | B | K | M | , | DOT | / | -***** Colemak Mod-DHk +****** Colemak Mod-DHk ~MIRYOKU_ALPHAS=COLEMAKDHK~ @@ -333,7 +289,7 @@ building, e.g. ~MIRYOKU_ALPHAS=QWERTY~. | Z | X | C | D | V | M | H | , | DOT | / | -***** Dvorak +****** Dvorak ~MIRYOKU_ALPHAS=DVORAK~ @@ -343,7 +299,7 @@ building, e.g. ~MIRYOKU_ALPHAS=QWERTY~. | / | Q | J | K | X | B | M | W | V | Z | -***** Halmak +****** Halmak ~MIRYOKU_ALPHAS=HALMAK~ @@ -353,7 +309,7 @@ building, e.g. ~MIRYOKU_ALPHAS=QWERTY~. | F | M | V | C | / | G | P | X | K | Y | -***** Workman +****** Workman ~MIRYOKU_ALPHAS=WORKMAN~ @@ -363,7 +319,7 @@ building, e.g. ~MIRYOKU_ALPHAS=QWERTY~. | Z | X | M | C | V | K | L | , | DOT | / | -***** QWERTY +****** QWERTY ~MIRYOKU_ALPHAS=QWERTY~ @@ -373,16 +329,26 @@ building, e.g. ~MIRYOKU_ALPHAS=QWERTY~. | Z | X | C | V | B | N | M | , | DOT | / | -**** Nav +****** QWERTZ + +~MIRYOKU_ALPHAS=QWERTZ~ + +#+NAME: qwertz +| Q | W | E | R | T | Z | U | I | O | P | +| A | S | D | F | G | H | J | K | L | ' | +| Y | X | C | V | B | N | M | , | DOT | / | -***** vi-Style +***** Nav + + +****** vi-Style To select, append ~MIRYOKU_NAV=VI~ to the ~make~ command line when building. Not available with ~MIRYOKU_LAYERS=FLIP~. -****** Nav +******* Nav #+NAME: nav-r-vi | U_RDO | U_PST | U_CPY | U_CUT | U_UND | @@ -391,7 +357,7 @@ Not available with ~MIRYOKU_LAYERS=FLIP~. | ENT | BSPC | DEL | U_NP | U_NP | -****** Mouse +******* Mouse #+NAME: mouse-r-vi | U_RDO | U_PST | U_CPY | U_CUT | U_UND | @@ -400,7 +366,7 @@ Not available with ~MIRYOKU_LAYERS=FLIP~. | BTN1 | BTN3 | BTN2 | U_NP | U_NP | -****** Media +******* Media #+NAME: media-r-vi | RGB_TOG | RGB_MOD | RGB_HUI | RGB_SAI | RGB_VAI | @@ -409,7 +375,7 @@ Not available with ~MIRYOKU_LAYERS=FLIP~. | MSTP | MPLY | MUTE | U_NP | U_NP | -***** Inverted-T +****** Inverted-T [[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/layers/miryoku-kle-reference-flip-invertedt.png]] @@ -417,7 +383,7 @@ To select, append ~MIRYOKU_NAV=INVERTEDT~ to the ~make~ command line when building. Only available with ~MIRYOKU_LAYERS=FLIP~. -****** Nav +******* Nav #+NAME: nav-l-invertedt | PGUP | HOME | UP | END | INS | @@ -426,7 +392,7 @@ building. Only available with ~MIRYOKU_LAYERS=FLIP~. | U_NP | U_NP | DEL | BSPC | ENT | -****** Mouse +******* Mouse #+NAME: mouse-l-invertedt | WH_U | WH_L | MS_U | WH_R | | @@ -435,7 +401,7 @@ building. Only available with ~MIRYOKU_LAYERS=FLIP~. | U_NP | U_NP | BTN2 | BTN3 | BTN1 | -****** Media +******* Media #+NAME: media-l-invertedt | | | VOLU | | | @@ -444,7 +410,7 @@ building. Only available with ~MIRYOKU_LAYERS=FLIP~. | U_NP | U_NP | MUTE | MPLY | MSTP | -**** Clipboard +***** Clipboard Keycodes are translated according to the following tables. @@ -457,7 +423,7 @@ To select, append the corresponding option to the ~make~ command line when building, e.g. ~MIRYOKU_CLIPBOARD=WIN~. -***** Default +****** Default #+NAME: clipboard | U_RDO | AGIN | @@ -467,7 +433,7 @@ building, e.g. ~MIRYOKU_CLIPBOARD=WIN~. | U_UND | UNDO | -***** Fun Cluster +****** Fun Cluster ~MIRYOKU_CLIPBOARD=FUN~ @@ -479,7 +445,7 @@ building, e.g. ~MIRYOKU_CLIPBOARD=WIN~. | U_UND | UNDO | -***** Mac +****** Mac ~MIRYOKU_CLIPBOARD=MAC~ @@ -491,7 +457,7 @@ building, e.g. ~MIRYOKU_CLIPBOARD=WIN~. | U_UND | LCMD(KC_Z) | -***** Windows +****** Windows ~MIRYOKU_CLIPBOARD=WIN~ @@ -503,32 +469,32 @@ building, e.g. ~MIRYOKU_CLIPBOARD=WIN~. | U_UND | C(KC_Z) | -**** Layers +***** Layers -***** Flip +****** Flip Flip base layer thumb keys and sub layers between right and left hands. To select, append ~MIRYOKU_LAYERS=FLIP~ to the ~make~ command line when building. -****** Thumbs +******* Thumbs #+NAME: thumbs-flip | U_NP | U_NP | DEL | BSPC | ENT | TAB | SPC | ESC | U_NP | U_NP | -****** Hold +******* Hold #+NAME: hold-flip -| RESET | | | | | | | | | RESET | -| LGUI | LALT | LCTL | LSFT | | | LSFT | LCTL | LALT | LGUI | -| | ALGR | | | | | | | ALGR | | -| U_NP | U_NP | FUN | NUM | SYM | MOUSE | NAV | MEDIA | U_NP | U_NP | +| RESET | | | | | | | | | RESET | +| LGUI | LALT | LCTL | LSFT | | | LSFT | LCTL | LALT | LGUI | +| BUTTON | ALGR | | | | | | | ALGR | BUTTON | +| U_NP | U_NP | FUN | NUM | SYM | MOUSE | NAV | MEDIA | U_NP | U_NP | -****** Nav +******* Nav #+NAME: nav-l | HOME | PGDN | PGUP | END | INS | @@ -537,7 +503,7 @@ To select, append ~MIRYOKU_LAYERS=FLIP~ to the ~make~ command line when building | U_NP | U_NP | DEL | BSPC | ENT | -****** Mouse +******* Mouse #+NAME: mouse-l | WH_L | WH_D | WH_U | WH_R | | @@ -546,16 +512,7 @@ To select, append ~MIRYOKU_LAYERS=FLIP~ to the ~make~ command line when building | U_NP | U_NP | BTN2 | BTN3 | BTN1 | -****** Mouse Buttons Overlay - -#+NAME: mbo-flip -| | | | | | | | | | | -| LGUI | LALT | LCTL | LSFT | | | LSFT | LCTL | LALT | LGUI | -| U_RDO | U_PST | U_CPY | U_CUT | U_UND | U_RDO | U_PST | U_CPY | U_CUT | U_UND | -| U_NP | U_NP | BTN2 | BTN3 | BTN1 | BTN1 | BTN3 | BTN2 | U_NP | U_NP | - - -****** Media +******* Media #+NAME: media-l | RGB_MOD | RGB_HUI | RGB_SAI | RGB_VAI | RGB_TOG | @@ -564,7 +521,7 @@ To select, append ~MIRYOKU_LAYERS=FLIP~ to the ~make~ command line when building | U_NP | U_NP | MUTE | MPLY | MSTP | -****** Num +******* Num #+NAME: num-r | [ | 7 | 8 | 9 | ] | @@ -573,7 +530,7 @@ To select, append ~MIRYOKU_LAYERS=FLIP~ to the ~make~ command line when building | MINS | 0 | DOT | U_NP | U_NP | -****** Sym +******* Sym #+NAME: sym-r | { | & | * | ( | } | @@ -582,7 +539,7 @@ To select, append ~MIRYOKU_LAYERS=FLIP~ to the ~make~ command line when building | _ | ( | ) | U_NP | U_NP | -****** Fun +******* Fun #+NAME: fun-r | PSCR | F7 | F8 | F9 | F12 | @@ -591,7 +548,7 @@ To select, append ~MIRYOKU_LAYERS=FLIP~ to the ~make~ command line when building | TAB | SPC | APP | U_NP | U_NP | -*** COMMENT Templates +**** COMMENT Templates #+NAME: tem | | | | | | | | | | | @@ -621,13 +578,16 @@ Duplicate base layer tap keys on thumbs rather than trans to enable auto-repeat. | U_NP | U_NP | ESC | SPC | TAB | -* Code Generation +** Code Generation + +The layout is maintained in emacs org-mode tables and converted to QMK keymap +data structures using embedded python scripts. -** Table Conversion Scripts +*** Table Conversion Scripts -*** table-layout-taphold +**** table-layout-taphold Produce base layer from separate tap and hold tables. @@ -669,7 +629,7 @@ return results : U_NP, U_NP, LT(MEDIA, KC_ESC), LT(NAV, KC_SPC), LT(MOUSE, KC_TAB), LT(SYM, KC_ENT), LT(NUM, KC_BSPC), LT(FUN, KC_DEL), U_NP, U_NP -*** table-layout-half +**** table-layout-half Produce sub layers given layer name and corresponding table for single hand and incorporating mods and reset from base layer. Layer names must end with 'R' or @@ -726,12 +686,12 @@ return results : U_NP, U_NP, U_NA, U_NA, U_NA, KC_ENT, KC_BSPC, KC_DEL, U_NP, U_NP -*** table-layout-full +**** table-layout-full Produce full layer from single table. Fill for unused keys is configurable. #+NAME: table-layout-full -#+BEGIN_SRC python :var table=mbo :var fill="TRNS" :var symbol_names_table=symbol-names :var nonkc_table=nonkc :tangle no :results verbatim +#+BEGIN_SRC python :var table=button :var fill="TRNS" :var symbol_names_table=symbol-names :var nonkc_table=nonkc :tangle no :results verbatim width = 9 symbol_names_dict = {} nonkc_tuple = tuple(nonkc_table[0]) @@ -757,33 +717,33 @@ return results #+END_SRC #+RESULTS: table-layout-full -: U_RDO, U_PST, U_CPY, U_CUT, U_UND, U_RDO, U_PST, U_CPY, U_CUT, U_UND, +: U_UND, U_CUT, U_CPY, U_PST, U_RDO, U_RDO, U_PST, U_CPY, U_CUT, U_UND, : KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, KC_TRNS, KC_TRNS, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, -: KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, +: U_UND, U_CUT, U_CPY, U_PST, U_RDO, U_RDO, U_PST, U_CPY, U_CUT, U_UND, : U_NP, U_NP, KC_BTN2, KC_BTN3, KC_BTN1, KC_BTN1, KC_BTN3, KC_BTN2, U_NP, U_NP -*** table-enums +**** table-enums Produce layer enums from layer names in hold table. #+NAME: table-enums #+BEGIN_SRC python :var hold_table=hold :var mods_table=mods :tangle no mods_dict = dict.fromkeys(mods_table[0]) -results = 'enum layers { BASE, MBO, ' +layers = [ 'BASE', 'BUTTON' ] for hold_row in hold_table: for hold in hold_row: - if hold not in mods_dict and hold != '' and hold != 'U_NP' and hold != 'RESET': - results += hold + ', ' -results = results.rstrip(', ') + ' };' + if hold not in mods_dict and hold != '' and hold != 'U_NP' and hold != 'RESET' and hold not in layers: + layers.append(hold) +results = 'enum layers { ' + ', '.join(layers) + ' };' return results #+END_SRC #+RESULTS: table-enums -: enum layers { BASE, MBO, MEDIA, NAV, MOUSE, SYM, NUM, FUN }; +: enum layers { BASE, BUTTON, MEDIA, NAV, MOUSE, SYM, NUM, FUN }; -*** table-keycode-mappings +**** table-keycode-mappings Produce keycode mappings according to the provided table. @@ -816,7 +776,7 @@ return results : #define U_UND KC_UNDO -*** COMMENT python-version +**** COMMENT python-version C-c C-c in code block to update @@ -831,10 +791,10 @@ return sys.version : [GCC 5.4.0 20160609] -** Data +*** Data -*** symbol-names +**** symbol-names Symbol, name, and shifted symbol mappings for use in tables. @@ -862,7 +822,7 @@ Symbol, name, and shifted symbol mappings for use in tables. | 0 | 0 | ) | RPRN | -*** mods +**** mods Modifiers usable in hold table. Need to have the same name for ~KC_~ and ~_T~ versions. @@ -871,7 +831,7 @@ versions. | LSFT | LCTL | LALT | LGUI | ALGR | -*** nonkc +**** nonkc Keycodes that match any of these prefixes will not have ~KC_~ automatically prepended. @@ -880,7 +840,7 @@ prepended. | U_ | RGB_ | RESET | S( | C( | SCMD( | LCMD( | -*** header +**** header Header for tangled files. @@ -888,11 +848,11 @@ Header for tangled files. #+BEGIN_SRC C :main no :tangle no Copyright 2019 Manna Harbour https://github.com/manna-harbour/miryoku -generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +generated -*- buffer-read-only: t -*- #+END_SRC -*** license-qmk +**** license-qmk License for tangled QMK C source files. @@ -902,20 +862,21 @@ License for tangled QMK C source files. #+END_SRC -* Subset Mapping +** Subset Mapping The keymap, build options, and configuration are shared between keyboards. The -layout is mapped onto keyboards with different physical layouts as a subset. +layout is mapped onto keyboards with different physical layouts as a subset +without code duplication using the QMK userspace feature and C macros. -** Userspace +*** Userspace The keymap is defined for ~LAYOUT_miryoku~ which is 10x4, with the outer 2 positions on the bottom row unused and the rest of the bottom row being the thumb keys. -*** [[./rules.mk][users/manna-harbour_miryoku/rules.mk]] +**** [[./rules.mk][users/manna-harbour_miryoku/rules.mk]] Build options. Automatically included. @@ -957,7 +918,7 @@ endif #+END_SRC -*** [[./config.h][users/manna-harbour_miryoku/config.h]] +**** [[./config.h][users/manna-harbour_miryoku/config.h]] Config options. Automatically included. @@ -1000,7 +961,7 @@ Config options. Automatically included. #+END_SRC -*** [[./manna-harbour_miryoku.h][users/manna-harbour_miryoku/manna-harbour_miryoku.h]] +**** [[./manna-harbour_miryoku.h][users/manna-harbour_miryoku/manna-harbour_miryoku.h]] Keymap-related definitions. Included from ~manna-harbour_miryoku.c~. Can be included from keymap or layout ~keymap.c~ if needed. @@ -1034,7 +995,7 @@ included from keymap or layout ~keymap.c~ if needed. #+END_SRC -*** [[./manna-harbour_miryoku.c][users/manna-harbour_miryoku/manna-harbour_miryoku.c]] +**** [[./manna-harbour_miryoku.c][users/manna-harbour_miryoku/manna-harbour_miryoku.c]] Contains the keymap. Added from ~rules.mk~. @@ -1048,7 +1009,9 @@ Contains the keymap. Added from ~rules.mk~. const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined MIRYOKU_LAYERS_FLIP [BASE] = LAYOUT_miryoku( - #if defined MIRYOKU_ALPHAS_COLEMAK + #if defined MIRYOKU_ALPHAS_AZERTY +<> + #elif defined MIRYOKU_ALPHAS_COLEMAK <> #elif defined MIRYOKU_ALPHAS_COLEMAKDHK <> @@ -1060,6 +1023,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { <> #elif defined MIRYOKU_ALPHAS_QWERTY <> + #elif defined MIRYOKU_ALPHAS_QWERTZ +<> #else <> #endif @@ -1085,9 +1050,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { <> ), #endif - [MBO] = LAYOUT_miryoku( -<> - ), [NUM] = LAYOUT_miryoku( <> ), @@ -1096,11 +1058,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [FUN] = LAYOUT_miryoku( <> - ) -, + ), #else [BASE] = LAYOUT_miryoku( - #if defined MIRYOKU_ALPHAS_COLEMAK + #if defined MIRYOKU_ALPHAS_AZERTY +<> + #elif defined MIRYOKU_ALPHAS_COLEMAK <> #elif defined MIRYOKU_ALPHAS_COLEMAKDHK <> @@ -1112,6 +1075,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { <> #elif defined MIRYOKU_ALPHAS_QWERTY <> + #elif defined MIRYOKU_ALPHAS_QWERTZ +<> #else <> #endif @@ -1137,9 +1102,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { <> ), #endif - [MBO] = LAYOUT_miryoku( -<> - ), [NUM] = LAYOUT_miryoku( <> ), @@ -1148,13 +1110,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [FUN] = LAYOUT_miryoku( <> - ) + ), #endif + [BUTTON] = LAYOUT_miryoku( +<> + ) }; #+END_SRC -** Layouts +*** Layouts To use the keymap on a keyboard supporting the layouts feature, ~LAYOUT_miryoku~ is defined as a macro mapping onto the layout's own ~LAYOUT~ macro, leaving the @@ -1170,7 +1135,7 @@ make planck/rev6:manna-harbour_miryoku:flash FORCE_LAYOUT=ortho_4x12 # ortho_4x1 #+END_SRC -*** 60_ansi +**** 60_ansi An angled ortho split layout is mapped onto the row-staggered keyboard. The rows are moved up to better position the thumb keys, the hands are separated as @@ -1185,6 +1150,11 @@ command line when building. [[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/mapping/miryoku-kle-mapping-60_ansi-noreverseangle.png]] +Another alternative subset mapping is provided mapping only the 3x10 alphas, +plus spacebar for space / Nav, with the remainder being the default 60_ansi +keymap with semicolon in place of quote. To select this mapping, append +~MIRYOKU_MAPPING=LITE~ to the ~make~ command line when building. + Keyboards supporting this layout: alps64, amj60, bakeneko60, bm60poker, bm60rgb, do60, dp60, dz60, facew, gskt00, infinity60, jm60, kc60, kc60se, ok60, org60, paladin64, panc60, reviung61, smk60, v60_type_r, yd60mq, 1upkeyboards/1up60hse, 1upkeyboards/1up60rgb, 40percentclub/luddite, acheron/keebspcb, acheron/lasgweloth, ai03/polaris, akegata_denki/device_one, atxkb/1894, bioi/g60ble, bt66tech/bt66tech60, cannonkeys/an_c, cannonkeys/instant60, cannonkeys/practice60, clawsome/coupe, dm9records/tartan, duck/eagle_viper, evyd13/plain60, exclusive/e6_rgb, gh60/revc, gh60/satan, gh60/v1p3, handwired/xealousbrown, hineybush/h60, hs60/v1, keebio/wtf60, noxary/260, playkbtw/pk60, ryloo_studio/m0110, thevankeyboards/bananasplit, wilba_tech/zeal60, xd60/rev2, xd60/rev3, cannonkeys/db60/hotswap, cannonkeys/db60/j02, cannonkeys/db60/rev2, exclusive/e6v2/le, exclusive/e6v2/oe, foxlab/leaf60/universal, handwired/co60/rev1, handwired/co60/rev7, handwired/swiftrax/nodu, hs60/v2/ansi, inett_studio/sqx/universal, melgeek/mj61/rev1, melgeek/mj61/rev2, melgeek/mj63/rev1, melgeek/mj63/rev2, sentraq/s60_x/default, sentraq/s60_x/rgb. Example build command lines: @@ -1192,10 +1162,11 @@ Example build command lines: #+BEGIN_SRC sh :tangle no make dz60:manna-harbour_miryoku:flash # dz60 make dz60:manna-harbour_miryoku:flash MIRYOKU_MAPPING=NOREVERSEANGLE # dz60, without reverse column angle +make dz60:manna-harbour_miryoku:flash MIRYOKU_MAPPING=LITE # dz60, with lite mapping #+END_SRC -**** [[../../layouts/community/60_ansi/manna-harbour_miryoku/config.h][layouts/community/60_ansi/manna-harbour_miryoku/config.h]] +***** [[../../layouts/community/60_ansi/manna-harbour_miryoku/config.h][layouts/community/60_ansi/manna-harbour_miryoku/config.h]] Contains subset mapping. @@ -1209,7 +1180,7 @@ Contains subset mapping. #define XXX KC_NO #if defined MIRYOKU_MAPPING_NOREVERSEANGLE -#define LAYOUT_miryoku(\ + #define LAYOUT_miryoku(\ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ @@ -1222,8 +1193,38 @@ K00, K01, K02, K03, K04, XXX, XXX, XXX, K05, K06, K07, K08, K09, XX XXX, K32, K33, K34, XXX, XXX, XXX, XXX, K35, K36, K37, XXX,\ XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX\ ) +#elif defined MIRYOKU_MAPPING_LITE + #if defined MIRYOKU_LAYERS_FLIP + #define LAYOUT_miryoku( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ + N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ +) \ +LAYOUT_60_ansi( \ +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, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, KC_LBRC, KC_RBRC, KC_BSLS, \ +KC_CAPS, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, KC_SCLN, KC_ENT, \ +KC_LSFT, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, KC_RSFT, \ +KC_LCTL, KC_LGUI, KC_LALT, K36, KC_RALT, KC_RGUI, KC_APP, KC_RCTL \ +) + #else + #define LAYOUT_miryoku( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ + N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ +) \ +LAYOUT_60_ansi( \ +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, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, KC_LBRC, KC_RBRC, KC_BSLS, \ +KC_CAPS, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, KC_SCLN, KC_ENT, \ +KC_LSFT, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, KC_RSFT, \ +KC_LCTL, KC_LGUI, KC_LALT, K33, KC_RALT, KC_RGUI, KC_APP, KC_RCTL \ +) + #endif #else -#define LAYOUT_miryoku(\ + #define LAYOUT_miryoku(\ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ @@ -1240,7 +1241,7 @@ XXX, XXX, K00, K01, K02, K03, K04, XXX, K05, K06, K07, K08, K09, XX #+END_SRC -**** [[../../layouts/community/60_ansi/manna-harbour_miryoku/keymap.c][layouts/community/60_ansi/manna-harbour_miryoku/keymap.c]] +***** [[../../layouts/community/60_ansi/manna-harbour_miryoku/keymap.c][layouts/community/60_ansi/manna-harbour_miryoku/keymap.c]] Required by the build system. @@ -1251,7 +1252,7 @@ Required by the build system. #+END_SRC -*** ergodox +**** ergodox For the ergodox layout, the main 5x3 alphas are used as usual. The primary and secondary thumb keys are the inner and outer 2u thumb keys and the tertiary @@ -1270,7 +1271,7 @@ make ergodox_ez:manna-harbour_miryoku:flash # ergodox_ez #+END_SRC -**** [[../../layouts/community/ergodox/manna-harbour_miryoku/config.h][layouts/community/ergodox/manna-harbour_miryoku/config.h]] +***** [[../../layouts/community/ergodox/manna-harbour_miryoku/config.h][layouts/community/ergodox/manna-harbour_miryoku/config.h]] Contains subset mapping. @@ -1302,7 +1303,7 @@ XXX, XXX, XXX, XXX, K32, K37, XXX, XXX, XXX, XXX,\ #+END_SRC -**** [[../../layouts/community/ergodox/manna-harbour_miryoku/keymap.c][layouts/community/ergodox/manna-harbour_miryoku/keymap.c]] +***** [[../../layouts/community/ergodox/manna-harbour_miryoku/keymap.c][layouts/community/ergodox/manna-harbour_miryoku/keymap.c]] Required by the build system. @@ -1313,7 +1314,9 @@ Required by the build system. #+END_SRC -*** ortho_4x10 +**** ortho_4x10 + +An alternative with 180 degree rotation is also provided to enable the USB cable to be relocated for use with laptops. To select this mapping, append ~MIRYOKU_MAPPING=ROTATE~ to the ~make~ command line when building. Keyboards supporting this layout: newgame40, nimrod, marksard/rhymestone, pabile/p40. @@ -1321,10 +1324,11 @@ Example build command lines: #+BEGIN_SRC sh :tangle no make marksard/rhymestone:manna-harbour_miryoku:flash # marksard/rhymestone +make pabile/p40:manna-harbour_miryoku:flash MIRYOKU_MAPPING=ROTATE # pabile/p40, rotate #+END_SRC -**** [[../../layouts/community/ortho_4x10/manna-harbour_miryoku/config.h][layouts/community/ortho_4x10/manna-harbour_miryoku/config.h]] +***** [[../../layouts/community/ortho_4x10/manna-harbour_miryoku/config.h][layouts/community/ortho_4x10/manna-harbour_miryoku/config.h]] Contains subset mapping. @@ -1335,22 +1339,39 @@ Contains subset mapping. #pragma once +#define XXX KC_NO + +#if defined MIRYOKU_MAPPING_ROTATE +#define LAYOUT_miryoku( \ +K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ +K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ +K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ +N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ +) \ +LAYOUT_ortho_4x10( \ +XXX, XXX, K37, K36, K35, K34, K33, K32, XXX, XXX, \ +K29, K28, K27, K26, K25, K24, K23, K22, K21, K20, \ +K19, K18, K17, K16, K15, K14, K13, K12, K11, K10, \ +K09, K08, K07, K06, K05, K04, K03, K02, K01, K00 \ +) +#else #define LAYOUT_miryoku(\ -K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ -K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ -K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ -N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\ -)\ -LAYOUT_ortho_4x10(\ -K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ -K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ -K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ -KC_NO, KC_NO, K32, K33, K34, K35, K36, K37, KC_NO, KC_NO\ +K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ +K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ +K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ +N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ +) \ +LAYOUT_ortho_4x10( \ +K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ +K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ +K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ +XXX, XXX, K32, K33, K34, K35, K36, K37, XXX, XXX \ ) +#endif #+END_SRC -**** [[../../layouts/community/ortho_4x10/manna-harbour_miryoku/keymap.c][layouts/community/ortho_4x10/manna-harbour_miryoku/keymap.c]] +***** [[../../layouts/community/ortho_4x10/manna-harbour_miryoku/keymap.c][layouts/community/ortho_4x10/manna-harbour_miryoku/keymap.c]] Required by the build system. @@ -1361,7 +1382,7 @@ Required by the build system. #+END_SRC -*** ortho_4x12 +**** ortho_4x12 For the ortho_4x12 layout, the middle two columns, and the 2 keys on each end of the bottom row are unused. This allows the hands to be positioned without ulnar @@ -1398,7 +1419,7 @@ make keebio/levinson:manna-harbour_miryoku:flash MIRYOKU_MAPPING=EXTENDED_THUMBS #+END_SRC -**** [[../../layouts/community/ortho_4x12/manna-harbour_miryoku/config.h][layouts/community/ortho_4x12/manna-harbour_miryoku/config.h]] +***** [[../../layouts/community/ortho_4x12/manna-harbour_miryoku/config.h][layouts/community/ortho_4x12/manna-harbour_miryoku/config.h]] Contains subset mapping. @@ -1452,7 +1473,7 @@ KC_NO, KC_NO, K32, K33, K34, KC_NO, KC_NO, K35, K36, K37, KC_NO, KC_ #+END_SRC -**** [[../../layouts/community/ortho_4x12/manna-harbour_miryoku/keymap.c][layouts/community/ortho_4x12/manna-harbour_miryoku/keymap.c]] +***** [[../../layouts/community/ortho_4x12/manna-harbour_miryoku/keymap.c][layouts/community/ortho_4x12/manna-harbour_miryoku/keymap.c]] Required by the build system. @@ -1463,7 +1484,7 @@ Required by the build system. #+END_SRC -*** ortho_5x12 +**** ortho_5x12 As per ortho_4x12 but the top row is unused. @@ -1480,7 +1501,7 @@ make keebio/nyquist/rev3:manna-harbour_miryoku:flash MIRYOKU_MAPPING=EXTENDED_TH #+END_SRC -**** [[../../layouts/community/ortho_5x12/manna-harbour_miryoku/config.h][layouts/community/ortho_5x12/manna-harbour_miryoku/config.h]] +***** [[../../layouts/community/ortho_5x12/manna-harbour_miryoku/config.h][layouts/community/ortho_5x12/manna-harbour_miryoku/config.h]] Contains subset mapping. @@ -1537,7 +1558,7 @@ KC_NO, KC_NO, K32, K33, K34, KC_NO, KC_NO, K35, K36, K37, KC_NO, KC_ #+END_SRC -**** [[../../layouts/community/ortho_5x12/manna-harbour_miryoku/keymap.c][layouts/community/ortho_5x12/manna-harbour_miryoku/keymap.c]] +***** [[../../layouts/community/ortho_5x12/manna-harbour_miryoku/keymap.c][layouts/community/ortho_5x12/manna-harbour_miryoku/keymap.c]] Required by the build system. @@ -1548,7 +1569,7 @@ Required by the build system. #+END_SRC -*** ortho_5x15 +**** ortho_5x15 For the ortho_5x15 layout, the top row, middle 5 columns, and the 2 keys on each end of the bottom row are unused. This allows the hands to be positioned @@ -1574,7 +1595,7 @@ make idobo:manna-harbour_miryoku:flash # idobo #+END_SRC -**** [[../../layouts/community/ortho_5x15/manna-harbour_miryoku/config.h][layouts/community/ortho_5x15/manna-harbour_miryoku/config.h]] +***** [[../../layouts/community/ortho_5x15/manna-harbour_miryoku/config.h][layouts/community/ortho_5x15/manna-harbour_miryoku/config.h]] Contains subset mapping. @@ -1621,7 +1642,7 @@ XXX, XXX, K32, K33, K34, XXX, XXX, XXX, XXX, XXX, K35, K36, K37, XXX, XXX\ #+RESULTS: -**** [[../../layouts/community/ortho_5x15/manna-harbour_miryoku/keymap.c][layouts/community/ortho_5x15/manna-harbour_miryoku/keymap.c]] +***** [[../../layouts/community/ortho_5x15/manna-harbour_miryoku/keymap.c][layouts/community/ortho_5x15/manna-harbour_miryoku/keymap.c]] Required by the build system. @@ -1632,7 +1653,7 @@ Required by the build system. #+END_SRC -*** planck_mit +**** planck_mit The middle two columns including the middle 2u key, and the 2 keys on each end of the bottom row are unused. @@ -1647,7 +1668,7 @@ make planck/rev6:manna-harbour_miryoku:flash FORCE_LAYOUT=planck_mit # planck re #+END_SRC -**** [[../../layouts/community/planck_mit/manna-harbour_miryoku/config.h][layouts/community/planck_mit/manna-harbour_miryoku/config.h]] +***** [[../../layouts/community/planck_mit/manna-harbour_miryoku/config.h][layouts/community/planck_mit/manna-harbour_miryoku/config.h]] Contains subset mapping. @@ -1673,7 +1694,7 @@ KC_NO, KC_NO, K32, K33, K34, KC_NO, K35, K36, K37, KC_NO, KC_ #+END_SRC -**** [[../../layouts/community/planck_mit/manna-harbour_miryoku/keymap.c][layouts/community/planck_mit/manna-harbour_miryoku/keymap.c]] +***** [[../../layouts/community/planck_mit/manna-harbour_miryoku/keymap.c][layouts/community/planck_mit/manna-harbour_miryoku/keymap.c]] Required by the build system. @@ -1684,7 +1705,7 @@ Required by the build system. #+END_SRC -*** split_3x5_3 +**** split_3x5_3 Keyboards supporting this layout: arch_36, boardsource/microdox, centromere, crkbd, eek, miniaxe, minidox/rev1, pteron36, squiggle/rev1, suihankey/split/rev1. @@ -1696,7 +1717,7 @@ make minidox:manna-harbour_miryoku:flash # minidox #+END_SRC -**** [[../../layouts/community/split_3x5_3/manna-harbour_miryoku/config.h][layouts/community/split_3x5_3/manna-harbour_miryoku/config.h]] +***** [[../../layouts/community/split_3x5_3/manna-harbour_miryoku/config.h][layouts/community/split_3x5_3/manna-harbour_miryoku/config.h]] Contains subset mapping. @@ -1722,7 +1743,7 @@ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ #+END_SRC -**** [[../../layouts/community/split_3x5_3/manna-harbour_miryoku/keymap.c][layouts/community/split_3x5_3/manna-harbour_miryoku/keymap.c]] +***** [[../../layouts/community/split_3x5_3/manna-harbour_miryoku/keymap.c][layouts/community/split_3x5_3/manna-harbour_miryoku/keymap.c]] Required by the build system. @@ -1733,7 +1754,7 @@ Required by the build system. #+END_SRC -*** split_3x6_3 +**** split_3x6_3 The outer columns are unused. @@ -1747,7 +1768,7 @@ make crkbd:manna-harbour_miryoku:flash # crkbd #+END_SRC -**** [[../../layouts/community/split_3x6_3/manna-harbour_miryoku/config.h][layouts/community/split_3x6_3/manna-harbour_miryoku/config.h]] +***** [[../../layouts/community/split_3x6_3/manna-harbour_miryoku/config.h][layouts/community/split_3x6_3/manna-harbour_miryoku/config.h]] Contains subset mapping. @@ -1773,7 +1794,7 @@ KC_NO, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29 #+END_SRC -**** [[../../layouts/community/split_3x6_3/manna-harbour_miryoku/keymap.c][layouts/community/split_3x6_3/manna-harbour_miryoku/keymap.c]] +***** [[../../layouts/community/split_3x6_3/manna-harbour_miryoku/keymap.c][layouts/community/split_3x6_3/manna-harbour_miryoku/keymap.c]] Required by the build system. @@ -1784,14 +1805,14 @@ Required by the build system. #+END_SRC -** Keyboards +*** Keyboards To use the keymap on a keyboard which does not support the layouts feature, ~LAYOUT_miryoku~ is defined as a macro mapping onto the keyboard's own ~LAYOUT~ macro, leaving the unused keys as ~KC_NO~. -*** atreus +**** atreus Only the main 5x3 alphas and the inner 3 thumb keys are used. @@ -1802,7 +1823,7 @@ make atreus:manna-harbour_miryoku:flash #+END_SRC -**** [[../../keyboards/atreus/keymaps/manna-harbour_miryoku/config.h][keyboards/atreus/keymaps/manna-harbour_miryoku/config.h]] +***** [[../../keyboards/atreus/keymaps/manna-harbour_miryoku/config.h][keyboards/atreus/keymaps/manna-harbour_miryoku/config.h]] Contains subset mapping. @@ -1830,7 +1851,7 @@ XXX, XXX, XXX, K32, K33, K34, K35, K36, K37, XXX, XXX, XXX\ #+END_SRC -**** [[../../keyboards/atreus/keymaps/manna-harbour_miryoku/keymap.c][keyboards/atreus/keymaps/manna-harbour_miryoku/keymap.c]] +***** [[../../keyboards/atreus/keymaps/manna-harbour_miryoku/keymap.c][keyboards/atreus/keymaps/manna-harbour_miryoku/keymap.c]] Required by the build system. @@ -1841,7 +1862,57 @@ Required by the build system. #+END_SRC -*** ergotravel +**** bastardkb/scylla + +To build for this keyboard, + +#+BEGIN_SRC sh :tangle no +make bastardkb/scylla:manna-harbour_miryoku:flash +#+END_SRC + + +***** [[../../keyboards/bastardkb/scylla/keymaps/manna-harbour_miryoku/config.h][keyboards/bastardkb/scylla/keymaps/manna-harbour_miryoku/config.h]] + +Contains subset mapping. + +#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/bastardkb/scylla/keymaps/manna-harbour_miryoku/config.h +// <
> + +<> + +#pragma once + +#define XXX KC_NO + +#define LAYOUT_miryoku( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ + N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ +) \ +LAYOUT_split_4x6_5( \ +XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, \ +XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX, \ +XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX, \ +XXX, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, XXX, \ + K32, K33, K34, K35, K36, K37, \ + XXX, XXX, XXX, XXX \ +) +#+END_SRC + + +***** [[../../keyboards/bastardkb/scylla/keymaps/manna-harbour_miryoku/keymap.c][keyboards/bastardkb/scylla/keymaps/manna-harbour_miryoku/keymap.c]] + +Required by the build system. + +#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/bastardkb/scylla/keymaps/manna-harbour_miryoku/keymap.c +// <
> + +<> +#+END_SRC + + +**** ergotravel To build for this keyboard, @@ -1850,7 +1921,7 @@ make ergotravel:manna-harbour_miryoku:flash #+END_SRC -**** [[../../keyboards/ergotravel/keymaps/manna-harbour_miryoku/config.h][keyboards/ergotravel/keymaps/manna-harbour_miryoku/config.h]] +***** [[../../keyboards/ergotravel/keymaps/manna-harbour_miryoku/config.h][keyboards/ergotravel/keymaps/manna-harbour_miryoku/config.h]] Contains subset mapping. @@ -1878,7 +1949,7 @@ XXX, XXX, XXX, K32, K33, K34, K35, K36, K37, XXX, XXX, XXX \ #+END_SRC -**** [[../../keyboards/ergotravel/keymaps/manna-harbour_miryoku/keymap.c][keyboards/ergotravel/keymaps/manna-harbour_miryoku/keymap.c]] +***** [[../../keyboards/ergotravel/keymaps/manna-harbour_miryoku/keymap.c][keyboards/ergotravel/keymaps/manna-harbour_miryoku/keymap.c]] Required by the build system. @@ -1889,7 +1960,7 @@ Required by the build system. #+END_SRC -*** for_science +**** for_science The top row is unused. @@ -1900,7 +1971,7 @@ make for_science:manna-harbour_miryoku:flash #+END_SRC -**** [[../../keyboards/for_science/keymaps/manna-harbour_miryoku/config.h][keyboards/for_science/keymaps/manna-harbour_miryoku/config.h]] +***** [[../../keyboards/for_science/keymaps/manna-harbour_miryoku/config.h][keyboards/for_science/keymaps/manna-harbour_miryoku/config.h]] Contains subset mapping. @@ -1929,7 +2000,7 @@ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ #+END_SRC -**** [[../../keyboards/for_science/keymaps/manna-harbour_miryoku/keymap.c][keyboards/for_science/keymaps/manna-harbour_miryoku/keymap.c]] +***** [[../../keyboards/for_science/keymaps/manna-harbour_miryoku/keymap.c][keyboards/for_science/keymaps/manna-harbour_miryoku/keymap.c]] Required by the build system. @@ -1940,7 +2011,7 @@ Required by the build system. #+END_SRC -*** gergo +**** gergo Only the main 5x3 alphas and the outer 3 thumb keys are used. @@ -1951,7 +2022,7 @@ make gergo:manna-harbour_miryoku:flash #+END_SRC -**** [[../../keyboards/gergo/keymaps/manna-harbour_miryoku/config.h][keyboards/gergo/keymaps/manna-harbour_miryoku/config.h]] +***** [[../../keyboards/gergo/keymaps/manna-harbour_miryoku/config.h][keyboards/gergo/keymaps/manna-harbour_miryoku/config.h]] Contains subset mapping. @@ -1979,7 +2050,7 @@ XXX, K20, K21, K22, K23, K24, XXX, XXX, XXX, XXX, K25, K26, K27, K28, K29, #+END_SRC -**** [[../../keyboards/gergo/keymaps/manna-harbour_miryoku/keymap.c][keyboards/gergo/keymaps/manna-harbour_miryoku/keymap.c]] +***** [[../../keyboards/gergo/keymaps/manna-harbour_miryoku/keymap.c][keyboards/gergo/keymaps/manna-harbour_miryoku/keymap.c]] Required by the build system. @@ -1990,7 +2061,7 @@ Required by the build system. #+END_SRC -*** handwired/dactyl_manuform/4x5 +**** handwired/dactyl_manuform/4x5 Only the main 5x3 alphas and the main 3 thumb keys are used. @@ -2001,7 +2072,7 @@ make handwired/dactyl_manuform/4x5:manna-harbour_miryoku:flash #+END_SRC -**** [[../../keyboards/handwired/dactyl_manuform/4x5/keymaps/manna-harbour_miryoku/config.h][keyboards/handwired/dactyl_manuform/4x5/keymaps/manna-harbour_miryoku/config.h]] +***** [[../../keyboards/handwired/dactyl_manuform/4x5/keymaps/manna-harbour_miryoku/config.h][keyboards/handwired/dactyl_manuform/4x5/keymaps/manna-harbour_miryoku/config.h]] Contains subset mapping. @@ -2032,7 +2103,7 @@ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ #+END_SRC -**** [[../../keyboards/handwired/dactyl_manuform/4x5/keymaps/manna-harbour_miryoku/keymap.c][keyboards/handwired/dactyl_manuform/4x5/keymaps/manna-harbour_miryoku/keymap.c]] +***** [[../../keyboards/handwired/dactyl_manuform/4x5/keymaps/manna-harbour_miryoku/keymap.c][keyboards/handwired/dactyl_manuform/4x5/keymaps/manna-harbour_miryoku/keymap.c]] Required by the build system. @@ -2043,7 +2114,7 @@ Required by the build system. #+END_SRC -*** handwired/dactyl_manuform/5x6 +**** handwired/dactyl_manuform/5x6 Only the main 5x3 alphas and the main 3 thumb keys are used. @@ -2054,7 +2125,7 @@ make handwired/dactyl_manuform/5x6:manna-harbour_miryoku:flash #+END_SRC -**** [[../../keyboards/handwired/dactyl_manuform/5x6/keymaps/manna-harbour_miryoku/config.h][keyboards/handwired/dactyl_manuform/5x6/keymaps/manna-harbour_miryoku/config.h]] +***** [[../../keyboards/handwired/dactyl_manuform/5x6/keymaps/manna-harbour_miryoku/config.h][keyboards/handwired/dactyl_manuform/5x6/keymaps/manna-harbour_miryoku/config.h]] Contains subset mapping. @@ -2086,7 +2157,7 @@ XXX, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, X #+END_SRC -**** [[../../keyboards/handwired/dactyl_manuform/5x6/keymaps/manna-harbour_miryoku/keymap.c][keyboards/handwired/dactyl_manuform/5x6/keymaps/manna-harbour_miryoku/keymap.c]] +***** [[../../keyboards/handwired/dactyl_manuform/5x6/keymaps/manna-harbour_miryoku/keymap.c][keyboards/handwired/dactyl_manuform/5x6/keymaps/manna-harbour_miryoku/keymap.c]] Required by the build system. @@ -2097,7 +2168,7 @@ Required by the build system. #+END_SRC -*** keebio/iris +**** keebio/iris Only the main 5x3 alphas and the bottom 3 thumb keys are used. @@ -2108,7 +2179,7 @@ make keebio/iris/rev4:manna-harbour_miryoku:flash #+END_SRC -**** [[../../keyboards/keebio/iris/keymaps/manna-harbour_miryoku/config.h][keyboards/keebio/iris/keymaps/manna-harbour_miryoku/config.h]] +***** [[../../keyboards/keebio/iris/keymaps/manna-harbour_miryoku/config.h][keyboards/keebio/iris/keymaps/manna-harbour_miryoku/config.h]] Contains subset mapping. @@ -2137,7 +2208,7 @@ XXX, K20, K21, K22, K23, K24, XXX, XXX, K25, K26, K27, K28, K29, XXX,\ #+END_SRC -**** [[../../keyboards/keebio/iris/keymaps/manna-harbour_miryoku/keymap.c][keyboards/keebio/iris/keymaps/manna-harbour_miryoku/keymap.c]] +***** [[../../keyboards/keebio/iris/keymaps/manna-harbour_miryoku/keymap.c][keyboards/keebio/iris/keymaps/manna-harbour_miryoku/keymap.c]] Required by the build system. @@ -2148,7 +2219,7 @@ Required by the build system. #+END_SRC -*** keyboardio/atreus +**** keyboardio/atreus Only the main 5x3 alphas and the inner 3 thumb keys are used. @@ -2159,7 +2230,7 @@ make keyboardio/atreus:manna-harbour_miryoku:flash #+END_SRC -**** [[../../keyboards/keyboardio/atreus/keymaps/manna-harbour_miryoku/config.h][keyboards/keyboardio/atreus/keymaps/manna-harbour_miryoku/config.h]] +***** [[../../keyboards/keyboardio/atreus/keymaps/manna-harbour_miryoku/config.h][keyboards/keyboardio/atreus/keymaps/manna-harbour_miryoku/config.h]] Contains subset mapping. @@ -2187,7 +2258,7 @@ XXX, XXX, XXX, K32, K33, K34, K35, K36, K37, XXX, XXX, XXX \ #+END_SRC -**** [[../../keyboards/keyboardio/atreus/keymaps/manna-harbour_miryoku/keymap.c][keyboards/keyboardio/atreus/keymaps/manna-harbour_miryoku/keymap.c]] +***** [[../../keyboards/keyboardio/atreus/keymaps/manna-harbour_miryoku/keymap.c][keyboards/keyboardio/atreus/keymaps/manna-harbour_miryoku/keymap.c]] Required by the build system. @@ -2198,82 +2269,7 @@ Required by the build system. #+END_SRC -*** kyria - -Only the main 5x3 alphas and the middle 3 lower thumb keys are used. - -[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/mapping/miryoku-kle-mapping-kyria.png]] - -An alternative subset mapping is also provided with the thumb keys shifted one -position in the direction of thumb extension. To select this mapping, append -~MIRYOKU_MAPPING=EXTENDED_THUMBS~ to the ~make~ command line when building. - -[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/mapping/miryoku-kle-mapping-kyria-extended_thumbs.png]] - - -To build for this keyboard, - -#+BEGIN_SRC sh :tangle no -make kyria:manna-harbour_miryoku:flash -make kyria:manna-harbour_miryoku:flash MIRYOKU_MAPPING=EXTENDED_THUMBS # extended thumb position -#+END_SRC - - -**** [[../../keyboards/kyria/keymaps/manna-harbour_miryoku/config.h][keyboards/kyria/keymaps/manna-harbour_miryoku/config.h]] - -Contains subset mapping. - -#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/kyria/keymaps/manna-harbour_miryoku/config.h -// <
> - -<> - -#pragma once - -#define XXX KC_NO - -#if defined MIRYOKU_MAPPING_EXTENDED_THUMBS -#define LAYOUT_miryoku( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ - N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ -) \ -LAYOUT( \ -XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX, \ -XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX, \ -XXX, K20, K21, K22, K23, K24, XXX, XXX, XXX, XXX, K25, K26, K27, K28, K29, XXX, \ - XXX, XXX, K32, K33, K34, K35, K36, K37, XXX, XXX \ -) -#else -#define LAYOUT_miryoku( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ - N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ -) \ -LAYOUT( \ -XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX, \ -XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX, \ -XXX, K20, K21, K22, K23, K24, XXX, XXX, XXX, XXX, K25, K26, K27, K28, K29, XXX, \ - XXX, K32, K33, K34, XXX, XXX, K35, K36, K37, XXX \ -) -#endif -#+END_SRC - - -**** [[../../keyboards/kyria/keymaps/manna-harbour_miryoku/keymap.c][keyboards/kyria/keymaps/manna-harbour_miryoku/keymap.c]] - -Required by the build system. - -#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/kyria/keymaps/manna-harbour_miryoku/keymap.c -// <
> - -<> -#+END_SRC - - -*** lily58 +**** lily58 Only the main 5x3 alphas and the inner 3 thumb keys are used. @@ -2284,7 +2280,7 @@ make lily58:manna-harbour_miryoku:flash #+END_SRC -**** [[../../keyboards/lily58/keymaps/manna-harbour_miryoku/config.h][keyboards/lily58/keymaps/manna-harbour_miryoku/config.h]] +***** [[../../keyboards/lily58/keymaps/manna-harbour_miryoku/config.h][keyboards/lily58/keymaps/manna-harbour_miryoku/config.h]] Contains subset mapping. @@ -2313,7 +2309,7 @@ XXX, K20, K21, K22, K23, K24, XXX, XXX, K25, K26, K27, K28, K29, XXX,\ #+END_SRC -**** [[../../keyboards/lily58/keymaps/manna-harbour_miryoku/keymap.c][keyboards/lily58/keymaps/manna-harbour_miryoku/keymap.c]] +***** [[../../keyboards/lily58/keymaps/manna-harbour_miryoku/keymap.c][keyboards/lily58/keymaps/manna-harbour_miryoku/keymap.c]] Required by the build system. @@ -2324,7 +2320,7 @@ Required by the build system. #+END_SRC -*** moonlander +**** moonlander The main 5x3 alphas are used as usual. The primary, secondary, and tertiary thumb keys are the closest piano key, middle piano key, and the innermost key of @@ -2337,7 +2333,7 @@ make moonlander:manna-harbour_miryoku:flash #+END_SRC -**** [[../../keyboards/moonlander/keymaps/manna-harbour_miryoku/config.h][keyboards/moonlander/keymaps/manna-harbour_miryoku/config.h]] +***** [[../../keyboards/moonlander/keymaps/manna-harbour_miryoku/config.h][keyboards/moonlander/keymaps/manna-harbour_miryoku/config.h]] Contains subset mapping. @@ -2367,7 +2363,7 @@ XXX, XXX, XXX, XXX, K32, XXX, XXX, K37, XXX, XXX, XXX, XXX,\ #+END_SRC -**** [[../../keyboards/moonlander/keymaps/manna-harbour_miryoku/keymap.c][keyboards/moonlander/keymaps/manna-harbour_miryoku/keymap.c]] +***** [[../../keyboards/moonlander/keymaps/manna-harbour_miryoku/keymap.c][keyboards/moonlander/keymaps/manna-harbour_miryoku/keymap.c]] Required by the build system. @@ -2378,7 +2374,7 @@ Required by the build system. #+END_SRC -*** redox_w +**** redox_w Only the main 5x3 alphas and the main 3 thumb keys are used. @@ -2389,7 +2385,7 @@ make redox_w:manna-harbour_miryoku:flash #+END_SRC -**** [[../../keyboards/redox_w/keymaps/manna-harbour_miryoku/config.h][keyboards/redox_w/keymaps/manna-harbour_miryoku/config.h]] +***** [[../../keyboards/redox_w/keymaps/manna-harbour_miryoku/config.h][keyboards/redox_w/keymaps/manna-harbour_miryoku/config.h]] Contains subset mapping. @@ -2420,7 +2416,7 @@ XXX, XXX, XXX, XXX, K32, K33, K34, K35, K36, K37, XXX, XXX, XXX, #+RESULTS: -**** [[../../keyboards/redox_w/keymaps/manna-harbour_miryoku/keymap.c][keyboards/redox_w/keymaps/manna-harbour_miryoku/keymap.c]] +***** [[../../keyboards/redox_w/keymaps/manna-harbour_miryoku/keymap.c][keyboards/redox_w/keymaps/manna-harbour_miryoku/keymap.c]] Required by the build system. @@ -2431,7 +2427,7 @@ Required by the build system. #+END_SRC -*** sofle +**** sofle To build for this keyboard, @@ -2440,7 +2436,7 @@ make sofle:manna-harbour_miryoku:flash #+END_SRC -**** [[../../keyboards/sofle/keymaps/manna-harbour_miryoku/config.h][keyboards/sofle/keymaps/manna-harbour_miryoku/config.h]] +***** [[../../keyboards/sofle/keymaps/manna-harbour_miryoku/config.h][keyboards/sofle/keymaps/manna-harbour_miryoku/config.h]] Contains subset mapping. @@ -2469,7 +2465,7 @@ XXX, K20, K21, K22, K23, K24, XXX, XXX, K25, K26, K27, K28, K29, XXX,\ #+END_SRC -**** [[../../keyboards/sofle/keymaps/manna-harbour_miryoku/keymap.c][keyboards/sofle/keymaps/manna-harbour_miryoku/keymap.c]] +***** [[../../keyboards/sofle/keymaps/manna-harbour_miryoku/keymap.c][keyboards/sofle/keymaps/manna-harbour_miryoku/keymap.c]] Required by the build system. @@ -2480,7 +2476,82 @@ Required by the build system. #+END_SRC -*** torn +**** splitkb/kyria + +Only the main 5x3 alphas and the middle 3 lower thumb keys are used. + +[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/mapping/miryoku-kle-mapping-kyria.png]] + +An alternative subset mapping is also provided with the thumb keys shifted one +position in the direction of thumb extension. To select this mapping, append +~MIRYOKU_MAPPING=EXTENDED_THUMBS~ to the ~make~ command line when building. + +[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/mapping/miryoku-kle-mapping-kyria-extended_thumbs.png]] + + +To build for this keyboard, + +#+BEGIN_SRC sh :tangle no +make splitkb/kyria:manna-harbour_miryoku:flash +make splitkb/kyria:manna-harbour_miryoku:flash MIRYOKU_MAPPING=EXTENDED_THUMBS # extended thumb position +#+END_SRC + + +***** [[../../keyboards/splitkb/kyria/keymaps/manna-harbour_miryoku/config.h][keyboards/splitkb/kyria/keymaps/manna-harbour_miryoku/config.h]] + +Contains subset mapping. + +#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/splitkb/kyria/keymaps/manna-harbour_miryoku/config.h +// <
> + +<> + +#pragma once + +#define XXX KC_NO + +#if defined MIRYOKU_MAPPING_EXTENDED_THUMBS +#define LAYOUT_miryoku( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ + N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ +) \ +LAYOUT( \ +XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX, \ +XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX, \ +XXX, K20, K21, K22, K23, K24, XXX, XXX, XXX, XXX, K25, K26, K27, K28, K29, XXX, \ + XXX, XXX, K32, K33, K34, K35, K36, K37, XXX, XXX \ +) +#else +#define LAYOUT_miryoku( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ + N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ +) \ +LAYOUT( \ +XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX, \ +XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX, \ +XXX, K20, K21, K22, K23, K24, XXX, XXX, XXX, XXX, K25, K26, K27, K28, K29, XXX, \ + XXX, K32, K33, K34, XXX, XXX, K35, K36, K37, XXX \ +) +#endif +#+END_SRC + + +***** [[../../keyboards/splitkb/kyria/keymaps/manna-harbour_miryoku/keymap.c][keyboards/splitkb/kyria/keymaps/manna-harbour_miryoku/keymap.c]] + +Required by the build system. + +#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/splitkb/kyria/keymaps/manna-harbour_miryoku/keymap.c +// <
> + +<> +#+END_SRC + + +**** torn To build for this keyboard, @@ -2489,7 +2560,7 @@ make torn:manna-harbour_miryoku:flash #+END_SRC -**** [[../../keyboards/torn/keymaps/manna-harbour_miryoku/config.h][keyboards/torn/keymaps/manna-harbour_miryoku/config.h]] +***** [[../../keyboards/torn/keymaps/manna-harbour_miryoku/config.h][keyboards/torn/keymaps/manna-harbour_miryoku/config.h]] Contains subset mapping. @@ -2517,7 +2588,7 @@ KC_NO, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29 #+RESULTS: -**** [[../../keyboards/torn/keymaps/manna-harbour_miryoku/keymap.c][keyboards/torn/keymaps/manna-harbour_miryoku/keymap.c]] +***** [[../../keyboards/torn/keymaps/manna-harbour_miryoku/keymap.c][keyboards/torn/keymaps/manna-harbour_miryoku/keymap.c]] Required by the build system. @@ -2528,7 +2599,7 @@ Required by the build system. #+END_SRC -** Customisation +*** Customisation To add customisations to a keyboard or layout while importing the miryoku keymap, copy ~config.h~ and ~keymap.c~ from the keyboard or layout's @@ -2542,7 +2613,7 @@ layout and modify ~LAYOUT_miryoku~ in ~config.h~ referring to the keyboard or layout's ~LAYOUT~ macro. -*** Examples +**** Examples To use any of the examples, create a new branch from the miryoku development branch and follow the same steps as seen in the commit messages and code changes @@ -2550,28 +2621,28 @@ in the examples, making the appropriate changes for your keyboard and desired customisations. -**** Add Layers +***** Add Layers - https://github.com/manna-harbour/qmk_firmware/commits/miryoku-examples-add-layers/keyboards/crkbd/keymaps/miryoku-examples-add-layers -* Experimental Features +** Experimental Features -** Bilateral Combinations +*** Bilateral Combinations - [[https://github.com/manna-harbour/qmk_firmware/issues/29][Bilateral Combinations]] -** Retro Shift +*** Retro Shift - [[https://github.com/manna-harbour/qmk_firmware/issues/33][Retro Shift]] -* Documentation :noexport_1: +** Documentation -** QMK +*** QMK - https://docs.qmk.fm/ - https://docs.qmk.fm/#/config_options @@ -2588,18 +2659,13 @@ customisations. - https://docs.qmk.fm/#/tap_hold -** Org Mode +*** Org Mode - https://orgmode.org/ - https://orgmode.org/manual/Tables.html - https://orgmode.org/manual/Working-with-Source-Code.html -* Contact - -For feature requests or issues with code or documentation please -[[https://github.com/manna-harbour/qmk_firmware/issues/new][open an issue]]. - -For more general discussion please [[https://github.com/manna-harbour/manna-harbour/tree/main/contact][contact Manna Harbour]]. +** [[https://github.com/manna-harbour][https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/logos/manna-harbour-boa-32.png]] diff --git a/users/manna-harbour_miryoku/rules.mk b/users/manna-harbour_miryoku/rules.mk index 809e630354d..085f0b50199 100644 --- a/users/manna-harbour_miryoku/rules.mk +++ b/users/manna-harbour_miryoku/rules.mk @@ -1,6 +1,6 @@ # Copyright 2019 Manna Harbour # https://github.com/manna-harbour/miryoku -# generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +# generated -*- buffer-read-only: t -*- MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control diff --git a/users/mechmerlin/changelog.md b/users/mechmerlin/changelog.md index 2f8fa687a90..733c65a9793 100644 --- a/users/mechmerlin/changelog.md +++ b/users/mechmerlin/changelog.md @@ -1,6 +1,19 @@ # Changelog All notable changes to my userspace will be documented in this file. +## [0.4.1] - 2021-10-30 + +### Added +- `RGB_DISABLE_WHEN_USB_SUSPENDED` added in `config.h`. Couple of my boards now have per key RGB and have been staying on when my computer sleeps. +## [0.4.0] - 2021-10-05 + +### Added +- Introduced new keycode KV_VER to output the version of QMK. Thanks to drashna for this. + +### Changed +- Updated keymaps to use underscores instead of KC_TRNS as it was getting hard to read for my tired eyes. +- Updated readmes on my preferred layouts. + ## [0.3.0] - 2020-02-02 ### Changed - Added the `_CL` layer to all the boards for access to `EEP_RST` and `RESET` keycodes. This was done primarily to avoid triggering `RESET` accidentally. diff --git a/users/mechmerlin/config.h b/users/mechmerlin/config.h index 698e237b01f..459c181673f 100644 --- a/users/mechmerlin/config.h +++ b/users/mechmerlin/config.h @@ -5,6 +5,10 @@ #define RGBLIGHT_ANIMATIONS #endif // RGBLIGHT_ENABLE +#ifdef RGB_MATRIX_ENABLE + #define RGB_DISABLE_WHEN_USB_SUSPENDED +#endif + #ifdef AUDIO_CLICKY #define AUDIO_CLICKY_ON #define AUDIO_CLICKY_FREQ_DEFAULT 261.63f diff --git a/users/mechmerlin/mechmerlin.c b/users/mechmerlin/mechmerlin.c index ad60bd19666..23def968d44 100644 --- a/users/mechmerlin/mechmerlin.c +++ b/users/mechmerlin/mechmerlin.c @@ -1,4 +1,7 @@ #include "mechmerlin.h" +#include "version.h" + +#define TAP_CODE_DELAY 10 bool process_record_user(uint16_t keycode, keyrecord_t *record) { static uint16_t fnx_layer_timer; @@ -15,9 +18,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } } break; - case KC_MAC: + case KC_VER: if (record->event.pressed) { - SEND_STRING("meow"); + send_string_with_delay_P(PSTR(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION ", Built on: " QMK_BUILDDATE), TAP_CODE_DELAY); } else { } break; diff --git a/users/mechmerlin/mechmerlin.h b/users/mechmerlin/mechmerlin.h index 9802c3ecd27..79386e76636 100644 --- a/users/mechmerlin/mechmerlin.h +++ b/users/mechmerlin/mechmerlin.h @@ -12,7 +12,7 @@ enum userspace_layers { // Enum of custom keycodes defined in process_record_user enum keycodes { KC_FNX, // Hold for FN layer, tap to toggle ARROWS layer. - KC_MAC, // Text macro. + KC_VER, // Version macro. }; // Custom #defined keycodes diff --git a/users/mechmerlin/readme.md b/users/mechmerlin/readme.md index 14a86f055bb..1070953111f 100644 --- a/users/mechmerlin/readme.md +++ b/users/mechmerlin/readme.md @@ -1,4 +1,4 @@ -# MechMerlin's Userspace v0.2.0 +# MechMerlin's Userspace v0.4.0 This is a collection of my most commonly used QMK features. @@ -32,12 +32,16 @@ It is used primarily on my `LAYOUT_60_ansi` boards as my regular toggle (the 1u This is just a wrapper for `CTL_T(KC_CAPS)`. This is a hold for control and tap for caps lock. +### KC_VER + +Output the version of QMK Firmware on device. + ## QMK Features ---- -### RGBLIGHT_SLEEP +### RGBLIGHT_SLEEP and RGB_DISABLE_WHEN_USB_SUSPENDED -Ensures that when my computer is in sleep mode, the keyboard underglow lights will also be off. +Ensures that when my computer is in sleep mode, the keyboard underglow and inswitch RGB lights will also be off. ### Audio Clicky diff --git a/users/noroadsleft/readme.md b/users/noroadsleft/readme.md index bee6ee272f5..1173d15ec19 100644 --- a/users/noroadsleft/readme.md +++ b/users/noroadsleft/readme.md @@ -9,7 +9,7 @@ This directory holds the code that's the same for every keyboard I use in QMK, w ## Macro Features and Custom Keycodes -### [VRSN](./noroadsleft.c#L33-L37) +### [VRSN](./noroadsleft.c#L44-L48) Outputs a string that tells me the Git commit from which my flashed firmware was built. Looks something like: @@ -29,7 +29,7 @@ Some frequently used Git commands. ### "Macro Mode" Macros and Customized Keycodes -Some of my macros and keycodes do different things depending on the value of the [`macroMode` variable](./noroadsleft.c#L23), which is [toggled between `0` and `1`](./noroadsleft.c#L116-L120) by the `M_MDSWP` custom keycode.[1](#footnotes) This is mainly at attempt to make various shortcuts use the same physical key combinations between Windows/Linux and MacOS (which I use at home and work, respectively). +Some of my macros and keycodes do different things depending on the value of the [`macroMode` variable](./noroadsleft.c#L23), which is [toggled between `0` and `1`](./noroadsleft.c#L127-L131) by the `M_MDSWP` custom keycode.[1](#footnotes) This is mainly at attempt to make various shortcuts use the same physical key combinations between Windows/Linux and MacOS (which I use at home and work, respectively). | Keycode | `macroMode == 0` | `macroMode == 1` | `macroMode == 1` with Shift | | :------------------------------------- | :--------------- | :--------------- | :------------------------------------- | diff --git a/users/riblee/riblee.c b/users/riblee/riblee.c index 6e6a7c23c63..04e37b2428a 100644 --- a/users/riblee/riblee.c +++ b/users/riblee/riblee.c @@ -152,6 +152,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return false; break; + case WORKMAN: + if (record->event.pressed) { + set_single_persistent_default_layer(_WORKMAN); + } + return false; + break; case HUNGARIAN: if (record->event.pressed) { set_single_persistent_default_layer(_HUNGARIAN); @@ -169,6 +175,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return false; break; + case CG_NORM: + set_unicode_input_mode(UC_MAC); + break; + case CG_SWAP: + set_unicode_input_mode(UC_LNX); + break; } return true; }; @@ -177,14 +189,47 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { static char receive_buffer[128] = {}; static uint8_t receive_buffer_length = 0; +uint16_t startup_timer; -void oled_task_user(void) { +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + startup_timer = timer_read(); + return rotation; +} + +static void render_logo(void) { + static const char PROGMEM raw_logo[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 96, 96, 96,240,248,255, 63, 56,255,255,248, 63, 63,248,255,255, 56, 63,255,248,240, 96, 96, 96, 0, 0, 0, 0, 0,252,254, 38, 54, 60, 8,240,152,152,248,240, 24,248,224,248,120,224,240,120, 96,248,248,248,248, 32,248,248, 24, 24,240,248,248,248,240,240,248,152,152,254,254, 0, 0, 0,254,254,152,248,240, 24,248,224,240,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,219,219,219,255,255,255,240,192,143,159, 63, 0, 0, 63,159,143,192,240,255,255,255,219,219,219, 0, 0, 0, 0, 0,192,225,112, 48, 48, 48,112,225,129, 1,240,240,240,193, 1, 0, 1,193,240,240,241, 1, 1,241,240,193,225,112, 48, 0, 1, 1, 1, 1,240,241, 49, 49, 49, 0,240,240, 0,129,193,129,193,192, 0,196,135,193,192,128,128,192,192,128, 0, 0,192,128, 0,128,192,128, 0, 0,192,192,128,128,192,192,192,128, 0,128,192,128,192,192, 0,128,192,192,192,128, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 6, 6, 6, 15, 31,255,255, 31,255,255, 31,252,252, 31,255,255, 31,255,255, 31, 15, 6, 6, 6, 0, 0, 0, 0, 0, 15, 31, 56, 48, 48, 48, 60,127,103, 96, 63, 63, 0, 7, 63, 56, 31, 7, 0, 63, 63, 0, 0, 63, 63, 7, 30, 60, 48, 0, 0, 0, 0, 0, 63, 31, 3, 3, 3, 0, 63, 63, 0, 31, 63, 1, 0, 0, 0, 63, 31, 0, 1, 63, 63, 0, 0, 63, 63, 0, 7, 63, 60, 63, 7, 31, 60, 63, 15, 0, 28, 60, 54, 54, 63, 63, 0, 63, 63, 1, 0, 0, 31, 63, 54, 54, 55, 55, 2, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,128,128,128,128,128,128, 0, 0,192,192,192, 0,192,192,192, 0, 0, 0, 0, 0, 0,192,192,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255, 29,127,255,247,224, 0,254,254,254, 0,255,255,255,198,254,254,254, 0, 0,255,255,255,124,254,254,214,214,222,222, 92,124,254,254,214,214,222,222, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }; + + oled_write_raw_P(raw_logo, sizeof(raw_logo)); +} + +static void render_info(void) { // Keyboard Layer Status oled_write_P(PSTR("Layer: "), false); switch (get_highest_layer(layer_state)) { case _QWERTY: - oled_write_P(PSTR("Default\n"), false); + if (layer_state_cmp(default_layer_state, _QWERTY)) { + oled_write_P(PSTR("Qwerty\n"), false); + } else if (layer_state_cmp(default_layer_state, _COLEMAK)) { + oled_write_P(PSTR("Colmak\n"), false); + } else if (layer_state_cmp(default_layer_state, _DVORAK)) { + oled_write_P(PSTR("Dvorak\n"), false); + } else if (layer_state_cmp(default_layer_state, _WORKMAN)) { + oled_write_P(PSTR("Workman\n"), false); + } else if (layer_state_cmp(default_layer_state, _HUNGARIAN)) { + oled_write_P(PSTR("HUN Qwerty\n"), false); + } else { + oled_write_P(PSTR("Undefined\n"), false); + } break; case _LOWER: oled_write_P(PSTR("Lower\n"), false); @@ -203,6 +248,19 @@ void oled_task_user(void) { oled_write_ln(receive_buffer, false); } +void oled_task_user(void) { + static bool finished_timer = false; + if (!finished_timer && (timer_elapsed(startup_timer) < 1000)) { + render_logo(); + } else { + if (!finished_timer) { + oled_clear(); + finished_timer = true; + } + render_info(); + } +} + #ifdef RAW_ENABLE void raw_hid_receive(uint8_t *data, uint8_t length) { diff --git a/users/riblee/riblee.h b/users/riblee/riblee.h index a4038765a69..f7340d50b2f 100644 --- a/users/riblee/riblee.h +++ b/users/riblee/riblee.h @@ -23,6 +23,7 @@ enum layer_names { _HUNGARIAN, _COLEMAK, _DVORAK, + _WORKMAN, _LOWER, _RAISE, _ADJUST @@ -33,6 +34,7 @@ enum custom_keycodes { HUNGARIAN, COLEMAK, DVORAK, + WORKMAN, BACKLIT }; diff --git a/users/stanrc85/rgblight_layers_osa.c b/users/stanrc85/rgblight_layers_osa.c index 59366fa34a9..aff96c96992 100644 --- a/users/stanrc85/rgblight_layers_osa.c +++ b/users/stanrc85/rgblight_layers_osa.c @@ -11,7 +11,7 @@ const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS( const rgblight_segment_t PROGMEM my_layer1_layer[] = RGBLIGHT_LAYER_SEGMENTS( {2, 2, HSV_GREEN}, {6, 2, HSV_GREEN} -); +); const rgblight_segment_t PROGMEM my_layer2_layer[] = RGBLIGHT_LAYER_SEGMENTS( {2, 2, HSV_BLUE}, @@ -60,7 +60,7 @@ layer_state_t layer_state_set_user(layer_state_t state) { } bool led_update_user(led_t led_state) { - //rgblight_set_layer_state(0, led_state.caps_lock); + rgblight_set_layer_state(0, led_state.caps_lock); writePin(C7, led_state.caps_lock); writePin(C6, middle); writePin(B6, bottom); diff --git a/users/stanrc85/rules.mk b/users/stanrc85/rules.mk index cafda97b1a6..d17f2df007f 100644 --- a/users/stanrc85/rules.mk +++ b/users/stanrc85/rules.mk @@ -26,6 +26,7 @@ endif ifeq ($(strip $(KEYBOARD)), tkc/osav2) SRC += rgblight_layers_osa.c VELOCIKEY_ENABLE=yes + SRC += rgb_timeout.c endif ifeq ($(strip $(KEYBOARD)), boardsource/the_mark) RGB_MATRIX_ENABLE = yes diff --git a/users/zigotica/combos.c b/users/zigotica/combos.c new file mode 100644 index 00000000000..8fb5b3c9fcc --- /dev/null +++ b/users/zigotica/combos.c @@ -0,0 +1,40 @@ +/* Copyright 2020 Sergi Meseguer +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 "combos.h" + +enum combos { + EM_EMAIL, + CL_CAPSL, + COMBO_LENGTH +}; +uint16_t COMBO_LEN = COMBO_LENGTH; + +const uint16_t PROGMEM email_combo[] = {LT(_SYM, KC_E), KC_M, COMBO_END}; +const uint16_t PROGMEM caps_combo[] = {KC_C, KC_L, COMBO_END}; + +combo_t key_combos[] = { + [EM_EMAIL] = COMBO_ACTION(email_combo), + [CL_CAPSL] = COMBO(caps_combo, KC_CAPSLOCK), +}; + +void process_combo_event(uint16_t combo_index, bool pressed) { + switch(combo_index) { + case EM_EMAIL: + if (pressed) { + SEND_STRING("zigotica@gmail.com"); + } + break; + } +} + diff --git a/users/zigotica/combos.h b/users/zigotica/combos.h new file mode 100644 index 00000000000..c75a107b9a6 --- /dev/null +++ b/users/zigotica/combos.h @@ -0,0 +1,17 @@ +/* Copyright 2020 Sergi Meseguer +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 "zigotica.h" + diff --git a/users/zigotica/rows.h b/users/zigotica/rows.h new file mode 100644 index 00000000000..e73d72bbe2b --- /dev/null +++ b/users/zigotica/rows.h @@ -0,0 +1,194 @@ +/* Copyright 2020 Sergi Meseguer +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 "zigotica.h" + +// clang-format off +#define _BLANK_ROW _______, _______, _______, _______, _______ +#define _BLANK_THUMB _______, _______ + +/* + * STENAI Layer + * + * ,---------------------------------------. ,---------------------------------------. + * | | | | | | | | | | | | + * | ` ~ | W | D | P | F | | K | Y | U | Q | ' " | + * | | | | | | | | | | | | + * |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| + * | | | | | | | | | | | | + * | H | R | S | T | G | | M | N | A | I | O | + * | alt | ctrl | shft | meta | | | | meta | shft | ctrl | alt | + * |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| + * | | | | | | | | | | | | + * | B | X | C | V | [ { | | , < | L | Z | J | . > | + * | | | | | TD ]} | | TD ; | | | | TD : | + * `-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------. + * | | | | | | + * | ESC | SPC | | E | INTRO | + * | num | nav | | sym | fn | + * `---------------' `---------------' + * + */ +#define _STENAI_L1 KC_GRV, KC_W, KC_D, KC_P, KC_F +#define _STENAI_L2 LALT_T(KC_H), LCTL_T(KC_R), LSFT_T(KC_S), LGUI_T(KC_T), KC_G +#define _STENAI_L3 KC_B, KC_X, KC_C, KC_V, ZK_BRC +#define _STENAI_LT LT(_NUM, KC_ESC), LT(_NAV, KC_SPC) + +#define _STENAI_R1 KC_K, KC_Y, KC_U, KC_Q, KC_QUOT +#define _STENAI_R2 KC_M, RGUI_T(KC_N), RSFT_T(KC_A), RCTL_T(KC_I), RALT_T(KC_O) +#define _STENAI_R3 ZK_SEMI, KC_L, KC_Z, KC_J, ZK_COLON +#define _STENAI_RT LT(_SYM, KC_E), LT(_FN, KC_ENT) + + +#define _COLEMAK_L1 KC_Q, KC_W, KC_F, KC_P, KC_G +#define _COLEMAK_L2 KC_A, KC_R, KC_S, KC_T, KC_D +#define _COLEMAK_L3 KC_Z, KC_X, KC_C, KC_V, KC_B + +#define _COLEMAK_R1 KC_J, KC_L, KC_U, KC_Y, KC_SCLN +#define _COLEMAK_R2 KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT +#define _COLEMAK_R3 KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH + +#define _QWERTY_L1 KC_Q, KC_W, KC_E, KC_R, KC_T +#define _QWERTY_L2 KC_A, KC_S, KC_D, KC_F, KC_G +#define _QWERTY_L3 KC_Z, KC_X, KC_C, KC_V, KC_B + +#define _QWERTY_R1 KC_Y, KC_U, KC_I, KC_O, KC_P +#define _QWERTY_R2 KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT +#define _QWERTY_R3 KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH + +/* + * NUM Layer + * + * ,---------------------------------------. ,---------------------------------------. + * | | | | | | | | | | | | + * | | - | + | = | | | | 7 | 8 | 9 | | + * | | | | | | | | | | | | + * |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| + * | | | | | | | | | | | | + * | | | | | | | | 1 | 2 | 3 | | + * | | | | | | | | | | | | + * |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| + * | | | | | | | | | | | | + * | | | / | * | | | | 4 | 5 | 6 | | + * | | | | | | | | | | | | + * `-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------. + * |:::::::| | | | | + * |:::::::| | | 0 | BACK | + * |:::::::| | | | | + * `---------------' `---------------' + * + */ +#define ____NUM_L1 _______, KC_MINS, KC_PLUS, KC_EQL, _______ +#define ____NUM_L2 _BLANK_ROW +#define ____NUM_L3 _______, _______, KC_SLSH, KC_ASTR, _______ +#define ____NUM_LT _BLANK_THUMB + +#define ____NUM_R1 _______, KC_7, KC_8, KC_9, _______ +#define ____NUM_R2 _______, KC_1, KC_2, KC_3, _______ +#define ____NUM_R3 _______, KC_4, KC_5, KC_6, _______ +#define ____NUM_RT KC_0, KC_BSPC + +/* +* NAVIGATION Layer +* +* ,---------------------------------------. ,---------------------------------------. +* | | | | | | | | | | | | +* | | PREV | PLAY | NEXT | | | WHDN | HOME | UP | PGUP | | +* | | | | | | | | | | | | +* |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| +* | | | | | | | | | | | | +* | | | | | | | WHUP | LF | DN | RG | | +* | | | | | | | | | | | | +* |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| +* | | | | | | | | | | | | +* | | | | | | | | END | | PGDN | | +* | | | | | | | | | | | | +* `-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------. +* | |:::::::| | | | +* | |:::::::| | | DEL | +* | |:::::::| | | | +* `---------------' `---------------' +*/ +#define ____NAV_L1 _______, KC_MPRV, KC_MPLY, KC_MNXT, _______ +#define ____NAV_L2 _BLANK_ROW +#define ____NAV_L3 _BLANK_ROW +#define ____NAV_LT _BLANK_THUMB + +#define ____NAV_R1 KC_WH_D, KC_HOME, KC_UP, KC_PGUP, _______ +#define ____NAV_R2 KC_WH_U, KC_LEFT, KC_DOWN, KC_RGHT, _______ +#define ____NAV_R3 _______, KC_END, _______, KC_PGDN, _______ +#define ____NAV_RT _______, KC_DEL + +/* +* SYMBOLS Layer +* +* ,---------------------------------------. ,---------------------------------------. +* | | | | | | | | | | | | +* | % | & | ? | | | ! | | | | | | | +* | | | | | | | | | | | | +* |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| +* | | | | | | | | | | | | +* | # | @ | : | ; | $ | | | | | | | +* | | | | | | | | | | | | +* |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| +* | | | | | | | | | | | | +* | ( | ~ | / | \ | ^ | | | | | | | +* | | | | | | | | | | | | +* `-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------. +* | | | |:::::::| | +* | | TAB | |:::::::| | +* | | | |:::::::| | +* `---------------' `---------------' +*/ +#define ____SYM_L1 KC_PERC, KC_AMPR, KC_QUES, KC_PIPE, KC_EXLM +#define ____SYM_L2 KC_HASH, KC_AT, KC_COLN, KC_SCLN, KC_DLR +#define ____SYM_L3 ZK_PRN, KC_TILD, KC_SLSH, KC_BSLS, KC_CIRC +#define ____SYM_LT _______, KC_TAB + +#define ____SYM_R1 _BLANK_ROW +#define ____SYM_R2 _BLANK_ROW +#define ____SYM_R3 _BLANK_ROW +#define ____SYM_RT _BLANK_THUMB + +/* +* FUNCTION KEYS Layer +* +* ,---------------------------------------. ,---------------------------------------. +* | | | | | | | | | | | | +* | | | | | | | | F7 | F8 | F9 | F10 | +* | | | | | | | | | | | | +* |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| +* | | | | | | | | | | | | +* | | | | | | | | F1 | F2 | F3 | F11 | +* | | | | | | | | | | | | +* |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| +* | | | | | | | | | | | | +* | | | | | | | | F4 | F5 | F6 | F12 | +* | | | | | | | | | | | | +* `-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------. +* | | | | |:::::::| +* | | TAB | | |:::::::| +* | | | | |:::::::| +* `---------------' `---------------' +*/ +#define ____FN_L1 _BLANK_ROW +#define ____FN_L2 _BLANK_ROW +#define ____FN_L3 _BLANK_ROW +#define ____FN_LT _______, KC_TAB + +#define ____FN_R1 _______, KC_F7, KC_F8, KC_F9, KC_F10 +#define ____FN_R2 _______, KC_F1, KC_F2, KC_F3, KC_F11 +#define ____FN_R3 _______, KC_F4, KC_F5, KC_F6, KC_F12 +#define ____FN_RT _BLANK_THUMB +// clang-format on diff --git a/users/zigotica/rules.mk b/users/zigotica/rules.mk new file mode 100644 index 00000000000..019e6f6dda1 --- /dev/null +++ b/users/zigotica/rules.mk @@ -0,0 +1,18 @@ +SRC += zigotica.c + +ifeq ($(strip $(TAP_DANCE_ENABLE)), yes) + SRC += tapdances.c +endif + +ifeq ($(strip $(COMBO_ENABLE)), yes) + SRC += combos.c +endif + +ifeq ($(strip $(OLED_ENABLE)), yes) + SRC += oled.c +endif + +ifeq ($(strip $(ENCODER_ENABLE)), yes) + SRC += encoder.c +endif + diff --git a/users/zigotica/tapdances.c b/users/zigotica/tapdances.c new file mode 100644 index 00000000000..74bb1b605e1 --- /dev/null +++ b/users/zigotica/tapdances.c @@ -0,0 +1,34 @@ +/* Copyright 2020 Sergi Meseguer +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 "tapdances.h" + +void ios_media(qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { + tap_code(KC_MPLY); + } else if (state->count == 2) { + tap_code(KC_MNXT); + } else if (state->count == 3) { + tap_code(KC_MPRV); + } else { + reset_tap_dance(state); + } +} + +qk_tap_dance_action_t tap_dance_actions[] = { + [0] = ACTION_TAP_DANCE_FN(ios_media), + [1] = ACTION_TAP_DANCE_DOUBLE(KC_COMM, KC_SCOLON), + [2] = ACTION_TAP_DANCE_DOUBLE(KC_DOT, KC_COLON), + [3] = ACTION_TAP_DANCE_DOUBLE(KC_LBRC, KC_RBRC), + [4] = ACTION_TAP_DANCE_DOUBLE(KC_LPRN, KC_RPRN), +}; diff --git a/users/zigotica/tapdances.h b/users/zigotica/tapdances.h new file mode 100644 index 00000000000..051c8a90bc7 --- /dev/null +++ b/users/zigotica/tapdances.h @@ -0,0 +1,24 @@ +/* Copyright 2020 Sergi Meseguer +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 "zigotica.h" + +#ifdef TAP_DANCE_ENABLE + #define ZK_MEDIA TD(0) + #define ZK_SEMI TD(1) + #define ZK_COLON TD(2) + #define ZK_BRC TD(3) + #define ZK_PRN TD(4) +#endif diff --git a/users/zigotica/zigotica.c b/users/zigotica/zigotica.c new file mode 100644 index 00000000000..9de57406c45 --- /dev/null +++ b/users/zigotica/zigotica.c @@ -0,0 +1,14 @@ +/* Copyright 2020 Sergi Meseguer +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 "zigotica.h" diff --git a/users/zigotica/zigotica.h b/users/zigotica/zigotica.h new file mode 100644 index 00000000000..e9ff5ff16cd --- /dev/null +++ b/users/zigotica/zigotica.h @@ -0,0 +1,51 @@ +/* Copyright 2020 Sergi Meseguer +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 + +#include "rows.h" + +#ifdef SPLIT_KEYBOARD +enum userspace_layers { + BASE = 0, + _NUM, + _NAV, + _SYM, + _FN, +}; +#else +enum userspace_layers { + _TERMINAL = 0, + _FIGMA, + _BROWSER, + _VIM, +}; +#endif + + +#ifdef TAP_DANCE_ENABLE +# include "tapdances.h" +#endif + +#ifdef COMBO_ENABLE +# include "combos.h" +#endif + +#ifdef OLED_ENABLE + #include "oled.h" +#endif + +#ifdef ENCODER_ENABLE + #include "encoder.h" +#endif diff --git a/util/stm32eeprom_parser.py b/util/stm32eeprom_parser.py index b124f713d54..e08b67064be 100755 --- a/util/stm32eeprom_parser.py +++ b/util/stm32eeprom_parser.py @@ -197,7 +197,6 @@ def dumpBinary(data, canonical): print("") size = len(data) - empty_rows = 0 prev_row = '' first_repeat = True for pos in range(0, size, 16): diff --git a/util/uf2conv.py b/util/uf2conv.py index 044a7f23189..8677a828c9f 100755 --- a/util/uf2conv.py +++ b/util/uf2conv.py @@ -78,7 +78,7 @@ def convert_from_uf2(buf): if datalen > 476: assert False, "Invalid UF2 data size at " + ptr newaddr = hd[3] - if curraddr == None: + if curraddr is None: appstartaddr = newaddr curraddr = newaddr padding = newaddr - curraddr @@ -171,7 +171,7 @@ def convert_from_hex_to_uf2(buf): break elif tp == 0: addr = upper | (rec[1] << 8) | rec[2] - if appstartaddr == None: + if appstartaddr is None: appstartaddr = addr i = 4 while i < len(rec) - 1: @@ -215,7 +215,7 @@ def get_drives(): def has_info(d): try: return os.path.isfile(d + INFO_FILE) - except: + except Exception: return False return list(filter(has_info, drives)) @@ -300,7 +300,7 @@ def main(): (ext, len(outbuf), appstartaddr)) if args.convert or ext != "uf2": drives = [] - if args.output == None: + if args.output is None: args.output = "flash." + ext else: drives = get_drives()