mirror of
https://github.com/qmk/qmk_firmware.git
synced 2025-07-16 04:41:28 +00:00
Merge branch 'qmk:master' into master
This commit is contained in:
commit
c24ea65057
1
.github/workflows/feature_branch_update.yml
vendored
1
.github/workflows/feature_branch_update.yml
vendored
@ -18,6 +18,7 @@ jobs:
|
||||
matrix:
|
||||
branch:
|
||||
- xap
|
||||
- riot
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
2
.github/workflows/format.yml
vendored
2
.github/workflows/format.yml
vendored
@ -35,7 +35,7 @@ jobs:
|
||||
|
||||
- name: Get changed files
|
||||
id: file_changes
|
||||
uses: tj-actions/changed-files@v36
|
||||
uses: tj-actions/changed-files@v37
|
||||
|
||||
- name: Run qmk formatters
|
||||
shell: 'bash {0}'
|
||||
|
32
.github/workflows/lint.yml
vendored
32
.github/workflows/lint.yml
vendored
@ -27,7 +27,7 @@ jobs:
|
||||
|
||||
- name: Get changed files
|
||||
id: file_changes
|
||||
uses: tj-actions/changed-files@v36
|
||||
uses: tj-actions/changed-files@v37
|
||||
|
||||
- name: Print info
|
||||
run: |
|
||||
@ -36,6 +36,7 @@ jobs:
|
||||
echo '${{ steps.file_changes.outputs.all_changed_files}}'
|
||||
|
||||
- name: Run qmk lint
|
||||
if: always()
|
||||
shell: 'bash {0}'
|
||||
run: |
|
||||
QMK_CHANGES=$(echo -e '${{ steps.file_changes.outputs.all_changed_files}}' | sed 's/ /\n/g')
|
||||
@ -72,3 +73,32 @@ jobs:
|
||||
exit 255
|
||||
fi
|
||||
exit $exit_code
|
||||
|
||||
- name: Verify at most one added keyboard
|
||||
if: always()
|
||||
shell: 'bash {0}'
|
||||
run: |
|
||||
git reset --hard
|
||||
git clean -xfd
|
||||
|
||||
# Get the keyboard list and count for the target branch
|
||||
git checkout -f ${{ github.base_ref }}
|
||||
git pull --ff-only
|
||||
QMK_KEYBOARDS_BASE=$(qmk list-keyboards)
|
||||
QMK_KEYBOARDS_BASE_COUNT=$(qmk list-keyboards | wc -l)
|
||||
|
||||
# Get the keyboard list and count for the PR
|
||||
git checkout -f ${{ github.head_ref }}
|
||||
git merge --no-commit --squash ${{ github.base_ref }}
|
||||
QMK_KEYBOARDS_PR=$(qmk list-keyboards)
|
||||
QMK_KEYBOARDS_PR_COUNT=$(qmk list-keyboards | wc -l)
|
||||
|
||||
echo "::group::Keyboards changes in this PR"
|
||||
diff -d -U 0 <(echo "$QMK_KEYBOARDS_BASE") <(echo "$QMK_KEYBOARDS_PR") | grep -vE '^(---|\+\+\+|@@)' | sed -e 's@^-@Removed: @g' -e 's@^+@ Added: @g'
|
||||
echo "::endgroup::"
|
||||
|
||||
if [[ $QMK_KEYBOARDS_PR_COUNT -gt $(($QMK_KEYBOARDS_BASE_COUNT + 1)) ]]; then
|
||||
echo "More than one keyboard added in this PR -- see the PR Checklist."
|
||||
echo "::error::More than one keyboard added in this PR -- see the PR Checklist."
|
||||
exit 1
|
||||
fi
|
||||
|
@ -8,8 +8,8 @@ Most of our style is pretty easy to pick up on, but right now it's not entirely
|
||||
* Closing Brace: Lined up with the first character of the statement that opens the block
|
||||
* Else If: Place the closing brace at the beginning of the line and the next opening brace at the end of the same line.
|
||||
* Optional Braces: Always include optional braces.
|
||||
* Good: if (condition) { return false; }
|
||||
* Bad: if (condition) return false;
|
||||
* Good: `if (condition) { return false; }`
|
||||
* Bad: `if (condition) return false;`
|
||||
* We encourage use of C style comments: `/* */`
|
||||
* Think of them as a story describing the feature
|
||||
* Use them liberally to explain why particular decisions were made.
|
||||
|
@ -155,7 +155,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
uint8_t current_layer = get_highest_layer(layer_state);
|
||||
|
||||
// Check if we are within the range, if not quit
|
||||
if (curent_layer > LAYER_CYCLE_END || current_layer < LAYER_CYCLE_START) {
|
||||
if (current_layer > LAYER_CYCLE_END || current_layer < LAYER_CYCLE_START) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -4,6 +4,8 @@
|
||||
|
||||
The [QMK Configurator](https://config.qmk.fm) is an online graphical user interface that generates QMK Firmware `.hex` or `.bin` files.
|
||||
|
||||
It should be noted that Configurator cannot produce firmwares for keyboards using a different controller than they were designed for, i.e. an RP2040 controller on a board designed for pro micro. You will have to use the command line [converters](https://docs.qmk.fm/#/feature_converters?id=supported-converters) for this.
|
||||
|
||||
Watch the [Video Tutorial](https://www.youtube.com/watch?v=-imgglzDMdY). Many people find that is enough information to start programming their own keyboard.
|
||||
|
||||
The QMK Configurator works best with Chrome or Firefox.
|
||||
|
@ -85,6 +85,8 @@ Visit the [QMK Configurator](https://config.qmk.fm/#/) to create a keymap file:
|
||||
3. Customise the key layout according to your preference.
|
||||
4. Select download next to **KEYMAP.JSON** and save the JSON file into the `~/qmk_keymap/` folder.
|
||||
|
||||
!> **Important:** Make sure that the GitHub username you use in step 2 is correct. If it is not, the build process will fail to locate your files in the right folder.
|
||||
|
||||
### Add a GitHub Action workflow
|
||||
|
||||
Open the file `~/qmk_keymap/.github/workflows/build.yml` with your favorite [text editor](newbs_learn_more_resources.md#text-editor-resources), paste the following workflow content, and save it:
|
||||
|
@ -15,7 +15,7 @@ Different keyboards have different ways to enter this special mode. If your PCB
|
||||
* Press the physical `RESET` button, usually located on the underside of the PCB
|
||||
* Locate header pins on the PCB labeled `RESET` and `GND`, and short them together while plugging your PCB in
|
||||
|
||||
If you've attempted all of the above to no avail, and the main chip on the board says `STM32` on it, this may be a bit more complicated. Generally your best bet is to ask on [Discord](https://discord.gg/Uq7gcHh) for assistance. It's likely some photos of the board will be asked for -- if you can get them ready beforehand it'll help move things along!
|
||||
If you've attempted all of the above to no avail, and the main chip on the board says `STM32` or `RP2-B1` on it, this may be a bit more complicated. Generally your best bet is to ask on [Discord](https://discord.gg/Uq7gcHh) for assistance. It's likely some photos of the board will be asked for -- if you can get them ready beforehand it'll help move things along!
|
||||
|
||||
Otherwise, you should see a message in yellow, similar to this in QMK Toolbox:
|
||||
|
||||
@ -31,6 +31,8 @@ The simplest way to flash your keyboard will be with the [QMK Toolbox](https://g
|
||||
|
||||
However, the Toolbox is currently only available for Windows and macOS. If you're using Linux (or just wish to flash the firmware from the command line), skip to the [Flash your Keyboard from the Command Line](#flash-your-keyboard-from-the-command-line) section.
|
||||
|
||||
?> QMK Toolbox is not necessary for flashing [RP2040 devices](https://docs.qmk.fm/#/flashing?id=raspberry-pi-rp2040-uf2).
|
||||
|
||||
### Load the File into QMK Toolbox
|
||||
|
||||
Begin by opening the QMK Toolbox application. You'll want to locate the firmware file in Finder or Explorer. Your keyboard firmware may be in one of two formats- `.hex` or `.bin`. QMK tries to copy the appropriate one for your keyboard into the root `qmk_firmware` directory.
|
||||
|
@ -120,7 +120,7 @@ NOTE: remember to follow the instructions printed at the end of installation (us
|
||||
|
||||
### ** Windows **
|
||||
|
||||
After installing QMK you can set it up with this command:
|
||||
Open QMK MSYS and run the following command:
|
||||
|
||||
qmk setup
|
||||
|
||||
@ -128,7 +128,7 @@ In most situations you will want to answer `y` to all of the prompts.
|
||||
|
||||
### ** macOS **
|
||||
|
||||
After installing QMK you can set it up with this command:
|
||||
Open Terminal and run the following command:
|
||||
|
||||
qmk setup
|
||||
|
||||
@ -136,7 +136,7 @@ In most situations you will want to answer `y` to all of the prompts.
|
||||
|
||||
### ** Linux/WSL **
|
||||
|
||||
After installing QMK you can set it up with this command:
|
||||
Open your preferred terminal app and run the following command:
|
||||
|
||||
qmk setup
|
||||
|
||||
@ -150,7 +150,7 @@ Luckily, the fix is easy. Run this as your user: `echo 'PATH="$HOME/.local/bin:$
|
||||
|
||||
### ** FreeBSD **
|
||||
|
||||
After installing QMK you can set it up with this command:
|
||||
Open your preferred terminal app and run the following command:
|
||||
|
||||
qmk setup
|
||||
|
||||
|
@ -15,3 +15,5 @@ On this page we have documented keycodes between `0x00FF` and `0xFFFF` which are
|
||||
|`QK_CLEAR_EEPROM`|`EE_CLR` |Reinitializes the keyboard's EEPROM (persistent memory) |
|
||||
|`QK_MAKE` | |Sends `qmk compile -kb (keyboard) -km (keymap)`, or `qmk flash` if shift is held. Puts keyboard into bootloader mode if shift & control are held |
|
||||
|`QK_REBOOT` |`QK_RBT` |Resets the keyboard. Does not load the bootloader |
|
||||
|
||||
!> Note: `QK_MAKE` requires `#define ENABLE_COMPILE_KEYCODE` in your config.h to function.
|
||||
|
@ -15,8 +15,11 @@
|
||||
"diode_direction": "COL2ROW",
|
||||
"processor": "STM32F072",
|
||||
"bootloader": "stm32-dfu",
|
||||
"layout_aliases": {
|
||||
"LAYOUT": "LAYOUT_all"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"LAYOUT_all": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
||||
@ -47,21 +50,21 @@
|
||||
{"matrix": [1, 10], "x": 10.5, "y": 1},
|
||||
{"matrix": [1, 11], "x": 11.5, "y": 1},
|
||||
{"matrix": [1, 12], "x": 12.5, "y": 1},
|
||||
{"matrix": [2, 0], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
|
||||
|
||||
{"matrix": [2, 1], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [2, 2], "x": 1.75, "y": 2},
|
||||
{"matrix": [2, 3], "x": 2.75, "y": 2},
|
||||
{"matrix": [2, 4], "x": 3.75, "y": 2},
|
||||
{"matrix": [2, 5], "x": 4.75, "y": 2},
|
||||
{"matrix": [2, 6], "x": 5.75, "y": 2},
|
||||
{"matrix": [2, 7], "x": 6.75, "y": 2},
|
||||
{"matrix": [2, 8], "x": 7.75, "y": 2},
|
||||
{"matrix": [2, 9], "x": 8.75, "y": 2},
|
||||
{"matrix": [2, 10], "x": 9.75, "y": 2},
|
||||
{"matrix": [2, 11], "x": 10.75, "y": 2},
|
||||
{"matrix": [2, 12], "x": 11.75, "y": 2},
|
||||
{"matrix": [2, 13], "x": 12.75, "y": 2},
|
||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [2, 1], "x": 1.75, "y": 2},
|
||||
{"matrix": [2, 2], "x": 2.75, "y": 2},
|
||||
{"matrix": [2, 3], "x": 3.75, "y": 2},
|
||||
{"matrix": [2, 4], "x": 4.75, "y": 2},
|
||||
{"matrix": [2, 5], "x": 5.75, "y": 2},
|
||||
{"matrix": [2, 6], "x": 6.75, "y": 2},
|
||||
{"matrix": [2, 7], "x": 7.75, "y": 2},
|
||||
{"matrix": [2, 8], "x": 8.75, "y": 2},
|
||||
{"matrix": [2, 9], "x": 9.75, "y": 2},
|
||||
{"matrix": [2, 10], "x": 10.75, "y": 2},
|
||||
{"matrix": [2, 11], "x": 11.75, "y": 2},
|
||||
{"matrix": [2, 12], "x": 12.75, "y": 2},
|
||||
{"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
|
||||
|
||||
{"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
|
||||
{"matrix": [3, 1], "x": 1.25, "y": 3},
|
||||
@ -88,6 +91,284 @@
|
||||
{"matrix": [4, 12], "x": 12.5, "y": 4},
|
||||
{"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_iso_tsangan_split_rshift": {
|
||||
"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": [0, 10], "x": 10, "y": 0},
|
||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"matrix": [1, 13], "x": 13, "y": 0, "w": 2},
|
||||
|
||||
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [1, 1], "x": 1.5, "y": 1},
|
||||
{"matrix": [1, 2], "x": 2.5, "y": 1},
|
||||
{"matrix": [1, 3], "x": 3.5, "y": 1},
|
||||
{"matrix": [1, 4], "x": 4.5, "y": 1},
|
||||
{"matrix": [1, 5], "x": 5.5, "y": 1},
|
||||
{"matrix": [1, 6], "x": 6.5, "y": 1},
|
||||
{"matrix": [1, 7], "x": 7.5, "y": 1},
|
||||
{"matrix": [1, 8], "x": 8.5, "y": 1},
|
||||
{"matrix": [1, 9], "x": 9.5, "y": 1},
|
||||
{"matrix": [1, 10], "x": 10.5, "y": 1},
|
||||
{"matrix": [1, 11], "x": 11.5, "y": 1},
|
||||
{"matrix": [1, 12], "x": 12.5, "y": 1},
|
||||
|
||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [2, 1], "x": 1.75, "y": 2},
|
||||
{"matrix": [2, 2], "x": 2.75, "y": 2},
|
||||
{"matrix": [2, 3], "x": 3.75, "y": 2},
|
||||
{"matrix": [2, 4], "x": 4.75, "y": 2},
|
||||
{"matrix": [2, 5], "x": 5.75, "y": 2},
|
||||
{"matrix": [2, 6], "x": 6.75, "y": 2},
|
||||
{"matrix": [2, 7], "x": 7.75, "y": 2},
|
||||
{"matrix": [2, 8], "x": 8.75, "y": 2},
|
||||
{"matrix": [2, 9], "x": 9.75, "y": 2},
|
||||
{"matrix": [2, 10], "x": 10.75, "y": 2},
|
||||
{"matrix": [2, 11], "x": 11.75, "y": 2},
|
||||
{"matrix": [2, 12], "x": 12.75, "y": 2},
|
||||
{"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
|
||||
|
||||
{"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
|
||||
{"matrix": [3, 1], "x": 1.25, "y": 3},
|
||||
{"matrix": [3, 2], "x": 2.25, "y": 3},
|
||||
{"matrix": [3, 3], "x": 3.25, "y": 3},
|
||||
{"matrix": [3, 4], "x": 4.25, "y": 3},
|
||||
{"matrix": [3, 5], "x": 5.25, "y": 3},
|
||||
{"matrix": [3, 6], "x": 6.25, "y": 3},
|
||||
{"matrix": [3, 7], "x": 7.25, "y": 3},
|
||||
{"matrix": [3, 8], "x": 8.25, "y": 3},
|
||||
{"matrix": [3, 9], "x": 9.25, "y": 3},
|
||||
{"matrix": [3, 10], "x": 10.25, "y": 3},
|
||||
{"matrix": [3, 11], "x": 11.25, "y": 3},
|
||||
{"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"matrix": [3, 13], "x": 14, "y": 3},
|
||||
|
||||
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 1], "x": 1.5, "y": 4},
|
||||
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
|
||||
{"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 12], "x": 12.5, "y": 4},
|
||||
{"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_iso_tsangan_split_bs_rshift": {
|
||||
"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": [0, 10], "x": 10, "y": 0},
|
||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"matrix": [0, 13], "x": 13, "y": 0},
|
||||
{"matrix": [1, 13], "x": 14, "y": 0},
|
||||
|
||||
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [1, 1], "x": 1.5, "y": 1},
|
||||
{"matrix": [1, 2], "x": 2.5, "y": 1},
|
||||
{"matrix": [1, 3], "x": 3.5, "y": 1},
|
||||
{"matrix": [1, 4], "x": 4.5, "y": 1},
|
||||
{"matrix": [1, 5], "x": 5.5, "y": 1},
|
||||
{"matrix": [1, 6], "x": 6.5, "y": 1},
|
||||
{"matrix": [1, 7], "x": 7.5, "y": 1},
|
||||
{"matrix": [1, 8], "x": 8.5, "y": 1},
|
||||
{"matrix": [1, 9], "x": 9.5, "y": 1},
|
||||
{"matrix": [1, 10], "x": 10.5, "y": 1},
|
||||
{"matrix": [1, 11], "x": 11.5, "y": 1},
|
||||
{"matrix": [1, 12], "x": 12.5, "y": 1},
|
||||
|
||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [2, 1], "x": 1.75, "y": 2},
|
||||
{"matrix": [2, 2], "x": 2.75, "y": 2},
|
||||
{"matrix": [2, 3], "x": 3.75, "y": 2},
|
||||
{"matrix": [2, 4], "x": 4.75, "y": 2},
|
||||
{"matrix": [2, 5], "x": 5.75, "y": 2},
|
||||
{"matrix": [2, 6], "x": 6.75, "y": 2},
|
||||
{"matrix": [2, 7], "x": 7.75, "y": 2},
|
||||
{"matrix": [2, 8], "x": 8.75, "y": 2},
|
||||
{"matrix": [2, 9], "x": 9.75, "y": 2},
|
||||
{"matrix": [2, 10], "x": 10.75, "y": 2},
|
||||
{"matrix": [2, 11], "x": 11.75, "y": 2},
|
||||
{"matrix": [2, 12], "x": 12.75, "y": 2},
|
||||
{"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
|
||||
|
||||
{"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
|
||||
{"matrix": [3, 1], "x": 1.25, "y": 3},
|
||||
{"matrix": [3, 2], "x": 2.25, "y": 3},
|
||||
{"matrix": [3, 3], "x": 3.25, "y": 3},
|
||||
{"matrix": [3, 4], "x": 4.25, "y": 3},
|
||||
{"matrix": [3, 5], "x": 5.25, "y": 3},
|
||||
{"matrix": [3, 6], "x": 6.25, "y": 3},
|
||||
{"matrix": [3, 7], "x": 7.25, "y": 3},
|
||||
{"matrix": [3, 8], "x": 8.25, "y": 3},
|
||||
{"matrix": [3, 9], "x": 9.25, "y": 3},
|
||||
{"matrix": [3, 10], "x": 10.25, "y": 3},
|
||||
{"matrix": [3, 11], "x": 11.25, "y": 3},
|
||||
{"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"matrix": [3, 13], "x": 14, "y": 3},
|
||||
|
||||
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 1], "x": 1.5, "y": 4},
|
||||
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
|
||||
{"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 12], "x": 12.5, "y": 4},
|
||||
{"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_iso_wkl_split_rshift": {
|
||||
"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": [0, 10], "x": 10, "y": 0},
|
||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"matrix": [1, 13], "x": 13, "y": 0, "w": 2},
|
||||
|
||||
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [1, 1], "x": 1.5, "y": 1},
|
||||
{"matrix": [1, 2], "x": 2.5, "y": 1},
|
||||
{"matrix": [1, 3], "x": 3.5, "y": 1},
|
||||
{"matrix": [1, 4], "x": 4.5, "y": 1},
|
||||
{"matrix": [1, 5], "x": 5.5, "y": 1},
|
||||
{"matrix": [1, 6], "x": 6.5, "y": 1},
|
||||
{"matrix": [1, 7], "x": 7.5, "y": 1},
|
||||
{"matrix": [1, 8], "x": 8.5, "y": 1},
|
||||
{"matrix": [1, 9], "x": 9.5, "y": 1},
|
||||
{"matrix": [1, 10], "x": 10.5, "y": 1},
|
||||
{"matrix": [1, 11], "x": 11.5, "y": 1},
|
||||
{"matrix": [1, 12], "x": 12.5, "y": 1},
|
||||
|
||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [2, 1], "x": 1.75, "y": 2},
|
||||
{"matrix": [2, 2], "x": 2.75, "y": 2},
|
||||
{"matrix": [2, 3], "x": 3.75, "y": 2},
|
||||
{"matrix": [2, 4], "x": 4.75, "y": 2},
|
||||
{"matrix": [2, 5], "x": 5.75, "y": 2},
|
||||
{"matrix": [2, 6], "x": 6.75, "y": 2},
|
||||
{"matrix": [2, 7], "x": 7.75, "y": 2},
|
||||
{"matrix": [2, 8], "x": 8.75, "y": 2},
|
||||
{"matrix": [2, 9], "x": 9.75, "y": 2},
|
||||
{"matrix": [2, 10], "x": 10.75, "y": 2},
|
||||
{"matrix": [2, 11], "x": 11.75, "y": 2},
|
||||
{"matrix": [2, 12], "x": 12.75, "y": 2},
|
||||
{"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
|
||||
|
||||
{"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
|
||||
{"matrix": [3, 1], "x": 1.25, "y": 3},
|
||||
{"matrix": [3, 2], "x": 2.25, "y": 3},
|
||||
{"matrix": [3, 3], "x": 3.25, "y": 3},
|
||||
{"matrix": [3, 4], "x": 4.25, "y": 3},
|
||||
{"matrix": [3, 5], "x": 5.25, "y": 3},
|
||||
{"matrix": [3, 6], "x": 6.25, "y": 3},
|
||||
{"matrix": [3, 7], "x": 7.25, "y": 3},
|
||||
{"matrix": [3, 8], "x": 8.25, "y": 3},
|
||||
{"matrix": [3, 9], "x": 9.25, "y": 3},
|
||||
{"matrix": [3, 10], "x": 10.25, "y": 3},
|
||||
{"matrix": [3, 11], "x": 11.25, "y": 3},
|
||||
{"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"matrix": [3, 13], "x": 14, "y": 3},
|
||||
|
||||
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
|
||||
{"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_iso_wkl_split_bs_rshift": {
|
||||
"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": [0, 10], "x": 10, "y": 0},
|
||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"matrix": [0, 13], "x": 13, "y": 0},
|
||||
{"matrix": [1, 13], "x": 14, "y": 0},
|
||||
|
||||
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [1, 1], "x": 1.5, "y": 1},
|
||||
{"matrix": [1, 2], "x": 2.5, "y": 1},
|
||||
{"matrix": [1, 3], "x": 3.5, "y": 1},
|
||||
{"matrix": [1, 4], "x": 4.5, "y": 1},
|
||||
{"matrix": [1, 5], "x": 5.5, "y": 1},
|
||||
{"matrix": [1, 6], "x": 6.5, "y": 1},
|
||||
{"matrix": [1, 7], "x": 7.5, "y": 1},
|
||||
{"matrix": [1, 8], "x": 8.5, "y": 1},
|
||||
{"matrix": [1, 9], "x": 9.5, "y": 1},
|
||||
{"matrix": [1, 10], "x": 10.5, "y": 1},
|
||||
{"matrix": [1, 11], "x": 11.5, "y": 1},
|
||||
{"matrix": [1, 12], "x": 12.5, "y": 1},
|
||||
|
||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [2, 1], "x": 1.75, "y": 2},
|
||||
{"matrix": [2, 2], "x": 2.75, "y": 2},
|
||||
{"matrix": [2, 3], "x": 3.75, "y": 2},
|
||||
{"matrix": [2, 4], "x": 4.75, "y": 2},
|
||||
{"matrix": [2, 5], "x": 5.75, "y": 2},
|
||||
{"matrix": [2, 6], "x": 6.75, "y": 2},
|
||||
{"matrix": [2, 7], "x": 7.75, "y": 2},
|
||||
{"matrix": [2, 8], "x": 8.75, "y": 2},
|
||||
{"matrix": [2, 9], "x": 9.75, "y": 2},
|
||||
{"matrix": [2, 10], "x": 10.75, "y": 2},
|
||||
{"matrix": [2, 11], "x": 11.75, "y": 2},
|
||||
{"matrix": [2, 12], "x": 12.75, "y": 2},
|
||||
{"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
|
||||
|
||||
{"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
|
||||
{"matrix": [3, 1], "x": 1.25, "y": 3},
|
||||
{"matrix": [3, 2], "x": 2.25, "y": 3},
|
||||
{"matrix": [3, 3], "x": 3.25, "y": 3},
|
||||
{"matrix": [3, 4], "x": 4.25, "y": 3},
|
||||
{"matrix": [3, 5], "x": 5.25, "y": 3},
|
||||
{"matrix": [3, 6], "x": 6.25, "y": 3},
|
||||
{"matrix": [3, 7], "x": 7.25, "y": 3},
|
||||
{"matrix": [3, 8], "x": 8.25, "y": 3},
|
||||
{"matrix": [3, 9], "x": 9.25, "y": 3},
|
||||
{"matrix": [3, 10], "x": 10.25, "y": 3},
|
||||
{"matrix": [3, 11], "x": 11.25, "y": 3},
|
||||
{"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"matrix": [3, 13], "x": 14, "y": 3},
|
||||
|
||||
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
|
||||
{"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -18,14 +18,14 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
// main layer
|
||||
[0] = LAYOUT(
|
||||
[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_NO, KC_BSPC,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_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, MO(1),
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL),
|
||||
// basic function layer
|
||||
[1] = LAYOUT(
|
||||
[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_DEL,
|
||||
KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NUHS, KC_TRNS,
|
||||
|
@ -18,28 +18,28 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
// main layer
|
||||
[0] = LAYOUT(
|
||||
[0] = LAYOUT_all(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_BSPC,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_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, MO(1),
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL),
|
||||
// basic function layer
|
||||
[1] = LAYOUT(
|
||||
[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_DEL,
|
||||
KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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(
|
||||
[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),
|
||||
// extra layer for VIA
|
||||
[3] = LAYOUT(
|
||||
[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,
|
||||
|
24
keyboards/4pplet/waffling60/rev_d_iso/matrix_diagram.md
Normal file
24
keyboards/4pplet/waffling60/rev_d_iso/matrix_diagram.md
Normal file
@ -0,0 +1,24 @@
|
||||
# Matrix Diagram for 4pplet Waffling60 Rev D ISO
|
||||
|
||||
```
|
||||
┌───────┐
|
||||
2u Backspace │1D │
|
||||
└───────┘
|
||||
┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
|
||||
│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │1D │
|
||||
├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
|
||||
│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │ │
|
||||
├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐2D │
|
||||
│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │ │
|
||||
├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┤
|
||||
│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │
|
||||
├────┴┬──┴┬──┴──┬┴───┴───┴──┬┴──┬┴───┴───┴──┬┴───┴┬───┬─┴───┤
|
||||
│40 │41 │42 │44 │46 │48 │4B │4C │4D │
|
||||
└─────┴───┴─────┴───────────┴───┴───────────┴─────┴───┴─────┘
|
||||
┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐
|
||||
│40 │41 │42 │46 │4B │4C │4D │ Tsangan/WKL/HHKB
|
||||
└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘
|
||||
┌─────┬───┬───────────────────────────────────────┬───┬─────┐
|
||||
│40 │41 │46 │4C │4D │ 10u Spacebar
|
||||
└─────┴───┴───────────────────────────────────────┴───┴─────┘
|
||||
```
|
7
keyboards/adafruit/macropad/keymaps/drashna/config.h
Normal file
7
keyboards/adafruit/macropad/keymaps/drashna/config.h
Normal file
@ -0,0 +1,7 @@
|
||||
// Copyright 2023 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#define PICO_XOSC_STARTUP_DELAY_MULTIPLIER 64
|
||||
#define TAPPING_TERM 499
|
100
keyboards/adafruit/macropad/keymaps/drashna/keymap.c
Normal file
100
keyboards/adafruit/macropad/keymaps/drashna/keymap.c
Normal file
@ -0,0 +1,100 @@
|
||||
// Copyright 2023 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include "drashna.h"
|
||||
|
||||
// clang-format off
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT(
|
||||
LT(1,KC_MUTE),
|
||||
KC_ENT, KC_0, KC_BSPC,
|
||||
KC_7, KC_8, KC_9,
|
||||
KC_4, KC_5, KC_6,
|
||||
KC_1, KC_2, KC_3
|
||||
),
|
||||
[1] = LAYOUT(
|
||||
_______,
|
||||
CK_TOGG, AU_TOGG, _______,
|
||||
_______, _______, _______,
|
||||
_______, _______, _______,
|
||||
_______, _______, _______
|
||||
),
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
#ifdef ENCODER_MAP_ENABLE
|
||||
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
|
||||
[0] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)},
|
||||
[1] = {ENCODER_CCW_CW(RGB_RMOD, RGB_MOD)},
|
||||
};
|
||||
#endif
|
||||
|
||||
void render_oled_title(bool side) {
|
||||
oled_write_P(PSTR(" Macropad "), true);
|
||||
}
|
||||
|
||||
void render_rgb_mode(uint8_t col, uint8_t line);
|
||||
|
||||
void l_render_keylock_status(led_t led_usb_state, uint8_t col, uint8_t line) {
|
||||
oled_set_cursor(col, line);
|
||||
#ifdef CAPS_WORD_ENABLE
|
||||
led_usb_state.caps_lock |= is_caps_word_on();
|
||||
#endif
|
||||
oled_write_P(PSTR(OLED_RENDER_LOCK_NUML), led_usb_state.num_lock);
|
||||
oled_write_P(PSTR(" "), false);
|
||||
oled_write_P(PSTR(OLED_RENDER_LOCK_CAPS), led_usb_state.caps_lock);
|
||||
oled_write_P(PSTR(" "), false);
|
||||
oled_write_P(PSTR(OLED_RENDER_LOCK_SCLK), led_usb_state.scroll_lock);
|
||||
}
|
||||
|
||||
bool oled_task_keymap(void) {
|
||||
oled_write_raw_P(header_image, sizeof(header_image));
|
||||
oled_set_cursor(0, 1);
|
||||
oled_write_raw_P(row_2_image, sizeof(row_2_image));
|
||||
oled_set_cursor(4, 0);
|
||||
render_oled_title(false);
|
||||
|
||||
render_kitty(0, 2);
|
||||
render_matrix_scan_rate(1, 7, 2);
|
||||
|
||||
#ifdef AUDIO_ENABLE
|
||||
oled_set_cursor(7, 4);
|
||||
bool l_is_audio_on = is_audio_on();
|
||||
|
||||
static const char PROGMEM audio_status[2][3] = {{0xE0, 0xE1, 0}, {0xE2, 0xE3, 0}};
|
||||
oled_write_P(audio_status[l_is_audio_on], false);
|
||||
|
||||
# ifdef AUDIO_CLICKY
|
||||
bool l_is_clicky_on = is_clicky_on();
|
||||
static const char PROGMEM audio_clicky_status[2][3] = {{0xF4, 0xF5, 0}, {0xF6, 0xF7, 0}};
|
||||
oled_write_P(audio_clicky_status[l_is_clicky_on && l_is_audio_on], false);
|
||||
# endif
|
||||
#endif
|
||||
|
||||
static const char PROGMEM cat_mode[3] = {0xF8, 0xF9, 0};
|
||||
oled_write_P(cat_mode, get_keyboard_lock());
|
||||
|
||||
#ifdef RGB_MATIRX_ENABLE
|
||||
static const char PROGMEM rgb_layer_status[2][3] = {{0xEE, 0xEF, 0}, {0xF0, 0xF1, 0}};
|
||||
oled_write_P(rgb_layer_status[rgb_matrix_is_enabled()], false);
|
||||
#endif
|
||||
|
||||
#ifdef HAPTIC_ENABLE
|
||||
static const char PROGMEM nukem_good[2] = {0xFA, 0};
|
||||
oled_write_P(haptic_get_enable() ? nukem_good : PSTR(" "), false);
|
||||
#endif
|
||||
|
||||
l_render_keylock_status(host_keyboard_led_state(), 7, 5);
|
||||
render_rgb_mode(1, 6);
|
||||
|
||||
for (uint8_t i = 1; i < 7; i++) {
|
||||
oled_set_cursor(0, i);
|
||||
oled_write_raw_P(display_border, sizeof(display_border));
|
||||
oled_set_cursor(21, i);
|
||||
oled_write_raw_P(display_border, sizeof(display_border));
|
||||
}
|
||||
oled_set_cursor(0, 7);
|
||||
oled_write_raw_P(footer_image, sizeof(footer_image));
|
||||
|
||||
return false;
|
||||
}
|
3
keyboards/adafruit/macropad/keymaps/drashna/rules.mk
Normal file
3
keyboards/adafruit/macropad/keymaps/drashna/rules.mk
Normal file
@ -0,0 +1,3 @@
|
||||
ENCODER_MAP_ENABLE = yes
|
||||
DEBUG_MATRIX_SCAN_RATE_ENABLE = api
|
||||
WPM_ENABLE = yes
|
162
keyboards/akko/5108/5108.c
Normal file
162
keyboards/akko/5108/5108.c
Normal file
@ -0,0 +1,162 @@
|
||||
/* Copyright (C) 2022 jonylee@hfd
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General 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"
|
||||
// clang-format off
|
||||
#ifdef RGB_MATRIX_ENABLE
|
||||
const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
|
||||
/* Refer to IS31 manual for these locations
|
||||
* driver
|
||||
* | R location
|
||||
* | | G location
|
||||
* | | | B location
|
||||
* | | | | */
|
||||
/*row0*/
|
||||
{1, A_1, B_1, C_1},
|
||||
{1, A_2, B_2, C_2},
|
||||
{1, A_3, B_3, C_3},
|
||||
{1, A_4, B_4, C_4},
|
||||
{1, A_5, B_5, C_5},
|
||||
{1, A_6, B_6, C_6},
|
||||
{1, A_7, B_7, C_7},
|
||||
{1, A_8, B_8, C_8},
|
||||
{1, A_9, B_9, C_9},
|
||||
{1, A_10, B_10, C_10},
|
||||
{1, A_11, B_11, C_11},
|
||||
{1, A_12, B_12, C_12},
|
||||
{1, A_13, B_13, C_13},
|
||||
{1, A_14, B_14, C_14},
|
||||
{1, A_15, B_15, C_15},
|
||||
{1, A_16, B_16, C_16},
|
||||
{1, D_11, E_11, F_11},
|
||||
{1, D_12, E_12, F_12},
|
||||
{1, D_13, E_13, F_13},
|
||||
{1, D_14, E_14, F_14},
|
||||
|
||||
/*row1*/
|
||||
{0, A_1, B_1, C_1},
|
||||
{0, A_2, B_2, C_2},
|
||||
{0, A_3, B_3, C_3},
|
||||
{0, A_4, B_4, C_4},
|
||||
{0, A_5, B_5, C_5},
|
||||
{0, A_6, B_6, C_6},
|
||||
{0, A_7, B_7, C_7},
|
||||
{0, A_8, B_8, C_8},
|
||||
{0, A_9, B_9, C_9},
|
||||
{0, A_10, B_10, C_10},
|
||||
{0, A_11, B_11, C_11},
|
||||
{0, A_12, B_12, C_12},
|
||||
{0, A_13, B_13, C_13},
|
||||
{0, A_14, B_14, C_14},
|
||||
{1, D_1, E_1, F_1 },
|
||||
{1, D_2, E_2, F_2},
|
||||
{1, D_3, E_3, F_3},
|
||||
{1, D_4, E_4, F_4},
|
||||
{1, D_5, E_5, F_5},
|
||||
{1, D_6, E_6, F_6},
|
||||
{1, D_7, E_7, F_7},
|
||||
|
||||
/*row2*/
|
||||
{0, D_1, E_1, F_1},
|
||||
{0, D_2, E_2, F_2},
|
||||
{0, D_3, E_3, F_3},
|
||||
{0, D_4, E_4, F_4},
|
||||
{0, D_5, E_5, F_5},
|
||||
{0, D_6, E_6, F_6},
|
||||
{0, D_7, E_7, F_7},
|
||||
{0, D_8, E_8, F_8},
|
||||
{0, D_9, E_9, F_9},
|
||||
{0, D_10, E_10, F_10},
|
||||
{0, D_11, E_11, F_11},
|
||||
{0, D_12, E_12, F_12},
|
||||
{0, D_13, E_13, F_13},
|
||||
{0, D_14, E_14, F_14},
|
||||
{1, G_1, H_1, I_1},
|
||||
{1, G_2, H_2, I_2},
|
||||
{1, G_3, H_3, I_3},
|
||||
{1, D_8, E_8, F_8},
|
||||
{1, D_9, E_9, F_9},
|
||||
{1, D_10, E_10, F_10},
|
||||
{1, G_7, H_7, I_7},
|
||||
|
||||
/*row3*/
|
||||
{0, G_1, H_1, I_1},
|
||||
{0, G_2, H_2, I_2},
|
||||
{0, G_3, H_3, I_3},
|
||||
{0, G_4, H_4, I_4},
|
||||
{0, G_5, H_5, I_5},
|
||||
{0, G_6, H_6, I_6},
|
||||
{0, G_7, H_7, I_7},
|
||||
{0, G_8, H_8, I_8},
|
||||
{0, G_9, H_9, I_9},
|
||||
{0, G_10, H_10, I_10},
|
||||
{0, G_11, H_11, I_11},
|
||||
{0, G_12, H_12, I_12},
|
||||
{0, G_13, H_13, I_13},
|
||||
{1, G_4, H_4, I_4},
|
||||
{1, G_5, H_5, I_5},
|
||||
{1, G_6, H_6, I_6},
|
||||
|
||||
/*row4*/
|
||||
{0, J_1, K_1, L_1},
|
||||
{0, J_2, K_2, L_2},
|
||||
{0, J_3, K_3, L_3},
|
||||
{0, J_4, K_4, L_4},
|
||||
{0, J_5, K_5, L_5},
|
||||
{0, J_6, K_6, L_6},
|
||||
{0, J_7, K_7, L_7},
|
||||
{0, J_8, K_8, L_8},
|
||||
{0, J_9, K_9, L_9},
|
||||
{0, J_10, K_10, L_10},
|
||||
{0, J_11, K_11, L_11},
|
||||
{0, J_12, K_12, L_12},
|
||||
{1, J_4, K_4, L_4},
|
||||
{1, J_7, K_7, L_7},
|
||||
{1, J_8, K_8, L_8},
|
||||
{1, J_9, K_9, L_9},
|
||||
{1, J_10, K_10, L_10},
|
||||
|
||||
/*row5*/
|
||||
{0, J_13, K_13, L_13},
|
||||
{0, J_14, K_14, L_14},
|
||||
{0, J_15, K_15, L_15},
|
||||
{0, J_16, K_16, L_16},
|
||||
{0, G_14, H_14, I_14},
|
||||
{0, G_15, H_15, I_15},
|
||||
{0, G_16, H_16, I_16},
|
||||
{0, D_15, E_15, F_15},
|
||||
{1, J_1, K_1, L_1},
|
||||
{1, J_2, K_2, L_2},
|
||||
{1, J_3, K_3, L_3},
|
||||
{1, J_5, K_5, L_5},
|
||||
{1, J_6, K_6, L_6},
|
||||
|
||||
};
|
||||
#endif
|
||||
|
||||
void keyboard_pre_init_kb(void) {
|
||||
setPinOutput(LED_WIN_LOCK_PIN); // LED3 Win Lock
|
||||
writePinLow(LED_WIN_LOCK_PIN);
|
||||
keyboard_pre_init_user();
|
||||
}
|
||||
|
||||
bool led_update_kb(led_t led_state) {
|
||||
bool res = led_update_user(led_state);
|
||||
if (res) {
|
||||
writePin(LED_WIN_LOCK_PIN, keymap_config.no_gui);
|
||||
}
|
||||
return res;
|
||||
}
|
54
keyboards/akko/5108/config.h
Normal file
54
keyboards/akko/5108/config.h
Normal file
@ -0,0 +1,54 @@
|
||||
/* Copyright (C) 2022 jonylee@hfd
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General 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
|
||||
|
||||
/* Use 5 dynamic keymap layers */
|
||||
#define DYNAMIC_KEYMAP_LAYER_COUNT 6
|
||||
|
||||
/* LED Indicators */
|
||||
#define LED_WIN_LOCK_PIN C11
|
||||
|
||||
/* 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
|
||||
|
||||
/* SPI Config for spi flash*/
|
||||
#define SPI_DRIVER SPIDQ
|
||||
#define SPI_SCK_PIN B3
|
||||
#define SPI_MOSI_PIN B5
|
||||
#define SPI_MISO_PIN B4
|
||||
#define SPI_MOSI_PAL_MODE 5
|
||||
|
||||
#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12
|
||||
#define WEAR_LEVELING_BACKING_SIZE (8 * 1024)
|
||||
|
||||
/* I2C Config for LED Driver */
|
||||
#define DRIVER_COUNT 2
|
||||
#define DRIVER_ADDR_1 0b1110100
|
||||
#define DRIVER_ADDR_2 0b1110111
|
||||
#define I2C1_SCL_PAL_MODE 4
|
||||
#define I2C1_OPMODE OPMODE_I2C
|
||||
#define I2C1_CLOCK_SPEED 400000 /* 400000 */
|
||||
|
||||
#define RGB_MATRIX_LED_COUNT 108
|
||||
|
||||
#define RGB_TRIGGER_ON_KEYDOWN
|
||||
#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
|
||||
#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
|
||||
#define RGB_MATRIX_KEYPRESSES
|
||||
#define RGB_MATRIX_KEYRELEASES
|
23
keyboards/akko/5108/halconf.h
Normal file
23
keyboards/akko/5108/halconf.h
Normal file
@ -0,0 +1,23 @@
|
||||
/* Copyright (C) 2022 jonylee@hfd
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#define HAL_USE_I2C TRUE
|
||||
#define HAL_USE_SPI TRUE
|
||||
#define SPI_USE_WAIT TRUE
|
||||
#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD
|
||||
|
||||
#include_next <halconf.h>
|
290
keyboards/akko/5108/info.json
Normal file
290
keyboards/akko/5108/info.json
Normal file
@ -0,0 +1,290 @@
|
||||
{
|
||||
"keyboard_name": "5108",
|
||||
"manufacturer": "Akko",
|
||||
"url":"https://www.akkogear.com",
|
||||
"maintainer": "jonylee@hfd",
|
||||
"usb": {
|
||||
"vid": "0xFFFE",
|
||||
"pid": "0x000D",
|
||||
"device_version": "1.0.3",
|
||||
"suspend_wakeup_delay": 400,
|
||||
"force_nkro": true
|
||||
},
|
||||
"processor": "WB32FQ95",
|
||||
"bootloader": "wb32-dfu",
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"mousekey": true,
|
||||
"extrakey": true,
|
||||
"console": false,
|
||||
"command": false,
|
||||
"nkro": true,
|
||||
"rgb_matrix": true
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": [ "C1", "C2", "C3", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "C4", "C5", "B0", "B1", "B2", "B10", "B11", "B12", "B13", "B14"],
|
||||
"rows": ["B15", "C6", "C7", "C8", "C9", "A8"]
|
||||
},
|
||||
"diode_direction": "ROW2COL",
|
||||
"indicators": {
|
||||
"num_lock": "A15",
|
||||
"caps_lock": "C10"
|
||||
},
|
||||
"rgb_matrix": {
|
||||
"driver": "IS31FL3733",
|
||||
"max_brightness": 180,
|
||||
"animations": {
|
||||
"breathing": true,
|
||||
"cycle_all": true,
|
||||
"cycle_left_right": true,
|
||||
"cycle_up_down": true,
|
||||
"rainbow_moving_chevron": true,
|
||||
"cycle_out_in": true,
|
||||
"cycle_out_in_dual": true,
|
||||
"cycle_pinwheel": true,
|
||||
"cycle_spiral": true,
|
||||
"dual_beacon": true,
|
||||
"rainbow_beacon": true,
|
||||
"raindrops": true,
|
||||
"typing_heatmap": true,
|
||||
"solid_reactive_simple": true,
|
||||
"solid_reactive": true,
|
||||
"solid_reactive_cross": true,
|
||||
"multisplash": true
|
||||
},
|
||||
"layout":[
|
||||
{ "flags": 4, "matrix": [0, 0], "x": 0, "y": 0 },
|
||||
{ "flags": 4, "matrix": [0, 1], "x": 20, "y": 0 },
|
||||
{ "flags": 4, "matrix": [0, 2], "x": 30, "y": 0 },
|
||||
{ "flags": 4, "matrix": [0, 3], "x": 40, "y": 0 },
|
||||
{ "flags": 4, "matrix": [0, 4], "x": 50, "y": 0 },
|
||||
{ "flags": 4, "matrix": [0, 5], "x": 70, "y": 0 },
|
||||
{ "flags": 4, "matrix": [0, 6], "x": 80, "y": 0 },
|
||||
{ "flags": 4, "matrix": [0, 7], "x": 90, "y": 0 },
|
||||
{ "flags": 4, "matrix": [0, 8], "x": 100, "y": 0 },
|
||||
{ "flags": 4, "matrix": [0, 9], "x": 110, "y": 0 },
|
||||
{ "flags": 4, "matrix": [0, 10], "x": 120, "y": 0 },
|
||||
{ "flags": 4, "matrix": [0, 11], "x": 130, "y": 0 },
|
||||
{ "flags": 4, "matrix": [0, 12], "x": 140, "y": 0 },
|
||||
{ "flags": 4, "matrix": [0, 14], "x": 156, "y": 0 },
|
||||
{ "flags": 4, "matrix": [0, 15], "x": 166, "y": 0 },
|
||||
{ "flags": 4, "matrix": [0, 16], "x": 176, "y": 0 },
|
||||
{ "flags": 4, "matrix": [0, 17], "x": 194, "y": 0 },
|
||||
{ "flags": 4, "matrix": [0, 18], "x": 204, "y": 0 },
|
||||
{ "flags": 4, "matrix": [0, 19], "x": 214, "y": 0 },
|
||||
{ "flags": 4, "matrix": [0, 20], "x": 224, "y": 0 },
|
||||
|
||||
{ "flags": 4, "matrix": [1, 0], "x": 0, "y": 13 },
|
||||
{ "flags": 4, "matrix": [1, 1], "x": 10, "y": 13 },
|
||||
{ "flags": 4, "matrix": [1, 2], "x": 20, "y": 13 },
|
||||
{ "flags": 4, "matrix": [1, 3], "x": 30, "y": 13 },
|
||||
{ "flags": 4, "matrix": [1, 4], "x": 40, "y": 13 },
|
||||
{ "flags": 4, "matrix": [1, 5], "x": 50, "y": 13 },
|
||||
{ "flags": 4, "matrix": [1, 6], "x": 60, "y": 13 },
|
||||
{ "flags": 4, "matrix": [1, 7], "x": 70, "y": 13 },
|
||||
{ "flags": 4, "matrix": [1, 8], "x": 80, "y": 13 },
|
||||
{ "flags": 4, "matrix": [1, 9], "x": 90, "y": 13 },
|
||||
{ "flags": 4, "matrix": [1, 10], "x": 100, "y": 13 },
|
||||
{ "flags": 4, "matrix": [1, 11], "x": 110, "y": 13 },
|
||||
{ "flags": 4, "matrix": [1, 12], "x": 120, "y": 13 },
|
||||
{ "flags": 4, "matrix": [1, 13], "x": 140, "y": 13 },
|
||||
{ "flags": 4, "matrix": [1, 14], "x": 156, "y": 13 },
|
||||
{ "flags": 4, "matrix": [1, 15], "x": 166, "y": 13 },
|
||||
{ "flags": 4, "matrix": [1, 16], "x": 176, "y": 13 },
|
||||
{ "flags": 4, "matrix": [1, 17], "x": 194, "y": 13 },
|
||||
{ "flags": 4, "matrix": [1, 18], "x": 204, "y": 13 },
|
||||
{ "flags": 4, "matrix": [1, 19], "x": 214, "y": 13 },
|
||||
{ "flags": 4, "matrix": [1, 20], "x": 224, "y": 13 },
|
||||
|
||||
{ "flags": 4, "matrix": [2, 0], "x": 0, "y": 26 },
|
||||
{ "flags": 4, "matrix": [2, 1], "x": 10, "y": 26 },
|
||||
{ "flags": 4, "matrix": [2, 2], "x": 20, "y": 26 },
|
||||
{ "flags": 4, "matrix": [2, 3], "x": 30, "y": 26 },
|
||||
{ "flags": 4, "matrix": [2, 4], "x": 40, "y": 26 },
|
||||
{ "flags": 4, "matrix": [2, 5], "x": 50, "y": 26 },
|
||||
{ "flags": 4, "matrix": [2, 6], "x": 60, "y": 26 },
|
||||
{ "flags": 4, "matrix": [2, 7], "x": 70, "y": 26 },
|
||||
{ "flags": 4, "matrix": [2, 8], "x": 80, "y": 26 },
|
||||
{ "flags": 4, "matrix": [2, 9], "x": 90, "y": 26 },
|
||||
{ "flags": 4, "matrix": [2, 10], "x": 100, "y": 26 },
|
||||
{ "flags": 4, "matrix": [2, 11], "x": 110, "y": 26 },
|
||||
{ "flags": 4, "matrix": [2, 12], "x": 128, "y": 26 },
|
||||
{ "flags": 4, "matrix": [2, 13], "x": 140, "y": 26 },
|
||||
{ "flags": 4, "matrix": [2, 14], "x": 156, "y": 26 },
|
||||
{ "flags": 4, "matrix": [2, 15], "x": 166, "y": 26 },
|
||||
{ "flags": 4, "matrix": [2, 16], "x": 176, "y": 26 },
|
||||
{ "flags": 4, "matrix": [2, 17], "x": 194, "y": 26 },
|
||||
{ "flags": 4, "matrix": [2, 18], "x": 204, "y": 26 },
|
||||
{ "flags": 4, "matrix": [2, 19], "x": 214, "y": 26 },
|
||||
{ "flags": 4, "matrix": [2, 20], "x": 224, "y": 26 },
|
||||
|
||||
{ "flags": 4, "matrix": [3, 0], "x": 0, "y": 38 },
|
||||
{ "flags": 4, "matrix": [3, 1], "x": 10, "y": 38 },
|
||||
{ "flags": 4, "matrix": [3, 2], "x": 20, "y": 38 },
|
||||
{ "flags": 4, "matrix": [3, 3], "x": 30, "y": 38 },
|
||||
{ "flags": 4, "matrix": [3, 4], "x": 40, "y": 38 },
|
||||
{ "flags": 4, "matrix": [3, 5], "x": 50, "y": 38 },
|
||||
{ "flags": 4, "matrix": [3, 6], "x": 60, "y": 38 },
|
||||
{ "flags": 4, "matrix": [3, 7], "x": 70, "y": 38 },
|
||||
{ "flags": 4, "matrix": [3, 8], "x": 80, "y": 38 },
|
||||
{ "flags": 4, "matrix": [3, 9], "x": 90, "y": 38 },
|
||||
{ "flags": 4, "matrix": [3, 10], "x": 100, "y": 38 },
|
||||
{ "flags": 4, "matrix": [3, 11], "x": 110, "y": 38 },
|
||||
{ "flags": 4, "matrix": [3, 13], "x": 135, "y": 38 },
|
||||
{ "flags": 4, "matrix": [3, 17], "x": 194, "y": 38 },
|
||||
{ "flags": 4, "matrix": [3, 18], "x": 204, "y": 38 },
|
||||
{ "flags": 4, "matrix": [3, 19], "x": 214, "y": 38 },
|
||||
|
||||
{ "flags": 4, "matrix": [4, 0], "x": 5, "y": 51 },
|
||||
{ "flags": 4, "matrix": [4, 1], "x": 20, "y": 51 },
|
||||
{ "flags": 4, "matrix": [4, 2], "x": 30, "y": 51 },
|
||||
{ "flags": 4, "matrix": [4, 3], "x": 40, "y": 51 },
|
||||
{ "flags": 4, "matrix": [4, 4], "x": 50, "y": 51 },
|
||||
{ "flags": 4, "matrix": [4, 5], "x": 60, "y": 51 },
|
||||
{ "flags": 4, "matrix": [4, 6], "x": 70, "y": 51 },
|
||||
{ "flags": 4, "matrix": [4, 7], "x": 80, "y": 51 },
|
||||
{ "flags": 4, "matrix": [4, 8], "x": 90, "y": 51 },
|
||||
{ "flags": 4, "matrix": [4, 9], "x": 100, "y": 51 },
|
||||
{ "flags": 4, "matrix": [4, 10], "x": 110, "y": 51 },
|
||||
{ "flags": 4, "matrix": [4, 13], "x": 135, "y": 51 },
|
||||
{ "flags": 4, "matrix": [4, 15], "x": 166, "y": 51 },
|
||||
{ "flags": 4, "matrix": [4, 17], "x": 194, "y": 51 },
|
||||
{ "flags": 4, "matrix": [4, 18], "x": 204, "y": 51 },
|
||||
{ "flags": 4, "matrix": [4, 19], "x": 214, "y": 51 },
|
||||
{ "flags": 4, "matrix": [4, 20], "x": 224, "y": 51 },
|
||||
|
||||
{ "flags": 4, "matrix": [5, 0], "x": 0, "y": 64 },
|
||||
{ "flags": 4, "matrix": [5, 1], "x": 10, "y": 64 },
|
||||
{ "flags": 4, "matrix": [5, 2], "x": 20, "y": 64 },
|
||||
{ "flags": 4, "matrix": [5, 5], "x": 60, "y": 64 },
|
||||
{ "flags": 4, "matrix": [5, 9], "x": 100, "y": 64 },
|
||||
{ "flags": 4, "matrix": [5, 10], "x": 110, "y": 64 },
|
||||
{ "flags": 4, "matrix": [5, 11], "x": 130, "y": 64 },
|
||||
{ "flags": 4, "matrix": [5, 13], "x": 140, "y": 64 },
|
||||
{ "flags": 4, "matrix": [5, 14], "x": 156, "y": 64 },
|
||||
{ "flags": 4, "matrix": [5, 15], "x": 166, "y": 64 },
|
||||
{ "flags": 4, "matrix": [5, 16], "x": 176, "y": 64 },
|
||||
{ "flags": 4, "matrix": [5, 18], "x": 199, "y": 64 },
|
||||
{ "flags": 4, "matrix": [5, 19], "x": 214, "y": 64 }
|
||||
]
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{ "label": "Esc", "matrix": [0, 0], "x": 0, "y": 0 },
|
||||
{ "label": "F1", "matrix": [0, 1], "x": 2, "y": 0 },
|
||||
{ "label": "F2", "matrix": [0, 2], "x": 3, "y": 0 },
|
||||
{ "label": "F3", "matrix": [0, 3], "x": 4, "y": 0 },
|
||||
{ "label": "F4", "matrix": [0, 4], "x": 5, "y": 0 },
|
||||
{ "label": "F5", "matrix": [0, 5], "x": 6.5, "y": 0 },
|
||||
{ "label": "F6", "matrix": [0, 6], "x": 7.5, "y": 0 },
|
||||
{ "label": "F7", "matrix": [0, 7], "x": 8.5, "y": 0 },
|
||||
{ "label": "F8", "matrix": [0, 8], "x": 9.5, "y": 0 },
|
||||
{ "label": "F9", "matrix": [0, 9], "x": 11, "y": 0 },
|
||||
{ "label": "F10", "matrix": [0, 10], "x": 12, "y": 0 },
|
||||
{ "label": "F11", "matrix": [0, 11], "x": 13, "y": 0 },
|
||||
{ "label": "F12", "matrix": [0, 12], "x": 14, "y": 0 },
|
||||
{ "label": "PrtSc", "matrix": [0, 14], "x": 15.25, "y": 0 },
|
||||
{ "label": "ScrLk", "matrix": [0, 15], "x": 16.25, "y": 0 },
|
||||
{ "label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0 },
|
||||
{ "label": "Cal", "matrix": [0, 17], "x": 18.5, "y": 0 },
|
||||
{ "label": "Mute", "matrix": [0, 18], "x": 19.5, "y": 0 },
|
||||
{ "label": "Vold", "matrix": [0, 19], "x": 20.5, "y": 0 },
|
||||
{ "label": "Volu", "matrix": [0, 20], "x": 21.5, "y": 0 },
|
||||
|
||||
{ "label": "~", "matrix": [1, 0], "x": 0, "y": 1.25 },
|
||||
{ "label": "!", "matrix": [1, 1], "x": 1, "y": 1.25 },
|
||||
{ "label": "@", "matrix": [1, 2], "x": 2, "y": 1.25 },
|
||||
{ "label": "#", "matrix": [1, 3], "x": 3, "y": 1.25 },
|
||||
{ "label": "$", "matrix": [1, 4], "x": 4, "y": 1.25 },
|
||||
{ "label": "%", "matrix": [1, 5], "x": 5, "y": 1.25 },
|
||||
{ "label": "^", "matrix": [1, 6], "x": 6, "y": 1.25 },
|
||||
{ "label": "&", "matrix": [1, 7], "x": 7, "y": 1.25 },
|
||||
{ "label": "*", "matrix": [1, 8], "x": 8, "y": 1.25 },
|
||||
{ "label": "(", "matrix": [1, 9], "x": 9, "y": 1.25 },
|
||||
{ "label": ")", "matrix": [1, 10], "x": 10, "y": 1.25 },
|
||||
{ "label": "_", "matrix": [1, 11], "x": 11, "y": 1.25 },
|
||||
{ "label": "+", "matrix": [1, 12], "x": 12, "y": 1.25 },
|
||||
{ "label": "Backspace", "matrix": [1, 13], "x": 13, "y": 1.25, "w": 2 },
|
||||
{ "label": "Ins", "matrix": [1, 14], "x": 15.25, "y": 1.25 },
|
||||
{ "label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25 },
|
||||
{ "label": "PgUp", "matrix": [1, 16], "x": 17.25, "y": 1.25 },
|
||||
{ "label": "Num", "matrix": [1, 17], "x": 18.5, "y": 1.25 },
|
||||
{ "label": "/", "matrix": [1, 18], "x": 19.5, "y": 1.25 },
|
||||
{ "label": "*", "matrix": [1, 19], "x": 20.5, "y": 1.25 },
|
||||
{ "label": "-", "matrix": [1, 20], "x": 21.5, "y": 1.25 },
|
||||
|
||||
{ "label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5 },
|
||||
{ "label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25 },
|
||||
{ "label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25 },
|
||||
{ "label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25 },
|
||||
{ "label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25 },
|
||||
{ "label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25 },
|
||||
{ "label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25 },
|
||||
{ "label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25 },
|
||||
{ "label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25 },
|
||||
{ "label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25 },
|
||||
{ "label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25 },
|
||||
{ "label": "{", "matrix": [2, 11], "x": 11.5, "y": 2.25 },
|
||||
{ "label": "}", "matrix": [2, 12], "x": 12.5, "y": 2.25 },
|
||||
{ "label": "|", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5 },
|
||||
{ "label": "Del", "matrix": [2, 14], "x": 15.25, "y": 2.25 },
|
||||
{ "label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25 },
|
||||
{ "label": "PgDn", "matrix": [2, 16], "x": 17.25, "y": 2.25 },
|
||||
{ "label": "7", "matrix": [2, 17], "x": 18.5, "y": 2.25 },
|
||||
{ "label": "8", "matrix": [2, 18], "x": 19.5, "y": 2.25 },
|
||||
{ "label": "9", "matrix": [2, 19], "x": 20.5, "y": 2.25 },
|
||||
{ "label": "+", "matrix": [2, 20], "x": 21.5, "y": 2.25, "h": 2 },
|
||||
|
||||
{ "label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75 },
|
||||
{ "label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25 },
|
||||
{ "label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25 },
|
||||
{ "label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25 },
|
||||
{ "label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25 },
|
||||
{ "label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25 },
|
||||
{ "label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25 },
|
||||
{ "label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25 },
|
||||
{ "label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25 },
|
||||
{ "label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25 },
|
||||
{ "label": ":", "matrix": [3, 10], "x": 10.75, "y": 3.25 },
|
||||
{ "label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25 },
|
||||
{ "label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25 },
|
||||
{ "label": "4", "matrix": [3, 17], "x": 18.5, "y": 3.25 },
|
||||
{ "label": "5", "matrix": [3, 18], "x": 19.5, "y": 3.25 },
|
||||
{ "label": "6", "matrix": [3, 19], "x": 20.5, "y": 3.25 },
|
||||
|
||||
{ "label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25 },
|
||||
{ "label": "Z", "matrix": [4, 1], "x": 2.25, "y": 4.25 },
|
||||
{ "label": "X", "matrix": [4, 2], "x": 3.25, "y": 4.25 },
|
||||
{ "label": "C", "matrix": [4, 3], "x": 4.25, "y": 4.25 },
|
||||
{ "label": "V", "matrix": [4, 4], "x": 5.25, "y": 4.25 },
|
||||
{ "label": "B", "matrix": [4, 5], "x": 6.25, "y": 4.25 },
|
||||
{ "label": "N", "matrix": [4, 6], "x": 7.25, "y": 4.25 },
|
||||
{ "label": "M", "matrix": [4, 7], "x": 8.25, "y": 4.25 },
|
||||
{ "label": "<", "matrix": [4, 8], "x": 9.25, "y": 4.25 },
|
||||
{ "label": ">", "matrix": [4, 9], "x": 10.25, "y": 4.25 },
|
||||
{ "label": "?", "matrix": [4, 10], "x": 11.25, "y": 4.25 },
|
||||
{ "label": "Shift", "matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 2.75 },
|
||||
{ "label": "Up", "matrix": [4, 15], "x": 16.25, "y": 4.25 },
|
||||
{ "label": "1", "matrix": [4, 17], "x": 18.5, "y": 4.25 },
|
||||
{ "label": "2", "matrix": [4, 18], "x": 19.5, "y": 4.25 },
|
||||
{ "label": "3", "matrix": [4, 19], "x": 20.5, "y": 4.25 },
|
||||
{ "label": "Enter", "matrix": [4, 20], "x": 21.5, "y": 4.25, "h": 2 },
|
||||
|
||||
{ "label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25 },
|
||||
{ "label": "Win", "matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25 },
|
||||
{ "label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25 },
|
||||
{ "label": "Space", "matrix": [5, 5], "x": 3.75, "y": 5.25, "w": 6.25 },
|
||||
{ "label": "Alt", "matrix": [5, 9], "x": 10, "y": 5.25, "w": 1.25 },
|
||||
{ "label": "Win", "matrix": [5, 10], "x": 11.25, "y": 5.25, "w": 1.25 },
|
||||
{ "label": "Fn", "matrix": [5, 11], "x": 12.5, "y": 5.25, "w": 1.25 },
|
||||
{ "label": "Ctrl", "matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25 },
|
||||
{ "label": "Left", "matrix": [5, 14], "x": 15.25, "y": 5.25 },
|
||||
{ "label": "Down", "matrix": [5, 15], "x": 16.25, "y": 5.25 },
|
||||
{ "label": "Right", "matrix": [5, 16], "x": 17.25, "y": 5.25 },
|
||||
{ "label": "0", "matrix": [5, 18], "x": 18.5, "y": 5.25, "w": 2 },
|
||||
{ "label": ".", "matrix": [5, 19], "x": 20.5, "y": 5.25 }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
79
keyboards/akko/5108/keymaps/default/keymap.c
Normal file
79
keyboards/akko/5108/keymaps/default/keymap.c
Normal file
@ -0,0 +1,79 @@
|
||||
/* Copyright (C) 2023 jonylee@hfd
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General 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 __layers {
|
||||
WIN_B,
|
||||
WIN_W,
|
||||
WIN_FN,
|
||||
MAC_B,
|
||||
MAC_W,
|
||||
MAC_FN
|
||||
};
|
||||
|
||||
// clang-format off
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[WIN_B] = LAYOUT( /* Base */
|
||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS, KC_CALC, KC_MUTE, KC_VOLD, KC_VOLU,
|
||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT),
|
||||
|
||||
[WIN_W] = LAYOUT( /* Base */
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, MO(WIN_FN), _______, KC_A, KC_S, KC_D, _______, _______),
|
||||
|
||||
[WIN_FN] = LAYOUT( /* FN */
|
||||
_______, KC_MYCM, KC_MAIL, KC_WSCH, KC_WHOM, KC_MSEL, KC_MPLY, KC_MPRV, KC_MNXT, _______,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______,TG(WIN_W),_______,_______,_______,_______, _______, _______, DF(MAC_B),_______,_______, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, _______, _______, _______,
|
||||
_______, GU_TOGG, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI, _______, _______),
|
||||
|
||||
[MAC_B] = LAYOUT( /* Base */
|
||||
KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, KC_F5, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_PSCR, KC_SCRL, KC_PAUS, KC_CALC, KC_MUTE, KC_VOLD, KC_VOLU,
|
||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT,
|
||||
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT),
|
||||
|
||||
[MAC_W] = LAYOUT( /* Base */
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, MO(MAC_FN), _______, KC_A, KC_S, KC_D, _______, _______),
|
||||
|
||||
[MAC_FN] = LAYOUT( /* FN */
|
||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______,TG(MAC_W),_______,_______,_______,_______, _______, _______, DF(WIN_B),_______,_______, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI, _______, _______)
|
||||
};
|
||||
// clang-format on
|
79
keyboards/akko/5108/keymaps/via/keymap.c
Normal file
79
keyboards/akko/5108/keymaps/via/keymap.c
Normal file
@ -0,0 +1,79 @@
|
||||
/* Copyright (C) 2023 jonylee@hfd
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General 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 __layers {
|
||||
WIN_B,
|
||||
WIN_W,
|
||||
WIN_FN,
|
||||
MAC_B,
|
||||
MAC_W,
|
||||
MAC_FN
|
||||
};
|
||||
|
||||
// clang-format off
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[WIN_B] = LAYOUT( /* Base */
|
||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS, KC_CALC, KC_MUTE, KC_VOLD, KC_VOLU,
|
||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT),
|
||||
|
||||
[WIN_W] = LAYOUT( /* Base */
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, MO(WIN_FN), _______, KC_A, KC_S, KC_D, _______, _______),
|
||||
|
||||
[WIN_FN] = LAYOUT( /* FN */
|
||||
_______, KC_MYCM, KC_MAIL, KC_WSCH, KC_WHOM, KC_MSEL, KC_MPLY, KC_MPRV, KC_MNXT, _______,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______,TG(WIN_W),_______,_______,_______,_______, _______, _______, DF(MAC_B),_______,_______, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, _______, _______, _______,
|
||||
_______, GU_TOGG, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI, _______, _______),
|
||||
|
||||
[MAC_B] = LAYOUT( /* Base */
|
||||
KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, KC_F5, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_PSCR, KC_SCRL, KC_PAUS, KC_CALC, KC_MUTE, KC_VOLD, KC_VOLU,
|
||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT,
|
||||
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT),
|
||||
|
||||
[MAC_W] = LAYOUT( /* Base */
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, MO(MAC_FN), _______, KC_A, KC_S, KC_D, _______, _______),
|
||||
|
||||
[MAC_FN] = LAYOUT( /* FN */
|
||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______,TG(MAC_W),_______,_______,_______,_______, _______, _______, DF(WIN_B),_______,_______, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI, _______, _______)
|
||||
};
|
||||
// clang-format on
|
1
keyboards/akko/5108/keymaps/via/rules.mk
Normal file
1
keyboards/akko/5108/keymaps/via/rules.mk
Normal file
@ -0,0 +1 @@
|
||||
VIA_ENABLE = yes
|
24
keyboards/akko/5108/mcuconf.h
Normal file
24
keyboards/akko/5108/mcuconf.h
Normal file
@ -0,0 +1,24 @@
|
||||
/* Copyright (C) 2022 jonylee@hfd
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General 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_next <mcuconf.h>
|
||||
|
||||
#undef WB32_SPI_USE_QSPI
|
||||
#define WB32_SPI_USE_QSPI TRUE
|
||||
|
||||
#undef WB32_I2C_USE_I2C1
|
||||
#define WB32_I2C_USE_I2C1 TRUE
|
20
keyboards/akko/5108/readme.md
Normal file
20
keyboards/akko/5108/readme.md
Normal file
@ -0,0 +1,20 @@
|
||||
# 5108
|
||||
|
||||
A customizable 100% keyboard.
|
||||
|
||||
* Keyboard Maintainer: [jonylee@hfd](https://github.com/jonylee1986)
|
||||
* Hardware Supported: Akko 5108
|
||||
* Hardware Availability: [akko](https://www.akkogear.com/)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make akko/5108:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make akko/5108:default:flash
|
||||
|
||||
## Bootloader
|
||||
**Reset Key**: Hold down the key located at *K000*, which programmed as *Esc* while plugging in the keyboard.
|
||||
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
2
keyboards/akko/5108/rules.mk
Normal file
2
keyboards/akko/5108/rules.mk
Normal file
@ -0,0 +1,2 @@
|
||||
EEPROM_DRIVER = wear_leveling
|
||||
WEAR_LEVELING_DRIVER = spi_flash
|
217
keyboards/akko/acr87/acr87.c
Normal file
217
keyboards/akko/acr87/acr87.c
Normal file
@ -0,0 +1,217 @@
|
||||
/* Copyright (C) 2022 jonylee@hfd
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General 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"
|
||||
// clang-format off
|
||||
#ifdef RGB_MATRIX_ENABLE
|
||||
const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
|
||||
/* Refer to IS31 manual for these locations
|
||||
* driver
|
||||
* | R location
|
||||
* | | G location
|
||||
* | | | B location
|
||||
* | | | | */
|
||||
/*row0*/
|
||||
{1, A_1, B_1, C_1},
|
||||
{1, A_2, B_2, C_2},
|
||||
{1, A_3, B_3, C_3},
|
||||
{1, A_4, B_4, C_4},
|
||||
{1, A_5, B_5, C_5},
|
||||
{1, A_6, B_6, C_6},
|
||||
{1, A_7, B_7, C_7},
|
||||
{1, A_8, B_8, C_8},
|
||||
{1, A_9, B_9, C_9},
|
||||
{1, A_10, B_10, C_10},
|
||||
{1, A_11, B_11, C_11},
|
||||
{1, A_12, B_12, C_12},
|
||||
{1, A_13, B_13, C_13},
|
||||
{1, A_14, B_14, C_14},
|
||||
{1, A_15, B_15, C_15},
|
||||
{1, A_16, B_16, C_16},
|
||||
|
||||
/*row1*/
|
||||
{0, A_1, B_1, C_1},
|
||||
{0, A_2, B_2, C_2},
|
||||
{0, A_3, B_3, C_3},
|
||||
{0, A_4, B_4, C_4},
|
||||
{0, A_5, B_5, C_5},
|
||||
{0, A_6, B_6, C_6},
|
||||
{0, A_7, B_7, C_7},
|
||||
{0, A_8, B_8, C_8},
|
||||
{0, A_9, B_9, C_9},
|
||||
{0, A_10, B_10, C_10},
|
||||
{0, A_11, B_11, C_11},
|
||||
{0, A_12, B_12, C_12},
|
||||
{0, A_13, B_13, C_13},
|
||||
{0, A_14, B_14, C_14},
|
||||
{1, D_1, E_1, F_1},
|
||||
{1, D_2, E_2, F_2},
|
||||
{1, D_3, E_3, F_3},
|
||||
|
||||
/*row2*/
|
||||
{0, D_1, E_1, F_1},
|
||||
{0, D_2, E_2, F_2},
|
||||
{0, D_3, E_3, F_3},
|
||||
{0, D_4, E_4, F_4},
|
||||
{0, D_5, E_5, F_5},
|
||||
{0, D_6, E_6, F_6},
|
||||
{0, D_7, E_7, F_7},
|
||||
{0, D_8, E_8, F_8},
|
||||
{0, D_9, E_9, F_9},
|
||||
{0, D_10, E_10, F_10},
|
||||
{0, D_11, E_11, F_11},
|
||||
{0, D_12, E_12, F_12},
|
||||
{0, D_13, E_13, F_13},
|
||||
{0, D_14, E_14, F_14},
|
||||
{1, G_1, H_1, I_1},
|
||||
{1, G_2, H_2, I_2},
|
||||
{1, G_3, H_3, I_3},
|
||||
|
||||
/*row3*/
|
||||
{0, G_1, H_1, I_1},
|
||||
{0, G_2, H_2, I_2},
|
||||
{0, G_3, H_3, I_3},
|
||||
{0, G_4, H_4, I_4},
|
||||
{0, G_5, H_5, I_5},
|
||||
{0, G_6, H_6, I_6},
|
||||
{0, G_7, H_7, I_7},
|
||||
{0, G_8, H_8, I_8},
|
||||
{0, G_9, H_9, I_9},
|
||||
{0, G_10, H_10, I_10},
|
||||
{0, G_11, H_11, I_11},
|
||||
{0, G_12, H_12, I_12},
|
||||
{0, G_13, H_13, I_13},
|
||||
|
||||
/*row4*/
|
||||
{0, J_1, K_1, L_1},
|
||||
{0, J_2, K_2, L_2},
|
||||
{0, J_3, K_3, L_3},
|
||||
{0, J_4, K_4, L_4},
|
||||
{0, J_5, K_5, L_5},
|
||||
{0, J_6, K_6, L_6},
|
||||
{0, J_7, K_7, L_7},
|
||||
{0, J_8, K_8, L_8},
|
||||
{0, J_9, K_9, L_9},
|
||||
{0, J_10, K_10, L_10},
|
||||
{0, J_11, K_11, L_11},
|
||||
{0, J_12, K_12, L_12},
|
||||
{1, J_4, K_4, L_4},
|
||||
|
||||
/*row5*/
|
||||
{0, J_13, K_13, L_13},
|
||||
{0, J_14, K_14, L_14},
|
||||
{0, J_15, K_15, L_15},
|
||||
{0, J_16, K_16, L_16},
|
||||
{0, G_14, H_14, I_14},
|
||||
{0, G_15, H_15, I_15},
|
||||
{0, G_16, H_16, I_16},
|
||||
{0, D_15, E_15, F_15},
|
||||
{1, J_1, K_1, L_1},
|
||||
{1, J_2, K_2, L_2},
|
||||
{1, J_3, K_3, L_3},
|
||||
|
||||
{2, J_12, K_12, L_12},
|
||||
{2, J_11, K_11, L_11},
|
||||
{2, J_10, K_10, L_10},
|
||||
{2, J_9, K_9, L_9},
|
||||
{2, J_8, K_8, L_8},
|
||||
{2, J_7, K_7, L_7},
|
||||
{2, J_6, K_6, L_6},
|
||||
{2, J_5, K_5, L_5},
|
||||
{2, J_4, K_4, L_4},
|
||||
{2, J_3, K_3, L_3},
|
||||
{2, J_2, K_2, L_2},
|
||||
{2, J_1, K_1, L_1},
|
||||
{2, G_12, H_12, I_12},
|
||||
{2, G_11, H_11, I_11},
|
||||
{2, G_10, H_10, I_10},
|
||||
{2, G_9, H_9, I_9},
|
||||
|
||||
{2, A_1, B_1, C_1},
|
||||
{2, G_8, H_8, I_8},
|
||||
|
||||
{2, A_2, B_2, C_2},
|
||||
{2, G_7, H_7, I_7},
|
||||
|
||||
{2, A_3, B_3, C_3},
|
||||
{2, G_6, H_6, I_6},
|
||||
|
||||
{2, A_4, B_4, C_4},
|
||||
{2, G_5, H_5, I_5},
|
||||
|
||||
{2, A_5, B_5, C_5},
|
||||
{2, G_4, H_4, I_4},
|
||||
|
||||
{2, A_6, B_6, C_6},
|
||||
{2, G_3, H_3, I_3},
|
||||
|
||||
{2, A_7, B_7, C_7},
|
||||
{2, G_2, H_2, I_2},
|
||||
|
||||
{2, A_8, B_8, C_8},
|
||||
{2, A_9, B_9, C_9},
|
||||
{2, A_10, B_10, C_10},
|
||||
{2, A_11, B_11, C_11},
|
||||
{2, A_12, B_12, C_12},
|
||||
{2, D_1, E_1, F_1},
|
||||
{2, D_2, E_2, F_2},
|
||||
{2, D_3, E_3, F_3},
|
||||
{2, D_4, E_4, F_4},
|
||||
{2, D_5, E_5, F_5},
|
||||
{2, D_6, E_6, F_6},
|
||||
{2, D_7, E_7, F_7},
|
||||
{2, D_8, E_8, F_8},
|
||||
{2, D_9, E_9, F_9},
|
||||
{2, D_10, E_10, F_10},
|
||||
{2, D_11, E_11, F_11},
|
||||
{2, D_12, E_12, F_12},
|
||||
{2, G_1, H_1, I_1},
|
||||
};
|
||||
|
||||
// clang-format on
|
||||
bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max)
|
||||
{
|
||||
if (!rgb_matrix_indicators_advanced_user(led_min, led_max))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (host_keyboard_led_state().caps_lock)
|
||||
{
|
||||
RGB_MATRIX_INDICATOR_SET_COLOR(50, 255, 255, 255);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!rgb_matrix_get_flags())
|
||||
{
|
||||
RGB_MATRIX_INDICATOR_SET_COLOR(50, 0, 0, 0);
|
||||
}
|
||||
}
|
||||
if (keymap_config.no_gui)
|
||||
{
|
||||
RGB_MATRIX_INDICATOR_SET_COLOR(77, 255, 255, 255);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!rgb_matrix_get_flags())
|
||||
{
|
||||
RGB_MATRIX_INDICATOR_SET_COLOR(77, 0, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
#endif
|
53
keyboards/akko/acr87/config.h
Normal file
53
keyboards/akko/acr87/config.h
Normal file
@ -0,0 +1,53 @@
|
||||
/* Copyright (C) 2022 jonylee@hfd
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General 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
|
||||
|
||||
/* Use 5 dynamic keymap layers */
|
||||
#define DYNAMIC_KEYMAP_LAYER_COUNT 6
|
||||
|
||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||
#define LOCKING_SUPPORT_ENABLE
|
||||
/* Locking resynchronize hack */
|
||||
#define LOCKING_RESYNC_ENABLE
|
||||
|
||||
/* SPI Config for spi flash*/
|
||||
#define SPI_DRIVER SPIDQ
|
||||
#define SPI_SCK_PIN B3
|
||||
#define SPI_MOSI_PIN B5
|
||||
#define SPI_MISO_PIN B4
|
||||
#define SPI_MOSI_PAL_MODE 5
|
||||
|
||||
#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12
|
||||
#define WEAR_LEVELING_BACKING_SIZE (8 * 1024)
|
||||
|
||||
/* I2C Config for LED Driver */
|
||||
#define DRIVER_COUNT 3
|
||||
#define DRIVER_ADDR_1 0b1110100
|
||||
#define DRIVER_ADDR_2 0b1110111
|
||||
#define DRIVER_ADDR_3 0b1110110
|
||||
|
||||
#define I2C1_SCL_PAL_MODE 4
|
||||
#define I2C1_OPMODE OPMODE_I2C
|
||||
#define I2C1_CLOCK_SPEED 400000 /* 400000 */
|
||||
|
||||
#define RGB_MATRIX_LED_COUNT 135
|
||||
|
||||
#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
|
||||
#define RGB_TRIGGER_ON_KEYDOWN
|
||||
#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
|
||||
#define RGB_MATRIX_KEYPRESSES
|
||||
#define RGB_MATRIX_KEYRELEASES
|
23
keyboards/akko/acr87/halconf.h
Normal file
23
keyboards/akko/acr87/halconf.h
Normal file
@ -0,0 +1,23 @@
|
||||
/* Copyright (C) 2022 jonylee@hfd
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#define HAL_USE_I2C TRUE
|
||||
#define HAL_USE_SPI TRUE
|
||||
#define SPI_USE_WAIT TRUE
|
||||
#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD
|
||||
|
||||
#include_next <halconf.h>
|
294
keyboards/akko/acr87/info.json
Normal file
294
keyboards/akko/acr87/info.json
Normal file
@ -0,0 +1,294 @@
|
||||
{
|
||||
"keyboard_name": "ACR87",
|
||||
"manufacturer": "Akko",
|
||||
"url":"https://www.akkogear.com",
|
||||
"maintainer": "jonylee@hfd",
|
||||
"usb": {
|
||||
"vid": "0xFFFE",
|
||||
"pid": "0x0010",
|
||||
"device_version": "1.0.1",
|
||||
"suspend_wakeup_delay": 400,
|
||||
"force_nkro": true
|
||||
},
|
||||
"processor": "WB32FQ95",
|
||||
"bootloader": "wb32-dfu",
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"mousekey": true,
|
||||
"extrakey": true,
|
||||
"console": false,
|
||||
"command": false,
|
||||
"nkro": true,
|
||||
"rgb_matrix": true
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": [ "C1", "C2", "C3", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "C4", "C5", "B0", "B1", "B2", "B10"],
|
||||
"rows": [ "B15", "C6", "C7", "C8", "C9", "A8"]
|
||||
},
|
||||
"diode_direction": "ROW2COL",
|
||||
"rgb_matrix": {
|
||||
"driver": "IS31FL3733",
|
||||
"max_brightness": 180,
|
||||
"animations": {
|
||||
"breathing": true,
|
||||
"cycle_all": true,
|
||||
"cycle_left_right": true,
|
||||
"cycle_up_down": true,
|
||||
"rainbow_moving_chevron": true,
|
||||
"cycle_out_in": true,
|
||||
"cycle_out_in_dual": true,
|
||||
"cycle_pinwheel": true,
|
||||
"cycle_spiral": true,
|
||||
"dual_beacon": true,
|
||||
"rainbow_beacon": true,
|
||||
"raindrops": true,
|
||||
"typing_heatmap": true,
|
||||
"solid_reactive_simple": true,
|
||||
"solid_reactive": true,
|
||||
"solid_reactive_cross": true,
|
||||
"multisplash": true
|
||||
},
|
||||
"layout":[
|
||||
{ "flags": 4, "matrix": [0, 0], "x": 0, "y": 0},
|
||||
{ "flags": 4, "matrix": [0, 1], "x": 24, "y": 0},
|
||||
{ "flags": 4, "matrix": [0, 2], "x": 38, "y": 0},
|
||||
{ "flags": 4, "matrix": [0, 3], "x": 52, "y": 0},
|
||||
{ "flags": 4, "matrix": [0, 4], "x": 66, "y": 0},
|
||||
{ "flags": 4, "matrix": [0, 5], "x": 82, "y": 0},
|
||||
{ "flags": 4, "matrix": [0, 6], "x": 96, "y": 0},
|
||||
{ "flags": 4, "matrix": [0, 7], "x":110, "y": 0},
|
||||
{ "flags": 4, "matrix": [0, 8], "x":124, "y": 0},
|
||||
{ "flags": 4, "matrix": [0, 9], "x":140, "y": 0},
|
||||
{ "flags": 4, "matrix": [0, 10], "x":154, "y": 0},
|
||||
{ "flags": 4, "matrix": [0, 11], "x":168, "y": 0},
|
||||
{ "flags": 4, "matrix": [0, 12], "x":182, "y": 0},
|
||||
{ "flags": 4, "matrix": [0, 14], "x":196, "y": 0},
|
||||
{ "flags": 4, "matrix": [0, 15], "x":210, "y": 0},
|
||||
{ "flags": 4, "matrix": [0, 16], "x":224, "y": 0},
|
||||
|
||||
{ "flags": 4, "matrix": [1, 0], "x": 0, "y": 12},
|
||||
{ "flags": 4, "matrix": [1, 1], "x": 13, "y": 12},
|
||||
{ "flags": 4, "matrix": [1, 2], "x": 26, "y": 12},
|
||||
{ "flags": 4, "matrix": [1, 3], "x": 39, "y": 12},
|
||||
{ "flags": 4, "matrix": [1, 4], "x": 52, "y": 12},
|
||||
{ "flags": 4, "matrix": [1, 5], "x": 65, "y": 12},
|
||||
{ "flags": 4, "matrix": [1, 6], "x": 79, "y": 12},
|
||||
{ "flags": 4, "matrix": [1, 7], "x": 92, "y": 12},
|
||||
{ "flags": 4, "matrix": [1, 8], "x":105, "y": 12},
|
||||
{ "flags": 4, "matrix": [1, 9], "x":118, "y": 12},
|
||||
{ "flags": 4, "matrix": [1, 10], "x":131, "y": 12},
|
||||
{ "flags": 4, "matrix": [1, 11], "x":144, "y": 12},
|
||||
{ "flags": 4, "matrix": [1, 12], "x":158, "y": 12},
|
||||
{ "flags": 4, "matrix": [1, 13], "x":171, "y": 12},
|
||||
{ "flags": 4, "matrix": [1, 14], "x":184, "y": 12},
|
||||
{ "flags": 4, "matrix": [1, 15], "x":197, "y": 12},
|
||||
{ "flags": 4, "matrix": [1, 16], "x":210, "y": 12},
|
||||
|
||||
{ "flags": 4, "matrix": [2, 0], "x": 0, "y": 26},
|
||||
{ "flags": 4, "matrix": [2, 1], "x": 14, "y": 26},
|
||||
{ "flags": 4, "matrix": [2, 2], "x": 28, "y": 26},
|
||||
{ "flags": 4, "matrix": [2, 3], "x": 42, "y": 26},
|
||||
{ "flags": 4, "matrix": [2, 4], "x": 56, "y": 26},
|
||||
{ "flags": 4, "matrix": [2, 5], "x": 70, "y": 26},
|
||||
{ "flags": 4, "matrix": [2, 6], "x": 84, "y": 26},
|
||||
{ "flags": 4, "matrix": [2, 7], "x": 98, "y": 26},
|
||||
{ "flags": 4, "matrix": [2, 8], "x":112, "y": 26},
|
||||
{ "flags": 4, "matrix": [2, 9], "x":126, "y": 26},
|
||||
{ "flags": 4, "matrix": [2, 10], "x":140, "y": 26},
|
||||
{ "flags": 4, "matrix": [2, 11], "x":154, "y": 26},
|
||||
{ "flags": 4, "matrix": [2, 12], "x":168, "y": 26},
|
||||
{ "flags": 4, "matrix": [2, 13], "x":182, "y": 26},
|
||||
{ "flags": 4, "matrix": [2, 14], "x":196, "y": 26},
|
||||
{ "flags": 4, "matrix": [2, 15], "x":210, "y": 26},
|
||||
{ "flags": 4, "matrix": [2, 16], "x":224, "y": 26},
|
||||
|
||||
{ "flags": 4, "matrix": [3, 0], "x": 0, "y": 38},
|
||||
{ "flags": 4, "matrix": [3, 1], "x": 14, "y": 38},
|
||||
{ "flags": 4, "matrix": [3, 2], "x": 28, "y": 38},
|
||||
{ "flags": 4, "matrix": [3, 3], "x": 42, "y": 38},
|
||||
{ "flags": 4, "matrix": [3, 4], "x": 56, "y": 38},
|
||||
{ "flags": 4, "matrix": [3, 5], "x": 70, "y": 38},
|
||||
{ "flags": 4, "matrix": [3, 6], "x": 84, "y": 38},
|
||||
{ "flags": 4, "matrix": [3, 7], "x": 98, "y": 38},
|
||||
{ "flags": 4, "matrix": [3, 8], "x":112, "y": 38},
|
||||
{ "flags": 4, "matrix": [3, 9], "x":126, "y": 38},
|
||||
{ "flags": 4, "matrix": [3, 10], "x":140, "y": 38},
|
||||
{ "flags": 4, "matrix": [3, 11], "x":154, "y": 38},
|
||||
{ "flags": 4, "matrix": [3, 13], "x":182, "y": 38},
|
||||
|
||||
{ "flags": 4, "matrix": [4, 0], "x": 0, "y": 51},
|
||||
{ "flags": 4, "matrix": [4, 1], "x": 14, "y": 51},
|
||||
{ "flags": 4, "matrix": [4, 2], "x": 28, "y": 51},
|
||||
{ "flags": 4, "matrix": [4, 3], "x": 42, "y": 51},
|
||||
{ "flags": 4, "matrix": [4, 4], "x": 56, "y": 51},
|
||||
{ "flags": 4, "matrix": [4, 5], "x": 70, "y": 51},
|
||||
{ "flags": 4, "matrix": [4, 6], "x": 84, "y": 51},
|
||||
{ "flags": 4, "matrix": [4, 7], "x": 98, "y": 51},
|
||||
{ "flags": 4, "matrix": [4, 8], "x":112, "y": 51},
|
||||
{ "flags": 4, "matrix": [4, 9], "x":126, "y": 51},
|
||||
{ "flags": 4, "matrix": [4, 10], "x":140, "y": 51},
|
||||
{ "flags": 4, "matrix": [4, 13], "x":154, "y": 51},
|
||||
{ "flags": 4, "matrix": [4, 15], "x":182, "y": 51},
|
||||
|
||||
{ "flags": 4, "matrix": [5, 0], "x": 0, "y": 64},
|
||||
{ "flags": 4, "matrix": [5, 1], "x": 14, "y": 64},
|
||||
{ "flags": 4, "matrix": [5, 2], "x": 28, "y": 64},
|
||||
{ "flags": 4, "matrix": [5, 5], "x": 70, "y": 64},
|
||||
{ "flags": 4, "matrix": [5, 9], "x":126, "y": 64},
|
||||
{ "flags": 4, "matrix": [5, 10], "x":140, "y": 64},
|
||||
{ "flags": 4, "matrix": [5, 11], "x":154, "y": 64},
|
||||
{ "flags": 4, "matrix": [5, 13], "x":182, "y": 64},
|
||||
{ "flags": 4, "matrix": [5, 14], "x":196, "y": 64},
|
||||
{ "flags": 4, "matrix": [5, 15], "x":210, "y": 64},
|
||||
{ "flags": 4, "matrix": [5, 16], "x":224, "y": 64},
|
||||
|
||||
{"flags": 2, "x":13, "y":0},
|
||||
{"flags": 2, "x":24, "y":0},
|
||||
{"flags": 2, "x":38, "y":0},
|
||||
{"flags": 2, "x":52, "y":0},
|
||||
{"flags": 2, "x":66, "y":0},
|
||||
{"flags": 2, "x":82, "y":0},
|
||||
{"flags": 2, "x":96, "y":0},
|
||||
{"flags": 2, "x":110, "y":0},
|
||||
{"flags": 2, "x":124, "y":0},
|
||||
{"flags": 2, "x":140, "y":0},
|
||||
{"flags": 2, "x":154, "y":0},
|
||||
{"flags": 2, "x":168, "y":0},
|
||||
{"flags": 2, "x":182, "y":0},
|
||||
{"flags": 2, "x":196, "y":0},
|
||||
{"flags": 2, "x":210, "y":0},
|
||||
{"flags": 2, "x":224, "y":0},
|
||||
{"flags": 2, "x":0, "y":8},
|
||||
{"flags": 2, "x":224, "y":8},
|
||||
{"flags": 2, "x":0, "y":16},
|
||||
{"flags": 2, "x":224, "y":16},
|
||||
{"flags": 2, "x":0, "y":24},
|
||||
{"flags": 2, "x":224, "y":24},
|
||||
{"flags": 2, "x":0, "y":32},
|
||||
{"flags": 2, "x":224, "y":32},
|
||||
{"flags": 2, "x":0, "y":40},
|
||||
{"flags": 2, "x":224, "y":40},
|
||||
{"flags": 2, "x":0, "y":48},
|
||||
{"flags": 2, "x":224, "y":48},
|
||||
{"flags": 2, "x":0, "y":56},
|
||||
{"flags": 2, "x":224, "y":56},
|
||||
{"flags": 2, "x":0, "y":64},
|
||||
{"flags": 2, "x":13, "y":64},
|
||||
{"flags": 2, "x":25, "y":64},
|
||||
{"flags": 2, "x":37, "y":64},
|
||||
{"flags": 2, "x":49, "y":64},
|
||||
{"flags": 2, "x":61, "y":64},
|
||||
{"flags": 2, "x":73, "y":64},
|
||||
{"flags": 2, "x":85, "y":64},
|
||||
{"flags": 2, "x":97, "y":64},
|
||||
{"flags": 2, "x":109, "y":64},
|
||||
{"flags": 2, "x":121, "y":64},
|
||||
{"flags": 2, "x":133, "y":64},
|
||||
{"flags": 2, "x":145, "y":64},
|
||||
{"flags": 2, "x":157, "y":64},
|
||||
{"flags": 2, "x":170, "y":64},
|
||||
{"flags": 2, "x":196, "y":64},
|
||||
{"flags": 2, "x":210, "y":64},
|
||||
{"flags": 2, "x":224, "y":64}
|
||||
]
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{ "label": "Esc", "matrix": [0, 0], "x": 0, "y": 0 },
|
||||
{ "label": "F1", "matrix": [0, 1], "x": 2, "y": 0 },
|
||||
{ "label": "F2", "matrix": [0, 2], "x": 3, "y": 0 },
|
||||
{ "label": "F3", "matrix": [0, 3], "x": 4, "y": 0 },
|
||||
{ "label": "F4", "matrix": [0, 4], "x": 5, "y": 0 },
|
||||
{ "label": "F5", "matrix": [0, 5], "x": 6.5, "y": 0 },
|
||||
{ "label": "F6", "matrix": [0, 6], "x": 7.5, "y": 0 },
|
||||
{ "label": "F7", "matrix": [0, 7], "x": 8.5, "y": 0 },
|
||||
{ "label": "F8", "matrix": [0, 8], "x": 9.5, "y": 0 },
|
||||
{ "label": "F9", "matrix": [0, 9], "x": 11, "y": 0 },
|
||||
{ "label": "F10", "matrix": [0, 10], "x": 12, "y": 0 },
|
||||
{ "label": "F11", "matrix": [0, 11], "x": 13, "y": 0 },
|
||||
{ "label": "F12", "matrix": [0, 12], "x": 14, "y": 0 },
|
||||
{ "label": "PrtSc", "matrix": [0, 14], "x": 15.25, "y": 0 },
|
||||
{ "label": "ScrLk", "matrix": [0, 15], "x": 16.25, "y": 0 },
|
||||
{ "label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0 },
|
||||
|
||||
{ "label": "~", "matrix": [1, 0], "x": 0, "y": 1.25 },
|
||||
{ "label": "!", "matrix": [1, 1], "x": 1, "y": 1.25 },
|
||||
{ "label": "@", "matrix": [1, 2], "x": 2, "y": 1.25 },
|
||||
{ "label": "#", "matrix": [1, 3], "x": 3, "y": 1.25 },
|
||||
{ "label": "$", "matrix": [1, 4], "x": 4, "y": 1.25 },
|
||||
{ "label": "%", "matrix": [1, 5], "x": 5, "y": 1.25 },
|
||||
{ "label": "^", "matrix": [1, 6], "x": 6, "y": 1.25 },
|
||||
{ "label": "&", "matrix": [1, 7], "x": 7, "y": 1.25 },
|
||||
{ "label": "*", "matrix": [1, 8], "x": 8, "y": 1.25 },
|
||||
{ "label": "(", "matrix": [1, 9], "x": 9, "y": 1.25 },
|
||||
{ "label": ")", "matrix": [1, 10], "x": 10, "y": 1.25 },
|
||||
{ "label": "_", "matrix": [1, 11], "x": 11, "y": 1.25 },
|
||||
{ "label": "+", "matrix": [1, 12], "x": 12, "y": 1.25 },
|
||||
{ "label": "Backspace", "matrix": [1, 13], "x": 13, "y": 1.25, "w": 2 },
|
||||
{ "label": "Ins", "matrix": [1, 14], "x": 15.25, "y": 1.25 },
|
||||
{ "label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25 },
|
||||
{ "label": "PgUp", "matrix": [1, 16], "x": 17.25, "y": 1.25 },
|
||||
|
||||
{ "label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5 },
|
||||
{ "label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25 },
|
||||
{ "label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25 },
|
||||
{ "label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25 },
|
||||
{ "label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25 },
|
||||
{ "label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25 },
|
||||
{ "label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25 },
|
||||
{ "label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25 },
|
||||
{ "label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25 },
|
||||
{ "label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25 },
|
||||
{ "label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25 },
|
||||
{ "label": "{", "matrix": [2, 11], "x": 11.5, "y": 2.25 },
|
||||
{ "label": "}", "matrix": [2, 12], "x": 12.5, "y": 2.25 },
|
||||
{ "label": "|", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5 },
|
||||
{ "label": "Del", "matrix": [2, 14], "x": 15.25, "y": 2.25 },
|
||||
{ "label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25 },
|
||||
{ "label": "PgDn", "matrix": [2, 16], "x": 17.25, "y": 2.25 },
|
||||
|
||||
{ "label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75 },
|
||||
{ "label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25 },
|
||||
{ "label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25 },
|
||||
{ "label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25 },
|
||||
{ "label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25 },
|
||||
{ "label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25 },
|
||||
{ "label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25 },
|
||||
{ "label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25 },
|
||||
{ "label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25 },
|
||||
{ "label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25 },
|
||||
{ "label": ":", "matrix": [3, 10], "x": 10.75, "y": 3.25 },
|
||||
{ "label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25 },
|
||||
{ "label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25 },
|
||||
|
||||
{ "label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25 },
|
||||
{ "label": "Z", "matrix": [4, 1], "x": 2.25, "y": 4.25 },
|
||||
{ "label": "X", "matrix": [4, 2], "x": 3.25, "y": 4.25 },
|
||||
{ "label": "C", "matrix": [4, 3], "x": 4.25, "y": 4.25 },
|
||||
{ "label": "V", "matrix": [4, 4], "x": 5.25, "y": 4.25 },
|
||||
{ "label": "B", "matrix": [4, 5], "x": 6.25, "y": 4.25 },
|
||||
{ "label": "N", "matrix": [4, 6], "x": 7.25, "y": 4.25 },
|
||||
{ "label": "M", "matrix": [4, 7], "x": 8.25, "y": 4.25 },
|
||||
{ "label": "<", "matrix": [4, 8], "x": 9.25, "y": 4.25 },
|
||||
{ "label": ">", "matrix": [4, 9], "x": 10.25, "y": 4.25 },
|
||||
{ "label": "?", "matrix": [4, 10], "x": 11.25, "y": 4.25 },
|
||||
{ "label": "Shift", "matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 2.75 },
|
||||
{ "label": "Up", "matrix": [4, 15], "x": 16.25, "y": 4.25 },
|
||||
|
||||
{ "label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25 },
|
||||
{ "label": "Win", "matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25 },
|
||||
{ "label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25 },
|
||||
{ "label": "Space", "matrix": [5, 5], "x": 3.75, "y": 5.25, "w": 6.25 },
|
||||
{ "label": "Alt", "matrix": [5, 9], "x": 10, "y": 5.25, "w": 1.25 },
|
||||
{ "label": "Win", "matrix": [5, 10], "x": 11.25, "y": 5.25, "w": 1.25 },
|
||||
{ "label": "Fn", "matrix": [5, 11], "x": 12.5, "y": 5.25, "w": 1.25 },
|
||||
{ "label": "Ctrl", "matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25 },
|
||||
{ "label": "Left", "matrix": [5, 14], "x": 15.25, "y": 5.25 },
|
||||
{ "label": "Down", "matrix": [5, 15], "x": 16.25, "y": 5.25 },
|
||||
{ "label": "Right", "matrix": [5, 16], "x": 17.25, "y": 5.25 }
|
||||
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
79
keyboards/akko/acr87/keymaps/default/keymap.c
Normal file
79
keyboards/akko/acr87/keymaps/default/keymap.c
Normal file
@ -0,0 +1,79 @@
|
||||
/* Copyright (C) 2023 jonylee@hfd
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General 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 __layers {
|
||||
WIN_B,
|
||||
WIN_W,
|
||||
WIN_FN,
|
||||
MAC_B,
|
||||
MAC_W,
|
||||
MAC_FN
|
||||
};
|
||||
|
||||
// clang-format off
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[WIN_B] = LAYOUT( /* Base */
|
||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_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, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
[WIN_W] = LAYOUT( /* Base */
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W,
|
||||
_______, _______, _______, _______, _______, _______, MO(WIN_FN), _______, KC_A, KC_S, KC_D),
|
||||
|
||||
|
||||
[WIN_FN] = LAYOUT( /* FN */
|
||||
_______, KC_MYCM, KC_MAIL, KC_WSCH, KC_WHOM, KC_MSEL, KC_MPLY, KC_MPRV, KC_MNXT, _______,_______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______,
|
||||
_______, _______,TG(WIN_W),_______, _______, _______, _______, _______, _______, DF(MAC_B),_______,_______, _______, RGB_MOD, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI,
|
||||
_______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI,
|
||||
_______, GU_TOGG, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI),
|
||||
|
||||
[MAC_B] = LAYOUT( /* Base */
|
||||
KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, KC_F5, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, 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_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
[MAC_W] = LAYOUT( /* Base */
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W,
|
||||
_______, _______, _______, _______, _______, _______, MO(MAC_FN), _______, KC_A, KC_S, KC_D),
|
||||
[MAC_FN] = LAYOUT( /* FN */
|
||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______,
|
||||
_______, _______,TG(MAC_W),_______, _______, _______, _______, _______, _______, DF(WIN_B),_______,_______, _______, RGB_MOD, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI,
|
||||
_______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI)
|
||||
};
|
||||
// clang-format on
|
79
keyboards/akko/acr87/keymaps/via/keymap.c
Normal file
79
keyboards/akko/acr87/keymaps/via/keymap.c
Normal file
@ -0,0 +1,79 @@
|
||||
/* Copyright (C) 2023 jonylee@hfd
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General 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 __layers {
|
||||
WIN_B,
|
||||
WIN_W,
|
||||
WIN_FN,
|
||||
MAC_B,
|
||||
MAC_W,
|
||||
MAC_FN
|
||||
};
|
||||
|
||||
// clang-format off
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[WIN_B] = LAYOUT( /* Base */
|
||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_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, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
[WIN_W] = LAYOUT( /* Base */
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W,
|
||||
_______, _______, _______, _______, _______, _______, MO(WIN_FN), _______, KC_A, KC_S, KC_D),
|
||||
|
||||
|
||||
[WIN_FN] = LAYOUT( /* FN */
|
||||
_______, KC_MYCM, KC_MAIL, KC_WSCH, KC_WHOM, KC_MSEL, KC_MPLY, KC_MPRV, KC_MNXT, _______,_______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______,
|
||||
_______, _______,TG(WIN_W),_______, _______, _______, _______, _______, _______, DF(MAC_B),_______,_______, _______, RGB_MOD, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI,
|
||||
_______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI,
|
||||
_______, GU_TOGG, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI),
|
||||
|
||||
[MAC_B] = LAYOUT( /* Base */
|
||||
KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, KC_F5, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, 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_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
[MAC_W] = LAYOUT( /* Base */
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W,
|
||||
_______, _______, _______, _______, _______, _______, MO(MAC_FN), _______, KC_A, KC_S, KC_D),
|
||||
[MAC_FN] = LAYOUT( /* FN */
|
||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______,
|
||||
_______, _______,TG(MAC_W),_______, _______, _______, _______, _______, _______, DF(WIN_B),_______,_______, _______, RGB_MOD, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI,
|
||||
_______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI)
|
||||
};
|
||||
// clang-format on
|
1
keyboards/akko/acr87/keymaps/via/rules.mk
Normal file
1
keyboards/akko/acr87/keymaps/via/rules.mk
Normal file
@ -0,0 +1 @@
|
||||
VIA_ENABLE = yes
|
24
keyboards/akko/acr87/mcuconf.h
Normal file
24
keyboards/akko/acr87/mcuconf.h
Normal file
@ -0,0 +1,24 @@
|
||||
/* Copyright (C) 2022 jonylee@hfd
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General 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_next <mcuconf.h>
|
||||
|
||||
#undef WB32_SPI_USE_QSPI
|
||||
#define WB32_SPI_USE_QSPI TRUE
|
||||
|
||||
#undef WB32_I2C_USE_I2C1
|
||||
#define WB32_I2C_USE_I2C1 TRUE
|
19
keyboards/akko/acr87/readme.md
Normal file
19
keyboards/akko/acr87/readme.md
Normal file
@ -0,0 +1,19 @@
|
||||
# acr87
|
||||
|
||||
A customizable 80% encoder keyboard.
|
||||
|
||||
* Keyboard Maintainer: [jonylee@hfd](https://github.com/jonylee1986)
|
||||
* Hardware Supported: acr87
|
||||
* Hardware Availability: [akko](https://www.akkogear.com/)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make akko/acr87:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make akko/acr87:default:flash
|
||||
|
||||
**Reset Key**: Hold down the key located at *K000*, which programmed as *Esc* while plugging in the keyboard.
|
||||
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
3
keyboards/akko/acr87/rules.mk
Normal file
3
keyboards/akko/acr87/rules.mk
Normal file
@ -0,0 +1,3 @@
|
||||
EEPROM_DRIVER = wear_leveling
|
||||
WEAR_LEVELING_DRIVER = spi_flash
|
||||
|
52
keyboards/akko/top40/config.h
Normal file
52
keyboards/akko/top40/config.h
Normal file
@ -0,0 +1,52 @@
|
||||
/* Copyright (C) 2022 jonylee@hfd
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General 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
|
||||
|
||||
/* Use 5 dynamic keymap layers */
|
||||
#define DYNAMIC_KEYMAP_LAYER_COUNT 6
|
||||
|
||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||
#define LOCKING_SUPPORT_ENABLE
|
||||
/* Locking resynchronize hack */
|
||||
#define LOCKING_RESYNC_ENABLE
|
||||
|
||||
/* SPI Config for spi flash*/
|
||||
#define SPI_DRIVER SPIDQ
|
||||
#define SPI_SCK_PIN B3
|
||||
#define SPI_MOSI_PIN B5
|
||||
#define SPI_MISO_PIN B4
|
||||
#define SPI_MOSI_PAL_MODE 5
|
||||
|
||||
#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12
|
||||
#define WEAR_LEVELING_BACKING_SIZE (8 * 1024)
|
||||
|
||||
/* I2C Config for LED Driver */
|
||||
#define DRIVER_COUNT 2
|
||||
#define DRIVER_ADDR_1 0b1110100
|
||||
#define DRIVER_ADDR_2 0b1110111
|
||||
#define I2C1_SCL_PAL_MODE 4
|
||||
#define I2C1_OPMODE OPMODE_I2C
|
||||
#define I2C1_CLOCK_SPEED 400000 /* 400000 */
|
||||
|
||||
#define RGB_MATRIX_LED_COUNT 76
|
||||
|
||||
#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
|
||||
#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
|
||||
#define RGB_MATRIX_KEYPRESSES
|
||||
#define RGB_MATRIX_KEYRELEASES
|
||||
#define RGB_TRIGGER_ON_KEYDOWN
|
||||
|
23
keyboards/akko/top40/halconf.h
Normal file
23
keyboards/akko/top40/halconf.h
Normal file
@ -0,0 +1,23 @@
|
||||
/* Copyright (C) 2022 jonylee@hfd
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#define HAL_USE_I2C TRUE
|
||||
#define HAL_USE_SPI TRUE
|
||||
#define SPI_USE_WAIT TRUE
|
||||
#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD
|
||||
|
||||
#include_next <halconf.h>
|
188
keyboards/akko/top40/info.json
Normal file
188
keyboards/akko/top40/info.json
Normal file
@ -0,0 +1,188 @@
|
||||
{
|
||||
"keyboard_name": "TOP40",
|
||||
"manufacturer": "Akko",
|
||||
"url":"https://www.akkogear.com",
|
||||
"maintainer": "jonylee@hfd",
|
||||
"usb": {
|
||||
"vid": "0xFFFE",
|
||||
"pid": "0x000E",
|
||||
"device_version": "1.0.2",
|
||||
"suspend_wakeup_delay": 400,
|
||||
"force_nkro": true
|
||||
},
|
||||
"processor": "WB32FQ95",
|
||||
"bootloader": "wb32-dfu",
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"mousekey": true,
|
||||
"extrakey": true,
|
||||
"console": false,
|
||||
"command": false,
|
||||
"nkro": true,
|
||||
"rgb_matrix": true
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["C1", "C2", "C3", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "C4"],
|
||||
"rows": ["C7", "C8", "C9", "A8"]
|
||||
},
|
||||
"diode_direction": "ROW2COL",
|
||||
"rgb_matrix": {
|
||||
"driver": "IS31FL3733",
|
||||
"max_brightness": 180,
|
||||
"animations": {
|
||||
"breathing": true,
|
||||
"cycle_all": true,
|
||||
"cycle_left_right": true,
|
||||
"cycle_up_down": true,
|
||||
"rainbow_moving_chevron": true,
|
||||
"cycle_out_in": true,
|
||||
"cycle_out_in_dual": true,
|
||||
"cycle_pinwheel": true,
|
||||
"cycle_spiral": true,
|
||||
"dual_beacon": true,
|
||||
"rainbow_beacon": true,
|
||||
"raindrops": true,
|
||||
"typing_heatmap": true,
|
||||
"solid_reactive_simple": true,
|
||||
"solid_reactive": true,
|
||||
"solid_reactive_cross": true,
|
||||
"multisplash": true
|
||||
},
|
||||
"layout":[
|
||||
{ "flags": 4, "matrix": [0, 0], "x": 10, "y":10 },
|
||||
{ "flags": 4, "matrix": [0, 1], "x": 20, "y":10 },
|
||||
{ "flags": 4, "matrix": [0, 2], "x": 40, "y":10 },
|
||||
{ "flags": 4, "matrix": [0, 3], "x": 60, "y":10 },
|
||||
{ "flags": 4, "matrix": [0, 4], "x": 80, "y":10 },
|
||||
{ "flags": 4, "matrix": [0, 5], "x":100 , "y":10 },
|
||||
{ "flags": 4, "matrix": [0, 6], "x":120 , "y":10 },
|
||||
{ "flags": 4, "matrix": [0, 7], "x":140 , "y":10 },
|
||||
{ "flags": 4, "matrix": [0, 8], "x":160 , "y":10 },
|
||||
{ "flags": 4, "matrix": [0, 9], "x":180 , "y":10 },
|
||||
{ "flags": 4, "matrix": [0, 10], "x":200 , "y":10 },
|
||||
{ "flags": 4, "matrix": [0, 11], "x":218 , "y":10 },
|
||||
|
||||
{ "flags": 4, "matrix": [1, 0], "x": 10, "y":24 },
|
||||
{ "flags": 4, "matrix": [1, 1], "x": 20, "y":24 },
|
||||
{ "flags": 4, "matrix": [1, 2], "x": 40, "y":24 },
|
||||
{ "flags": 4, "matrix": [1, 3], "x": 60, "y":24 },
|
||||
{ "flags": 4, "matrix": [1, 4], "x": 80, "y":24 },
|
||||
{ "flags": 4, "matrix": [1, 5], "x":100 , "y":24 },
|
||||
{ "flags": 4, "matrix": [1, 6], "x":120 , "y":24 },
|
||||
{ "flags": 4, "matrix": [1, 7], "x":140 , "y":24 },
|
||||
{ "flags": 4, "matrix": [1, 8], "x":160 , "y":24 },
|
||||
{ "flags": 4, "matrix": [1, 9], "x":180 , "y":24 },
|
||||
{ "flags": 4, "matrix": [1, 10], "x":200 , "y":24 },
|
||||
{ "flags": 4, "matrix": [1, 11], "x":218 , "y":24 },
|
||||
|
||||
{ "flags": 4, "matrix": [2, 0], "x": 10, "y":39 },
|
||||
{ "flags": 4, "matrix": [2, 1], "x": 20, "y":39 },
|
||||
{ "flags": 4, "matrix": [2, 2], "x": 40, "y":39 },
|
||||
{ "flags": 4, "matrix": [2, 3], "x": 60, "y":39 },
|
||||
{ "flags": 4, "matrix": [2, 4], "x": 80, "y":39 },
|
||||
{ "flags": 4, "matrix": [2, 5], "x":100 , "y":39 },
|
||||
{ "flags": 4, "matrix": [2, 6], "x":120 , "y":39 },
|
||||
{ "flags": 4, "matrix": [2, 7], "x":140 , "y":39 },
|
||||
{ "flags": 4, "matrix": [2, 8], "x":160 , "y":39 },
|
||||
{ "flags": 4, "matrix": [2, 9], "x":180 , "y":39 },
|
||||
{ "flags": 4, "matrix": [2, 10], "x":200 , "y":39 },
|
||||
{ "flags": 4, "matrix": [2, 11], "x":218 , "y":39 },
|
||||
|
||||
{ "flags": 4, "matrix": [3, 0], "x": 10, "y":54 },
|
||||
{ "flags": 4, "matrix": [3, 1], "x": 20, "y":54 },
|
||||
{ "flags": 4, "matrix": [3, 2], "x": 40, "y":54 },
|
||||
{ "flags": 4, "matrix": [3, 4], "x": 80, "y":54 },
|
||||
{ "flags": 4, "matrix": [3, 6], "x":120 , "y":54 },
|
||||
{ "flags": 4, "matrix": [3, 8], "x":160 , "y":54 },
|
||||
{ "flags": 4, "matrix": [3, 9], "x":180 , "y":54 },
|
||||
{ "flags": 4, "matrix": [3, 10], "x":200 , "y":54 },
|
||||
{ "flags": 4, "matrix": [3, 11], "x":218 , "y":54 },
|
||||
|
||||
{"flags": 2, "x":0, "y":0},
|
||||
{"flags": 2, "x":15, "y":0},
|
||||
{"flags": 2, "x":25, "y":0},
|
||||
{"flags": 2, "x":45, "y":0},
|
||||
{"flags": 2, "x":65, "y":0},
|
||||
{"flags": 2, "x":85, "y":0},
|
||||
{"flags": 2, "x":105, "y":0},
|
||||
{"flags": 2, "x":125, "y":0},
|
||||
{"flags": 2, "x":145, "y":0},
|
||||
{"flags": 2, "x":165, "y":0},
|
||||
{"flags": 2, "x":185, "y":0},
|
||||
{"flags": 2, "x":205, "y":0},
|
||||
{"flags": 2, "x":224, "y":0},
|
||||
{"flags": 2, "x":0, "y":16},
|
||||
{"flags": 2, "x":224, "y":16},
|
||||
{"flags": 2, "x":0, "y":32},
|
||||
{"flags": 2, "x":224, "y":32},
|
||||
{"flags": 2, "x":0, "y":48},
|
||||
{"flags": 2, "x":224, "y":48},
|
||||
{"flags": 2, "x":0, "y":64},
|
||||
{"flags": 2, "x":15, "y":64},
|
||||
{"flags": 2, "x":40, "y":64},
|
||||
{"flags": 2, "x":62, "y":64},
|
||||
{"flags": 2, "x":80, "y":64},
|
||||
{"flags": 2, "x":100, "y":64},
|
||||
{"flags": 2, "x":125, "y":64},
|
||||
{"flags": 2, "x":145, "y":64},
|
||||
{"flags": 2, "x":165, "y":64},
|
||||
{"flags": 2, "x":185, "y":64},
|
||||
{"flags": 2, "x":205, "y":64},
|
||||
{"flags": 2, "x":224, "y":64}
|
||||
]
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{ "label": "Ese", "matrix": [0, 0], "x": 0, "y": 0 },
|
||||
{ "label": "Q", "matrix": [0, 1], "x": 1, "y": 0 },
|
||||
{ "label": "W", "matrix": [0, 2], "x": 2, "y": 0 },
|
||||
{ "label": "E", "matrix": [0, 3], "x": 3, "y": 0 },
|
||||
{ "label": "R", "matrix": [0, 4], "x": 4, "y": 0 },
|
||||
{ "label": "T", "matrix": [0, 5], "x": 5, "y": 0 },
|
||||
{ "label": "Y", "matrix": [0, 6], "x": 6, "y": 0 },
|
||||
{ "label": "U", "matrix": [0, 7], "x": 7, "y": 0 },
|
||||
{ "label": "I", "matrix": [0, 8], "x": 8, "y": 0 },
|
||||
{ "label": "O", "matrix": [0, 9], "x": 9, "y": 0 },
|
||||
{ "label": "P", "matrix": [0, 10], "x": 10, "y": 0 },
|
||||
{ "label": "BackSpace", "matrix": [0, 11], "x": 11, "y": 0 , "w": 1.75},
|
||||
|
||||
{ "label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.25 },
|
||||
{ "label": "A", "matrix": [1, 1], "x": 1.25, "y": 1 },
|
||||
{ "label": "S", "matrix": [1, 2], "x": 2.25, "y": 1 },
|
||||
{ "label": "D", "matrix": [1, 3], "x": 3.25, "y": 1 },
|
||||
{ "label": "F", "matrix": [1, 4], "x": 4.25, "y": 1 },
|
||||
{ "label": "G", "matrix": [1, 5], "x": 5.25, "y": 1 },
|
||||
{ "label": "H", "matrix": [1, 6], "x": 6.25, "y": 1 },
|
||||
{ "label": "J", "matrix": [1, 7], "x": 7.25, "y": 1 },
|
||||
{ "label": "K", "matrix": [1, 8], "x": 8.25, "y": 1 },
|
||||
{ "label": "L", "matrix": [1, 9], "x": 9.25, "y": 1 },
|
||||
{ "label": ":", "matrix": [1, 10], "x": 10.25, "y": 1 },
|
||||
{ "label": "Enter", "matrix": [1, 11], "x": 11.25, "y": 1, "w": 1.5 },
|
||||
|
||||
{ "label": "Shift", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75 },
|
||||
{ "label": "Z", "matrix": [2, 1], "x": 1.75, "y": 2 },
|
||||
{ "label": "X", "matrix": [2, 2], "x": 2.75, "y": 2 },
|
||||
{ "label": "C", "matrix": [2, 3], "x": 3.75, "y": 2 },
|
||||
{ "label": "V", "matrix": [2, 4], "x": 4.75, "y": 2 },
|
||||
{ "label": "B", "matrix": [2, 5], "x": 5.75, "y": 2 },
|
||||
{ "label": "N", "matrix": [2, 6], "x": 6.75, "y": 2 },
|
||||
{ "label": "M", "matrix": [2, 7], "x": 7.75, "y": 2 },
|
||||
{ "label": "<", "matrix": [2, 8], "x": 8.75, "y": 2 },
|
||||
{ "label": ">", "matrix": [2, 9], "x": 9.75, "y": 2 },
|
||||
{ "label": "Up", "matrix": [2, 10], "x": 10.75, "y": 2},
|
||||
{ "label": "Shift", "matrix": [2, 11], "x": 11.75, "y": 2 },
|
||||
|
||||
{ "label": "Ctrl", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25 },
|
||||
{ "label": "Win", "matrix": [3, 1], "x": 1.25, "y": 3, "w": 1.25 },
|
||||
{ "label": "Alt", "matrix": [3, 2], "x": 2.5, "y": 3, "w": 1.25 },
|
||||
{ "label": "Space", "matrix": [3, 4], "x": 3.75, "y": 3, "w": 2.25 },
|
||||
{ "label": "Space", "matrix": [3, 6], "x": 6, "y": 3, "w": 2.75 },
|
||||
{ "label": "Fn", "matrix": [3, 8], "x": 8.75, "y": 3 },
|
||||
{ "label": "Left", "matrix": [3, 9], "x": 9.75, "y": 3 },
|
||||
{ "label": "Down", "matrix": [3, 10], "x": 10.75, "y": 3 },
|
||||
{ "label": "Right", "matrix": [3, 11], "x": 11.75, "y": 3 }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
37
keyboards/akko/top40/keymaps/default/keymap.c
Normal file
37
keyboards/akko/top40/keymaps/default/keymap.c
Normal file
@ -0,0 +1,37 @@
|
||||
/* Copyright (C) 2023 jonylee@hfd
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General 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 {
|
||||
_Base,
|
||||
_FN
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[_Base] = LAYOUT( /* Base */
|
||||
KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
|
||||
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_RSFT,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, MO(_FN),KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
[_FN] = LAYOUT( /* Fn */
|
||||
_______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
|
||||
_______, _______, _______, _______, _______, _______, KC_PGUP, KC_PGDN, KC_HOME, KC_END, RGB_TOG, RGB_MOD,
|
||||
_______, _______, _______, KC_CALC, _______, AG_TOGG, _______, KC_MUTE, KC_VOLD, KC_VOLU, RGB_VAI, _______,
|
||||
_______, GU_TOGG, _______, _______, _______, _______, RGB_SPI, RGB_VAD, RGB_SAI)
|
||||
};
|
37
keyboards/akko/top40/keymaps/via/keymap.c
Normal file
37
keyboards/akko/top40/keymaps/via/keymap.c
Normal file
@ -0,0 +1,37 @@
|
||||
/* Copyright (C) 2023 jonylee@hfd
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General 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 {
|
||||
_Base,
|
||||
_FN
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[_Base] = LAYOUT( /* Base */
|
||||
KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
|
||||
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_RSFT,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, MO(_FN),KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
[_FN] = LAYOUT( /* Fn */
|
||||
_______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
|
||||
_______, _______, _______, _______, _______, _______, KC_PGUP, KC_PGDN, KC_HOME, KC_END, RGB_TOG, RGB_MOD,
|
||||
_______, _______, _______, KC_CALC, _______, AG_TOGG, _______, KC_MUTE, KC_VOLD, KC_VOLU, RGB_VAI, _______,
|
||||
_______, GU_TOGG, _______, _______, _______, _______, RGB_SPI, RGB_VAD, RGB_SAI)
|
||||
};
|
1
keyboards/akko/top40/keymaps/via/rules.mk
Normal file
1
keyboards/akko/top40/keymaps/via/rules.mk
Normal file
@ -0,0 +1 @@
|
||||
VIA_ENABLE = yes
|
24
keyboards/akko/top40/mcuconf.h
Normal file
24
keyboards/akko/top40/mcuconf.h
Normal file
@ -0,0 +1,24 @@
|
||||
/* Copyright (C) 2022 jonylee@hfd
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General 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_next <mcuconf.h>
|
||||
|
||||
#undef WB32_SPI_USE_QSPI
|
||||
#define WB32_SPI_USE_QSPI TRUE
|
||||
|
||||
#undef WB32_I2C_USE_I2C1
|
||||
#define WB32_I2C_USE_I2C1 TRUE
|
19
keyboards/akko/top40/readme.md
Normal file
19
keyboards/akko/top40/readme.md
Normal file
@ -0,0 +1,19 @@
|
||||
# top40
|
||||
|
||||
A customizable 40% keyboard.
|
||||
|
||||
* Keyboard Maintainer: [jonylee@hfd](https://github.com/jonylee1986)
|
||||
* Hardware Supported: top40
|
||||
* Hardware Availability: [akko](https://www.akkogear.com/)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make akko/top40:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make akko/top40:default:flash
|
||||
|
||||
**Reset Key**: Hold down the key located at *K01*, which programmed as *Esc* while plugging in the keyboard.
|
||||
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
6
keyboards/akko/top40/rules.mk
Normal file
6
keyboards/akko/top40/rules.mk
Normal file
@ -0,0 +1,6 @@
|
||||
# Build Options
|
||||
# change yes to no to disable
|
||||
#
|
||||
EEPROM_DRIVER = wear_leveling
|
||||
WEAR_LEVELING_DRIVER = spi_flash
|
||||
|
125
keyboards/akko/top40/top40.c
Normal file
125
keyboards/akko/top40/top40.c
Normal file
@ -0,0 +1,125 @@
|
||||
/* Copyright (C) 2022 jonylee@hfd
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General 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"
|
||||
// clang-format off
|
||||
#ifdef RGB_MATRIX_ENABLE
|
||||
const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
|
||||
/* Refer to IS31 manual for these locations
|
||||
* driver
|
||||
* | R location
|
||||
* | | G location
|
||||
* | | | B location
|
||||
* | | | | */
|
||||
{0, A_1, B_1, C_1},
|
||||
{0, A_2, B_2, C_2},
|
||||
{0, A_3, B_3, C_3},
|
||||
{0, A_4, B_4, C_4},
|
||||
{0, A_5, B_5, C_5},
|
||||
{0, A_6, B_6, C_6},
|
||||
{0, A_7, B_7, C_7},
|
||||
{0, A_8, B_8, C_8},
|
||||
{0, A_9, B_9, C_9},
|
||||
{0, A_10, B_10, C_10},
|
||||
{0, A_11, B_11, C_11},
|
||||
{0, A_12, B_12, C_12},
|
||||
|
||||
{0, D_1, E_1, F_1},
|
||||
{0, D_2, E_2, F_2},
|
||||
{0, D_3, E_3, F_3},
|
||||
{0, D_4, E_4, F_4},
|
||||
{0, D_5, E_5, F_5},
|
||||
{0, D_6, E_6, F_6},
|
||||
{0, D_7, E_7, F_7},
|
||||
{0, D_8, E_8, F_8},
|
||||
{0, D_9, E_9, F_9},
|
||||
{0, D_10, E_10, F_10},
|
||||
{0, D_11, E_11, F_11},
|
||||
{0, D_12, E_12, F_12},
|
||||
|
||||
{0, G_1, H_1, I_1},
|
||||
{0, G_2, H_2, I_2},
|
||||
{0, G_3, H_3, I_3},
|
||||
{0, G_4, H_4, I_4},
|
||||
{0, G_5, H_5, I_5},
|
||||
{0, G_6, H_6, I_6},
|
||||
{0, G_7, H_7, I_7},
|
||||
{0, G_8, H_8, I_8},
|
||||
{0, G_9, H_9, I_9},
|
||||
{0, G_10, H_10, I_10},
|
||||
{0, G_11, H_11, I_11},
|
||||
{0, G_12, H_12, I_12},
|
||||
|
||||
{0, J_1, K_1, L_1},
|
||||
{0, J_2, K_2, L_2},
|
||||
{0, J_3, K_3, L_3},
|
||||
{0, J_5, K_5, L_5},
|
||||
{0, J_7, K_7, L_7},
|
||||
{0, J_9, K_9, L_9},
|
||||
{0, J_10, K_10, L_10},
|
||||
{0, J_11, K_11, L_11},
|
||||
{0, J_12, K_12, L_12},
|
||||
|
||||
{1, A_1, B_1, C_1},
|
||||
{1, A_2, B_2, C_2},
|
||||
{1, A_3, B_3, C_3},
|
||||
{1, J_7, K_7, L_7},
|
||||
{1, J_6, K_6, L_6},
|
||||
{1, J_5, K_5, L_5},
|
||||
{1, J_4, K_4, L_4},
|
||||
{1, J_3, K_3, L_3},
|
||||
{1, J_2, K_2, L_2},
|
||||
{1, J_1, K_1, L_1},
|
||||
{1, G_8, H_8, I_8},
|
||||
{1, G_7, H_7, I_7},
|
||||
{1, G_6, H_6, I_6},
|
||||
|
||||
{1, A_4, B_4, C_4},
|
||||
{1, G_5, H_5, I_5},
|
||||
|
||||
{1, A_5, B_5, C_5},
|
||||
{1, G_4, H_4, I_4},
|
||||
|
||||
{1, A_6, B_6, C_6},
|
||||
{1, G_3, H_3, I_3},
|
||||
|
||||
{1, A_7, B_7, C_7},
|
||||
{1, A_8, B_8, C_8},
|
||||
{1, D_1, E_1, F_1},
|
||||
{1, D_2, E_2, F_2},
|
||||
{1, D_3, E_3, F_3},
|
||||
{1, D_4, E_4, F_4},
|
||||
{1, D_5, E_5, F_5},
|
||||
{1, D_6, E_6, F_6},
|
||||
{1, D_7, E_7, F_7},
|
||||
{1, D_8, E_8, F_8},
|
||||
{1, G_2, H_2, I_2},
|
||||
{1, G_1, H_1, I_1},
|
||||
|
||||
};
|
||||
|
||||
// clang-format on
|
||||
bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) {
|
||||
if (!rgb_matrix_indicators_advanced_user(led_min, led_max)) {
|
||||
return false;
|
||||
}
|
||||
if (keymap_config.no_gui) {
|
||||
rgb_matrix_set_color(37, 200, 200, 200);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
#endif
|
@ -326,21 +326,21 @@
|
||||
{"matrix": [1, 10], "x": 10.5, "y": 1},
|
||||
{"matrix": [1, 11], "x": 11.5, "y": 1},
|
||||
{"matrix": [1, 12], "x": 12.5, "y": 1},
|
||||
{"matrix": [2, 0], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
|
||||
|
||||
{"matrix": [2, 1], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [2, 2], "x": 1.75, "y": 2},
|
||||
{"matrix": [2, 3], "x": 2.75, "y": 2},
|
||||
{"matrix": [2, 4], "x": 3.75, "y": 2},
|
||||
{"matrix": [2, 5], "x": 4.75, "y": 2},
|
||||
{"matrix": [2, 6], "x": 5.75, "y": 2},
|
||||
{"matrix": [2, 7], "x": 6.75, "y": 2},
|
||||
{"matrix": [2, 8], "x": 7.75, "y": 2},
|
||||
{"matrix": [2, 9], "x": 8.75, "y": 2},
|
||||
{"matrix": [2, 10], "x": 9.75, "y": 2},
|
||||
{"matrix": [2, 11], "x": 10.75, "y": 2},
|
||||
{"matrix": [1, 13], "x": 11.75, "y": 2},
|
||||
{"matrix": [2, 13], "x": 12.75, "y": 2},
|
||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [2, 1], "x": 1.75, "y": 2},
|
||||
{"matrix": [2, 2], "x": 2.75, "y": 2},
|
||||
{"matrix": [2, 3], "x": 3.75, "y": 2},
|
||||
{"matrix": [2, 4], "x": 4.75, "y": 2},
|
||||
{"matrix": [2, 5], "x": 5.75, "y": 2},
|
||||
{"matrix": [2, 6], "x": 6.75, "y": 2},
|
||||
{"matrix": [2, 7], "x": 7.75, "y": 2},
|
||||
{"matrix": [2, 8], "x": 8.75, "y": 2},
|
||||
{"matrix": [2, 9], "x": 9.75, "y": 2},
|
||||
{"matrix": [2, 10], "x": 10.75, "y": 2},
|
||||
{"matrix": [2, 11], "x": 11.75, "y": 2},
|
||||
{"matrix": [1, 13], "x": 12.75, "y": 2},
|
||||
{"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
|
||||
|
||||
{"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
|
||||
{"matrix": [3, 1], "x": 1.25, "y": 3},
|
||||
@ -397,21 +397,21 @@
|
||||
{"matrix": [1, 10], "x": 10.5, "y": 1},
|
||||
{"matrix": [1, 11], "x": 11.5, "y": 1},
|
||||
{"matrix": [1, 12], "x": 12.5, "y": 1},
|
||||
{"matrix": [2, 0], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
|
||||
|
||||
{"matrix": [2, 1], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [2, 2], "x": 1.75, "y": 2},
|
||||
{"matrix": [2, 3], "x": 2.75, "y": 2},
|
||||
{"matrix": [2, 4], "x": 3.75, "y": 2},
|
||||
{"matrix": [2, 5], "x": 4.75, "y": 2},
|
||||
{"matrix": [2, 6], "x": 5.75, "y": 2},
|
||||
{"matrix": [2, 7], "x": 6.75, "y": 2},
|
||||
{"matrix": [2, 8], "x": 7.75, "y": 2},
|
||||
{"matrix": [2, 9], "x": 8.75, "y": 2},
|
||||
{"matrix": [2, 10], "x": 9.75, "y": 2},
|
||||
{"matrix": [2, 11], "x": 10.75, "y": 2},
|
||||
{"matrix": [1, 13], "x": 11.75, "y": 2},
|
||||
{"matrix": [2, 13], "x": 12.75, "y": 2},
|
||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [2, 1], "x": 1.75, "y": 2},
|
||||
{"matrix": [2, 2], "x": 2.75, "y": 2},
|
||||
{"matrix": [2, 3], "x": 3.75, "y": 2},
|
||||
{"matrix": [2, 4], "x": 4.75, "y": 2},
|
||||
{"matrix": [2, 5], "x": 5.75, "y": 2},
|
||||
{"matrix": [2, 6], "x": 6.75, "y": 2},
|
||||
{"matrix": [2, 7], "x": 7.75, "y": 2},
|
||||
{"matrix": [2, 8], "x": 8.75, "y": 2},
|
||||
{"matrix": [2, 9], "x": 9.75, "y": 2},
|
||||
{"matrix": [2, 10], "x": 10.75, "y": 2},
|
||||
{"matrix": [2, 11], "x": 11.75, "y": 2},
|
||||
{"matrix": [1, 13], "x": 12.75, "y": 2},
|
||||
{"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
|
||||
|
||||
{"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
|
||||
{"matrix": [3, 1], "x": 1.25, "y": 3},
|
||||
@ -468,21 +468,21 @@
|
||||
{"matrix": [1, 10], "x": 10.5, "y": 1},
|
||||
{"matrix": [1, 11], "x": 11.5, "y": 1},
|
||||
{"matrix": [1, 12], "x": 12.5, "y": 1},
|
||||
{"matrix": [2, 0], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
|
||||
|
||||
{"matrix": [2, 1], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [2, 2], "x": 1.75, "y": 2},
|
||||
{"matrix": [2, 3], "x": 2.75, "y": 2},
|
||||
{"matrix": [2, 4], "x": 3.75, "y": 2},
|
||||
{"matrix": [2, 5], "x": 4.75, "y": 2},
|
||||
{"matrix": [2, 6], "x": 5.75, "y": 2},
|
||||
{"matrix": [2, 7], "x": 6.75, "y": 2},
|
||||
{"matrix": [2, 8], "x": 7.75, "y": 2},
|
||||
{"matrix": [2, 9], "x": 8.75, "y": 2},
|
||||
{"matrix": [2, 10], "x": 9.75, "y": 2},
|
||||
{"matrix": [2, 11], "x": 10.75, "y": 2},
|
||||
{"matrix": [1, 13], "x": 11.75, "y": 2},
|
||||
{"matrix": [2, 13], "x": 12.75, "y": 2},
|
||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [2, 1], "x": 1.75, "y": 2},
|
||||
{"matrix": [2, 2], "x": 2.75, "y": 2},
|
||||
{"matrix": [2, 3], "x": 3.75, "y": 2},
|
||||
{"matrix": [2, 4], "x": 4.75, "y": 2},
|
||||
{"matrix": [2, 5], "x": 5.75, "y": 2},
|
||||
{"matrix": [2, 6], "x": 6.75, "y": 2},
|
||||
{"matrix": [2, 7], "x": 7.75, "y": 2},
|
||||
{"matrix": [2, 8], "x": 8.75, "y": 2},
|
||||
{"matrix": [2, 9], "x": 9.75, "y": 2},
|
||||
{"matrix": [2, 10], "x": 10.75, "y": 2},
|
||||
{"matrix": [2, 11], "x": 11.75, "y": 2},
|
||||
{"matrix": [1, 13], "x": 12.75, "y": 2},
|
||||
{"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
|
||||
|
||||
{"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
|
||||
{"matrix": [3, 1], "x": 1.25, "y": 3},
|
||||
|
24
keyboards/alas/matrix_diagram.md
Normal file
24
keyboards/alas/matrix_diagram.md
Normal file
@ -0,0 +1,24 @@
|
||||
# Matrix Diagram for Yiancar-Designs Alas
|
||||
|
||||
```
|
||||
┌───────┐
|
||||
2u Backspace │0D │
|
||||
└───────┘
|
||||
┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
|
||||
│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │2C │
|
||||
├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ┌─────┐
|
||||
│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │ │ │
|
||||
├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ┌──┴┐2D │ ISO Enter
|
||||
│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D │ │1D │ │
|
||||
├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ └───┴────┘
|
||||
│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │
|
||||
├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤
|
||||
│40 │41 │42 │46 │4A │4B │4C │4D │
|
||||
└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
┌────────┐ ┌──────────┐
|
||||
│30 │ 2.25u LShift 2.75u RShift │3C │
|
||||
└────────┘ └──────────┘
|
||||
┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐
|
||||
│40 │41 │42 │46 │4B │4C │4D │ Tsangan/WKL/HHKB
|
||||
└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘
|
||||
```
|
89
keyboards/andean_condor/info.json
Normal file
89
keyboards/andean_condor/info.json
Normal file
@ -0,0 +1,89 @@
|
||||
{
|
||||
"manufacturer": "Guido Bartolucci",
|
||||
"keyboard_name": "andean_condor",
|
||||
"maintainer": "guidoism",
|
||||
"bootloader": "rp2040",
|
||||
"diode_direction": "COL2ROW",
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"command": false,
|
||||
"console": false,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["GP9", "GP8", "GP7", "GP5", "GP4", "GP3"],
|
||||
"rows": ["GP2", "GP6", "GP10", "GP15", "GP22", "GP21", "GP20", "GP16"]
|
||||
},
|
||||
"processor": "RP2040",
|
||||
"url": "https://github.com/guidoism/andean-condor/tree/pico-w",
|
||||
"usb": {
|
||||
"device_version": "1.0.0",
|
||||
"pid": "0x0000",
|
||||
"vid": "0xFEED"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{"matrix": [0,0], "x":0, "y":0, "label":"TAB"},
|
||||
{"matrix": [0,1], "x":1, "y":0, "label":"Q"},
|
||||
{"matrix": [0,2], "x":2, "y":0, "label":"W"},
|
||||
{"matrix": [0,3], "x":3, "y":0, "label":"E"},
|
||||
{"matrix": [0,4], "x":4, "y":0, "label":"R"},
|
||||
{"matrix": [0,5], "x":5, "y":0, "label":"T"},
|
||||
|
||||
{"matrix": [4,5], "x":10, "y":0, "label":"Y"},
|
||||
{"matrix": [4,4], "x":11, "y":0, "label":"U"},
|
||||
{"matrix": [4,3], "x":12, "y":0, "label":"I"},
|
||||
{"matrix": [4,2], "x":13, "y":0, "label":"O"},
|
||||
{"matrix": [4,1], "x":14, "y":0, "label":"P"},
|
||||
{"matrix": [4,0], "x":15, "y":0, "label":"BS"},
|
||||
|
||||
{"matrix": [1,0], "x":0, "y":1, "label":"CTRL"},
|
||||
{"matrix": [1,1], "x":1, "y":1, "label":"A"},
|
||||
{"matrix": [1,2], "x":2, "y":1, "label":"S"},
|
||||
{"matrix": [1,3], "x":3, "y":1, "label":"D"},
|
||||
{"matrix": [1,4], "x":4, "y":1, "label":"F"},
|
||||
{"matrix": [1,5], "x":5, "y":1, "label":"G"},
|
||||
|
||||
{"matrix": [5,5], "x":10, "y":1, "label":"H"},
|
||||
{"matrix": [5,4], "x":11, "y":1, "label":"J"},
|
||||
{"matrix": [5,3], "x":12, "y":1, "label":"K"},
|
||||
{"matrix": [5,2], "x":13, "y":1, "label":"L"},
|
||||
{"matrix": [5,1], "x":14, "y":1, "label":":"},
|
||||
{"matrix": [5,0], "x":15, "y":1, "label":"RET"},
|
||||
|
||||
{"matrix": [2,0], "x":0, "y":2, "label":"SHIFT"},
|
||||
{"matrix": [2,1], "x":1, "y":2, "label":"Z"},
|
||||
{"matrix": [2,2], "x":2, "y":2, "label":"X"},
|
||||
{"matrix": [2,3], "x":3, "y":2, "label":"C"},
|
||||
{"matrix": [2,4], "x":4, "y":2, "label":"V"},
|
||||
{"matrix": [2,5], "x":5, "y":2, "label":"B"},
|
||||
|
||||
{"matrix": [6,5], "x":10, "y":2, "label":"N"},
|
||||
{"matrix": [6,4], "x":11, "y":2, "label":"M"},
|
||||
{"matrix": [6,3], "x":12, "y":2, "label":","},
|
||||
{"matrix": [6,2], "x":13, "y":2, "label":"."},
|
||||
{"matrix": [6,1], "x":14, "y":2, "label":"/"},
|
||||
{"matrix": [6,0], "x":15, "y":2, "label":";"},
|
||||
|
||||
{"matrix": [3,4], "x":6.5, "y":3, "label":"lt2"},
|
||||
{"matrix": [3,5], "x":5.5, "y":3, "label":"lt1"},
|
||||
|
||||
{"matrix": [7,5], "x":9.5, "y":3, "label":"rt2"},
|
||||
{"matrix": [7,4], "x":8.5, "y":3, "label":"rt1"},
|
||||
|
||||
{"matrix": [3,0], "x":3.5, "y":4, "label":"lb1"},
|
||||
{"matrix": [3,1], "x":4.5, "y":4, "label":"lb2"},
|
||||
{"matrix": [3,2], "x":5.5, "y":4, "label":"lb3"},
|
||||
{"matrix": [3,3], "x":6.5, "y":4, "label":"lb4"},
|
||||
|
||||
{"matrix": [7,3], "x":8.5, "y":4, "label":"rb3"},
|
||||
{"matrix": [7,2], "x":9.5, "y":4, "label":"rb4"},
|
||||
{"matrix": [7,1], "x":10.5, "y":4, "label":"rb5"},
|
||||
{"matrix": [7,0], "x":11.5, "y":4, "label":"rb6"}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
14
keyboards/andean_condor/keymaps/default/keymap.c
Normal file
14
keyboards/andean_condor/keymaps/default/keymap.c
Normal file
@ -0,0 +1,14 @@
|
||||
// Copyright 2023 QMK
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT(
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BACKSPACE,
|
||||
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SEMICOLON, KC_ENTER,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH, LSFT(KC_SEMICOLON),
|
||||
KC_5, KC_6, KC_7, KC_8,
|
||||
KC_1, KC_2, KC_3, KC_4, KC_9, KC_0, KC_MINUS, KC_EQUAL
|
||||
)
|
||||
};
|
33
keyboards/andean_condor/readme.md
Normal file
33
keyboards/andean_condor/readme.md
Normal file
@ -0,0 +1,33 @@
|
||||
# Andean Condor (andean_condor)
|
||||
|
||||

|
||||
|
||||
The Andean Condor is a monoblock split keyboard in the spirit of the Kyria.
|
||||
|
||||
* Keyboard Maintainer: [Guido Bartolucci](https://github.com/guidoism)
|
||||
* Hardware Supported: Raspberry Pi Pico (only QMK), Nice!Nano (only ZMK)
|
||||
* Hardware Availability: [Pico PCB](https://github.com/guidoism/andean-condor/tree/pico-w), [Nice!Nano PCB](https://github.com/guidoism/andean-condor)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make andean_condor:default
|
||||
|
||||
or
|
||||
|
||||
qmk compile -kb andean_condor -km default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make andean_condor: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
|
||||
&g
|
||||
|
1
keyboards/andean_condor/rules.mk
Normal file
1
keyboards/andean_condor/rules.mk
Normal file
@ -0,0 +1 @@
|
||||
# This file intentionally left blank
|
6
keyboards/artemis/paragon/hotswap/info.json
Normal file
6
keyboards/artemis/paragon/hotswap/info.json
Normal file
@ -0,0 +1,6 @@
|
||||
{
|
||||
"matrix_pins": {
|
||||
"cols": ["F7", "F6", "F5", "F4", "F1", "F0", "C7", "E6", "B0", "B3", "B6", "B5", "B4", "D7", "D4", "D6"],
|
||||
"rows": ["D2", "D1", "D0", "B2", "B1", "C6"]
|
||||
}
|
||||
}
|
1
keyboards/artemis/paragon/hotswap/rules.mk
Normal file
1
keyboards/artemis/paragon/hotswap/rules.mk
Normal file
@ -0,0 +1 @@
|
||||
# This file intentionally left blank
|
122
keyboards/artemis/paragon/info.json
Normal file
122
keyboards/artemis/paragon/info.json
Normal file
@ -0,0 +1,122 @@
|
||||
{
|
||||
"manufacturer": "Artemis",
|
||||
"keyboard_name": "Paragon",
|
||||
"maintainer": "Sleepdealr",
|
||||
"bootloader": "atmel-dfu",
|
||||
"diode_direction": "COL2ROW",
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"command": false,
|
||||
"console": false,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true,
|
||||
"encoder": true
|
||||
},
|
||||
"build": {
|
||||
"lto": true
|
||||
},
|
||||
"processor": "atmega32u4",
|
||||
"url": "",
|
||||
"encoder": {
|
||||
"rotary": [
|
||||
{ "pin_a": "D3", "pin_b": "D5" }
|
||||
]
|
||||
},
|
||||
"usb": {
|
||||
"device_version": "1.0.0",
|
||||
"pid": "0x3449",
|
||||
"vid": "0x8C27"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{ "matrix": [0, 0], "x": 0, "y": 0 },
|
||||
{ "matrix": [0, 2], "x": 1.5, "y": 0 },
|
||||
{ "matrix": [0, 3], "x": 2.5, "y": 0 },
|
||||
{ "matrix": [0, 4], "x": 3.5, "y": 0 },
|
||||
{ "matrix": [0, 5], "x": 4.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": [0, 10], "x": 10.5, "y": 0 },
|
||||
{ "matrix": [0, 11], "x": 11.5, "y": 0 },
|
||||
{ "matrix": [0, 12], "x": 12.5, "y": 0 },
|
||||
{ "matrix": [0, 13], "x": 13.5, "y": 0 },
|
||||
{ "matrix": [1, 0], "x": 0, "y": 1.5 },
|
||||
{ "matrix": [1, 1], "x": 1, "y": 1.5 },
|
||||
{ "matrix": [1, 2], "x": 2, "y": 1.5 },
|
||||
{ "matrix": [1, 3], "x": 3, "y": 1.5 },
|
||||
{ "matrix": [1, 4], "x": 4, "y": 1.5 },
|
||||
{ "matrix": [1, 5], "x": 5, "y": 1.5 },
|
||||
{ "matrix": [1, 6], "x": 6, "y": 1.5 },
|
||||
{ "matrix": [1, 7], "x": 7, "y": 1.5 },
|
||||
{ "matrix": [1, 8], "x": 8, "y": 1.5 },
|
||||
{ "matrix": [1, 9], "x": 9, "y": 1.5 },
|
||||
{ "matrix": [1, 10], "x": 10, "y": 1.5 },
|
||||
{ "matrix": [1, 11], "x": 11, "y": 1.5 },
|
||||
{ "matrix": [1, 12], "x": 12, "y": 1.5 },
|
||||
{ "matrix": [1, 13], "x": 13, "y": 1.5 },
|
||||
{ "matrix": [1, 14], "x": 14, "y": 1.5 },
|
||||
{ "matrix": [1, 15], "x": 15, "y": 1.5 },
|
||||
{ "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2.5 },
|
||||
{ "matrix": [2, 1], "x": 1.5, "y": 2.5 },
|
||||
{ "matrix": [2, 2], "x": 2.5, "y": 2.5 },
|
||||
{ "matrix": [2, 3], "x": 3.5, "y": 2.5 },
|
||||
{ "matrix": [2, 4], "x": 4.5, "y": 2.5 },
|
||||
{ "matrix": [2, 5], "x": 5.5, "y": 2.5 },
|
||||
{ "matrix": [2, 6], "x": 6.5, "y": 2.5 },
|
||||
{ "matrix": [2, 7], "x": 7.5, "y": 2.5 },
|
||||
{ "matrix": [2, 8], "x": 8.5, "y": 2.5 },
|
||||
{ "matrix": [2, 9], "x": 9.5, "y": 2.5 },
|
||||
{ "matrix": [2, 10], "x": 10.5, "y": 2.5 },
|
||||
{ "matrix": [2, 11], "x": 11.5, "y": 2.5 },
|
||||
{ "matrix": [2, 12], "x": 12.5, "y": 2.5 },
|
||||
{ "matrix": [2, 13], "w": 1.5, "x": 13.5, "y": 2.5 },
|
||||
{ "matrix": [2, 15], "x": 15, "y": 2.5 },
|
||||
{ "matrix": [3, 0], "w": 1.75, "x": 0, "y": 3.5 },
|
||||
{ "matrix": [3, 1], "x": 1.75, "y": 3.5 },
|
||||
{ "matrix": [3, 2], "x": 2.75, "y": 3.5 },
|
||||
{ "matrix": [3, 3], "x": 3.75, "y": 3.5 },
|
||||
{ "matrix": [3, 4], "x": 4.75, "y": 3.5 },
|
||||
{ "matrix": [3, 5], "x": 5.75, "y": 3.5 },
|
||||
{ "matrix": [3, 6], "x": 6.75, "y": 3.5 },
|
||||
{ "matrix": [3, 7], "x": 7.75, "y": 3.5 },
|
||||
{ "matrix": [3, 8], "x": 8.75, "y": 3.5 },
|
||||
{ "matrix": [3, 9], "x": 9.75, "y": 3.5 },
|
||||
{ "matrix": [3, 10], "x": 10.75, "y": 3.5 },
|
||||
{ "matrix": [3, 11], "x": 11.75, "y": 3.5 },
|
||||
{ "matrix": [3, 12], "x": 12.75, "y": 3.5 },
|
||||
{ "matrix": [3, 13], "w": 1.25, "x": 13.75, "y": 3.5 },
|
||||
{ "matrix": [3, 15], "x": 15, "y": 3.5 },
|
||||
{ "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4.5 },
|
||||
{ "matrix": [4, 1], "x": 1.25, "y": 4.5 },
|
||||
{ "matrix": [4, 2], "x": 2.25, "y": 4.5 },
|
||||
{ "matrix": [4, 3], "x": 3.25, "y": 4.5 },
|
||||
{ "matrix": [4, 4], "x": 4.25, "y": 4.5 },
|
||||
{ "matrix": [4, 5], "x": 5.25, "y": 4.5 },
|
||||
{ "matrix": [4, 6], "x": 6.25, "y": 4.5 },
|
||||
{ "matrix": [4, 7], "x": 7.25, "y": 4.5 },
|
||||
{ "matrix": [4, 8], "x": 8.25, "y": 4.5 },
|
||||
{ "matrix": [4, 9], "x": 9.25, "y": 4.5 },
|
||||
{ "matrix": [4, 10], "x": 10.25, "y": 4.5 },
|
||||
{ "matrix": [4, 11], "x": 11.25, "y": 4.5 },
|
||||
{ "matrix": [4, 12], "w": 1.75, "x": 12.25, "y": 4.5 },
|
||||
{ "matrix": [4, 13], "x": 14, "y": 4.5 },
|
||||
{ "matrix": [4, 15], "x": 15, "y": 4.5 },
|
||||
{ "matrix": [5, 0], "w": 1.25, "x": 0, "y": 5.5 },
|
||||
{ "matrix": [5, 2], "w": 1.25, "x": 1.25, "y": 5.5 },
|
||||
{ "matrix": [5, 3], "w": 1.25, "x": 2.5, "y": 5.5 },
|
||||
{ "matrix": [5, 4], "w": 2.25, "x": 3.75, "y": 5.5 },
|
||||
{ "matrix": [5, 6], "w": 1.25, "x": 6, "y": 5.5 },
|
||||
{ "matrix": [5, 8], "w": 2.75, "x": 7.25, "y": 5.5 },
|
||||
{ "matrix": [5, 10], "w": 1.5, "x": 10, "y": 5.5 },
|
||||
{ "matrix": [5, 11], "w": 1.5, "x": 11.5, "y": 5.5 },
|
||||
{ "matrix": [5, 12], "x": 13, "y": 5.5 },
|
||||
{ "matrix": [5, 13], "x": 14, "y": 5.5 },
|
||||
{ "matrix": [5, 15], "x": 15, "y": 5.5 }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
33
keyboards/artemis/paragon/keymaps/default/keymap.c
Normal file
33
keyboards/artemis/paragon/keymaps/default/keymap.c
Normal file
@ -0,0 +1,33 @@
|
||||
/*
|
||||
Copyright 2023 Sleepdealer
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General 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] = {
|
||||
|
||||
[0] = LAYOUT(
|
||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
|
||||
KC_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_HOME,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUBS, KC_ENT, KC_PGDN,
|
||||
KC_LSFT, KC_NUHS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
)
|
||||
};
|
||||
|
||||
#if defined(ENCODER_MAP_ENABLE)
|
||||
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
|
||||
[0] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }
|
||||
};
|
||||
#endif
|
1
keyboards/artemis/paragon/keymaps/default/rules.mk
Normal file
1
keyboards/artemis/paragon/keymaps/default/rules.mk
Normal file
@ -0,0 +1 @@
|
||||
ENCODER_MAP_ENABLE = yes
|
33
keyboards/artemis/paragon/keymaps/via/keymap.c
Normal file
33
keyboards/artemis/paragon/keymaps/via/keymap.c
Normal file
@ -0,0 +1,33 @@
|
||||
/*
|
||||
Copyright 2023 Sleepdealer
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General 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] = {
|
||||
|
||||
[0] = LAYOUT(
|
||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
|
||||
KC_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_HOME,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUBS, KC_ENT, KC_PGDN,
|
||||
KC_LSFT, KC_NUHS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
)
|
||||
};
|
||||
|
||||
#if defined(ENCODER_MAP_ENABLE)
|
||||
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
|
||||
[0] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }
|
||||
};
|
||||
#endif
|
2
keyboards/artemis/paragon/keymaps/via/rules.mk
Normal file
2
keyboards/artemis/paragon/keymaps/via/rules.mk
Normal file
@ -0,0 +1,2 @@
|
||||
VIA_ENABLE = yes
|
||||
ENCODER_MAP_ENABLE = yes
|
23
keyboards/artemis/paragon/readme.md
Normal file
23
keyboards/artemis/paragon/readme.md
Normal file
@ -0,0 +1,23 @@
|
||||
# Artemis/Paragon
|
||||
|
||||
* Keyboard Maintainer: [Sleepdealer](https://github.com/Sleepdealr)
|
||||
* Hardware Supported: Paragon PCB
|
||||
* Hardware Availability: GB
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make artemis/paragon/hotswap:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make artemis/paragon/hotswap:default:flash
|
||||
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||
|
||||
## 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
|
6
keyboards/artemis/paragon/soldered/info.json
Normal file
6
keyboards/artemis/paragon/soldered/info.json
Normal file
@ -0,0 +1,6 @@
|
||||
{
|
||||
"matrix_pins": {
|
||||
"cols": ["E6", "F0", "F1", "F4", "F5", "F6", "F7", "B0", "B1", "B3", "D0", "D1", "D2", "D3", "D7", "D5"],
|
||||
"rows": ["B2", "C7", "C6", "B6", "B5", "B4"]
|
||||
}
|
||||
}
|
1
keyboards/artemis/paragon/soldered/rules.mk
Normal file
1
keyboards/artemis/paragon/soldered/rules.mk
Normal file
@ -0,0 +1 @@
|
||||
# This file intentionally left blank
|
@ -81,21 +81,21 @@
|
||||
{"matrix": [3, 4], "x": 4, "y": 3.125},
|
||||
{"matrix": [3, 5], "x": 5, "y": 3.25},
|
||||
|
||||
{"matrix": [7, 5], "x": 6, "y": 2.75},
|
||||
{"matrix": [7, 4], "x": 9.5, "y": 2.75},
|
||||
{"matrix": [7, 3], "x": 10.5, "y": 3.25},
|
||||
{"matrix": [7, 2], "x": 11.5, "y": 3.125},
|
||||
{"matrix": [7, 1], "x": 12.5, "y": 3},
|
||||
{"matrix": [7, 0], "x": 13.5, "y": 3.125},
|
||||
{"matrix": [7, 5], "x": 10.5, "y": 3.25},
|
||||
{"matrix": [7, 4], "x": 11.5, "y": 3.125},
|
||||
{"matrix": [7, 3], "x": 12.5, "y": 3},
|
||||
{"matrix": [7, 2], "x": 13.5, "y": 3.125},
|
||||
{"matrix": [7, 1], "x": 14.5, "y": 3.375},
|
||||
{"matrix": [7, 0], "x": 15.5, "y": 3.5},
|
||||
|
||||
{"matrix": [8, 0], "x": 14.5, "y": 3.375},
|
||||
{"matrix": [8, 1], "x": 15.5, "y": 3.5},
|
||||
{"matrix": [8, 2], "x": 0, "y": 4.5},
|
||||
{"matrix": [8, 3], "x": 2.5, "y": 4.125},
|
||||
{"matrix": [8, 4], "x": 3.5, "y": 4.15},
|
||||
{"matrix": [8, 5], "x": 4.5, "y": 4.25},
|
||||
{"matrix": [8, 0], "x": 0, "y": 4.5},
|
||||
{"matrix": [8, 1], "x": 2.5, "y": 4.125},
|
||||
{"matrix": [8, 2], "x": 3.5, "y": 4.15},
|
||||
{"matrix": [8, 3], "x": 4.5, "y": 4.25},
|
||||
{"matrix": [8, 4], "x": 6, "y": 4.25, "h": 1.25},
|
||||
{"matrix": [8, 5], "x": 6, "y": 2.75},
|
||||
|
||||
{"matrix": [9, 5], "x": 6, "y": 4.25, "h": 1.25},
|
||||
{"matrix": [9, 5], "x": 9.5, "y": 2.75},
|
||||
{"matrix": [9, 4], "x": 9.5, "y": 4.25, "h": 1.25},
|
||||
{"matrix": [9, 3], "x": 11, "y": 4.25},
|
||||
{"matrix": [9, 2], "x": 12, "y": 4.15},
|
||||
|
@ -73,26 +73,26 @@
|
||||
{"matrix": [3, 4], "x": 4, "y": 3.125},
|
||||
{"matrix": [3, 5], "x": 5, "y": 3.25},
|
||||
|
||||
{"matrix": [7, 5], "x": 6, "y": 2.75},
|
||||
{"matrix": [7, 4], "x": 9.5, "y": 2.75},
|
||||
{"matrix": [7, 3], "x": 10.5, "y": 3.25},
|
||||
{"matrix": [7, 2], "x": 11.5, "y": 3.125},
|
||||
{"matrix": [7, 1], "x": 12.5, "y": 3},
|
||||
{"matrix": [7, 0], "x": 13.5, "y": 3.125},
|
||||
{"matrix": [7, 5], "x": 10.5, "y": 3.25},
|
||||
{"matrix": [7, 4], "x": 11.5, "y": 3.125},
|
||||
{"matrix": [7, 3], "x": 12.5, "y": 3},
|
||||
{"matrix": [7, 2], "x": 13.5, "y": 3.125},
|
||||
{"matrix": [7, 1], "x": 14.5, "y": 3.375},
|
||||
{"matrix": [7, 0], "x": 15.5, "y": 3.5},
|
||||
|
||||
{"matrix": [8, 0], "x": 14.5, "y": 3.375},
|
||||
{"matrix": [8, 1], "x": 15.5, "y": 3.5},
|
||||
{"matrix": [8, 2], "x": 0, "y": 4.5},
|
||||
{"matrix": [8, 3], "x": 2.5, "y": 4.125},
|
||||
{"matrix": [8, 4], "x": 3.5, "y": 4.15},
|
||||
{"matrix": [8, 5], "x": 4.5, "y": 4.25},
|
||||
{"matrix": [8, 0], "x": 0, "y": 4.5},
|
||||
{"matrix": [8, 1], "x": 2.5, "y": 4.125},
|
||||
{"matrix": [8, 2], "x": 3.5, "y": 4.15},
|
||||
{"matrix": [8, 3], "x": 4.5, "y": 4.25},
|
||||
{"matrix": [8, 4], "x": 6, "y": 4.25, "h": 1.25},
|
||||
{"matrix": [8, 5], "x": 6, "y": 2.75},
|
||||
|
||||
{"matrix": [9, 5], "x": 6, "y": 4.25, "h": 1.25},
|
||||
{"matrix": [9, 5], "x": 9.5, "y": 2.75},
|
||||
{"matrix": [9, 4], "x": 9.5, "y": 4.25, "h": 1.25},
|
||||
{"matrix": [9, 3], "x": 11, "y": 4.25},
|
||||
{"matrix": [9, 2], "x": 12, "y": 4.15},
|
||||
{"matrix": [9, 1], "x": 13, "y": 4.125},
|
||||
{"matrix": [9, 0], "x": 14.5, "y": 4.5}
|
||||
{"matrix": [9, 0], "x": 15.5, "y": 4.5}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
92
keyboards/automata02/alisaie/info.json
Normal file
92
keyboards/automata02/alisaie/info.json
Normal file
@ -0,0 +1,92 @@
|
||||
{
|
||||
"manufacturer": "Automata02",
|
||||
"keyboard_name": "Alisaie",
|
||||
"maintainer": "qmk",
|
||||
"bootloader": "atmel-dfu",
|
||||
"diode_direction": "COL2ROW",
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"extrakey": true,
|
||||
"nkro": true
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["B6", "F0", "F1", "F4", "F5", "B5", "B7", "D3", "D2", "D1", "D0", "B3", "B2", "B0"],
|
||||
"rows": ["E6", "F6", "D5", "D4", "B1"]
|
||||
},
|
||||
"processor": "atmega32u4",
|
||||
"usb": {
|
||||
"device_version": "0.0.1",
|
||||
"pid": "0x2012",
|
||||
"vid": "0xBABE"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{"label": "~", "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": 8.5, "y": 0},
|
||||
{"label": "*", "matrix": [0, 8], "x": 9.5, "y": 0},
|
||||
{"label": "(", "matrix": [0, 9], "x": 10.5, "y": 0},
|
||||
{"label": ")", "matrix": [0, 10], "x": 11.5, "y": 0},
|
||||
{"label": "_", "matrix": [0, 11], "x": 12.5, "y": 0},
|
||||
{"label": "+", "matrix": [0, 12], "x": 13.5, "y": 0},
|
||||
{"label": "Del", "matrix": [0, 13], "x": 14.5, "y": 0},
|
||||
{"label": "Backspace", "matrix": [1, 0], "x": 15.5, "y": 0},
|
||||
{"label": "Tab", "matrix": [1, 1], "x": 0, "y": 1, "w": 1.5},
|
||||
{"label": "Q", "matrix": [1, 2], "x": 1.5, "y": 1},
|
||||
{"label": "W", "matrix": [1, 3], "x": 2.5, "y": 1},
|
||||
{"label": "E", "matrix": [1, 4], "x": 3.5, "y": 1},
|
||||
{"label": "R", "matrix": [1, 5], "x": 4.5, "y": 1},
|
||||
{"label": "T", "matrix": [1, 6], "x": 5.5, "y": 1},
|
||||
{"label": "Y", "matrix": [1, 7], "x": 8, "y": 1},
|
||||
{"label": "U", "matrix": [1, 8], "x": 9, "y": 1},
|
||||
{"label": "I", "matrix": [1, 9], "x": 10, "y": 1},
|
||||
{"label": "O", "matrix": [1, 10], "x": 11, "y": 1},
|
||||
{"label": "P", "matrix": [1, 11], "x": 12, "y": 1},
|
||||
{"label": "{", "matrix": [1, 12], "x": 13, "y": 1},
|
||||
{"label": "}", "matrix": [1, 13], "x": 14, "y": 1},
|
||||
{"label": "|", "matrix": [2, 0], "x": 15, "y": 1, "w": 1.5},
|
||||
{"label": "Caps Lock", "matrix": [2, 1], "x": 0, "y": 2, "w": 1.75},
|
||||
{"label": "A", "matrix": [2, 2], "x": 1.75, "y": 2},
|
||||
{"label": "S", "matrix": [2, 3], "x": 2.75, "y": 2},
|
||||
{"label": "D", "matrix": [2, 4], "x": 3.75, "y": 2},
|
||||
{"label": "F", "matrix": [2, 5], "x": 4.75, "y": 2},
|
||||
{"label": "G", "matrix": [2, 6], "x": 5.75, "y": 2},
|
||||
{"label": "H", "matrix": [2, 7], "x": 8.25, "y": 2},
|
||||
{"label": "J", "matrix": [2, 8], "x": 9.25, "y": 2},
|
||||
{"label": "K", "matrix": [2, 9], "x": 10.25, "y": 2},
|
||||
{"label": "L", "matrix": [2, 10], "x": 11.25, "y": 2},
|
||||
{"label": ":", "matrix": [2, 11], "x": 12.25, "y": 2},
|
||||
{"label": "\"", "matrix": [2, 12], "x": 13.25, "y": 2},
|
||||
{"label": "Enter", "matrix": [3, 0], "x": 14.25, "y": 2, "w": 2.25},
|
||||
{"label": "Shift", "matrix": [3, 1], "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": "B", "matrix": [3, 7], "x": 7.75, "y": 3},
|
||||
{"label": "N", "matrix": [3, 8], "x": 8.75, "y": 3},
|
||||
{"label": "M", "matrix": [3, 9], "x": 9.75, "y": 3},
|
||||
{"label": "<", "matrix": [3, 10], "x": 10.75, "y": 3},
|
||||
{"label": ">", "matrix": [3, 11], "x": 11.75, "y": 3},
|
||||
{"label": "?", "matrix": [3, 12], "x": 12.75, "y": 3},
|
||||
{"label": "Shift", "matrix": [3, 13], "x": 13.75, "y": 3, "w": 1.75},
|
||||
{"label": "Fn", "matrix": [4, 0], "x": 15.5, "y": 3},
|
||||
{"label": "Ctrl", "matrix": [4, 1], "x": 0, "y": 4, "w": 1.25},
|
||||
{"label": "Win", "matrix": [4, 2], "x": 1.25, "y": 4, "w": 1.25},
|
||||
{"label": "Alt", "matrix": [4, 3], "x": 3.75, "y": 4, "w": 1.25},
|
||||
{"label": "K408", "matrix": [4, 8], "x": 5, "y": 4, "w": 2.25},
|
||||
{"label": "K409", "matrix": [4, 9], "x": 7.75, "y": 4, "w": 2.75},
|
||||
{"label": "Alt", "matrix": [4, 11], "x": 10.5, "y": 4, "w": 1.25},
|
||||
{"label": "Win", "matrix": [4, 12], "x": 12.75, "y": 4, "w": 1.25},
|
||||
{"label": "Ctrl", "matrix": [4, 13], "x": 15.25, "y": 4, "w": 1.25}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
35
keyboards/automata02/alisaie/keymaps/default/keymap.c
Normal file
35
keyboards/automata02/alisaie/keymaps/default/keymap.c
Normal file
@ -0,0 +1,35 @@
|
||||
/*
|
||||
Copyright 2022 Automata
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General 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] = {
|
||||
[0] = LAYOUT(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
|
||||
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_RGUI, KC_GRV, KC_RALT, KC_RCTL
|
||||
),
|
||||
[1] = 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_DEL,
|
||||
_______, _______, KC_PGUP, _______, _______, _______, _______, _______, KC_UP, _______, KC_MPRV, KC_UP, KC_MNXT, _______,
|
||||
_______, KC_HOME, KC_PGDN, KC_END, _______, KC_VOLD, KC_VOLU, KC_LEFT, KC_DOWN, KC_RGHT, KC_LEFT, KC_RGHT, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DOWN, KC_PSCR, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
)
|
||||
};
|
35
keyboards/automata02/alisaie/keymaps/via/keymap.c
Normal file
35
keyboards/automata02/alisaie/keymaps/via/keymap.c
Normal file
@ -0,0 +1,35 @@
|
||||
/*
|
||||
Copyright 2022 Automata
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General 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] = {
|
||||
[0] = LAYOUT(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
|
||||
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_RGUI, KC_GRV, KC_RALT, KC_RCTL
|
||||
),
|
||||
[1] = LAYOUT(
|
||||
QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
|
||||
_______, _______, KC_PGUP, _______, _______, _______, _______, _______, KC_UP, _______, KC_MPRV, KC_UP, KC_MNXT, _______,
|
||||
_______, KC_HOME, KC_PGDN, KC_END, _______, KC_VOLD, KC_VOLU, KC_LEFT, KC_DOWN, KC_RGHT, KC_LEFT, KC_RGHT, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DOWN, KC_PSCR, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
)
|
||||
};
|
1
keyboards/automata02/alisaie/keymaps/via/rules.mk
Normal file
1
keyboards/automata02/alisaie/keymaps/via/rules.mk
Normal file
@ -0,0 +1 @@
|
||||
VIA_ENABLE = yes
|
24
keyboards/automata02/alisaie/readme.md
Normal file
24
keyboards/automata02/alisaie/readme.md
Normal file
@ -0,0 +1,24 @@
|
||||
# Alisaie
|
||||
|
||||

|
||||
|
||||
A 60% alice like keyboard sharing the same footprint and 8 degree alpha rotation as Meridian but with a tsangan bottom row.
|
||||
|
||||
* Keyboard Maintainer: [Automata02](https://github.com/Automata02/)
|
||||
* Hardware Supported: Alisaie PCB version 0.0.4b
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make automata02/alisaie:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make automata02/alisaie: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:
|
||||
|
||||
* **Physical reset button**: Briefly press the button on the backside of the PCB located bellow the Y keyswitch.
|
1
keyboards/automata02/alisaie/rules.mk
Normal file
1
keyboards/automata02/alisaie/rules.mk
Normal file
@ -0,0 +1 @@
|
||||
# This file intentionally left blank
|
@ -82,29 +82,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
EE_CLR, KC_NUKE, _______, _______, QK_BOOT
|
||||
),
|
||||
};
|
||||
|
||||
#if defined(KEYBOARD_bastardkb_charybdis_3x5_blackpill)
|
||||
void keyboard_pre_init_keymap(void) {
|
||||
setPinInputHigh(A0);
|
||||
}
|
||||
|
||||
void housekeeping_task_keymap(void) {
|
||||
if (!readPin(A0)) {
|
||||
reset_keyboard();
|
||||
}
|
||||
}
|
||||
|
||||
# ifdef USB_VBUS_PIN
|
||||
bool usb_vbus_state(void) {
|
||||
setPinInputLow(USB_VBUS_PIN);
|
||||
wait_us(5);
|
||||
return readPin(USB_VBUS_PIN);
|
||||
}
|
||||
# endif
|
||||
|
||||
void matrix_output_unselect_delay(uint8_t line, bool key_pressed) {
|
||||
for (int32_t i = 0; i < 40; i++) {
|
||||
__asm__ volatile("nop" ::: "memory");
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
@ -40,6 +40,4 @@ ifeq ($(strip $(OVERLOAD_FEATURES)), yes)
|
||||
CUSTOM_UNICODE_ENABLE = yes
|
||||
CUSTOM_POINTING_DEVICE = yes
|
||||
CUSTOM_SPLIT_TRANSPORT_SYNC = yes
|
||||
|
||||
DEBOUNCE_TYPE = asym_eager_defer_pk
|
||||
endif
|
||||
|
@ -65,3 +65,5 @@
|
||||
#define BOOTMAGIC_LITE_EEPROM_COLUMN 0
|
||||
#define BOOTMAGIC_LITE_EEPROM_ROW_RIGHT 1
|
||||
#define BOOTMAGIC_LITE_EEPROM_COLUMN_RIGHT 0
|
||||
|
||||
#define DEBOUNCE 15
|
||||
|
@ -83,7 +83,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
SFT_T(KC_SPACE), ALT_T(KC_Q), _______
|
||||
),
|
||||
[_MOUSE] = LAYOUT_charybdis_4x6(
|
||||
_______, _______, _______, _______, _______, _______, _______, DPI_RMOD,DPI_MOD, S_D_RMOD,S_D_MOD, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, DPI_RMOD,DPI_MOD, S_D_RMOD,S_D_MOD, PD_JIGGLER,
|
||||
_______, _______, _______, _______, _______, _______, KC_WH_U, _______, _______, _______, _______, DRGSCRL,
|
||||
_______, _______, _______, _______, _______, _______, KC_WH_D, KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN6, SNIPING,
|
||||
_______, _______, _______, _______, _______, _______, KC_BTN7, KC_BTN4, KC_BTN5, KC_BTN8, _______, _______,
|
||||
@ -130,28 +130,6 @@ void keyboard_post_init_keymap(void) {
|
||||
void keyboard_pre_init_keymap(void) {
|
||||
setPinInputHigh(A0);
|
||||
}
|
||||
|
||||
void housekeeping_task_keymap(void) {
|
||||
if (!readPin(A0)) {
|
||||
reset_keyboard();
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef USB_VBUS_PIN
|
||||
bool usb_vbus_state(void) {
|
||||
setPinInputLow(USB_VBUS_PIN);
|
||||
wait_us(5);
|
||||
return readPin(USB_VBUS_PIN);
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(KEYBOARD_bastardkb_charybdis_4x6_blackpill)
|
||||
void matrix_output_unselect_delay(uint8_t line, bool key_pressed) {
|
||||
for (int32_t i = 0; i < 40; i++) {
|
||||
__asm__ volatile("nop" ::: "memory");
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef SWAP_HANDS_ENABLE
|
||||
|
@ -1,6 +1,7 @@
|
||||
CUSTOM_UNICODE_ENABLE = no
|
||||
CUSTOM_POINTING_DEVICE = no
|
||||
CUSTOM_SPLIT_TRANSPORT_SYNC = no
|
||||
PER_KEY_TAPPING = yes
|
||||
|
||||
ifeq ($(strip $(KEYBOARD)), bastardkb/charybdis/4x6/blackpill)
|
||||
# MCU name
|
||||
@ -16,16 +17,13 @@ ifeq ($(strip $(KEYBOARD)), bastardkb/charybdis/4x6/blackpill)
|
||||
OVERLOAD_FEATURES = yes
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(KEYBOARD)), bastardkb/charybdis/4x6/v2/stemcell)
|
||||
OVERLOAD_FEATURES = yes
|
||||
endif
|
||||
ifeq ($(strip $(KEYBOARD)), bastardkb/charybdis/4x6/v2/splinky)
|
||||
OVERLOAD_FEATURES = yes
|
||||
endif
|
||||
ifeq ($(strip $(MCU)), atmega32u4)
|
||||
LTO_ENABLE = yes
|
||||
BOOTLOADER = qmk-hid
|
||||
BOOTLOADER_SIZE = 512
|
||||
EXTRAKEY_ENABLE = no
|
||||
else
|
||||
OVERLOAD_FEATURES = yes
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(OVERLOAD_FEATURES)), yes)
|
||||
@ -43,7 +41,6 @@ ifeq ($(strip $(OVERLOAD_FEATURES)), yes)
|
||||
CAPS_WORD_ENABLE = yes
|
||||
SWAP_HANDS_ENABLE = yes
|
||||
TAP_DANCE_ENABLE = yes
|
||||
DEBOUNCE_TYPE = asym_eager_defer_pk
|
||||
WPM_ENABLE = yes
|
||||
LTO_ENABLE = no
|
||||
# OPT = 3
|
||||
|
@ -6,3 +6,5 @@
|
||||
#define CIRQUE_PINNACLE_TAP_ENABLE
|
||||
#define POINTING_DEVICE_GESTURES_CURSOR_GLIDE_ENABLE
|
||||
#define POINTING_DEVICE_GESTURES_SCROLL_ENABLE
|
||||
|
||||
#define OLED_DISPLAY_128X128
|
||||
|
@ -84,14 +84,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
),
|
||||
};
|
||||
|
||||
|
||||
void matrix_output_unselect_delay(uint8_t line, bool key_pressed) {
|
||||
for (int32_t i = 0; i < 40; i++) {
|
||||
__asm__ volatile("nop" ::: "memory");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#if defined(OLED_ENABLE) && defined(OLED_DISPLAY_128X128)
|
||||
# ifdef UNICODE_COMMON_ENABLE
|
||||
# include "process_unicode_common.h"
|
||||
@ -100,8 +92,6 @@ void matrix_output_unselect_delay(uint8_t line, bool key_pressed) {
|
||||
|
||||
extern const char PROGMEM display_border[3];
|
||||
|
||||
|
||||
extern uint32_t oled_timer;
|
||||
extern bool is_oled_enabled;
|
||||
|
||||
|
||||
|
@ -5,4 +5,3 @@ CONSOLE_ENABLE = yes
|
||||
KEYLOGGER_ENABLE = no
|
||||
WPM_ENABLE = yes
|
||||
OLED_ENABLE = yes
|
||||
OLED_DRIVER = custom
|
||||
|
@ -12,9 +12,9 @@
|
||||
├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┤ └──────┴───┴───┘
|
||||
│40 │41 │42 │45 │4A │4B │48 │4C │4D │
|
||||
└────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘
|
||||
┌────────┐
|
||||
│30 │ 2.25u LShift
|
||||
└────────┘
|
||||
┌────────┐ ┌─────────────┐
|
||||
│30 │ 2.25u LShift │3D │ 2.75u RShift
|
||||
└────────┘ └─────────────┘
|
||||
┌────┬────┬────┬────────────────────────┬────┬────┬────┬────┐
|
||||
│40 │41 │42 │45 │4A │4B │4C │4D │ Standard
|
||||
└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
|
@ -1,11 +1,6 @@
|
||||
#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
|
||||
|
||||
/* RGB Underglow */
|
||||
#define RGBLIGHT_EFFECT_BREATHING
|
||||
#define RGBLIGHT_EFFECT_RAINBOW_MOOD
|
||||
#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
|
||||
@ -21,5 +16,11 @@
|
||||
#define RGBLIGHT_SAT_STEP 8
|
||||
#define RGBLIGHT_VAL_STEP 8
|
||||
|
||||
/* 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
|
||||
|
||||
/* key combination for magic key command */
|
||||
#define KEYBOARD_LOCK_ENABLE
|
||||
#define MAGIC_KEY_LOCK L
|
||||
|
206
keyboards/bioi/g60ble/keymaps/chemicalwill/keymap.c
Normal file
206
keyboards/bioi/g60ble/keymaps/chemicalwill/keymap.c
Normal file
@ -0,0 +1,206 @@
|
||||
/* Copyright 2023 Will Hedges (@will-hedges)
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General 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 layers {
|
||||
_WORK,
|
||||
_QWER,
|
||||
_FN1
|
||||
};
|
||||
|
||||
enum custom_keycodes {
|
||||
BASE_QWER = SAFE_RANGE,
|
||||
BASE_WORK
|
||||
};
|
||||
|
||||
// Tap Dance enum
|
||||
enum {
|
||||
N8_F8,
|
||||
N9_F9,
|
||||
N0_F10,
|
||||
MINS_F11,
|
||||
EQL_F12,
|
||||
DEL_BSLS,
|
||||
G_END,
|
||||
H_HOME,
|
||||
LALT_PGUP,
|
||||
RALT_PGDN
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[_WORK] = LAYOUT_60_ansi(
|
||||
QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, TD(N8_F8), TD(N9_F9), TD(N0_F10), TD(MINS_F11), TD(EQL_F12), 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, TD(DEL_BSLS),
|
||||
LT(_FN1, KC_CAPS), KC_A, KC_S, KC_D, KC_F, TD(G_END), TD(H_HOME), KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
|
||||
KC_LCTL, KC_LGUI, LALT_T(KC_PGUP), KC_SPC, RALT_T(KC_PGDN), KC_APP, MO(_FN1), KC_RCTL
|
||||
),
|
||||
|
||||
[_QWER] = LAYOUT_60_ansi(
|
||||
QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, TD(DEL_BSLS),
|
||||
LT(_FN1, KC_CAPS), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_APP, MO(_FN1), KC_RCTL
|
||||
),
|
||||
|
||||
[_FN1] = LAYOUT_60_ansi(
|
||||
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
|
||||
_______, _______, KC_PGUP, _______, QK_RBT, _______, _______, _______, KC_UP, _______, _______, _______, _______, _______,
|
||||
_______, KC_HOME, KC_PGDN, KC_END, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______,
|
||||
_______, C(A(KC_DEL)), _______, _______, _______, BASE_WORK, _______, BASE_QWER
|
||||
)
|
||||
|
||||
};
|
||||
|
||||
|
||||
// Tap Dance tap vs. hold docs @ https://docs.qmk.fm/#/feature_tap_dance?id=example-3
|
||||
// Macros are also used with process_record_user @ https://docs.qmk.fm/#/feature_macros?id=using-macros-in-c-keymaps
|
||||
typedef struct {
|
||||
uint16_t tap;
|
||||
uint16_t hold;
|
||||
uint16_t held;
|
||||
} tap_dance_tap_hold_t;
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
tap_dance_action_t *action;
|
||||
|
||||
switch (keycode) {
|
||||
// MACROS
|
||||
case BASE_QWER:
|
||||
if (record->event.pressed) {
|
||||
set_single_persistent_default_layer(_QWER);
|
||||
}
|
||||
break;
|
||||
|
||||
case BASE_WORK:
|
||||
if (record->event.pressed) {
|
||||
set_single_persistent_default_layer(_WORK);
|
||||
}
|
||||
break;
|
||||
|
||||
// TAP DANCES
|
||||
case TD(N8_F8):
|
||||
action = &tap_dance_actions[TD_INDEX(keycode)];
|
||||
if (!record->event.pressed && action->state.count && !action->state.finished) {
|
||||
tap_dance_tap_hold_t *tap_hold = (tap_dance_tap_hold_t *)action->user_data;
|
||||
tap_code16(tap_hold->tap);
|
||||
}
|
||||
break;
|
||||
|
||||
case TD(N9_F9):
|
||||
action = &tap_dance_actions[TD_INDEX(keycode)];
|
||||
if (!record->event.pressed && action->state.count && !action->state.finished) {
|
||||
tap_dance_tap_hold_t *tap_hold = (tap_dance_tap_hold_t *)action->user_data;
|
||||
tap_code16(tap_hold->tap);
|
||||
}
|
||||
break;
|
||||
|
||||
case TD(N0_F10):
|
||||
action = &tap_dance_actions[TD_INDEX(keycode)];
|
||||
if (!record->event.pressed && action->state.count && !action->state.finished) {
|
||||
tap_dance_tap_hold_t *tap_hold = (tap_dance_tap_hold_t *)action->user_data;
|
||||
tap_code16(tap_hold->tap);
|
||||
}
|
||||
break;
|
||||
|
||||
case TD(MINS_F11):
|
||||
action = &tap_dance_actions[TD_INDEX(keycode)];
|
||||
if (!record->event.pressed && action->state.count && !action->state.finished) {
|
||||
tap_dance_tap_hold_t *tap_hold = (tap_dance_tap_hold_t *)action->user_data;
|
||||
tap_code16(tap_hold->tap);
|
||||
}
|
||||
break;
|
||||
|
||||
case TD(EQL_F12):
|
||||
action = &tap_dance_actions[TD_INDEX(keycode)];
|
||||
if (!record->event.pressed && action->state.count && !action->state.finished) {
|
||||
tap_dance_tap_hold_t *tap_hold = (tap_dance_tap_hold_t *)action->user_data;
|
||||
tap_code16(tap_hold->tap);
|
||||
}
|
||||
break;
|
||||
|
||||
case TD(DEL_BSLS):
|
||||
action = &tap_dance_actions[TD_INDEX(keycode)];
|
||||
if (!record->event.pressed && action->state.count && !action->state.finished) {
|
||||
tap_dance_tap_hold_t *tap_hold = (tap_dance_tap_hold_t *)action->user_data;
|
||||
tap_code16(tap_hold->tap);
|
||||
}
|
||||
break;
|
||||
|
||||
case TD(G_END):
|
||||
action = &tap_dance_actions[TD_INDEX(keycode)];
|
||||
if (!record->event.pressed && action->state.count && !action->state.finished) {
|
||||
tap_dance_tap_hold_t *tap_hold = (tap_dance_tap_hold_t *)action->user_data;
|
||||
tap_code16(tap_hold->tap);
|
||||
}
|
||||
break;
|
||||
|
||||
case TD(H_HOME):
|
||||
action = &tap_dance_actions[TD_INDEX(keycode)];
|
||||
if (!record->event.pressed && action->state.count && !action->state.finished) {
|
||||
tap_dance_tap_hold_t *tap_hold = (tap_dance_tap_hold_t *)action->user_data;
|
||||
tap_code16(tap_hold->tap);
|
||||
}
|
||||
break;
|
||||
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void tap_dance_tap_hold_finished(tap_dance_state_t *state, void *user_data) {
|
||||
tap_dance_tap_hold_t *tap_hold = (tap_dance_tap_hold_t *)user_data;
|
||||
|
||||
if (state->pressed) {
|
||||
if (state->count == 1
|
||||
#ifndef PERMISSIVE_HOLD
|
||||
&& !state->interrupted
|
||||
#endif
|
||||
) {
|
||||
register_code16(tap_hold->hold);
|
||||
tap_hold->held = tap_hold->hold;
|
||||
} else {
|
||||
register_code16(tap_hold->tap);
|
||||
tap_hold->held = tap_hold->tap;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void tap_dance_tap_hold_reset(tap_dance_state_t *state, void *user_data) {
|
||||
tap_dance_tap_hold_t *tap_hold = (tap_dance_tap_hold_t *)user_data;
|
||||
|
||||
if (tap_hold->held) {
|
||||
unregister_code16(tap_hold->held);
|
||||
tap_hold->held = 0;
|
||||
}
|
||||
}
|
||||
|
||||
#define ACTION_TAP_DANCE_TAP_HOLD(tap, hold) \
|
||||
{ .fn = {NULL, tap_dance_tap_hold_finished, tap_dance_tap_hold_reset}, .user_data = (void *)&((tap_dance_tap_hold_t){tap, hold, 0}), }
|
||||
|
||||
tap_dance_action_t tap_dance_actions[] = {
|
||||
[N8_F8] = ACTION_TAP_DANCE_TAP_HOLD(KC_8, KC_F8),
|
||||
[N9_F9] = ACTION_TAP_DANCE_TAP_HOLD(KC_9, KC_F9),
|
||||
[N0_F10] = ACTION_TAP_DANCE_TAP_HOLD(KC_0, KC_F10),
|
||||
[MINS_F11] = ACTION_TAP_DANCE_TAP_HOLD(KC_MINS, KC_F11),
|
||||
[EQL_F12] = ACTION_TAP_DANCE_TAP_HOLD(KC_EQL, KC_F12),
|
||||
[DEL_BSLS] = ACTION_TAP_DANCE_TAP_HOLD(KC_DEL, KC_BSLS),
|
||||
[G_END] = ACTION_TAP_DANCE_TAP_HOLD(KC_G, KC_END),
|
||||
[H_HOME] = ACTION_TAP_DANCE_TAP_HOLD(KC_H, KC_HOME)
|
||||
};
|
7
keyboards/bioi/g60ble/keymaps/chemicalwill/rules.mk
Normal file
7
keyboards/bioi/g60ble/keymaps/chemicalwill/rules.mk
Normal file
@ -0,0 +1,7 @@
|
||||
# features enabled by default that I want to turn off
|
||||
BACKLIGHT_ENABLE = no
|
||||
MOUSEKEY_ENABLE = no
|
||||
RGBLIGHT_ENABLE = no
|
||||
|
||||
# features I want to add
|
||||
TAP_DANCE_ENABLE = yes
|
24
keyboards/bioi/g60ble/matrix_diagram.md
Normal file
24
keyboards/bioi/g60ble/matrix_diagram.md
Normal file
@ -0,0 +1,24 @@
|
||||
# Matrix Diagram for Basic IO Instruments G60BLE
|
||||
|
||||
```
|
||||
┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───────┐
|
||||
│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │49 │ │0D │ 2u Backspace
|
||||
├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ └─┬─────┤
|
||||
│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │ │ │
|
||||
├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ┌──┴┐2D │ ISO Enter
|
||||
│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D │ │2C │ │
|
||||
├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌─────┴┬──┴┬───┤
|
||||
│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3D │3C │ │3D │47 │3C │ 1.75u/1u/1u RShift
|
||||
├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┤ └──────┴───┴───┘
|
||||
│40 │41 │42 │45 │4A │4B │48 │4C │4D │
|
||||
└────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘
|
||||
┌────────┐ ┌─────────────┐
|
||||
│30 │ 2.25u LShift │3D │ 2.75u RShift
|
||||
└────────┘ └─────────────┘
|
||||
┌────┬────┬────┬────────────────────────┬────┬────┬────┬────┐
|
||||
│40 │41 │42 │45 │4A │4B │4C │4D │ Standard
|
||||
└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐
|
||||
│40 │41 │42 │45 │4B │4C │4D │ Tsangan/WKL/HHKB
|
||||
└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘
|
||||
```
|
@ -4,12 +4,18 @@ F_CPU = 8000000
|
||||
# Build Options
|
||||
# change yes to no to disable
|
||||
#
|
||||
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
|
||||
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||
CONSOLE_ENABLE = no # Console for debug
|
||||
COMMAND_ENABLE = yes # Commands for debug and configuration
|
||||
NKRO_ENABLE = yes # Enable N-Key Rollover
|
||||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
||||
RGBLIGHT_ENABLE = yes
|
||||
LTO_ENABLE = yes
|
||||
|
||||
# these lines are all for bluetooth
|
||||
BLUETOOTH_ENABLE = yes
|
||||
BLUETOOTH_DRIVER = custom
|
||||
SRC += usart.c ble.c
|
||||
OPT_DEFS += -DUART_RX1_BUFFER_SIZE=16 -DUART_TX1_BUFFER_SIZE=16
|
||||
OPT_DEFS += -DUSART1_ENABLED
|
||||
|
@ -25,28 +25,28 @@
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{"x": 0, "y": 0, "matrix": [0, 0]},
|
||||
{"x": 1, "y": 0, "matrix": [0, 1]},
|
||||
{"x": 2, "y": 0, "matrix": [0, 2]},
|
||||
{"x": 3, "y": 0, "matrix": [0, 3]},
|
||||
{"x": 1, "y": 0, "matrix": [0, 0]},
|
||||
{"x": 2, "y": 0, "matrix": [0, 1]},
|
||||
{"x": 3, "y": 0, "matrix": [0, 2]},
|
||||
{"x": 4, "y": 0, "matrix": [0, 3]},
|
||||
|
||||
{"x": 0, "y": 1, "matrix": [1, 0]},
|
||||
{"x": 1, "y": 1, "matrix": [1, 1]},
|
||||
{"x": 2, "y": 1, "matrix": [1, 2]},
|
||||
{"x": 3, "y": 1, "matrix": [1, 3]},
|
||||
{"x": 1, "y": 1, "matrix": [1, 0]},
|
||||
{"x": 2, "y": 1, "matrix": [1, 1]},
|
||||
{"x": 3, "y": 1, "matrix": [1, 2]},
|
||||
{"x": 4, "y": 1.5, "matrix": [1, 3]},
|
||||
|
||||
{"x": 0, "y": 2, "matrix": [2, 0]},
|
||||
{"x": 1, "y": 2, "matrix": [2, 1]},
|
||||
{"x": 2, "y": 2, "matrix": [2, 2]},
|
||||
{"x": 3, "y": 2, "matrix": [2, 3]},
|
||||
{"x": 1, "y": 2, "matrix": [2, 0]},
|
||||
{"x": 2, "y": 2, "matrix": [2, 1]},
|
||||
{"x": 3, "y": 2, "matrix": [2, 2]},
|
||||
{"x": 4, "y": 3.5, "matrix": [2, 3]},
|
||||
|
||||
{"x": 0, "y": 3, "matrix": [3, 0]},
|
||||
{"x": 1, "y": 3, "matrix": [3, 1]},
|
||||
{"x": 2, "y": 3, "matrix": [3, 2]},
|
||||
{"x": 3, "y": 3, "matrix": [3, 3]},
|
||||
{"x": 1, "y": 3, "matrix": [3, 0]},
|
||||
{"x": 2, "y": 3, "matrix": [3, 1]},
|
||||
{"x": 3, "y": 3, "matrix": [3, 2]},
|
||||
{"x": 3, "y": 4, "matrix": [3, 3]},
|
||||
|
||||
{"x": 0, "y": 4, "matrix": [4, 0]},
|
||||
{"x": 1, "y": 4, "matrix": [4, 1]}
|
||||
{"x": 1.5, "y": 4, "matrix": [4, 1]}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
497
keyboards/cablecardesigns/phoenix/info.json
Executable file
497
keyboards/cablecardesigns/phoenix/info.json
Executable file
@ -0,0 +1,497 @@
|
||||
{
|
||||
"keyboard_name": "Phoenix",
|
||||
"manufacturer": "Yiancar-Designs",
|
||||
"maintainer": "Yiancar-Designs",
|
||||
"url": "https://yiancar-designs.com",
|
||||
"processor": "STM32F072",
|
||||
"bootloader": "stm32-dfu",
|
||||
"diode_direction": "COL2ROW",
|
||||
"matrix_pins": {
|
||||
"cols": ["A1", "B9", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "B2", "B10", "B11", "B12", "B13", "B14", "B15", "A8"],
|
||||
"rows": ["A2", "A14", "A15", "B3", "B4", "B5"]
|
||||
},
|
||||
"usb": {
|
||||
"vid": "0x8968",
|
||||
"pid": "0x5048",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"command": false,
|
||||
"console": false,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true
|
||||
},
|
||||
"indicators": {
|
||||
"caps_lock": "B6",
|
||||
"on_state": 0
|
||||
},
|
||||
"community_layouts": ["tkl_f13_ansi_tsangan", "tkl_f13_ansi_tsangan_split_bs_rshift", "tkl_f13_iso_tsangan", "tkl_f13_iso_tsangan_split_bs_rshift"],
|
||||
"layouts": {
|
||||
"LAYOUT_all": {
|
||||
"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, 13], "x": 14, "y": 0 },
|
||||
{ "matrix": [0, 14], "x": 15.25, "y": 0 },
|
||||
{ "matrix": [0, 15], "x": 16.25, "y": 0 },
|
||||
{ "matrix": [0, 16], "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": [2, 13], "x": 14, "y": 1.25 },
|
||||
{ "matrix": [1, 14], "x": 15.25, "y": 1.25 },
|
||||
{ "matrix": [1, 15], "x": 16.25, "y": 1.25 },
|
||||
{ "matrix": [1, 16], "x": 17.25, "y": 1.25 },
|
||||
{ "matrix": [2, 0], "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": [3, 12], "x": 13.5, "y": 2.25 },
|
||||
{ "matrix": [2, 14], "x": 15.25, "y": 2.25 },
|
||||
{ "matrix": [2, 15], "x": 16.25, "y": 2.25 },
|
||||
{ "matrix": [2, 16], "x": 17.25, "y": 2.25 },
|
||||
{ "matrix": [3, 0], "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, 13], "x": 12.75, "y": 3.25 },
|
||||
{ "matrix": [4, 0], "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], "x": 12.25, "y": 4.25 },
|
||||
{ "matrix": [4, 13], "x": 14, "y": 4.25 },
|
||||
{ "matrix": [4, 15], "x": 16.25, "y": 4.25 },
|
||||
{ "matrix": [5, 0], "x": 0, "y": 5.25 },
|
||||
{ "matrix": [5, 1], "x": 1.5, "y": 5.25 },
|
||||
{ "matrix": [5, 2], "x": 2.5, "y": 5.25 },
|
||||
{ "matrix": [5, 6], "x": 4, "y": 5.25 },
|
||||
{ "matrix": [5, 11], "x": 11, "y": 5.25 },
|
||||
{ "matrix": [5, 12], "x": 12.5, "y": 5.25 },
|
||||
{ "matrix": [5, 13], "x": 13.5, "y": 5.25 },
|
||||
{ "matrix": [5, 14], "x": 15.25, "y": 5.25 },
|
||||
{ "matrix": [5, 15], "x": 16.25, "y": 5.25 },
|
||||
{ "matrix": [5, 16], "x": 17.25, "y": 5.25 }
|
||||
]
|
||||
},
|
||||
"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, 13], "x": 14, "y": 0 },
|
||||
{ "matrix": [0, 14], "x": 15.25, "y": 0 },
|
||||
{ "matrix": [0, 15], "x": 16.25, "y": 0 },
|
||||
{ "matrix": [0, 16], "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": 15.25, "y": 1.25 },
|
||||
{ "matrix": [1, 15], "x": 16.25, "y": 1.25 },
|
||||
{ "matrix": [1, 16], "x": 17.25, "y": 1.25 },
|
||||
{ "matrix": [2, 0], "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": [3, 12], "x": 13.5, "y": 2.25 },
|
||||
{ "matrix": [2, 14], "x": 15.25, "y": 2.25 },
|
||||
{ "matrix": [2, 15], "x": 16.25, "y": 2.25 },
|
||||
{ "matrix": [2, 16], "x": 17.25, "y": 2.25 },
|
||||
{ "matrix": [3, 0], "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, 13], "x": 12.75, "y": 3.25 },
|
||||
{ "matrix": [4, 0], "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], "x": 12.25, "y": 4.25 },
|
||||
{ "matrix": [4, 15], "x": 16.25, "y": 4.25 },
|
||||
{ "matrix": [5, 0], "x": 0, "y": 5.25 },
|
||||
{ "matrix": [5, 1], "x": 1.5, "y": 5.25 },
|
||||
{ "matrix": [5, 2], "x": 2.5, "y": 5.25 },
|
||||
{ "matrix": [5, 6], "x": 4, "y": 5.25 },
|
||||
{ "matrix": [5, 11], "x": 11, "y": 5.25 },
|
||||
{ "matrix": [5, 12], "x": 12.5, "y": 5.25 },
|
||||
{ "matrix": [5, 13], "x": 13.5, "y": 5.25 },
|
||||
{ "matrix": [5, 14], "x": 15.25, "y": 5.25 },
|
||||
{ "matrix": [5, 15], "x": 16.25, "y": 5.25 },
|
||||
{ "matrix": [5, 16], "x": 17.25, "y": 5.25 }
|
||||
]
|
||||
},
|
||||
"LAYOUT_tkl_f13_ansi_tsangan_split_bs_rshift": {
|
||||
"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, 13], "x": 14, "y": 0 },
|
||||
{ "matrix": [0, 14], "x": 15.25, "y": 0 },
|
||||
{ "matrix": [0, 15], "x": 16.25, "y": 0 },
|
||||
{ "matrix": [0, 16], "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": [2, 13], "x": 14, "y": 1.25 },
|
||||
{ "matrix": [1, 14], "x": 15.25, "y": 1.25 },
|
||||
{ "matrix": [1, 15], "x": 16.25, "y": 1.25 },
|
||||
{ "matrix": [1, 16], "x": 17.25, "y": 1.25 },
|
||||
{ "matrix": [2, 0], "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": [3, 12], "x": 13.5, "y": 2.25 },
|
||||
{ "matrix": [2, 14], "x": 15.25, "y": 2.25 },
|
||||
{ "matrix": [2, 15], "x": 16.25, "y": 2.25 },
|
||||
{ "matrix": [2, 16], "x": 17.25, "y": 2.25 },
|
||||
{ "matrix": [3, 0], "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, 13], "x": 12.75, "y": 3.25 },
|
||||
{ "matrix": [4, 0], "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], "x": 12.25, "y": 4.25 },
|
||||
{ "matrix": [4, 13], "x": 14, "y": 4.25 },
|
||||
{ "matrix": [4, 15], "x": 16.25, "y": 4.25 },
|
||||
{ "matrix": [5, 0], "x": 0, "y": 5.25 },
|
||||
{ "matrix": [5, 1], "x": 1.5, "y": 5.25 },
|
||||
{ "matrix": [5, 2], "x": 2.5, "y": 5.25 },
|
||||
{ "matrix": [5, 6], "x": 4, "y": 5.25 },
|
||||
{ "matrix": [5, 11], "x": 11, "y": 5.25 },
|
||||
{ "matrix": [5, 12], "x": 12.5, "y": 5.25 },
|
||||
{ "matrix": [5, 13], "x": 13.5, "y": 5.25 },
|
||||
{ "matrix": [5, 14], "x": 15.25, "y": 5.25 },
|
||||
{ "matrix": [5, 15], "x": 16.25, "y": 5.25 },
|
||||
{ "matrix": [5, 16], "x": 17.25, "y": 5.25 }
|
||||
]
|
||||
},
|
||||
"LAYOUT_tkl_f13_iso_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, 13], "x": 14, "y": 0 },
|
||||
{ "matrix": [0, 14], "x": 15.25, "y": 0 },
|
||||
{ "matrix": [0, 15], "x": 16.25, "y": 0 },
|
||||
{ "matrix": [0, 16], "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": 15.25, "y": 1.25 },
|
||||
{ "matrix": [1, 15], "x": 16.25, "y": 1.25 },
|
||||
{ "matrix": [1, 16], "x": 17.25, "y": 1.25 },
|
||||
{ "matrix": [2, 0], "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], "x": 13.75, "y": 2.25 },
|
||||
{ "matrix": [2, 15], "x": 15.25, "y": 2.25 },
|
||||
{ "matrix": [2, 16], "x": 16.25, "y": 2.25 },
|
||||
{ "matrix": [3, 0], "x": 17.25, "y": 2.25 },
|
||||
{ "matrix": [3, 1], "x": 0, "y": 3.25 },
|
||||
{ "matrix": [3, 2], "x": 1.75, "y": 3.25 },
|
||||
{ "matrix": [3, 3], "x": 2.75, "y": 3.25 },
|
||||
{ "matrix": [3, 4], "x": 3.75, "y": 3.25 },
|
||||
{ "matrix": [3, 5], "x": 4.75, "y": 3.25 },
|
||||
{ "matrix": [3, 6], "x": 5.75, "y": 3.25 },
|
||||
{ "matrix": [3, 7], "x": 6.75, "y": 3.25 },
|
||||
{ "matrix": [3, 8], "x": 7.75, "y": 3.25 },
|
||||
{ "matrix": [3, 9], "x": 8.75, "y": 3.25 },
|
||||
{ "matrix": [3, 10], "x": 9.75, "y": 3.25 },
|
||||
{ "matrix": [3, 11], "x": 10.75, "y": 3.25 },
|
||||
{ "matrix": [3, 12], "x": 11.75, "y": 3.25 },
|
||||
{ "matrix": [3, 13], "x": 12.75, "y": 3.25 },
|
||||
{ "matrix": [4, 0], "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], "x": 12.25, "y": 4.25 },
|
||||
{ "matrix": [4, 15], "x": 16.25, "y": 4.25 },
|
||||
{ "matrix": [5, 0], "x": 0, "y": 5.25 },
|
||||
{ "matrix": [5, 1], "x": 1.5, "y": 5.25 },
|
||||
{ "matrix": [5, 2], "x": 2.5, "y": 5.25 },
|
||||
{ "matrix": [5, 6], "x": 4, "y": 5.25 },
|
||||
{ "matrix": [5, 11], "x": 11, "y": 5.25 },
|
||||
{ "matrix": [5, 12], "x": 12.5, "y": 5.25 },
|
||||
{ "matrix": [5, 13], "x": 13.5, "y": 5.25 },
|
||||
{ "matrix": [5, 14], "x": 15.25, "y": 5.25 },
|
||||
{ "matrix": [5, 15], "x": 16.25, "y": 5.25 },
|
||||
{ "matrix": [5, 16], "x": 17.25, "y": 5.25 }
|
||||
]
|
||||
},
|
||||
"LAYOUT_tkl_f13_iso_tsangan_split_bs_rshift": {
|
||||
"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, 13], "x": 14, "y": 0 },
|
||||
{ "matrix": [0, 14], "x": 15.25, "y": 0 },
|
||||
{ "matrix": [0, 15], "x": 16.25, "y": 0 },
|
||||
{ "matrix": [0, 16], "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": [2, 13], "x": 14, "y": 1.25 },
|
||||
{ "matrix": [1, 14], "x": 15.25, "y": 1.25 },
|
||||
{ "matrix": [1, 15], "x": 16.25, "y": 1.25 },
|
||||
{ "matrix": [1, 16], "x": 17.25, "y": 1.25 },
|
||||
{ "matrix": [2, 0], "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], "x": 13.75, "y": 2.25 },
|
||||
{ "matrix": [2, 15], "x": 15.25, "y": 2.25 },
|
||||
{ "matrix": [2, 16], "x": 16.25, "y": 2.25 },
|
||||
{ "matrix": [3, 0], "x": 17.25, "y": 2.25 },
|
||||
{ "matrix": [3, 1], "x": 0, "y": 3.25 },
|
||||
{ "matrix": [3, 2], "x": 1.75, "y": 3.25 },
|
||||
{ "matrix": [3, 3], "x": 2.75, "y": 3.25 },
|
||||
{ "matrix": [3, 4], "x": 3.75, "y": 3.25 },
|
||||
{ "matrix": [3, 5], "x": 4.75, "y": 3.25 },
|
||||
{ "matrix": [3, 6], "x": 5.75, "y": 3.25 },
|
||||
{ "matrix": [3, 7], "x": 6.75, "y": 3.25 },
|
||||
{ "matrix": [3, 8], "x": 7.75, "y": 3.25 },
|
||||
{ "matrix": [3, 9], "x": 8.75, "y": 3.25 },
|
||||
{ "matrix": [3, 10], "x": 9.75, "y": 3.25 },
|
||||
{ "matrix": [3, 11], "x": 10.75, "y": 3.25 },
|
||||
{ "matrix": [3, 12], "x": 11.75, "y": 3.25 },
|
||||
{ "matrix": [3, 13], "x": 12.75, "y": 3.25 },
|
||||
{ "matrix": [4, 0], "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], "x": 12.25, "y": 4.25 },
|
||||
{ "matrix": [4, 13], "x": 14, "y": 4.25 },
|
||||
{ "matrix": [4, 15], "x": 16.25, "y": 4.25 },
|
||||
{ "matrix": [5, 0], "x": 0, "y": 5.25 },
|
||||
{ "matrix": [5, 1], "x": 1.5, "y": 5.25 },
|
||||
{ "matrix": [5, 2], "x": 2.5, "y": 5.25 },
|
||||
{ "matrix": [5, 6], "x": 4, "y": 5.25 },
|
||||
{ "matrix": [5, 11], "x": 11, "y": 5.25 },
|
||||
{ "matrix": [5, 12], "x": 12.5, "y": 5.25 },
|
||||
{ "matrix": [5, 13], "x": 13.5, "y": 5.25 },
|
||||
{ "matrix": [5, 14], "x": 15.25, "y": 5.25 },
|
||||
{ "matrix": [5, 15], "x": 16.25, "y": 5.25 },
|
||||
{ "matrix": [5, 16], "x": 17.25, "y": 5.25 }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
27
keyboards/cablecardesigns/phoenix/keymaps/default/keymap.c
Normal file
27
keyboards/cablecardesigns/phoenix/keymaps/default/keymap.c
Normal file
@ -0,0 +1,27 @@
|
||||
/* Copyright 2023 Yiancar-Designs
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General 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] = {
|
||||
[0] = LAYOUT_all( /* Base */
|
||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, 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_DEL, 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_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT)
|
||||
};
|
27
keyboards/cablecardesigns/phoenix/keymaps/via/keymap.c
Normal file
27
keyboards/cablecardesigns/phoenix/keymaps/via/keymap.c
Normal file
@ -0,0 +1,27 @@
|
||||
/* Copyright 2023 Yiancar-Designs
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General 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] = {
|
||||
[0] = LAYOUT_all( /* Base */
|
||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, 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_DEL, 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_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT)
|
||||
};
|
1
keyboards/cablecardesigns/phoenix/keymaps/via/rules.mk
Executable file
1
keyboards/cablecardesigns/phoenix/keymaps/via/rules.mk
Executable file
@ -0,0 +1 @@
|
||||
VIA_ENABLE = yes
|
22
keyboards/cablecardesigns/phoenix/phoenix.c
Executable file
22
keyboards/cablecardesigns/phoenix/phoenix.c
Executable file
@ -0,0 +1,22 @@
|
||||
/* Copyright 2023 Yiancar-Designs
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General 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"
|
||||
|
||||
void led_init_ports(void) {
|
||||
// Set our LED pins as open drain outputs
|
||||
palSetLineMode(LED_CAPS_LOCK_PIN, PAL_MODE_OUTPUT_OPENDRAIN);
|
||||
}
|
32
keyboards/cablecardesigns/phoenix/readme.md
Executable file
32
keyboards/cablecardesigns/phoenix/readme.md
Executable file
@ -0,0 +1,32 @@
|
||||
# Phoenix
|
||||
|
||||
This is a standard TKL F13 layout PCB. It supports VIA.
|
||||
|
||||
* Keyboard Maintainer: [Yiancar](http://yiancar-designs.com/) and on [GitHub](https://github.com/yiancar)
|
||||
* Hardware Supported: A TKL keyboard with STM32F072CB
|
||||
* Hardware Availability: https://cablecardesigns.co
|
||||
|
||||
## Instructions
|
||||
|
||||
### Build
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make cablecardesigns/phoenix:default
|
||||
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||
|
||||
### Reset
|
||||
|
||||
- Unplug
|
||||
- Hold Escape
|
||||
- Plug In
|
||||
- Unplug
|
||||
- Release Escape
|
||||
|
||||
### Flash
|
||||
|
||||
- Unplug
|
||||
- Hold Escape
|
||||
- Plug In
|
||||
- Flash using QMK Toolbox or CLI (`make cablecardesigns/phoenix:<keymap>:flash`)
|
7
keyboards/cablecardesigns/phoenix/rules.mk
Executable file
7
keyboards/cablecardesigns/phoenix/rules.mk
Executable file
@ -0,0 +1,7 @@
|
||||
# Wildcard to allow APM32 MCU
|
||||
DFU_SUFFIX_ARGS = -v FFFF -p FFFF
|
||||
|
||||
# Do not put the microcontroller into power saving mode
|
||||
# when we get USB suspend event. We want it to keep updating
|
||||
# backlight effects.
|
||||
OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
|
311
keyboards/cannonkeys/leviatan/info.json
Normal file
311
keyboards/cannonkeys/leviatan/info.json
Normal file
@ -0,0 +1,311 @@
|
||||
{
|
||||
"manufacturer": "CannonKeys",
|
||||
"url": "https://cannonkeys.com",
|
||||
"maintainer": "awkannan",
|
||||
"keyboard_name": "Leviatan",
|
||||
"usb": {
|
||||
"vid": "0xCA04",
|
||||
"pid": "0x0024",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"command": false,
|
||||
"console": false,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["B11", "B10", "B2", "A9", "A15", "B3", "B4", "B5", "B6", "B7", "B8", "B9", "C13", "C14", "C15"],
|
||||
"rows": ["B1", "B0", "A7", "A5", "A4"]
|
||||
},
|
||||
"diode_direction": "COL2ROW",
|
||||
"processor": "STM32F072",
|
||||
"bootloader": "stm32-dfu",
|
||||
"community_layouts": ["60_ansi", "60_tsangan_hhkb", "60_iso"],
|
||||
"layouts": {
|
||||
"LAYOUT_60_ansi": {
|
||||
"layout": [
|
||||
{"x": 0, "y": 0, "matrix": [0, 0]},
|
||||
{"x": 1, "y": 0, "matrix": [0, 1]},
|
||||
{"x": 2, "y": 0, "matrix": [0, 2]},
|
||||
{"x": 3, "y": 0, "matrix": [0, 3]},
|
||||
{"x": 4, "y": 0, "matrix": [0, 4]},
|
||||
{"x": 5, "y": 0, "matrix": [0, 5]},
|
||||
{"x": 6, "y": 0, "matrix": [0, 6]},
|
||||
{"x": 7, "y": 0, "matrix": [0, 7]},
|
||||
{"x": 8, "y": 0, "matrix": [0, 8]},
|
||||
{"x": 9, "y": 0, "matrix": [0, 9]},
|
||||
{"x": 10, "y": 0, "matrix": [0, 10]},
|
||||
{"x": 11, "y": 0, "matrix": [0, 11]},
|
||||
{"x": 12, "y": 0, "matrix": [0, 12]},
|
||||
{"x": 13, "y": 0, "w": 2, "matrix": [0, 13]},
|
||||
|
||||
{"x": 0, "y": 1, "w": 1.5, "matrix": [1, 0]},
|
||||
{"x": 1.5, "y": 1, "matrix": [1, 1]},
|
||||
{"x": 2.5, "y": 1, "matrix": [1, 2]},
|
||||
{"x": 3.5, "y": 1, "matrix": [1, 3]},
|
||||
{"x": 4.5, "y": 1, "matrix": [1, 4]},
|
||||
{"x": 5.5, "y": 1, "matrix": [1, 5]},
|
||||
{"x": 6.5, "y": 1, "matrix": [1, 6]},
|
||||
{"x": 7.5, "y": 1, "matrix": [1, 7]},
|
||||
{"x": 8.5, "y": 1, "matrix": [1, 8]},
|
||||
{"x": 9.5, "y": 1, "matrix": [1, 9]},
|
||||
{"x": 10.5, "y": 1, "matrix": [1, 10]},
|
||||
{"x": 11.5, "y": 1, "matrix": [1, 11]},
|
||||
{"x": 12.5, "y": 1, "matrix": [1, 12]},
|
||||
{"x": 13.5, "y": 1, "w": 1.5, "matrix": [1, 14]},
|
||||
|
||||
{"x": 0, "y": 2, "w": 1.75, "matrix": [2, 0]},
|
||||
{"x": 1.75, "y": 2, "matrix": [2, 1]},
|
||||
{"x": 2.75, "y": 2, "matrix": [2, 2]},
|
||||
{"x": 3.75, "y": 2, "matrix": [2, 3]},
|
||||
{"x": 4.75, "y": 2, "matrix": [2, 4]},
|
||||
{"x": 5.75, "y": 2, "matrix": [2, 5]},
|
||||
{"x": 6.75, "y": 2, "matrix": [2, 6]},
|
||||
{"x": 7.75, "y": 2, "matrix": [2, 7]},
|
||||
{"x": 8.75, "y": 2, "matrix": [2, 8]},
|
||||
{"x": 9.75, "y": 2, "matrix": [2, 9]},
|
||||
{"x": 10.75, "y": 2, "matrix": [2, 10]},
|
||||
{"x": 11.75, "y": 2, "matrix": [2, 11]},
|
||||
{"x": 12.75, "y": 2, "w": 2.25, "matrix": [2, 14]},
|
||||
|
||||
{"x": 0, "y": 3, "w": 2.25, "matrix": [3, 0]},
|
||||
{"x": 2.25, "y": 3, "matrix": [3, 2]},
|
||||
{"x": 3.25, "y": 3, "matrix": [3, 3]},
|
||||
{"x": 4.25, "y": 3, "matrix": [3, 4]},
|
||||
{"x": 5.25, "y": 3, "matrix": [3, 5]},
|
||||
{"x": 6.25, "y": 3, "matrix": [3, 6]},
|
||||
{"x": 7.25, "y": 3, "matrix": [3, 7]},
|
||||
{"x": 8.25, "y": 3, "matrix": [3, 8]},
|
||||
{"x": 9.25, "y": 3, "matrix": [3, 9]},
|
||||
{"x": 10.25, "y": 3, "matrix": [3, 10]},
|
||||
{"x": 11.25, "y": 3, "matrix": [3, 11]},
|
||||
{"x": 12.25, "y": 3, "w": 2.75, "matrix": [3, 12]},
|
||||
|
||||
{"x": 0, "y": 4, "w": 1.25, "matrix": [4, 0]},
|
||||
{"x": 1.25, "y": 4, "w": 1.25, "matrix": [4, 1]},
|
||||
{"x": 2.5, "y": 4, "w": 1.25, "matrix": [4, 2]},
|
||||
{"x": 3.75, "y": 4, "w": 6.25, "matrix": [4, 6]},
|
||||
{"x": 10, "y": 4, "w": 1.25, "matrix": [4, 10]},
|
||||
{"x": 11.25, "y": 4, "w": 1.25, "matrix": [4, 11]},
|
||||
{"x": 12.5, "y": 4, "w": 1.25, "matrix": [4, 12]},
|
||||
{"x": 13.75, "y": 4, "w": 1.25, "matrix": [4, 14]}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_tsangan_hhkb": {
|
||||
"layout": [
|
||||
{"x": 0, "y": 0, "matrix": [0, 0]},
|
||||
{"x": 1, "y": 0, "matrix": [0, 1]},
|
||||
{"x": 2, "y": 0, "matrix": [0, 2]},
|
||||
{"x": 3, "y": 0, "matrix": [0, 3]},
|
||||
{"x": 4, "y": 0, "matrix": [0, 4]},
|
||||
{"x": 5, "y": 0, "matrix": [0, 5]},
|
||||
{"x": 6, "y": 0, "matrix": [0, 6]},
|
||||
{"x": 7, "y": 0, "matrix": [0, 7]},
|
||||
{"x": 8, "y": 0, "matrix": [0, 8]},
|
||||
{"x": 9, "y": 0, "matrix": [0, 9]},
|
||||
{"x": 10, "y": 0, "matrix": [0, 10]},
|
||||
{"x": 11, "y": 0, "matrix": [0, 11]},
|
||||
{"x": 12, "y": 0, "matrix": [0, 12]},
|
||||
{"x": 13, "y": 0, "matrix": [0, 13]},
|
||||
{"x": 14, "y": 0, "matrix": [0, 14]},
|
||||
|
||||
{"x": 0, "y": 1, "w": 1.5, "matrix": [1, 0]},
|
||||
{"x": 1.5, "y": 1, "matrix": [1, 1]},
|
||||
{"x": 2.5, "y": 1, "matrix": [1, 2]},
|
||||
{"x": 3.5, "y": 1, "matrix": [1, 3]},
|
||||
{"x": 4.5, "y": 1, "matrix": [1, 4]},
|
||||
{"x": 5.5, "y": 1, "matrix": [1, 5]},
|
||||
{"x": 6.5, "y": 1, "matrix": [1, 6]},
|
||||
{"x": 7.5, "y": 1, "matrix": [1, 7]},
|
||||
{"x": 8.5, "y": 1, "matrix": [1, 8]},
|
||||
{"x": 9.5, "y": 1, "matrix": [1, 9]},
|
||||
{"x": 10.5, "y": 1, "matrix": [1, 10]},
|
||||
{"x": 11.5, "y": 1, "matrix": [1, 11]},
|
||||
{"x": 12.5, "y": 1, "matrix": [1, 12]},
|
||||
{"x": 13.5, "y": 1, "w": 1.5, "matrix": [1, 14]},
|
||||
|
||||
{"x": 0, "y": 2, "w": 1.75, "matrix": [2, 0]},
|
||||
{"x": 1.75, "y": 2, "matrix": [2, 1]},
|
||||
{"x": 2.75, "y": 2, "matrix": [2, 2]},
|
||||
{"x": 3.75, "y": 2, "matrix": [2, 3]},
|
||||
{"x": 4.75, "y": 2, "matrix": [2, 4]},
|
||||
{"x": 5.75, "y": 2, "matrix": [2, 5]},
|
||||
{"x": 6.75, "y": 2, "matrix": [2, 6]},
|
||||
{"x": 7.75, "y": 2, "matrix": [2, 7]},
|
||||
{"x": 8.75, "y": 2, "matrix": [2, 8]},
|
||||
{"x": 9.75, "y": 2, "matrix": [2, 9]},
|
||||
{"x": 10.75, "y": 2, "matrix": [2, 10]},
|
||||
{"x": 11.75, "y": 2, "matrix": [2, 11]},
|
||||
{"x": 12.75, "y": 2, "w": 2.25, "matrix": [2, 14]},
|
||||
|
||||
{"x": 0, "y": 3, "w": 2.25, "matrix": [3, 0]},
|
||||
{"x": 2.25, "y": 3, "matrix": [3, 2]},
|
||||
{"x": 3.25, "y": 3, "matrix": [3, 3]},
|
||||
{"x": 4.25, "y": 3, "matrix": [3, 4]},
|
||||
{"x": 5.25, "y": 3, "matrix": [3, 5]},
|
||||
{"x": 6.25, "y": 3, "matrix": [3, 6]},
|
||||
{"x": 7.25, "y": 3, "matrix": [3, 7]},
|
||||
{"x": 8.25, "y": 3, "matrix": [3, 8]},
|
||||
{"x": 9.25, "y": 3, "matrix": [3, 9]},
|
||||
{"x": 10.25, "y": 3, "matrix": [3, 10]},
|
||||
{"x": 11.25, "y": 3, "matrix": [3, 11]},
|
||||
{"x": 12.25, "y": 3, "w": 1.75, "matrix": [3, 12]},
|
||||
{"x": 14, "y": 3, "matrix": [3, 14]},
|
||||
|
||||
{"x": 0, "y": 4, "w": 1.5, "matrix": [4, 0]},
|
||||
{"x": 1.5, "y": 4, "matrix": [4, 1]},
|
||||
{"x": 2.5, "y": 4, "w": 1.5, "matrix": [4, 2]},
|
||||
{"x": 4, "y": 4, "w": 7, "matrix": [4, 6]},
|
||||
{"x": 11, "y": 4, "w": 1.5, "matrix": [4, 11]},
|
||||
{"x": 12.5, "y": 4, "matrix": [4, 12]},
|
||||
{"x": 13.5, "y": 4, "w": 1.5, "matrix": [4, 14]}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_iso": {
|
||||
"layout": [
|
||||
{"x": 0, "y": 0, "matrix": [0, 0]},
|
||||
{"x": 1, "y": 0, "matrix": [0, 1]},
|
||||
{"x": 2, "y": 0, "matrix": [0, 2]},
|
||||
{"x": 3, "y": 0, "matrix": [0, 3]},
|
||||
{"x": 4, "y": 0, "matrix": [0, 4]},
|
||||
{"x": 5, "y": 0, "matrix": [0, 5]},
|
||||
{"x": 6, "y": 0, "matrix": [0, 6]},
|
||||
{"x": 7, "y": 0, "matrix": [0, 7]},
|
||||
{"x": 8, "y": 0, "matrix": [0, 8]},
|
||||
{"x": 9, "y": 0, "matrix": [0, 9]},
|
||||
{"x": 10, "y": 0, "matrix": [0, 10]},
|
||||
{"x": 11, "y": 0, "matrix": [0, 11]},
|
||||
{"x": 12, "y": 0, "matrix": [0, 12]},
|
||||
{"x": 13, "y": 0, "w": 2, "matrix": [0, 13]},
|
||||
|
||||
{"x": 0, "y": 1, "w": 1.5, "matrix": [1, 0]},
|
||||
{"x": 1.5, "y": 1, "matrix": [1, 1]},
|
||||
{"x": 2.5, "y": 1, "matrix": [1, 2]},
|
||||
{"x": 3.5, "y": 1, "matrix": [1, 3]},
|
||||
{"x": 4.5, "y": 1, "matrix": [1, 4]},
|
||||
{"x": 5.5, "y": 1, "matrix": [1, 5]},
|
||||
{"x": 6.5, "y": 1, "matrix": [1, 6]},
|
||||
{"x": 7.5, "y": 1, "matrix": [1, 7]},
|
||||
{"x": 8.5, "y": 1, "matrix": [1, 8]},
|
||||
{"x": 9.5, "y": 1, "matrix": [1, 9]},
|
||||
{"x": 10.5, "y": 1, "matrix": [1, 10]},
|
||||
{"x": 11.5, "y": 1, "matrix": [1, 11]},
|
||||
{"x": 12.5, "y": 1, "matrix": [1, 12]},
|
||||
|
||||
{"x": 0, "y": 2, "w": 1.75, "matrix": [2, 0]},
|
||||
{"x": 1.75, "y": 2, "matrix": [2, 1]},
|
||||
{"x": 2.75, "y": 2, "matrix": [2, 2]},
|
||||
{"x": 3.75, "y": 2, "matrix": [2, 3]},
|
||||
{"x": 4.75, "y": 2, "matrix": [2, 4]},
|
||||
{"x": 5.75, "y": 2, "matrix": [2, 5]},
|
||||
{"x": 6.75, "y": 2, "matrix": [2, 6]},
|
||||
{"x": 7.75, "y": 2, "matrix": [2, 7]},
|
||||
{"x": 8.75, "y": 2, "matrix": [2, 8]},
|
||||
{"x": 9.75, "y": 2, "matrix": [2, 9]},
|
||||
{"x": 10.75, "y": 2, "matrix": [2, 10]},
|
||||
{"x": 11.75, "y": 2, "matrix": [2, 11]},
|
||||
{"x": 12.75, "y": 2, "matrix": [2, 12]},
|
||||
{"x": 13.75, "y": 1, "w": 1.25, "h": 2, "matrix": [2, 14]},
|
||||
|
||||
{"x": 0, "y": 3, "w": 1.25, "matrix": [3, 0]},
|
||||
{"x": 1.25, "y": 3, "matrix": [3, 1]},
|
||||
{"x": 2.25, "y": 3, "matrix": [3, 2]},
|
||||
{"x": 3.25, "y": 3, "matrix": [3, 3]},
|
||||
{"x": 4.25, "y": 3, "matrix": [3, 4]},
|
||||
{"x": 5.25, "y": 3, "matrix": [3, 5]},
|
||||
{"x": 6.25, "y": 3, "matrix": [3, 6]},
|
||||
{"x": 7.25, "y": 3, "matrix": [3, 7]},
|
||||
{"x": 8.25, "y": 3, "matrix": [3, 8]},
|
||||
{"x": 9.25, "y": 3, "matrix": [3, 9]},
|
||||
{"x": 10.25, "y": 3, "matrix": [3, 10]},
|
||||
{"x": 11.25, "y": 3, "matrix": [3, 11]},
|
||||
{"x": 12.25, "y": 3, "w": 2.75, "matrix": [3, 12]},
|
||||
|
||||
{"x": 0, "y": 4, "w": 1.25, "matrix": [4, 0]},
|
||||
{"x": 1.25, "y": 4, "w": 1.25, "matrix": [4, 1]},
|
||||
{"x": 2.5, "y": 4, "w": 1.25, "matrix": [4, 2]},
|
||||
{"x": 3.75, "y": 4, "w": 6.25, "matrix": [4, 6]},
|
||||
{"x": 10, "y": 4, "w": 1.25, "matrix": [4, 10]},
|
||||
{"x": 11.25, "y": 4, "w": 1.25, "matrix": [4, 11]},
|
||||
{"x": 12.5, "y": 4, "w": 1.25, "matrix": [4, 12]},
|
||||
{"x": 13.75, "y": 4, "w": 1.25, "matrix": [4, 14]}
|
||||
]
|
||||
},
|
||||
"LAYOUT_all": {
|
||||
"layout": [
|
||||
{"x": 0, "y": 0, "matrix": [0, 0]},
|
||||
{"x": 1, "y": 0, "matrix": [0, 1]},
|
||||
{"x": 2, "y": 0, "matrix": [0, 2]},
|
||||
{"x": 3, "y": 0, "matrix": [0, 3]},
|
||||
{"x": 4, "y": 0, "matrix": [0, 4]},
|
||||
{"x": 5, "y": 0, "matrix": [0, 5]},
|
||||
{"x": 6, "y": 0, "matrix": [0, 6]},
|
||||
{"x": 7, "y": 0, "matrix": [0, 7]},
|
||||
{"x": 8, "y": 0, "matrix": [0, 8]},
|
||||
{"x": 9, "y": 0, "matrix": [0, 9]},
|
||||
{"x": 10, "y": 0, "matrix": [0, 10]},
|
||||
{"x": 11, "y": 0, "matrix": [0, 11]},
|
||||
{"x": 12, "y": 0, "matrix": [0, 12]},
|
||||
{"x": 13, "y": 0, "matrix": [0, 13]},
|
||||
{"x": 14, "y": 0, "matrix": [0, 14]},
|
||||
|
||||
{"x": 0, "y": 1, "w": 1.5, "matrix": [1, 0]},
|
||||
{"x": 1.5, "y": 1, "matrix": [1, 1]},
|
||||
{"x": 2.5, "y": 1, "matrix": [1, 2]},
|
||||
{"x": 3.5, "y": 1, "matrix": [1, 3]},
|
||||
{"x": 4.5, "y": 1, "matrix": [1, 4]},
|
||||
{"x": 5.5, "y": 1, "matrix": [1, 5]},
|
||||
{"x": 6.5, "y": 1, "matrix": [1, 6]},
|
||||
{"x": 7.5, "y": 1, "matrix": [1, 7]},
|
||||
{"x": 8.5, "y": 1, "matrix": [1, 8]},
|
||||
{"x": 9.5, "y": 1, "matrix": [1, 9]},
|
||||
{"x": 10.5, "y": 1, "matrix": [1, 10]},
|
||||
{"x": 11.5, "y": 1, "matrix": [1, 11]},
|
||||
{"x": 12.5, "y": 1, "matrix": [1, 12]},
|
||||
{"x": 13.5, "y": 1, "w": 1.5, "matrix": [1, 14]},
|
||||
|
||||
{"x": 0, "y": 2, "w": 1.75, "matrix": [2, 0]},
|
||||
{"x": 1.75, "y": 2, "matrix": [2, 1]},
|
||||
{"x": 2.75, "y": 2, "matrix": [2, 2]},
|
||||
{"x": 3.75, "y": 2, "matrix": [2, 3]},
|
||||
{"x": 4.75, "y": 2, "matrix": [2, 4]},
|
||||
{"x": 5.75, "y": 2, "matrix": [2, 5]},
|
||||
{"x": 6.75, "y": 2, "matrix": [2, 6]},
|
||||
{"x": 7.75, "y": 2, "matrix": [2, 7]},
|
||||
{"x": 8.75, "y": 2, "matrix": [2, 8]},
|
||||
{"x": 9.75, "y": 2, "matrix": [2, 9]},
|
||||
{"x": 10.75, "y": 2, "matrix": [2, 10]},
|
||||
{"x": 11.75, "y": 2, "matrix": [2, 11]},
|
||||
{"x": 12.75, "y": 2, "matrix": [2, 12]},
|
||||
{"x": 13.75, "y": 2, "w": 1.25, "matrix": [2, 14]},
|
||||
|
||||
{"x": 0, "y": 3, "w": 1.25, "matrix": [3, 0]},
|
||||
{"x": 1.25, "y": 3, "matrix": [3, 1]},
|
||||
{"x": 2.25, "y": 3, "matrix": [3, 2]},
|
||||
{"x": 3.25, "y": 3, "matrix": [3, 3]},
|
||||
{"x": 4.25, "y": 3, "matrix": [3, 4]},
|
||||
{"x": 5.25, "y": 3, "matrix": [3, 5]},
|
||||
{"x": 6.25, "y": 3, "matrix": [3, 6]},
|
||||
{"x": 7.25, "y": 3, "matrix": [3, 7]},
|
||||
{"x": 8.25, "y": 3, "matrix": [3, 8]},
|
||||
{"x": 9.25, "y": 3, "matrix": [3, 9]},
|
||||
{"x": 10.25, "y": 3, "matrix": [3, 10]},
|
||||
{"x": 11.25, "y": 3, "matrix": [3, 11]},
|
||||
{"x": 12.25, "y": 3, "w": 1.75, "matrix": [3, 12]},
|
||||
{"x": 14, "y": 3, "matrix": [3, 14]},
|
||||
|
||||
{"x": 0, "y": 4, "w": 1.25, "matrix": [4, 0]},
|
||||
{"x": 1.25, "y": 4, "w": 1.25, "matrix": [4, 1]},
|
||||
{"x": 2.5, "y": 4, "w": 1.25, "matrix": [4, 2]},
|
||||
{"x": 3.75, "y": 4, "w": 6.25, "matrix": [4, 6]},
|
||||
{"x": 10, "y": 4, "w": 1.25, "matrix": [4, 10]},
|
||||
{"x": 11.25, "y": 4, "w": 1.25, "matrix": [4, 11]},
|
||||
{"x": 12.5, "y": 4, "w": 1.25, "matrix": [4, 12]},
|
||||
{"x": 13.75, "y": 4, "w": 1.25, "matrix": [4, 14]}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
45
keyboards/cannonkeys/leviatan/keymaps/default/keymap.c
Normal file
45
keyboards/cannonkeys/leviatan/keymaps/default/keymap.c
Normal file
@ -0,0 +1,45 @@
|
||||
/*
|
||||
Copyright 2012,2013 Jun Wako <wakojun@gmail.com>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
|
||||
// Each layer gets a name for readability, which is then used in the keymap matrix below.
|
||||
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
|
||||
// Layer names don't all need to be of the same length, obviously, and you can also skip them
|
||||
// entirely and just use numbers.
|
||||
enum layer_names {
|
||||
_BASE,
|
||||
_FN1
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_BASE] = LAYOUT_60_ansi(
|
||||
QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FN1), KC_RCTL
|
||||
),
|
||||
|
||||
[_FN1] = LAYOUT_60_ansi(
|
||||
QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
|
||||
RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
BL_UP, BL_DOWN, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
KC_GRV, _______, _______, _______, _______, _______, _______, QK_BOOT
|
||||
)
|
||||
};
|
45
keyboards/cannonkeys/leviatan/keymaps/iso/keymap.c
Normal file
45
keyboards/cannonkeys/leviatan/keymaps/iso/keymap.c
Normal file
@ -0,0 +1,45 @@
|
||||
/*
|
||||
Copyright 2012,2013 Jun Wako <wakojun@gmail.com>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
|
||||
// Each layer gets a name for readability, which is then used in the keymap matrix below.
|
||||
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
|
||||
// Layer names don't all need to be of the same length, obviously, and you can also skip them
|
||||
// entirely and just use numbers.
|
||||
enum layer_names {
|
||||
_BASE,
|
||||
_FN1
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_BASE] = LAYOUT_60_iso(
|
||||
QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC,
|
||||
KC_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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FN1), KC_RCTL
|
||||
),
|
||||
|
||||
[_FN1] = LAYOUT_60_iso(
|
||||
QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
|
||||
RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
BL_UP, _______, BL_DOWN, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
KC_GRV, _______, _______, _______, _______, _______, _______, QK_BOOT
|
||||
)
|
||||
};
|
46
keyboards/cannonkeys/leviatan/keymaps/tsangan/keymap.c
Normal file
46
keyboards/cannonkeys/leviatan/keymaps/tsangan/keymap.c
Normal file
@ -0,0 +1,46 @@
|
||||
/*
|
||||
Copyright 2012,2013 Jun Wako <wakojun@gmail.com>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
|
||||
// Each layer gets a name for readability, which is then used in the keymap matrix below.
|
||||
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
|
||||
// Layer names don't all need to be of the same length, obviously, and you can also skip them
|
||||
// entirely and just use numbers.
|
||||
enum layer_names {
|
||||
_BASE,
|
||||
_FN1
|
||||
};
|
||||
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_BASE] = LAYOUT_60_tsangan_hhkb(
|
||||
QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_DEL,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN1),
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL
|
||||
),
|
||||
|
||||
[_FN1] = LAYOUT_60_tsangan_hhkb(
|
||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______,
|
||||
RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
BL_UP, BL_DOWN, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, QK_BOOT
|
||||
)
|
||||
};
|
45
keyboards/cannonkeys/leviatan/keymaps/via/keymap.c
Normal file
45
keyboards/cannonkeys/leviatan/keymaps/via/keymap.c
Normal file
@ -0,0 +1,45 @@
|
||||
/*
|
||||
Copyright 2012,2013 Jun Wako <wakojun@gmail.com>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
|
||||
// Each layer gets a name for readability, which is then used in the keymap matrix below.
|
||||
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
|
||||
// Layer names don't all need to be of the same length, obviously, and you can also skip them
|
||||
// entirely and just use numbers.
|
||||
enum layer_names {
|
||||
_BASE,
|
||||
_FN1,
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_BASE] = LAYOUT_all(
|
||||
QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_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, MO(_FN1),
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FN1), KC_RCTL
|
||||
),
|
||||
|
||||
[_FN1] = LAYOUT_all(
|
||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL,
|
||||
RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
BL_BRTG, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
BL_UP, BL_DOWN, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, QK_BOOT
|
||||
)
|
||||
};
|
1
keyboards/cannonkeys/leviatan/keymaps/via/rules.mk
Normal file
1
keyboards/cannonkeys/leviatan/keymaps/via/rules.mk
Normal file
@ -0,0 +1 @@
|
||||
VIA_ENABLE = yes
|
25
keyboards/cannonkeys/leviatan/readme.md
Normal file
25
keyboards/cannonkeys/leviatan/readme.md
Normal file
@ -0,0 +1,25 @@
|
||||
# CannonKeys Leviatan for LaminarDesigns
|
||||
|
||||
Leviatan Keyboard
|
||||
|
||||
* Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan)
|
||||
* Hardware Supported: STM32F072CBT6 (or equivalent)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make cannonkeys/leviatan:default
|
||||
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make cannonkeys/leviatan: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 "0" 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
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user