diff options
60 files changed, 1377 insertions, 160 deletions
diff --git a/.github/workflows/format.yml b/.github/workflows/format.yml index b6ce4063fe..a93fb3a488 100644 --- a/.github/workflows/format.yml +++ b/.github/workflows/format.yml @@ -27,16 +27,14 @@ jobs: run: | pip3 install -r requirements-dev.txt - - uses: trilom/file-changes-action@v1.2.4 + - name: Get changed files id: file_changes - with: - output: ' ' - fileOutput: ' ' + uses: tj-actions/changed-files@v34 - name: Run qmk formatters shell: 'bash {0}' run: | - cat ~/files_added.txt ~/files_modified.txt > ~/files_changed.txt + echo '${{ steps.file_changes.outputs.added_files}}' '${{ steps.file_changes.outputs.modified_files}}' > ~/files_changed.txt qmk format-c --core-only $(< ~/files_changed.txt) || true qmk format-python $(< ~/files_changed.txt) || true qmk format-text $(< ~/files_changed.txt) || true diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 5b8a45f26b..af656cf80f 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -19,21 +19,20 @@ jobs: - name: Install dependencies run: pip3 install -r requirements-dev.txt - - uses: trilom/file-changes-action@v1.2.4 + - name: Get changed files id: file_changes - with: - output: '\n' + uses: tj-actions/changed-files@v34 - name: Print info run: | git rev-parse --short HEAD echo ${{ github.event.pull_request.base.sha }} - echo '${{ steps.file_changes.outputs.files}}' + echo '${{ steps.file_changes.outputs.all_changed_files}}' - name: Run qmk lint shell: 'bash {0}' run: | - QMK_CHANGES=$(echo -e '${{ steps.file_changes.outputs.files}}') + QMK_CHANGES=$(echo -e '${{ steps.file_changes.outputs.all_changed_files}}' | sed 's/ /\n/g') QMK_KEYBOARDS=$(qmk list-keyboards) exit_code=0 diff --git a/data/mappings/info_config.hjson b/data/mappings/info_config.hjson index c1c01ff70f..8f7b34d41a 100644 --- a/data/mappings/info_config.hjson +++ b/data/mappings/info_config.hjson @@ -18,6 +18,10 @@ "BACKLIGHT_ON_STATE": {"info_key": "backlight.on_state", "value_type": "int"}, "BACKLIGHT_PIN": {"info_key": "backlight.pin"}, "BACKLIGHT_PINS": {"info_key": "backlight.pins", "value_type": "array"}, + "BOOTMAGIC_LITE_ROW": {"info_key": "bootmagic.matrix.0", "value_type": "int"}, + "BOOTMAGIC_LITE_COLUMN": {"info_key": "bootmagic.matrix.1", "value_type": "int"}, + "BOOTMAGIC_LITE_ROW_RIGHT": {"info_key": "split.bootmagic.matrix.0", "value_type": "int"}, + "BOOTMAGIC_LITE_COLUMN_RIGHT": {"info_key": "split.bootmagic.matrix.1", "value_type": "int"}, "BOTH_SHIFTS_TURNS_ON_CAPS_WORD": {"info_key": "caps_word.both_shifts_turns_on", "value_type": "bool"}, "CAPS_WORD_IDLE_TIMEOUT": {"info_key": "caps_word.idle_timeout", "value_type": "int"}, "COMBO_COUNT": {"info_key": "combo.count", "value_type": "int"}, @@ -122,7 +126,7 @@ "DEBOUNCING_DELAY": {"info_key": "_invalid.debouncing_delay", "invalid": true, "replace_with": "DEBOUNCE"}, "PREVENT_STUCK_MODIFIERS": {"info_key": "_invalid.prevent_stuck_mods", "invalid": true}, "UNUSED_PINS": {"info_key": "_invalid.unused_pins", "deprecated": true}, - "RGBLIGHT_ANIMATIONS": {"info_key": "rgblight.animations.all", "value_type": "bool", "deprecated": true}, + "RGBLIGHT_ANIMATIONS": {"info_key": "_invalid.rgblight.animations.all", "value_type": "bool", "invalid": true}, "QMK_KEYS_PER_SCAN": {"info_key": "qmk.keys_per_scan", "value_type": "int", "deprecated": true}, // USB params, need to mark as failure when specified in config.h, rather than deprecated diff --git a/data/mappings/info_rules.hjson b/data/mappings/info_rules.hjson index 2f8656c4bf..b020d0c813 100644 --- a/data/mappings/info_rules.hjson +++ b/data/mappings/info_rules.hjson @@ -12,6 +12,7 @@ // replace_with: use with a key marked deprecated or invalid to designate a replacement "BOARD": {"info_key": "board"}, "BOOTLOADER": {"info_key": "bootloader", "warn_duplicate": false}, + "BOOTMAGIC_ENABLE": {"info_key": "bootmagic.enabled", "value_type": "bool"}, "BLUETOOTH_DRIVER": {"info_key": "bluetooth.driver"}, "CAPS_WORD_ENABLE": {"info_key": "caps_word.enabled", "value_type": "bool"}, "DEBOUNCE_TYPE": {"info_key": "build.debounce_type"}, diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema index 921726a5e9..5c0c23c2b1 100644 --- a/data/schemas/keyboard.jsonschema +++ b/data/schemas/keyboard.jsonschema @@ -131,6 +131,22 @@ } } }, + "bootmagic":{ + "type": "object", + "additionalProperties": false, + "properties": { + "enabled": {"type": "boolean"}, + "matrix": { + "type": "array", + "minItems": 2, + "maxItems": 2, + "items": { + "type": "integer", + "minimum": 0 + } + } + } + }, "board": { "type": "string", "minLength": 2, @@ -511,6 +527,21 @@ "additionalProperties": false, "properties": { "enabled": {"type": "boolean"}, + "bootmagic":{ + "type": "object", + "additionalProperties": false, + "properties": { + "matrix": { + "type": "array", + "minItems": 2, + "maxItems": 2, + "items": { + "type": "integer", + "minimum": 0 + } + } + } + }, "matrix_grid": { "type": "array", "items": {"$ref": "qmk.definitions.v1#/mcu_pin"} diff --git a/docs/newbs_building_firmware.md b/docs/newbs_building_firmware.md index 6163c6b02e..de9217e9f0 100644 --- a/docs/newbs_building_firmware.md +++ b/docs/newbs_building_firmware.md @@ -28,7 +28,7 @@ If you did not configure your environment, or you have multiple keyboards, you c Look at the output from that command, you should see something like this: - Ψ <github_username> keymap directory created in: /home/me/qmk_firmware/keyboards/clueboard/66/rev3/keymaps/<github_username> + Ψ Created a new keymap called <github_username> in: /home/me/qmk_firmware/keyboards/clueboard/66/rev3/keymaps/<github_username>. This is the location of your new `keymap.c` file. diff --git a/docs/reference_info_json.md b/docs/reference_info_json.md index d5469c835a..2da67668c0 100644 --- a/docs/reference_info_json.md +++ b/docs/reference_info_json.md @@ -333,3 +333,24 @@ Example: } } ``` + +## Bootmagic + +This section configures [Bootmagic Lite](feature_bootmagic.md) support. + +The following options can be configured: + +|Key |Description | +|---------|-----------------------------------------------------------------------------| +|`matrix` | A two item list describing the row and column location for the trigger key. | + +Example: + +```json +{ + "bootmagic": { + "enabled": true, + "matrix": [0, 0] + }, +} +```
\ No newline at end of file diff --git a/keyboards/bioi/main.c b/keyboards/bioi/main.c index bba54dfab1..eb149eb7cd 100644 --- a/keyboards/bioi/main.c +++ b/keyboards/bioi/main.c @@ -56,7 +56,7 @@ extern keymap_config_t keymap_config; #include "virtser.h" #endif -#if (defined(RGB_MIDI) | defined(RGBLIGHT_ANIMATIONS)) & defined(RGBLIGHT_ENABLE) +#if defined(RGBLIGHT_ENABLE) #include "rgblight.h" #endif diff --git a/keyboards/cannonkeys/ortho60v2/config.h b/keyboards/cannonkeys/ortho60v2/config.h new file mode 100644 index 0000000000..2af75a1715 --- /dev/null +++ b/keyboards/cannonkeys/ortho60v2/config.h @@ -0,0 +1,23 @@ +/* +Copyright 2022 CannonKeys + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ +#pragma once + +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET // Activates the double-tap behavior +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U // Timeout window in ms in which the double tap can occur. + +#define BACKLIGHT_PWM_DRIVER PWMD6 +#define BACKLIGHT_PWM_CHANNEL RP2040_PWM_CHANNEL_A diff --git a/keyboards/cannonkeys/ortho60v2/halconf.h b/keyboards/cannonkeys/ortho60v2/halconf.h new file mode 100644 index 0000000000..cef26f106c --- /dev/null +++ b/keyboards/cannonkeys/ortho60v2/halconf.h @@ -0,0 +1,23 @@ + /* + * Copyright Andrew Kannan 2022 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + + +#pragma once + +#define HAL_USE_PWM TRUE + +#include_next <halconf.h> diff --git a/keyboards/cannonkeys/ortho60v2/info.json b/keyboards/cannonkeys/ortho60v2/info.json new file mode 100644 index 0000000000..08f5321d84 --- /dev/null +++ b/keyboards/cannonkeys/ortho60v2/info.json @@ -0,0 +1,105 @@ +{ + "keyboard_name": "Ortho60 v2", + "maintainer": "awkannan", + "manufacturer": "CannonKeys", + "processor": "RP2040", + "bootloader": "rp2040", + "usb": { + "vid": "0xCA04", + "pid": "0x0019", + "device_version": "0.0.1" + }, + "url": "https://cannonkeys.com", + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": ["GP7", "GP6", "GP5", "GP4", "GP3", "GP2", "GP1", "GP0", "GP13", "GP24", "GP23", "GP22"], + "rows": ["GP27", "GP18", "GP19", "GP25", "GP26"] + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "backlight": true, + "encoder": true + }, + "encoder": { + "rotary": [ + { "pin_a": "GP28", "pin_b": "GP29" } + ] + }, + "backlight": { + "breathing": true, + "breathing_period": 5, + "levels": 15, + "pin": "GP12" + }, + "layouts": { + "LAYOUT_ortho_5x12": { + "layout": [ + { "label": "`", "matrix": [0, 0], "x": 0.0, "y": 0.0 }, + { "label": "1", "matrix": [0, 1], "x": 1.0, "y": 0.0 }, + { "label": "2", "matrix": [0, 2], "x": 2.0, "y": 0.0 }, + { "label": "3", "matrix": [0, 3], "x": 3.0, "y": 0.0 }, + { "label": "4", "matrix": [0, 4], "x": 4.0, "y": 0.0 }, + { "label": "5", "matrix": [0, 5], "x": 5.0, "y": 0.0 }, + { "label": "6", "matrix": [0, 6], "x": 6.0, "y": 0.0 }, + { "label": "7", "matrix": [0, 7], "x": 7.0, "y": 0.0 }, + { "label": "8", "matrix": [0, 8], "x": 8.0, "y": 0.0 }, + { "label": "9", "matrix": [0, 9], "x": 9.0, "y": 0.0 }, + { "label": "0", "matrix": [0, 10], "x": 10.0, "y": 0.0 }, + { "label": "Del", "matrix": [0, 11], "x": 11.0, "y": 0.0 }, + { "label": "Tab", "matrix": [1, 0], "x": 0.0, "y": 1.0 }, + { "label": "Q", "matrix": [1, 1], "x": 1.0, "y": 1.0 }, + { "label": "W", "matrix": [1, 2], "x": 2.0, "y": 1.0 }, + { "label": "E", "matrix": [1, 3], "x": 3.0, "y": 1.0 }, + { "label": "R", "matrix": [1, 4], "x": 4.0, "y": 1.0 }, + { "label": "T", "matrix": [1, 5], "x": 5.0, "y": 1.0 }, + { "label": "Y", "matrix": [1, 6], "x": 6.0, "y": 1.0 }, + { "label": "U", "matrix": [1, 7], "x": 7.0, "y": 1.0 }, + { "label": "I", "matrix": [1, 8], "x": 8.0, "y": 1.0 }, + { "label": "O", "matrix": [1, 9], "x": 9.0, "y": 1.0 }, + { "label": "P", "matrix": [1, 10], "x": 10.0, "y": 1.0 }, + { "label": "Back Space", "matrix": [1, 11], "x": 11.0, "y": 1.0 }, + { "label": "Esc", "matrix": [2, 0], "x": 0.0, "y": 2.0 }, + { "label": "A", "matrix": [2, 1], "x": 1.0, "y": 2.0 }, + { "label": "S", "matrix": [2, 2], "x": 2.0, "y": 2.0 }, + { "label": "D", "matrix": [2, 3], "x": 3.0, "y": 2.0 }, + { "label": "F", "matrix": [2, 4], "x": 4.0, "y": 2.0 }, + { "label": "G", "matrix": [2, 5], "x": 5.0, "y": 2.0 }, + { "label": "H", "matrix": [2, 6], "x": 6.0, "y": 2.0 }, + { "label": "J", "matrix": [2, 7], "x": 7.0, "y": 2.0 }, + { "label": "K", "matrix": [2, 8], "x": 8.0, "y": 2.0 }, + { "label": "L", "matrix": [2, 9], "x": 9.0, "y": 2.0 }, + { "label": ";", "matrix": [2, 10], "x": 10.0, "y": 2.0 }, + { "label": "'", "matrix": [2, 11], "x": 11.0, "y": 2.0 }, + { "label": "Shift", "matrix": [3, 0], "x": 0.0, "y": 3.0 }, + { "label": "Z", "matrix": [3, 1], "x": 1.0, "y": 3.0 }, + { "label": "X", "matrix": [3, 2], "x": 2.0, "y": 3.0 }, + { "label": "C", "matrix": [3, 3], "x": 3.0, "y": 3.0 }, + { "label": "V", "matrix": [3, 4], "x": 4.0, "y": 3.0 }, + { "label": "B", "matrix": [3, 5], "x": 5.0, "y": 3.0 }, + { "label": "N", "matrix": [3, 6], "x": 6.0, "y": 3.0 }, + { "label": "M", "matrix": [3, 7], "x": 7.0, "y": 3.0 }, + { "label": ",", "matrix": [3, 8], "x": 8.0, "y": 3.0 }, + { "label": ".", "matrix": [3, 9], "x": 9.0, "y": 3.0 }, + { "label": "/", "matrix": [3, 10], "x": 10.0, "y": 3.0 }, + { "label": "Return", "matrix": [3, 11], "x": 11.0, "y": 3.0 }, + { "matrix": [4, 0], "x": 0.0, "y": 4.0 }, + { "label": "Ctrl", "matrix": [4, 1], "x": 1.0, "y": 4.0 }, + { "label": "Alt", "matrix": [4, 2], "x": 2.0, "y": 4.0 }, + { "label": "Super", "matrix": [4, 3], "x": 3.0, "y": 4.0 }, + { "label": "Lower", "matrix": [4, 4], "x": 4.0, "y": 4.0 }, + { "matrix": [4, 5], "x": 5.0, "y": 4.0 }, + { "matrix": [4, 6], "x": 6.0, "y": 4.0 }, + { "label": "Raise", "matrix": [4, 7], "x": 7.0, "y": 4.0 }, + { "label": "←", "matrix": [4, 8], "x": 8.0, "y": 4.0 }, + { "label": "↓", "matrix": [4, 9], "x": 9.0, "y": 4.0 }, + { "label": "↑", "matrix": [4, 10], "x": 10.0, "y": 4.0 }, + { "label": "→", "matrix": [4, 11], "x": 11.0, "y": 4.0 } + ] + } + } +} diff --git a/keyboards/cannonkeys/ortho60v2/keymaps/default/keymap.c b/keyboards/cannonkeys/ortho60v2/keymaps/default/keymap.c new file mode 100644 index 0000000000..1f042bdd20 --- /dev/null +++ b/keyboards/cannonkeys/ortho60v2/keymaps/default/keymap.c @@ -0,0 +1,99 @@ +/* +Copyright 2012,2013 Jun Wako <wakojun@gmail.com> + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ +#include QMK_KEYBOARD_H + + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +enum custom_layers { + _BASE, + _RAISE, + _LOWER, +}; + +enum custom_keycodes { + QWERTY = SAFE_RANGE, + LOWER, + RAISE +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_BASE] = LAYOUT_ortho_5x12( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + BL_TOGG, KC_LCTL, KC_LALT, KC_LGUI, MO(_LOWER), KC_SPC, KC_SPC, MO(_RAISE), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +), +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `----------------------------------------- |