forked from mfulz_github/qmk_firmware
Merge branch 'master' into features/encryption
This commit is contained in:
commit
c644facdac
|
@ -17,6 +17,10 @@ jobs:
|
|||
token: ${{ secrets.QMK_BOT_TOKEN }}
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Disable automatic eol conversion
|
||||
run: |
|
||||
echo "* -text" > .git/info/attributes
|
||||
|
||||
- name: Checkout develop
|
||||
run: |
|
||||
git fetch origin master develop
|
||||
|
|
|
@ -22,6 +22,10 @@ jobs:
|
|||
token: ${{ secrets.QMK_BOT_TOKEN }}
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Disable automatic eol conversion
|
||||
run: |
|
||||
echo "* -text" > .git/info/attributes
|
||||
|
||||
- name: Checkout branch
|
||||
run: |
|
||||
git fetch origin develop ${{ matrix.branch }}
|
||||
|
|
|
@ -17,6 +17,10 @@ jobs:
|
|||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Disable automatic eol conversion
|
||||
run: |
|
||||
echo "* -text" > .git/info/attributes
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
pip3 install -r requirements-dev.txt
|
||||
|
|
6
Makefile
6
Makefile
|
@ -428,9 +428,15 @@ lib/%:
|
|||
|
||||
.PHONY: git-submodule
|
||||
git-submodule:
|
||||
[ -e lib/ugfx ] && rm -rf lib/ugfx || true
|
||||
[ -e lib/pico-sdk ] && rm -rf lib/pico-sdk || true
|
||||
[ -e lib/chibios-contrib/ext/mcux-sdk ] && rm -rf lib/chibios-contrib/ext/mcux-sdk || true
|
||||
git submodule sync --recursive
|
||||
git submodule update --init --recursive --progress
|
||||
|
||||
.PHONY: git-submodules
|
||||
git-submodules: git-submodule
|
||||
|
||||
.PHONY: list-keyboards
|
||||
list-keyboards:
|
||||
util/list_keyboards.sh | sort -u | tr '\n' ' '
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
# warn_duplicate: Default `true`. Set to `false` to turn off warning when a value exists in both places
|
||||
# deprecated: Default `false`. Set to `true` to turn on warning when a value exists
|
||||
# invalid: Default `false`. Set to `true` to generate errors when a value exists
|
||||
# replace_with: use with a key marked deprecated or invalid to designate a replacement
|
||||
"AUDIO_VOICES": {"info_key": "audio.voices", "value_type": "bool"},
|
||||
"BACKLIGHT_BREATHING": {"info_key": "backlight.breathing", "value_type": "bool"},
|
||||
"BREATHING_PERIOD": {"info_key": "backlight.breathing_period", "value_type": "int"},
|
||||
|
@ -108,6 +109,6 @@
|
|||
"NO_ACTION_MACRO": {"info_key": "_invalid.no_action_macro", "invalid": true},
|
||||
"NO_ACTION_FUNCTION": {"info_key": "_invalid.no_action_function", "invalid": true},
|
||||
"DESCRIPTION": {"info_key": "_invalid.usb_description", "invalid": true},
|
||||
"DEBOUNCING_DELAY": {"info_key": "_invalid.debouncing_delay", "invalid": true},
|
||||
"DEBOUNCING_DELAY": {"info_key": "_invalid.debouncing_delay", "invalid": true, replace_with: "DEBOUNCE"},
|
||||
"PREVENT_STUCK_MODIFIERS": {"info_key": "_invalid.prevent_stuck_mods", "invalid": true},
|
||||
}
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
# warn_duplicate: Default `true`. Set to `false` to turn off warning when a value exists in both places
|
||||
# deprecated: Default `false`. Set to `true` to turn on warning when a value exists
|
||||
# invalid: Default `false`. Set to `true` to generate errors when a value exists
|
||||
# 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},
|
||||
"BLUETOOTH": {"info_key": "bluetooth.driver"},
|
||||
|
@ -29,7 +30,7 @@
|
|||
"WAIT_FOR_USB": {"info_key": "usb.wait_for", "value_type": "bool"},
|
||||
|
||||
# Items we want flagged in lint
|
||||
"CTPC": {"info_key": "_deprecated.ctpc", "deprecated": true},
|
||||
"CONVERT_TO_PROTON_C": {"info_key": "_deprecated.ctpc", "deprecated": true},
|
||||
"CTPC": {"info_key": "_deprecated.ctpc", "deprecated": true, "replace_with": "CONVERT_TO=proton_c"},
|
||||
"CONVERT_TO_PROTON_C": {"info_key": "_deprecated.ctpc", "deprecated": true, "replace_with": "CONVERT_TO=proton_c"},
|
||||
"VIAL_ENABLE": {"info_key": "_invalid.vial", "invalid": true},
|
||||
}
|
||||
|
|
|
@ -24,4 +24,4 @@ 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
|
||||
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
* [Building Your First Firmware](newbs_building_firmware.md)
|
||||
* [Flashing Firmware](newbs_flashing.md)
|
||||
* [Getting Help/Support](support.md)
|
||||
* [Building With GitHub Userspace](newbs_building_firmware_workflow.md)
|
||||
* [Other Resources](newbs_learn_more_resources.md)
|
||||
* [Syllabus](syllabus.md)
|
||||
|
||||
|
@ -166,6 +167,7 @@
|
|||
* Arm/ChibiOS
|
||||
* [Selecting an MCU](platformdev_selecting_arm_mcu.md)
|
||||
* [Early initialization](platformdev_chibios_earlyinit.md)
|
||||
* [WeAct Blackpill F411](platformdev_blackpill_f411.md)
|
||||
|
||||
* QMK Reference
|
||||
* [Contributing to QMK](contributing.md)
|
||||
|
|
|
@ -26,13 +26,14 @@ The next Breaking Change is scheduled for August 27, 2022.
|
|||
|
||||
### Important Dates
|
||||
|
||||
* [x] 2022 May 28 - `develop` is tagged with a new release version. Each push to `master` is subsequently merged to `develop` by GitHub actions.
|
||||
* [ ] 2022 Jul 31 - `develop` closed to new PR's.
|
||||
* [ ] 2022 Jul 31 - Call for testers.
|
||||
* [ ] 2022 Aug 13 - Last day for merges -- after this point `develop` is locked for testing and accepts only bugfixes
|
||||
* [ ] 2022 Aug 25 - `master` is locked, no PR's merged.
|
||||
* [ ] 2022 Aug 27 - Merge `develop` to `master`.
|
||||
* [ ] 2022 Aug 27 - `master` is unlocked. PR's can be merged again.
|
||||
* 2022 May 28 - `develop` is tagged with a new release version. Each push to `master` is subsequently merged to `develop` by GitHub actions.
|
||||
* 2022 Jul 31 - `develop` closed to new PR's.
|
||||
* 2022 Jul 31 - Call for testers.
|
||||
* 2022 Aug 13 - Last day for merges -- after this point `develop` is locked for testing and accepts only bugfixes
|
||||
* 2022 Aug 20 - `develop` is locked, only critical bugfix PR's merged.
|
||||
* 2022 Aug 25 - `master` is locked, no PR's merged.
|
||||
* 2022 Aug 27 - Merge `develop` to `master`.
|
||||
* 2022 Aug 27 - `master` is unlocked. PR's can be merged again.
|
||||
|
||||
## What changes will be included?
|
||||
|
||||
|
@ -54,53 +55,47 @@ This section documents various processes we use when running the Breaking Change
|
|||
### 4 Weeks Before Merge
|
||||
|
||||
* `develop` is now closed to new PR's, only fixes for current PR's may be merged
|
||||
* Post call for testers
|
||||
* [ ] Discord
|
||||
* [ ] GitHub PR
|
||||
* [ ] https://reddit.com/r/olkb
|
||||
* Post call for testers: message `@Breaking Changes Updates` on `#qmk_firmware` in Discord:
|
||||
* `@Breaking Changes Updates -- Hey folks, last day for functional PRs to be raised against qmk_firmware for this breaking changes cycle is today.`
|
||||
|
||||
### 2 Weeks Before Merge
|
||||
|
||||
* `develop` is now closed to existing PR merges, only bugfixes for previous merges may be included
|
||||
* Post call for testers
|
||||
* [ ] Discord
|
||||
* [ ] GitHub PR
|
||||
* [ ] https://reddit.com/r/olkb
|
||||
* Post call for testers: message `@Breaking Changes Updates` on `#qmk_firmware` in Discord.
|
||||
* `@Breaking Changes Updates -- Hey folks, last day for functional PRs to be merged into qmk_firmware for this breaking changes cycle is today. After that, we're handling bugfixes only.`
|
||||
|
||||
### 1 Week Before Merge
|
||||
|
||||
* Announce that master will be closed from <2 Days Before> to <Day of Merge>
|
||||
* [ ] Discord
|
||||
* [ ] GitHub PR
|
||||
* [ ] https://reddit.com/r/olkb
|
||||
* `develop` is now closed to PR merges, only critical bugfixes may be included
|
||||
* Announce that master will be closed from <2 Days Before> to <Day of Merge> -- message `@Breaking Changes Updates` on `#qmk_firmware` in Discord:
|
||||
* `@Breaking Changes Updates -- Hey folks, last day for functional PRs to be merged into qmk_firmware for this breaking changes cycle is today. After that, we're handling bugfixes only.`
|
||||
|
||||
### 2 Days Before Merge
|
||||
|
||||
* `master` is now closed to PR merges
|
||||
* Announce that master is closed for 2 days
|
||||
* [ ] Discord
|
||||
* [ ] GitHub PR
|
||||
* [ ] https://reddit.com/r/olkb
|
||||
* `@Breaking Changes Updates -- Hey folks, the master branch of qmk_firmware is now locked for the next couple of days while we prepare to merge the newest batch of changes from develop.`
|
||||
|
||||
### Day Of Merge
|
||||
|
||||
* `qmk_firmware` git commands
|
||||
* [ ] `git checkout develop`
|
||||
* [ ] `git pull --ff-only`
|
||||
* [ ] Edit `readme.md`
|
||||
* [ ] Remove the notes about `develop`
|
||||
* [ ] Roll up the ChangeLog into one file.
|
||||
* [ ] `git commit -m 'Merge point for <DATE> Breaking Change'`
|
||||
* [ ] `git push upstream develop`
|
||||
* `git checkout develop`
|
||||
* `git pull --ff-only`
|
||||
* Edit `readme.md`
|
||||
* Remove the notes about `develop`
|
||||
* Roll up the ChangeLog into one file.
|
||||
* `git commit -m 'Merge point for <DATE> Breaking Change'`
|
||||
* `git push upstream develop`
|
||||
* GitHub Actions
|
||||
* [ ] Create a PR for `develop`
|
||||
* [ ] **Turn off 'Automatically delete head branches' for the repository** -- confirm with @qmk/directors that it is done before continuing
|
||||
* Create a PR for `develop`
|
||||
* **Turn off 'Automatically delete head branches' for the repository** -- confirm with @qmk/directors that it is done before continuing
|
||||
* `qmk_firmware` git commands
|
||||
* [ ] `git checkout master`
|
||||
* [ ] `git pull --ff-only`
|
||||
* [ ] `git merge --no-ff develop`
|
||||
* [ ] `git tag <next_version>` # Prevent the breakpoint tag from confusing version incrementing
|
||||
* [ ] `git push upstream <next_version>`
|
||||
* [ ] `git push upstream master`
|
||||
* `git checkout master`
|
||||
* `git pull --ff-only`
|
||||
* `git merge --no-ff develop`
|
||||
* `git tag <next_version>` # Prevent the breakpoint tag from confusing version incrementing
|
||||
* `git push upstream <next_version>`
|
||||
* `git push upstream master`
|
||||
|
||||
## Post-merge operations
|
||||
|
||||
|
@ -109,28 +104,68 @@ This section documents various processes we use when running the Breaking Change
|
|||
This happens immediately after the previous `develop` branch is merged to `master`.
|
||||
|
||||
* `qmk_firmware` git commands
|
||||
* [ ] `git checkout master`
|
||||
* [ ] `git pull --ff-only`
|
||||
* [ ] `git checkout develop`
|
||||
* [ ] `git pull --ff-only`
|
||||
* [ ] `git merge --no-ff master`
|
||||
* [ ] Edit `readme.md`
|
||||
* [ ] Add a big notice at the top that this is a testing branch.
|
||||
* [ ] Include a link to this document
|
||||
* [ ] `git commit -m 'Branch point for <DATE> Breaking Change'`
|
||||
* [ ] `git tag breakpoint_<YYYY>_<MM>_<DD>`
|
||||
* [ ] `git push upstream breakpoint_<YYYY>_<MM>_<DD>`
|
||||
|
||||
* `git checkout master`
|
||||
* `git pull --ff-only`
|
||||
* `git checkout develop`
|
||||
* `git pull --ff-only`
|
||||
* `git merge --no-ff master`
|
||||
* Edit `readme.md`
|
||||
* Add a big notice at the top that this is a testing branch.
|
||||
* Include a link to this document
|
||||
* `git commit -m 'Branch point for <DATE> Breaking Change'`
|
||||
* `git tag breakpoint_<YYYY>_<MM>_<DD>`
|
||||
* `git push upstream breakpoint_<YYYY>_<MM>_<DD>`
|
||||
|
||||
* All submodules under `lib` now need to be checked against their QMK-based forks:
|
||||
* [ ] `git submodule foreach git log -n1`
|
||||
* [ ] Validate each submodule SHA1 matches the qmk fork, e.g. for ChibiOS:
|
||||
* `git submodule foreach git log -n1`
|
||||
* Validate each submodule SHA1 matches the qmk fork, e.g. for ChibiOS:
|
||||
* Go to [qmk/ChibiOS](https://github.com/qmk/ChibiOS)
|
||||
* Compare the commit hash in the above output to the commit hash in the repository
|
||||
* If there's a mismatch:
|
||||
* [ ] `cd lib/chibios`
|
||||
* [ ] `git fetch --all`
|
||||
* [ ] `git checkout master`
|
||||
* [ ] `git reset --hard <commit hash>`
|
||||
* [ ] `git push origin master --force-with-lease`
|
||||
* `cd lib/chibios`
|
||||
* `git fetch --all`
|
||||
* `git checkout master`
|
||||
* `git reset --hard <commit hash>`
|
||||
* `git push origin master --force-with-lease`
|
||||
|
||||
* (Optional) [update ChibiOS + ChibiOS-Contrib on `develop`](chibios_upgrade_instructions.md)
|
||||
|
||||
### Set up Discord events for the next cycle
|
||||
|
||||
* Update this file with the new dates: `docs/breaking_changes.md`
|
||||
* Create Events on the QMK Discord - "Somewhere Else" => "GitHub":
|
||||
* Event #1:
|
||||
| Field | Value |
|
||||
|-------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| Topic | Last `develop` functionality PRs to be raised |
|
||||
| Start Date | ((5 weeks before merge)), 12:00am |
|
||||
| End Date | ((4 weeks before merge)), 12:00am |
|
||||
| Description | This is the last window for functional PRs to be raised against `develop` for the current breaking changes cycle. After ((4 weeks before merge)), any new PRs targeting `develop` will be deferred to the next cycle. |
|
||||
* Event #2:
|
||||
| Field | Value |
|
||||
|-------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| Topic | Last `develop` functionality PRs to be merged |
|
||||
| Start Date | ((4 weeks before merge)), 12:00am |
|
||||
| End Date | ((2 weeks before merge)), 12:00am |
|
||||
| Description | This is the last window for functional PRs to be merged into `develop` for the current breaking changes cycle. After ((2 weeks before merge)), only bugfix PRs targeting `develop` will be considered for merge. |
|
||||
* Event #3:
|
||||
| Field | Value |
|
||||
|-------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| Topic | `develop` closed for merges |
|
||||
| Start Date | ((2 weeks before merge)), 12:00am |
|
||||
| End Date | ((day of merge)), 12:00am |
|
||||
| Description | This is the deadline for functionality bugfix PRs to be merged into `develop` for the current breaking changes cycle. After ((1 week before merge)), only critical bugfix PRs targeting `develop` will be considered for merge. |
|
||||
* Event #4:
|
||||
| Field | Value |
|
||||
|-------------|----------------------------------------------------------------------------------------------------------------------|
|
||||
| Topic | `master` closed for merges |
|
||||
| Start Date | ((2 days before merge)), 12:00am |
|
||||
| End Date | ((day of merge)), 12:00am |
|
||||
| Description | This is the period that no PRs are to be merged to `master`, so that the merge of `develop` into `master` is stable. |
|
||||
* Event #5:
|
||||
| Field | Value |
|
||||
|-------------|--------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| Topic | `develop` merges to `master` |
|
||||
| Start Date | ((day of merge)), 12:00am |
|
||||
| End Date | ((day of merge)), 11:45pm |
|
||||
| Description | At some point, QMK will merge `develop` into `master` and everyone will be able to reap the benefits of the newest batch of functionality. |
|
||||
|
|
|
@ -406,11 +406,11 @@ And you're done. The RGB layer indication will only work if you want it to. And
|
|||
|
||||
The `val` is the value of the data that you want to write to EEPROM. And the `eeconfig_read_*` function return a 32 bit (DWORD) value from the EEPROM.
|
||||
|
||||
### Deferred Execution :id=deferred-execution
|
||||
# Deferred Execution :id=deferred-execution
|
||||
|
||||
QMK has the ability to execute a callback after a specified period of time, rather than having to manually manage timers. To enable this functionality, set `DEFERRED_EXEC_ENABLE = yes` in rules.mk.
|
||||
|
||||
#### Deferred executor callbacks
|
||||
## Deferred executor callbacks
|
||||
|
||||
All _deferred executor callbacks_ have a common function signature and look like:
|
||||
|
||||
|
@ -430,7 +430,7 @@ The return value is the number of milliseconds to use if the function should be
|
|||
|
||||
?> Note that the returned delay will be applied to the intended trigger time, not the time of callback invocation. This allows for generally consistent timing even in the face of occasional late execution.
|
||||
|
||||
#### Deferred executor registration
|
||||
## Deferred executor registration
|
||||
|
||||
Once a callback has been defined, it can be scheduled using the following API:
|
||||
|
||||
|
@ -444,7 +444,7 @@ The third parameter is the `cb_arg` that gets passed to the callback at the poin
|
|||
|
||||
The return value is a `deferred_token` that can consequently be used to cancel the deferred executor callback before it's invoked. If a failure occurs, the returned value will be `INVALID_DEFERRED_TOKEN`. Usually this will be as a result of supplying `0` to the delay, or a `NULL` for the callback. The other failure case is if there are too many deferred executions "in flight" -- this can be increased by changing the limit, described below.
|
||||
|
||||
#### Extending a deferred execution
|
||||
## Extending a deferred execution
|
||||
|
||||
The `deferred_token` returned by `defer_exec()` can be used to extend a the duration a pending execution waits before it gets invoked:
|
||||
```c
|
||||
|
@ -452,7 +452,7 @@ The `deferred_token` returned by `defer_exec()` can be used to extend a the dura
|
|||
extend_deferred_exec(my_token, 800);
|
||||
```
|
||||
|
||||
#### Cancelling a deferred execution
|
||||
## Cancelling a deferred execution
|
||||
|
||||
The `deferred_token` returned by `defer_exec()` can be used to cancel a pending execution before it gets invoked:
|
||||
```c
|
||||
|
@ -462,7 +462,7 @@ cancel_deferred_exec(my_token);
|
|||
|
||||
Once a token has been canceled, it should be considered invalid. Reusing the same token is not supported.
|
||||
|
||||
#### Deferred callback limits
|
||||
## Deferred callback limits
|
||||
|
||||
There are a maximum number of deferred callbacks that can be scheduled, controlled by the value of the define `MAX_DEFERRED_EXECUTORS`.
|
||||
|
||||
|
|
|
@ -22,7 +22,7 @@ You will then need to add support for your new configuration to `info.json`. The
|
|||
|
||||
1. Add it to the schema in `data/schemas/keyboards.jsonschema`
|
||||
1. Add a mapping in `data/maps`
|
||||
1. (optional and discoraged) Add code to extract/generate it to:
|
||||
1. (optional and discouraged) Add code to extract/generate it to:
|
||||
* `lib/python/qmk/info.py`
|
||||
* `lib/python/qmk/cli/generate/config_h.py`
|
||||
* `lib/python/qmk/cli/generate/rules_mk.py`
|
||||
|
|
|
@ -326,7 +326,7 @@ bool process_combo_key_release(uint16_t combo_index, combo_t *combo, uint8_t key
|
|||
|
||||
If you, for example, use multiple base layers for different key layouts, one for QWERTY, and another one for Colemak, you might want your combos to work from the same key positions on all layers. Defining the same combos again for another layout is redundant and takes more memory. The solution is to just check the keycodes from one layer.
|
||||
|
||||
With `#define COMBO_ONLY_FROM_LAYER _LAYER_A` the combos' keys are always checked from layer `_LAYER_A` even though the active layer would be `_LAYER_B`.
|
||||
With `#define COMBO_ONLY_FROM_LAYER 0` in config.h, the combos' keys are always checked from layer `0`, even if other layers are active.
|
||||
|
||||
## User callbacks
|
||||
|
||||
|
|
|
@ -125,34 +125,37 @@ Layer conditions can also be used with the callback function like the following:
|
|||
|
||||
```c
|
||||
bool encoder_update_user(uint8_t index, bool clockwise) {
|
||||
if (get_highest_layer(layer_state|default_layer_state) > 0) {
|
||||
if (index == 0) {
|
||||
if (clockwise) {
|
||||
tap_code(KC_WH_D);
|
||||
} else {
|
||||
tap_code(KC_WH_U);
|
||||
switch(get_highest_layer(layer_state|default_layer_state)) {
|
||||
case 0:
|
||||
if (index == 0) {
|
||||
if (clockwise) {
|
||||
tap_code(KC_PGDN);
|
||||
} else {
|
||||
tap_code(KC_PGUP);
|
||||
}
|
||||
} else if (index == 1) {
|
||||
if (clockwise) {
|
||||
rgb_matrix_increase_speed();
|
||||
} else {
|
||||
rgb_matrix_decrease_speed();
|
||||
}
|
||||
}
|
||||
} else if (index == 1) {
|
||||
if (clockwise) {
|
||||
tap_code_delay(KC_VOLU, 10);
|
||||
} else {
|
||||
tap_code_delay(KC_VOLD, 10);
|
||||
break;
|
||||
case 1:
|
||||
if (index == 0) {
|
||||
if (clockwise) {
|
||||
tap_code(KC_WH_D);
|
||||
} else {
|
||||
tap_code(KC_WH_U);
|
||||
}
|
||||
} else if (index == 1) {
|
||||
if (clockwise) {
|
||||
tap_code_delay(KC_VOLU, 10);
|
||||
} else {
|
||||
tap_code_delay(KC_VOLD, 10);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else { /* Layer 0 */
|
||||
if (index == 0) {
|
||||
if (clockwise) {
|
||||
tap_code(KC_PGDN);
|
||||
} else {
|
||||
tap_code(KC_PGUP);
|
||||
}
|
||||
} else if (index == 1) {
|
||||
if (clockwise) {
|
||||
rgb_matrix_increase_speed();
|
||||
} else {
|
||||
rgb_matrix_decrease_speed();
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -889,15 +889,15 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
|
|||
}
|
||||
```
|
||||
|
||||
Layer indicator on all flagged keys:
|
||||
Layer indicator on all keys:
|
||||
```c
|
||||
void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
|
||||
for (uint8_t i = led_min; i <= led_max; i++) {
|
||||
switch(get_highest_layer(layer_state|default_layer_state)) {
|
||||
case RAISE:
|
||||
case 2:
|
||||
rgb_matrix_set_color(i, RGB_BLUE);
|
||||
break;
|
||||
case LOWER:
|
||||
case 1:
|
||||
rgb_matrix_set_color(i, RGB_YELLOW);
|
||||
break;
|
||||
default:
|
||||
|
@ -907,7 +907,7 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
|
|||
}
|
||||
```
|
||||
|
||||
Layer indicator with only configured keys:
|
||||
Layer indicator only on keys with configured keycodes:
|
||||
```c
|
||||
void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
|
||||
if (get_highest_layer(layer_state) > 0) {
|
||||
|
|
|
@ -305,7 +305,8 @@ void x_finished(qk_tap_dance_state_t *state, void *user_data) {
|
|||
// Last case is for fast typing. Assuming your key is `f`:
|
||||
// For example, when typing the word `buffer`, and you want to make sure that you send `ff` and not `Esc`.
|
||||
// In order to type `ff` when typing fast, the next character will have to be hit within the `TAPPING_TERM`, which by default is 200ms.
|
||||
case TD_DOUBLE_SINGLE_TAP: tap_code(KC_X); register_code(KC_X);
|
||||
case TD_DOUBLE_SINGLE_TAP: tap_code(KC_X); register_code(KC_X); break;
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -314,8 +315,9 @@ void x_reset(qk_tap_dance_state_t *state, void *user_data) {
|
|||
case TD_SINGLE_TAP: unregister_code(KC_X); break;
|
||||
case TD_SINGLE_HOLD: unregister_code(KC_LCTL); break;
|
||||
case TD_DOUBLE_TAP: unregister_code(KC_ESC); break;
|
||||
case TD_DOUBLE_HOLD: unregister_code(KC_LALT);
|
||||
case TD_DOUBLE_SINGLE_TAP: unregister_code(KC_X);
|
||||
case TD_DOUBLE_HOLD: unregister_code(KC_LALT); break;
|
||||
case TD_DOUBLE_SINGLE_TAP: unregister_code(KC_X); break;
|
||||
default: break;
|
||||
}
|
||||
xtap_state.state = TD_NONE;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,189 @@
|
|||
# Building QMK with GitHub Userspace
|
||||
|
||||
This is an intermediate QMK tutorial to setup an out-of-tree build environment with a personal GitHub repository. It avoids using a fork of the QMK firmware to store and build your keymap within its source tree. Keymap files will instead be stored in your own personal GitHub repository, in [Userspace](https://docs.qmk.fm/#/feature_userspace) format, and built with an action workflow. Unlike the [default tutorial](https://docs.qmk.fm/#/newbs), this guide requires some familiarity with using Git.
|
||||
|
||||
?> **Is This Guide For Me?**<br>
|
||||
This is a lean setup to avoid space-consuming local build environment in your computer. Troubleshooting compile-time errors will be slower with commit uploads to GitHub for the compiler workflow.
|
||||
|
||||
|
||||
## Prerequisites
|
||||
|
||||
The following are required to get started:
|
||||
|
||||
* [GitHub Account](https://github.com/new)
|
||||
* A working account is required to setup and host your repository for GitHub Actions to build QMK firmware.
|
||||
* [Text editor](newbs_learn_more_resources.md#text-editor-resources)
|
||||
* You’ll need a program that can edit and save plain text files. The default editor that comes with many OS's does not save plain text files, so you'll need to make sure that whatever editor you chose does.
|
||||
* [Toolbox](https://github.com/qmk/qmk_toolbox)
|
||||
* A graphical program for Windows and macOS that allows you to both program and debug your custom keyboard.
|
||||
|
||||
|
||||
## Environment Setup
|
||||
|
||||
?> If you are familiar with using [github.dev](https://docs.github.com/en/codespaces/the-githubdev-web-based-editor), you can skip to [step 2](#_2-create-github-repository) and commit the code files that follows directly on GitHub using the web-based VSCode editor.
|
||||
|
||||
### 1. Install Git
|
||||
|
||||
A working Git client is required for your local operating system to commit and push changes to GitHub.
|
||||
|
||||
<!-- tabs:start -->
|
||||
|
||||
### ** Windows **
|
||||
|
||||
QMK maintains a bundle of MSYS2, the CLI and all necessary dependencies including Git. Install [QMK MSYS](https://msys.qmk.fm/) with the latest release [here](https://github.com/qmk/qmk_distro_msys/releases/latest). Git will be part of the bundle.
|
||||
|
||||
### ** macOS **
|
||||
|
||||
Install Homebrew following the instructions on https://brew.sh. Git will be part of the bundle.
|
||||
|
||||
### ** Linux/WSL **
|
||||
|
||||
It's very likely that you already have Git installed. If not, use one of the following commands:
|
||||
|
||||
* Debian / Ubuntu / Devuan: `sudo apt install -y git`
|
||||
* Fedora / Red Hat / CentOS: `sudo yum -y install git`
|
||||
* Arch / Manjaro: `sudo pacman --needed --noconfirm -S git`
|
||||
* Void: `sudo xbps-install -y git`
|
||||
* Solus: `sudo eopkg -y install git`
|
||||
* Sabayon: `sudo equo install dev-vcs/git`
|
||||
* Gentoo: `sudo emerge dev-vcs/git`
|
||||
|
||||
<!-- tabs:end -->
|
||||
|
||||
### 2. GitHub authentication
|
||||
|
||||
If your GitHub account is not configured for [authenticated Git operations](https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/), you will need to setup at least one of the following:
|
||||
* [Personal access token](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)
|
||||
* [Connecting with SSH](https://docs.github.com/en/authentication/connecting-to-github-with-ssh)
|
||||
|
||||
### 3. Create a repository
|
||||
|
||||
You will need a personal GitHub repository to host your QMK code. Follow [this guide](https://docs.github.com/en/get-started/quickstart/create-a-repo#create-a-repository) to create one named `qmk_keymap`. Do not proceed to commit any files just yet.
|
||||
|
||||
|
||||
## Initial Code Commit
|
||||
|
||||
### Create template files
|
||||
|
||||
Run the following commands in your computer to create a folder with a few template files:
|
||||
```
|
||||
mkdir -p ~/qmk_keymap/.github/workflows
|
||||
touch ~/qmk_keymap/.github/workflows/build.yml
|
||||
touch ~/qmk_keymap/config.h
|
||||
echo "SRC += source.c" > ~/qmk_keymap/rules.mk
|
||||
echo "#include QMK_KEYBOARD_H" > ~/qmk_keymap/source.c
|
||||
```
|
||||
|
||||
?> For Windows user running MSYS, those commands will create the folder `qmk_keymap/` and its content in the `C:\Users\<windows_username>\qmk_keymap\` path location.
|
||||
|
||||
### Add a JSON keymap
|
||||
|
||||
Visit the [QMK Configurator](https://config.qmk.fm/#/) to create a keymap file:
|
||||
|
||||
1. Select your keyboard from the drop-down list (and choose a layout if required).
|
||||
2. Use your GitHub username for the **Keymap Name** field.
|
||||
3. Customise the key layout according to your preference.
|
||||
4. Select download next to **KEYMAP.JSON** and save the JSON file into the `~/qmk_keymap/` folder.
|
||||
|
||||
### Add a GitHub Action workflow
|
||||
|
||||
Open the file `~/qmk_keymap/.github/workflows/build.yml` with your favorite [text editor](newbs_learn_more_resources.md#text-editor-resources), paste the following workflow content, and save it:
|
||||
```yml
|
||||
name: Build QMK firmware
|
||||
on: [push, workflow_dispatch]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
container: qmkfm/qmk_cli
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
# List of keymap json files to build
|
||||
file:
|
||||
- username.json
|
||||
# End of json file list
|
||||
|
||||
steps:
|
||||
|
||||
- name: Checkout QMK
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
repository: qmk/qmk_firmware
|
||||
submodules: recursive
|
||||
|
||||
- name: Checkout userspace
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
path: users/${{ github.actor }}
|
||||
|
||||
- name: Build firmware
|
||||
run: qmk compile "users/${{ github.actor }}/${{ matrix.file }}"
|
||||
|
||||
- name: Archive firmware
|
||||
uses: actions/upload-artifact@v3
|
||||
continue-on-error: true
|
||||
with:
|
||||
name: ${{ matrix.file }}_${{ github.actor }}
|
||||
path: |
|
||||
*.hex
|
||||
*.bin
|
||||
*.uf2
|
||||
```
|
||||
Replace `username.json` with the JSON file name that was downloaded from [QMK Configurator](https://config.qmk.fm/#/) in the previous step.
|
||||
|
||||
!> Do note that the `build.yml` file requires ***proper indentation*** for every line. Incorrect spacing will trigger workflow syntax errors.
|
||||
|
||||
### Commit files to GitHub
|
||||
|
||||
If you have completed all steps correctly, the folder `qmk_keymap/` will contain the following files:
|
||||
```
|
||||
|-- .github
|
||||
| `-- workflows
|
||||
| `-- build.yml
|
||||
|-- rules.mk
|
||||
|-- config.h
|
||||
|-- source.c
|
||||
|-- username.json
|
||||
```
|
||||
|
||||
To commit and push them into GitHub, run the following commands (replacing `gh-username` with your GitHub user name):
|
||||
```
|
||||
cd ~/qmk_keymap
|
||||
git init
|
||||
git add -A
|
||||
git commit -m "Initial QMK keymap commit"
|
||||
git branch -M main
|
||||
git remote add origin https://github.com/gh-username/qmk_keymap.git
|
||||
git push -u origin main
|
||||
```
|
||||
?> Use your GitHub personal access token at the password prompt. If you have setup SSH access, replace `https://github.com/gh-username/qmk_keymap.git` with `git@github.com:gh-username/qmk_keymap.git` in the remote origin command above.
|
||||
|
||||
### Review workflow output
|
||||
|
||||
Files committed to GitHub in the previous step will automatically trigger the workflow to build the JSON file listed in `build.yml`. To review its output:
|
||||
1. Visit your "**qmk_keymap**" repository page on [GitHub](https://github.com/).
|
||||
2. Select **Actions** tab to display the "**Build QMK Firmware**" workflow.
|
||||
3. Select that workflow to display its run from the last commit.
|
||||
4. Successfully compiled firmware will be under the "**Artifacts**" section.
|
||||
5. If there are build errors, review the job log for details.
|
||||
|
||||
Download and flash the firmware file into your keyboard using [QMK Toolbox](https://docs.qmk.fm/#/newbs_flashing?id=flashing-your-keyboard-with-qmk-toolbox).
|
||||
|
||||
|
||||
## Customising your keymap
|
||||
|
||||
This setup and workflow relies on the QMK [Userspace](https://docs.qmk.fm/#/feature_userspace) feature. The build process will copy the QMK source codes and clone your repository into its `users/` folder in a container. You must adhere to the following guidelines when customising your keymaps:
|
||||
|
||||
* Keymap layout files must be retained in JSON format and cannot be converted to `keymap.c`.
|
||||
* User callback and functions (e.g. `process_record_user()`) can be placed in the `source.c` file.
|
||||
* Multiple keymap JSON files can be built in the same workflow. List them under `matrix.file:`, e.g.:
|
||||
```yml
|
||||
file:
|
||||
- planck.json
|
||||
- crkbd.json
|
||||
```
|
||||
* Code changes will require Git commit into GitHub to trigger the build workflow.
|
||||
|
||||
|
||||
?> See [GitHub Actions guide](https://docs.github.com/en/actions/learn-github-actions) to learn more about development workflow.
|
|
@ -20,7 +20,6 @@ Not sure which text editor to use?
|
|||
Editors specifically made for code:
|
||||
* [Sublime Text](https://www.sublimetext.com/)
|
||||
* [VS Code](https://code.visualstudio.com/)
|
||||
* [Atom](https://atom.io/)
|
||||
|
||||
### Git resources
|
||||
|
||||
|
|
|
@ -0,0 +1,48 @@
|
|||
# WeAct Blackpill (STM32F411)
|
||||
|
||||
The WeAct Blackpill is a popular choice for handwired boards, as it offers a powerful micro controller, USB Type C, a good number of pins to use, and a large amount of firmware space. All for a ~$6 USD price tag.
|
||||
|
||||
* [WeAct GitHub for F411 Blackpill](https://github.com/WeActTC/MiniSTM32F4x1)
|
||||
* Unfortunately, due to supply issues official WeAct F411 based blackpills may not be available.
|
||||
|
||||
![Blackpill F411](https://i.imgur.com/nCgeolTh.png)
|
||||
|
||||
|
||||
## Pin Usage Limitations
|
||||
|
||||
While the Blackpill is a great choice to use in your keyboard, there are a number of caveats in regards to using them. The first is that a number of exposed pins cannot be used, or have special considerations/hardware tweaks that are required for proper opertion.
|
||||
|
||||
### Unusable pins
|
||||
* Pins `A11` and `A12` are not useable because they're used for USB connection, and cannot be shared.
|
||||
* In theory, these pins can be used. However, doing so may disable USB connectivity, outright, if used for anything other than a USB port
|
||||
* Pin `B2` is used by `BOOT1` and cannot be used, without causing problems.
|
||||
* `VBAT` is not a usable pin.
|
||||
* `NRST` is not a usable pin.
|
||||
|
||||
### Pins to be avoided
|
||||
* Pin `A9` is meant for VBUS Sense and should not be used, if it can be avoided. It has an internal pull-down resesitor, which may cause issues with usage. However, a pull-up resistor can work (~5.1k), but should be avoided.
|
||||
* Pin `A10` can be used, but should be avoided. Any connection on this pin can prevent the bootloader from entering the proper mode for DFU flashing. A pull-up resistor (~22k) on this pin fixes the bootloader issue.
|
||||
|
||||
### Shared Usage
|
||||
* Pin `A0` is shared with the User Key (button) on the controller. It can be used.
|
||||
* Pin `C13` is shared with the onboard LED indicator, and is connected to +3.3V. This can be used, but may cause the LED to blink intermittently, depending on activity on the pin.
|
||||
*
|
||||
* Pins `A4`, `A5`, `A6` and `A7` are used by the SOI8 footprint on the back of the controller, that can be used for either an SPI Flash chip, or an SPI EEPROM chip. `A4` is the Chip Select pin, and cannot be shared. However, `A5`, `A6`, and `A7` are the `SCK`, `MISO`, and `MOSI` pins, respectively, and can be shared with other SPI devices.
|
||||
|
||||
### Limited Usage
|
||||
* Pins `C13`, `C14`, and `C15` have limits on output current. They should be used only as input. Eg, they should not be used for row pins in COL2ROW matrix configurations, but can be used as column pins.
|
||||
* This is because the column pins (in COL2ROW) are pulled up (the pullup strength is independant of the current sourcing limitation) and the ROW is driven low and sinks current, then we check the state of the COLs to look for keypresses.
|
||||
|
||||
* Pins `A0` and `B5` are not 5V tolerant, and should only be used with 3.3V compatible functionality.
|
||||
|
||||
## Additional Information
|
||||
|
||||
### Bootloader issuse
|
||||
|
||||
Due to the use of a 25MHz crystal, the controller may have issues entering the bootloader. Heating up the controller can help with this issue.
|
||||
|
||||
Also, if pin `A10` is connected to anything at all, it needs to have a pullup resistor (see [Pins to be avoided](#pins-to-be-avoided), above)
|
||||
|
||||
### Tiny UF2 Support
|
||||
|
||||
There is [tinyuf2 support for the WeAct Blackpill](https://github.com/adafruit/tinyuf2/tree/master/ports/stm32f4/boards/stm32f411ce_blackpill). Instructions on how to compile the bootloadr can be found [here](https://github.com/adafruit/tinyuf2#build-and-flash). Setting `BOOTLOADER = tinyuf2` will enable support for this user bootloader, and the correct configuration to prevent it from being overwritten when flashing firmware.
|
|
@ -46,9 +46,12 @@ Closed PRs (for inspiration, previous sets of review comments will help you elim
|
|||
https://github.com/qmk/qmk_firmware/pulls?q=is%3Apr+is%3Aclosed+label%3Akeyboard
|
||||
|
||||
- `info.json`
|
||||
- valid URL
|
||||
- valid maintainer
|
||||
- displays correctly in Configurator (press Ctrl+Shift+I to preview local file, turn on fast input to verify ordering)
|
||||
- With the move to [data driven](https://docs.qmk.fm/#/data_driven_config) keyboard configuration, we encourage contributors to utilise as many features as possible of the info.json [schema](https://github.com/qmk/qmk_firmware/blob/master/data/schemas/keyboard.jsonschema).
|
||||
- the mandatory elements for a minimally complete `info.json` at present are:
|
||||
- valid URL
|
||||
- valid maintainer
|
||||
- valid USB VID/PID and device version
|
||||
- displays correctly in Configurator (press Ctrl+Shift+I to preview local file, turn on fast input to verify ordering)
|
||||
- `readme.md`
|
||||
- standard template should be present -- [link to template](https://github.com/qmk/qmk_firmware/blob/master/data/templates/keyboard/readme.md)
|
||||
- flash command is present, and has `:flash` at end
|
||||
|
@ -57,6 +60,7 @@ https://github.com/qmk/qmk_firmware/pulls?q=is%3Apr+is%3Aclosed+label%3Akeyboard
|
|||
- a picture about the keyboard and preferably about the PCB, too
|
||||
- images are not to be placed in the `qmk_firmware` repository
|
||||
- images should be uploaded to an external image hosting service, such as [imgur](https://imgur.com/).
|
||||
- if imgur is used, images should be resized appropriately: append "h" to the image url i.e. `https://i.imgur.com/vqgE7Ok.jpg` becomes `https://i.imgur.com/vqgE7Okh.jpg`
|
||||
- `rules.mk`
|
||||
- removed `MIDI_ENABLE`, `FAUXCLICKY_ENABLE` and `HD44780_ENABLE`
|
||||
- modified `# Enable Bluetooth with the Adafruit EZ-Key HID` -> `# Enable Bluetooth`
|
||||
|
|
|
@ -188,7 +188,10 @@ If you've done all of this, and your firmware is still too large, then it's time
|
|||
That said, there are a number of Pro Micro replacements with ARM controllers:
|
||||
* [Proton C](https://qmk.fm/proton-c/) (out of stock)
|
||||
* [Bonsai C](https://github.com/customMK/Bonsai-C) (Open Source, DIY/PCBA)
|
||||
* [Raspberry Pi 2040](https://www.sparkfun.com/products/18288) (not currently supported, no ETA)
|
||||
* [STeMCell](https://github.com/megamind4089/STeMCell) (Open Source, DIY/PCBA)
|
||||
* [Adafruit KB2040](https://learn.adafruit.com/adafruit-kb2040)
|
||||
* [SparkFun Pro Micro - RP2040](https://www.sparkfun.com/products/18288)
|
||||
* [Blok](https://boardsource.xyz/store/628b95b494dfa308a6581622)
|
||||
|
||||
There are other, non-Pro Micro compatible boards out there. The most popular being:
|
||||
* [WeAct Blackpill F411](https://www.aliexpress.com/item/1005001456186625.html) (~$6 USD)
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
"keyboard_name": "0-Sixty",
|
||||
"usb": {
|
||||
"pid": "0x0060"
|
||||
},
|
||||
"indicators": {
|
||||
"caps_lock": "B6"
|
||||
}
|
||||
}
|
|
@ -18,15 +18,6 @@
|
|||
|
||||
#include "config_common.h"
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
|
||||
#define VENDOR_ID 0x7654
|
||||
#define PRODUCT_ID 0x0060
|
||||
#define DEVICE_VER 0x0001
|
||||
|
||||
#define MANUFACTURER ven0mtr0n
|
||||
#define PRODUCT 0-Sixty
|
||||
|
||||
/* key matrix size */
|
||||
// Rows are doubled-up
|
||||
#define MATRIX_ROWS 5
|
||||
|
@ -41,9 +32,6 @@
|
|||
/* Set 0 if debouncing isn't needed */
|
||||
#define DEBOUNCE 5
|
||||
|
||||
/* indicator leds */
|
||||
#define LED_CAPS_LOCK_PIN B6
|
||||
|
||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||
#define LOCKING_SUPPORT_ENABLE
|
||||
/* Locking resynchronize hack */
|
||||
|
|
|
@ -1,7 +1,11 @@
|
|||
{
|
||||
"keyboard_name": "0-Sixty",
|
||||
"manufacturer": "ven0mtr0n",
|
||||
"url": "",
|
||||
"maintainer": "vinamarora8",
|
||||
"usb": {
|
||||
"vid": "0x7654",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT_1x2uC": {
|
||||
"layout": [
|
||||
|
|
|
@ -17,3 +17,5 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
|||
AUDIO_ENABLE = no # Audio output
|
||||
|
||||
LTO_ENABLE = yes # Link-time opt
|
||||
|
||||
DEFAULT_FOLDER = 0_sixty/base
|
||||
|
|
|
@ -18,15 +18,6 @@
|
|||
|
||||
#include "config_common.h"
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#undef PRODUCT_ID
|
||||
#define PRODUCT_ID 0x0061
|
||||
#undef PRODUCT
|
||||
#define PRODUCT 0-Sixty-underglow
|
||||
|
||||
/* no caps lock with underglow */
|
||||
#undef LED_CAPS_LOCK_PIN
|
||||
|
||||
/* underglow */
|
||||
#define RGB_DI_PIN B6
|
||||
#define RGBLED_NUM 24
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
"keyboard_name": "0-Sixty-underglow",
|
||||
"usb": {
|
||||
"pid": "0x0061"
|
||||
},
|
||||
"features": {
|
||||
"rgblight": true
|
||||
}
|
||||
}
|
|
@ -1 +0,0 @@
|
|||
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
|
|
@ -24,4 +24,4 @@ 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
|
||||
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
|
||||
|
|
|
@ -18,13 +18,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
|
||||
#include "config_common.h"
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define VENDOR_ID 0xCB00
|
||||
#define PRODUCT_ID 0xF09F
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER ItsFiremanSam
|
||||
#define PRODUCT TutelPad
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 2
|
||||
#define MATRIX_COLS 4
|
||||
|
|
|
@ -1,7 +1,13 @@
|
|||
{
|
||||
"keyboard_name": "TutelPad",
|
||||
"manufacturer": "ItsFiremanSam",
|
||||
"url": "",
|
||||
"maintainer": "ItsFiremanSam",
|
||||
"usb": {
|
||||
"vid": "0xCB00",
|
||||
"pid": "0xF09F",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
|
|
|
@ -17,13 +17,6 @@
|
|||
|
||||
#include "config_common.h"
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define VENDOR_ID 0x0009
|
||||
#define PRODUCT_ID 0x0001
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER MakotoKurauchi
|
||||
#define PRODUCT 1K
|
||||
|
||||
/* matrix size */
|
||||
#define MATRIX_ROWS 1
|
||||
#define MATRIX_COLS 1
|
||||
|
|
|
@ -1,7 +1,13 @@
|
|||
{
|
||||
"keyboard_name": "1k",
|
||||
"keyboard_name": "1K",
|
||||
"manufacturer": "MakotoKurauchi",
|
||||
"url": "",
|
||||
"maintainer": "MakotoKurauchi",
|
||||
"usb": {
|
||||
"vid": "0x0009",
|
||||
"pid": "0x0001",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT_ortho_1x1": {
|
||||
"layout": [
|
||||
|
|
|
@ -22,4 +22,4 @@ 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
|
||||
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
|
||||
|
|
|
@ -2,11 +2,6 @@
|
|||
|
||||
#include "config_common.h"
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define VENDOR_ID 0x6F75 // OU
|
||||
#define MANUFACTURER 1up Keyboards
|
||||
#define PRODUCT Sweet16
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 4
|
||||
#define MATRIX_COLS 4
|
||||
|
|
|
@ -1,7 +1,11 @@
|
|||
{
|
||||
"keyboard_name": "Sweet 16",
|
||||
"keyboard_name": "Sweet16",
|
||||
"manufacturer": "1up Keyboards",
|
||||
"url": "",
|
||||
"maintainer": "skullydazed",
|
||||
"usb": {
|
||||
"vid": "0x6F75"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT_ortho_4x4": {
|
||||
"layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}]
|
||||
|
|
|
@ -2,10 +2,6 @@
|
|||
|
||||
#include "config_common.h"
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define PRODUCT_ID 0x0161
|
||||
#define DEVICE_VER 0x0001
|
||||
|
||||
/* key matrix pins */
|
||||
#define MATRIX_ROW_PINS { F4, F5, F6, F7 }
|
||||
#define MATRIX_COL_PINS { D1, D0, D4, C6 }
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"usb": {
|
||||
"pid": "0x0161",
|
||||
"device_version": "0.0.1"
|
||||
}
|
||||
}
|
|
@ -2,10 +2,6 @@
|
|||
|
||||
#include "config_common.h"
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define PRODUCT_ID 0x0162
|
||||
#define DEVICE_VER 0x0001
|
||||
|
||||
/* key matrix pins */
|
||||
#define MATRIX_ROW_PINS { D4, D1, E6, B5 }
|
||||
#define MATRIX_COL_PINS { F7, F6, D2, D3 }
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"usb": {
|
||||
"pid": "0x0162",
|
||||
"device_version": "0.0.1"
|
||||
}
|
||||
}
|
|
@ -2,10 +2,6 @@
|
|||
|
||||
#include "config_common.h"
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define PRODUCT_ID 0x0162
|
||||
#define DEVICE_VER 0x0001
|
||||
|
||||
/* key matrix pins */
|
||||
#define MATRIX_ROW_PINS { B5, B7, B2, B0 }
|
||||
#define MATRIX_COL_PINS { B8, A0, A10, A9 }
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"usb": {
|
||||
"pid": "0x0162",
|
||||
"device_version": "0.0.1"
|
||||
}
|
||||
}
|
|
@ -1,7 +1,12 @@
|
|||
{
|
||||
"keyboard_name": "aleth42",
|
||||
"keyboard_name": "ALETH42",
|
||||
"manufacturer": "25KEYS",
|
||||
"url": "http://www.sho-k.co.uk/tech/aleth42",
|
||||
"maintainer": "monksoffunk",
|
||||
"usb": {
|
||||
"vid": "0x04D8",
|
||||
"pid": "0xEAC8"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
|
|
|
@ -19,13 +19,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
|
||||
#include "config_common.h"
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define VENDOR_ID 0x04D8
|
||||
#define PRODUCT_ID 0xEAC8
|
||||
#define DEVICE_VER 0x0000
|
||||
#define MANUFACTURER 25KEYS
|
||||
#define PRODUCT ALETH42
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 4
|
||||
#define MATRIX_COLS 11
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"usb": {
|
||||
"device_version": "0.0.0"
|
||||
}
|
||||
}
|
|
@ -19,13 +19,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
|
||||
#include "config_common.h"
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define VENDOR_ID 0x04D8
|
||||
#define PRODUCT_ID 0xEAC8
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER 25KEYS
|
||||
#define PRODUCT ALETH42
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 4
|
||||
#define MATRIX_COLS 11
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"usb": {
|
||||
"device_version": "0.0.1"
|
||||
}
|
||||
}
|
|
@ -1,8 +1,13 @@
|
|||
{
|
||||
"keyboard_name": "Zinc",
|
||||
"url": "https://github.com/monksoffunk/",
|
||||
"manufacturer": "25KEYS",
|
||||
"url": "https://github.com/monksoffunk/zinc",
|
||||
"maintainer": "monksoffunk",
|
||||
"layouts": {
|
||||
"usb": {
|
||||
"vid": "0x04D8",
|
||||
"pid": "0xEA3B",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":9, "y":1}, {"x":10, "y":1}, {"x":11, "y":1}, {"x":12, "y":1}, {"x":13, "y":1}, {"x":14, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"x":11, "y":2}, {"x":12, "y":2}, {"x":13, "y":2}, {"x":14, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}, {"x":12, "y":3}, {"x":13, "y":3}, {"x":14, "y":3}]
|
||||
}
|
||||
|
|
|
@ -22,7 +22,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||
),
|
||||
|
||||
[_LOWER] = LAYOUT_ortho_4x12(
|
||||
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, _______, _______, _______,
|
||||
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, RCMD(RALT(KC_O)), RCMD(RALT(KC_L)), _______,
|
||||
_______, KC_LT, KC_GT, KC_LPRN, KC_RPRN, KC_GRV, KC_MINS, KC_LCBR, KC_RCBR, KC_LBRC, KC_RBRC, KC_PIPE,
|
||||
KC_LALT, _______, _______, _______, KC_EQL, KC_QUES, KC_UNDS, KC_PLUS, KC_COMM, _______, KC_SLSH, _______,
|
||||
_______, _______, _______, _______, _______, KC_TRNS, KC_TRNS, KC_RGUI, _______, _______, _______, _______
|
||||
|
|
|
@ -17,13 +17,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
|
||||
#pragma once
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define VENDOR_ID 0x04D8
|
||||
#define PRODUCT_ID 0xEA3B
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER 25KEYS
|
||||
#define PRODUCT zinc rev.1
|
||||
|
||||
#define TAPPING_FORCE_HOLD
|
||||
#define TAPPING_TERM 100
|
||||
|
||||
|
|
|
@ -1,10 +1,3 @@
|
|||
{
|
||||
"keyboard_name": "Zinc rev.1",
|
||||
"url": "https://github.com/monksoffunk/zinc",
|
||||
"maintainer": "monksoffunk",
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":9, "y":1}, {"x":10, "y":1}, {"x":11, "y":1}, {"x":12, "y":1}, {"x":13, "y":1}, {"x":14, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"x":11, "y":2}, {"x":12, "y":2}, {"x":13, "y":2}, {"x":14, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}, {"x":12, "y":3}, {"x":13, "y":3}, {"x":14, "y":3}]
|
||||
}
|
||||
}
|
||||
"keyboard_name": "Zinc rev.1"
|
||||
}
|
||||
|
|
|
@ -17,13 +17,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
|
||||
#pragma once
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define VENDOR_ID 0x04D8
|
||||
#define PRODUCT_ID 0xEA3B
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER 25KEYS
|
||||
#define PRODUCT zinc rev.A
|
||||
|
||||
#define TAPPING_FORCE_HOLD
|
||||
#define TAPPING_TERM 100
|
||||
|
||||
|
|
|
@ -1,10 +1,3 @@
|
|||
{
|
||||
"keyboard_name": "Zinc rev.A",
|
||||
"url": "https://github.com/monksoffunk/zinc",
|
||||
"maintainer": "monksoffunk",
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":9, "y":1}, {"x":10, "y":1}, {"x":11, "y":1}, {"x":12, "y":1}, {"x":13, "y":1}, {"x":14, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"x":11, "y":2}, {"x":12, "y":2}, {"x":13, "y":2}, {"x":14, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}, {"x":12, "y":3}, {"x":13, "y":3}, {"x":14, "y":3}]
|
||||
}
|
||||
}
|
||||
"keyboard_name": "Zinc rev.A"
|
||||
}
|
||||
|
|
|
@ -1,7 +1,12 @@
|
|||
{
|
||||
"keyboard_name": "3w6",
|
||||
"manufacturer": "weteor",
|
||||
"url": "https://github.com/weteor/3W6/",
|
||||
"maintainer": "weteor",
|
||||
"usb": {
|
||||
"vid": "0xFEED",
|
||||
"pid": "0x4658"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
|
|
|
@ -17,14 +17,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
|
||||
#pragma once
|
||||
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define VENDOR_ID 0xFEED
|
||||
#define PRODUCT_ID 0x4658
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER weteor
|
||||
#define PRODUCT 3w6
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 8
|
||||
#define MATRIX_COLS 10
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"usb": {
|
||||
"device_version": "0.0.1"
|
||||
}
|
||||
}
|
|
@ -17,14 +17,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
|
||||
#pragma once
|
||||
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define VENDOR_ID 0xFEED
|
||||
#define PRODUCT_ID 0x4658
|
||||
#define DEVICE_VER 0x0002
|
||||
#define MANUFACTURER weteor
|
||||
#define PRODUCT 3w6
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 8
|
||||
#define MATRIX_COLS 10
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"usb": {
|
||||
"device_version": "0.0.2"
|
||||
}
|
||||
}
|
|
@ -48,6 +48,6 @@ Enter the bootloader in 3 ways:
|
|||
|
||||
* **Bootmagic reset**: Hold down the top left key of the keyboard (top right or bottom left in horizontal configuration)
|
||||
* **Physical reset**: Briefly press the button on the bottom of the microcontroller or, if not present short the pin marked RST to a GND.
|
||||
* **Keycode in layout**: Press the key mapped to `RESET` if it is available
|
||||
* **Keycode in layout**: Press the key mapped to `QK_BOOT` 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).
|
||||
|
|
|
@ -2,13 +2,6 @@
|
|||
|
||||
#include "config_common.h"
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define VENDOR_ID 0x4444
|
||||
#define PRODUCT_ID 0x0001
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER 4pplet
|
||||
#define PRODUCT AEKISO60 Rev A
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 5
|
||||
#define MATRIX_COLS 14
|
||||
|
|
|
@ -1,7 +1,13 @@
|
|||
{
|
||||
"keyboard_name": "AEKISO60 Rev A",
|
||||
"manufacturer": "4pplet",
|
||||
"url": "",
|
||||
"maintainer": "4pplet",
|
||||
"usb": {
|
||||
"vid": "0x4444",
|
||||
"pid": "0x0001",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT_all": {
|
||||
"layout": [
|
||||
|
|
|
@ -18,13 +18,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
|
||||
#include "config_common.h"
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define VENDOR_ID 0x4444
|
||||
#define PRODUCT_ID 0x0004
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER 4pplet
|
||||
#define PRODUCT bootleg Rev A
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 5
|
||||
#define MATRIX_COLS 15
|
||||
|
|
|
@ -1,7 +1,13 @@
|
|||
{
|
||||
"keyboard_name": "bootleg Rev A",
|
||||
"manufacturer": "4pplet",
|
||||
"url": "https://github.com/4pplet/bootlegs",
|
||||
"maintainer": "4pplet",
|
||||
"usb": {
|
||||
"vid": "0x4444",
|
||||
"pid": "0x0004",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT_all": {
|
||||
"layout": [
|
|
@ -16,13 +16,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/
|
||||
#pragma once
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define VENDOR_ID 0x4444
|
||||
#define PRODUCT_ID 0x0007
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER 4pplet
|
||||
#define PRODUCT Eagle Viper REP Rev A
|
||||
|
||||
#define MATRIX_ROWS 10
|
||||
#define MATRIX_COLS 7
|
||||
|
||||
|
|
|
@ -1,7 +1,13 @@
|
|||
{
|
||||
"keyboard_name": "Eagle/Viper Rep",
|
||||
"keyboard_name": "Eagle Viper REP Rev A",
|
||||
"manufacturer": "4pplet",
|
||||
"url": "https://github.com/4pplet/eagle_viper_rep",
|
||||
"maintainer": "4pplet",
|
||||
"usb": {
|
||||
"vid": "0x4444",
|
||||
"pid": "0x0007",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT_all": {
|
||||
"layout": [
|
|
@ -26,7 +26,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL),
|
||||
// basic function layer
|
||||
[1] = LAYOUT_60_iso(
|
||||
RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
|
||||
QK_BOOT, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, 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, RGB_MODE_PLAIN, RGB_MODE_BREATHE, RGB_MODE_RAINBOW, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
|
|
|
@ -27,7 +27,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL),
|
||||
// basic function layer
|
||||
[1] = LAYOUT_60_iso(
|
||||
RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
|
||||
QK_BOOT, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, 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, RGB_MODE_PLAIN, RGB_MODE_BREATHE, RGB_MODE_RAINBOW, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
|
|
|
@ -16,13 +16,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/
|
||||
#pragma once
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define VENDOR_ID 0x4444
|
||||
#define PRODUCT_ID 0x0009
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER 4pplet
|
||||
#define PRODUCT Perk60 ISO Rev A
|
||||
|
||||
#define MATRIX_ROWS 10
|
||||
#define MATRIX_COLS 7
|
||||
|
||||
|
@ -43,8 +36,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
#define DRIVER_LED_TOTAL 62
|
||||
#define ISSI_PWM_FREQUENCY 0b010
|
||||
|
||||
#define STM32_HSECLK 8000000
|
||||
|
||||
#define RGB_MATRIX_STARTUP_VAL 80
|
||||
#define RGB_MATRIX_KEYPRESSES
|
||||
|
||||
|
|
|
@ -1,7 +1,13 @@
|
|||
{
|
||||
"keyboard_name": "Perk60 ISO Rev A",
|
||||
"manufacturer": "4pplet",
|
||||
"url": "",
|
||||
"maintainer": "4pplet",
|
||||
"usb": {
|
||||
"vid": "0x4444",
|
||||
"pid": "0x0009",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT_60_iso": {
|
||||
"layout": [{"label":"\u00ac", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"\"", "x":2, "y":0}, {"label":"\u00a3", "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":"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.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":"AltGr", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}]
|
|
@ -22,19 +22,6 @@
|
|||
#pragma once
|
||||
|
||||
#include_next <mcuconf.h>
|
||||
#undef STM32_PLLM_VALUE
|
||||
#undef STM32_PLLN_VALUE
|
||||
#undef STM32_PLLP_VALUE
|
||||
#undef STM32_PLLQ_VALUE
|
||||
#undef STM32_PPRE1
|
||||
#undef STM32_PPRE2
|
||||
|
||||
#define STM32_PLLM_VALUE 4
|
||||
#define STM32_PLLN_VALUE 168
|
||||
#define STM32_PLLP_VALUE 4
|
||||
#define STM32_PLLQ_VALUE 7
|
||||
#define STM32_PPRE1 STM32_PPRE1_DIV2
|
||||
#define STM32_PPRE2 STM32_PPRE2_DIV1
|
||||
|
||||
#undef STM32_I2C_USE_I2C1
|
||||
#define STM32_I2C_USE_I2C1 TRUE
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
# MCU name
|
||||
MCU = STM32F411
|
||||
BOARD = GENERIC_STM32_F411XE
|
||||
|
||||
# Bootloader selection
|
||||
BOOTLOADER = stm32-dfu
|
||||
|
|
|
@ -2,13 +2,6 @@
|
|||
|
||||
#include "config_common.h"
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define VENDOR_ID 0x4444
|
||||
#define PRODUCT_ID 0x0002
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER 4pplet
|
||||
#define PRODUCT Steezy60 Rev A
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 5
|
||||
#define MATRIX_COLS 14
|
||||
|
|
|
@ -1,7 +1,13 @@
|
|||
{
|
||||
"keyboard_name": "Steezy60 Rev A",
|
||||
"manufacturer": "4pplet",
|
||||
"url": "",
|
||||
"maintainer": "4pplet",
|
||||
"usb": {
|
||||
"vid": "0x4444",
|
||||
"pid": "0x0002",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT_all": {
|
||||
"layout": [
|
||||
|
|
|
@ -1,7 +1,10 @@
|
|||
{
|
||||
"keyboard_name": "Waffling60 Rev A",
|
||||
"manufacturer": "4pplet",
|
||||
"url": "https://github.com/4pplet/waffling60",
|
||||
"maintainer": "4pplet",
|
||||
"usb": {
|
||||
"vid": "0x4444"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT_all": {
|
||||
"layout": [
|
||||
|
|
|
@ -2,13 +2,6 @@
|
|||
|
||||
#include "config_common.h"
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define VENDOR_ID 0x4444
|
||||
#define PRODUCT_ID 0x0003
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER 4pplet
|
||||
#define PRODUCT waffling60 Rev A
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 6
|
||||
#define MATRIX_COLS 11
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"keyboard_name": "Waffling60 Rev A",
|
||||
"usb": {
|
||||
"pid": "0x0003",
|
||||
"device_version": "0.0.1"
|
||||
}
|
||||
}
|
|
@ -18,13 +18,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
|
||||
#include "config_common.h"
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define VENDOR_ID 0x4444
|
||||
#define PRODUCT_ID 0x0005
|
||||
#define DEVICE_VER 0x0002
|
||||
#define MANUFACTURER 4pplet
|
||||
#define PRODUCT waffling60 Rev B
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 5
|
||||
#define MATRIX_COLS 14
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"keyboard_name": "Waffling60 Rev B",
|
||||
"usb": {
|
||||
"pid": "0x0005",
|
||||
"device_version": "0.0.2"
|
||||
}
|
||||
}
|
|
@ -18,13 +18,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
|
||||
#include "config_common.h"
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define VENDOR_ID 0x4444
|
||||
#define PRODUCT_ID 0x0008
|
||||
#define DEVICE_VER 0x0003
|
||||
#define MANUFACTURER 4pplet
|
||||
#define PRODUCT waffling60 Rev C
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 5
|
||||
#define MATRIX_COLS 14
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"keyboard_name": "Waffling60 Rev C",
|
||||
"usb": {
|
||||
"pid": "0x0008",
|
||||
"device_version": "0.0.3"
|
||||
}
|
||||
}
|
|
@ -18,13 +18,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
|
||||
#include "config_common.h"
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define VENDOR_ID 0x4444
|
||||
#define PRODUCT_ID 0x0006
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER 4pplet
|
||||
#define PRODUCT waffling80 Rev A
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 12
|
||||
#define MATRIX_COLS 8
|
||||
|
|
|
@ -1,7 +1,13 @@
|
|||
{
|
||||
"keyboard_name": "waffling80 Rev A",
|
||||
"manufacturer": "4pplet",
|
||||
"url": "",
|
||||
"maintainer": "4pplet",
|
||||
"usb": {
|
||||
"vid": "0x4444",
|
||||
"pid": "0x0006",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT_all": {
|
||||
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1.25, "y":0}, {"label":"F2", "x":2.25, "y":0}, {"label":"F3", "x":3.25, "y":0}, {"label":"F4", "x":4.25, "y":0}, {"label":"F5", "x":5.5, "y":0}, {"label":"F6", "x":6.5, "y":0}, {"label":"F7", "x":7.5, "y":0}, {"label":"F8", "x":8.5, "y":0}, {"label":"F9", "x":9.75, "y":0}, {"label":"F10", "x":10.75, "y":0}, {"label":"F11", "x":11.75, "y":0}, {"label":"F12", "x":12.75, "y":0}, {"label":"F13", "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.5}, {"label":"!", "x":1, "y":1.5}, {"label":"@", "x":2, "y":1.5}, {"label":"#", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":7, "y":1.5}, {"label":"*", "x":8, "y":1.5}, {"label":"(", "x":9, "y":1.5}, {"label":")", "x":10, "y":1.5}, {"label":"_", "x":11, "y":1.5}, {"label":"+", "x":12, "y":1.5}, {"label":"|", "x":13, "y":1.5}, {"label":"~", "x":14, "y":1.5}, {"label":"Insert", "x":15.25, "y":1.5}, {"label":"Home", "x":16.25, "y":1.5}, {"label":"PgUp", "x":17.25, "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":"Delete", "x":15.25, "y":2.5}, {"label":"End", "x":16.25, "y":2.5}, {"label":"PgDn", "x":17.25, "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":"~", "x":12.75, "y":3.5}, {"label":"Enter", "x":13.75, "y":3.5, "w":1.25}, {"x":15.25, "y":3.5}, {"x":17.25, "y":3.5}, {"label":"Shift", "x":0, "y":4.5, "w":1.25}, {"label":"|", "x":1.25, "y":4.5}, {"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":"Fn", "x":14, "y":4.5}, {"label":"\u2191", "x":16.25, "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}, {"x":3.75, "y":5.5, "w":2.25}, {"x":6, "y":5.5, "w":1.25}, {"x":7.25, "y":5.5, "w":2.75}, {"label":"AltGr", "x":10, "y":5.5, "w":1.25}, {"label":"Menu", "x":11.25, "y":5.5, "w":1.25}, {"label":"Win", "x":12.5, "y":5.5, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25}, {"label":"\u2190", "x":15.25, "y":5.5}, {"label":"\u2193", "x":16.25, "y":5.5}, {"label":"\u2192", "x":17.25, "y":5.5}]
|
|
@ -16,13 +16,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/
|
||||
#pragma once
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define VENDOR_ID 0x4444
|
||||
#define PRODUCT_ID 0x000A
|
||||
#define DEVICE_VER 0x0002
|
||||
#define MANUFACTURER 4pplet
|
||||
#define PRODUCT Yakiimo Rev A
|
||||
|
||||
#define MATRIX_ROWS 12
|
||||
#define MATRIX_COLS 9
|
||||
|
||||
|
|
|
@ -1,7 +1,13 @@
|
|||
{
|
||||
"keyboard_name": "Yakiimo Rev A",
|
||||
"manufacturer": "4pplet",
|
||||
"url": "https://github.com/4pplet/yakiimo-PCB",
|
||||
"maintainer": "4pplet",
|
||||
"usb": {
|
||||
"vid": "0x4444",
|
||||
"pid": "0x000A",
|
||||
"device_version": "0.0.2"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT_all": {
|
||||
"layout": [{"label":"Esc", "x":2.75, "y":0}, {"label":"F1", "x":4.75, "y":0}, {"label":"F2", "x":5.75, "y":0}, {"label":"F3", "x":6.75, "y":0}, {"label":"F4", "x":7.75, "y":0}, {"label":"F5", "x":9.25, "y":0}, {"label":"F6", "x":10.25, "y":0}, {"label":"F7", "x":11.25, "y":0}, {"label":"F8", "x":12.25, "y":0}, {"label":"F9", "x":13.75, "y":0}, {"label":"F10", "x":14.75, "y":0}, {"label":"F11", "x":15.75, "y":0}, {"label":"F12", "x":16.75, "y":0}, {"label":"PrtSc", "x":18, "y":0}, {"label":"Scroll Lock", "x":19, "y":0}, {"label":"Pause", "x":20, "y":0}, {"label":"~", "x":2.75, "y":1.5}, {"label":"!", "x":3.75, "y":1.5}, {"label":"@", "x":4.75, "y":1.5}, {"label":"#", "x":5.75, "y":1.5}, {"label":"$", "x":6.75, "y":1.5}, {"label":"%", "x":7.75, "y":1.5}, {"label":"^", "x":8.75, "y":1.5}, {"label":"&", "x":9.75, "y":1.5}, {"label":"*", "x":10.75, "y":1.5}, {"label":"(", "x":11.75, "y":1.5}, {"label":")", "x":12.75, "y":1.5}, {"label":"_", "x":13.75, "y":1.5}, {"label":"+", "x":14.75, "y":1.5}, {"label":"|", "x":15.75, "y":1.5}, {"label":"~", "x":16.75, "y":1.5}, {"label":"Insert", "x":18, "y":1.5}, {"label":"Home", "x":19, "y":1.5}, {"label":"PgUp", "x":20, "y":1.5}, {"label":"Tab", "x":2.75, "y":2.5, "w":1.5}, {"label":"Q", "x":4.25, "y":2.5}, {"label":"W", "x":5.25, "y":2.5}, {"label":"E", "x":6.25, "y":2.5}, {"label":"R", "x":7.25, "y":2.5}, {"label":"T", "x":8.25, "y":2.5}, {"label":"Y", "x":9.25, "y":2.5}, {"label":"U", "x":10.25, "y":2.5}, {"label":"I", "x":11.25, "y":2.5}, {"label":"O", "x":12.25, "y":2.5}, {"label":"P", "x":13.25, "y":2.5}, {"label":"{", "x":14.25, "y":2.5}, {"label":"}", "x":15.25, "y":2.5}, {"label":"|", "x":16.25, "y":2.5, "w":1.5}, {"label":"Delete", "x":18, "y":2.5}, {"label":"End", "x":19, "y":2.5}, {"label":"PgDn", "x":20, "y":2.5}, {"label":"Caps Lock", "x":2.75, "y":3.5, "w":1.75}, {"label":"A", "x":4.5, "y":3.5}, {"label":"S", "x":5.5, "y":3.5}, {"label":"D", "x":6.5, "y":3.5}, {"label":"F", "x":7.5, "y":3.5}, {"label":"G", "x":8.5, "y":3.5}, {"label":"H", "x":9.5, "y":3.5}, {"label":"J", "x":10.5, "y":3.5}, {"label":"K", "x":11.5, "y":3.5}, {"label":"L", "x":12.5, "y":3.5}, {"label":":", "x":13.5, "y":3.5}, {"label":"\"", "x":14.5, "y":3.5}, {"label":"~", "x":15.5, "y":3.5}, {"label":"Enter", "x":16.5, "y":3.5, "w":1.25}, {"label":"Shift", "x":2.75, "y":4.5, "w":1.25}, {"label":"|", "x":4, "y":4.5}, {"label":"Z", "x":5, "y":4.5}, {"label":"X", "x":6, "y":4.5}, {"label":"C", "x":7, "y":4.5}, {"label":"V", "x":8, "y":4.5}, {"label":"B", "x":9, "y":4.5}, {"label":"N", "x":10, "y":4.5}, {"label":"M", "x":11, "y":4.5}, {"label":"<", "x":12, "y":4.5}, {"label":">", "x":13, "y":4.5}, {"label":"?", "x":14, "y":4.5}, {"label":"Shift", "x":15, "y":4.5, "w":1.75}, {"label":"Fn", "x":16.75, "y":4.5}, {"label":"\u2191", "x":19, "y":4.5}, {"label":"Ctrl", "x":2.75, "y":5.5, "w":1.5}, {"label":"Win", "x":4.25, "y":5.5}, {"label":"Alt", "x":5.25, "y":5.5, "w":1.5}, {"x":6.75, "y":5.5, "w":3}, {"x":9.75, "y":5.5}, {"x":10.75, "y":5.5, "w":3}, {"label":"AltGr", "x":13.75, "y":5.5, "w":1.5}, {"label":"Win", "x":15.25, "y":5.5}, {"label":"Ctrl", "x":16.25, "y":5.5, "w":1.5}, {"label":"\u2190", "x":18, "y":5.5}, {"label":"\u2193", "x":19, "y":5.5}, {"label":"\u2192", "x":20, "y":5.5}]
|
|
@ -2,12 +2,6 @@
|
|||
|
||||
#include "config_common.h"
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define VENDOR_ID 0xFEED
|
||||
#define PRODUCT_ID 0x2171
|
||||
#define MANUFACTURER Charles Garcia
|
||||
#define PRODUCT 8-Pack
|
||||
|
||||
/* COL2ROW or ROW2COL */
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
|
||||
|
|
|
@ -1,7 +1,12 @@
|
|||
{
|
||||
"keyboard_name": "8-Pack",
|
||||
"manufacturer": "Charles Garcia",
|
||||
"url": "https://github.com/cgarcia2097/8-Pack",
|
||||
"maintainer": "Charles Garcia",
|
||||
"usb": {
|
||||
"vid": "0xFEED",
|
||||
"pid": "0x2171"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
#pragma once
|
||||
|
||||
#define DEVICE_VER 0x0001
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"usb": {
|
||||
"device_version": "0.0.1"
|
||||
}
|
||||
}
|
|
@ -1,3 +0,0 @@
|
|||
#pragma once
|
||||
|
||||
#define DEVICE_VER 0x0002
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"usb": {
|
||||
"device_version": "0.0.2"
|
||||
}
|
||||
}
|
|
@ -18,13 +18,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
|
||||
#include "config_common.h"
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define VENDOR_ID 0xC2AB
|
||||
#define PRODUCT_ID 0x3939
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER tapioki
|
||||
#define PRODUCT Architeuthis dux
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 8
|
||||
#define MATRIX_COLS 5
|
||||
|
|
|
@ -1,7 +1,13 @@
|
|||
{
|
||||
"keyboard_name": "Architeuthis dux",
|
||||
"manufacturer": "tapioki",
|
||||
"url": "https://github.com/tapioki/cephalopoda",
|
||||
"maintainer": "@tapioki",
|
||||
"usb": {
|
||||
"vid": "0xC2AB",
|
||||
"pid": "0x3939",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT_split_3x5_2": {
|
||||
"layout": [
|
||||
|
|
|
@ -41,5 +41,5 @@ Enter the bootloader in 3 ways:
|
|||
|
||||
* **Bootmagic reset**: Hold down the top left key on the left half (or the top right right key on the right half) and plug in the controller on that side.
|
||||
* **Physical reset pins**: Briefly short the RST and GND pins on the microcontroller using tweezers, a paperclip, or any other conductive material.
|
||||
* **Keycode in layout**: Press the key mapped to `RESET` if it is configured.
|
||||
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is configured.
|
||||
|
||||
|
|
|
@ -19,13 +19,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
|
||||
#include "config_common.h"
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define VENDOR_ID 0xFEED
|
||||
#define PRODUCT_ID 0x0000
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER nickolaij
|
||||
#define PRODUCT abacus
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 4
|
||||
#define MATRIX_COLS 12
|
||||
|
|
|
@ -1,7 +1,13 @@
|
|||
{
|
||||
"keyboard_name": "Abacus",
|
||||
"manufacturer": "nickolaij",
|
||||
"url": "https://www.github.com/nickolaij",
|
||||
"maintainer": "nickolaij",
|
||||
"usb": {
|
||||
"vid": "0xFEED",
|
||||
"pid": "0x0000",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
|
|
|
@ -19,13 +19,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
|
||||
#include "config_common.h"
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define VENDOR_ID 0x4B47
|
||||
#define PRODUCT_ID 0x0001
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER Abats Keyboard Club
|
||||
#define PRODUCT Nayeon
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 6
|
||||
#define MATRIX_COLS 17
|
||||
|
|
|
@ -1,11 +1,17 @@
|
|||
{
|
||||
"keyboard_name": "Nayeon",
|
||||
"manufacturer": "Abats Keyboard Club",
|
||||
"url": "",
|
||||
"maintainer": "ramonimbao",
|
||||
"layout_aliases": {
|
||||
"LAYOUT_ansi": "LAYOUT_tkl_f13_ansi_tsangan",
|
||||
"LAYOUT_iso": "LAYOUT_tkl_f13_iso_tsangan"
|
||||
},
|
||||
"usb": {
|
||||
"vid": "0x4B47",
|
||||
"pid": "0x0001",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT_tkl_f13_ansi_tsangan": {
|
||||
"layout": [
|
||||
|
|
|
@ -19,13 +19,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
|
||||
#include "config_common.h"
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define VENDOR_ID 0xFEED
|
||||
#define PRODUCT_ID 0x0001
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER AbstractKB
|
||||
#define PRODUCT EllipseRev1
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 2
|
||||
#define MATRIX_COLS 3
|
||||
|
|
|
@ -1,7 +1,13 @@
|
|||
{
|
||||
"keyboard_name": "Ellipse",
|
||||
"manufacturer": "AbstractKB",
|
||||
"url": "https://abstractkb.tk/product/ellipse-rev1",
|
||||
"maintainer": "AbstractKB",
|
||||
"usb": {
|
||||
"vid": "0xFEED",
|
||||
"pid": "0x0001",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":0, "y":1.25}, {"x":1, "y":1.25}, {"x":2, "y":1.25}]
|
|
@ -19,13 +19,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
|
||||
#include "config_common.h"
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define VENDOR_ID 0xACE1 // Ace
|
||||
#define PRODUCT_ID 0x5449 // TI
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER Acekeyboard
|
||||
#define PRODUCT titan60
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 5
|
||||
#define MATRIX_COLS 14
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue