mirror of
https://github.com/qmk/qmk_firmware.git
synced 2025-08-09 17:18:40 +00:00
Compare commits
29 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
2e766a9c7a | ||
![]() |
4ba3fdfad2 | ||
![]() |
655c24d29d | ||
![]() |
eab2b8faa0 | ||
![]() |
d058091d0b | ||
![]() |
596319c92f | ||
![]() |
4d17fe2a99 | ||
![]() |
1d045e854b | ||
![]() |
f7176f070f | ||
![]() |
687883cf7d | ||
![]() |
f56cf93fa1 | ||
![]() |
1fd30b3391 | ||
![]() |
37f205ec1a | ||
![]() |
26e0bfd494 | ||
![]() |
a434507ab4 | ||
![]() |
ee8c86702e | ||
![]() |
246cf99b4b | ||
![]() |
eb52984a94 | ||
![]() |
a5272a1575 | ||
![]() |
d06ce0153b | ||
![]() |
c58610bea3 | ||
![]() |
12de0297ed | ||
![]() |
4992df56b8 | ||
![]() |
f3f0bf6dbe | ||
![]() |
8a5e8ed88e | ||
![]() |
fb6557acf1 | ||
![]() |
2d7240f730 | ||
![]() |
1d1c407e4e | ||
![]() |
9152928f02 |
12
.github/workflows/ci_builds.yml
vendored
12
.github/workflows/ci_builds.yml
vendored
@@ -10,12 +10,11 @@ on:
|
||||
|
||||
jobs:
|
||||
ci_builds:
|
||||
if: github.repository == 'qmk/qmk_firmware'
|
||||
name: "CI Build"
|
||||
runs-on: self-hosted
|
||||
timeout-minutes: 1380
|
||||
|
||||
if: github.repository == 'qmk/qmk_firmware'
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
@@ -58,3 +57,12 @@ jobs:
|
||||
*.hex
|
||||
*.uf2
|
||||
.build/failed.*
|
||||
|
||||
- name: 'CI Discord Notification'
|
||||
if: always()
|
||||
working-directory: util/ci/
|
||||
env:
|
||||
DISCORD_WEBHOOK: ${{ secrets.CI_DISCORD_WEBHOOK }}
|
||||
run: |
|
||||
python3 -m pip install -r requirements.txt
|
||||
python3 ./discord-results.py --branch ${{ matrix.branch }} --keymap ${{ matrix.keymap }} --url ${{ env.GITHUB_SERVER_URL }}/${{ env.GITHUB_REPOSITORY }}/actions/runs/${{ env.GITHUB_RUN_ID }}
|
||||
|
2
.github/workflows/format_push.yml
vendored
2
.github/workflows/format_push.yml
vendored
@@ -47,7 +47,7 @@ jobs:
|
||||
git config user.email 'hello@qmk.fm'
|
||||
|
||||
- name: Create Pull Request
|
||||
uses: peter-evans/create-pull-request@v4
|
||||
uses: peter-evans/create-pull-request@v5
|
||||
if: ${{ github.repository == 'qmk/qmk_firmware'}}
|
||||
with:
|
||||
token: ${{ secrets.QMK_BOT_TOKEN }}
|
||||
|
2
.github/workflows/regen_push.yml
vendored
2
.github/workflows/regen_push.yml
vendored
@@ -34,7 +34,7 @@ jobs:
|
||||
git config user.email 'hello@qmk.fm'
|
||||
|
||||
- name: Create Pull Request
|
||||
uses: peter-evans/create-pull-request@v4
|
||||
uses: peter-evans/create-pull-request@v5
|
||||
if: ${{ github.repository == 'qmk/qmk_firmware'}}
|
||||
with:
|
||||
token: ${{ secrets.QMK_BOT_TOKEN }}
|
||||
|
@@ -57,78 +57,78 @@ susceptible to noise, you must choose a debounce method that will also mitigate
|
||||
if the scanning is slow, and you are using a timestamp-based algorithm, you might end up making a debouncing decision based on only two
|
||||
sampled values, which will limit the noise-resistance of the algorithm.
|
||||
* Currently all built-in debounce algorithms support timestamp-based debouncing only. In the future we might
|
||||
implement cycles-based debouncing, and it will be selectable via a ```config.h``` macro.
|
||||
implement cycles-based debouncing, and it will be selectable via a `config.h` macro.
|
||||
|
||||
2) Symmetric vs Asymmetric
|
||||
* Symmetric - apply the same debouncing algorithm, to both key-up and key-down events.
|
||||
* Recommended naming convention: ```sym_*```
|
||||
* Recommended naming convention: `sym_*`
|
||||
* Asymmetric - apply different debouncing algorithms to key-down and key-up events. E.g. Eager key-down, Defer key-up.
|
||||
* Recommended naming convention: ```asym_*``` followed by details of the type of algorithm in use, in order, for key-down and then key-up
|
||||
* Recommended naming convention: `asym_*` followed by details of the type of algorithm in use, in order, for key-down and then key-up
|
||||
|
||||
3) Eager vs Defer
|
||||
* Eager - any key change is reported immediately. All further inputs for DEBOUNCE ms are ignored.
|
||||
* Eager algorithms are not noise-resistant.
|
||||
* Recommended naming conventions:
|
||||
* ```sym_eager_*```
|
||||
* ```asym_eager_*_*```: key-down is using eager algorithm
|
||||
* ```asym_*_eager_*```: key-up is using eager algorithm
|
||||
* `sym_eager_*`
|
||||
* `asym_eager_*_*`: key-down is using eager algorithm
|
||||
* `asym_*_eager_*`: key-up is using eager algorithm
|
||||
* Defer - wait for no changes for DEBOUNCE ms before reporting change.
|
||||
* Defer algorithms are noise-resistant
|
||||
* Recommended naming conventions:
|
||||
* ```sym_defer_*```
|
||||
* ```asym_defer_*_*```: key-down is using defer algorithm
|
||||
* ```asym_*_defer_*```: key-up is using defer algorithm
|
||||
* `sym_defer_*`
|
||||
* `asym_defer_*_*`: key-down is using defer algorithm
|
||||
* `asym_*_defer_*`: key-up is using defer algorithm
|
||||
|
||||
4) Global vs Per-Key vs Per-Row
|
||||
* Global - one timer for all keys. Any key change state affects global timer
|
||||
* Recommended naming convention: ```*_g```
|
||||
* Recommended naming convention: `*_g`
|
||||
* Per-key - one timer per key
|
||||
* Recommended naming convention: ```*_pk```
|
||||
* Recommended naming convention: `*_pk`
|
||||
* Per-row - one timer per row
|
||||
* Recommended naming convention: ```*_pr```
|
||||
* Recommended naming convention: `*_pr`
|
||||
* Per-key and per-row algorithms consume more resources (in terms of performance,
|
||||
and ram usage), but fast typists might prefer them over global.
|
||||
|
||||
## Debounce algorithms supported by QMK
|
||||
## Supported Debounce Algorithms
|
||||
|
||||
QMK supports multiple debounce algorithms through its debounce API.
|
||||
QMK supports multiple algorithms through its debounce API.
|
||||
|
||||
### Debounce selection
|
||||
### Debounce Time
|
||||
|
||||
| DEBOUNCE_TYPE | Description | What else is needed |
|
||||
| ------------- | --------------------------------------------------- | ----------------------------- |
|
||||
| Not defined | Use the default algorithm, currently sym_defer_g | Nothing |
|
||||
| custom | Use your own debounce code | ```SRC += debounce.c``` add your own debounce.c and implement necessary functions |
|
||||
| Anything Else | Use another algorithm from quantum/debounce/* | Nothing |
|
||||
Default debounce time is 5 milliseconds and it can be changed with the following line in `config.h`:
|
||||
```
|
||||
#define DEBOUNCE 10
|
||||
```
|
||||
?> Setting `DEBOUNCE` to `0` will disable this feature.
|
||||
|
||||
**Regarding split keyboards**:
|
||||
The debounce code is compatible with split keyboards.
|
||||
### Debounce Method
|
||||
|
||||
### Selecting an included debouncing method
|
||||
Keyboards may select one of the already implemented debounce methods, by adding to ```rules.mk``` the following line:
|
||||
Keyboards may select one of the core debounce methods by adding the following line into `rules.mk`:
|
||||
```
|
||||
DEBOUNCE_TYPE = <name of algorithm>
|
||||
```
|
||||
Where name of algorithm is one of:
|
||||
* ```sym_defer_g``` - debouncing per keyboard. On any state change, a global timer is set. When ```DEBOUNCE``` milliseconds of no changes has occurred, all input changes are pushed.
|
||||
* This is the current default algorithm. This is the highest performance algorithm with lowest memory usage, and it's also noise-resistant.
|
||||
* ```sym_eager_pr``` - debouncing per row. On any state change, response is immediate, followed by locking the row ```DEBOUNCE``` milliseconds of no further input for that row.
|
||||
For use in keyboards where refreshing ```NUM_KEYS``` 8-bit counters is computationally expensive / low scan rate, and fingers usually only hit one row at a time. This could be
|
||||
appropriate for the ErgoDox models; the matrix is rotated 90°, and hence its "rows" are really columns, and each finger only hits a single "row" at a time in normal use.
|
||||
* ```sym_eager_pk``` - debouncing per key. On any state change, response is immediate, followed by ```DEBOUNCE``` milliseconds of no further input for that key
|
||||
* ```sym_defer_pr``` - debouncing per row. On any state change, a per-row timer is set. When ```DEBOUNCE``` milliseconds of no changes have occurred on that row, the entire row is pushed. Can improve responsiveness over `sym_defer_g` while being less susceptible than per-key debouncers to noise.
|
||||
* ```sym_defer_pk``` - debouncing per key. On any state change, a per-key timer is set. When ```DEBOUNCE``` milliseconds of no changes have occurred on that key, the key status change is pushed.
|
||||
* ```asym_eager_defer_pk``` - debouncing per key. On a key-down state change, response is immediate, followed by ```DEBOUNCE``` milliseconds of no further input for that key. On a key-up state change, a per-key timer is set. When ```DEBOUNCE``` milliseconds of no changes have occurred on that key, the key-up status change is pushed.
|
||||
Name of algorithm is one of:
|
||||
|
||||
### A couple algorithms that could be implemented in the future:
|
||||
* ```sym_defer_pr```
|
||||
* ```sym_eager_g```
|
||||
| Algorithm | Description |
|
||||
| --------------------- | ----------- |
|
||||
| `sym_defer_g` | Debouncing per keyboard. On any state change, a global timer is set. When `DEBOUNCE` milliseconds of no changes has occurred, all input changes are pushed. This is the highest performance algorithm with lowest memory usage and is noise-resistant. |
|
||||
| `sym_defer_pr` | Debouncing per row. On any state change, a per-row timer is set. When `DEBOUNCE` milliseconds of no changes have occurred on that row, the entire row is pushed. This can improve responsiveness over `sym_defer_g` while being less susceptible to noise than per-key algorithm. |
|
||||
| `sym_defer_pk` | Debouncing per key. On any state change, a per-key timer is set. When `DEBOUNCE` milliseconds of no changes have occurred on that key, the key status change is pushed. |
|
||||
| `sym_eager_pr` | Debouncing per row. On any state change, response is immediate, followed by `DEBOUNCE` milliseconds of no further input for that row. |
|
||||
| `sym_eager_pk` | Debouncing per key. On any state change, response is immediate, followed by `DEBOUNCE` milliseconds of no further input for that key. |
|
||||
| `asym_eager_defer_pk` | Debouncing per key. On a key-down state change, response is immediate, followed by `DEBOUNCE` milliseconds of no further input for that key. On a key-up state change, a per-key timer is set. When `DEBOUNCE` milliseconds of no changes have occurred on that key, the key-up status change is pushed. |
|
||||
|
||||
### Use your own debouncing code
|
||||
You have the option to implement you own debouncing algorithm. To do this:
|
||||
* Set ```DEBOUNCE_TYPE = custom``` in ```rules.mk```.
|
||||
* Add ```SRC += debounce.c``` in ```rules.mk```
|
||||
* Add your own ```debounce.c```. Look at current implementations in ```quantum/debounce``` for examples.
|
||||
?> `sym_defer_g` is the default if `DEBOUNCE_TYPE` is undefined.
|
||||
|
||||
?> `sym_eager_pr` is suitable for use in keyboards where refreshing `NUM_KEYS` 8-bit counters is computationally expensive or has low scan rate while fingers usually hit one row at a time. This could be appropriate for the ErgoDox models where the matrix is rotated 90°. Hence its "rows" are really columns and each finger only hits a single "row" at a time with normal usage.
|
||||
|
||||
### Implementing your own debouncing code
|
||||
|
||||
You have the option to implement you own debouncing algorithm with the following steps:
|
||||
|
||||
* Set `DEBOUNCE_TYPE = custom` in `rules.mk`.
|
||||
* Add `SRC += debounce.c` in `rules.mk`
|
||||
* Implement your own `debounce.c`. See `quantum/debounce` for examples.
|
||||
* Debouncing occurs after every raw matrix scan.
|
||||
* Use num_rows rather than MATRIX_ROWS, so that split keyboards are supported correctly.
|
||||
* If the algorithm might be applicable to other keyboards, please consider adding it to ```quantum/debounce```
|
||||
* Use num_rows instead of MATRIX_ROWS to support split keyboards correctly.
|
||||
* If your custom algorithm is applicable to other keyboards, please consider making a pull request.
|
||||
|
@@ -172,6 +172,8 @@ For example, to build a firmware for a Clueboard 66% you would use:
|
||||
|
||||
qmk compile -kb clueboard/66/rev3 -km default
|
||||
|
||||
?> The keyboard option is the path relative to the keyboard directory, the above example would be found in `qmk_firmware/keyboards/clueboard/66/rev3`. If you're unsure you can view a full list of supported keyboards with `qmk list-keyboards`.
|
||||
|
||||
When it is done you should have a lot of output that ends similar to this:
|
||||
|
||||
```
|
||||
|
@@ -53,6 +53,7 @@ https://github.com/qmk/qmk_firmware/pulls?q=is%3Apr+is%3Aclosed+label%3Akeyboard
|
||||
|
||||
- keyboard moves within the repository *must* go through the `develop` branch instead of `master`, so as to ensure compatibility for users
|
||||
- `data/mappings/keyboard_aliases.hjson` must be updated to reflect the move, so users with pre-created configurator keymap.json files continue to detect the correct keyboard
|
||||
- keyboard updates and refactors (eg. to data driven) *must* go through `develop` to reduce `master` -> `develop` merge conflicts
|
||||
- PR submissions from a `kbfirmware` export (or equivalent) will not be accepted unless converted to new QMK standards -- try `qmk import-kbfirmware` first
|
||||
- `info.json`
|
||||
- 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).
|
||||
|
34
keyboards/4pplet/unextended_std/keymaps/default/keymap.c
Normal file
34
keyboards/4pplet/unextended_std/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,34 @@
|
||||
/*
|
||||
Copyright 2023 Stefan Sundin "4pplet" <4pplet@protonmail.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
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
// main layer
|
||||
[0] = LAYOUT_all(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT,
|
||||
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
|
||||
MO(1), KC_LALT, KC_LGUI, KC_GRV, KC_SPC, KC_BSLS, KC_LEFT, KC_RIGHT,KC_DOWN, KC_UP),
|
||||
// basic function layer
|
||||
[1] = LAYOUT_all(
|
||||
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_TRNS,
|
||||
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_CAPS, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
|
||||
};
|
40
keyboards/4pplet/unextended_std/keymaps/m0116/keymap.c
Normal file
40
keyboards/4pplet/unextended_std/keymaps/m0116/keymap.c
Normal file
@@ -0,0 +1,40 @@
|
||||
/*
|
||||
Copyright 2023 Stefan Sundin "4pplet" <4pplet@protonmail.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
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
// main layer
|
||||
/*
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬──────┐
|
||||
* │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Delete│
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬────┤
|
||||
* │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴ │
|
||||
* │ Ctrl │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │
|
||||
* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───────┤
|
||||
* │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │
|
||||
* ├────┬───│───┴┬──┴┬──┴───┴───┴───┴─┬─┴─┬─┴──┬┴───┴┬────┬───┤
|
||||
* │Caps│Alt│Gui │ ` │ Space │ \ │Left│Right│Down│ Up│
|
||||
* └────┴───┴────┴───┴────────────────┴───┴────┴─────┴────┴───┘
|
||||
*/
|
||||
[0] = LAYOUT_m0116(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC,
|
||||
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
|
||||
KC_CAPS, KC_LALT, KC_LGUI, KC_GRV, KC_SPC, KC_BSLS, KC_LEFT, KC_RIGHT,KC_DOWN, KC_UP)
|
||||
};
|
39
keyboards/4pplet/unextended_std/keymaps/m0118/keymap.c
Normal file
39
keyboards/4pplet/unextended_std/keymaps/m0118/keymap.c
Normal file
@@ -0,0 +1,39 @@
|
||||
/*
|
||||
Copyright 2023 Stefan Sundin "4pplet" <4pplet@protonmail.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
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/*
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬──────┐
|
||||
* │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Backsp│
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬────┤
|
||||
* │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐Ent│
|
||||
* │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ \ │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───│───┤
|
||||
* │Shft│ ` │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │Shift│ Up│
|
||||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴┬──┴─┬─┴──┬┴────┬────┤
|
||||
* │Ctrl│Alt │GUI │ Space │GUI │Left│Right│Down│
|
||||
* └────┴────┴────┴──────────────────────┴────┴────┴─────┴────┘
|
||||
*/
|
||||
[0] = LAYOUT_m0118(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_ENT,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS,
|
||||
KC_LSFT, KC_GRV, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
|
||||
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_LEFT, KC_RIGHT,KC_DOWN)
|
||||
};
|
48
keyboards/4pplet/unextended_std/keymaps/via/keymap.c
Normal file
48
keyboards/4pplet/unextended_std/keymaps/via/keymap.c
Normal file
@@ -0,0 +1,48 @@
|
||||
/*
|
||||
Copyright 2023 Stefan Sundin "4pplet" <4pplet@protonmail.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
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
// main layer
|
||||
[0] = LAYOUT_all(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT,
|
||||
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
|
||||
MO(1), KC_LALT, KC_LGUI, KC_GRV, KC_SPC, KC_BSLS, KC_LEFT, KC_RIGHT,KC_DOWN, KC_UP),
|
||||
// basic function layer
|
||||
[1] = LAYOUT_all(
|
||||
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_TRNS,
|
||||
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_CAPS, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||
// extra layer for VIA
|
||||
[2] = LAYOUT_all(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||
// extra layer for VIA
|
||||
[3] = LAYOUT_all(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
|
||||
};
|
23
keyboards/4pplet/unextended_std/readme.md
Normal file
23
keyboards/4pplet/unextended_std/readme.md
Normal file
@@ -0,0 +1,23 @@
|
||||
# Unextended Standard PCB
|
||||
|
||||
PCB for the Unextended Standard Project. The PCB enables use of M0116, M0118, IIc and NeXT keycaps and is designed to fit in the open sourced Unextended case.
|
||||
|
||||
* Keyboard Maintainer: [4pplet](https://github.com/4pplet)
|
||||
* Hardware Supported: [Unextended Standard PCB](https://github.com/4pplet/Unextended-Standard-PCB)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make 4pplet/unextended_std/rev_a:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make 4pplet/unextended_std/rev_a:default:flash
|
||||
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||
|
||||
## Bootloader
|
||||
Enter the bootloader in 3 ways:
|
||||
|
||||
* **Bootmagic reset**: Hold down the Escape-key and plug in the keyboard
|
||||
* **Physical reset header**: Briefly short the header labled "BL/reset" on the PCB
|
||||
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
|
19
keyboards/4pplet/unextended_std/rev_a/config.h
Normal file
19
keyboards/4pplet/unextended_std/rev_a/config.h
Normal file
@@ -0,0 +1,19 @@
|
||||
/*
|
||||
Copyright 2023 Stefan Sundin "4pplet" <mail@4pplet.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/>.
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#define WS2812_EXTERNAL_PULLUP
|
262
keyboards/4pplet/unextended_std/rev_a/info.json
Normal file
262
keyboards/4pplet/unextended_std/rev_a/info.json
Normal file
@@ -0,0 +1,262 @@
|
||||
{
|
||||
"keyboard_name": "Unextended Standard Rev A",
|
||||
"manufacturer": "4pplet",
|
||||
"url": "https://github.com/4pplet/Unextended",
|
||||
"maintainer": "4pplet",
|
||||
"usb": {
|
||||
"vid": "0x4444",
|
||||
"pid": "0x0012",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"processor": "STM32F072",
|
||||
"bootloader": "stm32-dfu",
|
||||
|
||||
"matrix_pins": {
|
||||
"rows":
|
||||
["B14","B15","B6","B5","B4"],
|
||||
"cols":
|
||||
["B2","A4","A1","A2","F1","F0","C15","C14","C13","B9","B8","B7","B12","B3"]
|
||||
},
|
||||
|
||||
"diode_direction": "COL2ROW",
|
||||
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"mousekey": true,
|
||||
"extrakey": true,
|
||||
"console": false,
|
||||
"command": false,
|
||||
"nkro": true,
|
||||
"backlight": false,
|
||||
"rgblight": true,
|
||||
"audio": false
|
||||
},
|
||||
|
||||
"rgblight": {
|
||||
"pin": "A8",
|
||||
"led_count": 16,
|
||||
"animations": {
|
||||
"alternating": true,
|
||||
"breathing": true,
|
||||
"christmas": true,
|
||||
"knight": true,
|
||||
"rainbow_mood": true,
|
||||
"rainbow_swirl": true,
|
||||
"rgb_test": true,
|
||||
"snake": true,
|
||||
"static_gradient": true,
|
||||
"twinkle": true
|
||||
}
|
||||
},
|
||||
|
||||
"indicators": {
|
||||
"caps_lock": "A10",
|
||||
"on_state": 0
|
||||
},
|
||||
|
||||
"layouts": {
|
||||
"LAYOUT_all": {
|
||||
"layout": [
|
||||
{"label":"Esc", "matrix": [0, 0], "x":0, "y":0},
|
||||
{"label":"!", "matrix": [0, 1], "x":1, "y":0},
|
||||
{"label":"@", "matrix": [0, 2], "x":2, "y":0},
|
||||
{"label":"#", "matrix": [0, 3], "x":3, "y":0},
|
||||
{"label":"$", "matrix": [0, 4], "x":4, "y":0},
|
||||
{"label":"%", "matrix": [0, 5], "x":5, "y":0},
|
||||
{"label":"^", "matrix": [0, 6], "x":6, "y":0},
|
||||
{"label":"&", "matrix": [0, 7], "x":7, "y":0},
|
||||
{"label":"*", "matrix": [0, 8], "x":8, "y":0},
|
||||
{"label":"(", "matrix": [0, 9], "x":9, "y":0},
|
||||
{"label":")", "matrix": [0, 10], "x":10, "y":0},
|
||||
{"label":"_", "matrix": [0, 11], "x":11, "y":0},
|
||||
{"label":"+", "matrix": [0, 12], "x":12, "y":0},
|
||||
{"label":"Backsp", "matrix": [0, 13], "x":13, "y":0, "w":1.5},
|
||||
{"label":"Tab", "matrix": [1, 0], "x":0, "y":1, "w":1.5},
|
||||
{"label":"Q", "matrix": [1, 1], "x":1.5, "y":1},
|
||||
{"label":"W", "matrix": [1, 2], "x":2.5, "y":1},
|
||||
{"label":"E", "matrix": [1, 3], "x":3.5, "y":1},
|
||||
{"label":"R", "matrix": [1, 4], "x":4.5, "y":1},
|
||||
{"label":"T", "matrix": [1, 5], "x":5.5, "y":1},
|
||||
{"label":"Y", "matrix": [1, 6], "x":6.5, "y":1},
|
||||
{"label":"U", "matrix": [1, 7], "x":7.5, "y":1},
|
||||
{"label":"I", "matrix": [1, 8], "x":8.5, "y":1},
|
||||
{"label":"O", "matrix": [1, 9], "x":9.5, "y":1},
|
||||
{"label":"P", "matrix": [1, 10], "x":10.5, "y":1},
|
||||
{"label":"{", "matrix": [1, 11], "x":11.5, "y":1},
|
||||
{"label":"}", "matrix": [1, 12], "x":12.5, "y":1},
|
||||
{"label":"|", "matrix": [1, 13], "x":13.5, "y":1},
|
||||
{"label":"Caps Lock", "matrix": [2, 0], "x":0, "y":2, "w":1.75},
|
||||
{"label":"A", "matrix": [2, 1], "x":1.75, "y":2},
|
||||
{"label":"S", "matrix": [2, 2], "x":2.75, "y":2},
|
||||
{"label":"D", "matrix": [2, 3], "x":3.75, "y":2},
|
||||
{"label":"F", "matrix": [2, 4], "x":4.75, "y":2},
|
||||
{"label":"G", "matrix": [2, 5], "x":5.75, "y":2},
|
||||
{"label":"H", "matrix": [2, 6], "x":6.75, "y":2},
|
||||
{"label":"J", "matrix": [2, 7], "x":7.75, "y":2},
|
||||
{"label":"K", "matrix": [2, 8], "x":8.75, "y":2},
|
||||
{"label":"L", "matrix": [2, 9], "x":9.75, "y":2},
|
||||
{"label":":", "matrix": [2, 10], "x":10.75, "y":2},
|
||||
{"label":"\"", "matrix": [2, 11], "x":11.75, "y":2},
|
||||
{"label":"nubs", "matrix": [3, 13], "x":12.75, "y":2},
|
||||
{"label":"Enter", "matrix": [2, 13], "x":13.75, "y":2, "w":0.75},
|
||||
{"label":"Shift", "matrix": [3, 0], "x":0, "y":3, "w":1.25},
|
||||
{"label":"nubs", "matrix": [3, 1], "x":1.25, "y":3},
|
||||
{"label":"Z", "matrix": [3, 2], "x":2.25, "y":3},
|
||||
{"label":"X", "matrix": [3, 3], "x":3.25, "y":3},
|
||||
{"label":"C", "matrix": [3, 4], "x":4.25, "y":3},
|
||||
{"label":"V", "matrix": [3, 5], "x":5.25, "y":3},
|
||||
{"label":"B", "matrix": [3, 6], "x":6.25, "y":3},
|
||||
{"label":"N", "matrix": [3, 7], "x":7.25, "y":3},
|
||||
{"label":"M", "matrix": [3, 8], "x":8.25, "y":3},
|
||||
{"label":"<", "matrix": [3, 9], "x":9.25, "y":3},
|
||||
{"label":">", "matrix": [3, 10], "x":10.25, "y":3},
|
||||
{"label":"?", "matrix": [3, 11], "x":11.25, "y":3},
|
||||
{"label":"Shift", "matrix": [3, 12], "x":12.25, "y":3, "w":1.25},
|
||||
{"label":"\u2191", "matrix": [4, 13], "x":13.5, "y":3},
|
||||
{"label":"Caps", "matrix": [4, 0], "x":0, "y":4},
|
||||
{"label":"opt", "matrix": [4, 1], "x":1, "y":4},
|
||||
{"label":"Cmd", "matrix": [4, 2], "x":2, "y":4, "w":1.75},
|
||||
{"label":"`", "matrix": [4, 3], "x":3.75, "y":4},
|
||||
{"label":"Space", "matrix": [4, 6], "x":4.75, "y":4, "w":4.75},
|
||||
{"label":"\\", "matrix": [4, 8], "x":9.5, "y":4},
|
||||
{"label":"\u2190", "matrix": [4, 9], "x":10.5, "y":4},
|
||||
{"label":"\u2192", "matrix": [4, 10], "x":11.5, "y":4},
|
||||
{"label":"\u2193", "matrix": [4, 11], "x":12.5, "y":4},
|
||||
{"label":"\u2191", "matrix": [4, 12], "x":13.5, "y":4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_m0116": {
|
||||
"layout": [
|
||||
{"label":"Esc", "matrix": [0, 0], "x":0, "y":0},
|
||||
{"label":"!", "matrix": [0, 1], "x":1, "y":0},
|
||||
{"label":"@", "matrix": [0, 2], "x":2, "y":0},
|
||||
{"label":"#", "matrix": [0, 3], "x":3, "y":0},
|
||||
{"label":"$", "matrix": [0, 4], "x":4, "y":0},
|
||||
{"label":"%", "matrix": [0, 5], "x":5, "y":0},
|
||||
{"label":"^", "matrix": [0, 6], "x":6, "y":0},
|
||||
{"label":"&", "matrix": [0, 7], "x":7, "y":0},
|
||||
{"label":"*", "matrix": [0, 8], "x":8, "y":0},
|
||||
{"label":"(", "matrix": [0, 9], "x":9, "y":0},
|
||||
{"label":")", "matrix": [0, 10], "x":10, "y":0},
|
||||
{"label":"_", "matrix": [0, 11], "x":11, "y":0},
|
||||
{"label":"+", "matrix": [0, 12], "x":12, "y":0},
|
||||
{"label":"Backsp", "matrix": [0, 13], "x":13, "y":0, "w":1.5},
|
||||
{"label":"Tab", "matrix": [1, 0], "x":0, "y":1, "w":1.5},
|
||||
{"label":"Q", "matrix": [1, 1], "x":1.5, "y":1},
|
||||
{"label":"W", "matrix": [1, 2], "x":2.5, "y":1},
|
||||
{"label":"E", "matrix": [1, 3], "x":3.5, "y":1},
|
||||
{"label":"R", "matrix": [1, 4], "x":4.5, "y":1},
|
||||
{"label":"T", "matrix": [1, 5], "x":5.5, "y":1},
|
||||
{"label":"Y", "matrix": [1, 6], "x":6.5, "y":1},
|
||||
{"label":"U", "matrix": [1, 7], "x":7.5, "y":1},
|
||||
{"label":"I", "matrix": [1, 8], "x":8.5, "y":1},
|
||||
{"label":"O", "matrix": [1, 9], "x":9.5, "y":1},
|
||||
{"label":"P", "matrix": [1, 10], "x":10.5, "y":1},
|
||||
{"label":"{", "matrix": [1, 11], "x":11.5, "y":1},
|
||||
{"label":"}", "matrix": [1, 12], "x":12.5, "y":1},
|
||||
{"label":"Enter", "matrix": [2, 13], "x":13.5, "y":1, "h":2},
|
||||
{"label":"Control", "matrix": [2, 0], "x":0, "y":2, "w":1.75},
|
||||
{"label":"A", "matrix": [2, 1], "x":1.75, "y":2},
|
||||
{"label":"S", "matrix": [2, 2], "x":2.75, "y":2},
|
||||
{"label":"D", "matrix": [2, 3], "x":3.75, "y":2},
|
||||
{"label":"F", "matrix": [2, 4], "x":4.75, "y":2},
|
||||
{"label":"G", "matrix": [2, 5], "x":5.75, "y":2},
|
||||
{"label":"H", "matrix": [2, 6], "x":6.75, "y":2},
|
||||
{"label":"J", "matrix": [2, 7], "x":7.75, "y":2},
|
||||
{"label":"K", "matrix": [2, 8], "x":8.75, "y":2},
|
||||
{"label":"L", "matrix": [2, 9], "x":9.75, "y":2},
|
||||
{"label":":", "matrix": [2, 10], "x":10.75, "y":2},
|
||||
{"label":"\"", "matrix": [2, 11], "x":11.75, "y":2},
|
||||
{"label":"Shift", "matrix": [3, 0], "x":0, "y":3, "w":2.25},
|
||||
{"label":"Z", "matrix": [3, 2], "x":2.25, "y":3},
|
||||
{"label":"X", "matrix": [3, 3], "x":3.25, "y":3},
|
||||
{"label":"C", "matrix": [3, 4], "x":4.25, "y":3},
|
||||
{"label":"V", "matrix": [3, 5], "x":5.25, "y":3},
|
||||
{"label":"B", "matrix": [3, 6], "x":6.25, "y":3},
|
||||
{"label":"N", "matrix": [3, 7], "x":7.25, "y":3},
|
||||
{"label":"M", "matrix": [3, 8], "x":8.25, "y":3},
|
||||
{"label":"<", "matrix": [3, 9], "x":9.25, "y":3},
|
||||
{"label":">", "matrix": [3, 10], "x":10.25, "y":3},
|
||||
{"label":"?", "matrix": [3, 11], "x":11.25, "y":3},
|
||||
{"label":"Shift", "matrix": [3, 12], "x":12.25, "y":3, "w":2.25},
|
||||
{"label":"Caps", "matrix": [4, 0], "x":0, "y":4},
|
||||
{"label":"opt", "matrix": [4, 1], "x":1, "y":4},
|
||||
{"label":"Cmd", "matrix": [4, 2], "x":2, "y":4, "w":1.75},
|
||||
{"label":"`", "matrix": [4, 3], "x":3.75, "y":4},
|
||||
{"label":"Space", "matrix": [4, 6],"x":4.75, "y":4, "w":4.75},
|
||||
{"label":"\\", "matrix": [4, 8], "x":9.5, "y":4},
|
||||
{"label":"\u2190", "matrix": [4, 9], "x":10.5, "y":4},
|
||||
{"label":"\u2192", "matrix": [4, 10], "x":11.5, "y":4},
|
||||
{"label":"\u2193", "matrix": [4, 11], "x":12.5, "y":4},
|
||||
{"label":"\u2191", "matrix": [4, 12], "x":13.5, "y":4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_m0118": {
|
||||
"layout": [
|
||||
{"label":"Esc", "matrix": [0, 0], "x":0, "y":0},
|
||||
{"label":"!", "matrix": [0, 1], "x":1, "y":0},
|
||||
{"label":"@", "matrix": [0, 2], "x":2, "y":0},
|
||||
{"label":"#", "matrix": [0, 3], "x":3, "y":0},
|
||||
{"label":"$", "matrix": [0, 4], "x":4, "y":0},
|
||||
{"label":"%", "matrix": [0, 5], "x":5, "y":0},
|
||||
{"label":"^", "matrix": [0, 6], "x":6, "y":0},
|
||||
{"label":"&", "matrix": [0, 7], "x":7, "y":0},
|
||||
{"label":"*", "matrix": [0, 8], "x":8, "y":0},
|
||||
{"label":"(", "matrix": [0, 9], "x":9, "y":0},
|
||||
{"label":")", "matrix": [0, 10], "x":10, "y":0},
|
||||
{"label":"_", "matrix": [0, 11], "x":11, "y":0},
|
||||
{"label":"+", "matrix": [0, 12], "x":12, "y":0},
|
||||
{"label":"Backsp", "matrix": [0, 13], "x":13, "y":0, "w":1.5},
|
||||
{"label":"Tab", "matrix": [1, 0], "x":0, "y":1, "w":1.5},
|
||||
{"label":"Q", "matrix": [1, 1], "x":1.5, "y":1},
|
||||
{"label":"W", "matrix": [1, 2], "x":2.5, "y":1},
|
||||
{"label":"E", "matrix": [1, 3], "x":3.5, "y":1},
|
||||
{"label":"R", "matrix": [1, 4], "x":4.5, "y":1},
|
||||
{"label":"T", "matrix": [1, 5], "x":5.5, "y":1},
|
||||
{"label":"Y", "matrix": [1, 6], "x":6.5, "y":1},
|
||||
{"label":"U", "matrix": [1, 7], "x":7.5, "y":1},
|
||||
{"label":"I", "matrix": [1, 8], "x":8.5, "y":1},
|
||||
{"label":"O", "matrix": [1, 9], "x":9.5, "y":1},
|
||||
{"label":"P", "matrix": [1, 10], "x":10.5, "y":1},
|
||||
{"label":"{", "matrix": [1, 11], "x":11.5, "y":1},
|
||||
{"label":"}", "matrix": [1, 12], "x":12.5, "y":1},
|
||||
{"label":"Enter", "matrix": [2, 13], "x":13.75, "y":1, "w":0.75, "h":2},
|
||||
{"label":"Caps Lock", "matrix": [2, 0], "x":0, "y":2, "w":1.75},
|
||||
{"label":"A", "matrix": [2, 1], "x":1.75, "y":2},
|
||||
{"label":"S", "matrix": [2, 2], "x":2.75, "y":2},
|
||||
{"label":"D", "matrix": [2, 3], "x":3.75, "y":2},
|
||||
{"label":"F", "matrix": [2, 4], "x":4.75, "y":2},
|
||||
{"label":"G", "matrix": [2, 5], "x":5.75, "y":2},
|
||||
{"label":"H", "matrix": [2, 6], "x":6.75, "y":2},
|
||||
{"label":"J", "matrix": [2, 7], "x":7.75, "y":2},
|
||||
{"label":"K", "matrix": [2, 8], "x":8.75, "y":2},
|
||||
{"label":"L", "matrix": [2, 9], "x":9.75, "y":2},
|
||||
{"label":":", "matrix": [2, 10], "x":10.75, "y":2},
|
||||
{"label":"\"", "matrix": [2, 11], "x":11.75, "y":2},
|
||||
{"label":"nuhs", "matrix": [3, 13], "x":12.75, "y":2},
|
||||
{"label":"Shift", "matrix": [3, 0], "x":0, "y":3, "w":1.25},
|
||||
{"label":"nubs", "matrix": [3, 1], "x":1.25, "y":3},
|
||||
{"label":"Z", "matrix": [3, 2], "x":2.25, "y":3},
|
||||
{"label":"X", "matrix": [3, 3], "x":3.25, "y":3},
|
||||
{"label":"C", "matrix": [3, 4], "x":4.25, "y":3},
|
||||
{"label":"V", "matrix": [3, 5], "x":5.25, "y":3},
|
||||
{"label":"B", "matrix": [3, 6], "x":6.25, "y":3},
|
||||
{"label":"N", "matrix": [3, 7], "x":7.25, "y":3},
|
||||
{"label":"M", "matrix": [3, 8], "x":8.25, "y":3},
|
||||
{"label":"<", "matrix": [3, 9], "x":9.25, "y":3},
|
||||
{"label":">", "matrix": [3, 10], "x":10.25, "y":3},
|
||||
{"label":"?", "matrix": [3, 11], "x":11.25, "y":3},
|
||||
{"label":"Shift", "matrix": [3, 12], "x":12.25, "y":3, "w":1.25},
|
||||
{"label":"\u2191", "matrix": [4, 13], "x":13.5, "y":3},
|
||||
{"label":"Ctrl", "matrix": [4, 0], "x":0, "y":4, "w":1.25},
|
||||
{"label":"Opt", "matrix": [4, 2], "x":1.25, "y":4, "w":1.5},
|
||||
{"label":"Cmd", "matrix": [4, 3], "x":2.75, "y":4, "w":1.75},
|
||||
{"label":"Space", "matrix": [4, 6], "x":4.5, "y":4, "w":5.25},
|
||||
{"label":"Cmd", "matrix": [4, 9], "x":9.75, "y":4, "w":1.75},
|
||||
{"label":"\u2190", "matrix": [4, 10], "x":11.5, "y":4},
|
||||
{"label":"\u2192", "matrix": [4, 11], "x":12.5, "y":4},
|
||||
{"label":"\u2193", "matrix": [4, 12], "x":13.5, "y":4}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
10
keyboards/4pplet/unextended_std/rev_a/rules.mk
Normal file
10
keyboards/4pplet/unextended_std/rev_a/rules.mk
Normal file
@@ -0,0 +1,10 @@
|
||||
# Build Options
|
||||
# change yes to no to disable
|
||||
#
|
||||
KEY_LOCK_ENABLE = yes
|
||||
|
||||
# Wildcard to allow APM32 MCU
|
||||
DFU_SUFFIX_ARGS = -p FFFF -v FFFF
|
||||
|
||||
# Enter lower-power sleep mode when on the ChibiOS idle thread
|
||||
OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
|
@@ -1,22 +1,9 @@
|
||||
/* Copyright 2018-2020
|
||||
* ENDO Katsuhiro <ka2hiro@curlybracket.co.jp>
|
||||
* David Philip Barr <@davidphilipbarr>
|
||||
* Pierre Chevalier <pierrechevalier83@gmail.com>
|
||||
* @filterpaper
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General 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/>.
|
||||
*/
|
||||
// Copyright 2018-2020
|
||||
// ENDO Katsuhiro <ka2hiro@curlybracket.co.jp>
|
||||
// David Philip Barr <@davidphilipbarr>
|
||||
// Pierre Chevalier <pierrechevalier83@gmail.com>
|
||||
// SPDX-License-Identifier: GPL-2.0+
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
#ifdef SWAP_HANDS_ENABLE
|
||||
|
@@ -1,25 +1,9 @@
|
||||
/* Copyright 2018-2020 ENDO Katsuhiro <ka2hiro@curlybracket.co.jp> David Philip Barr <@davidphilipbarr> Pierre Chevalier <pierrechevalier83@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/>.
|
||||
*/
|
||||
// Copyright 2018-2020
|
||||
// ENDO Katsuhiro <ka2hiro@curlybracket.co.jp>
|
||||
// David Philip Barr <@davidphilipbarr>
|
||||
// Pierre Chevalier <pierrechevalier83@gmail.com>
|
||||
// SPDX-License-Identifier: GPL-2.0+
|
||||
|
||||
#pragma once
|
||||
|
||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||
#define LOCKING_SUPPORT_ENABLE
|
||||
|
||||
/* Locking resynchronize hack */
|
||||
#define LOCKING_RESYNC_ENABLE
|
||||
|
||||
#define EE_HANDS
|
||||
|
@@ -8,8 +8,13 @@
|
||||
"pid": "0x3939",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"processor": "atmega32u4",
|
||||
"bootloader": "atmel-dfu",
|
||||
"development_board": "promicro",
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"unicode": true
|
||||
},
|
||||
"matrix_pins": {
|
||||
"direct": [
|
||||
["C6", "D2", "F7", "B2", "F4"],
|
||||
@@ -19,6 +24,7 @@
|
||||
]
|
||||
},
|
||||
"split": {
|
||||
"enabled": true,
|
||||
"soft_serial_pin": "D1",
|
||||
"bootmagic": {
|
||||
"matrix": [4, 4]
|
||||
@@ -41,47 +47,43 @@
|
||||
"layouts": {
|
||||
"LAYOUT_split_3x5_2": {
|
||||
"layout": [
|
||||
{"x": 0, "y": 1.33, "matrix": [0, 0]},
|
||||
{"x": 1, "y": 0.31, "matrix": [0, 1]},
|
||||
{"x": 2, "y": 0, "matrix": [0, 2]},
|
||||
{"x": 3, "y": 0.28, "matrix": [0, 3]},
|
||||
{"x": 4, "y": 0.42, "matrix": [0, 4]},
|
||||
{ "label": "L01", "matrix": [0, 0], "x": 0, "y": 1.33 },
|
||||
{ "label": "L02", "matrix": [0, 1], "x": 1, "y": 0.31 },
|
||||
{ "label": "L03", "matrix": [0, 2], "x": 2, "y": 0 },
|
||||
{ "label": "L04", "matrix": [0, 3], "x": 3, "y": 0.28 },
|
||||
{ "label": "L05", "matrix": [0, 4], "x": 4, "y": 0.42 },
|
||||
{ "label": "R01", "matrix": [4, 0], "x": 8, "y": 0.42 },
|
||||
{ "label": "R02", "matrix": [4, 1], "x": 9, "y": 0.28 },
|
||||
{ "label": "R03", "matrix": [4, 2], "x": 10, "y": 0 },
|
||||
{ "label": "R04", "matrix": [4, 3], "x": 11, "y": 0.31 },
|
||||
{ "label": "R05", "matrix": [4, 4], "x": 12, "y": 1.33 },
|
||||
|
||||
{"x": 8, "y": 0.42, "matrix": [4, 0]},
|
||||
{"x": 9, "y": 0.28, "matrix": [4, 1]},
|
||||
{"x": 10, "y": 0, "matrix": [4, 2]},
|
||||
{"x": 11, "y": 0.31, "matrix": [4, 3]},
|
||||
{"x": 12, "y": 1.33, "matrix": [4, 4]},
|
||||
{ "label": "L06", "matrix": [1, 0], "x": 0, "y": 2.33 },
|
||||
{ "label": "L07", "matrix": [1, 1], "x": 1, "y": 1.31 },
|
||||
{ "label": "L08", "matrix": [1, 2], "x": 2, "y": 1 },
|
||||
{ "label": "L09", "matrix": [1, 3], "x": 3, "y": 1.28 },
|
||||
{ "label": "L10", "matrix": [1, 4], "x": 4, "y": 1.42 },
|
||||
{ "label": "R06", "matrix": [5, 0], "x": 8, "y": 1.42 },
|
||||
{ "label": "R07", "matrix": [5, 1], "x": 9, "y": 1.28 },
|
||||
{ "label": "R08", "matrix": [5, 2], "x": 10, "y": 1 },
|
||||
{ "label": "R09", "matrix": [5, 3], "x": 11, "y": 1.31 },
|
||||
{ "label": "R10", "matrix": [5, 4], "x": 12, "y": 2.33 },
|
||||
|
||||
{"x": 0, "y": 2.33, "matrix": [1, 0]},
|
||||
{"x": 1, "y": 1.31, "matrix": [1, 1]},
|
||||
{"x": 2, "y": 1, "matrix": [1, 2]},
|
||||
{"x": 3, "y": 1.28, "matrix": [1, 3]},
|
||||
{"x": 4, "y": 1.42, "matrix": [1, 4]},
|
||||
{ "label": "L11", "matrix": [2, 0], "x": 0, "y": 3.33 },
|
||||
{ "label": "L12", "matrix": [2, 1], "x": 1, "y": 2.31 },
|
||||
{ "label": "L13", "matrix": [2, 2], "x": 2, "y": 2 },
|
||||
{ "label": "L14", "matrix": [2, 3], "x": 3, "y": 2.28 },
|
||||
{ "label": "L15", "matrix": [2, 4], "x": 4, "y": 2.42 },
|
||||
{ "label": "R11", "matrix": [6, 0], "x": 8, "y": 2.42 },
|
||||
{ "label": "R12", "matrix": [6, 1], "x": 9, "y": 2.28 },
|
||||
{ "label": "R13", "matrix": [6, 2], "x": 10, "y": 2 },
|
||||
{ "label": "R14", "matrix": [6, 3], "x": 11, "y": 2.31 },
|
||||
{ "label": "R15", "matrix": [6, 4], "x": 12, "y": 3.33 },
|
||||
|
||||
{"x": 8, "y": 1.42, "matrix": [5, 0]},
|
||||
{"x": 9, "y": 1.28, "matrix": [5, 1]},
|
||||
{"x": 10, "y": 1, "matrix": [5, 2]},
|
||||
{"x": 11, "y": 1.31, "matrix": [5, 3]},
|
||||
{"x": 12, "y": 2.33, "matrix": [5, 4]},
|
||||
|
||||
{"x": 0, "y": 3.33, "matrix": [2, 0]},
|
||||
{"x": 1, "y": 2.31, "matrix": [2, 1]},
|
||||
{"x": 2, "y": 2, "matrix": [2, 2]},
|
||||
{"x": 3, "y": 2.28, "matrix": [2, 3]},
|
||||
{"x": 4, "y": 2.42, "matrix": [2, 4]},
|
||||
|
||||
{"x": 8, "y": 2.42, "matrix": [6, 0]},
|
||||
{"x": 9, "y": 2.28, "matrix": [6, 1]},
|
||||
{"x": 10, "y": 2, "matrix": [6, 2]},
|
||||
{"x": 11, "y": 2.31, "matrix": [6, 3]},
|
||||
{"x": 12, "y": 3.33, "matrix": [6, 4]},
|
||||
|
||||
{"x": 4, "y": 3.75, "matrix": [3, 0]},
|
||||
{"x": 5, "y": 4, "matrix": [3, 1]},
|
||||
|
||||
{"x": 7, "y": 4, "matrix": [7, 0]},
|
||||
{"x": 8, "y": 3.75, "matrix": [7, 1]}
|
||||
{ "label": "L16", "matrix": [3, 0], "x": 4, "y": 3.75 },
|
||||
{ "label": "L17", "matrix": [3, 1], "x": 5, "y": 4 },
|
||||
{ "label": "R16", "matrix": [7, 0], "x": 7, "y": 4 },
|
||||
{ "label": "R17", "matrix": [7, 1], "x": 8, "y": 3.75 }
|
||||
]
|
||||
}
|
||||
}
|
||||
|
@@ -1,14 +1 @@
|
||||
# Build Options
|
||||
# change yes to no to disable
|
||||
#
|
||||
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||
CONSOLE_ENABLE = no # Console for debug
|
||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
NKRO_ENABLE = yes # Enable N-Key Rollover
|
||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||
UNICODE_ENABLE = yes # Unicode
|
||||
AUDIO_ENABLE = no # Audio output
|
||||
SPLIT_KEYBOARD = yes # Use shared split_common code
|
||||
# This file intentionally left blank
|
||||
|
98
keyboards/adafruit/macropad/keymaps/peterfalken/keymap.c
Normal file
98
keyboards/adafruit/macropad/keymaps/peterfalken/keymap.c
Normal file
@@ -0,0 +1,98 @@
|
||||
// Copyright 2023 Peter.Falken (@PeterFalken)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include "peterfalken.h"
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT(
|
||||
KC_MUTE,
|
||||
KC_7, KC_8, KC_9,
|
||||
KC_4, KC_5, KC_6,
|
||||
KC_1, KC_2, KC_3,
|
||||
KC_ENT, KC_0, KC_BSPC
|
||||
)
|
||||
};
|
||||
|
||||
#ifdef ENCODER_MAP_ENABLE
|
||||
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
|
||||
[0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifdef OLED_ENABLE
|
||||
static void render_qmk_logo(void) {
|
||||
static const char PROGMEM qmk_logo[] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x3f, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x3f, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f,
|
||||
0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x3f,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x83, 0x83, 0x83, 0x83, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe,
|
||||
0xfe, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfe, 0xfe, 0xfe, 0xfe, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0x83, 0x83, 0x83, 0x83, 0x03,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x81, 0x83, 0x83, 0x83, 0x83, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
|
||||
0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0x83, 0x83, 0x83, 0x83, 0x81,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x01, 0x07, 0x1f, 0x3f, 0x7f, 0x7e, 0xf8, 0xf0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xff, 0xff,
|
||||
0xff, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xf0, 0xf8, 0x7e, 0x7f, 0x3f, 0x1f, 0x07, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xc0, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0xff, 0xff,
|
||||
0xff, 0xff, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc0,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xfc, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xfc, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc,
|
||||
0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
oled_write_raw_P(qmk_logo, sizeof(qmk_logo));
|
||||
}
|
||||
|
||||
bool oled_task_user(void) {
|
||||
render_qmk_logo();
|
||||
return true;
|
||||
}
|
||||
#endif // OLED_ENABLE
|
3
keyboards/adafruit/macropad/keymaps/peterfalken/rules.mk
Normal file
3
keyboards/adafruit/macropad/keymaps/peterfalken/rules.mk
Normal file
@@ -0,0 +1,3 @@
|
||||
# Setup QMK features
|
||||
ENCODER_MAP_ENABLE = yes
|
||||
RGB_MATRIX_ENABLE = no # Disable RGB key matrix
|
@@ -20,10 +20,10 @@
|
||||
#define EE_HANDS
|
||||
|
||||
/* define pins */
|
||||
#define MATRIX_ROW_PINS { F6, F5, F4, B6, D3 }
|
||||
#define MATRIX_COL_PINS { B5, B4, D7, D6, F0, F1, C6 }
|
||||
#define MATRIX_ROW_PINS_RIGHT { D6, D7, B4, F7, E6 }
|
||||
#define MATRIX_COL_PINS_RIGHT { B1, B2, B3, F1, F4, F5, F6 }
|
||||
#define MATRIX_ROW_PINS { F4, F5, F6, D3, C6 }
|
||||
#define MATRIX_COL_PINS { D7, B4, B5, B6, F0, D4, D6 }
|
||||
#define MATRIX_ROW_PINS_RIGHT { F5, F1, B2, B1, C6 }
|
||||
#define MATRIX_COL_PINS_RIGHT { B6, B5, D6, D5, D3, D7, B4 }
|
||||
|
||||
/* COL2ROW, ROW2COL*/
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
|
@@ -21,24 +21,16 @@ enum custom_layers {
|
||||
_LOWER,
|
||||
_UPPER,
|
||||
_MOUSE,
|
||||
_MEDIA,
|
||||
_MEDIA,
|
||||
};
|
||||
#define MD_SPC MT(MOD_LSFT, KC_SPC)
|
||||
#define MD_ENT MT(MOD_RALT, KC_ENT)
|
||||
#define LT_SPC LT(_LOWER, KC_SPC)
|
||||
|
||||
enum custom_keycodes {
|
||||
QWERTY = SAFE_RANGE,
|
||||
LOWER,
|
||||
UPPER,
|
||||
MOUSE,
|
||||
MEDIA,
|
||||
KC_CTB,
|
||||
KC_CSTB,
|
||||
KC_QUIT,
|
||||
KC_CTLW,
|
||||
KC_CTLT,
|
||||
KC_CST
|
||||
MEDIA
|
||||
};
|
||||
/*
|
||||
L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05,
|
||||
@@ -75,7 +67,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
// ├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_BSLS,
|
||||
// ├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
|
||||
UPPER, KC_HOME, MOUSE, KC_RALT, KC_LCTL, MD_SPC, KC_LALT, KC_ENT, KC_BSPC, LOWER, KC_DEL, KC_INS, KC_END, MEDIA
|
||||
TG(MOUSE), KC_HOME, MO(UPPER),KC_RALT, KC_LCTL, MD_SPC, KC_LALT, KC_ENT, KC_BSPC, MO(LOWER), KC_DEL, KC_INS, KC_END, MO(MEDIA)
|
||||
// └────────┴────────┴────────┴────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┴────────┴────────┴────────┘
|
||||
),
|
||||
|
||||
@@ -85,7 +77,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
// ├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, KC_UP, KC_LBRC, KC_RBRC, KC_F12,
|
||||
// ├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||
_______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT,_______, _______,
|
||||
_______, _______, KC_LCTL, KC_RCTL, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT,_______, _______,
|
||||
// ├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
// ├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
|
||||
@@ -111,9 +103,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
// ┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
// ├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||
_______, _______, _______, _______, _______, _______, _______, KC_WH_U, KC_MS_U, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, KC_CAPS, KC_WH_U, KC_MS_U, _______, _______, _______,
|
||||
// ├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||
_______, _______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_BTN2, KC_BTN3,
|
||||
_______, KC_NUM, KC_BTN3, KC_BTN2, KC_BTN1, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_BTN2, KC_BTN3,
|
||||
// ├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||
_______, _______, _______, _______, _______, _______, _______, KC_WH_D, KC_BTN2, _______, _______, _______,
|
||||
// ├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
|
||||
@@ -136,88 +128,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
)
|
||||
};
|
||||
|
||||
// Automatically sets the numlock on at startup
|
||||
void led_set_keymap(uint8_t usb_led) {
|
||||
if (!(usb_led & (1<<USB_LED_NUM_LOCK))) {
|
||||
tap_code(KC_NUM_LOCK);
|
||||
}
|
||||
}
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
case QWERTY:
|
||||
if (record->event.pressed) {
|
||||
set_single_persistent_default_layer(_QWERTY);
|
||||
}
|
||||
return false;
|
||||
case LOWER:
|
||||
if (record->event.pressed) {
|
||||
layer_on(_LOWER);
|
||||
} else {
|
||||
layer_off(_LOWER);
|
||||
}
|
||||
return false;
|
||||
case UPPER:
|
||||
if(record->event.pressed) {
|
||||
layer_on(_UPPER);
|
||||
} else {
|
||||
layer_off(_UPPER);
|
||||
}
|
||||
return false;
|
||||
case MOUSE:
|
||||
if (record->event.pressed) {
|
||||
layer_on(_MOUSE);
|
||||
} else {
|
||||
layer_off(_MOUSE);
|
||||
}
|
||||
return false;
|
||||
case MEDIA:
|
||||
if(record->event.pressed) {
|
||||
layer_on(_MEDIA);
|
||||
} else {
|
||||
layer_off(_MEDIA);
|
||||
}
|
||||
return false;
|
||||
case KC_CTB:
|
||||
if(record->event.pressed) {
|
||||
tap_code16(C(KC_TAB));
|
||||
}
|
||||
return false;
|
||||
case KC_CSTB:
|
||||
if(record->event.pressed) {
|
||||
tap_code16(C(S(KC_TAB)));
|
||||
}
|
||||
return false;
|
||||
case KC_QUIT:
|
||||
if(record->event.pressed) {
|
||||
tap_code16(A(KC_F4));
|
||||
}
|
||||
return false;
|
||||
case KC_CTLW:
|
||||
if(record->event.pressed) {
|
||||
tap_code16(C(KC_W));
|
||||
}
|
||||
return false;
|
||||
case KC_CTLT:
|
||||
if(record->event.pressed) {
|
||||
tap_code16(C(KC_T));
|
||||
}
|
||||
return false;
|
||||
case KC_CST:
|
||||
if(record->event.pressed) {
|
||||
tap_code16(C(S(KC_T)));
|
||||
}
|
||||
return false;
|
||||
case KC_ENT:
|
||||
if(record->event.pressed) {
|
||||
if(get_mods() & MOD_BIT(KC_LSFT)){
|
||||
tap_code(KC_SPC);
|
||||
}
|
||||
else {
|
||||
tap_code(KC_ENT);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
//nano to manibus communcation
|
||||
bool led_update_user(led_t state) {
|
||||
if (state.caps_lock != layer_state_is(_MOUSE)) {
|
||||
layer_invert(_MOUSE);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
14
keyboards/budgy/config.h
Normal file
14
keyboards/budgy/config.h
Normal file
@@ -0,0 +1,14 @@
|
||||
// Copyright 2022 KeyboardDweebs (@doesntfazer)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
|
||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U
|
||||
|
||||
|
||||
#define SERIAL_USART_FULL_DUPLEX
|
||||
#define SERIAL_USART_TX_PIN GP1
|
||||
#define SERIAL_USART_RX_PIN GP0
|
||||
|
||||
// #define SERIAL_USART_PIN_SWAP
|
81
keyboards/budgy/info.json
Normal file
81
keyboards/budgy/info.json
Normal file
@@ -0,0 +1,81 @@
|
||||
{
|
||||
"manufacturer": "KeyboardDweebs",
|
||||
"keyboard_name": "budgy",
|
||||
"maintainer": "doesntfazer",
|
||||
"bootloader": "rp2040",
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"command": false,
|
||||
"console": false,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true
|
||||
},
|
||||
"processor": "RP2040",
|
||||
"url": "",
|
||||
"usb": {
|
||||
"device_version": "1.0.0",
|
||||
"pid": "0x0117",
|
||||
"vid": "0xFABE"
|
||||
},
|
||||
"matrix_pins": {
|
||||
"direct": [
|
||||
["GP6", "GP5", "GP4", "GP3", "GP2"],
|
||||
["GP11", "GP10", "GP9", "GP8", "GP7"],
|
||||
["GP15", "GP14", "GP13", "GP12", "GP16"],
|
||||
["GP17", "GP18", null, null, null]
|
||||
]
|
||||
},
|
||||
"split": {
|
||||
"matrix_pins": {
|
||||
"right": {
|
||||
"direct": [
|
||||
["GP2", "GP3", "GP4", "GP5", "GP6"],
|
||||
["GP7", "GP8", "GP9", "GP10", "GP11"],
|
||||
["GP16", "GP12", "GP13", "GP14", "GP15"],
|
||||
["GP18", "GP17", null, null, null]
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT_split_3x5_2": {
|
||||
"layout": [
|
||||
{ "matrix": [0, 0], "x": 0, "y": 0.25 },
|
||||
{ "matrix": [0, 1], "x": 1, "y": 0.25 },
|
||||
{ "matrix": [0, 2], "x": 2, "y": 0.125 },
|
||||
{ "matrix": [0, 3], "x": 3, "y": 0 },
|
||||
{ "matrix": [0, 4], "x": 4, "y": 0.125 },
|
||||
{ "matrix": [4, 0], "x": 8, "y": 0.25 },
|
||||
{ "matrix": [4, 1], "x": 9, "y": 0.125 },
|
||||
{ "matrix": [4, 2], "x": 10, "y": 0 },
|
||||
{ "matrix": [4, 3], "x": 11, "y": 0.125 },
|
||||
{ "matrix": [4, 4], "x": 12, "y": 0.25 },
|
||||
{ "matrix": [1, 0], "x": 0, "y": 1.25 },
|
||||
{ "matrix": [1, 1], "x": 1, "y": 1.25 },
|
||||
{ "matrix": [1, 2], "x": 2, "y": 1.125 },
|
||||
{ "matrix": [1, 3], "x": 3, "y": 1 },
|
||||
{ "matrix": [1, 4], "x": 4, "y": 1.125 },
|
||||
{ "matrix": [5, 0], "x": 8, "y": 1.25 },
|
||||
{ "matrix": [5, 1], "x": 9, "y": 1.125 },
|
||||
{ "matrix": [5, 2], "x": 10, "y": 1 },
|
||||
{ "matrix": [5, 3], "x": 11, "y": 1.125 },
|
||||
{ "matrix": [5, 4], "x": 12, "y": 1.25 },
|
||||
{ "matrix": [2, 0], "x": 0, "y": 2.25 },
|
||||
{ "matrix": [2, 1], "x": 1, "y": 2.25 },
|
||||
{ "matrix": [2, 2], "x": 2, "y": 2.125 },
|
||||
{ "matrix": [2, 3], "x": 3, "y": 2 },
|
||||
{ "matrix": [2, 4], "x": 4, "y": 2.125 },
|
||||
{ "matrix": [6, 0], "x": 8, "y": 2.25 },
|
||||
{ "matrix": [6, 1], "x": 9, "y": 2.125 },
|
||||
{ "matrix": [6, 2], "x": 10, "y": 2 },
|
||||
{ "matrix": [6, 3], "x": 11, "y": 2.125 },
|
||||
{ "matrix": [6, 4], "x": 12, "y": 2.25 },
|
||||
{ "matrix": [3, 0], "x": 3.5, "y": 3.25 },
|
||||
{ "matrix": [3, 1], "x": 4.5, "y": 3.5 },
|
||||
{ "matrix": [7, 0], "x": 7.5, "y": 3.75 },
|
||||
{ "matrix": [7, 1], "x": 8.5, "y": 3.5 }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
25
keyboards/budgy/keymaps/default/keymap.c
Normal file
25
keyboards/budgy/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,25 @@
|
||||
// Copyright 2021 Keyboard Dweebs (@doesntfazer)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/*
|
||||
* ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐
|
||||
* │ Q │ W │ E │ R │ T │ │ Y │ U │ I │ O │ P │
|
||||
* ├───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┤
|
||||
* │ A │ S │ D │ F │ G │ │ H │ J │ K │ L │ ; │
|
||||
* ├───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┤
|
||||
* │ Z │ X │ C │ V │ B │ │ N │ M │ , │ . │ / │
|
||||
* └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘
|
||||
* ┌───┐ ┌───┐
|
||||
* │Bsp├───┐ ┌───┤Ent│
|
||||
* └───┤Tab│ │Spc├───┘
|
||||
* └───┘ └───┘
|
||||
*/
|
||||
[0] = LAYOUT_split_3x5_2(
|
||||
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
|
||||
KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,
|
||||
KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH,
|
||||
KC_BSPC, KC_TAB, KC_SPC, KC_ENT
|
||||
)
|
||||
};
|
27
keyboards/budgy/readme.md
Normal file
27
keyboards/budgy/readme.md
Normal file
@@ -0,0 +1,27 @@
|
||||
# budgy
|
||||
|
||||

|
||||
|
||||
34 key, diodeless, RP2040 based, budget keyboard.
|
||||
|
||||
* Keyboard Maintainer: [KeyboardDweebs](https://github.com/doesntfazer)
|
||||
* Hardware Supported: Raspberry Pi Pico
|
||||
* Hardware Availability: [Github Page](https://github.com/doesntfazer/Budgy) Buy Directly from [Keyboard Dweebs](https://keyboarddweebs.net/)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make budgy:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make budgy:default:flash
|
||||
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||
|
||||
## Bootloader
|
||||
|
||||
Enter the bootloader in 3 ways:
|
||||
|
||||
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
|
||||
* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
|
||||
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
|
2
keyboards/budgy/rules.mk
Normal file
2
keyboards/budgy/rules.mk
Normal file
@@ -0,0 +1,2 @@
|
||||
SPLIT_KEYBOARD = yes
|
||||
SERIAL_DRIVER = vendor
|
18
keyboards/cannonkeys/ripple/config.h
Normal file
18
keyboards/cannonkeys/ripple/config.h
Normal file
@@ -0,0 +1,18 @@
|
||||
// Copyright 2022 Andrew Kannan (@awkannan)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#define BACKLIGHT_PWM_DRIVER PWMD3
|
||||
#define BACKLIGHT_PWM_CHANNEL 1
|
||||
#define BACKLIGHT_PAL_MODE 1
|
||||
|
||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||
#define LOCKING_SUPPORT_ENABLE
|
||||
/* Locking resynchronize hack */
|
||||
#define LOCKING_RESYNC_ENABLE
|
||||
|
||||
#define WS2812_SPI SPID2
|
||||
#define WS2812_SPI_MOSI_PAL_MODE 0
|
||||
#define WS2812_SPI_SCK_PAL_MODE 0
|
||||
#define WS2812_SPI_SCK_PIN B13
|
@@ -1,4 +1,4 @@
|
||||
/* Copyright 2020 Purdea Andrei
|
||||
/* Copyright 2020 QMK
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@@ -14,11 +14,16 @@
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "overnumpad_1xb.h"
|
||||
/*
|
||||
* This file was auto-generated by:
|
||||
* `qmk chibios-confmigrate -i keyboards/cannonkeys/devastatingtkl/halconf.h -r platforms/chibios/common/configs/halconf.h`
|
||||
*/
|
||||
|
||||
void keyboard_post_init_kb(void)
|
||||
{
|
||||
//debug_enable=true;
|
||||
//debug_matrix=true;
|
||||
}
|
||||
#pragma once
|
||||
|
||||
#define HAL_USE_PWM TRUE
|
||||
|
||||
#define HAL_USE_SPI TRUE
|
||||
|
||||
#include_next <halconf.h>
|
||||
|
150
keyboards/cannonkeys/ripple/info.json
Normal file
150
keyboards/cannonkeys/ripple/info.json
Normal file
@@ -0,0 +1,150 @@
|
||||
{
|
||||
"keyboard_name": "Ripple",
|
||||
"manufacturer": "CannonKeys",
|
||||
"url": "https://cannonkeys.com",
|
||||
"maintainer": "awkannan",
|
||||
"usb": {
|
||||
"vid": "0xCA04",
|
||||
"pid": "0x0025",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"diode_direction": "COL2ROW",
|
||||
"matrix_pins": {
|
||||
"cols": ["B1", "B2", "B10", "B11", "B12", "B14", "A8", "A9", "A10", "A3", "B0", "A2", "A1", "A7", "A0", "B4", "B6", "B7"],
|
||||
"rows": ["A15", "B3", "B5", "A4", "A5", "F1"]
|
||||
},
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"command": false,
|
||||
"console": false,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true,
|
||||
"backlight": true,
|
||||
"rgblight": true
|
||||
},
|
||||
"rgblight": {
|
||||
"led_count": 20,
|
||||
"pin": "B15",
|
||||
"hue_steps": 17,
|
||||
"saturation_steps": 17,
|
||||
"brightness_steps": 17,
|
||||
"animations": {
|
||||
"static_gradient": true,
|
||||
"twinkle": true,
|
||||
"rainbow_mood": true,
|
||||
"rainbow_swirl": true
|
||||
}
|
||||
},
|
||||
"backlight": {
|
||||
"pin": "A6",
|
||||
"levels": 15,
|
||||
"breathing": true,
|
||||
"breathing_period": 5
|
||||
},
|
||||
"indicators": {
|
||||
"caps_lock": "B9",
|
||||
"scroll_lock": "F0",
|
||||
"on_state": 0
|
||||
},
|
||||
"processor": "STM32F072",
|
||||
"bootloader": "stm32-dfu",
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{ "matrix": [0, 0], "x": 0, "y": 0 },
|
||||
{ "matrix": [0, 1], "x": 1.25, "y": 0 },
|
||||
{ "matrix": [0, 2], "x": 2.25, "y": 0 },
|
||||
{ "matrix": [0, 3], "x": 3.25, "y": 0 },
|
||||
{ "matrix": [0, 4], "x": 4.25, "y": 0 },
|
||||
{ "matrix": [0, 5], "x": 5.5, "y": 0 },
|
||||
{ "matrix": [0, 6], "x": 6.5, "y": 0 },
|
||||
{ "matrix": [0, 7], "x": 7.5, "y": 0 },
|
||||
{ "matrix": [0, 8], "x": 8.5, "y": 0 },
|
||||
{ "matrix": [0, 9], "x": 9.75, "y": 0 },
|
||||
{ "matrix": [0, 10], "x": 10.75, "y": 0 },
|
||||
{ "matrix": [0, 11], "x": 11.75, "y": 0 },
|
||||
{ "matrix": [0, 12], "x": 12.75, "y": 0 },
|
||||
{ "matrix": [0, 14], "x": 14, "y": 0 },
|
||||
{ "matrix": [0, 15], "x": 15.25, "y": 0 },
|
||||
{ "matrix": [0, 16], "x": 16.25, "y": 0 },
|
||||
{ "matrix": [0, 17], "x": 17.25, "y": 0 },
|
||||
{ "matrix": [1, 0], "x": 0, "y": 1.25 },
|
||||
{ "matrix": [1, 1], "x": 1, "y": 1.25 },
|
||||
{ "matrix": [1, 2], "x": 2, "y": 1.25 },
|
||||
{ "matrix": [1, 3], "x": 3, "y": 1.25 },
|
||||
{ "matrix": [1, 4], "x": 4, "y": 1.25 },
|
||||
{ "matrix": [1, 5], "x": 5, "y": 1.25 },
|
||||
{ "matrix": [1, 6], "x": 6, "y": 1.25 },
|
||||
{ "matrix": [1, 7], "x": 7, "y": 1.25 },
|
||||
{ "matrix": [1, 8], "x": 8, "y": 1.25 },
|
||||
{ "matrix": [1, 9], "x": 9, "y": 1.25 },
|
||||
{ "matrix": [1, 10], "x": 10, "y": 1.25 },
|
||||
{ "matrix": [1, 11], "x": 11, "y": 1.25 },
|
||||
{ "matrix": [1, 12], "x": 12, "y": 1.25 },
|
||||
{ "matrix": [1, 13], "x": 13, "y": 1.25 },
|
||||
{ "matrix": [1, 14], "x": 14, "y": 1.25 },
|
||||
{ "matrix": [1, 15], "x": 15.25, "y": 1.25 },
|
||||
{ "matrix": [1, 16], "x": 16.25, "y": 1.25 },
|
||||
{ "matrix": [1, 17], "x": 17.25, "y": 1.25 },
|
||||
{ "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2.25 },
|
||||
{ "matrix": [2, 1], "x": 1.5, "y": 2.25 },
|
||||
{ "matrix": [2, 2], "x": 2.5, "y": 2.25 },
|
||||
{ "matrix": [2, 3], "x": 3.5, "y": 2.25 },
|
||||
{ "matrix": [2, 4], "x": 4.5, "y": 2.25 },
|
||||
{ "matrix": [2, 5], "x": 5.5, "y": 2.25 },
|
||||
{ "matrix": [2, 6], "x": 6.5, "y": 2.25 },
|
||||
{ "matrix": [2, 7], "x": 7.5, "y": 2.25 },
|
||||
{ "matrix": [2, 8], "x": 8.5, "y": 2.25 },
|
||||
{ "matrix": [2, 9], "x": 9.5, "y": 2.25 },
|
||||
{ "matrix": [2, 10], "x": 10.5, "y": 2.25 },
|
||||
{ "matrix": [2, 11], "x": 11.5, "y": 2.25 },
|
||||
{ "matrix": [2, 12], "x": 12.5, "y": 2.25 },
|
||||
{ "matrix": [2, 14], "w": 1.5, "x": 13.5, "y": 2.25 },
|
||||
{ "matrix": [2, 15], "x": 15.25, "y": 2.25 },
|
||||
{ "matrix": [2, 16], "x": 16.25, "y": 2.25 },
|
||||
{ "matrix": [2, 17], "x": 17.25, "y": 2.25 },
|
||||
{ "matrix": [3, 0], "w": 1.75, "x": 0, "y": 3.25 },
|
||||
{ "matrix": [3, 1], "x": 1.75, "y": 3.25 },
|
||||
{ "matrix": [3, 2], "x": 2.75, "y": 3.25 },
|
||||
{ "matrix": [3, 3], "x": 3.75, "y": 3.25 },
|
||||
{ "matrix": [3, 4], "x": 4.75, "y": 3.25 },
|
||||
{ "matrix": [3, 5], "x": 5.75, "y": 3.25 },
|
||||
{ "matrix": [3, 6], "x": 6.75, "y": 3.25 },
|
||||
{ "matrix": [3, 7], "x": 7.75, "y": 3.25 },
|
||||
{ "matrix": [3, 8], "x": 8.75, "y": 3.25 },
|
||||
{ "matrix": [3, 9], "x": 9.75, "y": 3.25 },
|
||||
{ "matrix": [3, 10], "x": 10.75, "y": 3.25 },
|
||||
{ "matrix": [3, 11], "x": 11.75, "y": 3.25 },
|
||||
{ "matrix": [3, 12], "x": 12.75, "y": 3.25 },
|
||||
{ "matrix": [3, 14], "w": 1.25, "x": 13.75, "y": 3.25 },
|
||||
{ "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4.25 },
|
||||
{ "matrix": [4, 1], "x": 1.25, "y": 4.25 },
|
||||
{ "matrix": [4, 2], "x": 2.25, "y": 4.25 },
|
||||
{ "matrix": [4, 3], "x": 3.25, "y": 4.25 },
|
||||
{ "matrix": [4, 4], "x": 4.25, "y": 4.25 },
|
||||
{ "matrix": [4, 5], "x": 5.25, "y": 4.25 },
|
||||
{ "matrix": [4, 6], "x": 6.25, "y": 4.25 },
|
||||
{ "matrix": [4, 7], "x": 7.25, "y": 4.25 },
|
||||
{ "matrix": [4, 8], "x": 8.25, "y": 4.25 },
|
||||
{ "matrix": [4, 9], "x": 9.25, "y": 4.25 },
|
||||
{ "matrix": [4, 10], "x": 10.25, "y": 4.25 },
|
||||
{ "matrix": [4, 11], "x": 11.25, "y": 4.25 },
|
||||
{ "matrix": [4, 12], "w": 1.75, "x": 12.25, "y": 4.25 },
|
||||
{ "matrix": [4, 14], "x": 14, "y": 4.25 },
|
||||
{ "matrix": [4, 16], "x": 16.25, "y": 4.25 },
|
||||
{ "matrix": [5, 0], "w": 1.25, "x": 0, "y": 5.25 },
|
||||
{ "matrix": [5, 1], "w": 1.25, "x": 1.25, "y": 5.25 },
|
||||
{ "matrix": [5, 2], "w": 1.25, "x": 2.5, "y": 5.25 },
|
||||
{ "matrix": [5, 6], "w": 6.25, "x": 3.75, "y": 5.25 },
|
||||
{ "matrix": [5, 10], "w": 1.25, "x": 10, "y": 5.25 },
|
||||
{ "matrix": [5, 11], "w": 1.25, "x": 11.25, "y": 5.25 },
|
||||
{ "matrix": [5, 12], "w": 1.25, "x": 12.5, "y": 5.25 },
|
||||
{ "matrix": [5, 14], "w": 1.25, "x": 13.75, "y": 5.25 },
|
||||
{ "matrix": [5, 15], "x": 15.25, "y": 5.25 },
|
||||
{ "matrix": [5, 16], "x": 16.25, "y": 5.25 },
|
||||
{ "matrix": [5, 17], "x": 17.25, "y": 5.25 }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
41
keyboards/cannonkeys/ripple/keymaps/default/keymap.c
Normal file
41
keyboards/cannonkeys/ripple/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,41 @@
|
||||
/*
|
||||
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
|
||||
enum layer_names {
|
||||
_BASE,
|
||||
_FN1
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[_BASE] = LAYOUT(
|
||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MPLY, KC_PSCR, KC_SCRL, KC_PAUS,
|
||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT,
|
||||
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_TRNS, KC_UP,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
[_FN1] = LAYOUT(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, KC_TRNS, BL_TOGG, BL_DOWN, BL_UP,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MNXT, KC_VOLD,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
|
||||
|
||||
};
|
59
keyboards/cannonkeys/ripple/keymaps/via/keymap.c
Normal file
59
keyboards/cannonkeys/ripple/keymaps/via/keymap.c
Normal file
@@ -0,0 +1,59 @@
|
||||
/*
|
||||
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
|
||||
enum layer_names {
|
||||
_BASE,
|
||||
_FN1,
|
||||
_FN2,
|
||||
_FN3
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[_BASE] = LAYOUT(
|
||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MPLY, KC_PSCR, KC_SCRL, KC_PAUS,
|
||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT,
|
||||
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_TRNS, KC_UP,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
[_FN1] = LAYOUT(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, KC_TRNS, BL_TOGG, BL_DOWN, BL_UP,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MNXT, KC_VOLD,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||
|
||||
[_FN2] = LAYOUT(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||
|
||||
[_FN3] = LAYOUT(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
|
||||
|
||||
};
|
1
keyboards/cannonkeys/ripple/keymaps/via/rules.mk
Normal file
1
keyboards/cannonkeys/ripple/keymaps/via/rules.mk
Normal file
@@ -0,0 +1 @@
|
||||
VIA_ENABLE = yes
|
31
keyboards/cannonkeys/ripple/mcuconf.h
Normal file
31
keyboards/cannonkeys/ripple/mcuconf.h
Normal file
@@ -0,0 +1,31 @@
|
||||
/* Copyright 2020 QMK
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/*
|
||||
* This file was auto-generated by:
|
||||
* `qmk chibios-confmigrate -i keyboards/cannonkeys/devastatingtkl/mcuconf.h -r platforms/chibios/GENERIC_STM32_F072XB/configs/mcuconf.h`
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include_next <mcuconf.h>
|
||||
|
||||
#undef STM32_PWM_USE_TIM3
|
||||
#define STM32_PWM_USE_TIM3 TRUE
|
||||
|
||||
#undef STM32_SPI_USE_SPI2
|
||||
#define STM32_SPI_USE_SPI2 TRUE
|
||||
|
24
keyboards/cannonkeys/ripple/readme.md
Normal file
24
keyboards/cannonkeys/ripple/readme.md
Normal file
@@ -0,0 +1,24 @@
|
||||
# CannonKeys Ripple
|
||||
|
||||
Ripple Keyboard by Upas
|
||||
|
||||
* Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan)
|
||||
* Hardware Supported: STM32F072CBT6
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make cannonkeys/ripple:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make cannonkeys/ripple:default:flash
|
||||
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||
|
||||
## Bootloader
|
||||
|
||||
Enter the bootloader in 3 ways:
|
||||
|
||||
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
|
||||
* **Physical reset button**: Toggle the switch on the back of the pcb to "1" and briefly press the button on the back of the PCB
|
||||
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
|
7
keyboards/cannonkeys/ripple/rules.mk
Normal file
7
keyboards/cannonkeys/ripple/rules.mk
Normal file
@@ -0,0 +1,7 @@
|
||||
# Wildcard to allow APM32 MCU
|
||||
DFU_SUFFIX_ARGS = -v FFFF -p FFFF
|
||||
|
||||
WS2812_DRIVER = spi
|
||||
|
||||
# Enter lower-power sleep mode when on the ChibiOS idle thread
|
||||
OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
|
125
keyboards/cannonkeys/ripple_hs/info.json
Normal file
125
keyboards/cannonkeys/ripple_hs/info.json
Normal file
@@ -0,0 +1,125 @@
|
||||
{
|
||||
"keyboard_name": "Ripple HS",
|
||||
"manufacturer": "CannonKeys",
|
||||
"url": "https://cannonkeys.com",
|
||||
"maintainer": "awkannan",
|
||||
"usb": {
|
||||
"vid": "0xCA04",
|
||||
"pid": "0x0026",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"diode_direction": "COL2ROW",
|
||||
"matrix_pins": {
|
||||
"cols": ["B1", "B2", "B10", "B11", "B12", "B14", "A8", "A9", "A10", "A3", "B0", "A2", "A1", "A7", "A0", "B4", "B6", "B7"],
|
||||
"rows": ["A15", "B3", "B5", "A4", "A5", "F1"]
|
||||
},
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"command": false,
|
||||
"console": false,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true
|
||||
},
|
||||
"indicators": {
|
||||
"caps_lock": "B9",
|
||||
"scroll_lock": "F0",
|
||||
"on_state": 0
|
||||
},
|
||||
"processor": "STM32F072",
|
||||
"bootloader": "stm32-dfu",
|
||||
"community_layouts": [ "tkl_f13_ansi_tsangan" ],
|
||||
"layouts": {
|
||||
"LAYOUT_tkl_f13_ansi_tsangan": {
|
||||
"layout": [
|
||||
{ "matrix": [0, 0], "x": 0, "y": 0 },
|
||||
{ "matrix": [0, 1], "x": 1.25, "y": 0 },
|
||||
{ "matrix": [0, 2], "x": 2.25, "y": 0 },
|
||||
{ "matrix": [0, 3], "x": 3.25, "y": 0 },
|
||||
{ "matrix": [0, 4], "x": 4.25, "y": 0 },
|
||||
{ "matrix": [0, 5], "x": 5.5, "y": 0 },
|
||||
{ "matrix": [0, 6], "x": 6.5, "y": 0 },
|
||||
{ "matrix": [0, 7], "x": 7.5, "y": 0 },
|
||||
{ "matrix": [0, 8], "x": 8.5, "y": 0 },
|
||||
{ "matrix": [0, 9], "x": 9.75, "y": 0 },
|
||||
{ "matrix": [0, 10], "x": 10.75, "y": 0 },
|
||||
{ "matrix": [0, 11], "x": 11.75, "y": 0 },
|
||||
{ "matrix": [0, 12], "x": 12.75, "y": 0 },
|
||||
{ "matrix": [0, 14], "x": 14, "y": 0 },
|
||||
{ "matrix": [0, 15], "x": 15.25, "y": 0 },
|
||||
{ "matrix": [0, 16], "x": 16.25, "y": 0 },
|
||||
{ "matrix": [0, 17], "x": 17.25, "y": 0 },
|
||||
{ "matrix": [1, 0], "x": 0, "y": 1.25 },
|
||||
{ "matrix": [1, 1], "x": 1, "y": 1.25 },
|
||||
{ "matrix": [1, 2], "x": 2, "y": 1.25 },
|
||||
{ "matrix": [1, 3], "x": 3, "y": 1.25 },
|
||||
{ "matrix": [1, 4], "x": 4, "y": 1.25 },
|
||||
{ "matrix": [1, 5], "x": 5, "y": 1.25 },
|
||||
{ "matrix": [1, 6], "x": 6, "y": 1.25 },
|
||||
{ "matrix": [1, 7], "x": 7, "y": 1.25 },
|
||||
{ "matrix": [1, 8], "x": 8, "y": 1.25 },
|
||||
{ "matrix": [1, 9], "x": 9, "y": 1.25 },
|
||||
{ "matrix": [1, 10], "x": 10, "y": 1.25 },
|
||||
{ "matrix": [1, 11], "x": 11, "y": 1.25 },
|
||||
{ "matrix": [1, 12], "x": 12, "y": 1.25 },
|
||||
{ "matrix": [1, 14], "w": 2, "x": 13, "y": 1.25 },
|
||||
{ "matrix": [1, 15], "x": 15.25, "y": 1.25 },
|
||||
{ "matrix": [1, 16], "x": 16.25, "y": 1.25 },
|
||||
{ "matrix": [1, 17], "x": 17.25, "y": 1.25 },
|
||||
{ "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2.25 },
|
||||
{ "matrix": [2, 1], "x": 1.5, "y": 2.25 },
|
||||
{ "matrix": [2, 2], "x": 2.5, "y": 2.25 },
|
||||
{ "matrix": [2, 3], "x": 3.5, "y": 2.25 },
|
||||
{ "matrix": [2, 4], "x": 4.5, "y": 2.25 },
|
||||
{ "matrix": [2, 5], "x": 5.5, "y": 2.25 },
|
||||
{ "matrix": [2, 6], "x": 6.5, "y": 2.25 },
|
||||
{ "matrix": [2, 7], "x": 7.5, "y": 2.25 },
|
||||
{ "matrix": [2, 8], "x": 8.5, "y": 2.25 },
|
||||
{ "matrix": [2, 9], "x": 9.5, "y": 2.25 },
|
||||
{ "matrix": [2, 10], "x": 10.5, "y": 2.25 },
|
||||
{ "matrix": [2, 11], "x": 11.5, "y": 2.25 },
|
||||
{ "matrix": [2, 12], "x": 12.5, "y": 2.25 },
|
||||
{ "matrix": [2, 14], "w": 1.5, "x": 13.5, "y": 2.25 },
|
||||
{ "matrix": [2, 15], "x": 15.25, "y": 2.25 },
|
||||
{ "matrix": [2, 16], "x": 16.25, "y": 2.25 },
|
||||
{ "matrix": [2, 17], "x": 17.25, "y": 2.25 },
|
||||
{ "matrix": [3, 0], "w": 1.75, "x": 0, "y": 3.25 },
|
||||
{ "matrix": [3, 1], "x": 1.75, "y": 3.25 },
|
||||
{ "matrix": [3, 2], "x": 2.75, "y": 3.25 },
|
||||
{ "matrix": [3, 3], "x": 3.75, "y": 3.25 },
|
||||
{ "matrix": [3, 4], "x": 4.75, "y": 3.25 },
|
||||
{ "matrix": [3, 5], "x": 5.75, "y": 3.25 },
|
||||
{ "matrix": [3, 6], "x": 6.75, "y": 3.25 },
|
||||
{ "matrix": [3, 7], "x": 7.75, "y": 3.25 },
|
||||
{ "matrix": [3, 8], "x": 8.75, "y": 3.25 },
|
||||
{ "matrix": [3, 9], "x": 9.75, "y": 3.25 },
|
||||
{ "matrix": [3, 10], "x": 10.75, "y": 3.25 },
|
||||
{ "matrix": [3, 11], "x": 11.75, "y": 3.25 },
|
||||
{ "matrix": [3, 14], "w": 2.25, "x": 12.75, "y": 3.25 },
|
||||
{ "matrix": [4, 0], "w": 2.25, "x": 0, "y": 4.25 },
|
||||
{ "matrix": [4, 2], "x": 2.25, "y": 4.25 },
|
||||
{ "matrix": [4, 3], "x": 3.25, "y": 4.25 },
|
||||
{ "matrix": [4, 4], "x": 4.25, "y": 4.25 },
|
||||
{ "matrix": [4, 5], "x": 5.25, "y": 4.25 },
|
||||
{ "matrix": [4, 6], "x": 6.25, "y": 4.25 },
|
||||
{ "matrix": [4, 7], "x": 7.25, "y": 4.25 },
|
||||
{ "matrix": [4, 8], "x": 8.25, "y": 4.25 },
|
||||
{ "matrix": [4, 9], "x": 9.25, "y": 4.25 },
|
||||
{ "matrix": [4, 10], "x": 10.25, "y": 4.25 },
|
||||
{ "matrix": [4, 11], "x": 11.25, "y": 4.25 },
|
||||
{ "matrix": [4, 12], "w": 2.75, "x": 12.25, "y": 4.25 },
|
||||
{ "matrix": [4, 16], "x": 16.25, "y": 4.25 },
|
||||
{ "matrix": [5, 0], "w": 1.5, "x": 0, "y": 5.25 },
|
||||
{ "matrix": [5, 1], "x": 1.5, "y": 5.25 },
|
||||
{ "matrix": [5, 2], "w": 1.5, "x": 2.5, "y": 5.25 },
|
||||
{ "matrix": [5, 6], "w": 7, "x": 4, "y": 5.25 },
|
||||
{ "matrix": [5, 11], "w": 1.5, "x": 11, "y": 5.25 },
|
||||
{ "matrix": [5, 12], "x": 12.5, "y": 5.25 },
|
||||
{ "matrix": [5, 14], "w": 1.5, "x": 13.5, "y": 5.25 },
|
||||
{ "matrix": [5, 15], "x": 15.25, "y": 5.25 },
|
||||
{ "matrix": [5, 16], "x": 16.25, "y": 5.25 },
|
||||
{ "matrix": [5, 17], "x": 17.25, "y": 5.25 }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
41
keyboards/cannonkeys/ripple_hs/keymaps/default/keymap.c
Normal file
41
keyboards/cannonkeys/ripple_hs/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,41 @@
|
||||
/*
|
||||
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
|
||||
enum layer_names {
|
||||
_BASE,
|
||||
_FN1
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[_BASE] = LAYOUT_tkl_f13_ansi_tsangan(
|
||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MPLY, KC_PSCR, KC_SCRL, KC_PAUS,
|
||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
[_FN1] = LAYOUT_tkl_f13_ansi_tsangan(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, KC_TRNS, BL_TOGG, BL_DOWN, BL_UP,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MNXT, KC_VOLD,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
|
||||
|
||||
};
|
59
keyboards/cannonkeys/ripple_hs/keymaps/via/keymap.c
Normal file
59
keyboards/cannonkeys/ripple_hs/keymaps/via/keymap.c
Normal file
@@ -0,0 +1,59 @@
|
||||
/*
|
||||
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
|
||||
enum layer_names {
|
||||
_BASE,
|
||||
_FN1,
|
||||
_FN2,
|
||||
_FN3
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[_BASE] = LAYOUT_tkl_f13_ansi_tsangan(
|
||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MPLY, KC_PSCR, KC_SCRL, KC_PAUS,
|
||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
[_FN1] = LAYOUT_tkl_f13_ansi_tsangan(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, KC_TRNS, BL_TOGG, BL_DOWN, BL_UP,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MNXT, KC_VOLD,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||
|
||||
[_FN2] = LAYOUT_tkl_f13_ansi_tsangan(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||
|
||||
[_FN3] = LAYOUT_tkl_f13_ansi_tsangan(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
|
||||
|
||||
};
|
1
keyboards/cannonkeys/ripple_hs/keymaps/via/rules.mk
Normal file
1
keyboards/cannonkeys/ripple_hs/keymaps/via/rules.mk
Normal file
@@ -0,0 +1 @@
|
||||
VIA_ENABLE = yes
|
24
keyboards/cannonkeys/ripple_hs/readme.md
Normal file
24
keyboards/cannonkeys/ripple_hs/readme.md
Normal file
@@ -0,0 +1,24 @@
|
||||
# CannonKeys Ripple HS
|
||||
|
||||
Ripple Keyboard by Upas
|
||||
|
||||
* Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan)
|
||||
* Hardware Supported: STM32F072CBT6
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make cannonkeys/ripple_hs:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make cannonkeys/ripple_hs:default:flash
|
||||
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||
|
||||
## Bootloader
|
||||
|
||||
Enter the bootloader in 3 ways:
|
||||
|
||||
* **Bootmagic reset**: Hold down the top left key and plug in the keyboard
|
||||
* **Physical reset button**: Toggle the switch on the back of the pcb to "1" and briefly press the button on the back of the PCB
|
||||
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. In the pre-supplied keymaps it is on the second layer, replacing the R key.
|
5
keyboards/cannonkeys/ripple_hs/rules.mk
Normal file
5
keyboards/cannonkeys/ripple_hs/rules.mk
Normal file
@@ -0,0 +1,5 @@
|
||||
# Wildcard to allow APM32 MCU
|
||||
DFU_SUFFIX_ARGS = -v FFFF -p FFFF
|
||||
|
||||
# Enter lower-power sleep mode when on the ChibiOS idle thread
|
||||
OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
|
48
keyboards/crkbd/keymaps/cameronjlarsen/config.h
Normal file
48
keyboards/crkbd/keymaps/cameronjlarsen/config.h
Normal file
@@ -0,0 +1,48 @@
|
||||
/* Copyright 2022 Cameron Larsen <@cameronjlarsen>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General 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
|
||||
|
||||
|
||||
/* Select hand configuration */
|
||||
#define MASTER_LEFT
|
||||
// #define MASTER_RIGHT
|
||||
// #define EE_HANDS
|
||||
|
||||
#define TAPPING_FORCE_HOLD
|
||||
#define TAPPING_TERM 135
|
||||
|
||||
#define IGNORE_MOD_TAP_INTERRUPT
|
||||
#define CAPS_WORD_IDLE_TIMEOUT 5000 // Turn off Caps Word after 5 seconds.
|
||||
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
#define RGBLIGHT_EFFECT_BREATHING
|
||||
#define RGBLIGHT_EFFECT_RAINBOW_MOOD
|
||||
#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
|
||||
#define RGBLIGHT_EFFECT_SNAKE
|
||||
#define RGBLIGHT_EFFECT_KNIGHT
|
||||
#define RGBLIGHT_EFFECT_CHRISTMAS
|
||||
#define RGBLIGHT_EFFECT_STATIC_GRADIENT
|
||||
#define RGBLIGHT_EFFECT_RGB_TEST
|
||||
#define RGBLIGHT_EFFECT_ALTERNATING
|
||||
#define RGBLIGHT_EFFECT_TWINKLE
|
||||
#define RGBLIGHT_LIMIT_VAL 120
|
||||
#define RGBLIGHT_HUE_STEP 10
|
||||
#define RGBLIGHT_SAT_STEP 17
|
||||
#define RGBLIGHT_VAL_STEP 17
|
||||
#endif
|
||||
|
||||
#define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c"
|
360
keyboards/crkbd/keymaps/cameronjlarsen/keymap.c
Normal file
360
keyboards/crkbd/keymaps/cameronjlarsen/keymap.c
Normal file
@@ -0,0 +1,360 @@
|
||||
/* Copyright 2022 Cameron Larsen <@cameronjlarsen>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include QMK_KEYBOARD_H
|
||||
#include <stdio.h>
|
||||
#include "features/oneshot.h"
|
||||
|
||||
enum layers {
|
||||
_QWERTY = 0,
|
||||
SYM,
|
||||
NAV,
|
||||
FUN,
|
||||
};
|
||||
// Aliases for readability
|
||||
#define QWERTY DF(_QWERTY)
|
||||
#define LA_SYM LT(SYM, KC_TAB)
|
||||
#define LA_NAV MO(NAV)
|
||||
|
||||
// One shot mods
|
||||
enum keycodes {
|
||||
OS_SHFT = QK_USER,
|
||||
OS_CTRL,
|
||||
OS_ALT,
|
||||
OS_GUI,
|
||||
};
|
||||
|
||||
// Note: LAlt/Enter (ALT_ENT) is not the same thing as the keyboard shortcut Alt+Enter.
|
||||
// The notation `mod/tap` denotes a key that activates the modifier `mod` when held down, and
|
||||
// produces the key `tap` when tapped (i.e. pressed and released).
|
||||
|
||||
// clang-format off
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/*
|
||||
* Base Layer: QWERTY
|
||||
*
|
||||
* Inspiration:
|
||||
*
|
||||
* https://github.com/serebrov/qmk_firmware/blob/custom/keyboards/kyria/keymaps/kyria-mini/keymap.c
|
||||
*
|
||||
* Notes:
|
||||
* - F & J enables CAPSWORD, disables after 5 seconds
|
||||
* - Left thumb CTRL and SHIFT are one shot
|
||||
* - Enter is moved to ; location and ; is moved to Sym layer
|
||||
* - ESC can be accessed by NAV and G
|
||||
* - BKSP is accessed by NAV and Enter
|
||||
* - Tab is accessed by tapping SYM layer
|
||||
* - FUN layer is accessed by holding NAV and SYM layers at the same time
|
||||
*
|
||||
* ,----------------------------------. ,----------------------------------.
|
||||
* | Q | W | E | R | T | | Y | U | I | O | P |
|
||||
* |------+------+------+------+------| |------+------+------+------+------|
|
||||
* | A | S | D | F | G | | H | J | K | L | Enter|
|
||||
* |------+------+------+------+------. ,------+------+------+------+------|
|
||||
* | Z | X | C | V | B | | N | M | , < | . > | / ? |
|
||||
* `------+------+------+------+------+------. ,------+------+------+------+-------------'
|
||||
* | OSM | OSM | Nav | | Sym | Space| GUI |
|
||||
* | Ctrl | Shift| | | Tab | | |
|
||||
* `---------------------' `--------------------'
|
||||
*/
|
||||
[_QWERTY] = LAYOUT_split_3x5_3(
|
||||
KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y, KC_U , KC_I , KC_O , KC_P ,
|
||||
KC_A , KC_S , KC_D , KC_F , KC_G , KC_H, KC_J , KC_K , KC_L , KC_ENT ,
|
||||
KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N, KC_M ,KC_COMM, KC_DOT , KC_SLSH,
|
||||
OS_CTRL, OS_SHFT, LA_NAV , LA_SYM , KC_SPC, OS_GUI
|
||||
),
|
||||
|
||||
/*
|
||||
* Sym Layer: Numbers and symbols
|
||||
*
|
||||
* Notes:
|
||||
* - Symbols are grouped together and shifted symbols from middle row are on bottom row
|
||||
* - Exception is angle brackets
|
||||
*
|
||||
* ,----------------------------------. ,----------------------------------.
|
||||
* | 1 ! | 2 @ | 3 # | 4 $ | 5 % | | 6 ^ | 7 & | 8 * | 9 ( | 0 ) |
|
||||
* |------+------+------+------+------| |------+------+------+------+------|
|
||||
* | ` | ( | ) | ' | = | | \ | - | [ | ] | ; |
|
||||
* |------+------+------+------+------+ +------+------+------+------+------|
|
||||
* | ~ | < | > | " | + | | | | _ | { | } | : |
|
||||
* `-------------+------+------+------+------. ,------+------+------+------+-------------'
|
||||
* | | | | | | | |
|
||||
* | | | | | | | |
|
||||
* `--------------------' `--------------------'
|
||||
*/
|
||||
[SYM] = LAYOUT_split_3x5_3(
|
||||
KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 ,
|
||||
KC_GRV , KC_LPRN, KC_RPRN, KC_QUOT, KC_EQL , KC_BSLS, KC_MINS, KC_LBRC, KC_RBRC, KC_SCLN,
|
||||
KC_TILD, KC_LABK, KC_RABK, KC_DQUO, KC_PLUS, KC_PIPE, KC_UNDS, KC_LCBR, KC_RCBR, KC_COLN,
|
||||
_______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
/*
|
||||
* Nav Layer: Navigation, Media
|
||||
*
|
||||
* Notes:
|
||||
* - Vim style navigation keys
|
||||
* - Volume and Media Keys
|
||||
* - BKSP on Enter
|
||||
* - DEL on /
|
||||
* - Esc on G
|
||||
*
|
||||
* ,----------------------------------. ,----------------------------------.
|
||||
* | | | | BriUp| BriDn| | Home | PgDn | PgUp | End |PrtScr|
|
||||
* |------+------+------+------+------| |------+------+------+------+------|
|
||||
* | GUI | Alt | Ctrl | Shift| Esc | | ← | ↓ | ↑ | → | Bksp |
|
||||
* |------+------+------+------+------+ +------+------+------+------+------|
|
||||
* | | Vol- | Mute | Vol+ |NumLck| | MPrev| MPlay| MStop| MNext|Delete|
|
||||
* `-------------+------+------+------+------. ,------+------+------+------+-------------'
|
||||
* | | | | | | | |
|
||||
* | | | | | | | |
|
||||
* `--------------------' `--------------------'
|
||||
*/
|
||||
[NAV] = LAYOUT_split_3x5_3(
|
||||
_______, _______, _______, KC_BRIU, KC_BRID, KC_HOME, KC_PGDN, KC_PGUP, KC_END , KC_PSCR,
|
||||
OS_GUI , OS_ALT , OS_CTRL, OS_SHFT, KC_ESC , KC_LEFT, KC_DOWN, KC_UP , KC_RGHT, KC_BSPC,
|
||||
_______, KC_VOLD, KC_MUTE, KC_VOLU, KC_NUM , KC_MPRV, KC_MPLY, KC_MSTP, KC_MNXT, KC_DEL ,
|
||||
_______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
/*
|
||||
* Function Layer: Function keys
|
||||
*
|
||||
* Notes:
|
||||
* - F1-F10 on bottom row
|
||||
* - F11-F12 on index finger inner row
|
||||
* - Homerow mods
|
||||
* - Num keys on top row
|
||||
*
|
||||
* ,----------------------------------. ,----------------------------------.
|
||||
* | 1 ! | 2 @ | 3 # | 4 $ | 5 % | | 6 ^ | 7 & | 8 * | 9 ( | 0 ) |
|
||||
* |------+------+------+------+------| |------+------+------+------+------|
|
||||
* | GUI | Alt | Ctrl | Shift| F11 | | F12 | Shift| Ctrl | Alt | GUI |
|
||||
* |------+------+------+------+------+ +------+------+------+------+------|
|
||||
* | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 |
|
||||
* `-------------+------+------+------+------. ,------+------+------+------+-------------'
|
||||
* | | | | | | | |
|
||||
* | | | | | | | |
|
||||
* `--------------------' `--------------------'
|
||||
*/
|
||||
[FUN] = LAYOUT_split_3x5_3(
|
||||
KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 ,
|
||||
OS_GUI , OS_ALT , OS_CTRL, OS_SHFT, KC_F11 , KC_F12 , OS_SHFT, OS_CTRL, OS_ALT , OS_GUI ,
|
||||
KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 ,
|
||||
_______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
};
|
||||
|
||||
enum combo_events {
|
||||
CAPS_COMBO,
|
||||
// Other combos...
|
||||
COMBO_LENGTH
|
||||
};
|
||||
uint16_t COMBO_LEN = COMBO_LENGTH;
|
||||
|
||||
const uint16_t PROGMEM caps_combo[] = {KC_F, KC_J, COMBO_END};
|
||||
|
||||
combo_t key_combos[] = {
|
||||
[CAPS_COMBO] = COMBO_ACTION(caps_combo),
|
||||
// Other combos...C
|
||||
};
|
||||
|
||||
void process_combo_event(uint16_t combo_index, bool pressed) {
|
||||
switch(combo_index) {
|
||||
case CAPS_COMBO:
|
||||
if (pressed) {
|
||||
caps_word_on(); // Activate Caps Word!
|
||||
}
|
||||
break;
|
||||
|
||||
// Other combos...
|
||||
}
|
||||
}
|
||||
|
||||
bool is_oneshot_cancel_key(uint16_t keycode){
|
||||
switch (keycode) {
|
||||
case LA_NAV:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
bool is_oneshot_ignored_key(uint16_t keycode){
|
||||
switch (keycode) {
|
||||
case LA_NAV:
|
||||
case LA_SYM:
|
||||
case OS_SHFT:
|
||||
case OS_CTRL:
|
||||
case OS_ALT:
|
||||
case OS_GUI:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
oneshot_state os_shft_state = os_up_unqueued;
|
||||
oneshot_state os_ctrl_state = os_up_unqueued;
|
||||
oneshot_state os_alt_state = os_up_unqueued;
|
||||
oneshot_state os_cmd_state = os_up_unqueued;
|
||||
|
||||
|
||||
|
||||
bool caps_word_press_user(uint16_t keycode) {
|
||||
switch (keycode) {
|
||||
// Keycodes that continue Caps Word, with shift applied.
|
||||
case KC_A ... KC_Z:
|
||||
case KC_MINS:
|
||||
add_weak_mods(MOD_BIT(KC_LSFT)); // Apply shift to the next key.
|
||||
return true;
|
||||
|
||||
// Keycodes that continue Caps Word, without shifting.
|
||||
case KC_1 ... KC_0:
|
||||
case KC_BSPC:
|
||||
case KC_DEL:
|
||||
case KC_UNDS:
|
||||
return true;
|
||||
|
||||
default:
|
||||
return false; // Deactivate Caps Word.
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
layer_state_t layer_state_set_user(layer_state_t state){
|
||||
return update_tri_layer_state(state, SYM, NAV, FUN);
|
||||
}
|
||||
|
||||
#ifdef OLED_ENABLE
|
||||
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
|
||||
if (!is_keyboard_master()) {
|
||||
return OLED_ROTATION_180; // flips the display 180 degrees if offhand
|
||||
}
|
||||
return rotation;
|
||||
}
|
||||
|
||||
void oled_render_layer_state(void) {
|
||||
oled_write_P(PSTR("Layer: "), false);
|
||||
switch (get_highest_layer(layer_state | default_layer_state)) {
|
||||
case _QWERTY:
|
||||
oled_write_ln_P(PSTR("QWERTY"), false);
|
||||
break;
|
||||
case SYM:
|
||||
oled_write_ln_P(PSTR("Sym"), false);
|
||||
break;
|
||||
case NAV:
|
||||
oled_write_ln_P(PSTR("Nav"), false);
|
||||
break;
|
||||
case FUN:
|
||||
oled_write_ln_P(PSTR("Function"), false);
|
||||
break;
|
||||
default:
|
||||
oled_write_ln_P(PSTR("Undefined"), false);
|
||||
}
|
||||
}
|
||||
|
||||
char keylog_str[24] = {};
|
||||
|
||||
const char code_to_name[60] = {
|
||||
' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f',
|
||||
'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p',
|
||||
'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
|
||||
'1', '2', '3', '4', '5', '6', '7', '8', '9', '0',
|
||||
'R', 'E', 'B', 'T', '_', '-', '=', '[', ']', '\\',
|
||||
'#', ';', '\'', '`', ',', '.', '/', ' ', ' ', ' '};
|
||||
|
||||
void set_keylog(uint16_t keycode, keyrecord_t *record) {
|
||||
char name = ' ';
|
||||
if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) ||
|
||||
(keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)) { keycode = keycode & 0xFF; }
|
||||
if (keycode < 60) {
|
||||
name = code_to_name[keycode];
|
||||
}
|
||||
|
||||
// update keylog
|
||||
snprintf(keylog_str, sizeof(keylog_str), "%dx%d, k%2d : %c",
|
||||
record->event.key.row, record->event.key.col,
|
||||
keycode, name);
|
||||
}
|
||||
|
||||
void oled_render_keylog(void) {
|
||||
oled_write(keylog_str, false);
|
||||
}
|
||||
|
||||
void render_bootmagic_status(bool status) {
|
||||
/* Show Ctrl-Gui Swap options */
|
||||
static const char PROGMEM logo[][2][3] = {
|
||||
{{0x97, 0x98, 0}, {0xb7, 0xb8, 0}},
|
||||
{{0x95, 0x96, 0}, {0xb5, 0xb6, 0}},
|
||||
};
|
||||
if (status) {
|
||||
oled_write_ln_P(logo[0][0], false);
|
||||
oled_write_ln_P(logo[0][1], false);
|
||||
} else {
|
||||
oled_write_ln_P(logo[1][0], false);
|
||||
oled_write_ln_P(logo[1][1], false);
|
||||
}
|
||||
}
|
||||
|
||||
void oled_render_logo(void) {
|
||||
static const char PROGMEM crkbd_logo[] = {
|
||||
0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94,
|
||||
0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4,
|
||||
0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4,
|
||||
0};
|
||||
oled_write_P(crkbd_logo, false);
|
||||
}
|
||||
|
||||
bool oled_task_user(void) {
|
||||
if (is_keyboard_master()) {
|
||||
oled_render_layer_state();
|
||||
oled_render_keylog();
|
||||
} else {
|
||||
oled_render_logo();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t* record) {
|
||||
if (!process_caps_word(keycode, record)) { return false; }
|
||||
// Your macros ...
|
||||
update_oneshot(
|
||||
&os_shft_state, KC_LSFT, OS_SHFT,
|
||||
keycode, record
|
||||
);
|
||||
|
||||
update_oneshot(
|
||||
&os_ctrl_state, KC_LCTL, OS_CTRL,
|
||||
keycode, record
|
||||
);
|
||||
|
||||
update_oneshot(
|
||||
&os_alt_state, KC_LALT, OS_ALT,
|
||||
keycode, record
|
||||
);
|
||||
|
||||
update_oneshot(
|
||||
&os_cmd_state, KC_LGUI, OS_GUI,
|
||||
keycode, record
|
||||
);
|
||||
if (record->event.pressed) {
|
||||
set_keylog(keycode, record);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
#endif
|
15
keyboards/crkbd/keymaps/cameronjlarsen/rules.mk
Normal file
15
keyboards/crkbd/keymaps/cameronjlarsen/rules.mk
Normal file
@@ -0,0 +1,15 @@
|
||||
BOOTMAGIC_ENABLE = no
|
||||
BOOLOADER = atmel-dfu
|
||||
OLED_ENABLE = yes
|
||||
OLED_DRIVER = SSD1306 # Enables the use of OLED displays
|
||||
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||
COMMAND_ENABLE = no # Disables the command feature
|
||||
COMBO_ENABLE = yes
|
||||
MOUSEKEY_ENABLE = no
|
||||
CONSOLE_ENABLE = no
|
||||
AUDIO_ENABLE = no
|
||||
MIDI_ENABLE = no
|
||||
BLUETOOTH_ENABLE = no
|
||||
BACKLIGHT_ENABLE = no
|
||||
CAPS_WORD_ENABLE = yes
|
||||
CUSTOM_ONESHOT_ENABLE = yes
|
66
keyboards/crowboard/info.json
Normal file
66
keyboards/crowboard/info.json
Normal file
@@ -0,0 +1,66 @@
|
||||
{
|
||||
"manufacturer": "KeyboardDweebs",
|
||||
"keyboard_name": "crowboard",
|
||||
"maintainer": "doesntfazer",
|
||||
"bootloader": "rp2040",
|
||||
"diode_direction": "COL2ROW",
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"mousekey": true,
|
||||
"extrakey": true,
|
||||
"nkro": true
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["GP6", "GP7", "GP8", "GP9", "GP10", "GP18", "GP19", "GP20", "GP21", "GP22"],
|
||||
"rows": ["GP14", "GP15", "GP16", "GP17"]
|
||||
},
|
||||
"processor": "RP2040",
|
||||
"url": "",
|
||||
"usb": {
|
||||
"device_version": "1.0.0",
|
||||
"pid": "0x0000",
|
||||
"vid": "0xFEED"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{ "matrix": [0, 0], "x": 0, "y": 0 },
|
||||
{ "matrix": [0, 1], "x": 1, "y": 0 },
|
||||
{ "matrix": [0, 2], "x": 2, "y": 0 },
|
||||
{ "matrix": [0, 3], "x": 3, "y": 0 },
|
||||
{ "matrix": [0, 4], "x": 4, "y": 0 },
|
||||
{ "matrix": [0, 5], "x": 5, "y": 0 },
|
||||
{ "matrix": [0, 6], "x": 6, "y": 0 },
|
||||
{ "matrix": [0, 7], "x": 7, "y": 0 },
|
||||
{ "matrix": [0, 8], "x": 8, "y": 0 },
|
||||
{ "matrix": [0, 9], "x": 9, "y": 0 },
|
||||
{ "matrix": [1, 0], "x": 0, "y": 1 },
|
||||
{ "matrix": [1, 1], "x": 1, "y": 1 },
|
||||
{ "matrix": [1, 2], "x": 2, "y": 1 },
|
||||
{ "matrix": [1, 3], "x": 3, "y": 1 },
|
||||
{ "matrix": [1, 4], "x": 4, "y": 1 },
|
||||
{ "matrix": [1, 5], "x": 5, "y": 1 },
|
||||
{ "matrix": [1, 6], "x": 6, "y": 1 },
|
||||
{ "matrix": [1, 7], "x": 7, "y": 1 },
|
||||
{ "matrix": [1, 8], "x": 8, "y": 1 },
|
||||
{ "matrix": [1, 9], "x": 9, "y": 1 },
|
||||
{ "matrix": [2, 0], "x": 0, "y": 2 },
|
||||
{ "matrix": [2, 1], "x": 1, "y": 2 },
|
||||
{ "matrix": [2, 2], "x": 2, "y": 2 },
|
||||
{ "matrix": [2, 3], "x": 3, "y": 2 },
|
||||
{ "matrix": [2, 4], "x": 4, "y": 2 },
|
||||
{ "matrix": [2, 5], "x": 5, "y": 2 },
|
||||
{ "matrix": [2, 6], "x": 6, "y": 2 },
|
||||
{ "matrix": [2, 7], "x": 7, "y": 2 },
|
||||
{ "matrix": [2, 8], "x": 8, "y": 2 },
|
||||
{ "matrix": [2, 9], "x": 9, "y": 2 },
|
||||
{ "matrix": [3, 2], "x": 2, "y": 3 },
|
||||
{ "matrix": [3, 3], "x": 3, "y": 3 },
|
||||
{ "matrix": [3, 4], "x": 4, "y": 3 },
|
||||
{ "matrix": [3, 5], "x": 5, "y": 3 },
|
||||
{ "matrix": [3, 6], "x": 6, "y": 3 },
|
||||
{ "matrix": [3, 7], "x": 7, "y": 3 }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
6
keyboards/crowboard/keymaps/default/config.h
Normal file
6
keyboards/crowboard/keymaps/default/config.h
Normal file
@@ -0,0 +1,6 @@
|
||||
// Copyright 2022 doesntfazer (@doesntfazer)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#define HOLD_ON_OTHER_KEY_PRESS_PER_KEY
|
60
keyboards/crowboard/keymaps/default/keymap.c
Normal file
60
keyboards/crowboard/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,60 @@
|
||||
// Copyright 2021 Keyboard Dweebs (@doesntfazer)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
#define CTLA LCTL(KC_A)
|
||||
#define CAE LCTL(LALT(KC_END))
|
||||
#define CAD LCTL(LALT(KC_DEL))
|
||||
|
||||
enum crow_layers {
|
||||
_QWERTY,
|
||||
_LOWER,
|
||||
_RAISE,
|
||||
_ADJUST,
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[_QWERTY] = LAYOUT (
|
||||
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
|
||||
LCTL_T(KC_A), KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT,
|
||||
LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, RSFT_T(KC_SLSH),
|
||||
KC_LCTL, TL_LOWR, KC_SPACE, KC_BSPC, TL_UPPR, KC_RALT
|
||||
),
|
||||
|
||||
[_LOWER] = LAYOUT (
|
||||
KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
|
||||
KC_TAB, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRNS, KC_MINUS, KC_EQUAL, KC_LBRC, KC_RBRC,
|
||||
KC_LCTL, KC_GRAVE, KC_LGUI, KC_LALT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BSLS, KC_SCLN,
|
||||
KC_TRNS, TL_LOWR, KC_TRNS, KC_ENTER, TL_UPPR, KC_TRNS
|
||||
),
|
||||
[_RAISE] = LAYOUT (
|
||||
KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN,
|
||||
KC_ESC, KC_DEL, CTLA, KC_TRNS, KC_TRNS, KC_TRNS, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR,
|
||||
KC_CAPS, KC_TILDE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PIPE, KC_COLN,
|
||||
KC_TRNS, TL_LOWR, KC_TRNS, KC_TRNS, TL_UPPR, KC_TRNS
|
||||
),
|
||||
[_ADJUST] = LAYOUT (
|
||||
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
|
||||
KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, CAD, CAE, CAD, CAD,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
};
|
||||
|
||||
|
||||
bool get_hold_on_other_key_press(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
case LCTL_T(KC_A):
|
||||
// Do not force the mod-tap key press to be handled as a modifier
|
||||
// if any other key was pressed while the mod-tap key is held down.
|
||||
return false;
|
||||
default:
|
||||
// Force the mod-tap key press to be handled as a modifier if any
|
||||
// other key was pressed while the mod-tap key is held down.
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
1
keyboards/crowboard/keymaps/default/rules.mk
Normal file
1
keyboards/crowboard/keymaps/default/rules.mk
Normal file
@@ -0,0 +1 @@
|
||||
TRI_LAYER_ENABLE = yes
|
28
keyboards/crowboard/readme.md
Normal file
28
keyboards/crowboard/readme.md
Normal file
@@ -0,0 +1,28 @@
|
||||
# crowboard
|
||||
|
||||

|
||||
|
||||
RP2040 based 36 key keyboard
|
||||
|
||||
* Keyboard Maintainer: [doesntfazer](https://github.com/doesntfazer)
|
||||
* Hardware Supported: Raspberry Pi Pico
|
||||
* Hardware Availability: keyboarddweebs.net
|
||||
|
||||
## Bootloader
|
||||
|
||||
Enter the bootloader in 2 ways:
|
||||
|
||||
* **Physical reset button**: Hold the button down on the raspberry pi pico while plugging it in. There is no reset button on the pcb.
|
||||
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make crowboard:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make crowboard:default:flash
|
||||
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||
|
||||
|
1
keyboards/crowboard/rules.mk
Normal file
1
keyboards/crowboard/rules.mk
Normal file
@@ -0,0 +1 @@
|
||||
PICO_INTRINSICS_ENABLED = no # ATM Unsupported by ChibiOS!
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
Copyright 2020 3araht
|
||||
Copyright 2023 3araht
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -36,16 +36,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
/* COL2ROW, ROW2COL */
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
|
||||
#define SELECT_SOFT_SERIAL_SPEED 1
|
||||
/*Sets the protocol speed when using serial communication*/
|
||||
//Speeds:
|
||||
//0: about 189kbps (Experimental only)
|
||||
//1: about 137kbps (default)
|
||||
//2: about 75kbps
|
||||
//3: about 39kbps
|
||||
//4: about 26kbps
|
||||
//5: about 20kbps
|
||||
|
||||
// Right side has to be the master since 1, LED data is output from right side, and 2, Audio pin is prepared on right side as a reserve.
|
||||
#define MASTER_RIGHT
|
||||
|
||||
@@ -227,3 +217,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
// #define NO_ACTION_TAPPING
|
||||
// NO_ACTION_ONESHOT -388 bytes
|
||||
#define NO_ACTION_ONESHOT
|
||||
/*
|
||||
* Encoder options
|
||||
*/
|
||||
#ifdef ENCODER_ENABLE
|
||||
# define ENCODER_RESOLUTIONS_RIGHT { 4 }
|
||||
#endif // ENCODER_ENABLE
|
||||
|
@@ -8,10 +8,22 @@
|
||||
"pid": "0xF4B0",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"features": {
|
||||
"midi": true,
|
||||
"extrakey": true,
|
||||
"encoder": true,
|
||||
"bootmagic": false,
|
||||
"console": false,
|
||||
"mousekey": false,
|
||||
"nkro": false,
|
||||
"rgblight": false,
|
||||
"audio": false
|
||||
},
|
||||
"encoder": {
|
||||
"rotary": []
|
||||
},
|
||||
"split": {
|
||||
"enabled": true,
|
||||
"soft_serial_pin": "D2",
|
||||
"encoder": {
|
||||
"right": {
|
||||
|
@@ -1,3 +1,19 @@
|
||||
/*
|
||||
Copyright 2023 3araht
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General 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 USE_MATRIX_I2C
|
||||
|
@@ -58,17 +58,18 @@ user_config_t user_config;
|
||||
|
||||
// Defines names for use in layer keycodes and the keymap
|
||||
enum layer_names {
|
||||
_C_SYSTEM_BASE, // MIDI C-system
|
||||
_FAKE_B_SYSTEM, // MIDI fake B-system doesn't have correct assignments on top two rows. The bottom 3 rows are B-system.
|
||||
_C_SYSTEM_BASS2ROW, // counter bass system
|
||||
_C_SYSTEM_ENTIRELY, // single notes for both left and right keybaords.
|
||||
_C_SYSTEM_FREEBASS, // C-system Free Bass
|
||||
_C_SYSTEM_BASE, // MIDI C-system
|
||||
_FAKE_B_SYSTEM, // MIDI fake B-system doesn't have correct assignments on top two rows. The bottom 3 rows are B-system.
|
||||
_C_SYSTEM_BASS2ROW, // counter bass system
|
||||
_FAKE_B_SYSTEM_BASS2ROW, // MIDI fake B-system doesn't have correct assignments on top two rows. The bottom 3 rows are B-system. Counter bass version.
|
||||
_C_SYSTEM_ENTIRELY, // single notes for both left and right keybaords.
|
||||
_C_SYSTEM_FREEBASS, // C-system Free Bass
|
||||
_CHROMATONE,
|
||||
_CFLIP_BASS2ROW, // 180 degree flipped layout on right side keyboard
|
||||
_CFLIP_BASS2ROW, // 180 degree flipped layout on right side keyboard
|
||||
_QWERTY,
|
||||
_COLEMAK,
|
||||
_ADJUST, // for Fn keys, etc.
|
||||
_FN // for changing layers, octaves, etc.
|
||||
_ADJUST, // for Fn keys, etc.
|
||||
_FN // for changing layers, octaves, etc.
|
||||
};
|
||||
|
||||
// Defines the keycodes used by our macros in process_record_user
|
||||
@@ -181,6 +182,7 @@ enum custom_keycodes {
|
||||
CSYSTEM, // C-SYSTEM layout
|
||||
BSYSTEM, // B-SYSTEM layout
|
||||
CNTBASC, // CouNTer BASs C-system layout
|
||||
CNTBASB, // CouNTer BASs B-system layout
|
||||
CSYSALL, // C-SYStem ALL layout
|
||||
CSYSFBS, // C-SYStem Free BaSs
|
||||
CHRTONE, // CHRomaTONE layout
|
||||
@@ -240,6 +242,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
MI_A2, MI_C3, MI_Eb3, MI_Fs3, MI_A3, MI_C4, MI_Eb4, MI_Fs4, MI_A4, MI_C5, MI_Eb5, MI_Fs5
|
||||
),
|
||||
|
||||
/* fake B-system */
|
||||
[_FAKE_B_SYSTEM_BASS2ROW] = LAYOUT(
|
||||
MI_CH_Fr, MI_CH_Cr, MI_CH_Gr, MI_CH_Dr, MI_CH_Ar, MI_CH_Er, MI_CH_Br, MI_CH_Fsr, MI_CH_Csr, MI_CH_Gsr, MI_CH_Dsr, MI_CH_Asr,
|
||||
MI_CH_Dbr, MI_CH_Abr, MI_CH_Ebr, MI_CH_Bbr, MI_CH_Fr, MI_CH_Cr, MI_CH_Gr, MI_CH_Dr, MI_CH_Ar, MI_CH_Er, MI_CH_Br, MI_CH_Fsr,
|
||||
MI_CH_Db, MI_CH_Ab, MI_CH_Eb, MI_CH_Bb, MI_CH_F, MI_CH_C, MI_CH_G, MI_CH_D, MI_CH_A, MI_CH_E, MI_CH_B, MI_CH_Fs,
|
||||
MI_CH_Dbm, MI_CH_Abm, MI_CH_Ebm, MI_CH_Bbm, MI_CH_Fm, MI_CH_Cm, MI_CH_Gm, MI_CH_Dm, MI_CH_Am, MI_CH_Em, MI_CH_Bm, MI_CH_Fsm,
|
||||
MI_CH_DbDom7, MI_CH_AbDom7, MI_CH_EbDom7, MI_CH_BbDom7, MI_CH_FDom7, MI_CH_CDom7, MI_CH_GDom7, MI_CH_DDom7, MI_CH_ADom7, MI_CH_EDom7, MI_CH_BDom7, MI_CH_FsDom7,
|
||||
|
||||
MI_Ab2,
|
||||
MI_A2, MI_C3, MI_Eb3, MI_Gb3, MI_A3, MI_C4, MI_Eb4, MI_Gb4, MI_A4, MI_C5, MI_Eb5, MI_Gb5, _______,
|
||||
MI_G2, MI_Bb2, MI_Db3, MI_E3, MI_G3, MI_Bb3, MI_Db4, MI_E4, MI_G4, MI_Bb4, MI_Db5, MI_E5, MI_G5,
|
||||
MI_Ab2, MI_B2, MI_D3, MI_F3, MI_Ab3, MI_B3, MI_D4, MI_F4, MI_Ab4, MI_B4, MI_D5, MI_F5
|
||||
),
|
||||
|
||||
/* C-system entirely */
|
||||
[_C_SYSTEM_ENTIRELY] = LAYOUT(
|
||||
MI_BNDU, XXXXXXX, XXXXXXX, MI_Db, MI_E, MI_G, MI_Bb, MI_Db1, MI_E1, MI_G1, MI_Bb1, MI_Db2,
|
||||
@@ -340,7 +356,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
/* Fn */
|
||||
[_FN] = LAYOUT(
|
||||
CSYSTEM, BSYSTEM, CNTBASC, CSYSALL, CHRTONE, CFLIP2B, CSYSFBS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG,
|
||||
CSYSTEM, BSYSTEM, CNTBASC, CSYSALL, CHRTONE, CFLIP2B, CSYSFBS, CNTBASB, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG,
|
||||
DF_QWER, TGLBASS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
DF_COLE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, TGLMICH,
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
@@ -348,24 +364,25 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
XXXXXXX,
|
||||
MI_OCN2, MI_OCN1, MI_OC0, MI_OC1, MI_OC2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, VERSION, EE_CLR, _______,
|
||||
CSYSTEM, BSYSTEM, CNTBASC, CSYSALL, CHRTONE, CFLIP2B, CSYSFBS, XXXXXXX, XXXXXXX, MI_VELD, MI_VELU, XXXXXXX, RGB_TOG,
|
||||
CSYSTEM, BSYSTEM, CNTBASC, CSYSALL, CHRTONE, CFLIP2B, CSYSFBS, CNTBASB, XXXXXXX, MI_VELD, MI_VELU, XXXXXXX, RGB_TOG,
|
||||
XXXXXXX, TGLBASS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, TGLUVEL, MELDYAL, MELODYS, MELDYAH
|
||||
)
|
||||
};
|
||||
|
||||
#if defined(ENCODER_MAP_ENABLE)
|
||||
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
|
||||
[_C_SYSTEM_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
|
||||
[_FAKE_B_SYSTEM] = { ENCODER_CCW_CW(_______, _______) },
|
||||
[_C_SYSTEM_BASS2ROW] = { ENCODER_CCW_CW(_______, _______) },
|
||||
[_C_SYSTEM_ENTIRELY] = { ENCODER_CCW_CW(_______, _______) },
|
||||
[_C_SYSTEM_FREEBASS] = { ENCODER_CCW_CW(_______, _______) },
|
||||
[_CHROMATONE] = { ENCODER_CCW_CW(_______, _______) },
|
||||
[_CFLIP_BASS2ROW] = { ENCODER_CCW_CW(_______, _______) },
|
||||
[_QWERTY] = { ENCODER_CCW_CW(_______, _______) },
|
||||
[_COLEMAK] = { ENCODER_CCW_CW(_______, _______) },
|
||||
[_ADJUST] = { ENCODER_CCW_CW(_______, _______) },
|
||||
[_FN] = { ENCODER_CCW_CW(_______, _______) },
|
||||
[_C_SYSTEM_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
|
||||
[_FAKE_B_SYSTEM] = { ENCODER_CCW_CW(_______, _______) },
|
||||
[_C_SYSTEM_BASS2ROW] = { ENCODER_CCW_CW(_______, _______) },
|
||||
[_FAKE_B_SYSTEM_BASS2ROW] = { ENCODER_CCW_CW(_______, _______) },
|
||||
[_C_SYSTEM_ENTIRELY] = { ENCODER_CCW_CW(_______, _______) },
|
||||
[_C_SYSTEM_FREEBASS] = { ENCODER_CCW_CW(_______, _______) },
|
||||
[_CHROMATONE] = { ENCODER_CCW_CW(_______, _______) },
|
||||
[_CFLIP_BASS2ROW] = { ENCODER_CCW_CW(_______, _______) },
|
||||
[_QWERTY] = { ENCODER_CCW_CW(_______, _______) },
|
||||
[_COLEMAK] = { ENCODER_CCW_CW(_______, _______) },
|
||||
[_ADJUST] = { ENCODER_CCW_CW(_______, _______) },
|
||||
[_FN] = { ENCODER_CCW_CW(_______, _______) },
|
||||
};
|
||||
#endif
|
||||
|
||||
@@ -383,7 +400,7 @@ const rgblight_segment_t PROGMEM my_adjust_layer[] = RGBLIGHT_LAYER_SEGMENTS({1,
|
||||
|
||||
// Light up fn layer keys
|
||||
const rgblight_segment_t PROGMEM my_fn_layer[] = RGBLIGHT_LAYER_SEGMENTS( // left keyboard
|
||||
{0, 7, HSV_ORANGE}, // MIDI layouts
|
||||
{0, 8, HSV_ORANGE}, // MIDI layouts
|
||||
{11, 1, HSV_RED}, // RGB_TOG
|
||||
{12, 1, HSV_WHITE}, // DF_QWER
|
||||
{13, 1, HSV_CORAL}, // TGLBASS
|
||||
@@ -410,15 +427,16 @@ const rgblight_segment_t PROGMEM my_fn_layer[] = RGBLIGHT_LAYER_SEGMENTS(
|
||||
{53, 1, HSV_PINK},
|
||||
#endif
|
||||
// right keyboard
|
||||
{60, 7, HSV_ORANGE}, // MIDI layouts
|
||||
{60, 8, HSV_ORANGE}, // MIDI layouts
|
||||
{74, 1, HSV_CORAL}, // TGLBASS
|
||||
{85, 1, HSV_BLUE}, // MIDI Oct
|
||||
{86, 1, HSV_CYAN}, // MIDI Oct
|
||||
{87, 1, HSV_SPRINGGREEN}, // MIDI Oct
|
||||
{88, 1, HSV_GREEN}, // MIDI Oct
|
||||
{89, 1, HSV_CHARTREUSE}, // MIDI Oct
|
||||
{95, 1, HSV_GOLD}, // VERSION
|
||||
{96, 1, HSV_PINK}, // EE_CLR
|
||||
{98, 7, HSV_ORANGE}, // MIDI layouts
|
||||
{98, 8, HSV_ORANGE}, // MIDI layouts
|
||||
{107, 1, HSV_YELLOW}, // MI_VELD
|
||||
{108, 1, HSV_GREEN}, // MI_VELU
|
||||
{110, 1, HSV_RED}, // RGB_TOG
|
||||
@@ -530,6 +548,7 @@ void switch_keylight_color4bass(keyrecord_t *record, uint8_t keylocation){
|
||||
keylight_manager(record, HSV_ORANGE, keylocation);
|
||||
break;
|
||||
case _C_SYSTEM_BASS2ROW:
|
||||
case _FAKE_B_SYSTEM_BASS2ROW:
|
||||
keylight_manager(record, HSV_YELLOW, keylocation);
|
||||
break;
|
||||
case _CFLIP_BASS2ROW:
|
||||
@@ -546,6 +565,7 @@ void switch_keylight_color4chords(keyrecord_t *record, uint8_t keylocation){
|
||||
keylight_manager(record, HSV_YELLOW, keylocation);
|
||||
break;
|
||||
case _C_SYSTEM_BASS2ROW:
|
||||
case _FAKE_B_SYSTEM_BASS2ROW:
|
||||
keylight_manager(record, HSV_GOLDENROD, keylocation);
|
||||
break;
|
||||
case _CFLIP_BASS2ROW:
|
||||
@@ -596,6 +616,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
}
|
||||
break;
|
||||
|
||||
case CNTBASB:
|
||||
if (record->event.pressed) {
|
||||
set_single_persistent_default_layer(_FAKE_B_SYSTEM_BASS2ROW);
|
||||
}
|
||||
break;
|
||||
|
||||
case CSYSALL:
|
||||
if (record->event.pressed) {
|
||||
set_single_persistent_default_layer(_C_SYSTEM_ENTIRELY);
|
||||
|
@@ -1,3 +1,19 @@
|
||||
/*
|
||||
Copyright 2023 3araht
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General 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 GIABARINAIX2
|
||||
|
@@ -1,3 +1,19 @@
|
||||
/*
|
||||
Copyright 2023 3araht
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General 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 GIABARINAIX2
|
||||
|
@@ -58,17 +58,18 @@ user_config_t user_config;
|
||||
|
||||
// Defines names for use in layer keycodes and the keymap
|
||||
enum layer_names {
|
||||
_C_SYSTEM_BASE, // MIDI C-system
|
||||
_FAKE_B_SYSTEM, // MIDI fake B-system doesn't have correct assignments on top two rows. The bottom 3 rows are B-system.
|
||||
_C_SYSTEM_BASS2ROW, // counter bass system
|
||||
_C_SYSTEM_ENTIRELY, // single notes for both left and right keybaords.
|
||||
_C_SYSTEM_FREEBASS, // C-system Free Bass
|
||||
_C_SYSTEM_BASE, // MIDI C-system
|
||||
_FAKE_B_SYSTEM, // MIDI fake B-system doesn't have correct assignments on top two rows. The bottom 3 rows are B-system.
|
||||
_C_SYSTEM_BASS2ROW, // counter bass system
|
||||
_FAKE_B_SYSTEM_BASS2ROW, // MIDI fake B-system doesn't have correct assignments on top two rows. The bottom 3 rows are B-system. Counter bass version.
|
||||
_C_SYSTEM_ENTIRELY, // single notes for both left and right keybaords.
|
||||
_C_SYSTEM_FREEBASS, // C-system Free Bass
|
||||
_CHROMATONE,
|
||||
_CFLIP_BASS2ROW, // 180 degree flipped layout on right side keyboard
|
||||
_CFLIP_BASS2ROW, // 180 degree flipped layout on right side keyboard
|
||||
_QWERTY,
|
||||
_COLEMAK,
|
||||
_ADJUST, // for Fn keys, etc.
|
||||
_FN // for changing layers, octaves, etc.
|
||||
_ADJUST, // for Fn keys, etc.
|
||||
_FN // for changing layers, octaves, etc.
|
||||
};
|
||||
|
||||
// Defines the keycodes used by our macros in process_record_user
|
||||
@@ -181,6 +182,7 @@ enum custom_keycodes {
|
||||
CSYSTEM, // C-SYSTEM layout
|
||||
BSYSTEM, // B-SYSTEM layout
|
||||
CNTBASC, // CouNTer BASs C-system layout
|
||||
CNTBASB, // CouNTer BASs B-system layout
|
||||
CSYSALL, // C-SYStem ALL layout
|
||||
CSYSFBS, // C-SYStem Free BaSs
|
||||
CHRTONE, // CHRomaTONE layout
|
||||
@@ -240,6 +242,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
MI_A2, MI_C3, MI_Eb3, MI_Fs3, MI_A3, MI_C4, MI_Eb4, MI_Fs4, MI_A4, MI_C5, MI_Eb5, MI_Fs5
|
||||
),
|
||||
|
||||
/* fake B-system */
|
||||
[_FAKE_B_SYSTEM_BASS2ROW] = LAYOUT(
|
||||
MI_CH_Fr, MI_CH_Cr, MI_CH_Gr, MI_CH_Dr, MI_CH_Ar, MI_CH_Er, MI_CH_Br, MI_CH_Fsr, MI_CH_Csr, MI_CH_Gsr, MI_CH_Dsr, MI_CH_Asr,
|
||||
MI_CH_Dbr, MI_CH_Abr, MI_CH_Ebr, MI_CH_Bbr, MI_CH_Fr, MI_CH_Cr, MI_CH_Gr, MI_CH_Dr, MI_CH_Ar, MI_CH_Er, MI_CH_Br, MI_CH_Fsr,
|
||||
MI_CH_Db, MI_CH_Ab, MI_CH_Eb, MI_CH_Bb, MI_CH_F, MI_CH_C, MI_CH_G, MI_CH_D, MI_CH_A, MI_CH_E, MI_CH_B, MI_CH_Fs,
|
||||
MI_CH_Dbm, MI_CH_Abm, MI_CH_Ebm, MI_CH_Bbm, MI_CH_Fm, MI_CH_Cm, MI_CH_Gm, MI_CH_Dm, MI_CH_Am, MI_CH_Em, MI_CH_Bm, MI_CH_Fsm,
|
||||
MI_CH_DbDom7, MI_CH_AbDom7, MI_CH_EbDom7, MI_CH_BbDom7, MI_CH_FDom7, MI_CH_CDom7, MI_CH_GDom7, MI_CH_DDom7, MI_CH_ADom7, MI_CH_EDom7, MI_CH_BDom7, MI_CH_FsDom7,
|
||||
|
||||
MI_Ab2,
|
||||
MI_A2, MI_C3, MI_Eb3, MI_Gb3, MI_A3, MI_C4, MI_Eb4, MI_Gb4, MI_A4, MI_C5, MI_Eb5, MI_Gb5, _______,
|
||||
MI_G2, MI_Bb2, MI_Db3, MI_E3, MI_G3, MI_Bb3, MI_Db4, MI_E4, MI_G4, MI_Bb4, MI_Db5, MI_E5, MI_G5,
|
||||
MI_Ab2, MI_B2, MI_D3, MI_F3, MI_Ab3, MI_B3, MI_D4, MI_F4, MI_Ab4, MI_B4, MI_D5, MI_F5
|
||||
),
|
||||
|
||||
/* C-system entirely */
|
||||
[_C_SYSTEM_ENTIRELY] = LAYOUT(
|
||||
MI_BNDU, XXXXXXX, XXXXXXX, MI_Db, MI_E, MI_G, MI_Bb, MI_Db1, MI_E1, MI_G1, MI_Bb1, MI_Db2,
|
||||
@@ -340,7 +356,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
/* Fn */
|
||||
[_FN] = LAYOUT(
|
||||
CSYSTEM, BSYSTEM, CNTBASC, CSYSALL, CHRTONE, CFLIP2B, CSYSFBS, XXXXXXX, XXXXXXX, XXXXXXX, RGB_MOD, RGB_TOG,
|
||||
CSYSTEM, BSYSTEM, CNTBASC, CSYSALL, CHRTONE, CFLIP2B, CSYSFBS, CNTBASB, XXXXXXX, XXXXXXX, RGB_MOD, RGB_TOG,
|
||||
DF_QWER, TGLBASS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
DF_COLE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, TGLMICH,
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
@@ -348,24 +364,25 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
XXXXXXX,
|
||||
MI_OCN2, MI_OCN1, MI_OC0, MI_OC1, MI_OC2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, VERSION, EE_CLR, _______,
|
||||
CSYSTEM, BSYSTEM, CNTBASC, CSYSALL, CHRTONE, CFLIP2B, CSYSFBS, XXXXXXX, XXXXXXX, MI_VELD, MI_VELU, RGB_MOD, RGB_TOG,
|
||||
CSYSTEM, BSYSTEM, CNTBASC, CSYSALL, CHRTONE, CFLIP2B, CSYSFBS, CNTBASB, XXXXXXX, MI_VELD, MI_VELU, RGB_MOD, RGB_TOG,
|
||||
XXXXXXX, TGLBASS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, TGLUVEL, MELDYAL, MELODYS, MELDYAH
|
||||
)
|
||||
};
|
||||
|
||||
#if defined(ENCODER_MAP_ENABLE)
|
||||
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
|
||||
[_C_SYSTEM_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
|
||||
[_FAKE_B_SYSTEM] = { ENCODER_CCW_CW(_______, _______) },
|
||||
[_C_SYSTEM_BASS2ROW] = { ENCODER_CCW_CW(_______, _______) },
|
||||
[_C_SYSTEM_ENTIRELY] = { ENCODER_CCW_CW(_______, _______) },
|
||||
[_C_SYSTEM_FREEBASS] = { ENCODER_CCW_CW(_______, _______) },
|
||||
[_CHROMATONE] = { ENCODER_CCW_CW(_______, _______) },
|
||||
[_CFLIP_BASS2ROW] = { ENCODER_CCW_CW(_______, _______) },
|
||||
[_QWERTY] = { ENCODER_CCW_CW(_______, _______) },
|
||||
[_COLEMAK] = { ENCODER_CCW_CW(_______, _______) },
|
||||
[_ADJUST] = { ENCODER_CCW_CW(_______, _______) },
|
||||
[_FN] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD) },
|
||||
[_C_SYSTEM_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
|
||||
[_FAKE_B_SYSTEM] = { ENCODER_CCW_CW(_______, _______) },
|
||||
[_C_SYSTEM_BASS2ROW] = { ENCODER_CCW_CW(_______, _______) },
|
||||
[_FAKE_B_SYSTEM_BASS2ROW] = { ENCODER_CCW_CW(_______, _______) },
|
||||
[_C_SYSTEM_ENTIRELY] = { ENCODER_CCW_CW(_______, _______) },
|
||||
[_C_SYSTEM_FREEBASS] = { ENCODER_CCW_CW(_______, _______) },
|
||||
[_CHROMATONE] = { ENCODER_CCW_CW(_______, _______) },
|
||||
[_CFLIP_BASS2ROW] = { ENCODER_CCW_CW(_______, _______) },
|
||||
[_QWERTY] = { ENCODER_CCW_CW(_______, _______) },
|
||||
[_COLEMAK] = { ENCODER_CCW_CW(_______, _______) },
|
||||
[_ADJUST] = { ENCODER_CCW_CW(_______, _______) },
|
||||
[_FN] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD) },
|
||||
};
|
||||
#endif
|
||||
|
||||
@@ -383,7 +400,7 @@ const rgblight_segment_t PROGMEM my_adjust_layer[] = RGBLIGHT_LAYER_SEGMENTS({1,
|
||||
|
||||
// Light up fn layer keys
|
||||
const rgblight_segment_t PROGMEM my_fn_layer[] = RGBLIGHT_LAYER_SEGMENTS( // left keyboard
|
||||
{0, 7, HSV_ORANGE}, // MIDI layouts
|
||||
{0, 8, HSV_ORANGE}, // MIDI layouts
|
||||
{11, 1, HSV_RED}, // RGB_TOG
|
||||
{12, 1, HSV_WHITE}, // DF_QWER
|
||||
{13, 1, HSV_CORAL}, // TGLBASS
|
||||
@@ -410,15 +427,16 @@ const rgblight_segment_t PROGMEM my_fn_layer[] = RGBLIGHT_LAYER_SEGMENTS(
|
||||
{53, 1, HSV_PINK},
|
||||
#endif
|
||||
// right keyboard
|
||||
{60, 7, HSV_ORANGE}, // MIDI layouts
|
||||
{60, 8, HSV_ORANGE}, // MIDI layouts
|
||||
{74, 1, HSV_CORAL}, // TGLBASS
|
||||
{85, 1, HSV_BLUE}, // MIDI Oct
|
||||
{86, 1, HSV_CYAN}, // MIDI Oct
|
||||
{87, 1, HSV_SPRINGGREEN}, // MIDI Oct
|
||||
{88, 1, HSV_GREEN}, // MIDI Oct
|
||||
{89, 1, HSV_CHARTREUSE}, // MIDI Oct
|
||||
{95, 1, HSV_GOLD}, // VERSION
|
||||
{96, 1, HSV_PINK}, // EE_CLR
|
||||
{98, 7, HSV_ORANGE}, // MIDI layouts
|
||||
{98, 8, HSV_ORANGE}, // MIDI layouts
|
||||
{107, 1, HSV_YELLOW}, // MI_VELD
|
||||
{108, 1, HSV_GREEN}, // MI_VELU
|
||||
{110, 1, HSV_RED}, // RGB_TOG
|
||||
@@ -490,7 +508,7 @@ bool rgb_matrix_indicators_user(void) {
|
||||
// rgb_matrix_set_color(72, RGB_DARKORANGE);
|
||||
break;
|
||||
case _FN:
|
||||
for (i = 0;i < 7;i++) {
|
||||
for (i = 0;i < 8;i++) {
|
||||
rgb_matrix_set_color(74 - i, RGB_DARKORANGE); // MIDI layouts
|
||||
// right keyboard
|
||||
rgb_matrix_set_color(i, RGB_DARKORANGE); // MIDI layouts
|
||||
@@ -512,6 +530,7 @@ bool rgb_matrix_indicators_user(void) {
|
||||
rgb_matrix_set_color(28, RGB_DARKSPRINGGREEN); // MIDI Oct
|
||||
rgb_matrix_set_color(29, RGB_DARKGREEN); // MIDI Oct
|
||||
rgb_matrix_set_color(30, RGB_DARKCHARTREUSE); // MIDI Oct
|
||||
rgb_matrix_set_color(36, RGB_DARKGOLD); // VERSION
|
||||
rgb_matrix_set_color(37, RGB_DARKPINK); // EE_CLR
|
||||
rgb_matrix_set_color(41, RGB_DARKYELLOW); // MI_VELD
|
||||
rgb_matrix_set_color(40, RGB_DARKGREEN); // MI_VELU
|
||||
@@ -645,6 +664,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
}
|
||||
break;
|
||||
|
||||
case CNTBASB:
|
||||
if (record->event.pressed) {
|
||||
set_single_persistent_default_layer(_FAKE_B_SYSTEM_BASS2ROW);
|
||||
}
|
||||
break;
|
||||
|
||||
case CSYSALL:
|
||||
if (record->event.pressed) {
|
||||
set_single_persistent_default_layer(_C_SYSTEM_ENTIRELY);
|
||||
|
@@ -1,3 +1,19 @@
|
||||
/*
|
||||
Copyright 2023 3araht
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General 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 DYNAMIC_KEYMAP_LAYER_COUNT 3
|
||||
|
@@ -1,18 +1,8 @@
|
||||
# Build Options
|
||||
# change yes to no to disable
|
||||
#
|
||||
BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
|
||||
MOUSEKEY_ENABLE = no # Mouse keys
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||
CONSOLE_ENABLE = no # Console for debug
|
||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
NKRO_ENABLE = no # Enable N-Key Rollover
|
||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||
AUDIO_ENABLE = no # Audio output
|
||||
MIDI_ENABLE = yes # MIDI support
|
||||
ENCODER_ENABLE = yes # encoder on mute button
|
||||
SPLIT_KEYBOARD = yes # Enables split keyboard support
|
||||
# RGB_MATRIX_ENABLE is not suitable for giabalanai keyboard on the right side (there are dulpicate keys).
|
||||
RGB_MATRIX_ENABLE = no # Use RGB matrix (Don't enable this when RGBLIGHT_ENABLE is used.)
|
||||
RGB_MATRIX_DRIVER = WS2812 # 2021/01/23 added.
|
||||
|
@@ -19,7 +19,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
char buffer[50];
|
||||
sprintf(buffer, "ADC:%u\n", val);
|
||||
#ifdef CONSOLE_ENABLE
|
||||
printf(buffer);
|
||||
uprintf("%s", buffer);
|
||||
#else
|
||||
send_string(buffer);
|
||||
#endif
|
||||
|
@@ -17,7 +17,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
char buffer[100];
|
||||
sprintf(buffer, "ID:%lu:%lu:%lu:%lu\n", id.data[0], id.data[1], id.data[2], id.data[3]);
|
||||
#ifdef CONSOLE_ENABLE
|
||||
printf(buffer);
|
||||
uprintf("%s", buffer);
|
||||
#else
|
||||
send_string(buffer);
|
||||
#endif
|
||||
|
2561
keyboards/ibm/model_m_4th_gen/info.json
Normal file
2561
keyboards/ibm/model_m_4th_gen/info.json
Normal file
File diff suppressed because it is too large
Load Diff
@@ -15,42 +15,17 @@
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#define DEF_SERIAL_NUMBER "purdea.ro:overnumpad_controller"
|
||||
|
||||
#define SERIAL_NUMBER "purdea.ro:overnumpad_controller"
|
||||
|
||||
/*
|
||||
* Keyboard Matrix Assignments
|
||||
*
|
||||
* Change this to how you wired your keyboard
|
||||
* COLS: AVR pins used for columns, left to right
|
||||
* ROWS: AVR pins used for rows, top to bottom
|
||||
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
|
||||
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
|
||||
*
|
||||
*/
|
||||
|
||||
// All pins in order from left-to-right, as seen on the keyboard:
|
||||
// C3, C2, C1, C0, A3, A4, A5, A6, A7, C4, C5, B0, B1, B10, B12, B13, B14, B15, C6, C7, C8, C9, A8, A9, A10,
|
||||
// On this chip A10, B10 have stronger pull-ups, so it's better to avoid them if possible.
|
||||
|
||||
// On this keyboard the right-most pin is not used, A10 can be ignored.
|
||||
// On this keyboard the pins are ordered in the following way: (top/bottom meaning where the trace is routed on the membranes)
|
||||
// top, top, top, top, top, top, top, top, bottom, top, bottom, top, bottom, top, bottom, top, bottom, bottom, top, top, top, top, bottom, bottom
|
||||
|
||||
#define MATRIX_COL_PINS { C3, C2, C1, C0, A3, A4, A5, A6, C4, B0, B10, B13, C6, C7, C8, C9 }
|
||||
#define MATRIX_ROW_PINS { A7, C5, B1, B12, B14, B15, A8, A9 }
|
||||
|
||||
/* COL2ROW, ROW2COL*/
|
||||
#define DIODE_DIRECTION ROW2COL
|
||||
|
||||
/* define if matrix has ghost (lacks anti-ghosting diodes) */
|
||||
#define MATRIX_HAS_GHOST
|
||||
#ifndef SERIAL_NUMBER
|
||||
#define SERIAL_NUMBER DEF_SERIAL_NUMBER
|
||||
#endif
|
||||
|
||||
#define STM32_HSECLK 16000000
|
||||
|
||||
#define SOLENOID_PIN B5
|
||||
#define HAPTIC_ENABLE_PIN C13
|
||||
#define SOLENOID_DEFAULT_DWELL 4
|
||||
#define SOLENOID_DEFAULT_DWELL 20
|
||||
#define SOLENOID_MIN_DWELL 4
|
||||
#define HAPTIC_OFF_IN_LOW_POWER 1
|
||||
#define NO_HAPTIC_MOD
|
||||
|
@@ -1,13 +1,8 @@
|
||||
{
|
||||
"keyboard_name": "IBM Model M (4th generation)",
|
||||
"keyboard_name": "IBM Model M (4th generation)",
|
||||
"manufacturer": "IBM/Purdea Andrei",
|
||||
"url": "https://github.com/purdeaandrei/overnumpad_controller_1xb",
|
||||
"maintainer": "purdeaandrei",
|
||||
"usb": {
|
||||
"vid": "0x16C0",
|
||||
"pid": "0x27DB",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"url": "https://github.com/purdeaandrei/overnumpad_controller_1xb",
|
||||
"maintainer": "purdeaandrei",
|
||||
"indicators": {
|
||||
"caps_lock": "C11",
|
||||
"num_lock": "C12",
|
||||
@@ -15,15 +10,12 @@
|
||||
},
|
||||
"processor": "STM32F446", // RET6
|
||||
"bootloader": "stm32-dfu",
|
||||
"layouts": {
|
||||
"LAYOUT_all": {
|
||||
"layout": [{"x":0, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6.5, "y":0}, {"x":7.5, "y":0}, {"x":8.5, "y":0}, {"x":9.5, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15.25, "y":0}, {"x":16.25, "y":0}, {"x":17.25, "y":0}, {"x":0, "y":1.5}, {"x":1, "y":1.5}, {"x":2, "y":1.5}, {"x":3, "y":1.5}, {"x":4, "y":1.5}, {"x":5, "y":1.5}, {"x":6, "y":1.5}, {"x":7, "y":1.5}, {"x":8, "y":1.5}, {"x":9, "y":1.5}, {"x":10, "y":1.5}, {"x":11, "y":1.5}, {"x":12, "y":1.5}, {"x":13, "y":1.5}, {"x":14, "y":1.5}, {"x":15.25, "y":1.5}, {"x":16.25, "y":1.5}, {"x":17.25, "y":1.5}, {"x":18.5, "y":1.5}, {"x":19.5, "y":1.5}, {"x":20.5, "y":1.5}, {"x":21.5, "y":1.5}, {"x":0, "y":2.5, "w":1.5}, {"x":1.5, "y":2.5}, {"x":2.5, "y":2.5}, {"x":3.5, "y":2.5}, {"x":4.5, "y":2.5}, {"x":5.5, "y":2.5}, {"x":6.5, "y":2.5}, {"x":7.5, "y":2.5}, {"x":8.5, "y":2.5}, {"x":9.5, "y":2.5}, {"x":10.5, "y":2.5}, {"x":11.5, "y":2.5}, {"x":12.5, "y":2.5}, {"x":13.5, "y":2.5, "w":1.5}, {"x":15.25, "y":2.5}, {"x":16.25, "y":2.5}, {"x":17.25, "y":2.5}, {"x":18.5, "y":2.5}, {"x":19.5, "y":2.5}, {"x":20.5, "y":2.5}, {"x":21.5, "y":2.5}, {"x":0, "y":3.5, "w":1.75}, {"x":1.75, "y":3.5}, {"x":2.75, "y":3.5}, {"x":3.75, "y":3.5}, {"x":4.75, "y":3.5}, {"x":5.75, "y":3.5}, {"x":6.75, "y":3.5}, {"x":7.75, "y":3.5}, {"x":8.75, "y":3.5}, {"x":9.75, "y":3.5}, {"x":10.75, "y":3.5}, {"x":11.75, "y":3.5}, {"x":12.75, "y":3.5}, {"x":13.75, "y":3.5, "w":1.25}, {"x":18.5, "y":3.5}, {"x":19.5, "y":3.5}, {"x":20.5, "y":3.5}, {"x":21.5, "y":3.5}, {"x":0, "y":4.5, "w":1.25}, {"x":1.25, "y":4.5}, {"x":2.25, "y":4.5}, {"x":3.25, "y":4.5}, {"x":4.25, "y":4.5}, {"x":5.25, "y":4.5}, {"x":6.25, "y":4.5}, {"x":7.25, "y":4.5}, {"x":8.25, "y":4.5}, {"x":9.25, "y":4.5}, {"x":10.25, "y":4.5}, {"x":11.25, "y":4.5}, {"x":12.25, "y":4.5}, {"x":13.25, "y":4.5, "w":1.75}, {"x":16.25, "y":4.5}, {"x":18.5, "y":4.5}, {"x":19.5, "y":4.5}, {"x":20.5, "y":4.5}, {"x":21.5, "y":4.5}, {"x":0, "y":5.5, "w":1.5}, {"x":2.5, "y":5.5, "w":1.5}, {"x":4, "y":5.5}, {"x":5, "y":5.5, "w":6}, {"x":11, "y":5.5, "w":1.5}, {"x":13.5, "y":5.5, "w":1.5}, {"x":15.25, "y":5.5}, {"x":16.25, "y":5.5}, {"x":17.25, "y":5.5}, {"x":18.5, "y":5.5}, {"x":19.5, "y":5.5}, {"x":20.5, "y":5.5}, {"x":21.5, "y":5.5}]
|
||||
},
|
||||
"LAYOUT_ansi": {
|
||||
"layout": [{"x":0, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6.5, "y":0}, {"x":7.5, "y":0}, {"x":8.5, "y":0}, {"x":9.5, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15.25, "y":0}, {"x":16.25, "y":0}, {"x":17.25, "y":0}, {"x":0, "y":1.5}, {"x":1, "y":1.5}, {"x":2, "y":1.5}, {"x":3, "y":1.5}, {"x":4, "y":1.5}, {"x":5, "y":1.5}, {"x":6, "y":1.5}, {"x":7, "y":1.5}, {"x":8, "y":1.5}, {"x":9, "y":1.5}, {"x":10, "y":1.5}, {"x":11, "y":1.5}, {"x":12, "y":1.5}, {"x":13, "y":1.5, "w":2}, {"x":15.25, "y":1.5}, {"x":16.25, "y":1.5}, {"x":17.25, "y":1.5}, {"x":18.5, "y":1.5}, {"x":19.5, "y":1.5}, {"x":20.5, "y":1.5}, {"x":21.5, "y":1.5}, {"x":0, "y":2.5, "w":1.5}, {"x":1.5, "y":2.5}, {"x":2.5, "y":2.5}, {"x":3.5, "y":2.5}, {"x":4.5, "y":2.5}, {"x":5.5, "y":2.5}, {"x":6.5, "y":2.5}, {"x":7.5, "y":2.5}, {"x":8.5, "y":2.5}, {"x":9.5, "y":2.5}, {"x":10.5, "y":2.5}, {"x":11.5, "y":2.5}, {"x":12.5, "y":2.5}, {"x":13.5, "y":2.5, "w":1.5}, {"x":15.25, "y":2.5}, {"x":16.25, "y":2.5}, {"x":17.25, "y":2.5}, {"x":18.5, "y":2.5}, {"x":19.5, "y":2.5}, {"x":20.5, "y":2.5}, {"x":21.5, "y":2.5, "h":2}, {"x":0, "y":3.5, "w":1.75}, {"x":1.75, "y":3.5}, {"x":2.75, "y":3.5}, {"x":3.75, "y":3.5}, {"x":4.75, "y":3.5}, {"x":5.75, "y":3.5}, {"x":6.75, "y":3.5}, {"x":7.75, "y":3.5}, {"x":8.75, "y":3.5}, {"x":9.75, "y":3.5}, {"x":10.75, "y":3.5}, {"x":11.75, "y":3.5}, {"x":12.75, "y":3.5, "w":2.25}, {"x":18.5, "y":3.5}, {"x":19.5, "y":3.5}, {"x":20.5, "y":3.5}, {"x":0, "y":4.5, "w":2.25}, {"x":2.25, "y":4.5}, {"x":3.25, "y":4.5}, {"x":4.25, "y":4.5}, {"x":5.25, "y":4.5}, {"x":6.25, "y":4.5}, {"x":7.25, "y":4.5}, {"x":8.25, "y":4.5}, {"x":9.25, "y":4.5}, {"x":10.25, "y":4.5}, {"x":11.25, "y":4.5}, {"x":12.25, "y":4.5, "w":2.75}, {"x":16.25, "y":4.5}, {"x":18.5, "y":4.5}, {"x":19.5, "y":4.5}, {"x":20.5, "y":4.5}, {"x":21.5, "y":4.5, "h":2}, {"x":0, "y":5.5, "w":1.5}, {"x":2.5, "y":5.5, "w":1.5}, {"x":4, "y":5.5, "w":7}, {"x":11, "y":5.5, "w":1.5}, {"x":13.5, "y":5.5, "w":1.5}, {"x":15.25, "y":5.5}, {"x":16.25, "y":5.5}, {"x":17.25, "y":5.5}, {"x":18.5, "y":5.5, "w":2}, {"x":20.5, "y":5.5}]
|
||||
},
|
||||
"LAYOUT_iso": {
|
||||
"layout": [{"x":0, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6.5, "y":0}, {"x":7.5, "y":0}, {"x":8.5, "y":0}, {"x":9.5, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15.25, "y":0}, {"x":16.25, "y":0}, {"x":17.25, "y":0}, {"x":0, "y":1.5}, {"x":1, "y":1.5}, {"x":2, "y":1.5}, {"x":3, "y":1.5}, {"x":4, "y":1.5}, {"x":5, "y":1.5}, {"x":6, "y":1.5}, {"x":7, "y":1.5}, {"x":8, "y":1.5}, {"x":9, "y":1.5}, {"x":10, "y":1.5}, {"x":11, "y":1.5}, {"x":12, "y":1.5}, {"x":13, "y":1.5, "w":2}, {"x":15.25, "y":1.5}, {"x":16.25, "y":1.5}, {"x":17.25, "y":1.5}, {"x":18.5, "y":1.5}, {"x":19.5, "y":1.5}, {"x":20.5, "y":1.5}, {"x":21.5, "y":1.5}, {"x":0, "y":2.5, "w":1.5}, {"x":1.5, "y":2.5}, {"x":2.5, "y":2.5}, {"x":3.5, "y":2.5}, {"x":4.5, "y":2.5}, {"x":5.5, "y":2.5}, {"x":6.5, "y":2.5}, {"x":7.5, "y":2.5}, {"x":8.5, "y":2.5}, {"x":9.5, "y":2.5}, {"x":10.5, "y":2.5}, {"x":11.5, "y":2.5}, {"x":12.5, "y":2.5}, {"x":13.75, "y":2.5, "w":1.25, "h":2}, {"x":15.25, "y":2.5}, {"x":16.25, "y":2.5}, {"x":17.25, "y":2.5}, {"x":18.5, "y":2.5}, {"x":19.5, "y":2.5}, {"x":20.5, "y":2.5}, {"x":21.5, "y":2.5, "h":2}, {"x":0, "y":3.5, "w":1.75}, {"x":1.75, "y":3.5}, {"x":2.75, "y":3.5}, {"x":3.75, "y":3.5}, {"x":4.75, "y":3.5}, {"x":5.75, "y":3.5}, {"x":6.75, "y":3.5}, {"x":7.75, "y":3.5}, {"x":8.75, "y":3.5}, {"x":9.75, "y":3.5}, {"x":10.75, "y":3.5}, {"x":11.75, "y":3.5}, {"x":12.75, "y":3.5}, {"x":18.5, "y":3.5}, {"x":19.5, "y":3.5}, {"x":20.5, "y":3.5}, {"x":0, "y":4.5, "w":1.25}, {"x":1.25, "y":4.5}, {"x":2.25, "y":4.5}, {"x":3.25, "y":4.5}, {"x":4.25, "y":4.5}, {"x":5.25, "y":4.5}, {"x":6.25, "y":4.5}, {"x":7.25, "y":4.5}, {"x":8.25, "y":4.5}, {"x":9.25, "y":4.5}, {"x":10.25, "y":4.5}, {"x":11.25, "y":4.5}, {"x":12.25, "y":4.5, "w":2.75}, {"x":16.25, "y":4.5}, {"x":18.5, "y":4.5}, {"x":19.5, "y":4.5}, {"x":20.5, "y":4.5}, {"x":21.5, "y":4.5, "h":2}, {"x":0, "y":5.5, "w":1.5}, {"x":2.5, "y":5.5, "w":1.5}, {"x":4, "y":5.5, "w":7}, {"x":11, "y":5.5, "w":1.5}, {"x":13.5, "y":5.5, "w":1.5}, {"x":15.25, "y":5.5}, {"x":16.25, "y":5.5}, {"x":17.25, "y":5.5}, {"x":18.5, "y":5.5, "w":2}, {"x":20.5, "y":5.5}]
|
||||
}
|
||||
"diode_direction": "ROW2COL",
|
||||
"matrix_pins": {
|
||||
// All pins in order from left-to-right, as seen on the keyboard:
|
||||
// C3, C2, C1, C0, A3, A4, A5, A6, A7, C4, C5, B0, B1, B10, B12, B13, B14, B15, C6, C7, C8, C9, A8, A9, A10,
|
||||
// On this keyboard columns and rows are staggered:
|
||||
"cols": ["C3", "C2", "C1", "C0", "A3", "A4", "A5", "A6", "C4", "B0", "B10", "B13", "C6", "C7", "C8", "C9"],
|
||||
"rows": ["A7", "C5", "B1", "B12", "B14", "B15", "A8", "A9"]
|
||||
}
|
||||
}
|
||||
|
@@ -1,91 +0,0 @@
|
||||
/* Copyright 2020 Purdea Andrei
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General 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
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
/* This is a shortcut to help you visually see your layout.
|
||||
*
|
||||
* The first section contains all of the arguments representing the physical
|
||||
* layout of the board and position of the keys.
|
||||
*
|
||||
* The second converts the arguments into a two-dimensional array which
|
||||
* represents the switch matrix.
|
||||
*/
|
||||
|
||||
|
||||
#define LAYOUT_all( \
|
||||
k_esc, k_f1, k_f2, k_f3, k_f4, k_f5, k_f6, k_f7, k_f8, k_f9, k_f10, k_f11, k_f12, k_prscr, k_scrl, k_pause, \
|
||||
k_tild, k_1, k_2, k_3, k_4, k_5, k_6, k_7, k_8, k_9, k_0, k_minus, k_equals, k_bsp_hidden, k_backspace, k_ins, k_home, k_pgup, kp_nl, kp_div, kp_mult, kp_minus, \
|
||||
k_tab, k_q, k_w, k_e, k_r, k_t, k_y, k_u, k_i, k_o, k_p, k_squarebrop, k_squarebrcl, k_backsl, k_del, k_end, k_pgdn, kp_7, kp_8, kp_9, kp_plus, \
|
||||
k_caps, k_a, k_s, k_d, k_f, k_g, k_h, k_j, k_k, k_l, k_semicolon, k_singlequote, k_nuhs,k_return, kp_4, kp_5, kp_6, kp_plus_hidden, \
|
||||
k_lshift,k_nubs,k_z, k_x, k_c, k_v, k_b, k_n, k_m, k_cm,k_period, k_fwslash, k_rshift_hidden, k_rshift, k_up, kp_1, kp_2, kp_3, kp_enter, \
|
||||
k_lctrl, k_lalt, k_code, k_space, k_ralt, k_rctrl, k_left, k_down, k_right, kp_0_hidden, kp_0, kp_dot, kp_enter_hidden \
|
||||
) \
|
||||
{ \
|
||||
/* 0 1 2 3 4 5 6 7 8 9 A B C D E F */ \
|
||||
/* 0 */ { k_esc, k_g, k_h, k_f6, KC_NO, k_singlequote, k_f5, KC_NO, kp_0_hidden, kp_0, kp_dot, k_up, k_lalt, KC_NO, k_f4, k_nubs }, \
|
||||
/* 1 */ { k_tab, k_t, k_y, k_squarebrcl, k_f7, k_squarebrop, k_backspace, k_lshift, kp_4, kp_5, kp_6, kp_plus_hidden, KC_NO, KC_NO, k_f3, k_caps }, \
|
||||
/* 2 */ { k_tild, k_5, k_6, k_equals, k_f8, k_minus, k_f9, KC_NO, k_del, k_ins, k_pgup, k_home, KC_NO, k_lctrl, k_f2, k_f1 }, \
|
||||
/* 3 */ { k_1, k_4, k_7, k_8, k_9, k_0, k_f10, KC_NO, k_f11, k_f12, k_pgdn, k_end, k_prscr, KC_NO, k_3, k_2 }, \
|
||||
/* 4 */ { k_q, k_r, k_u, k_i, k_o, k_p, k_bsp_hidden, KC_NO, kp_7, kp_8, kp_9, kp_plus, k_scrl, KC_NO, k_e, k_w }, \
|
||||
/* 5 */ { k_a, k_f, k_j, k_k, k_l, k_semicolon, k_backsl, KC_NO, kp_1, kp_2, kp_3, kp_enter, kp_enter_hidden, KC_NO, k_d, k_s }, \
|
||||
/* 6 */ { k_z, k_v, k_m, k_cm, k_period, k_nuhs, k_return, k_rshift, kp_nl, kp_div, kp_mult, k_pause, KC_NO, k_rctrl, k_c, k_x }, \
|
||||
/* 7 */ { KC_NO, k_b, k_n, k_rshift_hidden, KC_NO, k_fwslash, k_space, KC_NO, k_down, k_right, kp_minus, k_left, k_ralt, KC_NO, KC_NO, k_code } \
|
||||
}
|
||||
|
||||
// the following three key mappings are informed guesses, based on similarity of the gen4 membrane to previous-gen membranes: kp_plus, k_ins, kp_0_hidden
|
||||
|
||||
#define LAYOUT_ansi( \
|
||||
k_esc, k_f1, k_f2, k_f3, k_f4, k_f5, k_f6, k_f7, k_f8, k_f9, k_f10, k_f11, k_f12, k_prscr, k_scrl, k_pause, \
|
||||
k_tild, k_1, k_2, k_3, k_4, k_5, k_6, k_7, k_8, k_9, k_0, k_minus, k_equals, k_backspace, k_ins, k_home, k_pgup, kp_nl, kp_div, kp_mult, kp_minus, \
|
||||
k_tab, k_q, k_w, k_e, k_r, k_t, k_y, k_u, k_i, k_o, k_p, k_squarebrop, k_squarebrcl, k_backsl, k_del, k_end, k_pgdn, kp_7, kp_8, kp_9, kp_plus, \
|
||||
k_caps, k_a, k_s, k_d, k_f, k_g, k_h, k_j, k_k, k_l, k_semicolon, k_singlequote, k_return, kp_4, kp_5, kp_6, \
|
||||
k_lshift, k_z, k_x, k_c, k_v, k_b, k_n, k_m, k_cm,k_period, k_fwslash, k_rshift, k_up, kp_1, kp_2, kp_3, kp_enter, \
|
||||
k_lctrl, k_lalt, k_space, k_ralt, k_rctrl, k_left, k_down, k_right, kp_0, kp_dot \
|
||||
) \
|
||||
{ \
|
||||
/* 0 1 2 3 4 5 6 7 8 9 A B C D E F */ \
|
||||
/* 0 */ { k_esc, k_g, k_h, k_f6, KC_NO, k_singlequote, k_f5, KC_NO, KC_NO, kp_0, kp_dot, k_up, k_lalt, KC_NO, k_f4, KC_NO }, \
|
||||
/* 1 */ { k_tab, k_t, k_y, k_squarebrcl, k_f7, k_squarebrop, k_backspace, k_lshift, kp_4, kp_5, kp_6, KC_NO, KC_NO, KC_NO, k_f3, k_caps }, \
|
||||
/* 2 */ { k_tild, k_5, k_6, k_equals, k_f8, k_minus, k_f9, KC_NO, k_del, k_ins, k_pgup, k_home, KC_NO, k_lctrl, k_f2, k_f1 }, \
|
||||
/* 3 */ { k_1, k_4, k_7, k_8, k_9, k_0, k_f10, KC_NO, k_f11, k_f12, k_pgdn, k_end, k_prscr, KC_NO, k_3, k_2 }, \
|
||||
/* 4 */ { k_q, k_r, k_u, k_i, k_o, k_p, KC_NO, KC_NO, kp_7, kp_8, kp_9, kp_plus, k_scrl, KC_NO, k_e, k_w }, \
|
||||
/* 5 */ { k_a, k_f, k_j, k_k, k_l, k_semicolon, k_backsl, KC_NO, kp_1, kp_2, kp_3, kp_enter, KC_NO, KC_NO, k_d, k_s }, \
|
||||
/* 6 */ { k_z, k_v, k_m, k_cm, k_period, KC_NO, k_return, k_rshift, kp_nl, kp_div, kp_mult, k_pause, KC_NO, k_rctrl, k_c, k_x }, \
|
||||
/* 7 */ { KC_NO, k_b, k_n, KC_NO, KC_NO, k_fwslash, k_space, KC_NO, k_down, k_right, kp_minus, k_left, k_ralt, KC_NO, KC_NO, KC_NO } \
|
||||
}
|
||||
|
||||
#define LAYOUT_iso( \
|
||||
k_esc, k_f1, k_f2, k_f3, k_f4, k_f5, k_f6, k_f7, k_f8, k_f9, k_f10, k_f11, k_f12, k_prscr, k_scrl, k_pause, \
|
||||
k_tild, k_1, k_2, k_3, k_4, k_5, k_6, k_7, k_8, k_9, k_0, k_minus, k_equals, k_backspace, k_ins, k_home, k_pgup, kp_nl, kp_div, kp_mult, kp_minus, \
|
||||
k_tab, k_q, k_w, k_e, k_r, k_t, k_y, k_u, k_i, k_o, k_p, k_squarebrop, k_squarebrcl, k_return, k_del, k_end, k_pgdn, kp_7, kp_8, kp_9, kp_plus, \
|
||||
k_caps, k_a, k_s, k_d, k_f, k_g, k_h, k_j, k_k, k_l, k_semicolon, k_singlequote, k_nuhs, kp_4, kp_5, kp_6, \
|
||||
k_lshift,k_nubs,k_z, k_x, k_c, k_v, k_b, k_n, k_m, k_cm,k_period, k_fwslash, k_rshift, k_up, kp_1, kp_2, kp_3, kp_enter, \
|
||||
k_lctrl, k_lalt, k_space, k_ralt, k_rctrl, k_left, k_down, k_right, kp_0, kp_dot \
|
||||
) \
|
||||
{ \
|
||||
/* 0 1 2 3 4 5 6 7 8 9 A B C D E F */ \
|
||||
/* 0 */ { k_esc, k_g, k_h, k_f6, KC_NO, k_singlequote, k_f5, KC_NO, KC_NO, kp_0, kp_dot, k_up, k_lalt, KC_NO, k_f4, k_nubs }, \
|
||||
/* 1 */ { k_tab, k_t, k_y, k_squarebrcl, k_f7, k_squarebrop, k_backspace, k_lshift, kp_4, kp_5, kp_6, KC_NO, KC_NO, KC_NO, k_f3, k_caps }, \
|
||||
/* 2 */ { k_tild, k_5, k_6, k_equals, k_f8, k_minus, k_f9, KC_NO, k_del, k_ins, k_pgup, k_home, KC_NO, k_lctrl, k_f2, k_f1 }, \
|
||||
/* 3 */ { k_1, k_4, k_7, k_8, k_9, k_0, k_f10, KC_NO, k_f11, k_f12, k_pgdn, k_end, k_prscr, KC_NO, k_3, k_2 }, \
|
||||
/* 4 */ { k_q, k_r, k_u, k_i, k_o, k_p, KC_NO, KC_NO, kp_7, kp_8, kp_9, kp_plus, k_scrl, KC_NO, k_e, k_w }, \
|
||||
/* 5 */ { k_a, k_f, k_j, k_k, k_l, k_semicolon, KC_NO, KC_NO, kp_1, kp_2, kp_3, kp_enter, KC_NO, KC_NO, k_d, k_s }, \
|
||||
/* 6 */ { k_z, k_v, k_m, k_cm, k_period, k_nuhs, k_return, k_rshift, kp_nl, kp_div, kp_mult, k_pause, KC_NO, k_rctrl, k_c, k_x }, \
|
||||
/* 7 */ { KC_NO, k_b, k_n, KC_NO, KC_NO, k_fwslash, k_space, KC_NO, k_down, k_right, kp_minus, k_left, k_ralt, KC_NO, KC_NO, KC_NO } \
|
||||
}
|
107
keyboards/junco/info.json
Normal file
107
keyboards/junco/info.json
Normal file
@@ -0,0 +1,107 @@
|
||||
{
|
||||
"manufacturer": "Dane Skalski",
|
||||
"keyboard_name": "Junco",
|
||||
"url": "https://github.com/Daneski13/Junco",
|
||||
"maintainer": "Daneski13",
|
||||
"usb": {
|
||||
"vid": "0x4413",
|
||||
"pid": "0x4A13",
|
||||
"device_version": "1.0.0"
|
||||
},
|
||||
"processor": "RP2040",
|
||||
"bootloader": "rp2040",
|
||||
"layouts": {
|
||||
"LAYOUT_split4x6_r1": {
|
||||
"layout": [
|
||||
{ "label": "`", "matrix": [0, 0], "x": 0, "y": 0.7 },
|
||||
{ "label": "1", "matrix": [0, 1], "x": 1, "y": 0.7 },
|
||||
{ "label": "2", "matrix": [0, 2], "x": 2, "y": 0.3 },
|
||||
{ "label": "3", "matrix": [0, 3], "x": 3, "y": 0 },
|
||||
{ "label": "4", "matrix": [0, 4], "x": 4, "y": 0.3 },
|
||||
{ "label": "5", "matrix": [0, 5], "x": 5, "y": 0.45 },
|
||||
{ "label": "6", "matrix": [5, 5], "x": 9, "y": 0.45 },
|
||||
{ "label": "7", "matrix": [5, 4], "x": 10, "y": 0.3 },
|
||||
{ "label": "8", "matrix": [5, 3], "x": 11, "y": 0 },
|
||||
{ "label": "9", "matrix": [5, 2], "x": 12, "y": 0.3 },
|
||||
{ "label": "0", "matrix": [5, 1], "x": 13, "y": 0.7 },
|
||||
{ "label": "-", "matrix": [5, 0], "x": 14, "y": 0.7 },
|
||||
|
||||
{ "label": "Tab", "matrix": [1, 0], "x": 0, "y": 1.7 },
|
||||
{ "label": "Q", "matrix": [1, 1], "x": 1, "y": 1.7 },
|
||||
{ "label": "W", "matrix": [1, 2], "x": 2, "y": 1.3 },
|
||||
{ "label": "E", "matrix": [1, 3], "x": 3, "y": 1 },
|
||||
{ "label": "R", "matrix": [1, 4], "x": 4, "y": 1.3 },
|
||||
{ "label": "T", "matrix": [1, 5], "x": 5, "y": 1.45 },
|
||||
{ "label": "Y", "matrix": [6, 5], "x": 9, "y": 1.45 },
|
||||
{ "label": "U", "matrix": [6, 4], "x": 10, "y": 1.3 },
|
||||
{ "label": "I", "matrix": [6, 3], "x": 11, "y": 1 },
|
||||
{ "label": "O", "matrix": [6, 2], "x": 12, "y": 1.3 },
|
||||
{ "label": "P", "matrix": [6, 1], "x": 13, "y": 1.7 },
|
||||
{ "label": "Enter", "matrix": [6, 0], "x": 14, "y": 1.7 },
|
||||
|
||||
{ "label": "Esc", "matrix": [2, 0], "x": 0, "y": 2.7 },
|
||||
{ "label": "A", "matrix": [2, 1], "x": 1, "y": 2.7 },
|
||||
{ "label": "S", "matrix": [2, 2], "x": 2, "y": 2.3 },
|
||||
{ "label": "D", "matrix": [2, 3], "x": 3, "y": 2 },
|
||||
{ "label": "F", "matrix": [2, 4], "x": 4, "y": 2.3 },
|
||||
{ "label": "G", "matrix": [2, 5], "x": 5, "y": 2.45 },
|
||||
{ "label": "H", "matrix": [7, 5], "x": 9, "y": 2.45 },
|
||||
{ "label": "J", "matrix": [7, 4], "x": 10, "y": 2.3 },
|
||||
{ "label": "K", "matrix": [7, 3], "x": 11, "y": 2 },
|
||||
{ "label": "L", "matrix": [7, 2], "x": 12, "y": 2.3 },
|
||||
{ "label": ";", "matrix": [7, 1], "x": 13, "y": 2.7 },
|
||||
{ "label": "'", "matrix": [7, 0], "x": 14, "y": 2.7 },
|
||||
|
||||
{ "label": "Shift", "matrix": [3, 0], "x": 0, "y": 3.7 },
|
||||
{ "label": "Z", "matrix": [3, 1], "x": 1, "y": 3.7 },
|
||||
{ "label": "X", "matrix": [3, 2], "x": 2, "y": 3.3 },
|
||||
{ "label": "C", "matrix": [3, 3], "x": 3, "y": 3 },
|
||||
{ "label": "V", "matrix": [3, 4], "x": 4, "y": 3.3 },
|
||||
{ "label": "B", "matrix": [3, 5], "x": 5, "y": 3.45 },
|
||||
{ "label": "Mute", "matrix": [4, 5], "x": 6.2, "y": 3.45 },
|
||||
{ "label": "XXX", "matrix": [9, 5], "x": 7.8, "y": 3.45 },
|
||||
{ "label": "N", "matrix": [8, 5], "x": 9, "y": 3.45 },
|
||||
{ "label": "M", "matrix": [8, 4], "x": 10, "y": 3.3 },
|
||||
{ "label": ",", "matrix": [8, 3], "x": 11, "y": 3 },
|
||||
{ "label": ".", "matrix": [8, 2], "x": 12, "y": 3.3 },
|
||||
{ "label": "/", "matrix": [8, 1], "x": 13, "y": 3.7 },
|
||||
{ "label": "Shift", "matrix": [8, 0], "x": 14, "y": 3.7 },
|
||||
|
||||
{ "label": "Ctrl", "matrix": [4, 0], "x": 2, "y": 4.3 },
|
||||
{ "label": "Win", "matrix": [4, 1], "x": 3, "y": 4 },
|
||||
{ "label": "Alt", "matrix": [4, 2], "x": 4, "y": 4.3 },
|
||||
{
|
||||
"label": "Del",
|
||||
"matrix": [4, 3],
|
||||
"x": 5.1,
|
||||
"y": 4.5,
|
||||
"h": 1.5
|
||||
},
|
||||
{
|
||||
"label": "Spc",
|
||||
"matrix": [4, 4],
|
||||
"x": 6.1,
|
||||
"y": 4.5,
|
||||
"h": 1.5
|
||||
},
|
||||
{
|
||||
"label": "Shift",
|
||||
"matrix": [9, 3],
|
||||
"x": 7.9,
|
||||
"y": 4.5,
|
||||
"h": 1.5
|
||||
},
|
||||
{
|
||||
"label": "Bspc",
|
||||
"matrix": [9, 4],
|
||||
"x": 8.9,
|
||||
"y": 4.5,
|
||||
"h": 1.5
|
||||
},
|
||||
{ "label": "Alt", "matrix": [9, 2], "x": 10, "y": 4.3 },
|
||||
{ "label": "Win", "matrix": [9, 1], "x": 11, "y": 4 },
|
||||
{ "label": "Ctrl", "matrix": [9, 0], "x": 12, "y": 4.3 }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
38
keyboards/junco/keymaps/default/config.h
Normal file
38
keyboards/junco/keymaps/default/config.h
Normal file
@@ -0,0 +1,38 @@
|
||||
// Copyright 2022 Dane Skalski (@Daneski13)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
/* - Encoder settings - */
|
||||
#ifdef ENCODER_ENABLE
|
||||
# define ENCODER_RESOLUTION 4
|
||||
#endif
|
||||
#ifdef ENCODER_MAP_ENABLE
|
||||
// Key delay for encoders (necessary for some keycodes)
|
||||
# define ENCODER_MAP_KEY_DELAY 10
|
||||
#endif
|
||||
|
||||
/*
|
||||
- RGB Stuff -
|
||||
All effects can be found in the QMK docs:
|
||||
https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects
|
||||
*/
|
||||
#ifdef RGB_MATRIX_ENABLE
|
||||
|
||||
// Default effect when EEPROM cleared
|
||||
# define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_RAINBOW_MOVING_CHEVRON
|
||||
|
||||
// Turns off RGB effects when there is no longer a USB connection
|
||||
# define RGB_DISABLE_WHEN_USB_SUSPENDED
|
||||
|
||||
// Key press reactive animations
|
||||
# define SPLIT_TRANSPORT_MIRROR // Necessary setting for key press animations
|
||||
# define RGB_MATRIX_KEYPRESSES // Enables key press effects
|
||||
# define ENABLE_RGB_MATRIX_MULTISPLASH
|
||||
|
||||
// Normal effects
|
||||
# define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
|
||||
# define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
|
||||
# define ENABLE_RGB_MATRIX_PIXEL_RAIN
|
||||
|
||||
#endif
|
161
keyboards/junco/keymaps/default/keymap.c
Normal file
161
keyboards/junco/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,161 @@
|
||||
// Copyright 2022 Dane Skalski (@Daneski13)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
// Layers enum
|
||||
enum junco_layers { _QWERTY, _COLEMAK_DH, _SYMB, _EXT, _ADJUST };
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
// clang-format off
|
||||
/*
|
||||
Traditional QWERTY
|
||||
┌───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┐
|
||||
│ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ │ 6 │ 7 │ 8 │ 9 │ 0 │ - │
|
||||
├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤
|
||||
│Tab│ Q │ W │ E │ R │ T │ │ Y │ U │ I │ O │ P │Ent│
|
||||
├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤
|
||||
│Esc│ A │ S │ D │ F │ G │ │ H │ J │ K │ L │ ; │ ' │
|
||||
├───┼───┼───┼───┼───┼───┼───┐ ┌───┼───┼───┼───┼───┼───┼───┤
|
||||
│Sft│ Z │ X │ C │ V │ B │Mut│ │XXX│ N │ M │ , │ . │ / │Sft│
|
||||
└───┴───┴───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┴───┴───┘
|
||||
┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐
|
||||
│Ctr│Win│Alt│Del│Spc│ │Sft│Bsp│Alt│Win│Ctr│
|
||||
└───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘
|
||||
For macOS - GUI (cmd) and Alt (opt) swapped
|
||||
*/
|
||||
[_QWERTY] = LAYOUT_split4x6_r1(
|
||||
KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_ENTER,
|
||||
KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SEMICOLON, KC_QUOTE,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MUTE, KC_NO, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, LT(_EXT, KC_DEL), KC_SPC, KC_RSFT, LT(_SYMB, KC_BSPC), KC_RALT, KC_RGUI, KC_RCTL
|
||||
),
|
||||
|
||||
/*
|
||||
Colemak-DH
|
||||
┌───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┐
|
||||
│ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ │ 6 │ 7 │ 8 │ 9 │ 0 │ - │
|
||||
├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤
|
||||
│Tab│ Q │ W │ F │ P │ B │ │ J │ L │ U │ Y │ ; │Ent│
|
||||
├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤
|
||||
│Esc│ A │ R │ S │ T │ G │ │ M │ N │ E │ I │ O │ ' │
|
||||
├───┼───┼───┼───┼───┼───┼───┐ ┌───┼───┼───┼───┼───┼───┼───┤
|
||||
│Sft│ Z │ X │ C │ D │ V │Mut│ │XXX│ K │ H │ , │ . │ / │Sft│
|
||||
└───┴───┴───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┴───┴───┘
|
||||
┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐
|
||||
│Ctr│Win│Alt│Del│Spc│ │Sft│Bsp│Alt│Win│Ctr│
|
||||
└───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘
|
||||
For macOS - GUI (cmd) and Alt (opt) swapped
|
||||
*/
|
||||
[_COLEMAK_DH] = LAYOUT_split4x6_r1(
|
||||
KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS,
|
||||
KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SEMICOLON, KC_ENTER,
|
||||
KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, KC_QUOTE,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_MUTE, KC_NO, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, LT(_EXT, KC_DEL), KC_SPC, KC_RSFT, LT(_SYMB, KC_BSPC), KC_RALT, KC_RGUI, KC_RCTL
|
||||
),
|
||||
|
||||
/*
|
||||
Symbols/Numpad Layer
|
||||
┌───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┐
|
||||
│F1 │F2 │F3 │F4 │F5 │F6 │ │F7 │F8 │F9 │F10│F11│F12│
|
||||
├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤
|
||||
│Tab│ ! │ @ │ # │ $ │ % │ │ * │ 7 │ 8 │ 9 │ + │Ent│
|
||||
├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤
|
||||
│ \ │ _ │ [ │ { │ ( │ ^ │ │ = │ 4 │ 5 │ 6 │ 0 │NUM│
|
||||
├───┼───┼───┼───┼───┼───┼───┐ ┌───┼───┼───┼───┼───┼───┼───┤
|
||||
│___│ | │ ] │ } │ ) │ & │___│ │___│ / │ 1 │ 2 │ 3 │ - │___│
|
||||
└───┴───┴───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┴───┴───┘
|
||||
┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐
|
||||
│___│___│___│___│___│ │___│___│___│___│___│
|
||||
└───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘
|
||||
*/
|
||||
[_SYMB] = LAYOUT_split4x6_r1(
|
||||
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_TAB, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_PAST, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_ENTER,
|
||||
KC_BSLS, KC_UNDS, KC_LBRC, KC_LCBR, KC_LPRN, KC_CIRC, KC_PEQL, KC_P4, KC_P5, KC_P6, KC_P0, KC_NUM,
|
||||
_______, KC_PIPE, KC_RBRC, KC_RCBR, KC_RPRN, KC_AMPR, _______, _______, KC_PSLS, KC_P1, KC_P2, KC_P3, KC_PMNS, _______,
|
||||
_______, _______, _______, MO(_ADJUST), _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
/*
|
||||
Extension/Function Layer
|
||||
┌────┬────┬────┬────┬────┬────┐ ┌────┬────┬────┬────┬────┬────┐
|
||||
│ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ │ F7 │ F8 │ F9 │ F10│ F11│ F12│
|
||||
├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤
|
||||
│ ⇤ │PGUP│End │ ↑ │Home│ │ │BRIU│ F7 │ F8 │ F9 │ F10│____│
|
||||
├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤
|
||||
│Cps │PGDN│ ← │ ↓ │ → │ │ │BRID│ F4 │ F5 │ F6 │ F11│____│
|
||||
├────┼────┼────┼────┼────┼────┼────┐ ┌────┼────┼────┼────┼────┼────┼────┤
|
||||
│____│ │ │ │ │ │____│ │ ▶⏸ │ │ F1 │ F2 │ F3 │ F12│____│
|
||||
└────┴────┴────┴────┴────┴────┴────┘ └────┴────┴────┴────┴────┴────┴────┘
|
||||
┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐
|
||||
│___│___│___│___│___│ │___│___│___│___│___│
|
||||
└───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘
|
||||
*/
|
||||
[_EXT] = LAYOUT_split4x6_r1(
|
||||
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
|
||||
S(KC_TAB), KC_PGUP, KC_END, KC_UP, KC_HOME, _______, KC_BRIU, KC_F7, KC_F8, KC_F9, KC_F10, _______,
|
||||
KC_CAPS, KC_PGDN, KC_LEFT, KC_DOWN, KC_RIGHT, _______, KC_BRID, KC_F4, KC_F5, KC_F6, KC_F11, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, KC_MPLY, _______, KC_F1, KC_F2, KC_F3, KC_F12, _______,
|
||||
_______, _______, _______, _______, _______, _______, MO(_ADJUST), _______, _______, _______
|
||||
),
|
||||
|
||||
/*
|
||||
Adjust Layer, Keyboard Settings
|
||||
┌────┬────┬────┬────┬────┬────┐ ┌────┬────┬────┬────┬────┬────┐
|
||||
│ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤
|
||||
│SpdU│HueU│SatU│ValU│Rnxt│ │ │ │EClr│Rbt │DBUG│BOOT│ │
|
||||
├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤
|
||||
│SpdD│HueD│SatD│ValD│Rprv│RTgl│ │ │QWRT│COLE│ │ │ │
|
||||
├────┼────┼────┼────┼────┼────┼────┐ ┌────┼────┼────┼────┼────┼────┼────┤
|
||||
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
└────┴────┴────┴────┴────┴────┴────┘ └────┴────┴────┴────┴────┴────┴────┘
|
||||
┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐
|
||||
│___│___│___│___│___│ │___│___│___│___│___│
|
||||
└───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘
|
||||
*/
|
||||
[_ADJUST] = LAYOUT_split4x6_r1(
|
||||
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
RGB_SPI, RGB_HUI, RGB_SAI, RGB_VAI, RGB_MOD, KC_NO, KC_NO, EE_CLR, QK_RBT, DB_TOGG, QK_BOOT, KC_NO,
|
||||
RGB_SPD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_RMOD, RGB_TOG, KC_NO, DF(_QWERTY), DF(_COLEMAK_DH), KC_NO, KC_NO, KC_NO,
|
||||
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
)
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
/*
|
||||
--- Rotary Encoder Mappings ---
|
||||
|
||||
Encoder mappings go from leftmost encoder to rightmost encoder on the physical board.
|
||||
index 0 is the the optional leftmost encoder on the left half, index 1 is the right encoder
|
||||
on the left half (by the thumb keys), index 2 is the left encoder on the right half (by the
|
||||
thumb keys), and index 3 is the optional rightmost encoder on the right half.
|
||||
|
||||
If you are only using the 2 required encoders by the thumb keys, you only need to worry about
|
||||
index 1 and index 2.
|
||||
|
||||
Note that the keycode for counter-clockwise rotation (CCW) goes first and then the key for
|
||||
clockwise (CW) within ENCODER_CCW_CW.
|
||||
*/
|
||||
#ifdef ENCODER_MAP_ENABLE
|
||||
// clang-format off
|
||||
|
||||
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
|
||||
// Base layer encoder mappings:
|
||||
// index 0: mouse wheel up (CCW)/down (CW) index 1: volume down/up index 2: mouse wheel up/down index 3: mouse wheel left/right
|
||||
[_QWERTY] = { ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN), ENCODER_CCW_CW(KC_WH_L, KC_WH_R) },
|
||||
[_COLEMAK_DH] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
|
||||
|
||||
// Passes through to base layers
|
||||
[_SYMB] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
|
||||
// On the extension layer, the right side's left encoder by the thumb keys (mouse wheel up/down) is traded for media previous/next
|
||||
[_EXT] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_MPRV, KC_MNXT), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
|
||||
// Passes through
|
||||
[_ADJUST] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
#endif
|
57
keyboards/junco/keymaps/default/readme.md
Normal file
57
keyboards/junco/keymaps/default/readme.md
Normal file
@@ -0,0 +1,57 @@
|
||||
# Default Junco Keymap
|
||||
|
||||
This is the default layout for Junco. For the most part it's a normal QWERTY layout. The exceptions being the thumb keys, rotary encoders, and lack of caps lock (which is replaced by escape).
|
||||
|
||||
One of the biggest features of QMK is it brings layers into the mix which can give you access to even more keys. There are 4 layers: the default/base layer (QWERTY), a symbol layer, an extension layer, and an adjust layer.
|
||||
|
||||
Layers are very similar to Shift on a normal keyboard, where "a" becomes "A" when holding down shift. With a custom layer, you can have "j" become "4" for example and make an entire side of the keyboard become a number pad.
|
||||
|
||||
The [symbol layer](#symbol-layer) is accessed by holding down backspace, the [extension layer](#extension-layer) is accessed by holding down delete, and the [adjust layer](#adjust-layer) is accessed by holding down both delete and backspace.
|
||||
|
||||
## Default Base Layer (QWERTY)
|
||||
|
||||
Grey keys are rotary encoders (the ones on far left and far right are optional). Middle legend is pressing down the encoder, bottom left legend is counter-clockwise turn, and bottom right legend is clockwise turn of the encoder.
|
||||
|
||||
Those arrows for the bottom legends on the encoders are mouse scroll directions.
|
||||
|
||||
Red legends are the layer activated by holding down a key.
|
||||
|
||||

|
||||
|
||||
## Symbol Layer
|
||||
|
||||
This layer is accessed by holding down backspace on the base layer, thus that key is blacked out.
|
||||
|
||||
On the symbol layer, the right side is a number pad, and the left side contains all the typical symbols (geared for programming).
|
||||
|
||||
Holding down delete within the symbol layer will take you to the adjust layer.
|
||||
|
||||

|
||||
|
||||
## Extension Layer
|
||||
|
||||
This layer's theme is navigation/extras, its accessed by holding down delete on the base layer, thus that key is blacked out.
|
||||
|
||||
On the extension layer, the right side is the function keys in a number-pad-esque layout with screen brightness up/down, and the left side has navigation keys and caps lock. Also, the rotary on the right side encoder becomes media controls.
|
||||
|
||||
Holding down backspace within the extension layer will take you to the adjust layer.
|
||||
|
||||

|
||||
|
||||
## Adjust Layer
|
||||
|
||||
This layer's theme is adjusting the keyboard's settings, it's accessed by holding down both delete and backspace on the base layer.
|
||||
|
||||
On the adjust layer, the right side is the keyboard's settings: clear data, reboot, toggle debug mode, enter the bootloader, and change the base layer between QWERTY and [Colemak-DH](#colemak-dh). The left side adjusts the RGB lighting.
|
||||
|
||||

|
||||
|
||||
## Colemak-DH
|
||||
|
||||
This keymap offers Colemak-DH as an alternative base layer to QWERTY.
|
||||
|
||||
QWERTY is default when flashing your keyboard, but you can change it to Colemak-DH by selecting it's key on the adjust layer.
|
||||
|
||||
If you've never heard of it, Colemak is a keyboard layout that was designed to be a more ergonomic, modern, efficient, and comfortable replacement to QWERTY. Colemak was designed to place the most common letters in english on the home row along with many of the most common bigrams together (two letters typed in a row). Colemak-DH is a variant of Colemak that moves D and H to beneath the index fingers rather than the home row since most people find it easier and faster to reach the keys that way rather than the middle of the home row.
|
||||
|
||||

|
16
keyboards/junco/keymaps/default/rules.mk
Normal file
16
keyboards/junco/keymaps/default/rules.mk
Normal file
@@ -0,0 +1,16 @@
|
||||
# Change from yes to no to disable features
|
||||
|
||||
# Enables Audio control and System control Keycodes
|
||||
EXTRAKEY_ENABLE = yes
|
||||
# Enables Mousekeys
|
||||
MOUSEKEY_ENABLE = yes
|
||||
# Encoder Support
|
||||
ENCODER_ENABLE = yes
|
||||
# Use Enocoder Mapping
|
||||
ENCODER_MAP_ENABLE = yes
|
||||
|
||||
# Enables RGB Lighting Effects
|
||||
RGB_MATRIX_ENABLE = yes
|
||||
|
||||
# Allows use of `qmk console` for debugging
|
||||
CONSOLE_ENABLE = yes
|
58
keyboards/junco/keymaps/deluxe/config.h
Normal file
58
keyboards/junco/keymaps/deluxe/config.h
Normal file
@@ -0,0 +1,58 @@
|
||||
// Copyright 2022 Dane Skalski (@Daneski13)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
/* Indicator LEDs */
|
||||
// LED index for caps lock key on the extension layer
|
||||
#define CAPS_LOCK_LED_INDEX 25
|
||||
// LED index for num lock key on the symbol layer
|
||||
#define NUM_LOCK_LED_INDEX 62
|
||||
// LED index for key that sticks the adjust layer
|
||||
#define ADJST_LED_INDEX 19
|
||||
|
||||
// Number of Layers that can be used by VIA.
|
||||
// Change this if you want more layers
|
||||
#define DYNAMIC_KEYMAP_LAYER_COUNT 6
|
||||
|
||||
/* - Encoder settings - */
|
||||
#ifdef ENCODER_ENABLE
|
||||
# define ENCODER_RESOLUTION 4
|
||||
#endif
|
||||
#ifdef ENCODER_MAP_ENABLE
|
||||
// Key delay for encoders (necessary for some keycodes)
|
||||
# define ENCODER_MAP_KEY_DELAY 10
|
||||
#endif
|
||||
|
||||
/*
|
||||
- RGB Stuff -
|
||||
All effects can be found in the QMK docs:
|
||||
https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects
|
||||
*/
|
||||
#ifdef RGB_MATRIX_ENABLE
|
||||
|
||||
// Allows the indicator LEDs to work
|
||||
# define SPLIT_LED_STATE_ENABLE
|
||||
# define SPLIT_LAYER_STATE_ENABLE
|
||||
|
||||
// Default effect when EEPROM cleared
|
||||
# define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_RAINBOW_MOVING_CHEVRON
|
||||
|
||||
// Turns off RGB effects when there is no longer a USB connection
|
||||
# define RGB_DISABLE_WHEN_USB_SUSPENDED
|
||||
|
||||
// Throttling of RGB to increase keyboard responsiveness, set to 1.5x the default limits
|
||||
# define RGB_MATRIX_LED_PROCESS_LIMIT (RGB_MATRIX_LED_COUNT + 4) / 6 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness)
|
||||
# define RGB_MATRIX_LED_FLUSH_LIMIT 24 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms), the default, is equivalent to limiting to 60fps
|
||||
|
||||
// Key press reactive animations
|
||||
# define SPLIT_TRANSPORT_MIRROR // Necessary setting for key press animations
|
||||
# define RGB_MATRIX_KEYPRESSES // Enables key press effects
|
||||
# define ENABLE_RGB_MATRIX_MULTISPLASH
|
||||
|
||||
// Normal effects
|
||||
# define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
|
||||
# define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
|
||||
# define ENABLE_RGB_MATRIX_PIXEL_RAIN
|
||||
|
||||
#endif
|
329
keyboards/junco/keymaps/deluxe/keymap.c
Normal file
329
keyboards/junco/keymaps/deluxe/keymap.c
Normal file
@@ -0,0 +1,329 @@
|
||||
// Copyright 2022 Dane Skalski (@Daneski13)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
// Layers enum
|
||||
enum junco_layers { _QWERTY, _COLEMAK_DH, _SYMB, _EXT, _ADJUST };
|
||||
|
||||
// Custom keycodes
|
||||
enum custom_keycodes {
|
||||
// Keycode for toggling between macOS and Windows key mappings
|
||||
// Actually just an alias to the GUI and Alt swap Magic keycode
|
||||
KC_OS = MAGIC_TOGGLE_ALT_GUI,
|
||||
// Keycode for swapping the base layer between QWERTY and Colemak-DH
|
||||
KC_TOGGLE_BASE = SAFE_RANGE,
|
||||
// Keycode for redo action (Ctrl + Y on windows, Ctrl + Shift + Z on macOS)
|
||||
KC_REDO,
|
||||
// Keycodes for next/previous word
|
||||
KC_WNXT,
|
||||
KC_WPRV,
|
||||
// Keycode for sticking/unsticking the adjust layer
|
||||
KC_ADJST
|
||||
};
|
||||
|
||||
/* LED indicators */
|
||||
bool is_caps_lock_enabled(void) { // Caps lock
|
||||
return (host_keyboard_led_state().caps_lock);
|
||||
}
|
||||
bool is_num_lock_enabled(void) { // Num lock
|
||||
return (host_keyboard_led_state().num_lock);
|
||||
}
|
||||
bool is_adjust_layer_sticky(layer_state_t state) { // Adjust layer sticky
|
||||
// Checks if the state is equal to just the adjust layer being active.
|
||||
// Doing it this way can leverage SPLIT_LAYER_STATE_ENABLE
|
||||
return (state == (1UL << _ADJUST)) ? true : false;
|
||||
}
|
||||
// Indicator color based on the RGB Matrix mode
|
||||
RGB indicator_color(void) {
|
||||
RGB rgb;
|
||||
// Normally the indicator color is white to stand out in the RGB rainbow.
|
||||
// When using the custom RGB mode that already is white, the indicator color
|
||||
// is green to stand out.
|
||||
if (rgb_matrix_config.mode == RGB_MATRIX_CUSTOM_WHITE_UNDERGLOW_CYCLE) {
|
||||
// Green
|
||||
rgb.r = 0;
|
||||
rgb.g = 255;
|
||||
rgb.b = 0;
|
||||
} else {
|
||||
// White
|
||||
rgb.r = 255;
|
||||
rgb.g = 255;
|
||||
rgb.b = 255;
|
||||
}
|
||||
return rgb;
|
||||
}
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
// clang-format off
|
||||
/*
|
||||
Traditional QWERTY
|
||||
┌───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┐
|
||||
│ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ │ 6 │ 7 │ 8 │ 9 │ 0 │ - │
|
||||
├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤
|
||||
│Tab│ Q │ W │ E │ R │ T │ │ Y │ U │ I │ O │ P │Ent│
|
||||
├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤
|
||||
│Esc│ A │ S │ D │ F │ G │ │ H │ J │ K │ L │ ; │ ' │
|
||||
├───┼───┼───┼───┼───┼───┼───┐ ┌───┼───┼───┼───┼───┼───┼───┤
|
||||
│Sft│ Z │ X │ C │ V │ B │Mut│ │▶⏸ │ N │ M │ , │ . │ / │Sft│
|
||||
└───┴───┴───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┴───┴───┘
|
||||
┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐
|
||||
│Ctr│Win│Alt│Del│Spc│ │Sft│Bsp│Alt│Win│Ctr│
|
||||
└───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘
|
||||
For macOS - GUI (cmd) and Alt (opt) swapped
|
||||
*/
|
||||
[_QWERTY] = LAYOUT_split4x6_r1(
|
||||
KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_ENTER,
|
||||
KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SEMICOLON, KC_QUOTE,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MUTE, KC_MPLY, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, LT(_EXT, KC_DEL), KC_SPC, KC_RSFT, LT(_SYMB, KC_BSPC), KC_RALT, KC_RGUI, KC_RCTL
|
||||
),
|
||||
|
||||
/*
|
||||
Colemak-DH
|
||||
┌───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┐
|
||||
│ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ │ 6 │ 7 │ 8 │ 9 │ 0 │ - │
|
||||
├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤
|
||||
│Tab│ Q │ W │ F │ P │ B │ │ J │ L │ U │ Y │ ; │Ent│
|
||||
├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤
|
||||
│Esc│ A │ R │ S │ T │ G │ │ M │ N │ E │ I │ O │ ' │
|
||||
├───┼───┼───┼───┼───┼───┼───┐ ┌───┼───┼───┼───┼───┼───┼───┤
|
||||
│Sft│ Z │ X │ C │ D │ V │Mut│ │▶⏸ │ K │ H │ , │ . │ / │Sft│
|
||||
└───┴───┴───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┴───┴───┘
|
||||
┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐
|
||||
│Ctr│Win│Alt│Del│Spc│ │Sft│Bsp│Alt│Win│Ctr│
|
||||
└───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘
|
||||
For macOS - GUI/Win (cmd) and Alt (opt) swapped
|
||||
*/
|
||||
[_COLEMAK_DH] = LAYOUT_split4x6_r1(
|
||||
KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS,
|
||||
KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SEMICOLON, KC_ENTER,
|
||||
KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, KC_QUOTE,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_MUTE, KC_MPLY, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, LT(_EXT, KC_DEL), KC_SPC, KC_RSFT, LT(_SYMB, KC_BSPC), KC_RALT, KC_RGUI, KC_RCTL
|
||||
),
|
||||
|
||||
/*
|
||||
Symbols/Numpad Layer
|
||||
┌───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┐
|
||||
│F1 │F2 │F3 │F4 │F5 │F6 │ │F7 │F8 │F9 │F10│F11│F12│
|
||||
├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤
|
||||
│Tab│ ! │ @ │ # │ $ │ % │ │ * │ 7 │ 8 │ 9 │ + │Ent│
|
||||
├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤
|
||||
│ \ │ _ │ [ │ { │ ( │ ^ │ │ = │ 4 │ 5 │ 6 │ 0 │NUM│
|
||||
├───┼───┼───┼───┼───┼───┼───┐ ┌───┼───┼───┼───┼───┼───┼───┤
|
||||
│___│ | │ ] │ } │ ) │ & │___│ │___│ / │ 1 │ 2 │ 3 │ - │___│
|
||||
└───┴───┴───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┴───┴───┘
|
||||
┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐
|
||||
│___│___│___│___│___│ │___│___│___│___│___│
|
||||
└───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘
|
||||
*/
|
||||
[_SYMB] = LAYOUT_split4x6_r1(
|
||||
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_TAB, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_PAST, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_ENTER,
|
||||
KC_BSLS, KC_UNDS, KC_LBRC, KC_LCBR, KC_LPRN, KC_CIRC, KC_PEQL, KC_P4, KC_P5, KC_P6, KC_P0, KC_NUM,
|
||||
_______, KC_PIPE, KC_RBRC, KC_RCBR, KC_RPRN, KC_AMPR, _______, _______, KC_PSLS, KC_P1, KC_P2, KC_P3, KC_PMNS, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
/*
|
||||
Extension/Function Layer
|
||||
┌────┬────┬────┬────┬────┬────┐ ┌────┬────┬────┬────┬────┬────┐
|
||||
│ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ │ F7 │ F8 │ F9 │ F10│ F11│ F12│
|
||||
├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤
|
||||
│ ⇤ │PGUP│End │ ↑ │Home│ │ │BRIU│ F7 │ F8 │ F9 │ F10│____│
|
||||
├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤
|
||||
│Cps │PGDN│ ← │ ↓ │ → │ │ │BRID│ F4 │ F5 │ F6 │ F11│____│
|
||||
├────┼────┼────┼────┼────┼────┼────┐ ┌────┼────┼────┼────┼────┼────┼────┤
|
||||
│____│ │ │ │ │ │____│ │____│ │ F1 │ F2 │ F3 │ F12│____│
|
||||
└────┴────┴────┴────┴────┴────┴────┘ └────┴────┴────┴────┴────┴────┴────┘
|
||||
┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐
|
||||
│___│___│___│___│___│ │___│___│___│___│___│
|
||||
└───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘
|
||||
*/
|
||||
[_EXT] = LAYOUT_split4x6_r1(
|
||||
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
|
||||
S(KC_TAB), KC_PGUP, KC_END, KC_UP, KC_HOME, _______, KC_BRIU, KC_F7, KC_F8, KC_F9, KC_F10, _______,
|
||||
KC_CAPS, KC_PGDN, KC_LEFT, KC_DOWN, KC_RIGHT, _______, KC_BRID, KC_F4, KC_F5, KC_F6, KC_F11, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_F1, KC_F2, KC_F3, KC_F12, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
/*
|
||||
Adjust Layer, Keyboard Settings
|
||||
┌────┬────┬────┬────┬────┬────┐ ┌────┬────┬────┬────┬────┬────┐
|
||||
│ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤
|
||||
│SpdU│HueU│SatU│ValU│Rnxt│Stck│ │ │EClr│Rbt │DBUG│BOOT│ │
|
||||
├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤
|
||||
│SpdD│HueD│SatD│ValD│Rprv│RTgl│ │ │LOUT│ OS │ │ │ │
|
||||
├────┼────┼────┼────┼────┼────┼────┐ ┌────┼────┼────┼────┼────┼────┼────┤
|
||||
│ │ │ │ │ │ │RTgl│ │ │ │ │ │ │ │ │
|
||||
└────┴────┴────┴────┴────┴────┴────┘ └────┴────┴────┴────┴────┴────┴────┘
|
||||
┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐
|
||||
│___│___│___│___│___│ │___│___│___│___│___│
|
||||
└───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘
|
||||
*/
|
||||
[_ADJUST] = LAYOUT_split4x6_r1(
|
||||
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
RGB_SPI, RGB_HUI, RGB_SAI, RGB_VAI, RGB_MOD, KC_ADJST, KC_NO, EE_CLR, QK_RBT, DB_TOGG, QK_BOOT, KC_NO,
|
||||
RGB_SPD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_RMOD, RGB_TOG, KC_NO, KC_TOGGLE_BASE, KC_OS, KC_NO, KC_NO, KC_NO,
|
||||
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_TOG, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
)
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
/*
|
||||
--- Rotary Encoder Mappings ---
|
||||
|
||||
Encoder mappings go from leftmost encoder to rightmost encoder on the physical board.
|
||||
index 0 is the the optional leftmost encoder on the left half, index 1 is the right encoder
|
||||
on the left half (by the thumb keys), index 2 is the left encoder on the right half (by the
|
||||
thumb keys), and index 3 is the optional rightmost encoder on the right half.
|
||||
|
||||
If you are only using the 2 required encoders by the thumb keys, you only need to worry about
|
||||
index 1 and index 2.
|
||||
|
||||
Note that the key to be sent for counter-clockwise rotation (CCW) goes first and then the key for
|
||||
clockwise (CW) within ENCODER_CCW_CW.
|
||||
*/
|
||||
#ifdef ENCODER_MAP_ENABLE
|
||||
// clang-format off
|
||||
|
||||
// Base layer encoder mappings:
|
||||
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
|
||||
// Base layers
|
||||
// index 0: mouse wheel up (CCW)/down (CW) index 1: volume up/down index 2: media prev/next index 3: mouse wheel left/right
|
||||
[_QWERTY] = { ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MPRV, KC_MNXT), ENCODER_CCW_CW(KC_WH_L, KC_WH_R) },
|
||||
[_COLEMAK_DH] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
|
||||
|
||||
// Passes through to base layer
|
||||
[_SYMB] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
|
||||
// undo/redo previous word/next word
|
||||
[_EXT] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_UNDO, KC_REDO), ENCODER_CCW_CW(KC_WPRV, KC_WNXT) },
|
||||
// RGB Speed down/up RGB previous mode/next mode RGB brightness down/up
|
||||
[_ADJUST] = { ENCODER_CCW_CW(RGB_SPD, RGB_SPI), ENCODER_CCW_CW(RGB_RMOD, RGB_MOD), ENCODER_CCW_CW(RGB_VAD, RGB_VAI), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
// Called whenever a layer is changed
|
||||
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||
// Make sure the adjust layer isn't sticky
|
||||
if (is_adjust_layer_sticky(state)) return state;
|
||||
|
||||
// When both the symbol and extension layer keys are held, the Adjust layer is active.
|
||||
return update_tri_layer_state(state, _SYMB, _EXT, _ADJUST);
|
||||
}
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
// Toggle base layer
|
||||
case KC_TOGGLE_BASE:
|
||||
if (record->event.pressed) {
|
||||
// Toggle swapping base layers between Colemak-DH and QWERTY.
|
||||
// When base layer is QWERTY, swap to Colemak-DH and vice-versa
|
||||
if (get_highest_layer(default_layer_state) == _QWERTY) {
|
||||
default_layer_set(1UL << _COLEMAK_DH);
|
||||
} else {
|
||||
default_layer_set(1UL << _QWERTY);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
|
||||
// Override undo in favor of the more modern undo action
|
||||
case KC_UNDO:
|
||||
if (record->event.pressed) {
|
||||
// Use the correct modifier for macOS or Windows
|
||||
uint16_t mod = keymap_config.swap_lalt_lgui ? KC_LGUI : KC_LCTL;
|
||||
// Send Ctrl+Z/Cmd+Z
|
||||
register_code(mod);
|
||||
tap_code_delay(KC_Z, 10);
|
||||
unregister_code(mod);
|
||||
}
|
||||
return false;
|
||||
|
||||
// Redo action
|
||||
case KC_REDO:
|
||||
if (record->event.pressed) {
|
||||
// Whether or not macOS mapping is enabled
|
||||
if (keymap_config.swap_lalt_lgui) {
|
||||
// macOS - Send Cmd+Shift+Z
|
||||
register_code(KC_LGUI);
|
||||
register_code(KC_LSFT);
|
||||
tap_code_delay(KC_Z, 10);
|
||||
unregister_code(KC_LSFT);
|
||||
unregister_code(KC_LGUI);
|
||||
} else {
|
||||
// Windows - Send Ctrl+Y
|
||||
register_code(KC_LCTL);
|
||||
tap_code_delay(KC_Y, 10);
|
||||
unregister_code(KC_LCTL);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
|
||||
// Next word
|
||||
case KC_WNXT:
|
||||
if (record->event.pressed) {
|
||||
// Use the correct modifier for macOS or Windows
|
||||
uint16_t mod = keymap_config.swap_lalt_lgui ? KC_LALT : KC_LCTL;
|
||||
// Send Ctrl+Right/Option+Right
|
||||
register_code(mod);
|
||||
tap_code_delay(KC_RGHT, 10);
|
||||
unregister_code(mod);
|
||||
}
|
||||
return false;
|
||||
|
||||
// Previous word
|
||||
case KC_WPRV:
|
||||
if (record->event.pressed) {
|
||||
// Use the correct modifier for macOS or Windows
|
||||
uint16_t mod = keymap_config.swap_lalt_lgui ? KC_LALT : KC_LCTL;
|
||||
// Send Ctrl+Left/Option+Left
|
||||
register_code(mod);
|
||||
tap_code_delay(KC_LEFT, 10);
|
||||
unregister_code(mod);
|
||||
}
|
||||
return false;
|
||||
|
||||
// Stick / Unstick the adjust layer
|
||||
case KC_ADJST:
|
||||
if (record->event.pressed) {
|
||||
// If currently not sticky, we want only the adjust layer to be active to make it stick.
|
||||
// Otherwise we want the default layer, un-stick.
|
||||
is_adjust_layer_sticky(layer_state) ? layer_state_set(default_layer_state) : layer_move(_ADJUST);
|
||||
dprintf("Adjust layer is now %s\n", is_adjust_layer_sticky(layer_state) ? "stuck" : "un-stuck");
|
||||
}
|
||||
return false;
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
/* Indicators (Caps Lock / Num Lock / Adjust Layer Sticky) */
|
||||
bool rgb_matrix_indicators_user(void) {
|
||||
layer_state_t curr_layer_state = layer_state;
|
||||
layer_state_t layer = get_highest_layer(curr_layer_state);
|
||||
RGB rgb = indicator_color();
|
||||
|
||||
/* Only show the indicator on their respective layers */
|
||||
// Caps Lock is only on the extension layer
|
||||
if (is_caps_lock_enabled() && layer == _EXT) {
|
||||
rgb_matrix_set_color(CAPS_LOCK_LED_INDEX, rgb.r, rgb.g, rgb.b);
|
||||
}
|
||||
|
||||
// Num Lock is only on the symbol layer
|
||||
if (is_num_lock_enabled() && layer == _SYMB) {
|
||||
rgb_matrix_set_color(NUM_LOCK_LED_INDEX, rgb.r, rgb.g, rgb.b);
|
||||
}
|
||||
|
||||
// If the adjust layer is stuck/sticky, light it up. Don't need to care about
|
||||
// checking the layer since it can only be active on the adjust layer anyway
|
||||
if (is_adjust_layer_sticky(curr_layer_state)) rgb_matrix_set_color(ADJST_LED_INDEX, rgb.r, rgb.g, rgb.b);
|
||||
|
||||
return false;
|
||||
}
|
43
keyboards/junco/keymaps/deluxe/readme.md
Normal file
43
keyboards/junco/keymaps/deluxe/readme.md
Normal file
@@ -0,0 +1,43 @@
|
||||
# Deluxe Junco Keymap
|
||||
|
||||
This is my personal keymap for Junco at time of writing. It departs from the [default layout](../default/README.md) with the encoder mappings and some extra keycodes. This keymap also adds indicators when caps lock and num lock are enabled. When enabled, that key will become a static white (green on the white backlight mode) but only when the layer that respective key is on is active.
|
||||
|
||||
I wanted that classic rainbow barf RGB effect for the underglow even if the per-key lighting is something else, so I added 2 custom RGB matrix animations: white per-key lighting with rainbow underglow and pixel rain with rainbow underglow.
|
||||
|
||||
Here are some gifs of the animations:
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
## Base Layers
|
||||
|
||||
The base layers are the same as the default layout, except the right side's left encoder (by the thumb keys) is now media controls. Since I am using all 4 encoders it doesn't make sense to have 2 mouse scroll up/down, but for someone with just 2 encoders it may make sense to have media controls on a layer.
|
||||
|
||||
QWERTY:
|
||||
|
||||

|
||||
|
||||
Colemak-DH:
|
||||
|
||||

|
||||
|
||||
## Symbol Layer
|
||||
|
||||
Symbol layer is identical to the default layout.
|
||||
|
||||

|
||||
|
||||
## Extension Layer
|
||||
|
||||
Encoders on the right side become undo/redo and scrolling horizontally by word.
|
||||
|
||||

|
||||
|
||||
## Adjust Layer
|
||||
|
||||
Pressing "Stick Adj Layer" will "stick" the adjust layer so you can use the rotary encoders for RGB settings rather than holding down both backspace and delete. To go back to the default layer, press that stick key again or press and release either Del or Backspace. When the adjust layer is currently "sticky" the sticky key will become the indicator color mentioned earlier.
|
||||
|
||||
"Toggle Base" will toggle between QWERTY and Colemak-DH and toggle OS will toggle between macOS and Windows key-mappings (swapping WIN/Command with Alt/Option by the thumb keys and properly mapping redo/word scrolling).
|
||||
|
||||

|
48
keyboards/junco/keymaps/deluxe/rgb_matrix_user.inc
Normal file
48
keyboards/junco/keymaps/deluxe/rgb_matrix_user.inc
Normal file
@@ -0,0 +1,48 @@
|
||||
// Copyright 2022 Dane Skalski (@Daneski13)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
RGB_MATRIX_EFFECT(WHITE_UNDERGLOW_CYCLE)
|
||||
RGB_MATRIX_EFFECT(PIXEL_RAIN_UNDERGLOW_CYCLE)
|
||||
|
||||
#ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS
|
||||
|
||||
// This is a modified version of the effect_runner_dx_dy_dist function from rgb_matrix
|
||||
// that only applies the effect to the underglow LEDs of this keyboard
|
||||
static bool underglow_effect_runner(effect_params_t* params, dx_dy_dist_f underglow_effect_func, bool backlight_white) {
|
||||
RGB_MATRIX_USE_LIMITS(led_min, led_max);
|
||||
|
||||
HSV hsv = rgb_matrix_config.hsv;
|
||||
HSV white = {0, 0, hsv.v};
|
||||
RGB rgb = rgb_matrix_hsv_to_rgb(white);
|
||||
uint8_t time = scale16by8(g_rgb_timer, rgb_matrix_config.speed / 2);
|
||||
for (uint8_t i = led_min; i < led_max; i++) {
|
||||
// Underglow LEDs are indicies 0 - 7 and 37 - 44
|
||||
if ((i <= 7) || (37 <= i && i <= 44)) {
|
||||
// Apply the maths and colors to the underglow LEDs
|
||||
RGB_MATRIX_TEST_LED_FLAGS();
|
||||
int16_t dx = g_led_config.point[i].x - k_rgb_matrix_center.x;
|
||||
int16_t dy = g_led_config.point[i].y - k_rgb_matrix_center.y;
|
||||
uint8_t dist = sqrt16(dx * dx + dy * dy);
|
||||
RGB rgb = rgb_matrix_hsv_to_rgb(underglow_effect_func(hsv, dx, dy, dist, time));
|
||||
rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
|
||||
} else {
|
||||
// Set the backlight to white if needed
|
||||
if (!backlight_white) continue;
|
||||
rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
|
||||
}
|
||||
}
|
||||
return rgb_matrix_check_finished_leds(led_max);
|
||||
}
|
||||
|
||||
// Solid white but the underglow is a rainbow spiral
|
||||
static bool WHITE_UNDERGLOW_CYCLE(effect_params_t* params) {
|
||||
return underglow_effect_runner(params, &CYCLE_SPIRAL_math, true);
|
||||
}
|
||||
|
||||
// Pixel rain effect but the underglow is a rainbow spiral
|
||||
static bool PIXEL_RAIN_UNDERGLOW_CYCLE(effect_params_t* params) {
|
||||
PIXEL_RAIN(params);
|
||||
return underglow_effect_runner(params, &CYCLE_SPIRAL_math, false);
|
||||
}
|
||||
|
||||
#endif
|
20
keyboards/junco/keymaps/deluxe/rules.mk
Normal file
20
keyboards/junco/keymaps/deluxe/rules.mk
Normal file
@@ -0,0 +1,20 @@
|
||||
# Enables Audio control and System control Keycodes
|
||||
EXTRAKEY_ENABLE = yes
|
||||
# Enables Mousekeys
|
||||
MOUSEKEY_ENABLE = yes
|
||||
# Encoder Support
|
||||
ENCODER_ENABLE = yes
|
||||
# Use Enocoder Mapping
|
||||
ENCODER_MAP_ENABLE = yes
|
||||
|
||||
# Enables RGB Lighting Effects
|
||||
RGB_MATRIX_ENABLE = yes
|
||||
|
||||
# Allows use of `qmk console` for debugging
|
||||
CONSOLE_ENABLE = yes
|
||||
|
||||
# Enables VIA
|
||||
VIA_ENABLE = yes
|
||||
|
||||
# Custom RGB Matrix Effect
|
||||
RGB_MATRIX_CUSTOM_USER = yes
|
87
keyboards/junco/keymaps/via/config.h
Normal file
87
keyboards/junco/keymaps/via/config.h
Normal file
@@ -0,0 +1,87 @@
|
||||
// Copyright 2022 Dane Skalski (@Daneski13)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
// Number of Layers that can be used by VIA.
|
||||
// Change this if you want more layers
|
||||
#define DYNAMIC_KEYMAP_LAYER_COUNT 6
|
||||
|
||||
/* - Encoder settings - */
|
||||
#ifdef ENCODER_ENABLE
|
||||
# define ENCODER_RESOLUTION 4
|
||||
#endif
|
||||
#ifdef ENCODER_MAP_ENABLE
|
||||
// Key delay for encoders (necessary for some keycodes)
|
||||
# define ENCODER_MAP_KEY_DELAY 10
|
||||
#endif
|
||||
|
||||
/*
|
||||
- RGB -
|
||||
Defines all effects so VIA can properly select them via index
|
||||
*/
|
||||
#ifdef RGB_MATRIX_ENABLE
|
||||
|
||||
// Default effect when EEPROM cleared
|
||||
# define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_RAINBOW_MOVING_CHEVRON
|
||||
|
||||
// Turns off RGB effects when there is no longer a USB connection
|
||||
# define RGB_DISABLE_WHEN_USB_SUSPENDED
|
||||
|
||||
// Allow keypress reactive animations
|
||||
# define SPLIT_TRANSPORT_MIRROR // Necessary setting for key press animations on a split
|
||||
# define RGB_MATRIX_KEYPRESSES // Enables key press effects
|
||||
|
||||
// Allow frame buffer effects
|
||||
# define RGB_MATRIX_FRAMEBUFFER_EFFECTS // Enables frame buffer effects
|
||||
|
||||
// All effect definitions
|
||||
# define ENABLE_RGB_MATRIX_ALPHAS_MODS // Enables RGB_MATRIX_ALPHAS_MODS
|
||||
# define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN // Enables RGB_MATRIX_GRADIENT_UP_DOWN
|
||||
# define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT // Enables RGB_MATRIX_GRADIENT_LEFT_RIGHT
|
||||
# define ENABLE_RGB_MATRIX_BREATHING // Enables RGB_MATRIX_BREATHING
|
||||
# define ENABLE_RGB_MATRIX_BAND_SAT // Enables RGB_MATRIX_BAND_SAT
|
||||
# define ENABLE_RGB_MATRIX_BAND_VAL // Enables RGB_MATRIX_BAND_VAL
|
||||
# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT // Enables RGB_MATRIX_BAND_PINWHEEL_SAT
|
||||
# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL // Enables RGB_MATRIX_BAND_PINWHEEL_VAL
|
||||
# define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT // Enables RGB_MATRIX_BAND_SPIRAL_SAT
|
||||
# define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL // Enables RGB_MATRIX_BAND_SPIRAL_VAL
|
||||
# define ENABLE_RGB_MATRIX_CYCLE_ALL // Enables RGB_MATRIX_CYCLE_ALL
|
||||
# define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT // Enables RGB_MATRIX_CYCLE_LEFT_RIGHT
|
||||
# define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN // Enables RGB_MATRIX_CYCLE_UP_DOWN
|
||||
# define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON // Enables RGB_MATRIX_RAINBOW_MOVING_CHEVRON
|
||||
# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN // Enables RGB_MATRIX_CYCLE_OUT_IN
|
||||
# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL // Enables RGB_MATRIX_CYCLE_OUT_IN_DUAL
|
||||
# define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL // Enables RGB_MATRIX_CYCLE_PINWHEEL
|
||||
# define ENABLE_RGB_MATRIX_CYCLE_SPIRAL // Enables RGB_MATRIX_CYCLE_SPIRAL
|
||||
# define ENABLE_RGB_MATRIX_DUAL_BEACON // Enables RGB_MATRIX_DUAL_BEACON
|
||||
# define ENABLE_RGB_MATRIX_RAINBOW_BEACON // Enables RGB_MATRIX_RAINBOW_BEACON
|
||||
# define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS // Enables RGB_MATRIX_RAINBOW_PINWHEELS
|
||||
# define ENABLE_RGB_MATRIX_RAINDROPS // Enables RGB_MATRIX_RAINDROPS
|
||||
# define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS // Enables RGB_MATRIX_JELLYBEAN_RAINDROPS
|
||||
# define ENABLE_RGB_MATRIX_HUE_BREATHING // Enables RGB_MATRIX_HUE_BREATHING
|
||||
# define ENABLE_RGB_MATRIX_HUE_PENDULUM // Enables RGB_MATRIX_HUE_PENDULUM
|
||||
# define ENABLE_RGB_MATRIX_HUE_WAVE // Enables RGB_MATRIX_HUE_WAVE
|
||||
# define ENABLE_RGB_MATRIX_PIXEL_FRACTAL // Enables RGB_MATRIX_PIXEL_FRACTAL
|
||||
# define ENABLE_RGB_MATRIX_PIXEL_FLOW // Enables RGB_MATRIX_PIXEL_FLOW
|
||||
# define ENABLE_RGB_MATRIX_PIXEL_RAIN // Enables RGB_MATRIX_PIXEL_RAIN
|
||||
|
||||
// Following need RGB_MATRIX_FRAMEBUFFER_EFFECTS
|
||||
# define ENABLE_RGB_MATRIX_TYPING_HEATMAP // Enables RGB_MATRIX_TYPING_HEATMAP
|
||||
# define ENABLE_RGB_MATRIX_DIGITAL_RAIN // Enables RGB_MATRIX_DIGITAL_RAIN
|
||||
|
||||
// Following need RGB_MATRIX_KEYPRESSES
|
||||
# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE // Enables RGB_MATRIX_SOLID_REACTIVE_SIMPLE
|
||||
# define ENABLE_RGB_MATRIX_SOLID_REACTIVE // Enables RGB_MATRIX_SOLID_REACTIVE
|
||||
# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE // Enables RGB_MATRIX_SOLID_REACTIVE_WIDE
|
||||
# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE // Enables RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
|
||||
# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS // Enables RGB_MATRIX_SOLID_REACTIVE_CROSS
|
||||
# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS // Enables RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
|
||||
# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS // Enables RGB_MATRIX_SOLID_REACTIVE_NEXUS
|
||||
# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS // Enables RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
|
||||
# define ENABLE_RGB_MATRIX_SPLASH // Enables RGB_MATRIX_SPLASH
|
||||
# define ENABLE_RGB_MATRIX_MULTISPLASH // Enables RGB_MATRIX_MULTISPLASH
|
||||
# define ENABLE_RGB_MATRIX_SOLID_SPLASH // Enables RGB_MATRIX_SOLID_SPLASH
|
||||
# define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH // Enables RGB_MATRIX_SOLID_MULTISPLASH
|
||||
|
||||
#endif
|
161
keyboards/junco/keymaps/via/keymap.c
Normal file
161
keyboards/junco/keymaps/via/keymap.c
Normal file
@@ -0,0 +1,161 @@
|
||||
// Copyright 2022 Dane Skalski (@Daneski13)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
// Layers enum
|
||||
enum junco_layers { _QWERTY, _COLEMAK_DH, _SYMB, _EXT, _ADJUST };
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
// clang-format off
|
||||
/*
|
||||
Traditional QWERTY
|
||||
┌───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┐
|
||||
│ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ │ 6 │ 7 │ 8 │ 9 │ 0 │ - │
|
||||
├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤
|
||||
│Tab│ Q │ W │ E │ R │ T │ │ Y │ U │ I │ O │ P │Ent│
|
||||
├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤
|
||||
│Esc│ A │ S │ D │ F │ G │ │ H │ J │ K │ L │ ; │ ' │
|
||||
├───┼───┼───┼───┼───┼───┼───┐ ┌───┼───┼───┼───┼───┼───┼───┤
|
||||
│Sft│ Z │ X │ C │ V │ B │Mut│ │XXX│ N │ M │ , │ . │ / │Sft│
|
||||
└───┴───┴───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┴───┴───┘
|
||||
┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐
|
||||
│Ctr│Win│Alt│Del│Spc│ │Sft│Bsp│Alt│Win│Ctr│
|
||||
└───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘
|
||||
For macOS - GUI (cmd) and Alt (opt) swapped
|
||||
*/
|
||||
[_QWERTY] = LAYOUT_split4x6_r1(
|
||||
KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_ENTER,
|
||||
KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SEMICOLON, KC_QUOTE,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MUTE, KC_NO, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, LT(_EXT, KC_DEL), KC_SPC, KC_RSFT, LT(_SYMB, KC_BSPC), KC_RALT, KC_RGUI, KC_RCTL
|
||||
),
|
||||
|
||||
/*
|
||||
Colemak-DH
|
||||
┌───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┐
|
||||
│ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ │ 6 │ 7 │ 8 │ 9 │ 0 │ - │
|
||||
├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤
|
||||
│Tab│ Q │ W │ F │ P │ B │ │ J │ L │ U │ Y │ ; │Ent│
|
||||
├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤
|
||||
│Esc│ A │ R │ S │ T │ G │ │ M │ N │ E │ I │ O │ ' │
|
||||
├───┼───┼───┼───┼───┼───┼───┐ ┌───┼───┼───┼───┼───┼───┼───┤
|
||||
│Sft│ Z │ X │ C │ D │ V │Mut│ │XXX│ K │ H │ , │ . │ / │Sft│
|
||||
└───┴───┴───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┴───┴───┘
|
||||
┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐
|
||||
│Ctr│Win│Alt│Del│Spc│ │Sft│Bsp│Alt│Win│Ctr│
|
||||
└───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘
|
||||
For macOS - GUI (cmd) and Alt (opt) swapped
|
||||
*/
|
||||
[_COLEMAK_DH] = LAYOUT_split4x6_r1(
|
||||
KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS,
|
||||
KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SEMICOLON, KC_ENTER,
|
||||
KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, KC_QUOTE,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_MUTE, KC_NO, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, LT(_EXT, KC_DEL), KC_SPC, KC_RSFT, LT(_SYMB, KC_BSPC), KC_RALT, KC_RGUI, KC_RCTL
|
||||
),
|
||||
|
||||
/*
|
||||
Symbols/Numpad Layer
|
||||
┌───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┐
|
||||
│F1 │F2 │F3 │F4 │F5 │F6 │ │F7 │F8 │F9 │F10│F11│F12│
|
||||
├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤
|
||||
│Tab│ ! │ @ │ # │ $ │ % │ │ * │ 7 │ 8 │ 9 │ + │Ent│
|
||||
├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤
|
||||
│ \ │ _ │ [ │ { │ ( │ ^ │ │ = │ 4 │ 5 │ 6 │ 0 │NUM│
|
||||
├───┼───┼───┼───┼───┼───┼───┐ ┌───┼───┼───┼───┼───┼───┼───┤
|
||||
│___│ | │ ] │ } │ ) │ & │___│ │___│ / │ 1 │ 2 │ 3 │ - │___│
|
||||
└───┴───┴───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┴───┴───┘
|
||||
┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐
|
||||
│___│___│___│___│___│ │___│___│___│___│___│
|
||||
└───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘
|
||||
*/
|
||||
[_SYMB] = LAYOUT_split4x6_r1(
|
||||
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_TAB, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_PAST, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_ENTER,
|
||||
KC_BSLS, KC_UNDS, KC_LBRC, KC_LCBR, KC_LPRN, KC_CIRC, KC_PEQL, KC_P4, KC_P5, KC_P6, KC_P0, KC_NUM,
|
||||
_______, KC_PIPE, KC_RBRC, KC_RCBR, KC_RPRN, KC_AMPR, _______, _______, KC_PSLS, KC_P1, KC_P2, KC_P3, KC_PMNS, _______,
|
||||
_______, _______, _______, MO(_ADJUST), _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
/*
|
||||
Extension/Function Layer
|
||||
┌────┬────┬────┬────┬────┬────┐ ┌────┬────┬────┬────┬────┬────┐
|
||||
│ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ │ F7 │ F8 │ F9 │ F10│ F11│ F12│
|
||||
├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤
|
||||
│ ⇤ │PGUP│End │ ↑ │Home│ │ │BRIU│ F7 │ F8 │ F9 │ F10│____│
|
||||
├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤
|
||||
│Cps │PGDN│ ← │ ↓ │ → │ │ │BRID│ F4 │ F5 │ F6 │ F11│____│
|
||||
├────┼────┼────┼────┼────┼────┼────┐ ┌────┼────┼────┼────┼────┼────┼────┤
|
||||
│____│ │ │ │ │ │____│ │ ▶⏸ │ │ F1 │ F2 │ F3 │ F12│____│
|
||||
└────┴────┴────┴────┴────┴────┴────┘ └────┴────┴────┴────┴────┴────┴────┘
|
||||
┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐
|
||||
│___│___│___│___│___│ │___│___│___│___│___│
|
||||
└───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘
|
||||
*/
|
||||
[_EXT] = LAYOUT_split4x6_r1(
|
||||
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
|
||||
S(KC_TAB), KC_PGUP, KC_END, KC_UP, KC_HOME, _______, KC_BRIU, KC_F7, KC_F8, KC_F9, KC_F10, _______,
|
||||
KC_CAPS, KC_PGDN, KC_LEFT, KC_DOWN, KC_RIGHT, _______, KC_BRID, KC_F4, KC_F5, KC_F6, KC_F11, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, KC_MPLY, _______, KC_F1, KC_F2, KC_F3, KC_F12, _______,
|
||||
_______, _______, _______, _______, _______, _______, MO(_ADJUST), _______, _______, _______
|
||||
),
|
||||
|
||||
/*
|
||||
Adjust Layer, Keyboard Settings
|
||||
┌────┬────┬────┬────┬────┬────┐ ┌────┬────┬────┬────┬────┬────┐
|
||||
│ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤
|
||||
│SpdU│HueU│SatU│ValU│Rnxt│ │ │ │EClr│Rbt │DBUG│BOOT│ │
|
||||
├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤
|
||||
│SpdD│HueD│SatD│ValD│Rprv│RTgl│ │ │QWRT│COLE│ │ │ │
|
||||
├────┼────┼────┼────┼────┼────┼────┐ ┌────┼────┼────┼────┼────┼────┼────┤
|
||||
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
└────┴────┴────┴────┴────┴────┴────┘ └────┴────┴────┴────┴────┴────┴────┘
|
||||
┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐
|
||||
│___│___│___│___│___│ │___│___│___│___│___│
|
||||
└───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘
|
||||
*/
|
||||
[_ADJUST] = LAYOUT_split4x6_r1(
|
||||
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
RGB_SPI, RGB_HUI, RGB_SAI, RGB_VAI, RGB_MOD, KC_NO, KC_NO, EE_CLR, QK_RBT, DB_TOGG, QK_BOOT, KC_NO,
|
||||
RGB_SPD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_RMOD, RGB_TOG, KC_NO, DF(_QWERTY), DF(_COLEMAK_DH), KC_NO, KC_NO, KC_NO,
|
||||
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
)
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
/*
|
||||
--- Rotary Encoder Mappings ---
|
||||
|
||||
Encoder mappings go from leftmost encoder to rightmost encoder on the physical board.
|
||||
index 0 is the the optional leftmost encoder on the left half, index 1 is the right encoder
|
||||
on the left half (by the thumb keys), index 2 is the left encoder on the right half (by the
|
||||
thumb keys), and index 3 is the optional rightmost encoder on the right half.
|
||||
|
||||
If you are only using the 2 required encoders by the thumb keys, you only need to worry about
|
||||
index 1 and index 2.
|
||||
|
||||
Note that the key to be sent for counter-clockwise rotation (CCW) goes first and then the key for
|
||||
clockwise (CW) within ENCODER_CCW_CW.
|
||||
*/
|
||||
#ifdef ENCODER_MAP_ENABLE
|
||||
// clang-format off
|
||||
|
||||
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
|
||||
// Base layer encoder mappings:
|
||||
// index 0: mouse wheel up (CCW)/down (CW) index 1: volume down/up index 2: mouse wheel up/down index 3: mouse wheel left/right
|
||||
[_QWERTY] = { ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN), ENCODER_CCW_CW(KC_WH_L, KC_WH_R) },
|
||||
[_COLEMAK_DH] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
|
||||
|
||||
// Passes through to base layers
|
||||
[_SYMB] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
|
||||
// On the extension layer, the right side's left encoder by the thumb keys (mouse wheel up/down) is traded for media previous/next
|
||||
[_EXT] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_MPRV, KC_MNXT), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
|
||||
// Passes through
|
||||
[_ADJUST] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
#endif
|
19
keyboards/junco/keymaps/via/rules.mk
Normal file
19
keyboards/junco/keymaps/via/rules.mk
Normal file
@@ -0,0 +1,19 @@
|
||||
# Change from yes to no to disable features
|
||||
|
||||
# Enables Audio control and System control Keycodes
|
||||
EXTRAKEY_ENABLE = yes
|
||||
# Enables Mousekeys
|
||||
MOUSEKEY_ENABLE = yes
|
||||
# Encoder Support
|
||||
ENCODER_ENABLE = yes
|
||||
# Use Enocoder Mapping
|
||||
ENCODER_MAP_ENABLE = yes
|
||||
|
||||
# Enables RGB Matrix
|
||||
RGB_MATRIX_ENABLE = yes
|
||||
|
||||
# Allows use of `qmk console` for debugging
|
||||
# CONSOLE_ENABLE = yes
|
||||
|
||||
# Enables VIA
|
||||
VIA_ENABLE = yes
|
41
keyboards/junco/readme.md
Normal file
41
keyboards/junco/readme.md
Normal file
@@ -0,0 +1,41 @@
|
||||
# Junco <!-- omit from toc -->
|
||||
|
||||

|
||||
|
||||
Junco is a 60% Raspberry Pi Pico powered split keyboard boasting a 4x6 layout with an aggressive columnar stagger. It has 5 "thumb" keys on either side, support for 2-4 rotary encoders, and per-key RGB lighting.
|
||||
|
||||
- Keyboard Maintainer: [Dane Skalski](https://github.com/Daneski13)
|
||||
- Hardware Supported: Junco PCB, Raspberry Pi Pico
|
||||
- Hardware Availability: [PCB, Case, Parts List](https://github.com/Daneski13/Junco)
|
||||
|
||||
Remember you have to flash both halves of the keyboard for it to work!
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make junco:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
```bash
|
||||
# For flashing the left half...
|
||||
make junco:default:uf2-split-left
|
||||
# or the qmk cli equivalent:
|
||||
qmk flash -kb junco --keymap default -bl uf2-split-left
|
||||
|
||||
# For flashing the right half...
|
||||
make junco:default:uf2-split-right
|
||||
# or the qmk cli equivalent:
|
||||
qmk flash -kb junco --keymap default -bl uf2-split-right
|
||||
```
|
||||
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||
|
||||
## Bootloader <!-- omit from toc -->
|
||||
|
||||
Enter the bootloader in 3 ways:
|
||||
|
||||
- **Bootmagic reset** (works after you have flashed once): Hold down the top far corner key while plugging in the keyboard (`~` left half, `-` right half). This will also clear the EEPROM.
|
||||
- **Physical reset button**: Hold the `BOOT` button on the Pico and press the `RST` button on the Pico, release the the `RST` button before the `BOOT` button.
|
||||
- **Keycode in layout**: In the default layout, the `Bootloader` keycode is above home row pinky on the right side's adjust layer.
|
||||
|
||||
Once you enter the bootloader, the keyboard will show up as a USB device on your computer, you could drag and drop a firmware file to flash it, but I recommend using the flash commands for the respective side.
|
43
keyboards/junco/rev1/config.h
Normal file
43
keyboards/junco/rev1/config.h
Normal file
@@ -0,0 +1,43 @@
|
||||
// Copyright 2022 Dane Skalski (@Daneski13)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
// Electrical Wiring Stuff
|
||||
#define MATRIX_ROW_PINS \
|
||||
{ GP8, GP9, GP10, GP11, GP12 }
|
||||
#define MATRIX_COL_PINS \
|
||||
{ GP2, GP3, GP4, GP5, GP6, GP7 }
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
|
||||
// Split Keyboard Stuff
|
||||
#define EE_HANDS // Sets the keyboard’s handedness using EEPROM
|
||||
#define SERIAL_USART_FULL_DUPLEX // Use full duplex communication (TRRS)
|
||||
#define SERIAL_USART_TX_PIN GP0 // USART TX pin
|
||||
#define SERIAL_USART_RX_PIN GP1 // USART RX pin
|
||||
|
||||
/* RGB Stuff */
|
||||
#ifdef RGB_MATRIX_ENABLE
|
||||
|
||||
# define RGB_DI_PIN GP15 // Pin for RGB logic
|
||||
# define RGB_MATRIX_LED_COUNT 74
|
||||
# define RGB_MATRIX_SPLIT \
|
||||
{ 37, 37 } // 37 LEDs on each side
|
||||
|
||||
#endif
|
||||
|
||||
/* Rotary Encoders Definition */
|
||||
// Indexing goes from physical leftmost to rightmost
|
||||
// 0: left-half left | 1: left-half right | 2: right-half left | 3: right-half right
|
||||
#ifdef ENCODER_ENABLE
|
||||
|
||||
# define ENCODERS_PAD_A \
|
||||
{ GP16, GP14 }
|
||||
# define ENCODERS_PAD_B \
|
||||
{ GP17, GP13 }
|
||||
# define ENCODERS_PAD_A_RIGHT \
|
||||
{ GP14, GP16 }
|
||||
# define ENCODERS_PAD_B_RIGHT \
|
||||
{ GP13, GP17 }
|
||||
|
||||
#endif
|
15
keyboards/junco/rev1/post_config.h
Normal file
15
keyboards/junco/rev1/post_config.h
Normal file
@@ -0,0 +1,15 @@
|
||||
// Copyright 2022 Dane Skalski (@Daneski13)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
/* Default Bootmagic lite */
|
||||
// Top left for left side is default in core
|
||||
|
||||
// Top right for right side
|
||||
#ifndef BOOTMAGIC_LITE_ROW_RIGHT
|
||||
# define BOOTMAGIC_LITE_ROW_RIGHT 5
|
||||
#endif
|
||||
#ifndef BOOTMAGIC_LITE_COLUMN_RIGHT
|
||||
# define BOOTMAGIC_LITE_COLUMN_RIGHT 0
|
||||
#endif
|
126
keyboards/junco/rev1/rev1.c
Normal file
126
keyboards/junco/rev1/rev1.c
Normal file
@@ -0,0 +1,126 @@
|
||||
// Copyright 2022 Dane Skalski (@Daneski13)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
// Hand swap
|
||||
#ifdef SWAP_HANDS_ENABLE
|
||||
__attribute__ ((weak))
|
||||
const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
|
||||
// Left
|
||||
{{0, 5}, {1, 5}, {2, 5}, {3, 5}, {4, 5}, {5, 5}, {6, 5}},
|
||||
{{0, 6}, {1, 6}, {2, 6}, {3, 6}, {4, 6}, {5, 6}, {6, 6}},
|
||||
{{0, 7}, {1, 7}, {2, 7}, {3, 7}, {4, 7}, {5, 7}, {6, 7}},
|
||||
{{0, 8}, {1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8}, {6, 8}},
|
||||
{{0, 9}, {1, 9}, {2, 9}, {3, 9}, {4, 9}, {5, 9}, {6, 9}},
|
||||
// Right
|
||||
{{0, 0}, {1, 0}, {2, 0}, {3, 0}, {4, 0}, {5, 0}, {6, 0}},
|
||||
{{0, 1}, {1, 1}, {2, 1}, {3, 1}, {4, 1}, {5, 1}, {6, 1}},
|
||||
{{0, 2}, {1, 2}, {2, 2}, {3, 2}, {4, 2}, {5, 2}, {6, 2}},
|
||||
{{0, 3}, {1, 3}, {2, 3}, {3, 3}, {4, 3}, {5, 3}, {6, 3}},
|
||||
{{0, 4}, {1, 4}, {2, 4}, {3, 4}, {4, 4}, {5, 4}, {6, 4}}
|
||||
};
|
||||
#endif
|
||||
|
||||
/* RGB LED matrix */
|
||||
#ifdef RGB_MATRIX_ENABLE
|
||||
/*
|
||||
Key Matrix Physical
|
||||
L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05,
|
||||
L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15,
|
||||
L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25,
|
||||
L30, L31, L32, L33, L34, L35, L45, R40, R30, R31, R32, R33, R34, R35,
|
||||
L40, L41, L42, L43, L44, R42, R41, R43, R44, R45
|
||||
|
||||
Key Electrical
|
||||
Left:
|
||||
{ L00, L01, L02, L03, L04, L05 },
|
||||
{ L10, L11, L12, L13, L14, L15 },
|
||||
{ L20, L21, L22, L23, L24, L25 },
|
||||
{ L30, L31, L32, L33, L34, L35 },
|
||||
{ L40, L41, L42, L43, L44, L45 },
|
||||
Right:
|
||||
{ R05, R04, R03, R02, R01, R00 },
|
||||
{ R15, R14, R13, R12, R11, R10 },
|
||||
{ R25, R24, R23, R22, R21, R20 },
|
||||
{ R35, R34, R33, R32, R31, R30 },
|
||||
{ R45, R44, R43, R42, R41, R40 }
|
||||
|
||||
Key matrix physical filled with LED electrical indexes, count starting at 1
|
||||
|
||||
Col
|
||||
0 1 2 3 4 5 6 7 8 9 10 11 12 13 Row
|
||||
|
||||
14 13 12 11 10 9 46 47 48 49 50 51 0
|
||||
6 7 8 45 44 43
|
||||
15 16 17 18 19 20 57 56 55 54 53 52 1
|
||||
|
||||
26 25 24 23 22 21 58 59 60 61 62 63 2
|
||||
5 4 3 40 41 42
|
||||
27 28 29 30 31 32 NO NO 69 68 67 66 65 64 3
|
||||
|
||||
37 36 35 34 33 70 71 72 73 74 4
|
||||
2 1 38 39
|
||||
*/
|
||||
|
||||
// clang-format off
|
||||
led_config_t g_led_config = {
|
||||
{ // Key Electrical Matrix to LED Index (count start at 0, so 8 is the first non-underglow key)
|
||||
|
||||
// Left Half
|
||||
{ 13, 12, 11, 10, 9, 8 },
|
||||
{ 14, 15, 16, 17, 18, 19 },
|
||||
{ 25, 24, 23, 22, 21, 20 },
|
||||
{ 26, 27, 28, 29, 30, 31 },
|
||||
{ 36, 35, 34, 33, 32, NO_LED },
|
||||
|
||||
// Right Half
|
||||
{ 50, 49, 48, 47, 46, 45 },
|
||||
{ 51, 52, 53, 54, 55, 56 },
|
||||
{ 62, 61, 60, 59, 58, 57 },
|
||||
{ 63, 64, 65, 66, 67, 68 },
|
||||
{ 73, 72, 71, 70, 69, NO_LED }
|
||||
},
|
||||
{ // LED Index to LED Physical Position (mirrored on right half)
|
||||
|
||||
// Left Underglow (indicies 1 - 8)
|
||||
{ 95, 72 }, { 52, 72 }, { 86, 40 }, { 52, 40 }, { 9, 40 }, { 9, 8 }, { 52, 8 }, { 86, 8 },
|
||||
// Left Matrix (indicies 9 - 37)
|
||||
{ 86, 0 }, { 69, 0 }, { 52, 0 }, { 34, 0 }, { 17, 0 }, { 0, 0 },
|
||||
{ 0, 16 }, { 17, 16 }, { 34, 16 }, { 52, 16 }, { 69, 16 }, { 86, 16 },
|
||||
{ 86, 32 }, { 69, 32 }, { 52, 32 }, { 34, 32 }, { 17, 32 }, { 0, 32 },
|
||||
{ 0, 48 }, { 17, 48 }, { 34, 48 }, { 52, 48 }, { 69, 48 }, { 86, 48 }, /* No Led */
|
||||
{ 103, 64 }, { 86, 64 }, { 69, 64 }, { 52, 64 }, { 34, 64 },
|
||||
|
||||
// Right Underglow (indicies 38 - 45)
|
||||
{ 129, 72 }, { 172, 72 }, { 138, 40 }, { 172, 40 }, { 215, 40 }, { 215, 8 }, { 172, 8 }, { 138, 8 },
|
||||
// Right Matrix (indicies 46 - 74)
|
||||
{ 138, 0 }, { 155, 0 }, { 172, 0 }, { 190, 0 }, { 207, 0 }, { 224, 0 },
|
||||
{ 224, 16 }, { 207, 16 }, { 190, 16 }, { 172, 16 }, { 155, 16 }, { 138, 16 },
|
||||
{ 138, 32 }, { 155, 32 }, { 172, 32 }, { 190, 32 }, { 207, 32 }, { 224, 32 },
|
||||
/* No Led */ { 224, 48 }, { 207, 48 }, { 190, 48 }, { 172, 48 }, { 155, 48 }, { 138, 48 },
|
||||
{ 121, 64 }, { 138, 64 }, { 155, 64 }, { 172, 64 }, { 190, 64 }
|
||||
},
|
||||
{ // LED Index to Flag (2 - Underglow, 4 - Key Backlight)
|
||||
|
||||
// Left Underglow
|
||||
2, 2, 2, 2, 2, 2, 2, 2,
|
||||
// Left Matrix
|
||||
4, 4, 4, 4, 4, 4,
|
||||
4, 4, 4, 4, 4, 4,
|
||||
4, 4, 4, 4, 4, 4,
|
||||
4, 4, 4, 4, 4, 4,
|
||||
4, 4, 4, 4, 4,
|
||||
|
||||
// Right Underglow
|
||||
2, 2, 2, 2, 2, 2, 2, 2,
|
||||
// Right Matrix
|
||||
4, 4, 4, 4, 4, 4,
|
||||
4, 4, 4, 4, 4, 4,
|
||||
4, 4, 4, 4, 4, 4,
|
||||
4, 4, 4, 4, 4, 4,
|
||||
4, 4, 4, 4, 4
|
||||
}
|
||||
};
|
||||
|
||||
#endif
|
3
keyboards/junco/rev1/rules.mk
Normal file
3
keyboards/junco/rev1/rules.mk
Normal file
@@ -0,0 +1,3 @@
|
||||
# RGB Stuff
|
||||
RGB_MATRIX_DRIVER = WS2812
|
||||
WS2812_DRIVER = vendor
|
9
keyboards/junco/rules.mk
Normal file
9
keyboards/junco/rules.mk
Normal file
@@ -0,0 +1,9 @@
|
||||
# Split Keyboard Stuff
|
||||
SPLIT_KEYBOARD = yes
|
||||
SERIAL_DRIVER = vendor
|
||||
|
||||
# Enable Bootmagic Lite
|
||||
BOOTMAGIC_ENABLE = yes
|
||||
|
||||
# Default Folder
|
||||
DEFAULT_FOLDER = junco/rev1
|
@@ -1,11 +1,5 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
enum encoder_names {
|
||||
LEFT_HALF_ENC,
|
||||
RIGHT_HALF_ENC1,
|
||||
RIGHT_HALF_ENC2,
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT_all(
|
||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS,
|
||||
@@ -37,8 +31,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
#if defined(ENCODER_MAP_ENABLE)
|
||||
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
|
||||
[0] = { ENCODER_CCW_CW(KC_PGUP, KC_PGDN), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_UP, KC_DOWN) },
|
||||
[1] = { ENCODER_CCW_CW(KC_PGUP, KC_PGDN), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_UP, KC_DOWN) },
|
||||
[2] = { ENCODER_CCW_CW(KC_PGUP, KC_PGDN), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_UP, KC_DOWN) }
|
||||
[0] = { ENCODER_CCW_CW(KC_PGDN, KC_PGUP), ENCODER_CCW_CW(KC_DOWN, KC_UP), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
|
||||
[1] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD), ENCODER_CCW_CW(KC_MPRV, KC_MNXT), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
|
||||
[2] = { ENCODER_CCW_CW(RGB_HUD, RGB_HUI), ENCODER_CCW_CW(RGB_SAD, RGB_SAI), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
|
||||
};
|
||||
#endif
|
||||
|
@@ -1,3 +1,4 @@
|
||||
VIA_ENABLE = yes
|
||||
LTO_ENABLE = yes
|
||||
ENCODER_MAP_ENABLE = yes
|
||||
ENCODER_MAP_ENABLE = yes
|
||||
MOUSEKEY_ENABLE = yes
|
||||
|
@@ -5,7 +5,7 @@
|
||||
"maintainer": "nooges",
|
||||
"usb": {
|
||||
"vid": "0xCB10",
|
||||
"pid": "0x126A",
|
||||
"pid": "0x136A",
|
||||
"device_version": "1.0.0"
|
||||
},
|
||||
"encoder": {
|
||||
|
@@ -38,6 +38,24 @@
|
||||
{R30, R31, R32, R33, R34, R35, R36, R37} \
|
||||
}
|
||||
|
||||
#define LAYOUT_thumb_row( \
|
||||
L07, L06, L05, L04, L03, L02, R05, R04, R03, R02, R01, R00, \
|
||||
L17, L16, L15, L14, L13, L12, L01, R06, R15, R14, R13, R12, R11, R10, \
|
||||
L27, L26, L25, L24, L23, L22, L11, R16, R25, R24, R23, R22, R21, R20, \
|
||||
L37, L36, L35, L34, L33, L32, L21, R26, R35, R34, R33, R32, R31, R30, \
|
||||
L00, L10, L20, L30, R37, R27, R17, R07, \
|
||||
L31, R36 \
|
||||
) { \
|
||||
{L00, L01, L02, L03, L04, L05, L06, L07}, \
|
||||
{L10, L11, L12, L13, L14, L15, L16, L17}, \
|
||||
{L20, L21, L22, L23, L24, L25, L26, L27}, \
|
||||
{L30, L31, L32, L33, L34, L35, L36, L37}, \
|
||||
{R00, R01, R02, R03, R04, R05, R06, R07}, \
|
||||
{R10, R11, R12, R13, R14, R15, R16, R17}, \
|
||||
{R20, R21, R22, R23, R24, R25, R26, R27}, \
|
||||
{R30, R31, R32, R33, R34, R35, R36, R37} \
|
||||
}
|
||||
|
||||
#include "wire-protocol-constants.h"
|
||||
#define I2C_ADDR_LEFT (0x58 << 1)
|
||||
#define I2C_ADDR_RIGHT (I2C_ADDR_LEFT + 6)
|
||||
|
244
keyboards/keychron/q11/ansi_encoder/ansi_encoder.c
Executable file
244
keyboards/keychron/q11/ansi_encoder/ansi_encoder.c
Executable file
@@ -0,0 +1,244 @@
|
||||
/* Copyright 2023 @ Keychron (https://www.keychron.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 "quantum.h"
|
||||
|
||||
#ifdef RGB_MATRIX_ENABLE
|
||||
|
||||
// clang-format off
|
||||
|
||||
const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
|
||||
/* Refer to IS31 manual for these locations
|
||||
* driver
|
||||
* | R location
|
||||
* | | G location
|
||||
* | | | B location
|
||||
* | | | | */
|
||||
{0, A_2, C_2, B_2}, // ESC
|
||||
{0, A_3, C_3, B_3}, // F1
|
||||
{0, A_4, C_4, B_4}, // F2
|
||||
{0, A_5, C_5, B_5}, // F3
|
||||
{0, A_6, C_6, B_6}, // F4
|
||||
{0, A_7, C_7, B_7}, // F5
|
||||
{0, A_8, C_8, B_8}, // F6
|
||||
|
||||
{0, D_1, F_1, E_1}, // M1
|
||||
{0, D_2, F_2, E_2}, // `~
|
||||
{0, D_3, F_3, E_3}, // 1!
|
||||
{0, D_4, F_4, E_4}, // 2@
|
||||
{0, D_5, F_5, E_5}, // 3#
|
||||
{0, D_6, F_6, E_6}, // 4$
|
||||
{0, D_7, F_7, E_7}, // 5%
|
||||
{0, D_8, F_8, E_8}, // 6^
|
||||
|
||||
{0, G_1, I_1, H_1}, // M2
|
||||
{0, G_2, I_2, H_2}, // TAB
|
||||
{0, G_3, I_3, H_3}, // Q
|
||||
{0, G_4, I_4, H_4}, // W
|
||||
{0, G_5, I_5, H_5}, // E
|
||||
{0, G_6, I_6, H_6}, // R
|
||||
{0, G_7, I_7, H_7}, // T
|
||||
|
||||
{0, J_1, L_1, K_1}, // M3
|
||||
{0, J_2, L_2, K_2}, // CapsJock
|
||||
{0, J_3, L_3, K_3}, // A
|
||||
{0, J_4, L_4, K_4}, // S
|
||||
{0, J_5, L_5, K_5}, // D
|
||||
{0, J_6, L_6, K_6}, // F
|
||||
{0, J_7, L_7, K_7}, // G
|
||||
|
||||
{0, J_9, L_9, K_9}, // M4
|
||||
{0, J_11, L_11, K_11}, // Shift_J
|
||||
{0, J_12, L_12, K_12}, // Z
|
||||
{0, J_13, L_13, K_13}, // X
|
||||
{0, J_14, L_14, K_14}, // C
|
||||
{0, J_15, L_15, K_15}, // V
|
||||
{0, J_16, L_16, K_16}, // B
|
||||
|
||||
{0, G_9, I_9, H_9}, // M5
|
||||
{0, G_10, I_10, H_10}, // Ctrl_L
|
||||
{0, G_11, I_11, H_11}, // WGn_L
|
||||
{0, G_12, I_12, H_12}, // Alt_L
|
||||
{0, G_13, I_13, H_13}, // Fn
|
||||
{0, G_15, I_15, H_15}, // Space
|
||||
|
||||
{0, A_16, C_16, B_16}, // F7
|
||||
{0, A_15, C_15, B_15}, // F8
|
||||
{0, A_14, C_14, B_14}, // F9
|
||||
{0, A_13, C_13, B_13}, // F11
|
||||
{0, A_12, C_12, B_12}, // F11
|
||||
{0, A_11, C_11, B_11}, // F12
|
||||
{0, A_10, C_10, B_10}, // INS
|
||||
{0, A_9, C_9, B_9}, // DEL
|
||||
|
||||
{0, D_16, F_16, E_16}, // 7&
|
||||
{0, D_15, F_15, E_15}, // 8*
|
||||
{0, D_14, F_14, E_14}, // 9(
|
||||
{0, D_13, F_13, E_13}, // 1)
|
||||
{0, D_12, F_12, E_12}, // -_
|
||||
{0, D_11, F_11, E_11}, // =+
|
||||
{0, D_10, F_10, E_10}, // BackSpace
|
||||
{0, D_8, F_8, E_8}, // PgUp
|
||||
|
||||
{0, G_16, I_16, H_16}, // Y
|
||||
{0, G_15, I_15, H_15}, // U
|
||||
{0, G_14, I_14, H_14}, // G
|
||||
{0, G_13, I_13, H_13}, // O
|
||||
{0, G_12, I_12, H_12}, // P
|
||||
{0, G_11, I_11, H_11}, // [
|
||||
{0, G_10, I_10, H_10}, // ]
|
||||
{0, G_9, I_9, H_9}, // \||
|
||||
{0, G_8, I_8, H_8}, // PgDn
|
||||
|
||||
{0, J_16, L_16, K_16}, // H
|
||||
{0, J_15, L_15, K_15}, // J
|
||||
{0, J_14, L_14, K_14}, // KKEY_PRESS_HOME
|
||||
{0, J_13, L_13, K_13}, // J
|
||||
{0, J_12, L_12, K_12}, // ;:
|
||||
{0, J_11, L_11, K_11}, // '"
|
||||
{0, J_9, L_9, K_9}, // Enter
|
||||
{0, J_8, L_8, K_8}, // Home
|
||||
|
||||
{0, J_7, L_7, K_7}, // N
|
||||
{0, J_6, L_6, K_6}, // M
|
||||
{0, J_5, L_5, K_5}, // ,<
|
||||
{0, J_4, L_4, K_4}, // .>
|
||||
{0, J_3, L_3, K_3}, // ?/
|
||||
{0, J_2, L_2, K_2}, // Shift_R
|
||||
{0, J_1, L_1, K_1}, // Up
|
||||
|
||||
{0, G_6, I_6, H_6}, // Space
|
||||
{0, G_5, I_5, H_5}, // Win_R
|
||||
{0, G_4, I_4, H_4}, // Fn
|
||||
{0, G_3, I_3, H_3}, // Ctrl_R
|
||||
{0, G_2, I_2, H_2}, // Left
|
||||
{0, G_1, I_1, H_1}, // Down
|
||||
{0, G_7, I_7, H_7}, // Right
|
||||
};
|
||||
|
||||
#define __ NO_LED
|
||||
|
||||
led_config_t g_led_config = {
|
||||
{
|
||||
// Key Matrix to LED Index
|
||||
{ __, 0, 1, 2, 3, 4, 5, 6, __ },
|
||||
{ 7, 8, 9, 10, 11, 12, 13, 14, __ },
|
||||
{ 15, 16, 17, 18, 19, __, 20, 21, __ },
|
||||
{ 22, 23, 24, 25, 26, 27, 28, __, __ },
|
||||
{ 29, __, 30, 31, 32, 33, 34, 35, __ },
|
||||
{ 36, 37, 38, 39, 40, __, 41, __, __ },
|
||||
{ 42, 43, 44, 45, 46, 47, 48, 49, __ },
|
||||
{ 50, 51, 52, 53, 54, 55, 56, __, 57 },
|
||||
{ 58, 59, 60, 61, 62, 63, 64, 65, 66 },
|
||||
{ 67, 68, 69, 70, 71, 72, __, 73, 74 },
|
||||
{ 75, 76, 77, 78, 79, 80, __, 81, __ },
|
||||
{ __, 82, 83, 84, 85, __, 86, 87, 88 },
|
||||
},
|
||||
{
|
||||
// LED Index to Physical Position
|
||||
{17,0}, {31,0}, {45,0}, {59,0}, {72,0}, {86,0}, {100,0},
|
||||
{0,15}, {17,15}, {31,15}, {45,15}, {59,15}, {72,15}, {86,15}, {100,15},
|
||||
{0,27}, {21,27}, {38,27}, {52,27}, {66,27}, {79,27}, {93,27},
|
||||
{0,40}, {22,40}, {41,40}, {55,40}, {69,40}, {83,40}, {97,40},
|
||||
{0,52}, {26,52}, {48,52}, {61,52}, {76,52}, {90,52}, {102,52},
|
||||
{0,64}, {19,64}, {36,64}, {53,64}, {70,64}, {94,64},
|
||||
{110,0}, {124,0}, {138,0}, {152,0}, {165,0}, {179,0}, {193,0}, {207,0},
|
||||
{110,15}, {124,15}, {138,15}, {152,15}, {165,15}, {179,15}, {200,15}, {224,15},
|
||||
{104,27}, {117,27}, {131,27}, {145,27}, {158,27}, {172,27}, {186,27}, {203,27}, {224,27},
|
||||
{107,40}, {121,40}, {134,40}, {148,40}, {162,40}, {176,40}, {198,40}, {224,40},
|
||||
{114,52}, {127,52}, {141,52}, {155,52}, {169,52}, {188,52}, {210,52},
|
||||
{126,64}, {152,64}, {166,64}, {180,64}, {196,64}, {210,64}, {224,64},
|
||||
},
|
||||
{
|
||||
// RGB LED Index to Flag
|
||||
1, 1, 1, 1, 1, 1, 1,
|
||||
1, 1, 4, 4, 4, 4, 4, 4,
|
||||
1, 1, 4, 4, 4, 4, 4,
|
||||
1, 8, 4, 4, 4, 4, 4,
|
||||
1, 1, 4, 4, 4, 4, 4,
|
||||
1, 1, 1, 1, 1, 4,
|
||||
1, 1, 1, 1, 1, 1, 1, 1,
|
||||
4, 4, 4, 4, 4, 4, 1, 1,
|
||||
4, 4, 4, 4, 4, 4, 4, 4, 1,
|
||||
4, 4, 4, 4, 4, 4, 1, 1,
|
||||
4, 4, 4, 4, 4, 1, 1,
|
||||
4, 1, 1, 1, 1, 1, 1,
|
||||
}
|
||||
};
|
||||
|
||||
// clang-format on
|
||||
|
||||
#endif
|
||||
|
||||
#define ADC_BUFFER_DEPTH 1
|
||||
#define ADC_NUM_CHANNELS 1
|
||||
#define ADC_SAMPLING_RATE ADC_SMPR_SMP_12P5
|
||||
#define ADC_RESOLUTION ADC_CFGR_RES_10BITS
|
||||
|
||||
static int16_t analogReadPin_my(pin_t pin) {
|
||||
ADCConfig adcCfg = {};
|
||||
adcsample_t sampleBuffer[ADC_NUM_CHANNELS*ADC_BUFFER_DEPTH];
|
||||
ADCDriver* targetDriver = &ADCD1;
|
||||
ADCConversionGroup adcConversionGroup = {
|
||||
.circular = FALSE,
|
||||
.num_channels = (uint16_t)(ADC_NUM_CHANNELS),
|
||||
.cfgr = ADC_RESOLUTION,
|
||||
};
|
||||
|
||||
palSetLineMode(pin, PAL_MODE_INPUT_ANALOG);
|
||||
switch (pin) {
|
||||
case B0:
|
||||
adcConversionGroup.smpr[2] = ADC_SMPR2_SMP_AN15(ADC_SAMPLING_RATE);
|
||||
adcConversionGroup.sqr[0] = ADC_SQR1_SQ1_N(ADC_CHANNEL_IN15);
|
||||
sampleBuffer[0] = 0;
|
||||
break;
|
||||
case B1:
|
||||
adcConversionGroup.smpr[2] = ADC_SMPR2_SMP_AN16(ADC_SAMPLING_RATE);
|
||||
adcConversionGroup.sqr[0] = ADC_SQR1_SQ1_N(ADC_CHANNEL_IN16);
|
||||
sampleBuffer[0] = 0;
|
||||
break;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
adcStart(targetDriver, &adcCfg);
|
||||
if (adcConvert(targetDriver, &adcConversionGroup, &sampleBuffer[0], ADC_BUFFER_DEPTH) != MSG_OK) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
return *sampleBuffer;
|
||||
}
|
||||
|
||||
void keyboard_post_init_kb(void) {
|
||||
// 1. The pin A5/B5 of the USB C interface in the left hand is connected to the pin A0 of MCU,
|
||||
// A0 will be set to output and write high when keyboard initial.
|
||||
// 2. The same pin in the right hand is connected to the pin B0 and B1 of MCU respectively,
|
||||
// and the ADC function of B0 and B1 will be enabled when keyboard initial.
|
||||
// 3. because the serial usart RXD and TXD is multiplexed on USB's D+ and D- in the right hand.
|
||||
// So detect the voltage on the pin A5/B5 of the USB C interface by ADC,
|
||||
// and disable USB connectivity when the ADC value exceeds 1000,
|
||||
// to avoid affecting the serial usart communication between the left hand and the right hand.
|
||||
if (is_keyboard_left()) {
|
||||
setPinOutput(A0);
|
||||
writePinHigh(A0);
|
||||
} else {
|
||||
if ((analogReadPin_my(B0) > 1000) || (analogReadPin_my(B1) > 1000)) {
|
||||
setPinInput(A11);
|
||||
setPinInput(A12);
|
||||
}
|
||||
}
|
||||
|
||||
keyboard_post_init_user();
|
||||
}
|
7
keyboards/studiokestra/galatea/rev1/rev1.c → keyboards/keychron/q11/ansi_encoder/config.h
Normal file → Executable file
7
keyboards/studiokestra/galatea/rev1/rev1.c → keyboards/keychron/q11/ansi_encoder/config.h
Normal file → Executable file
@@ -1,4 +1,4 @@
|
||||
/* Copyright 2021 Studio Kestra
|
||||
/* Copyright 2023 @ Keychron(https://www.keychron.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
|
||||
@@ -14,4 +14,7 @@
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "rev1.h"
|
||||
#pragma once
|
||||
|
||||
/* Enable caps-lock LED */
|
||||
#define CAPS_LOCK_LED_INDEX 23
|
166
keyboards/keychron/q11/ansi_encoder/info.json
Executable file
166
keyboards/keychron/q11/ansi_encoder/info.json
Executable file
@@ -0,0 +1,166 @@
|
||||
{
|
||||
"keyboard_name": "Keychron Q11",
|
||||
"manufacturer": "Keychron",
|
||||
"url": "https://github.com/Keychron",
|
||||
"maintainer": "lalalademaxiya1",
|
||||
"bootloader": "stm32-dfu",
|
||||
"bootmagic": {
|
||||
"matrix": [0, 1]
|
||||
},
|
||||
"features": {
|
||||
"audio": false,
|
||||
"backlight": false,
|
||||
"bootmagic": true,
|
||||
"command": false,
|
||||
"console": false,
|
||||
"dip_switch": true,
|
||||
"encoder": true,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true,
|
||||
"rgb_matrix": true,
|
||||
"rgblight": false
|
||||
},
|
||||
"diode_direction": "ROW2COL",
|
||||
"encoder": {
|
||||
"rotary": [
|
||||
{"pin_a": "B0", "pin_b": "B1"}
|
||||
]
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["A7", "A6", "A5", "A4", "A3", "A2", "A1", "C15", null],
|
||||
"rows": ["A13", "A14", "A15", "B3", "B4", "B5"]
|
||||
},
|
||||
"processor": "STM32L432",
|
||||
"rgb_matrix": {
|
||||
"driver": "CKLED2001",
|
||||
"split_count": [42, 47]
|
||||
},
|
||||
"split": {
|
||||
"enabled": true,
|
||||
"encoder": {
|
||||
"right": {
|
||||
"rotary": [
|
||||
{"pin_a": "C14", "pin_b": "C15"}
|
||||
]
|
||||
}
|
||||
},
|
||||
"matrix_pins": {
|
||||
"right": {
|
||||
"cols": ["A8", "A7", "A6", "A5", "A4", "A3", "A2", "A1", "A0"],
|
||||
"rows": ["B5", "B4", "B3", "A15", "A14", "A13"]
|
||||
}
|
||||
},
|
||||
"transport": {
|
||||
"protocol": "serial_usart",
|
||||
"sync_matrix_state": false
|
||||
}
|
||||
},
|
||||
"usb": {
|
||||
"vid": "0x3434",
|
||||
"pid": "0x01E0",
|
||||
"device_version": "1.0.0"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT_ansi_91": {
|
||||
"layout": [
|
||||
{"matrix":[0,0], "x":0, "y":0},
|
||||
{"matrix":[0,1], "x":1.25, "y":0},
|
||||
{"matrix":[0,2], "x":2.25, "y":0},
|
||||
{"matrix":[0,3], "x":3.25, "y":0},
|
||||
{"matrix":[0,4], "x":4.25, "y":0},
|
||||
{"matrix":[0,5], "x":5.25, "y":0},
|
||||
{"matrix":[0,6], "x":6.25, "y":0},
|
||||
{"matrix":[0,7], "x":7.25, "y":0},
|
||||
{"matrix":[6,0], "x":8.25, "y":0},
|
||||
{"matrix":[6,1], "x":9.25, "y":0},
|
||||
{"matrix":[6,2], "x":10.25, "y":0},
|
||||
{"matrix":[6,3], "x":11.25, "y":0},
|
||||
{"matrix":[6,4], "x":12.25, "y":0},
|
||||
{"matrix":[6,5], "x":13.25, "y":0},
|
||||
{"matrix":[6,6], "x":14.25, "y":0},
|
||||
{"matrix":[6,7], "x":15.25, "y":0},
|
||||
{"matrix":[6,8], "x":16.5, "y":0},
|
||||
|
||||
{"matrix":[1,0], "x":0, "y":1.25},
|
||||
{"matrix":[1,1], "x":1.25, "y":1.25},
|
||||
{"matrix":[1,2], "x":2.25, "y":1.25},
|
||||
{"matrix":[1,3], "x":3.25, "y":1.25},
|
||||
{"matrix":[1,4], "x":4.25, "y":1.25},
|
||||
{"matrix":[1,5], "x":5.25, "y":1.25},
|
||||
{"matrix":[1,6], "x":6.25, "y":1.25},
|
||||
{"matrix":[1,7], "x":7.25, "y":1.25},
|
||||
{"matrix":[7,0], "x":8.25, "y":1.25},
|
||||
{"matrix":[7,1], "x":9.25, "y":1.25},
|
||||
{"matrix":[7,2], "x":10.25, "y":1.25},
|
||||
{"matrix":[7,3], "x":11.25, "y":1.25},
|
||||
{"matrix":[7,4], "x":12.25, "y":1.25},
|
||||
{"matrix":[7,5], "x":13.25, "y":1.25},
|
||||
{"matrix":[7,6], "x":14.25, "y":1.25, "w":2},
|
||||
{"matrix":[7,8], "x":16.5, "y":1.25},
|
||||
|
||||
{"matrix":[2,0], "x":0, "y":2.25},
|
||||
{"matrix":[2,1], "x":1.25, "y":2.25, "w":1.5},
|
||||
{"matrix":[2,2], "x":2.75, "y":2.25},
|
||||
{"matrix":[2,3], "x":3.75, "y":2.25},
|
||||
{"matrix":[2,4], "x":4.75, "y":2.25},
|
||||
{"matrix":[2,6], "x":5.75, "y":2.25},
|
||||
{"matrix":[2,7], "x":6.75, "y":2.25},
|
||||
{"matrix":[8,0], "x":7.75, "y":2.25},
|
||||
{"matrix":[8,1], "x":8.75, "y":2.25},
|
||||
{"matrix":[8,2], "x":9.75, "y":2.25},
|
||||
{"matrix":[8,3], "x":10.75, "y":2.25},
|
||||
{"matrix":[8,4], "x":11.75, "y":2.25},
|
||||
{"matrix":[8,5], "x":12.75, "y":2.25},
|
||||
{"matrix":[8,6], "x":13.75, "y":2.25},
|
||||
{"matrix":[8,7], "x":14.75, "y":2.25, "w":1.5},
|
||||
{"matrix":[8,8], "x":16.5, "y":2.25},
|
||||
|
||||
{"matrix":[3,0], "x":0, "y":3.25},
|
||||
{"matrix":[3,1], "x":1.25, "y":3.25, "w":1.75},
|
||||
{"matrix":[3,2], "x":3, "y":3.25},
|
||||
{"matrix":[3,3], "x":4, "y":3.25},
|
||||
{"matrix":[3,4], "x":5, "y":3.25},
|
||||
{"matrix":[3,5], "x":6, "y":3.25},
|
||||
{"matrix":[3,6], "x":7, "y":3.25},
|
||||
{"matrix":[9,0], "x":8, "y":3.25},
|
||||
{"matrix":[9,1], "x":9, "y":3.25},
|
||||
{"matrix":[9,2], "x":10, "y":3.25},
|
||||
{"matrix":[9,3], "x":11, "y":3.25},
|
||||
{"matrix":[9,4], "x":12, "y":3.25},
|
||||
{"matrix":[9,5], "x":13, "y":3.25},
|
||||
{"matrix":[9,7], "x":14, "y":3.25, "w":2.25},
|
||||
{"matrix":[9,8], "x":16.5, "y":3.25},
|
||||
|
||||
{"matrix":[4,0], "x":0, "y":4.25},
|
||||
{"matrix":[4,2], "x":1.25, "y":4.25, "w":2.25},
|
||||
{"matrix":[4,3], "x":3.5, "y":4.25},
|
||||
{"matrix":[4,4], "x":4.5, "y":4.25},
|
||||
{"matrix":[4,5], "x":5.5, "y":4.25},
|
||||
{"matrix":[4,6], "x":6.5, "y":4.25},
|
||||
{"matrix":[4,7], "x":7.5, "y":4.25},
|
||||
{"matrix":[10,0], "x":8.5, "y":4.25},
|
||||
{"matrix":[10,1], "x":9.5, "y":4.25},
|
||||
{"matrix":[10,2], "x":10.5, "y":4.25},
|
||||
{"matrix":[10,3], "x":11.5, "y":4.25},
|
||||
{"matrix":[10,4], "x":12.5, "y":4.25},
|
||||
{"matrix":[10,5], "x":13.5, "y":4.25, "w":1.75},
|
||||
{"matrix":[10,7], "x":15.5, "y":4.25},
|
||||
|
||||
{"matrix":[5,0], "x":0, "y":5.25},
|
||||
{"matrix":[5,1], "x":1.25, "y":5.25, "w":1.25},
|
||||
{"matrix":[5,2], "x":2.5, "y":5.25, "w":1.25},
|
||||
{"matrix":[5,3], "x":3.75, "y":5.25, "w":1.25},
|
||||
{"matrix":[5,4], "x":5, "y":5.25, "w":1.25},
|
||||
{"matrix":[5,6], "x":6.25, "y":5.25, "w":2.25},
|
||||
{"matrix":[11,1], "x":8.5, "y":5.25, "w":2.75},
|
||||
{"matrix":[11,2], "x":11.25, "y":5.25},
|
||||
{"matrix":[11,3], "x":12.25, "y":5.25},
|
||||
{"matrix":[11,4], "x":13.25, "y":5.25},
|
||||
{"matrix":[11,6], "x":14.5, "y":5.25},
|
||||
{"matrix":[11,7], "x":15.5, "y":5.25},
|
||||
{"matrix":[11,8], "x":16.5, "y":5.25}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
71
keyboards/keychron/q11/ansi_encoder/keymaps/default/keymap.c
Executable file
71
keyboards/keychron/q11/ansi_encoder/keymaps/default/keymap.c
Executable file
@@ -0,0 +1,71 @@
|
||||
/* Copyright 2023 @ Keychron (https://www.keychron.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
|
||||
|
||||
// clang-format off
|
||||
|
||||
enum layers{
|
||||
MAC_BASE,
|
||||
MAC_FN,
|
||||
WIN_BASE,
|
||||
WIN_FN
|
||||
};
|
||||
|
||||
#define KC_TASK LGUI(KC_TAB)
|
||||
#define KC_FLXP LGUI(KC_E)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[MAC_BASE] = LAYOUT_ansi_91(
|
||||
KC_MUTE, KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_INS, KC_DEL, KC_MUTE,
|
||||
_______, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP,
|
||||
_______, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN,
|
||||
_______, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_HOME,
|
||||
_______, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
|
||||
_______, KC_LCTL, KC_LOPT, KC_LCMD, MO(MAC_FN), KC_SPC, KC_SPC, KC_RCMD, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
[MAC_FN] = LAYOUT_ansi_91(
|
||||
RGB_TOG, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, RGB_TOG,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
|
||||
|
||||
[WIN_BASE] = LAYOUT_ansi_91(
|
||||
KC_MUTE, KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, KC_MUTE,
|
||||
_______, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP,
|
||||
_______, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN,
|
||||
_______, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_HOME,
|
||||
_______, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
|
||||
_______, KC_LCTL, KC_LWIN, KC_LALT, MO(WIN_FN), KC_SPC, KC_SPC, KC_RALT, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
[WIN_FN] = LAYOUT_ansi_91(
|
||||
RGB_TOG, _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_TOG,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
|
||||
};
|
||||
|
||||
#if defined(ENCODER_MAP_ENABLE)
|
||||
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
|
||||
[MAC_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
|
||||
[MAC_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI), ENCODER_CCW_CW(RGB_VAD, RGB_VAI) },
|
||||
[WIN_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
|
||||
[WIN_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI), ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }
|
||||
};
|
||||
#endif // ENCODER_MAP_ENABLE
|
1
keyboards/keychron/q11/ansi_encoder/keymaps/default/rules.mk
Executable file
1
keyboards/keychron/q11/ansi_encoder/keymaps/default/rules.mk
Executable file
@@ -0,0 +1 @@
|
||||
ENCODER_MAP_ENABLE = yes
|
84
keyboards/keychron/q11/ansi_encoder/keymaps/keychron/keymap.c
Executable file
84
keyboards/keychron/q11/ansi_encoder/keymaps/keychron/keymap.c
Executable file
@@ -0,0 +1,84 @@
|
||||
/* Copyright 2023 @ Keychron (https://www.keychron.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
|
||||
#include "keychron_common.h"
|
||||
|
||||
// clang-format off
|
||||
|
||||
enum layers{
|
||||
MAC_BASE,
|
||||
MAC_FN,
|
||||
WIN_BASE,
|
||||
WIN_FN
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[MAC_BASE] = LAYOUT_ansi_91(
|
||||
KC_MUTE, KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_INS, KC_DEL, KC_MUTE,
|
||||
MC_1, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP,
|
||||
MC_2, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN,
|
||||
MC_3, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_HOME,
|
||||
MC_4, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
|
||||
MC_5, KC_LCTL, KC_LOPTN, KC_LCMMD, MO(MAC_FN), KC_SPC, KC_SPC, KC_RCMMD, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
[MAC_FN] = LAYOUT_ansi_91(
|
||||
RGB_TOG, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, RGB_TOG,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
|
||||
|
||||
[WIN_BASE] = LAYOUT_ansi_91(
|
||||
KC_MUTE, KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, KC_MUTE,
|
||||
MC_1, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP,
|
||||
MC_2, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN,
|
||||
MC_3, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_HOME,
|
||||
MC_4, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
|
||||
MC_5, KC_LCTL, KC_LWIN, KC_LALT, MO(WIN_FN), KC_SPC, KC_SPC, KC_RALT, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
[WIN_FN] = LAYOUT_ansi_91(
|
||||
RGB_TOG, _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_TOG,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
|
||||
};
|
||||
|
||||
#if defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE)
|
||||
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
|
||||
[MAC_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
|
||||
[MAC_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI), ENCODER_CCW_CW(RGB_VAD, RGB_VAI)},
|
||||
[WIN_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU)},
|
||||
[WIN_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI), ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}
|
||||
};
|
||||
#endif // ENCODER_MAP_ENABLE
|
||||
|
||||
// clang-format on
|
||||
|
||||
void housekeeping_task_user(void) {
|
||||
housekeeping_task_keychron();
|
||||
}
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
if (!process_record_keychron(keycode, record)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
5
keyboards/keychron/q11/ansi_encoder/keymaps/keychron/rules.mk
Executable file
5
keyboards/keychron/q11/ansi_encoder/keymaps/keychron/rules.mk
Executable file
@@ -0,0 +1,5 @@
|
||||
VIA_ENABLE = yes
|
||||
ENCODER_MAP_ENABLE = yes
|
||||
|
||||
VPATH += keyboards/keychron/common
|
||||
SRC += keychron_common.c
|
72
keyboards/keychron/q11/ansi_encoder/keymaps/via/keymap.c
Executable file
72
keyboards/keychron/q11/ansi_encoder/keymaps/via/keymap.c
Executable file
@@ -0,0 +1,72 @@
|
||||
/* Copyright 2023 @ Keychron (https://www.keychron.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
|
||||
|
||||
// clang-format off
|
||||
|
||||
enum layers{
|
||||
MAC_BASE,
|
||||
MAC_FN,
|
||||
WIN_BASE,
|
||||
WIN_FN
|
||||
};
|
||||
|
||||
#define KC_TASK LGUI(KC_TAB)
|
||||
#define KC_FLXP LGUI(KC_E)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[MAC_BASE] = LAYOUT_ansi_91(
|
||||
KC_MUTE, KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_INS, KC_DEL, KC_MUTE,
|
||||
MC_1, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP,
|
||||
MC_2, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN,
|
||||
MC_3, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_HOME,
|
||||
MC_4, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
|
||||
MC_5, KC_LCTL, KC_LOPT, KC_LCMD, MO(MAC_FN), KC_SPC, KC_SPC, KC_RCMD, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
[MAC_FN] = LAYOUT_ansi_91(
|
||||
RGB_TOG, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, RGB_TOG,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
|
||||
|
||||
[WIN_BASE] = LAYOUT_ansi_91(
|
||||
KC_MUTE, KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, KC_MUTE,
|
||||
MC_1, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP,
|
||||
MC_2, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN,
|
||||
MC_3, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_HOME,
|
||||
MC_4, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
|
||||
MC_5, KC_LCTL, KC_LWIN, KC_LALT, MO(WIN_FN), KC_SPC, KC_SPC, KC_RALT, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
[WIN_FN] = LAYOUT_ansi_91(
|
||||
RGB_TOG, _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_TOG,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
|
||||
};
|
||||
|
||||
#if defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE)
|
||||
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
|
||||
[MAC_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
|
||||
[MAC_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI), ENCODER_CCW_CW(RGB_VAD, RGB_VAI) },
|
||||
[WIN_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
|
||||
[WIN_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI), ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }
|
||||
};
|
||||
#endif // ENCODER_MAP_ENABLE
|
2
keyboards/keychron/q11/ansi_encoder/keymaps/via/rules.mk
Executable file
2
keyboards/keychron/q11/ansi_encoder/keymaps/via/rules.mk
Executable file
@@ -0,0 +1,2 @@
|
||||
VIA_ENABLE = yes
|
||||
ENCODER_MAP_ENABLE = yes
|
9
keyboards/keychron/q11/ansi_encoder/rules.mk
Executable file
9
keyboards/keychron/q11/ansi_encoder/rules.mk
Executable file
@@ -0,0 +1,9 @@
|
||||
# Build Options
|
||||
# change yes to no to disable
|
||||
#
|
||||
EEPROM_DRIVER = wear_leveling
|
||||
WEAR_LEVELING_DRIVER = embedded_flash
|
||||
SERIAL_DRIVER = usart
|
||||
|
||||
# Enter lower-power sleep mode when on the ChibiOS idle thread
|
||||
OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user