Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8dc2502177 | ||
|
|
547410b655 | ||
|
|
1b4f47c8ee | ||
|
|
d9fe755f7e | ||
|
|
c8b721d7c6 | ||
|
|
60d8d8677a | ||
|
|
0d04d95326 | ||
|
|
7222df36e7 | ||
|
|
b8438c74e3 | ||
|
|
cb9b81cc10 | ||
|
|
904c5613f4 | ||
|
|
37cbf7bcec |
No files matched your search
@@ -26,7 +26,8 @@
|
|||||||
|
|
||||||
<!--- Go over all the following points, and put an `x` in all the boxes that apply. -->
|
<!--- Go over all the following points, and put an `x` in all the boxes that apply. -->
|
||||||
<!--- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->
|
<!--- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->
|
||||||
- [ ] My code follows the code style of this project.
|
- [ ] My code follows the code style of this project: [**C**](https://docs.qmk.fm/#/coding_conventions_c), [**Python**](https://docs.qmk.fm/#/coding_conventions_python)
|
||||||
|
- [ ] I have read the [**PR Checklist** document](https://docs.qmk.fm/#/pr_checklist) and have made the appropriate changes.
|
||||||
- [ ] My change requires a change to the documentation.
|
- [ ] My change requires a change to the documentation.
|
||||||
- [ ] I have updated the documentation accordingly.
|
- [ ] I have updated the documentation accordingly.
|
||||||
- [ ] I have read the [**CONTRIBUTING** document](https://docs.qmk.fm/#/contributing).
|
- [ ] I have read the [**CONTRIBUTING** document](https://docs.qmk.fm/#/contributing).
|
||||||
|
|||||||
@@ -111,6 +111,7 @@
|
|||||||
* [Velocikey](feature_velocikey.md)
|
* [Velocikey](feature_velocikey.md)
|
||||||
|
|
||||||
* Developing QMK
|
* Developing QMK
|
||||||
|
* [PR Checklist](pr_checklist.md)
|
||||||
* Breaking Changes
|
* Breaking Changes
|
||||||
* [Overview](breaking_changes.md)
|
* [Overview](breaking_changes.md)
|
||||||
* [My Pull Request Was Flagged](breaking_changes_instructions.md)
|
* [My Pull Request Was Flagged](breaking_changes_instructions.md)
|
||||||
|
|||||||
@@ -0,0 +1,125 @@
|
|||||||
|
# PR checklists
|
||||||
|
|
||||||
|
This is a non-exhaustive checklist of what the QMK collaborators will be checking when reviewing submitted PRs.
|
||||||
|
|
||||||
|
If there are any inconsistencies with these recommendations, you're best off [creating an issue](https://github.com/qmk/qmk_firmware/issues/new) against this document, or getting in touch with a QMK Collaborator on Discord.
|
||||||
|
|
||||||
|
## General PRs
|
||||||
|
|
||||||
|
- PR should be submitted using a non-`master` branch on the source repository
|
||||||
|
- This does not mean you target a different branch for your PR, rather that you're not working out of your own master branch
|
||||||
|
- If submitter _does_ use their own `master` branch, they'll be given a link to the ["how to git"](https://docs.qmk.fm/#/newbs_git_using_your_master_branch) page after merging -- (end of this document will contain the contents of the message)
|
||||||
|
- Newly-added directories and filenames must be lowercase
|
||||||
|
- This rule may be relaxed if upstream sources originally had uppercase characters (e.g. ChibiOS, or imported files from other repositories etc.)
|
||||||
|
- If there is enough justification (i.e. consistency with existing core files etc.) this can be relaxed
|
||||||
|
- a board designer naming their keyboard with uppercase letters is not enough justification
|
||||||
|
- Valid license headers on all `*.c` and `*.h` source files
|
||||||
|
- GPL2/GPL3 recommended for consistency
|
||||||
|
- Other licenses are permitted, however they must be GPL-compatible and must allow for redistribution. Using a different license will almost certainly delay a PR getting merged.
|
||||||
|
- QMK codebase "best practices" followed
|
||||||
|
- This is not an exhaustive list, and will likely get amended as time goes by
|
||||||
|
- `#pragma once` instead of `#ifndef` include guards in header files
|
||||||
|
- No "old-school" GPIO/I2C/SPI functions used -- must use QMK abstractions unless justifiable (and laziness is not valid justification)
|
||||||
|
- Timing abstractions should be followed too:
|
||||||
|
- `wait_ms()` instead of `_delay_ms()` (remove `#include <util/delay.h>` too)
|
||||||
|
- `timer_read()` and `timer_read32()` etc. -- see [timer.h](https://github.com/qmk/qmk_firmware/blob/master/tmk_core/common/timer.h) for the timing APIs
|
||||||
|
- If you think a new abstraction is useful, you're encouraged to:
|
||||||
|
- prototype it in your own keyboard until it's feature-complete
|
||||||
|
- discuss it with QMK Collaborators on Discord
|
||||||
|
- refactor it as a separate core change
|
||||||
|
- remove your specific copy in your board
|
||||||
|
|
||||||
|
## Core PRs
|
||||||
|
|
||||||
|
- Must now target `develop` branch, which will subsequently be merged back to `master` on the breaking changes timeline
|
||||||
|
- Other notes TBD
|
||||||
|
- Core is a lot more subjective given the breadth of posted changes
|
||||||
|
|
||||||
|
## Keyboard PRs
|
||||||
|
|
||||||
|
Closed PRs (for inspiration, previous sets of review comments will help you eliminate ping-pong of your own reviews):
|
||||||
|
https://github.com/qmk/qmk_firmware/pulls?q=is%3Apr+is%3Aclosed+label%3Akeyboard
|
||||||
|
|
||||||
|
- `info.json`
|
||||||
|
- valid URL
|
||||||
|
- valid maintainer
|
||||||
|
- displays correctly in Configurator (press Ctrl+Shift+I to preview local file, turn on fast input to verify ordering)
|
||||||
|
- `readme.md`
|
||||||
|
- standard template should be present
|
||||||
|
- flash command has `:flash` at end
|
||||||
|
- valid hardware availability link (unless handwired) -- private groupbuys are okay, but one-off prototypes will be questioned. If open-source, a link to files should be provided.
|
||||||
|
- `rules.mk`
|
||||||
|
- removed `MIDI_ENABLE`, `FAUXCLICKY_ENABLE` and `HD44780_ENABLE`
|
||||||
|
- modified `# Enable Bluetooth with the Adafruit EZ-Key HID` -> `# Enable Bluetooth`
|
||||||
|
- No `(-/+size)` comments related to enabling features
|
||||||
|
- Remove the list of alternate bootloaders if one has been specified
|
||||||
|
- No re-definitions of the default MCU parameters if same value, when compared to the equivalent MCU in [mcu_selection.mk](https://github.com/qmk/qmk_firmware/blob/master/quantum/mcu_selection.mk)
|
||||||
|
- keyboard `config.h`
|
||||||
|
- don't repeat `MANUFACTURER` in the `PRODUCT` value
|
||||||
|
- no `#define DESCRIPTION`
|
||||||
|
- no Magic Key Options, MIDI Options or HD44780 configuration
|
||||||
|
- user preference configurable `#define`s need to be moved to keymap `config.h`
|
||||||
|
- "`DEBOUNCE`" instead of "`DEBOUNCING_DELAY`"
|
||||||
|
- bare minimum required code for a board to boot into QMK should be present
|
||||||
|
- initialisation code for the matrix and critical devices
|
||||||
|
- mirroring existing functionality of a commercial board (like custom keycodes and special animations etc.) should be handled through non-`default` keymaps
|
||||||
|
- `keyboard.c`
|
||||||
|
- empty `xxxx_xxxx_kb()` or other weak-defined default implemented functions removed
|
||||||
|
- commented-out functions removed too
|
||||||
|
- `matrix_init_board()` etc. migrated to `keyboard_pre_init_kb()`, see: [keyboard_pre_init*](https://docs.qmk.fm/#/custom_quantum_functions?id=keyboard_pre_init_-function-documentation)
|
||||||
|
- prefer `CUSTOM_MATRIX = lite` if custom matrix used, allows for standard debounce, see [custom matrix 'lite'](https://docs.qmk.fm/#/custom_matrix?id=lite)
|
||||||
|
- `keyboard.h`
|
||||||
|
- `#include "quantum.h"` appears at the top
|
||||||
|
- `LAYOUT` macros should use standard definitions if applicable
|
||||||
|
- Use the Community Layout macro names where they apply (preferred above `LAYOUT`/`LAYOUT_all`)
|
||||||
|
- keymap `config.h`
|
||||||
|
- no duplication of `rules.mk` or `config.h` from keyboard
|
||||||
|
- `keymaps/default/keymap.c`
|
||||||
|
- `QMKBEST`/`QMKURL` removed (sheesh)
|
||||||
|
- If using `MO(_LOWER)` and `MO(_RAISE)` keycodes or equivalent, and the keymap has an adjust layer when holding both keys -- if the keymap has no "direct-to-adjust" keycode (such as `MO(_ADJUST)`) then you should prefer to write...
|
||||||
|
```
|
||||||
|
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||||
|
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
|
||||||
|
}
|
||||||
|
```
|
||||||
|
...instead of manually handling `layer_on()`, `update_tri_layer()` inside the keymap's `process_record_user()`.
|
||||||
|
- default (and via) keymaps should be "pristine"
|
||||||
|
- bare minimum to be used as a "clean slate" for another user to develop their own user-specific keymap
|
||||||
|
- standard layouts preferred in these keymaps, if possible
|
||||||
|
- submitters can have a personal (or bells-and-whistles) keymap showcasing capabilities in the same PR but it shouldn't be embedded in the 'default' keymap
|
||||||
|
- submitters can also have a "manufacturer-matching" keymap that mirrors existing functionality of the commercial product, if porting an existing board
|
||||||
|
|
||||||
|
Also, specific to ChibiOS:
|
||||||
|
- **Strong** preference to using existing ChibiOS board definitions.
|
||||||
|
- A lot of the time, an equivalent Nucleo board can be used with a different flash size or slightly different model in the same family
|
||||||
|
- Example: For an STM32L082KZ, given the similarity to an STM32L073RZ, you can use `BOARD = ST_NUCLEO64_L073RZ` in rules.mk
|
||||||
|
- QMK is migrating to not having custom board definitions if at all possible, due to the ongoing maintenance burden when upgrading ChibiOS
|
||||||
|
- If a board definition is unavoidable, `board.c` must have a standard `__early_init()` (as per normal ChibiOS board defs) and an empty `boardInit()`:
|
||||||
|
- see Arm/ChibiOS [early initialization](https://docs.qmk.fm/#/platformdev_chibios_earlyinit?id=board-init)
|
||||||
|
- `__early_init()` should be replaced by either `early_hardware_init_pre()` or `early_hardware_init_post()` as appropriate
|
||||||
|
- `boardInit()` should be migrated to `board_init()`
|
||||||
|
|
||||||
|
## Keymap PRs
|
||||||
|
|
||||||
|
- `#include QMK_KEYBOARD_H` preferred to including specific board files
|
||||||
|
- Prefer layer `enum`s to `#define`s
|
||||||
|
- Require custom keycode `enum`s to `#define`s, first entry must have ` = SAFE_RANGE`
|
||||||
|
- Terminating backslash (`\`) in lines of LAYOUT macro parameters is superfluous
|
||||||
|
- Some care with spacing (e.g., alignment on commas or first char of keycodes) makes for a much nicer-looking keymap
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
|
||||||
|
For when people use their own `master` branch, post this after merge:
|
||||||
|
```
|
||||||
|
For future reference, we recommend against committing to your `master` branch as you've done here, because pull requests from modified `master` branches can make it more difficult to keep your QMK fork updated. It is highly recommended for QMK development – regardless of what is being done or where – to keep your master updated, but **NEVER** commit to it. Instead, do all your changes in a branch (branches are basically free in Git) and issue PRs from your branches when you're developing.
|
||||||
|
|
||||||
|
There are instructions on how to keep your fork updated here:
|
||||||
|
|
||||||
|
[**Best Practices: Your Fork's Master: Update Often, Commit Never**](https://docs.qmk.fm/#/newbs_git_using_your_master_branch)
|
||||||
|
|
||||||
|
[Fixing Your Branch](https://docs.qmk.fm/#/newbs_git_resynchronize_a_branch) will walk you through fixing up your `master` branch moving forward. If you need any help with this just ask.
|
||||||
|
|
||||||
|
Thanks for contributing!
|
||||||
|
```
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
/* Copyright 2020 Obosob <[email protected]>
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General 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 "arch_36.h"
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
/* Copyright 2020 Obosob <[email protected]>
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "quantum.h"
|
||||||
|
|
||||||
|
/* This a shortcut to help you visually see your layout.
|
||||||
|
*
|
||||||
|
* The first section contains all of the arguments representing the physical
|
||||||
|
* layout of the board and position of the keys.
|
||||||
|
*
|
||||||
|
* The second converts the arguments into a two-dimensional array which
|
||||||
|
* represents the switch matrix.
|
||||||
|
*/
|
||||||
|
#define LAYOUT_split_3x5_3( \
|
||||||
|
L00, L01, L02, L03, L04, R05, R06, R07, R08, R09, \
|
||||||
|
L10, L11, L12, L13, L14, R15, R16, R17, R18, R19, \
|
||||||
|
L20, L21, L22, L23, L24, R25, R26, R27, R28, R29, \
|
||||||
|
L32, L33, L34, R35, R36, R37 \
|
||||||
|
) \
|
||||||
|
{ \
|
||||||
|
{ L00, L01, L02, L03, L04 }, \
|
||||||
|
{ L10, L11, L12, L13, L14 }, \
|
||||||
|
{ L20, L21, L22, L23, L24 }, \
|
||||||
|
{ KC_NO, KC_NO, L32, L33, L34 }, \
|
||||||
|
{ R09, R08, R07, R06, R05 }, \
|
||||||
|
{ R19, R18, R17, R16, R15 }, \
|
||||||
|
{ R29, R28, R27, R26, R25 }, \
|
||||||
|
{ KC_NO, KC_NO, R37, R36, R35 }, \
|
||||||
|
}
|
||||||
@@ -0,0 +1,58 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2020 Obosob <[email protected]>
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General 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 "config_common.h"
|
||||||
|
|
||||||
|
|
||||||
|
/* USB Device descriptor parameter */
|
||||||
|
#define VENDOR_ID 0xFEED
|
||||||
|
#define PRODUCT_ID 0x9CE3
|
||||||
|
#define DEVICE_VER 0x0001
|
||||||
|
#define MANUFACTURER obosob
|
||||||
|
#define PRODUCT Arch-36
|
||||||
|
|
||||||
|
/* key matrix size */
|
||||||
|
/* Rows are doubled up */
|
||||||
|
#define MATRIX_ROWS 8
|
||||||
|
#define MATRIX_COLS 5
|
||||||
|
|
||||||
|
// wiring
|
||||||
|
#define MATRIX_ROW_PINS { D7, E6, B4, B5 }
|
||||||
|
#define MATRIX_COL_PINS { F7, B1, B3, B2, B6 }
|
||||||
|
#define UNUSED_PINS
|
||||||
|
|
||||||
|
/* COL2ROW, ROW2COL*/
|
||||||
|
#define DIODE_DIRECTION COL2ROW
|
||||||
|
|
||||||
|
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||||
|
#define DEBOUNCE 5
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
|
||||||
|
*/
|
||||||
|
#define SOFT_SERIAL_PIN D2
|
||||||
|
|
||||||
|
#ifdef RGBLIGHT_ENABLE
|
||||||
|
#define RGB_DI_PIN D3
|
||||||
|
#define RGBLED_SPLIT { 6, 6 }
|
||||||
|
#define RGBLED_NUM 12
|
||||||
|
#define RGBLIGHT_LED_MAP { 0, 1, 2, 3, 4, 5, \
|
||||||
|
11, 10, 9, 8, 7, 6 }
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define EE_HANDS
|
||||||
@@ -0,0 +1,309 @@
|
|||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
// Defines names for use in layer keycodes and the keymap
|
||||||
|
enum layer_names {
|
||||||
|
_QWERTY,
|
||||||
|
_LOWER,
|
||||||
|
_RAISE,
|
||||||
|
_ADJUST
|
||||||
|
};
|
||||||
|
|
||||||
|
#define LOWER MO(_LOWER)
|
||||||
|
#define RAISE MO(_RAISE)
|
||||||
|
|
||||||
|
// Defines for task manager and such
|
||||||
|
#define CALTDEL LCTL(LALT(KC_DEL))
|
||||||
|
#define TSKMGR LCTL(LSFT(KC_ESC))
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
/* Qwerty
|
||||||
|
*
|
||||||
|
* ,----------------------------------. ,----------------------------------.
|
||||||
|
* | Q | W | E | R | T | | Y | U | I | O | P |
|
||||||
|
* |------+------+------+------+------| |------+------+------+------+------|
|
||||||
|
* | A | S | D | F | G | | H | J | K | L | ; |
|
||||||
|
* |------+------+------+------+------| |------+------+------+------+------|
|
||||||
|
* | Z | X | C | V | B | | N | M | , | . | / |
|
||||||
|
* `----------------------------------' `----------------------------------'
|
||||||
|
* ,--------------------. ,--------------------.
|
||||||
|
* | Ctrl | LOWER| Space| |BckSpc| RAISE| Shift|
|
||||||
|
* `--------------------' `--------------------.
|
||||||
|
*/
|
||||||
|
[_QWERTY] = LAYOUT_split_3x5_3(
|
||||||
|
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
|
||||||
|
KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,
|
||||||
|
KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH,
|
||||||
|
KC_LCTL, LOWER, KC_SPC, KC_BSPC, RAISE, OSM(MOD_LSFT)
|
||||||
|
),
|
||||||
|
|
||||||
|
/* Raise
|
||||||
|
*
|
||||||
|
* ,----------------------------------. ,----------------------------------.
|
||||||
|
* | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 |
|
||||||
|
* |------+------+------+------+------| |------+------+------+------+------|
|
||||||
|
* | Tab | Left | Down | Up | Right| | | - | = | [ | ] |
|
||||||
|
* |------+------+------+------+------| |------+------+------+------+------|
|
||||||
|
* | Ctrl| ` | GUI | Alt | | | | | | \ | ' |
|
||||||
|
* `----------------------------------' `----------------------------------'
|
||||||
|
* ,--------------------. ,--------------------.
|
||||||
|
* | | LOWER| | | | RAISE| |
|
||||||
|
* `--------------------' `--------------------.
|
||||||
|
*/
|
||||||
|
[_RAISE] = LAYOUT_split_3x5_3(
|
||||||
|
KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
|
||||||
|
KC_TAB, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC,
|
||||||
|
KC_LCTL, KC_GRV, KC_LGUI, KC_LALT, _______, _______, _______, _______, KC_BSLS, KC_QUOT,
|
||||||
|
_______, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
|
||||||
|
/* Lower
|
||||||
|
*
|
||||||
|
* ,----------------------------------. ,----------------------------------.
|
||||||
|
* | ! | @ | # | $ | % | | ^ | & | * | ( | ) |
|
||||||
|
* |------+------+------+------+------| |------+------+------+------+------|
|
||||||
|
* | Esc | | | | | | | _ | + | { | } |
|
||||||
|
* |------+------+------+------+------| |------+------+------+------+------|
|
||||||
|
* | Caps| ~ | | | | | | | | | | " |
|
||||||
|
* `----------------------------------' `----------------------------------'
|
||||||
|
* ,--------------------. ,--------------------.
|
||||||
|
* | | LOWER| | | | RAISE| Del |
|
||||||
|
* `--------------------' `--------------------.
|
||||||
|
*/
|
||||||
|
[_LOWER] = LAYOUT_split_3x5_3(
|
||||||
|
KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN,
|
||||||
|
KC_ESC, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR,
|
||||||
|
KC_CAPS, KC_TILD, _______, _______, _______, _______, _______, _______, KC_PIPE, KC_DQT,
|
||||||
|
_______, _______, _______, KC_ENT, _______, KC_DEL
|
||||||
|
),
|
||||||
|
|
||||||
|
/* Adjust (Lower + Raise)
|
||||||
|
*
|
||||||
|
* ,----------------------------------. ,----------------------------------.
|
||||||
|
* | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 |
|
||||||
|
* |------+------+------+------+------| |------+------+------+------+------|
|
||||||
|
* | F11 | F12 | | | | | | | |Taskmg|caltde|
|
||||||
|
* |------+------+------+------+------| |------+------+------+------+------|
|
||||||
|
* | Reset| | | | | | | | | | |
|
||||||
|
* `----------------------------------' `----------------------------------'
|
||||||
|
* ,--------------------. ,--------------------.
|
||||||
|
* | | LOWER| | | | RAISE| |
|
||||||
|
* `--------------------' `--------------------.
|
||||||
|
*/
|
||||||
|
[_ADJUST] = LAYOUT_split_3x5_3(
|
||||||
|
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
|
||||||
|
KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, TSKMGR, CALTDEL,
|
||||||
|
RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______
|
||||||
|
)
|
||||||
|
};
|
||||||
|
|
||||||
|
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||||
|
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
|
||||||
|
}
|
||||||
|
|
||||||
|
uint16_t rgb_edit_timer = 0;
|
||||||
|
uint16_t last_rgb_char = 0;
|
||||||
|
|
||||||
|
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||||
|
switch(keycode) {
|
||||||
|
case RGB_TOG:
|
||||||
|
case RGB_MOD:
|
||||||
|
case RGB_HUD:
|
||||||
|
case RGB_HUI:
|
||||||
|
case RGB_SAD:
|
||||||
|
case RGB_SAI:
|
||||||
|
case RGB_VAI:
|
||||||
|
case RGB_VAD:
|
||||||
|
rgb_edit_timer = timer_read();
|
||||||
|
last_rgb_char = keycode;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef OLED_DRIVER_ENABLE
|
||||||
|
|
||||||
|
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
|
||||||
|
return OLED_ROTATION_180;
|
||||||
|
}
|
||||||
|
|
||||||
|
void render_default_layer_state(void) {
|
||||||
|
oled_write_P(PSTR("Layout: "), false);
|
||||||
|
switch (get_highest_layer(default_layer_state)) {
|
||||||
|
case _QWERTY:
|
||||||
|
oled_write_ln_P(PSTR("Qwerty"), false);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef RGBLIGHT_ENABLE
|
||||||
|
bool cleared = false;
|
||||||
|
void render_rgb_state(void) {
|
||||||
|
if(!rgblight_get_mode()) {
|
||||||
|
if(!cleared) {
|
||||||
|
oled_clear();
|
||||||
|
cleared = true;
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
cleared = false;
|
||||||
|
uint8_t width = (OLED_DISPLAY_WIDTH/OLED_FONT_WIDTH)-10;
|
||||||
|
uint8_t hue = (rgblight_get_hue()*width/255),
|
||||||
|
sat = (rgblight_get_sat()*width/255),
|
||||||
|
val = (rgblight_get_val()*width/255);
|
||||||
|
bool changing_hue = timer_elapsed(rgb_edit_timer) < 1000 && (last_rgb_char == RGB_HUI || last_rgb_char == RGB_HUD);
|
||||||
|
bool changing_sat = timer_elapsed(rgb_edit_timer) < 1000 && (last_rgb_char == RGB_SAI || last_rgb_char == RGB_SAD);
|
||||||
|
bool changing_val = timer_elapsed(rgb_edit_timer) < 1000 && (last_rgb_char == RGB_VAI || last_rgb_char == RGB_VAD);
|
||||||
|
|
||||||
|
uint8_t i;
|
||||||
|
|
||||||
|
oled_write_ln_P(PSTR(""), false);
|
||||||
|
|
||||||
|
oled_write_P(PSTR("Hue: ["), changing_hue);
|
||||||
|
for(i = 0; i < width; ++i) {
|
||||||
|
oled_write_P(i<hue?PSTR("-"):i==hue?PSTR("|"):PSTR(" "), changing_hue);
|
||||||
|
}
|
||||||
|
oled_write_P(PSTR("]"), changing_hue);
|
||||||
|
oled_write_P(PSTR("Sat: ["), changing_sat);
|
||||||
|
for(i = 0; i < width; ++i) {
|
||||||
|
oled_write_P(i<sat?PSTR("-"):i==sat?PSTR("|"):PSTR(" "), changing_sat);
|
||||||
|
}
|
||||||
|
oled_write_P(PSTR("]"), changing_sat);
|
||||||
|
oled_write_P(PSTR("Bri: ["), changing_val);
|
||||||
|
for(i = 0; i < width; ++i) {
|
||||||
|
oled_write_P(i<val?PSTR("-"):i==val?PSTR("|"):PSTR(" "), changing_val);
|
||||||
|
}
|
||||||
|
oled_write_P(PSTR("]"), changing_val);
|
||||||
|
}
|
||||||
|
#endif // RGBLIGHT_ENABLE
|
||||||
|
|
||||||
|
void render_layer_state(void) {
|
||||||
|
oled_write_P(PSTR("Layer: "), false);
|
||||||
|
switch (get_highest_layer(layer_state)) {
|
||||||
|
case _QWERTY:
|
||||||
|
oled_write_ln_P(PSTR("Base"), false);
|
||||||
|
break;
|
||||||
|
case _LOWER:
|
||||||
|
oled_write_ln_P(PSTR("Lower"), false);
|
||||||
|
break;
|
||||||
|
case _RAISE:
|
||||||
|
oled_write_ln_P(PSTR("Raise"), false);
|
||||||
|
break;
|
||||||
|
case _ADJUST:
|
||||||
|
oled_write_ln_P(PSTR("Adjust"), false);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
oled_write_ln_P(PSTR("Unknown"), false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void render_keylock_status(led_t led_state) {
|
||||||
|
oled_write_P(PSTR("Lock: "), false);
|
||||||
|
oled_write_P(PSTR("123"), led_state.num_lock);
|
||||||
|
oled_write_P(PSTR(" "), false);
|
||||||
|
oled_write_ln_P(led_state.caps_lock?PSTR("ABC"):PSTR("abc"), led_state.caps_lock);
|
||||||
|
}
|
||||||
|
|
||||||
|
void render_mod_status(uint8_t modifiers) {
|
||||||
|
oled_write_P(PSTR("Mods: "), false);
|
||||||
|
oled_write_P(PSTR("S"), (modifiers & MOD_MASK_SHIFT));
|
||||||
|
oled_write_P(PSTR(" "), false);
|
||||||
|
oled_write_P(PSTR("C"), (modifiers & MOD_MASK_CTRL));
|
||||||
|
oled_write_P(PSTR(" "), false);
|
||||||
|
oled_write_P(PSTR("A"), (modifiers & MOD_MASK_ALT));
|
||||||
|
oled_write_P(PSTR(" "), false);
|
||||||
|
oled_write_ln_P(PSTR("W"), (modifiers & MOD_MASK_GUI));
|
||||||
|
}
|
||||||
|
|
||||||
|
static void render_status(void) {
|
||||||
|
// Host Keyboard Layer Status
|
||||||
|
render_default_layer_state();
|
||||||
|
render_layer_state();
|
||||||
|
render_keylock_status(host_keyboard_led_state());
|
||||||
|
render_mod_status(get_mods() | get_oneshot_mods());
|
||||||
|
#ifdef RGBLIGHT_ENABLE
|
||||||
|
render_rgb_state();
|
||||||
|
#endif // RGBLIGHT_ENABLE
|
||||||
|
}
|
||||||
|
|
||||||
|
static void render_logo(void) {
|
||||||
|
static const char PROGMEM logo[] = {
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0x1c, 0x1c, 0x38, 0xf8,
|
||||||
|
0xf0, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||||
|
0x03, 0x1f, 0x7f, 0xfe, 0xf0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x87, 0x9f, 0x3f, 0xfc, 0xf0,
|
||||||
|
0xe0, 0xc0, 0x00, 0x01, 0x07, 0x0f, 0x3f, 0x3f, 0x7f, 0xfe, 0xfe, 0xee, 0xce, 0xfe, 0x8e, 0x0e,
|
||||||
|
0xfe, 0x8e, 0x0e, 0xfe, 0x8e, 0x0e, 0xfe, 0xfe, 0x7e, 0xee, 0xdc, 0x9c, 0x38, 0x78, 0xf0, 0xe0,
|
||||||
|
0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf7, 0xe3, 0xc3, 0xc7, 0x8f, 0x0e, 0x1f,
|
||||||
|
0x1f, 0x3f, 0x7f, 0x7f, 0xfe, 0xfc, 0xf8, 0xf8, 0xf8, 0xf0, 0xf0, 0xf0, 0xe0, 0xe0, 0xe0, 0xe0,
|
||||||
|
0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe1, 0xe1, 0xe7, 0xff, 0xdb, 0xff, 0xff, 0x00, 0x00, 0x00, 0x03,
|
||||||
|
0x1f, 0xff, 0xfe, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0xfc, 0xff, 0xff, 0x8f, 0x8f, 0x0f, 0x0f, 0x0f, 0x0f,
|
||||||
|
0x0e, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x0f, 0x0f, 0x0c, 0x08, 0x0f, 0x0c, 0x08,
|
||||||
|
0x0f, 0x0c, 0x08, 0x0f, 0x0c, 0x08, 0x0f, 0x0f, 0x0e, 0x07, 0x03, 0x01, 0x80, 0xc0, 0xe0, 0x40,
|
||||||
|
0x01, 0x03, 0x07, 0x1f, 0xfe, 0xfc, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0,
|
||||||
|
0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xf3, 0xf3, 0xf3, 0x03, 0x03, 0x03, 0x03,
|
||||||
|
0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0xf3, 0xff, 0xff, 0x9f, 0x8f, 0x80, 0x80, 0xc0, 0xf0, 0xfc,
|
||||||
|
0x7e, 0x1e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0xce, 0xce, 0xef, 0x67, 0x67, 0x6f, 0x6f, 0xef, 0xee,
|
||||||
|
0xce, 0x8e, 0x0e, 0x0e, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xe0, 0x60,
|
||||||
|
0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xfc, 0xff,
|
||||||
|
0xbf, 0x83, 0x8f, 0xff, 0xff, 0xf0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe,
|
||||||
|
0x1c, 0x0c, 0x06, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf8, 0xfc, 0x1c, 0x0e, 0x06,
|
||||||
|
0x06, 0x06, 0x06, 0x06, 0x04, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x0c, 0x06, 0x06, 0x06,
|
||||||
|
0x0e, 0xfe, 0xfc, 0xf8, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x33, 0x33, 0x33, 0x33, 0x33, 0x31,
|
||||||
|
0x30, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x30, 0x30, 0x30, 0x78, 0xff,
|
||||||
|
0xef, 0xc7, 0x80, 0x00, 0x00, 0x00, 0xe0, 0xf8, 0xfc, 0x7e, 0x3f, 0x1f, 0x1b, 0x39, 0x70, 0xf0,
|
||||||
|
0xe0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x3f, 0x3f, 0x1f, 0x01,
|
||||||
|
0x01, 0x01, 0x01, 0x01, 0x07, 0x3f, 0x3f, 0x3c, 0x20, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x3f, 0x3f,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x1f, 0x1c, 0x38, 0x30,
|
||||||
|
0x30, 0x30, 0x30, 0x38, 0x18, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x3f, 0x3f, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x3f, 0x3f, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x38, 0x30, 0x30, 0x30, 0x30, 0x30, 0x38, 0x3f,
|
||||||
|
0x1f, 0x1f, 0x0f, 0x00, 0x00, 0x00, 0x07, 0x1f, 0x1f, 0x3c, 0x30, 0x30, 0x30, 0x30, 0x3c, 0x1f,
|
||||||
|
0x0f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||||
|
};
|
||||||
|
|
||||||
|
oled_write_raw_P(logo, 1024);
|
||||||
|
}
|
||||||
|
|
||||||
|
void oled_task_user(void) {
|
||||||
|
if (is_keyboard_master()) {
|
||||||
|
render_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc)
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
render_logo();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
/* Copyright 2020 Obosob <[email protected]>
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General 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
|
||||||
|
|
||||||
|
#ifdef OLED_DRIVER_ENABLE
|
||||||
|
#define OLED_DISPLAY_128X64
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef RGBLIGHT_ENABLE
|
||||||
|
// #define RGBLIGHT_ANIMATIONS
|
||||||
|
#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
|
||||||
|
#define RGBLIGHT_HUE_STEP 8
|
||||||
|
#define RGBLIGHT_SAT_STEP 8
|
||||||
|
#define RGBLIGHT_VAL_STEP 8
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define PERMISSIVE_HOLD
|
||||||
@@ -0,0 +1,818 @@
|
|||||||
|
/* Copyright 2020 Obosob <[email protected]>
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
enum layer_names {
|
||||||
|
_QWERTY,
|
||||||
|
_COLMAK,
|
||||||
|
_NUM,
|
||||||
|
_NAV,
|
||||||
|
_SYM,
|
||||||
|
_MISC,
|
||||||
|
_ADJUST
|
||||||
|
};
|
||||||
|
|
||||||
|
#define MY_SPC LT(_NAV, KC_SPC)
|
||||||
|
#define MY_ENT LT(_NUM, KC_ENT)
|
||||||
|
#define MY_BSPC SFT_T(KC_BSPC)
|
||||||
|
#define MY_DEL SFT_T(KC_DEL)
|
||||||
|
#define MY_ESC CTL_T(KC_ESC)
|
||||||
|
#define MY_TAB RALT_T(KC_TAB)
|
||||||
|
|
||||||
|
#define KC_NUPI S(KC_NUBS)
|
||||||
|
|
||||||
|
#define OS_SFT OSM(MOD_LSFT)
|
||||||
|
#define OS_CTL OSM(MOD_LCTL)
|
||||||
|
#define OS_GUI OSM(MOD_LGUI)
|
||||||
|
#define OS_ALT OSM(MOD_LALT)
|
||||||
|
|
||||||
|
enum keycodes {
|
||||||
|
QWERTY = SAFE_RANGE,
|
||||||
|
COLEMAK,
|
||||||
|
// layers
|
||||||
|
SYM,
|
||||||
|
MISC,
|
||||||
|
// special keys
|
||||||
|
ENC_PRS,
|
||||||
|
DOTSPC,
|
||||||
|
COMMSPC,
|
||||||
|
EXLMSPC,
|
||||||
|
QUESSPC,
|
||||||
|
DQUOT,
|
||||||
|
QUOT,
|
||||||
|
PRN,
|
||||||
|
BRC,
|
||||||
|
CBR,
|
||||||
|
LTGT,
|
||||||
|
LTGTC,
|
||||||
|
GRV,
|
||||||
|
A_TAB,
|
||||||
|
AS_TAB,
|
||||||
|
WOKE,
|
||||||
|
};
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
// Qwerty ________ ________
|
||||||
|
// ________| E |________ ________| I |________
|
||||||
|
// | W | | R |________ ________| U | | O |
|
||||||
|
// ________| |________| | T | | Y | |________| |________
|
||||||
|
// | Q |________| D |________| | | |________| K |________| P |
|
||||||
|
// | | S | | F |________| |________| J | | L | |
|
||||||
|
// |________| |________| | G | | H | |________| |________|
|
||||||
|
// | A |________| C |________| | | |________| SYM |________| : |
|
||||||
|
// | | X | | V |________| |________| M | | MISC | ; |
|
||||||
|
// |________| |________| | B | | N | |________| |________|
|
||||||
|
// | Z |________| |________| | | |________| |________| ? |
|
||||||
|
// | | | Esc |________| |________| Tab | | / |
|
||||||
|
// |________| | Ctrl | Enter |________ ________| Space | Alt | |________|
|
||||||
|
// |________| NUM | Del | | BkSp | NAV |________|
|
||||||
|
// ________| Shift | | Shift |________
|
||||||
|
// |________| |________|
|
||||||
|
|
||||||
|
[_QWERTY] = LAYOUT_split_3x5_3(
|
||||||
|
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
|
||||||
|
KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,
|
||||||
|
KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, SYM, MISC, KC_SLSH,
|
||||||
|
MY_ESC, MY_ENT, MY_DEL, MY_BSPC, MY_SPC, MY_TAB
|
||||||
|
),
|
||||||
|
// Colemak (Mod-DH) ________ ________
|
||||||
|
// ________| F |________ ________| U |________
|
||||||
|
// | W | | P |________ ________| L | | Y |
|
||||||
|
// ________| |________| | B | | J | |________| |________
|
||||||
|
// | Q |________| S |________| | | |________| E |________| : |
|
||||||
|
// | | R | | T |________| |________| N | | I | ; |
|
||||||
|
// |________| |________| | G | | K | |________| |________|
|
||||||
|
// | A |________| C |________| | | |________| SYM |________| O |
|
||||||
|
// | | X | | D |________| |________| H | | MISC | |
|
||||||
|
// |________| |________| | V | | M | |________| |________|
|
||||||
|
// | Z |________| |________| | | |________| |________| ? |
|
||||||
|
// | | | Esc |________| |________| Tab | | / |
|
||||||
|
// |________| | Ctrl | Enter |________ ________| Space | Alt | |________|
|
||||||
|
// |________| NUM | Del | | BkSp | NAV |________|
|
||||||
|
// ________| Shift | | Shift |________
|
||||||
|
// |________| |________|
|
||||||
|
|
||||||
|
[_COLMAK] = LAYOUT_split_3x5_3(
|
||||||
|
KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN,
|
||||||
|
KC_A, KC_R, KC_S, KC_T, KC_G, KC_K, KC_N, KC_E, KC_I, KC_O,
|
||||||
|
KC_Z, KC_X, KC_C, KC_D, KC_V, KC_M, KC_H, SYM, MISC, KC_SLSH,
|
||||||
|
MY_ESC, MY_ENT, MY_DEL, MY_BSPC, MY_SPC, MY_TAB
|
||||||
|
),
|
||||||
|
// Number ________ ________
|
||||||
|
// ________| F3 |________ ________| 8 |________
|
||||||
|
// | F2 | | F4 |________ ________| 7 | | 9 |
|
||||||
|
// ________| |________| | | | + | |________| |________
|
||||||
|
// | F1 |________| F7 |________| | | |________| 5 |________| / |
|
||||||
|
// | | F6 | | F8 |________| |________| 4 | | 6 | |
|
||||||
|
// |________| |________| | | | 0 | |________| |________|
|
||||||
|
// | F5 |________| F11 |________| | | |________| 2 |________| . |
|
||||||
|
// | | F10 | | F12 |________| |________| 1 | | 3 | |
|
||||||
|
// |________| |________| | | | - | |________| |________|
|
||||||
|
// | F9 |________| |________| | | |________| |________| * |
|
||||||
|
// | | | |________| |________| | | |
|
||||||
|
// |________| | | |________ ________| ADJUST | | |________|
|
||||||
|
// |________| **** | | | | |________|
|
||||||
|
// |________| | | |________|
|
||||||
|
// |________| |________|
|
||||||
|
[_NUM] = LAYOUT_split_3x5_3(
|
||||||
|
KC_F1, KC_F2, KC_F3, KC_F4, XXXXXXX, KC_PLUS, KC_7, KC_8, KC_9, KC_SLSH,
|
||||||
|
KC_F5, KC_F6, KC_F7, KC_F8, XXXXXXX, KC_COMM, KC_4, KC_5, KC_6, KC_DOT,
|
||||||
|
KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, KC_MINS, KC_1, KC_2, KC_3, KC_ASTR,
|
||||||
|
XXXXXXX, _______, XXXXXXX, _______, _______, KC_0
|
||||||
|
),
|
||||||
|
// Navigation ________ ________
|
||||||
|
// ________| OS |________ ________| PgUp |________
|
||||||
|
// | OS | Ctrl | OS |________ ________| PgDn | | End |
|
||||||
|
// ________| Alt |________| Shift | AltTab | | Home | |________| |________
|
||||||
|
// | OS |________| Ctrl |________| | | |________| Up |________| PrtScr |
|
||||||
|
// | Super | Alt | | Shift |________| |________| Down | | Right | |
|
||||||
|
// |________| |________| | | | Left | |________| |________|
|
||||||
|
// | Super |________| |________| | | |________| |________| Insert |
|
||||||
|
// | | | | |________| |________| | | | |
|
||||||
|
// |________| |________| | | | | |________| |________|
|
||||||
|
// | |________| |________| | | |________| |________| |
|
||||||
|
// | | | |________| |________| | | |
|
||||||
|
// |________| | | ADJUST |________ ________| | | |________|
|
||||||
|
// |________| | | | | **** |________|
|
||||||
|
// |________| | | |________|
|
||||||
|
// |________| |________|
|
||||||
|
[_NAV] = LAYOUT_split_3x5_3(
|
||||||
|
OS_GUI, OS_ALT, OS_CTL, OS_SFT, XXXXXXX, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_PSCR,
|
||||||
|
KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_INS,
|
||||||
|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, AS_TAB, A_TAB, XXXXXXX, XXXXXXX,
|
||||||
|
_______, _______, _______, XXXXXXX, _______, XXXXXXX
|
||||||
|
),
|
||||||
|
// Symbol ________ ________
|
||||||
|
// ________| { |________ ________| |________
|
||||||
|
// | > | | } |________ ________| | | |
|
||||||
|
// ________| |________| | ` | | | |________| |________
|
||||||
|
// | < |________| ( |________| | | |________| |________| | |
|
||||||
|
// | | £ | | ) |________| |________| - | | & | |
|
||||||
|
// |________| |________| | ^ | | _ | |________| |________|
|
||||||
|
// | * |________| [ |________| | | |________| |________| ~ |
|
||||||
|
// | | $ | | ] |________| |________| + | **** | % | |
|
||||||
|
// |________| |________| | @ | | = | |________| |________|
|
||||||
|
// | \ |________| |________| | | |________| |________| # |
|
||||||
|
// | | | ? |________| |________| ! | | |
|
||||||
|
// |________| | | ' |________ ________| . | | |________|
|
||||||
|
// |________| | " | | , | |________|
|
||||||
|
// |________| | | |________|
|
||||||
|
// |________| |________|
|
||||||
|
//
|
||||||
|
[_SYM] = LAYOUT_split_3x5_3(
|
||||||
|
KC_LT, KC_GT, KC_LCBR, KC_RCBR, KC_GRV, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_NUPI,
|
||||||
|
KC_ASTR, KC_HASH, KC_LPRN, KC_RPRN, KC_CIRC, KC_UNDS, KC_MINS, XXXXXXX, KC_AMPR, KC_PIPE,
|
||||||
|
KC_NUBS, KC_DLR, KC_LBRC, KC_RBRC, KC_DQUO, KC_EQL, KC_PLUS, _______, KC_PERC, KC_NUHS,
|
||||||
|
KC_QUES, KC_QUOT, KC_AT, KC_COMM, KC_DOT, KC_EXLM
|
||||||
|
),
|
||||||
|
// Miscellaneous ________ ________
|
||||||
|
// ________| {|} |________ ________| |________
|
||||||
|
// | </|> | | {|} |________ ________| | | |
|
||||||
|
// ________| |________| | | | | |________| |________
|
||||||
|
// | <|> |________| (|) |________| | | |________| |________| |
|
||||||
|
// | | | | (|) |________| |________| | | | |
|
||||||
|
// |________| |________| | | | | |________| |________|
|
||||||
|
// | |________| [|] |________| | | |________| |________| |
|
||||||
|
// | | | | [|] |________| |________| | | | |
|
||||||
|
// |________| |________| | | | | |________| **** |________|
|
||||||
|
// | |________| |________| | | |________| |________| |
|
||||||
|
// | | | ?_^ |________| |________| !_^ | | |
|
||||||
|
// |________| | | '|' |________ ________| ._^ | | |________|
|
||||||
|
// |________| | "|" | | ,_ | |________|
|
||||||
|
// |________| | | |________|
|
||||||
|
// |________| |________|
|
||||||
|
//
|
||||||
|
[_MISC] = LAYOUT_split_3x5_3(
|
||||||
|
LTGT, LTGTC, CBR, CBR, GRV, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||||
|
XXXXXXX, XXXXXXX, PRN, PRN, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||||
|
XXXXXXX, XXXXXXX, BRC, BRC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX,
|
||||||
|
QUESSPC, QUOT, DQUOT, COMMSPC, DOTSPC, EXLMSPC
|
||||||
|
),
|
||||||
|
// Adjust ________ ________
|
||||||
|
// ________| RESET |________ ________| |________
|
||||||
|
// | | EEPROM | RESET |________ ________| | | |
|
||||||
|
// ________| |________| | | | | |________| |________
|
||||||
|
// | |________| RGB |________| | | |________| |________| |
|
||||||
|
// | | RGB | Hue+ | RGB |________| |________| | | | |
|
||||||
|
// |________| Toggle |________| Sat+ | RGB | | | |________| |________|
|
||||||
|
// | |________| RGB |________| Bri+ | | |________| |________| |
|
||||||
|
// | | RGB | Hue- | RGB |________| |________| | | | |
|
||||||
|
// |________| Mode |________| Sat- | RGB | | | |________| |________|
|
||||||
|
// | |________| |________| Bri- | | |________| |________| |
|
||||||
|
// | | | |________| |________| | | |
|
||||||
|
// |________| | | |________ ________| | | |________|
|
||||||
|
// |________| **** | | | | **** |________|
|
||||||
|
// |________| | | |________|
|
||||||
|
// |________| |________|
|
||||||
|
[_ADJUST] = LAYOUT_split_3x5_3(
|
||||||
|
XXXXXXX, WOKE, EEP_RST, RESET, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||||
|
XXXXXXX, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, QWERTY, COLEMAK, XXXXXXX, XXXXXXX,
|
||||||
|
XXXXXXX, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||||
|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
|
||||||
|
),
|
||||||
|
};
|
||||||
|
|
||||||
|
bool alt_tabbing = false;
|
||||||
|
bool woke_mode = false;
|
||||||
|
uint16_t rgb_edit_timer = 0;
|
||||||
|
uint16_t last_rgb_char = 0;
|
||||||
|
|
||||||
|
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||||
|
switch (keycode) {
|
||||||
|
case QWERTY:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
set_single_persistent_default_layer(_QWERTY);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
case COLEMAK:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
set_single_persistent_default_layer(_COLMAK);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
case SYM:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
layer_on(_SYM);
|
||||||
|
} else {
|
||||||
|
layer_off(_SYM);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
case MY_SPC:
|
||||||
|
if (!record->event.pressed) {
|
||||||
|
if(alt_tabbing) {
|
||||||
|
unregister_code(KC_LALT);
|
||||||
|
alt_tabbing = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
case MISC:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
layer_on(_MISC);
|
||||||
|
} else {
|
||||||
|
layer_off(_MISC);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
case DOTSPC:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
tap_code(KC_DOT);
|
||||||
|
tap_code(KC_SPC);
|
||||||
|
set_oneshot_mods(MOD_LSFT);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
case COMMSPC:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
tap_code(KC_COMM);
|
||||||
|
tap_code(KC_SPC);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
case EXLMSPC:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
tap_code16(KC_EXLM);
|
||||||
|
tap_code(KC_SPC);
|
||||||
|
set_oneshot_mods(MOD_LSFT);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
case QUESSPC:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
tap_code16(KC_QUES);
|
||||||
|
tap_code(KC_SPC);
|
||||||
|
set_oneshot_mods(MOD_LSFT);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
case QUOT:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
tap_code(KC_QUOT);
|
||||||
|
tap_code(KC_QUOT);
|
||||||
|
tap_code(KC_LEFT);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
case DQUOT:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
tap_code16(KC_DQUO);
|
||||||
|
tap_code16(KC_DQUO);
|
||||||
|
tap_code(KC_LEFT);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
case PRN:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
tap_code16(KC_LPRN);
|
||||||
|
tap_code16(KC_RPRN);
|
||||||
|
tap_code(KC_LEFT);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
case BRC:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
tap_code(KC_LBRC);
|
||||||
|
tap_code(KC_RBRC);
|
||||||
|
tap_code(KC_LEFT);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
case CBR:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
tap_code16(KC_LCBR);
|
||||||
|
tap_code16(KC_RCBR);
|
||||||
|
tap_code(KC_LEFT);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
case LTGT:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
tap_code16(KC_LT);
|
||||||
|
tap_code16(KC_GT);
|
||||||
|
tap_code(KC_LEFT);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
case LTGTC:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
tap_code16(KC_LT);
|
||||||
|
tap_code(KC_SLSH);
|
||||||
|
tap_code16(KC_GT);
|
||||||
|
tap_code(KC_LEFT);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
case GRV:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
tap_code(KC_GRV);
|
||||||
|
tap_code(KC_GRV);
|
||||||
|
tap_code(KC_LEFT);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
case AS_TAB:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
register_code(KC_LSFT);
|
||||||
|
} else {
|
||||||
|
unregister_code(KC_LSFT);
|
||||||
|
}
|
||||||
|
case A_TAB:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
register_code(KC_LALT);
|
||||||
|
register_code(KC_TAB);
|
||||||
|
alt_tabbing = true;
|
||||||
|
} else {
|
||||||
|
unregister_code(KC_TAB);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
case WOKE:
|
||||||
|
if (!record->event.pressed) {
|
||||||
|
woke_mode = !woke_mode;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
case RGB_TOG:
|
||||||
|
case RGB_MOD:
|
||||||
|
case RGB_HUD:
|
||||||
|
case RGB_HUI:
|
||||||
|
case RGB_SAD:
|
||||||
|
case RGB_SAI:
|
||||||
|
case RGB_VAI:
|
||||||
|
case RGB_VAD:
|
||||||
|
rgb_edit_timer = timer_read();
|
||||||
|
last_rgb_char = keycode;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (woke_mode && ((keycode >= KC_A && keycode <= KC_Z) || keycode == MY_BSPC)) {
|
||||||
|
if (record->event.pressed) {
|
||||||
|
tap_code(KC_CAPS);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||||
|
state = update_tri_layer_state(state, _NAV, _NUM, _ADJUST);
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef OLED_DRIVER_ENABLE
|
||||||
|
|
||||||
|
#define ANIM_NUM_FRAMES 4
|
||||||
|
#define ANIM_FRAME_DURATION 100
|
||||||
|
|
||||||
|
#ifdef ANIM_REVERSE
|
||||||
|
#define ANIM_TOTAL_FRAMES (2*((ANIM_NUM_FRAMES)-1))
|
||||||
|
#else
|
||||||
|
#define ANIM_TOTAL_FRAMES ANIM_NUM_FRAMES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
uint16_t anim_timer = 0;
|
||||||
|
uint8_t current_anim_frame = 0;
|
||||||
|
|
||||||
|
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
|
||||||
|
return OLED_ROTATION_180;
|
||||||
|
}
|
||||||
|
|
||||||
|
void render_default_layer_state(void) {
|
||||||
|
oled_write_P(PSTR("Layout: "), false);
|
||||||
|
switch (get_highest_layer(default_layer_state)) {
|
||||||
|
case _QWERTY:
|
||||||
|
if(woke_mode) {
|
||||||
|
oled_write_ln_P(PSTR("QwErTy"), false);
|
||||||
|
} else {
|
||||||
|
oled_write_ln_P(PSTR("Qwerty"), false);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case _COLMAK:
|
||||||
|
oled_write_ln_P(PSTR("Colemak"), false);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef RGBLIGHT_ENABLE
|
||||||
|
bool cleared = false;
|
||||||
|
void render_rgb_state(void) {
|
||||||
|
if(!rgblight_get_mode()) {
|
||||||
|
if(!cleared) {
|
||||||
|
oled_clear();
|
||||||
|
cleared = true;
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
cleared = false;
|
||||||
|
uint8_t width = (OLED_DISPLAY_WIDTH/OLED_FONT_WIDTH)-10;
|
||||||
|
uint8_t hue = (rgblight_get_hue()*width/255),
|
||||||
|
sat = (rgblight_get_sat()*width/255),
|
||||||
|
val = (rgblight_get_val()*width/255);
|
||||||
|
bool changing_hue = timer_elapsed(rgb_edit_timer) < 1000 && (last_rgb_char == RGB_HUI || last_rgb_char == RGB_HUD);
|
||||||
|
bool changing_sat = timer_elapsed(rgb_edit_timer) < 1000 && (last_rgb_char == RGB_SAI || last_rgb_char == RGB_SAD);
|
||||||
|
bool changing_val = timer_elapsed(rgb_edit_timer) < 1000 && (last_rgb_char == RGB_VAI || last_rgb_char == RGB_VAD);
|
||||||
|
|
||||||
|
uint8_t i;
|
||||||
|
|
||||||
|
oled_write_ln_P(PSTR(""), false);
|
||||||
|
|
||||||
|
oled_write_P(PSTR("Hue: ["), changing_hue);
|
||||||
|
for(i = 0; i < width; ++i) {
|
||||||
|
oled_write_P(i<hue?PSTR("-"):i==hue?PSTR("|"):PSTR(" "), changing_hue);
|
||||||
|
}
|
||||||
|
oled_write_P(PSTR("]"), changing_hue);
|
||||||
|
oled_write_P(PSTR("Sat: ["), changing_sat);
|
||||||
|
for(i = 0; i < width; ++i) {
|
||||||
|
oled_write_P(i<sat?PSTR("-"):i==sat?PSTR("|"):PSTR(" "), changing_sat);
|
||||||
|
}
|
||||||
|
oled_write_P(PSTR("]"), changing_sat);
|
||||||
|
oled_write_P(PSTR("Bri: ["), changing_val);
|
||||||
|
for(i = 0; i < width; ++i) {
|
||||||
|
oled_write_P(i<val?PSTR("-"):i==val?PSTR("|"):PSTR(" "), changing_val);
|
||||||
|
}
|
||||||
|
oled_write_P(PSTR("]"), changing_val);
|
||||||
|
}
|
||||||
|
#endif // RGBLIGHT_ENABLE
|
||||||
|
|
||||||
|
void render_layer_state(void) {
|
||||||
|
oled_write_P(PSTR("Layer: "), false);
|
||||||
|
switch (get_highest_layer(layer_state)) {
|
||||||
|
case _QWERTY:
|
||||||
|
oled_write_ln_P(PSTR("Base"), false);
|
||||||
|
break;
|
||||||
|
case _NAV:
|
||||||
|
oled_write_ln_P(PSTR("Navigation"), false);
|
||||||
|
break;
|
||||||
|
case _NUM:
|
||||||
|
oled_write_ln_P(PSTR("Number"), false);
|
||||||
|
break;
|
||||||
|
case _SYM:
|
||||||
|
oled_write_ln_P(PSTR("Symbol"), false);
|
||||||
|
break;
|
||||||
|
case _MISC:
|
||||||
|
oled_write_ln_P(PSTR("Misc"), false);
|
||||||
|
break;
|
||||||
|
case _ADJUST:
|
||||||
|
oled_write_ln_P(PSTR("Adjust"), false);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
oled_write_ln_P(PSTR("Unknown"), false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void render_keylock_status(led_t led_state) {
|
||||||
|
oled_write_P(PSTR("Lock: "), false);
|
||||||
|
oled_write_P(PSTR("123"), led_state.num_lock);
|
||||||
|
oled_write_P(PSTR(" "), false);
|
||||||
|
oled_write_ln_P(led_state.caps_lock?PSTR("ABC"):PSTR("abc"), led_state.caps_lock);
|
||||||
|
}
|
||||||
|
|
||||||
|
void render_mod_status(uint8_t modifiers) {
|
||||||
|
oled_write_P(PSTR("Mods: "), false);
|
||||||
|
oled_write_P(PSTR("S"), (modifiers & MOD_MASK_SHIFT));
|
||||||
|
oled_write_P(PSTR(" "), false);
|
||||||
|
oled_write_P(PSTR("C"), (modifiers & MOD_MASK_CTRL));
|
||||||
|
oled_write_P(PSTR(" "), false);
|
||||||
|
oled_write_P(PSTR("A"), (modifiers & MOD_MASK_ALT));
|
||||||
|
oled_write_P(PSTR(" "), false);
|
||||||
|
oled_write_ln_P(PSTR("W"), (modifiers & MOD_MASK_GUI));
|
||||||
|
}
|
||||||
|
|
||||||
|
static void render_status(void) {
|
||||||
|
// Host Keyboard Layer Status
|
||||||
|
render_default_layer_state();
|
||||||
|
render_layer_state();
|
||||||
|
render_keylock_status(host_keyboard_led_state());
|
||||||
|
render_mod_status(get_mods() | get_oneshot_mods());
|
||||||
|
#ifdef RGBLIGHT_ENABLE
|
||||||
|
render_rgb_state();
|
||||||
|
#endif // RGBLIGHT_ENABLE
|
||||||
|
}
|
||||||
|
|
||||||
|
static void render_logo(void) {
|
||||||
|
static const char PROGMEM frame[ANIM_NUM_FRAMES][1024] = {
|
||||||
|
{
|
||||||
|
// leekspin: frame 0
|
||||||
|
0xff, 0xbf, 0xfb, 0x6f, 0xff, 0xdb, 0x7f, 0xf7, 0xde, 0x7c, 0xf1, 0xc6, 0x98, 0x21, 0x66, 0x9a,
|
||||||
|
0xc9, 0x24, 0x33, 0xcf, 0x2f, 0xfd, 0xff, 0x6b, 0x7f, 0x9d, 0x81, 0x76, 0x14, 0x81, 0x67, 0x0f,
|
||||||
|
0xfb, 0xff, 0xef, 0xbb, 0xff, 0xef, 0xbb, 0xff, 0xef, 0xbb, 0xff, 0xef, 0xbb, 0xff, 0xef, 0xbb,
|
||||||
|
0xff, 0x6f, 0xfb, 0xdf, 0x77, 0xff, 0x0d, 0xe0, 0x3f, 0xc0, 0x0d, 0x37, 0xd0, 0x26, 0xa9, 0xd8,
|
||||||
|
0xc7, 0x1d, 0xf0, 0xff, 0xff, 0xf0, 0xc7, 0xb1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xf1, 0xc6,
|
||||||
|
0xff, 0xf7, 0xf8, 0xf3, 0xcf, 0x90, 0xf7, 0xfc, 0xe3, 0x9b, 0x2e, 0xe2, 0xfc, 0x03, 0xfc, 0x7c,
|
||||||
|
0x83, 0x1b, 0x6c, 0xa5, 0xb3, 0x4e, 0x59, 0x64, 0x13, 0xdb, 0xae, 0x20, 0xdf, 0xff, 0xbb, 0xef,
|
||||||
|
0xff, 0xbb, 0xef, 0xdf, 0x7b, 0xef, 0xbf, 0xfb, 0x6f, 0xff, 0xdb, 0x7f, 0xf7, 0xdf, 0x7b, 0xef,
|
||||||
|
0xff, 0xff, 0xdd, 0x77, 0xff, 0xdd, 0x77, 0xff, 0xdd, 0x77, 0xff, 0xdd, 0x77, 0xfe, 0xdc, 0xf1,
|
||||||
|
0xcc, 0x23, 0x99, 0x64, 0x26, 0x98, 0x63, 0x0f, 0x30, 0xcc, 0x33, 0x24, 0xcd, 0x19, 0xe0, 0xff,
|
||||||
|
0xff, 0xde, 0x7b, 0xef, 0xbe, 0xfb, 0xef, 0xbe, 0xfb, 0x6f, 0xfe, 0xdb, 0x7f, 0xf6, 0xdf, 0xfd,
|
||||||
|
0xb7, 0xff, 0x6d, 0xff, 0xdb, 0xff, 0x00, 0xbd, 0x67, 0x48, 0x13, 0xfc, 0x85, 0xff, 0x5f, 0x3f,
|
||||||
|
0xb7, 0x97, 0xcf, 0xcb, 0xeb, 0xcf, 0x97, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
0xef, 0x9f, 0xd7, 0xcf, 0xcb, 0xdf, 0xd7, 0xcf, 0x8f, 0x3f, 0x1f, 0x7f, 0xff, 0xfe, 0xff, 0xf2,
|
||||||
|
0x07, 0xe9, 0x3e, 0x00, 0x35, 0xef, 0xc9, 0x1b, 0xc2, 0xbc, 0x37, 0xc0, 0xff, 0xbf, 0xfb, 0x6e,
|
||||||
|
0xef, 0xfb, 0xde, 0xf7, 0xb7, 0xfd, 0xef, 0xbd, 0xf7, 0x77, 0xdd, 0xff, 0xb7, 0xfd, 0xef, 0xbb,
|
||||||
|
0xff, 0xff, 0xdd, 0xf7, 0x7f, 0xdd, 0xf7, 0x7f, 0xdd, 0xf7, 0x7f, 0xdd, 0xf7, 0xbf, 0xed, 0xff,
|
||||||
|
0xdf, 0xf7, 0xf6, 0x7c, 0xf9, 0xb1, 0xe6, 0xcb, 0x18, 0xa4, 0xb3, 0x09, 0xfc, 0xff, 0xfb, 0x6f,
|
||||||
|
0xfe, 0xdf, 0xfb, 0xbf, 0xf7, 0x7e, 0xef, 0xfd, 0xb7, 0xff, 0x6d, 0xff, 0xdb, 0xff, 0xb6, 0xff,
|
||||||
|
0x6d, 0xff, 0xdb, 0x7f, 0xf6, 0xdf, 0xf9, 0x21, 0x8e, 0xfb, 0x00, 0x7e, 0xc0, 0xff, 0xfe, 0xff,
|
||||||
|
0xf7, 0xff, 0xff, 0xff, 0x3f, 0x3f, 0x7f, 0x7f, 0x3f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
|
||||||
|
0x3f, 0x7f, 0x7f, 0x3f, 0x3f, 0x7f, 0x37, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xef, 0x3f, 0xc0,
|
||||||
|
0x6e, 0x3b, 0x09, 0xe0, 0x6f, 0x1a, 0x92, 0x64, 0x6d, 0x99, 0xf2, 0x7f, 0xef, 0xfd, 0xb7, 0xff,
|
||||||
|
0x7b, 0xde, 0xf7, 0xbf, 0xfb, 0x7e, 0xef, 0xbf, 0xff, 0xfb, 0xef, 0xbe, 0xfb, 0x6f, 0xfe, 0xdb,
|
||||||
|
0xff, 0xff, 0xfe, 0xf7, 0xbf, 0xfb, 0xff, 0xbf, 0xef, 0xfd, 0xdf, 0xf7, 0x7d, 0xff, 0xee, 0x7f,
|
||||||
|
0xf7, 0xbd, 0xff, 0xef, 0xfb, 0xbf, 0xfd, 0x77, 0xfe, 0xa0, 0xf9, 0xfe, 0xf0, 0xef, 0xbf, 0xf7,
|
||||||
|
0x7f, 0xfb, 0xde, 0xff, 0xbb, 0xff, 0xf7, 0xbe, 0xfb, 0xdf, 0xff, 0xfd, 0xb7, 0xfe, 0xef, 0x7f,
|
||||||
|
0xfb, 0xbf, 0xed, 0xff, 0xf7, 0xbe, 0xfb, 0xdf, 0xf0, 0x06, 0x98, 0xe7, 0x3c, 0x03, 0xcf, 0x2f,
|
||||||
|
0x1f, 0x9f, 0x7f, 0x7f, 0x7e, 0xf8, 0xf1, 0xe6, 0xf8, 0xc9, 0xca, 0xfa, 0xc8, 0xda, 0xf2, 0xcc,
|
||||||
|
0xd9, 0xf2, 0xe0, 0xed, 0xf1, 0xfa, 0xfc, 0x7f, 0x7f, 0x3f, 0xbf, 0x9f, 0x0f, 0xe3, 0x34, 0x8d,
|
||||||
|
0xe3, 0x18, 0x17, 0x85, 0xa0, 0x38, 0xcf, 0x13, 0xf8, 0xef, 0xdd, 0x7f, 0xff, 0xf7, 0xfd, 0xef,
|
||||||
|
0xbb, 0xff, 0x7f, 0xf7, 0xfd, 0xef, 0xbf, 0xfb, 0xee, 0xff, 0xff, 0xbb, 0xef, 0x7f, 0xfb, 0xee,
|
||||||
|
0xff, 0xff, 0xde, 0xf7, 0xff, 0xef, 0xbd, 0xff, 0xdb, 0xff, 0xfe, 0x77, 0x7f, 0xf7, 0xfd, 0x7f,
|
||||||
|
0xf7, 0xff, 0xdb, 0x7e, 0xff, 0xef, 0xfb, 0xff, 0xb7, 0xff, 0xc8, 0xff, 0xff, 0xff, 0xfc, 0x27,
|
||||||
|
0xff, 0xff, 0xff, 0xed, 0xbf, 0xfe, 0xf7, 0x7f, 0xfb, 0xdf, 0xfe, 0xf7, 0xdf, 0xff, 0xfd, 0x6f,
|
||||||
|
0xff, 0xbf, 0xfb, 0xff, 0xde, 0xff, 0xf7, 0xfd, 0xbf, 0x00, 0x77, 0x6c, 0x89, 0x11, 0x04, 0xa2,
|
||||||
|
0x08, 0x69, 0x46, 0x90, 0x02, 0x64, 0x94, 0x24, 0x09, 0x91, 0x85, 0x21, 0x09, 0xff, 0xf7, 0xdd,
|
||||||
|
0x3d, 0x37, 0x1d, 0x1d, 0x06, 0xc6, 0x07, 0x10, 0x20, 0x83, 0x84, 0x30, 0x66, 0x19, 0x92, 0x06,
|
||||||
|
0x40, 0x31, 0x0c, 0xc0, 0x14, 0xb7, 0x09, 0xfa, 0xff, 0xdf, 0xfb, 0xbf, 0xfd, 0xf7, 0xef, 0xef,
|
||||||
|
0xff, 0xdf, 0xf7, 0xff, 0x6e, 0xff, 0xff, 0xde, 0xf7, 0xff, 0x7e, 0xdb, 0xff, 0xb7, 0xff, 0xee,
|
||||||
|
0xff, 0xff, 0x7f, 0xf6, 0xdf, 0xfd, 0xff, 0xff, 0xef, 0xbb, 0xfe, 0x7f, 0xf7, 0xdf, 0xff, 0xf7,
|
||||||
|
0xdd, 0xff, 0xff, 0xbf, 0xed, 0xff, 0xfe, 0xef, 0x3f, 0xde, 0xee, 0xc9, 0xff, 0xff, 0xdf, 0xff,
|
||||||
|
0xc9, 0xff, 0x9e, 0xdf, 0xdf, 0xb7, 0xfd, 0xff, 0xef, 0xff, 0xfb, 0xef, 0xfd, 0xbf, 0xf7, 0xff,
|
||||||
|
0xbb, 0xef, 0xff, 0xfd, 0xff, 0xef, 0x7e, 0xff, 0xb1, 0x06, 0x7b, 0xc9, 0x00, 0x42, 0x98, 0x31,
|
||||||
|
0x46, 0x44, 0x38, 0x89, 0xc4, 0x30, 0x00, 0x42, 0x10, 0x84, 0x20, 0x08, 0x81, 0x03, 0x10, 0x80,
|
||||||
|
0x24, 0x00, 0x88, 0x21, 0x04, 0xc0, 0x08, 0xa1, 0x34, 0x4c, 0x03, 0x90, 0x46, 0x00, 0x30, 0xd1,
|
||||||
|
0x04, 0x69, 0x88, 0x30, 0x22, 0xcb, 0x04, 0x3f, 0xfb, 0xff, 0xfd, 0x6f, 0xfe, 0xf7, 0xbf, 0xfe,
|
||||||
|
0xdb, 0xff, 0xee, 0x7f, 0xf7, 0xbf, 0xfd, 0xef, 0x7e, 0xf7, 0xff, 0xdb, 0xff, 0xb7, 0xfe, 0x7b,
|
||||||
|
0xff, 0xff, 0xff, 0xbb, 0xef, 0xff, 0xf6, 0xff, 0xbf, 0xef, 0xff, 0xdf, 0xfd, 0x7f, 0xfe, 0xbf,
|
||||||
|
0xef, 0xfe, 0xff, 0xdf, 0xff, 0xfe, 0xff, 0xe4, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
0xff, 0xff, 0xfe, 0xfb, 0x37, 0xfd, 0xfe, 0xff, 0xff, 0x6f, 0xff, 0xf6, 0xff, 0xbf, 0xfb, 0xdf,
|
||||||
|
0xff, 0xff, 0x77, 0x7f, 0x9d, 0x9f, 0x27, 0x21, 0xcc, 0x18, 0x63, 0x84, 0x80, 0x2a, 0x29, 0x44,
|
||||||
|
0x59, 0x43, 0x94, 0x34, 0x42, 0x49, 0x2c, 0x92, 0x92, 0x64, 0x0c, 0x80, 0xb8, 0x22, 0x86, 0x34,
|
||||||
|
0x48, 0x23, 0x34, 0x44, 0xc9, 0x18, 0x46, 0x09, 0x80, 0x72, 0x08, 0x61, 0x80, 0x9b, 0x12, 0x64,
|
||||||
|
0x8d, 0x90, 0x23, 0xa8, 0x26, 0x44, 0x59, 0x89, 0x24, 0xd3, 0x1f, 0xff, 0xfd, 0xef, 0xff, 0x7d,
|
||||||
|
0xef, 0xfe, 0xf7, 0xbf, 0xfb, 0xdf, 0x7d, 0xff, 0xf7, 0xbf, 0xfe, 0xdb, 0x7f, 0xfd, 0xff, 0xcf,
|
||||||
|
0xff, 0xff, 0xfb, 0xff, 0x7f, 0xff, 0xb6, 0xff, 0xff, 0xff, 0xfd, 0xb7, 0xff, 0xfb, 0xbf, 0xff,
|
||||||
|
0xef, 0xfb, 0x7e, 0xdf, 0xff, 0xf6, 0xff, 0xdf, 0xff, 0xed, 0xfb, 0xff, 0xef, 0x2f, 0xef, 0xef,
|
||||||
|
0xf7, 0xf7, 0x9f, 0xfb, 0xfc, 0xff, 0xf7, 0xdf, 0xbb, 0x7f, 0xff, 0xef, 0xfe, 0xf7, 0x1f, 0x07,
|
||||||
|
0xd1, 0x19, 0x22, 0x66, 0x44, 0x98, 0x8b, 0x21, 0x64, 0x1a, 0x42, 0xd4, 0x14, 0x23, 0xa8, 0x4d,
|
||||||
|
0x91, 0x92, 0x64, 0x25, 0x99, 0x44, 0x23, 0x88, 0x50, 0x96, 0xa3, 0x18, 0x44, 0x65, 0x99, 0x22,
|
||||||
|
0x8a, 0x69, 0x25, 0x86, 0xd8, 0x1d, 0xb7, 0x9a, 0x9e, 0x30, 0x8b, 0xe2, 0xcc, 0xd9, 0xe1, 0xfc,
|
||||||
|
0xee, 0xf8, 0xfe, 0xe1, 0xc9, 0x06, 0x98, 0x69, 0x22, 0x92, 0x4c, 0x23, 0xa7, 0x1f, 0x7d, 0xff,
|
||||||
|
0xff, 0xbf, 0xef, 0xfb, 0xbe, 0xef, 0x7f, 0xfb, 0xfe, 0x77, 0xff, 0xbf, 0xef, 0xfd, 0xf7, 0xff,
|
||||||
|
|
||||||
|
},
|
||||||
|
{
|
||||||
|
// leekspin: frame 1
|
||||||
|
0xff, 0xbf, 0xfb, 0xcf, 0xff, 0xbb, 0xef, 0xff, 0xbb, 0xef, 0xff, 0xbb, 0xef, 0xff, 0xff, 0xdf,
|
||||||
|
0x77, 0xff, 0xdb, 0xff, 0xb7, 0xff, 0xfb, 0x6f, 0xff, 0xff, 0xdd, 0xf7, 0xff, 0xff, 0xff, 0xbb,
|
||||||
|
0xef, 0xff, 0xbb, 0xef, 0xff, 0xbb, 0xef, 0xff, 0xbb, 0xef, 0xff, 0xbb, 0x6f, 0xff, 0xbb, 0xef,
|
||||||
|
0xff, 0xbb, 0xef, 0x7f, 0xdb, 0xff, 0x27, 0xd0, 0x5f, 0x60, 0x8d, 0x37, 0xe0, 0x8d, 0x31, 0xd8,
|
||||||
|
0xc7, 0x1d, 0xf0, 0xff, 0xff, 0xf0, 0xcf, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xf9, 0xc1,
|
||||||
|
0xff, 0xfe, 0xf9, 0xe7, 0xcc, 0x91, 0xf7, 0xfc, 0xe3, 0x99, 0x2e, 0xe2, 0xfc, 0x03, 0xfc, 0x7c,
|
||||||
|
0x03, 0x3b, 0xec, 0x85, 0x33, 0x76, 0xcd, 0xa8, 0x23, 0x5b, 0xee, 0x20, 0x9f, 0xff, 0x7b, 0xef,
|
||||||
|
0xbf, 0xfb, 0xef, 0xbf, 0xfb, 0xef, 0xbf, 0xfb, 0xef, 0xbf, 0xfb, 0x6f, 0xff, 0xdb, 0xff, 0xb7,
|
||||||
|
0xff, 0xff, 0x76, 0xdf, 0xfd, 0x77, 0xde, 0xfb, 0xbf, 0xf6, 0xdf, 0xfd, 0xb7, 0xff, 0x6d, 0xff,
|
||||||
|
0xfe, 0xfb, 0xdf, 0xf6, 0xbf, 0xed, 0xff, 0xef, 0xbf, 0xf6, 0xff, 0xef, 0xfb, 0xbf, 0xee, 0xfb,
|
||||||
|
0xbf, 0xee, 0xfb, 0xbf, 0xee, 0xfb, 0xbf, 0xee, 0xfb, 0xbf, 0xee, 0x7b, 0xdf, 0xfd, 0xb7, 0xfe,
|
||||||
|
0xef, 0xbd, 0xf7, 0x7f, 0xed, 0xff, 0x00, 0x6e, 0xdb, 0x91, 0x24, 0xee, 0x09, 0xff, 0x5f, 0x3f,
|
||||||
|
0xa7, 0x9f, 0xcb, 0xcb, 0xef, 0xcb, 0x9f, 0xb7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
0xff, 0x8f, 0xd7, 0xdf, 0xcb, 0xcf, 0xd7, 0xdf, 0x8f, 0x3f, 0x1f, 0x7f, 0xff, 0xff, 0xff, 0xf0,
|
||||||
|
0x07, 0xb3, 0xec, 0x08, 0x33, 0xf7, 0x8c, 0x66, 0x11, 0xdb, 0x2e, 0xa0, 0xff, 0xdf, 0xf7, 0xbd,
|
||||||
|
0xef, 0xfe, 0xbb, 0xef, 0x7e, 0xdb, 0xff, 0xb6, 0xff, 0x6d, 0xff, 0xdb, 0xff, 0xb6, 0xff, 0x6d,
|
||||||
|
0xff, 0xff, 0xb7, 0xfd, 0xef, 0xbb, 0xff, 0x6e, 0xfb, 0xdf, 0x76, 0xff, 0xdd, 0x77, 0xff, 0xef,
|
||||||
|
0xbf, 0xfb, 0xf6, 0x7f, 0xef, 0xff, 0x7f, 0xed, 0xfd, 0xf7, 0xbf, 0xff, 0xde, 0xf7, 0xfd, 0xbf,
|
||||||
|
0xf7, 0xde, 0xfb, 0xbf, 0xee, 0xfb, 0xdf, 0x76, 0xff, 0xed, 0xbf, 0xfb, 0x6f, 0xfe, 0xdb, 0xff,
|
||||||
|
0xb6, 0xff, 0xed, 0xbf, 0xfb, 0x6f, 0xfc, 0x83, 0x32, 0xde, 0x00, 0xbf, 0xc0, 0xff, 0xfe, 0xff,
|
||||||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xef, 0x3f, 0xc0,
|
||||||
|
0xde, 0x33, 0x0c, 0xe0, 0xb7, 0x1c, 0x85, 0x70, 0x6f, 0x8d, 0xf0, 0x7f, 0xdf, 0xf7, 0xfe, 0xbb,
|
||||||
|
0xef, 0x7f, 0xd9, 0xff, 0xbf, 0xf7, 0xff, 0x6f, 0xff, 0xfb, 0xff, 0xb6, 0xff, 0x6d, 0xff, 0xdb,
|
||||||
|
0xff, 0xff, 0xff, 0xed, 0xbf, 0xfb, 0xff, 0xdf, 0xf7, 0xfd, 0x7f, 0xef, 0xbb, 0xff, 0xdd, 0xff,
|
||||||
|
0x77, 0xfe, 0xef, 0xbb, 0xff, 0x7d, 0xef, 0xff, 0xb6, 0xff, 0xdd, 0xff, 0x7b, 0xde, 0xff, 0xed,
|
||||||
|
0x7f, 0xfb, 0xde, 0xff, 0xb7, 0xfd, 0xff, 0xdb, 0x7f, 0xfe, 0xbb, 0xef, 0x7f, 0xdb, 0xfe, 0xef,
|
||||||
|
0x7b, 0xfe, 0xef, 0x7d, 0xf7, 0xbf, 0xed, 0x7f, 0xf8, 0x02, 0xc6, 0xbd, 0x34, 0x47, 0x47, 0x9f,
|
||||||
|
0x1f, 0x3f, 0x3f, 0x7f, 0x7e, 0xff, 0xff, 0xfe, 0xff, 0xfd, 0xfd, 0xff, 0xfe, 0xff, 0xfd, 0xff,
|
||||||
|
0xfe, 0xff, 0xfe, 0xff, 0xff, 0xff, 0x7f, 0xff, 0x3f, 0x7f, 0x9f, 0x9f, 0x0d, 0xe3, 0x3a, 0x8c,
|
||||||
|
0x63, 0x58, 0x17, 0x84, 0x21, 0xb8, 0xcf, 0x63, 0xd8, 0xff, 0xef, 0xbb, 0xff, 0xff, 0xfd, 0xf7,
|
||||||
|
0xdd, 0xff, 0xbf, 0x7b, 0xff, 0xf6, 0xdf, 0xff, 0xb7, 0xfd, 0xff, 0xef, 0x7d, 0xdf, 0xfb, 0xee,
|
||||||
|
0xff, 0xff, 0xbe, 0xef, 0xfb, 0x7f, 0xef, 0xbe, 0xfb, 0xff, 0x77, 0xff, 0xef, 0x7d, 0xff, 0xfb,
|
||||||
|
0xff, 0xed, 0xff, 0xdf, 0x7d, 0xef, 0xff, 0xf6, 0x7f, 0xdf, 0xfd, 0xb7, 0xff, 0xfb, 0xdf, 0xfd,
|
||||||
|
0xff, 0xb7, 0xff, 0xed, 0x7f, 0xfe, 0xb7, 0xff, 0xfb, 0xdf, 0xff, 0xf7, 0xff, 0xef, 0xff, 0x7d,
|
||||||
|
0xef, 0xff, 0xb7, 0xff, 0xfd, 0xff, 0xdf, 0x77, 0xff, 0x80, 0x36, 0xed, 0x09, 0x12, 0x44, 0x21,
|
||||||
|
0x0c, 0x51, 0x51, 0x86, 0x00, 0x58, 0x46, 0x30, 0x24, 0x85, 0x09, 0x21, 0x85, 0xff, 0x7b, 0xed,
|
||||||
|
0x3d, 0x1d, 0x1d, 0x47, 0x0e, 0x8e, 0x23, 0x00, 0x22, 0x02, 0xc4, 0xb0, 0x26, 0x19, 0x4c, 0x03,
|
||||||
|
0xc0, 0x18, 0x06, 0x60, 0x89, 0xbd, 0x02, 0xfa, 0xff, 0xff, 0xb6, 0xff, 0xfb, 0xbe, 0xf7, 0xf7,
|
||||||
|
0xdf, 0x7f, 0xf7, 0xff, 0x6f, 0xfe, 0xff, 0xdf, 0xfb, 0x6f, 0xfe, 0xdf, 0x7b, 0xff, 0xf7, 0xde,
|
||||||
|
0x23, 0xcf, 0x9f, 0x37, 0x7d, 0xff, 0xff, 0xf7, 0xff, 0xfb, 0x6f, 0xff, 0xdb, 0xff, 0xbf, 0xfe,
|
||||||
|
0xdb, 0xef, 0xff, 0xff, 0xb7, 0xfd, 0x7f, 0xff, 0xef, 0xfb, 0x7f, 0xf7, 0xbd, 0xff, 0xde, 0xdf,
|
||||||
|
0xfb, 0xdf, 0xde, 0xd7, 0xbf, 0xef, 0xfb, 0xf7, 0xfe, 0xfb, 0xfb, 0xfd, 0x7c, 0x7f, 0xfd, 0xfe,
|
||||||
|
0x7d, 0xfd, 0x9e, 0x62, 0x6f, 0xff, 0xff, 0x7f, 0xd2, 0x08, 0xef, 0x31, 0x00, 0x42, 0x48, 0x39,
|
||||||
|
0x86, 0x60, 0x0c, 0xd9, 0x90, 0x20, 0x02, 0x10, 0x44, 0x08, 0x02, 0x10, 0x40, 0x03, 0x11, 0x80,
|
||||||
|
0x20, 0x24, 0x81, 0x08, 0x42, 0x90, 0x04, 0xc1, 0x78, 0x06, 0x24, 0x09, 0x42, 0x40, 0x98, 0x22,
|
||||||
|
0x30, 0xc9, 0x88, 0x32, 0x44, 0x4d, 0x80, 0x3f, 0xff, 0xfe, 0xf7, 0x7f, 0xed, 0xbf, 0xfe, 0xf7,
|
||||||
|
0xbf, 0xfb, 0xdf, 0xfd, 0xef, 0x7f, 0xfb, 0xde, 0xff, 0xef, 0xfb, 0xbf, 0xff, 0x6d, 0xff, 0xf6,
|
||||||
|
0x92, 0x24, 0x65, 0x99, 0xc6, 0x30, 0x8b, 0x67, 0x37, 0x87, 0x6f, 0xff, 0xf5, 0x77, 0x7f, 0xfe,
|
||||||
|
0xff, 0xef, 0xfe, 0x7f, 0xf7, 0xed, 0x0f, 0xfe, 0xfe, 0xfb, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
0xff, 0xff, 0xff, 0xff, 0x7f, 0xb6, 0xec, 0xfe, 0xff, 0x7e, 0xef, 0xff, 0x7f, 0xf7, 0xff, 0xbf,
|
||||||
|
0xef, 0xff, 0xf7, 0x7f, 0x1f, 0x9f, 0x63, 0x03, 0xdc, 0x90, 0x23, 0x8a, 0x20, 0x05, 0xc9, 0x5a,
|
||||||
|
0x11, 0xa4, 0x8b, 0x30, 0x24, 0x4b, 0x48, 0x26, 0x34, 0xc1, 0x8c, 0x22, 0x98, 0x91, 0x66, 0x08,
|
||||||
|
0x32, 0xc4, 0x99, 0x12, 0x62, 0xcc, 0x00, 0x33, 0x04, 0xc0, 0x38, 0x83, 0x40, 0x96, 0x19, 0x61,
|
||||||
|
0x86, 0x18, 0x60, 0x93, 0x4c, 0x24, 0x93, 0x48, 0x6c, 0x83, 0x3f, 0xff, 0xfb, 0xff, 0xdd, 0xff,
|
||||||
|
0xf7, 0xfd, 0xff, 0xde, 0xf7, 0x7f, 0xfb, 0xbf, 0xee, 0xff, 0xbd, 0xf7, 0x7f, 0xfb, 0xff, 0xde,
|
||||||
|
0xfe, 0xff, 0xde, 0xfe, 0xfe, 0xfe, 0x6f, 0xfe, 0xff, 0xff, 0xff, 0xb7, 0xff, 0xdf, 0x7f, 0xff,
|
||||||
|
0xd7, 0xfd, 0xef, 0xff, 0x7d, 0xff, 0xdf, 0xff, 0xf5, 0x7f, 0xf7, 0xff, 0xef, 0xef, 0xe7, 0x7f,
|
||||||
|
0xfb, 0xfb, 0xfe, 0xfd, 0xff, 0xfb, 0xef, 0xfd, 0xdf, 0x7f, 0xff, 0xfb, 0xdf, 0xff, 0x0b, 0x07,
|
||||||
|
0x35, 0xc9, 0x48, 0x92, 0x93, 0x6c, 0x08, 0x93, 0xc4, 0x30, 0x46, 0x99, 0xa1, 0x26, 0x48, 0x8c,
|
||||||
|
0x33, 0xc4, 0x28, 0x0b, 0xd1, 0x34, 0x01, 0xc3, 0x18, 0x64, 0x86, 0x30, 0x4d, 0x90, 0xa6, 0x29,
|
||||||
|
0x49, 0x44, 0xb4, 0x83, 0x5a, 0x9c, 0x37, 0x56, 0x9e, 0x21, 0xcc, 0xd1, 0xd6, 0xe4, 0xc9, 0xfc,
|
||||||
|
0xec, 0xef, 0xf8, 0xe4, 0xc3, 0x19, 0xa4, 0x26, 0xd0, 0x0d, 0x24, 0xd3, 0x47, 0x1f, 0x7e, 0xff,
|
||||||
|
0xff, 0x6f, 0xff, 0xd9, 0xff, 0xbf, 0xe7, 0xff, 0xf9, 0x7f, 0xff, 0xdf, 0xdf, 0xf5, 0xff, 0xfb,
|
||||||
|
|
||||||
|
},
|
||||||
|
{
|
||||||
|
// leekspin: frame 2
|
||||||
|
0xff, 0xbf, 0xfb, 0xef, 0xbf, 0xfb, 0xef, 0xbf, 0xfb, 0xef, 0xbf, 0xfb, 0x6f, 0xff, 0xff, 0xef,
|
||||||
|
0xbf, 0xfb, 0xdf, 0xf7, 0xbf, 0xfb, 0x7f, 0x7f, 0xdb, 0xff, 0xbf, 0xfb, 0xef, 0xff, 0x7f, 0xdf,
|
||||||
|
0xff, 0xf3, 0xbf, 0xef, 0xfb, 0xbf, 0xef, 0xfb, 0xbf, 0xef, 0xfb, 0xbf, 0xef, 0xfb, 0xbf, 0xef,
|
||||||
|
0xfb, 0xbf, 0xef, 0x7b, 0xdf, 0xf7, 0x2f, 0x60, 0xdf, 0x80, 0x2d, 0x57, 0xd0, 0x93, 0x24, 0xfc,
|
||||||
|
0xc3, 0x1b, 0xf4, 0xf7, 0xff, 0xf0, 0xcf, 0xb0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xf9, 0xc1,
|
||||||
|
0xff, 0xfe, 0xf9, 0xe7, 0xcc, 0x91, 0xf7, 0xfc, 0xe3, 0x99, 0x2e, 0xe2, 0xfc, 0x03, 0xec, 0x7c,
|
||||||
|
0x93, 0x2b, 0x6c, 0x95, 0x53, 0xce, 0x39, 0xc4, 0x33, 0x6b, 0xce, 0x90, 0xbf, 0xef, 0xfb, 0xbf,
|
||||||
|
0xef, 0xfb, 0xbf, 0xef, 0xfb, 0xbf, 0xef, 0xfb, 0xbf, 0xef, 0xfb, 0xbf, 0xef, 0xfb, 0xbf, 0xed,
|
||||||
|
0xff, 0xff, 0xee, 0xbb, 0xff, 0x6e, 0xfb, 0xdf, 0x76, 0xff, 0xdd, 0xf7, 0xbf, 0xed, 0xff, 0xff,
|
||||||
|
0xee, 0xff, 0x75, 0xdf, 0xff, 0xf6, 0xdf, 0xff, 0xb7, 0xff, 0xfb, 0xef, 0xfd, 0xb7, 0xff, 0xdb,
|
||||||
|
0xfe, 0x6f, 0xfb, 0xbe, 0xef, 0xfb, 0xbe, 0xef, 0xfb, 0xbe, 0xef, 0xfb, 0xbe, 0xef, 0x7b, 0xde,
|
||||||
|
0xf7, 0x7d, 0xdf, 0xf7, 0xbd, 0xff, 0x00, 0xf7, 0x9c, 0x21, 0x27, 0xd8, 0x46, 0xff, 0x5f, 0x3f,
|
||||||
|
0xa7, 0x9f, 0xcb, 0xcb, 0xef, 0xcb, 0xdf, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
0xef, 0x9f, 0xd7, 0xcf, 0xcb, 0xdf, 0xd7, 0xcf, 0x8f, 0x3f, 0x1f, 0x7f, 0xff, 0xff, 0xff, 0xf0,
|
||||||
|
0x07, 0x73, 0xdc, 0x01, 0x6e, 0x99, 0x73, 0x4e, 0x88, 0xf3, 0x1e, 0xc0, 0xff, 0x7f, 0xde, 0xf3,
|
||||||
|
0xbf, 0xee, 0xfb, 0xbf, 0xee, 0xfb, 0xbf, 0xee, 0xfb, 0xbf, 0xee, 0x7b, 0xdf, 0xf6, 0xbf, 0xed,
|
||||||
|
0xff, 0xff, 0x76, 0xdf, 0xfd, 0xb7, 0xff, 0xed, 0xbf, 0xfb, 0x6e, 0xff, 0xbd, 0xef, 0xfe, 0xf7,
|
||||||
|
0xbf, 0xfd, 0xf7, 0xdf, 0x7f, 0xff, 0xb7, 0xfc, 0xef, 0xff, 0xf7, 0xbf, 0xfa, 0xdf, 0xfd, 0xef,
|
||||||
|
0x7b, 0xff, 0xed, 0x7f, 0xde, 0xfb, 0xef, 0xbe, 0xfb, 0xdf, 0xf6, 0x7f, 0xdd, 0xf7, 0xbf, 0xed,
|
||||||
|
0xff, 0xbb, 0xef, 0x7e, 0xdb, 0xff, 0x76, 0xc0, 0x1d, 0x77, 0x00, 0x7f, 0xc0, 0xff, 0xfe, 0xff,
|
||||||
|
0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xef, 0x3f, 0xc0,
|
||||||
|
0xbb, 0x37, 0x04, 0xf0, 0xce, 0x39, 0x07, 0x70, 0xdd, 0x86, 0xf2, 0x7f, 0xdf, 0xf7, 0xfd, 0xbf,
|
||||||
|
0xef, 0x79, 0xff, 0xef, 0xfd, 0xdf, 0x7b, 0xef, 0xbf, 0xfd, 0xff, 0xfb, 0xdf, 0xf6, 0xbf, 0xed,
|
||||||
|
0xff, 0xff, 0xef, 0x7d, 0xff, 0xfb, 0xdf, 0xfd, 0xff, 0x6f, 0xfb, 0xbf, 0xfd, 0xef, 0x7e, 0xf7,
|
||||||
|
0xbf, 0xee, 0xfb, 0x7f, 0xdf, 0xfb, 0xbf, 0xfd, 0xef, 0xfe, 0xdf, 0xfb, 0xef, 0xfe, 0xbf, 0xed,
|
||||||
|
0xff, 0xf7, 0xbd, 0xff, 0x6f, 0xfb, 0xfe, 0xdf, 0xf7, 0xfd, 0xbf, 0xfb, 0x6f, 0xfe, 0xf7, 0xff,
|
||||||
|
0xdd, 0x7f, 0xfb, 0xef, 0xfd, 0xdf, 0x7b, 0xff, 0xe4, 0x09, 0xc9, 0xb6, 0x36, 0x4b, 0x47, 0x9f,
|
||||||
|
0x1f, 0x3f, 0x3f, 0x7f, 0x7f, 0xff, 0xfe, 0xfe, 0xff, 0xfd, 0xff, 0xfe, 0xfd, 0xff, 0xfd, 0xff,
|
||||||
|
0xfe, 0xff, 0xfe, 0xff, 0xff, 0xff, 0x7f, 0xff, 0x3f, 0x3f, 0x9f, 0xdf, 0x0d, 0xa3, 0x3a, 0x4c,
|
||||||
|
0xe3, 0x18, 0x17, 0x06, 0x60, 0xd8, 0xcf, 0x33, 0xd8, 0xfe, 0xef, 0x7b, 0xdf, 0xff, 0x7f, 0xfd,
|
||||||
|
0xfd, 0xf7, 0xdf, 0xff, 0xbe, 0xfb, 0xff, 0xb7, 0xdf, 0xfd, 0xff, 0x6e, 0xff, 0xdd, 0xf7, 0xbe,
|
||||||
|
0xff, 0xff, 0xdd, 0xff, 0xef, 0x7b, 0xfe, 0xbf, 0xef, 0x7b, 0xff, 0xbd, 0x37, 0xff, 0xfb, 0x7f,
|
||||||
|
0xf7, 0xfd, 0xef, 0xff, 0xbb, 0xff, 0xf7, 0xfe, 0xdb, 0xff, 0xee, 0xff, 0xfb, 0xbe, 0xff, 0xef,
|
||||||
|
0xfb, 0x7e, 0xdf, 0xf7, 0xff, 0xbd, 0xff, 0xee, 0xff, 0xdb, 0xff, 0xf7, 0x7f, 0xff, 0xf7, 0xbe,
|
||||||
|
0xff, 0x77, 0xff, 0xbb, 0xfe, 0xff, 0xff, 0xb7, 0xff, 0x00, 0xb6, 0xed, 0x09, 0x02, 0x64, 0x81,
|
||||||
|
0x0c, 0x31, 0xc5, 0x48, 0x02, 0x24, 0x98, 0x62, 0x24, 0x05, 0x89, 0x21, 0x05, 0xff, 0xfb, 0x6d,
|
||||||
|
0x3d, 0x9d, 0x17, 0x1c, 0x4d, 0x07, 0x26, 0x80, 0x11, 0x41, 0x84, 0xb0, 0x66, 0x19, 0x0b, 0x82,
|
||||||
|
0x10, 0x64, 0x09, 0x90, 0xc6, 0x3b, 0x08, 0xf6, 0xff, 0xbf, 0xfb, 0xef, 0xff, 0xdd, 0xff, 0xbb,
|
||||||
|
0xff, 0x77, 0xf7, 0xbf, 0xfb, 0xfe, 0xb7, 0xff, 0xdf, 0xfd, 0xef, 0x7f, 0xdd, 0xf7, 0xff, 0x6d,
|
||||||
|
0xff, 0xff, 0x7b, 0xfe, 0xdf, 0xf7, 0xf7, 0x7d, 0xe9, 0xbe, 0xfe, 0xff, 0xff, 0xfd, 0xff, 0xf7,
|
||||||
|
0xfd, 0xcf, 0xff, 0x7f, 0xef, 0xbe, 0xfb, 0xdf, 0xbd, 0xbf, 0xbb, 0xbe, 0xff, 0xbf, 0xef, 0x7d,
|
||||||
|
0x77, 0xff, 0xff, 0xdb, 0xfe, 0xff, 0xef, 0x7b, 0xfe, 0xff, 0xbf, 0xfd, 0xef, 0xff, 0xfb, 0xef,
|
||||||
|
0xff, 0x7b, 0xff, 0xff, 0xfe, 0xbf, 0xef, 0xff, 0xd8, 0x03, 0xbd, 0x64, 0x00, 0x89, 0xa8, 0x22,
|
||||||
|
0x1c, 0xe1, 0x08, 0x56, 0x90, 0x20, 0x04, 0x90, 0x02, 0x20, 0x04, 0x10, 0x41, 0x03, 0x88, 0x20,
|
||||||
|
0x04, 0x40, 0x08, 0x81, 0x30, 0x02, 0x10, 0xc4, 0x30, 0x8e, 0x21, 0x08, 0x22, 0xc1, 0x18, 0xc0,
|
||||||
|
0x31, 0x0c, 0x60, 0x98, 0xc2, 0x23, 0x0c, 0x5f, 0xff, 0xfb, 0xef, 0xfe, 0x77, 0xfd, 0xff, 0xdb,
|
||||||
|
0xff, 0x6f, 0xfb, 0xbf, 0xfd, 0xef, 0xff, 0xdb, 0xfe, 0x7f, 0xf7, 0xdf, 0xfd, 0xef, 0xfb, 0xbf,
|
||||||
|
0xff, 0xff, 0xff, 0xf7, 0xff, 0xdd, 0xff, 0xef, 0xff, 0x7b, 0xff, 0xde, 0xff, 0xff, 0x7b, 0xff,
|
||||||
|
0xf7, 0xff, 0xef, 0xef, 0xde, 0x73, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
0xff, 0xfe, 0xfe, 0xff, 0x89, 0xbf, 0xff, 0xbf, 0xf7, 0x7f, 0x7d, 0xff, 0xef, 0x7e, 0xff, 0xfb,
|
||||||
|
0xdf, 0xff, 0xef, 0x7d, 0x1f, 0x97, 0xa7, 0x21, 0x1c, 0xd0, 0x23, 0x0a, 0x40, 0x14, 0xa4, 0x93,
|
||||||
|
0x99, 0x24, 0x62, 0x8a, 0x19, 0x51, 0x46, 0xb0, 0x8c, 0x43, 0x18, 0xc4, 0x30, 0x26, 0xc4, 0x18,
|
||||||
|
0xc9, 0x26, 0x98, 0x41, 0x4c, 0xb3, 0x80, 0x0d, 0x02, 0x70, 0x88, 0x23, 0xc4, 0x10, 0x96, 0x64,
|
||||||
|
0x09, 0x93, 0x24, 0x68, 0x44, 0x95, 0x89, 0x6a, 0x10, 0xc7, 0x3f, 0xfb, 0xff, 0xff, 0x6e, 0xfb,
|
||||||
|
0xbf, 0xff, 0xfb, 0xef, 0xff, 0x76, 0xff, 0x9f, 0xfd, 0xdf, 0xff, 0xbb, 0xee, 0xff, 0x3d, 0xff,
|
||||||
|
0xff, 0xff, 0xde, 0xfb, 0xff, 0xff, 0xef, 0xbe, 0xff, 0xff, 0xff, 0x77, 0xfd, 0xff, 0xdf, 0xff,
|
||||||
|
0xfb, 0x7e, 0xdf, 0xf7, 0xff, 0xff, 0xfe, 0xdf, 0xfd, 0xfb, 0xfb, 0xf7, 0xdf, 0xd9, 0xbf, 0xbf,
|
||||||
|
0xd7, 0xf7, 0xfb, 0xfc, 0xff, 0xfb, 0xfb, 0xef, 0xb7, 0x7f, 0xff, 0xf7, 0xff, 0xee, 0x0f, 0x0e,
|
||||||
|
0xae, 0x6f, 0x8c, 0x90, 0x53, 0x8c, 0x28, 0x23, 0x99, 0x48, 0x66, 0x91, 0x19, 0x66, 0x48, 0x92,
|
||||||
|
0x94, 0x65, 0x24, 0x89, 0x69, 0x46, 0x12, 0xc4, 0x88, 0x32, 0x93, 0x4c, 0x48, 0x33, 0x84, 0x32,
|
||||||
|
0xca, 0x0c, 0xb1, 0x22, 0xce, 0x9c, 0x33, 0x96, 0xdf, 0x18, 0xa1, 0xe6, 0xd8, 0xc6, 0xf1, 0xf8,
|
||||||
|
0xee, 0xfd, 0xf9, 0xf2, 0xc2, 0x0c, 0x66, 0x90, 0x93, 0x4c, 0x48, 0x33, 0x87, 0x9f, 0x7f, 0xff,
|
||||||
|
0xff, 0xff, 0xd7, 0x7d, 0xfd, 0xf7, 0xdf, 0xfb, 0xbf, 0xfe, 0x7b, 0xdf, 0xff, 0xf7, 0xf7, 0xfd,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
// leekspin: frame 3
|
||||||
|
0xff, 0xef, 0xbf, 0xfb, 0xef, 0xbf, 0xfb, 0xef, 0xbf, 0xfb, 0x6f, 0xff, 0xdb, 0x7f, 0xff, 0xff,
|
||||||
|
0xbb, 0xef, 0x7f, 0xdb, 0xff, 0xb7, 0xfd, 0x5d, 0x02, 0xb8, 0xc6, 0x12, 0x30, 0xc4, 0x32, 0x4a,
|
||||||
|
0x0c, 0xf1, 0xfd, 0xbf, 0xfb, 0x6d, 0xfb, 0xbb, 0x77, 0x77, 0xbb, 0xef, 0x6f, 0xfb, 0xcf, 0xdf,
|
||||||
|
0xbb, 0x6f, 0x7f, 0xdb, 0xff, 0xf7, 0x0f, 0xe0, 0x3f, 0xc0, 0x0d, 0xb7, 0xe0, 0x0d, 0xa9, 0xf8,
|
||||||
|
0xc7, 0x1d, 0xf0, 0xff, 0xff, 0xf0, 0xc7, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xf1, 0xc6,
|
||||||
|
0xff, 0xf7, 0xf8, 0xf3, 0xcf, 0x90, 0xf7, 0xfc, 0xe3, 0x99, 0x2e, 0xe2, 0xfc, 0x03, 0xfc, 0x78,
|
||||||
|
0x13, 0x27, 0xec, 0x19, 0x53, 0xe6, 0x2d, 0xd8, 0x83, 0x3b, 0xee, 0x00, 0x7f, 0xff, 0xbb, 0xef,
|
||||||
|
0xff, 0xbb, 0xef, 0xff, 0xbb, 0xef, 0xff, 0xbb, 0xef, 0xff, 0xbb, 0xef, 0x7f, 0xdb, 0xff, 0xb7,
|
||||||
|
0xff, 0xfb, 0x6f, 0xfe, 0xdb, 0x7f, 0xf6, 0xdf, 0xfd, 0xb7, 0xff, 0x6d, 0xff, 0xdb, 0xff, 0xf7,
|
||||||
|
0xff, 0xfd, 0x9f, 0xfb, 0xf7, 0xff, 0xbb, 0x00, 0x66, 0x99, 0x4c, 0x63, 0x99, 0x8c, 0x63, 0x7c,
|
||||||
|
0x1f, 0xce, 0x26, 0x35, 0xc9, 0x0b, 0x30, 0x4c, 0x83, 0xb0, 0xfc, 0x6f, 0xef, 0xdb, 0xbf, 0x6e,
|
||||||
|
0x7b, 0xdf, 0xf7, 0xbe, 0xee, 0xfd, 0x00, 0xd9, 0x7b, 0x02, 0x86, 0x7c, 0x09, 0xff, 0x5f, 0x3f,
|
||||||
|
0xa7, 0x9f, 0xcb, 0xcb, 0xef, 0xcb, 0xdb, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
0xef, 0x9f, 0xd7, 0xcf, 0xcb, 0xdf, 0xd7, 0xcf, 0x8f, 0x3f, 0x1f, 0x7f, 0xff, 0xff, 0xfb, 0x72,
|
||||||
|
0x87, 0xb9, 0x6c, 0x03, 0x3b, 0xcc, 0xd3, 0x36, 0x88, 0xdb, 0x75, 0x84, 0xff, 0xfb, 0xef, 0xbe,
|
||||||
|
0xfb, 0xef, 0xfe, 0x7b, 0xef, 0xfe, 0xdb, 0xff, 0xb6, 0xff, 0xed, 0xbf, 0xfb, 0x6f, 0xfe, 0xdb,
|
||||||
|
0xff, 0xff, 0x77, 0xfd, 0xef, 0x7b, 0xff, 0xb6, 0xff, 0xed, 0x7f, 0xfb, 0xdf, 0xfe, 0xb7, 0xff,
|
||||||
|
0xee, 0xfe, 0xb7, 0xff, 0x7f, 0xef, 0xf9, 0x02, 0x66, 0x99, 0x92, 0x66, 0x49, 0x98, 0xa6, 0xb1,
|
||||||
|
0xcd, 0xe4, 0xf3, 0xf9, 0xbc, 0xef, 0xfd, 0xde, 0x77, 0xff, 0xed, 0xbb, 0xfb, 0xf6, 0x6f, 0x1f,
|
||||||
|
0x37, 0x4e, 0xce, 0x31, 0x93, 0x63, 0x4c, 0x84, 0x32, 0x59, 0x45, 0x22, 0xaa, 0xc8, 0xfe, 0xff,
|
||||||
|
0xf7, 0xf7, 0xdf, 0x7f, 0x3f, 0x3f, 0x7f, 0x7f, 0x3f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
|
||||||
|
0x7f, 0x3f, 0x7f, 0x7f, 0x3f, 0x3f, 0x77, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xef, 0x3f, 0xc4,
|
||||||
|
0xdd, 0x33, 0x82, 0xc8, 0x3f, 0x32, 0x82, 0xec, 0x33, 0x86, 0xf8, 0x7f, 0xf7, 0xdd, 0xff, 0xbb,
|
||||||
|
0xee, 0x7f, 0xdd, 0xf7, 0xff, 0xee, 0xbb, 0xff, 0xf7, 0xbf, 0xfe, 0xff, 0xed, 0xbf, 0xfb, 0x6e,
|
||||||
|
0xff, 0xff, 0xbf, 0xed, 0xff, 0xff, 0xb7, 0xff, 0xfd, 0xdf, 0xf7, 0xff, 0x6e, 0xfb, 0xff, 0xb7,
|
||||||
|
0xfe, 0xef, 0x7d, 0xf7, 0xbf, 0xfd, 0xdf, 0xf0, 0x06, 0x99, 0xe4, 0x26, 0xff, 0xfd, 0xdf, 0xff,
|
||||||
|
0xf6, 0xbf, 0xff, 0xee, 0xfb, 0x7f, 0xdd, 0xff, 0x37, 0x9f, 0xce, 0x27, 0x31, 0xcc, 0x62, 0x9b,
|
||||||
|
0x89, 0x26, 0xb2, 0x98, 0x71, 0x46, 0x9e, 0x1d, 0x70, 0x86, 0x89, 0x33, 0x94, 0x87, 0x2f, 0x4f,
|
||||||
|
0x1f, 0xbf, 0x3f, 0x7f, 0x7e, 0xf9, 0xe4, 0x60, 0xdb, 0xd8, 0xc6, 0xf8, 0xc9, 0xda, 0xf2, 0xcc,
|
||||||
|
0xc8, 0xf3, 0xf4, 0xe0, 0xfb, 0xf8, 0xfe, 0x7f, 0x7f, 0x3f, 0x9f, 0x5f, 0x0f, 0xc9, 0x72, 0x0e,
|
||||||
|
0xe1, 0x3c, 0x06, 0x09, 0x61, 0xb4, 0xd7, 0x4c, 0xf1, 0xbf, 0xff, 0xfd, 0xe7, 0xbf, 0xff, 0x7d,
|
||||||
|
0xf7, 0xff, 0xed, 0xff, 0xfe, 0xcf, 0xff, 0xbe, 0xf7, 0xdd, 0xff, 0xef, 0xfe, 0x7b, 0xdf, 0xf7,
|
||||||
|
0xff, 0xff, 0x7b, 0xdf, 0xfe, 0xfb, 0xdf, 0xfd, 0xef, 0xfe, 0xf7, 0xdf, 0xfb, 0xff, 0x76, 0xff,
|
||||||
|
0xef, 0xfd, 0xff, 0xf7, 0xdf, 0x7d, 0xff, 0xff, 0xb0, 0xbf, 0xff, 0xff, 0xf6, 0x9f, 0xff, 0xfb,
|
||||||
|
0xfe, 0xdf, 0xf7, 0xfd, 0x9f, 0xef, 0xf1, 0xf4, 0x66, 0xc9, 0xfc, 0xf3, 0xf9, 0xfc, 0xb6, 0xf8,
|
||||||
|
0xf1, 0xf6, 0xdc, 0xf1, 0xf2, 0xee, 0xf1, 0xf4, 0x64, 0x01, 0xb4, 0x26, 0x49, 0x10, 0x24, 0x81,
|
||||||
|
0x12, 0x94, 0x65, 0x08, 0x02, 0x64, 0x18, 0x42, 0x24, 0x19, 0x01, 0x85, 0x21, 0xbf, 0xff, 0x6d,
|
||||||
|
0x5d, 0x37, 0x1d, 0x1d, 0x86, 0x26, 0x07, 0x10, 0x40, 0x09, 0x21, 0xd2, 0x4c, 0x19, 0x42, 0x13,
|
||||||
|
0x40, 0x4c, 0x11, 0xc0, 0x0e, 0xbb, 0x80, 0xfe, 0xff, 0x6f, 0xfb, 0xbe, 0xf7, 0xdf, 0xfb, 0xff,
|
||||||
|
0xbd, 0xef, 0xfb, 0xff, 0xbd, 0xef, 0xfb, 0xff, 0xdf, 0xfb, 0xef, 0x7e, 0xf7, 0xbf, 0xff, 0x6d,
|
||||||
|
0xff, 0xff, 0xef, 0xfb, 0xbf, 0xfe, 0xef, 0x7b, 0xfe, 0xdf, 0xff, 0xf6, 0xdf, 0x7f, 0xf7, 0xdf,
|
||||||
|
0xfe, 0xfb, 0xdf, 0x77, 0xff, 0xef, 0xfd, 0xff, 0x6f, 0xfc, 0xa7, 0xbf, 0xff, 0xff, 0xd9, 0xdf,
|
||||||
|
0xbe, 0xbf, 0x77, 0x7e, 0xff, 0xdf, 0xfb, 0xfc, 0x7f, 0xdf, 0xff, 0xff, 0xbe, 0xfb, 0xff, 0xfd,
|
||||||
|
0xdf, 0xfe, 0xff, 0x7b, 0xfe, 0xbf, 0xff, 0xef, 0xd9, 0x11, 0xef, 0x28, 0x00, 0x41, 0x4c, 0x31,
|
||||||
|
0xc4, 0x0c, 0x68, 0x93, 0x10, 0x64, 0x01, 0x10, 0x04, 0x41, 0x10, 0x04, 0x00, 0x43, 0x11, 0x00,
|
||||||
|
0x88, 0x22, 0x00, 0x48, 0x82, 0x90, 0x11, 0xc4, 0x30, 0x0d, 0x43, 0x10, 0x24, 0xc1, 0x10, 0xb4,
|
||||||
|
0x81, 0x68, 0x24, 0x90, 0x4a, 0x2b, 0x80, 0x3f, 0xff, 0xdb, 0xff, 0xf7, 0xfd, 0xbf, 0xee, 0xff,
|
||||||
|
0x7b, 0xef, 0xbe, 0xff, 0xed, 0x7f, 0xf6, 0xbf, 0xfb, 0xfe, 0x6f, 0xff, 0xdb, 0xff, 0xfd, 0x6f,
|
||||||
|
0xff, 0xff, 0xfb, 0xfe, 0xef, 0xff, 0xbd, 0xff, 0xf7, 0xff, 0xbd, 0xff, 0xef, 0xff, 0xdf, 0xfe,
|
||||||
|
0xff, 0xbd, 0xff, 0xdf, 0xff, 0xff, 0xf7, 0x9c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
0xff, 0xf9, 0xdf, 0x5f, 0xe6, 0xfd, 0xff, 0xff, 0xf7, 0xbf, 0xfb, 0xff, 0xfd, 0xdf, 0xfe, 0xff,
|
||||||
|
0xf7, 0xbd, 0xff, 0x5f, 0x37, 0x9f, 0x47, 0x61, 0x9c, 0x10, 0x63, 0x06, 0xc0, 0x09, 0x64, 0x93,
|
||||||
|
0x18, 0x66, 0x82, 0x59, 0x11, 0xa6, 0xa4, 0x19, 0x42, 0x32, 0x8c, 0x44, 0x20, 0x98, 0x47, 0x68,
|
||||||
|
0x08, 0xd2, 0x93, 0x24, 0x8c, 0x70, 0x02, 0x0d, 0xc0, 0x32, 0x08, 0xe1, 0x82, 0x0a, 0x3a, 0xc0,
|
||||||
|
0x16, 0x44, 0x61, 0x19, 0x46, 0xc8, 0x31, 0x06, 0xd8, 0x43, 0x3f, 0xfe, 0xff, 0xf7, 0xbd, 0xff,
|
||||||
|
0xdb, 0xff, 0xf7, 0xff, 0xfd, 0xbf, 0xef, 0xef, 0xff, 0x6d, 0xff, 0xf7, 0xfe, 0xfb, 0xaf, 0xff,
|
||||||
|
0xff, 0xff, 0xbe, 0xef, 0xfd, 0xff, 0xff, 0xdf, 0xfd, 0xff, 0x7f, 0xfb, 0xdf, 0xfe, 0xef, 0xfd,
|
||||||
|
0x7f, 0xff, 0xdb, 0xff, 0xfd, 0xdf, 0xfe, 0x7e, 0xfb, 0xef, 0xef, 0xdf, 0x9f, 0xff, 0xdf, 0xdf,
|
||||||
|
0x6f, 0xef, 0xf3, 0xfc, 0xfd, 0xff, 0xf7, 0xef, 0xbf, 0x7d, 0xff, 0xfe, 0xef, 0xdf, 0x1b, 0x26,
|
||||||
|
0x27, 0xc9, 0x98, 0x12, 0x63, 0x2c, 0x82, 0x5a, 0x41, 0x94, 0x93, 0x2c, 0x20, 0xd3, 0x8c, 0x24,
|
||||||
|
0x53, 0x48, 0x25, 0xb4, 0x83, 0x28, 0x24, 0xc5, 0x11, 0x52, 0x8c, 0x20, 0x9b, 0xa0, 0x26, 0x59,
|
||||||
|
0x82, 0x2a, 0x68, 0x86, 0x99, 0x5c, 0x37, 0x96, 0x5e, 0xb1, 0x84, 0xcc, 0xf1, 0xc6, 0xc9, 0xf8,
|
||||||
|
0xfe, 0xed, 0xf8, 0xeb, 0xc2, 0x14, 0x51, 0x4d, 0xa4, 0x92, 0x18, 0x63, 0x47, 0x9f, 0x3f, 0xff,
|
||||||
|
0xff, 0xff, 0xf7, 0xdc, 0xff, 0xbb, 0xff, 0xf6, 0xdf, 0x7f, 0xff, 0xde, 0xf7, 0xff, 0xfb, 0xfe
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
if(timer_elapsed(anim_timer) > ANIM_FRAME_DURATION) {
|
||||||
|
anim_timer = timer_read();
|
||||||
|
current_anim_frame = (current_anim_frame + 1) % ANIM_TOTAL_FRAMES;
|
||||||
|
oled_write_raw_P(frame[abs((ANIM_NUM_FRAMES-1)-current_anim_frame)], 1024);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void oled_task_user(void) {
|
||||||
|
if (is_keyboard_master()) {
|
||||||
|
render_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc)
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
render_logo();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
# Obosob's keymap for Arch-36
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
EXTRAKEY_ENABLE = no # Audio control and System control
|
||||||
|
UNICODE_ENABLE = no # Unicode
|
||||||
|
LTO_ENABLE = yes
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
# Arch-36
|
||||||
|
|
||||||
|
An ergonomic 30% split keyboard
|
||||||
|
|
||||||
|
* Keyboard Maintainer: [obosob](https://github.com/obosob)
|
||||||
|
* Hardware Supported: Pro Micro 5V/16MHz and compatible.
|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make arch_36:default
|
||||||
|
|
||||||
|
Example of flashing this keyboard:
|
||||||
|
|
||||||
|
make arch_36: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).
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
# MCU name
|
||||||
|
MCU = atmega32u4
|
||||||
|
|
||||||
|
# Bootloader selection
|
||||||
|
BOOTLOADER = caterina
|
||||||
|
|
||||||
|
# Build Options
|
||||||
|
# change yes to no to disable
|
||||||
|
#
|
||||||
|
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
|
||||||
|
MOUSEKEY_ENABLE = no # Mouse keys
|
||||||
|
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||||
|
CONSOLE_ENABLE = no # Console for debug
|
||||||
|
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||||
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
|
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||||
|
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
|
NKRO_ENABLE = no # USB Nkey Rollover
|
||||||
|
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||||
|
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
|
||||||
|
OLED_DRIVER_ENABLE = yes # Enables the use of OLED displays
|
||||||
|
BLUETOOTH_ENABLE = no # Enable Bluetooth
|
||||||
|
AUDIO_ENABLE = no # Audio output
|
||||||
|
SPLIT_KEYBOARD = yes # Split common
|
||||||
|
|
||||||
|
LAYOUTS = split_3x5_3
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
/* Copyright 2020 sh_xguitar
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General 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 "ash_xiix.h"
|
||||||
|
|
||||||
|
bool led_update_kb(led_t led_state) {
|
||||||
|
if (led_update_user(led_state)) {
|
||||||
|
writePin(NUM_LOCK_LED_PIN, led_state.num_lock);
|
||||||
|
writePin(CAPS_LOCK_LED_PIN, led_state.caps_lock);
|
||||||
|
writePin(SCROLL_LOCK_LED_PIN, led_state.scroll_lock);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
/* Copyright 2020 sh_xguitar
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "quantum.h"
|
||||||
|
|
||||||
|
/* This a shortcut to help you visually see your layout.
|
||||||
|
*
|
||||||
|
* The first section contains all of the arguments representing the physical
|
||||||
|
* layout of the board and position of the keys.
|
||||||
|
*
|
||||||
|
* The second converts the arguments into a two-dimensional array which
|
||||||
|
* represents the switch matrix.
|
||||||
|
*/
|
||||||
|
#define LAYOUT_all( \
|
||||||
|
k00, k01, k02, k03, k60, k61, k62, k63, k04, k05, k06, k07, k08, k54, k55, k56, k57, \
|
||||||
|
k64, k65, k66, k67, \
|
||||||
|
k10, k11, k12, k13, k70, k71, k72, k73, k14, k15, k16, k17, k18, k19, k74, k75, k76, k77, \
|
||||||
|
k20, k21, k22, k23, k80, k81, k82, k83, k24, k25, k26, k27, k28, k29, k84, k85, k86, k87, \
|
||||||
|
k30, k31, k32, k33, k90, k91, k92, k93, k34, k35, k36, k37, k38, k94, k95, k96, k97, \
|
||||||
|
k40, k41, k42, k43, ka0, ka1, ka2, ka3, k44, k45, k46, k47, k48, ka9, ka4, ka5, ka6, ka7, \
|
||||||
|
k50, k51, k52, k53, kb4, kb7, ka8, kb8, kb9, kb5, kb6 \
|
||||||
|
) \
|
||||||
|
{ \
|
||||||
|
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, KC_NO }, \
|
||||||
|
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19 }, \
|
||||||
|
{ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29 }, \
|
||||||
|
{ k30, k31, k32, k33, k34, k35, k36, k37, k38, KC_NO }, \
|
||||||
|
{ k40, k41, k42, k43, k44, k45, k46, k47, k48, KC_NO }, \
|
||||||
|
{ k50, k51, k52, k53, k54, k55, k56, k57, KC_NO, KC_NO }, \
|
||||||
|
{ k60, k61, k62, k63, k64, k65, k66, k67, KC_NO, KC_NO }, \
|
||||||
|
{ k70, k71, k72, k73, k74, k75, k76, k77, KC_NO, KC_NO }, \
|
||||||
|
{ k80, k81, k82, k83, k84, k85, k86, k87, KC_NO, KC_NO }, \
|
||||||
|
{ k90, k91, k92, k93, k94, k95, k96, k97, KC_NO, KC_NO }, \
|
||||||
|
{ ka0, ka1, ka2, ka3, ka4, ka5, ka6, ka7, ka8, ka9 }, \
|
||||||
|
{ KC_NO, KC_NO, KC_NO, KC_NO, kb4, kb5, kb6, kb7, kb8, kb9 } \
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,56 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2020 sh_xguitar
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General 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 "config_common.h"
|
||||||
|
|
||||||
|
/* USB Device descriptor parameter */
|
||||||
|
#define VENDOR_ID 0xFEED
|
||||||
|
#define PRODUCT_ID 0x14BC
|
||||||
|
#define DEVICE_VER 0x0001
|
||||||
|
#define MANUFACTURER ASH
|
||||||
|
#define PRODUCT XIIX
|
||||||
|
|
||||||
|
/* key matrix size */
|
||||||
|
#define MATRIX_ROWS 12
|
||||||
|
#define MATRIX_COLS 10
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Keyboard Matrix Assignments
|
||||||
|
*
|
||||||
|
* Change this to how you wired your keyboard
|
||||||
|
* COLS: AVR pins used for columns, left to right
|
||||||
|
* ROWS: AVR pins used for rows, top to bottom
|
||||||
|
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
|
||||||
|
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#define MATRIX_ROW_PINS { C6, B6, B5, B4, D7, D0, D1, D2, D3, D5, D4, D6 }
|
||||||
|
#define MATRIX_COL_PINS { F1, F4, F5, F6, B0, B2, B1, B3, B7, C7 }
|
||||||
|
#define UNUSED_PINS
|
||||||
|
|
||||||
|
#define NUM_LOCK_LED_PIN E6
|
||||||
|
#define CAPS_LOCK_LED_PIN F0
|
||||||
|
#define SCROLL_LOCK_LED_PIN F7
|
||||||
|
|
||||||
|
/* COL2ROW, ROW2COL*/
|
||||||
|
#define DIODE_DIRECTION COL2ROW
|
||||||
|
|
||||||
|
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||||
|
#define DEBOUNCE 5
|
||||||
|
|
||||||
|
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||||
|
#define LOCKING_SUPPORT_ENABLE
|
||||||
|
#define LOCKING_RESYNC_ENABLE
|
||||||
@@ -0,0 +1,540 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "ASH-XIIX",
|
||||||
|
"url": "config.qmk.fm",
|
||||||
|
"maintainer": "qmk",
|
||||||
|
"width": 19.5,
|
||||||
|
"height": 7.25,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT_all": {
|
||||||
|
"layout": [
|
||||||
|
{
|
||||||
|
"label": "Esc",
|
||||||
|
"x": 0,
|
||||||
|
"y": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "F1",
|
||||||
|
"x": 1.25,
|
||||||
|
"y": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "F2",
|
||||||
|
"x": 2.25,
|
||||||
|
"y": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "F3",
|
||||||
|
"x": 3.25,
|
||||||
|
"y": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "F4",
|
||||||
|
"x": 4.25,
|
||||||
|
"y": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "F5",
|
||||||
|
"x": 5.5,
|
||||||
|
"y": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "F6",
|
||||||
|
"x": 6.5,
|
||||||
|
"y": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "F7",
|
||||||
|
"x": 7.5,
|
||||||
|
"y": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "F8",
|
||||||
|
"x": 8.5,
|
||||||
|
"y": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "F9",
|
||||||
|
"x": 9.75,
|
||||||
|
"y": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "F10",
|
||||||
|
"x": 10.75,
|
||||||
|
"y": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "F11",
|
||||||
|
"x": 11.75,
|
||||||
|
"y": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "F12",
|
||||||
|
"x": 12.75,
|
||||||
|
"y": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Insert",
|
||||||
|
"x": 15.5,
|
||||||
|
"y": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Home",
|
||||||
|
"x": 16.5,
|
||||||
|
"y": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "PgUp",
|
||||||
|
"x": 17.5,
|
||||||
|
"y": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "PrtSc",
|
||||||
|
"x": 18.5,
|
||||||
|
"y": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Del",
|
||||||
|
"x": 15.5,
|
||||||
|
"y": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "End",
|
||||||
|
"x": 16.5,
|
||||||
|
"y": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "PgDn",
|
||||||
|
"x": 17.5,
|
||||||
|
"y": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Scroll Lock",
|
||||||
|
"x": 18.5,
|
||||||
|
"y": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "~",
|
||||||
|
"x": 0,
|
||||||
|
"y": 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "!",
|
||||||
|
"x": 1,
|
||||||
|
"y": 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "@",
|
||||||
|
"x": 2,
|
||||||
|
"y": 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "#",
|
||||||
|
"x": 3,
|
||||||
|
"y": 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "$",
|
||||||
|
"x": 4,
|
||||||
|
"y": 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "%",
|
||||||
|
"x": 5,
|
||||||
|
"y": 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "^",
|
||||||
|
"x": 6,
|
||||||
|
"y": 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "&",
|
||||||
|
"x": 7,
|
||||||
|
"y": 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "",
|
||||||
|
"x": 8,
|
||||||
|
"y": 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "(",
|
||||||
|
"x": 9,
|
||||||
|
"y": 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": ")",
|
||||||
|
"x": 10,
|
||||||
|
"y": 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "_",
|
||||||
|
"x": 11,
|
||||||
|
"y": 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "+",
|
||||||
|
"x": 12,
|
||||||
|
"y": 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Backspace",
|
||||||
|
"x": 13,
|
||||||
|
"y": 2,
|
||||||
|
"w": 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Num Lock",
|
||||||
|
"x": 15.5,
|
||||||
|
"y": 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "/",
|
||||||
|
"x": 16.5,
|
||||||
|
"y": 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"x": 17.5,
|
||||||
|
"y": 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Pause",
|
||||||
|
"x": 18.5,
|
||||||
|
"y": 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Tab",
|
||||||
|
"x": 0,
|
||||||
|
"y": 3,
|
||||||
|
"w": 1.5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Q",
|
||||||
|
"x": 1.5,
|
||||||
|
"y": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "W",
|
||||||
|
"x": 2.5,
|
||||||
|
"y": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "E",
|
||||||
|
"x": 3.5,
|
||||||
|
"y": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "R",
|
||||||
|
"x": 4.5,
|
||||||
|
"y": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "T",
|
||||||
|
"x": 5.5,
|
||||||
|
"y": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Y",
|
||||||
|
"x": 6.5,
|
||||||
|
"y": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "U",
|
||||||
|
"x": 7.5,
|
||||||
|
"y": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "I",
|
||||||
|
"x": 8.5,
|
||||||
|
"y": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "O",
|
||||||
|
"x": 9.5,
|
||||||
|
"y": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "P",
|
||||||
|
"x": 10.5,
|
||||||
|
"y": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "{",
|
||||||
|
"x": 11.5,
|
||||||
|
"y": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "}",
|
||||||
|
"x": 12.5,
|
||||||
|
"y": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "|",
|
||||||
|
"x": 13.5,
|
||||||
|
"y": 3,
|
||||||
|
"w": 1.5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "7",
|
||||||
|
"x": 15.5,
|
||||||
|
"y": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "8",
|
||||||
|
"x": 16.5,
|
||||||
|
"y": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "9",
|
||||||
|
"x": 17.5,
|
||||||
|
"y": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "-",
|
||||||
|
"x": 18.5,
|
||||||
|
"y": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Caps Lock",
|
||||||
|
"x": 0,
|
||||||
|
"y": 4,
|
||||||
|
"w": 1.75
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "A",
|
||||||
|
"x": 1.75,
|
||||||
|
"y": 4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "S",
|
||||||
|
"x": 2.75,
|
||||||
|
"y": 4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "D",
|
||||||
|
"x": 3.75,
|
||||||
|
"y": 4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "F",
|
||||||
|
"x": 4.75,
|
||||||
|
"y": 4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "G",
|
||||||
|
"x": 5.75,
|
||||||
|
"y": 4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "H",
|
||||||
|
"x": 6.75,
|
||||||
|
"y": 4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "J",
|
||||||
|
"x": 7.75,
|
||||||
|
"y": 4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "K",
|
||||||
|
"x": 8.75,
|
||||||
|
"y": 4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "L",
|
||||||
|
"x": 9.75,
|
||||||
|
"y": 4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": ":",
|
||||||
|
"x": 10.75,
|
||||||
|
"y": 4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "\"",
|
||||||
|
"x": 11.75,
|
||||||
|
"y": 4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Enter",
|
||||||
|
"x": 12.75,
|
||||||
|
"y": 4,
|
||||||
|
"w": 2.25
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "4",
|
||||||
|
"x": 15.5,
|
||||||
|
"y": 4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "5",
|
||||||
|
"x": 16.5,
|
||||||
|
"y": 4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "6",
|
||||||
|
"x": 17.5,
|
||||||
|
"y": 4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "+",
|
||||||
|
"x": 18.5,
|
||||||
|
"y": 4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Shift",
|
||||||
|
"x": 0,
|
||||||
|
"y": 5,
|
||||||
|
"w": 1.25
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "ISO1",
|
||||||
|
"x": 1.25,
|
||||||
|
"y": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Z",
|
||||||
|
"x": 2.25,
|
||||||
|
"y": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "X",
|
||||||
|
"x": 3.25,
|
||||||
|
"y": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "C",
|
||||||
|
"x": 4.25,
|
||||||
|
"y": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "V",
|
||||||
|
"x": 5.25,
|
||||||
|
"y": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "B",
|
||||||
|
"x": 6.25,
|
||||||
|
"y": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "N",
|
||||||
|
"x": 7.25,
|
||||||
|
"y": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "M",
|
||||||
|
"x": 8.25,
|
||||||
|
"y": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "<",
|
||||||
|
"x": 9.25,
|
||||||
|
"y": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": ">",
|
||||||
|
"x": 10.25,
|
||||||
|
"y": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "?",
|
||||||
|
"x": 11.25,
|
||||||
|
"y": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Shift",
|
||||||
|
"x": 12.25,
|
||||||
|
"y": 5,
|
||||||
|
"w": 1.75
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "up",
|
||||||
|
"x": 14.25,
|
||||||
|
"y": 5.25
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "1",
|
||||||
|
"x": 15.5,
|
||||||
|
"y": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "2",
|
||||||
|
"x": 16.5,
|
||||||
|
"y": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "3",
|
||||||
|
"x": 17.5,
|
||||||
|
"y": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Enter",
|
||||||
|
"x": 18.5,
|
||||||
|
"y": 5,
|
||||||
|
"h": 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Ctrl",
|
||||||
|
"x": 0,
|
||||||
|
"y": 6,
|
||||||
|
"w": 1.25
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "OS",
|
||||||
|
"x": 1.25,
|
||||||
|
"y": 6,
|
||||||
|
"w": 1.25
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Alt",
|
||||||
|
"x": 2.5,
|
||||||
|
"y": 6,
|
||||||
|
"w": 1.25
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"x": 3.75,
|
||||||
|
"y": 6,
|
||||||
|
"w": 6.25
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Alt",
|
||||||
|
"x": 10,
|
||||||
|
"y": 6,
|
||||||
|
"w": 1.5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Ctrl",
|
||||||
|
"x": 11.5,
|
||||||
|
"y": 6,
|
||||||
|
"w": 1.5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "left",
|
||||||
|
"x": 13.25,
|
||||||
|
"y": 6.25
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "down",
|
||||||
|
"x": 14.25,
|
||||||
|
"y": 6.25
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "right",
|
||||||
|
"x": 15.25,
|
||||||
|
"y": 6.25
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "0",
|
||||||
|
"x": 16.5,
|
||||||
|
"y": 6
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": ".",
|
||||||
|
"x": 17.5,
|
||||||
|
"y": 6
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
/* Copyright 2020 sh_xguitar
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General 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_INS, KC_HOME, KC_PGUP, KC_PSCR,
|
||||||
|
KC_DEL, KC_END, KC_PGDN, KC_SLCK,
|
||||||
|
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NLCK, KC_PSLS, KC_PAST, MO(1),
|
||||||
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, KC_PMNS,
|
||||||
|
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS,
|
||||||
|
KC_LSFT, KC_BSLS, 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_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT, KC_P0, KC_PDOT
|
||||||
|
),
|
||||||
|
[1] = LAYOUT_all (
|
||||||
|
RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, KC_MUTE, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_CALC, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, KC_MPLY, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT, _______, _______
|
||||||
|
),
|
||||||
|
};
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
# ASH-XIIX
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
In mission to fill my Cherry 1800 case. So I continue developing 1800 PCB (ASH-1800) to fit G80-1800 case. It has some update to make ASH-XIIX more user friendly.
|
||||||
|
|
||||||
|
* Keyboard Maintainer: [sh_xguitar](https://github.com/sh-xguitar)
|
||||||
|
* Keyboard Specification: ATmega32u4, 5P TH MINI USB, JST-PH 5P, Larger ISP Header.
|
||||||
|
* Hardware Availability: Sold in Indonesia only
|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make ash_xiix: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).
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
# MCU name
|
||||||
|
MCU = atmega32u4
|
||||||
|
|
||||||
|
# Bootloader selection
|
||||||
|
BOOTLOADER = atmel-dfu
|
||||||
|
|
||||||
|
# Build Options
|
||||||
|
# change yes to no to disable
|
||||||
|
#
|
||||||
|
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
|
||||||
|
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||||
|
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||||
|
CONSOLE_ENABLE = no # Console for debug
|
||||||
|
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||||
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
|
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||||
|
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
|
NKRO_ENABLE = yes # USB Nkey Rollover
|
||||||
|
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||||
|
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||||
|
BLUETOOTH_ENABLE = no # Enable Bluetooth
|
||||||
|
AUDIO_ENABLE = no # Audio output
|
||||||
@@ -20,7 +20,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
#include "config_common.h"
|
#include "config_common.h"
|
||||||
|
|
||||||
/* USB Device descriptor parameter */
|
/* USB Device descriptor parameter */
|
||||||
#define VENDOR_ID 0xFEED
|
#define VENDOR_ID 0x4B50 // "KP"
|
||||||
#define PRODUCT_ID 0xEF8C
|
#define PRODUCT_ID 0xEF8C
|
||||||
#define DEVICE_VER 0x0001
|
#define DEVICE_VER 0x0001
|
||||||
#define MANUFACTURER KP Republic
|
#define MANUFACTURER KP Republic
|
||||||
|
|||||||
@@ -0,0 +1,47 @@
|
|||||||
|
/* Copyright 2020 MechMerlin
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <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_BSPC,
|
||||||
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||||
|
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||||
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, KC_UP, KC_SLSH,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
|
),
|
||||||
|
[1] = LAYOUT(
|
||||||
|
RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______,
|
||||||
|
_______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
[2] = LAYOUT(
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
[3] = LAYOUT(
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
)
|
||||||
|
};
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
# The VIA default keymap for bm60rgb
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
VIA_ENABLE = yes
|
||||||
@@ -28,22 +28,38 @@
|
|||||||
#define set_led_cyan red_led_off; grn_led_on; blu_led_on
|
#define set_led_cyan red_led_off; grn_led_on; blu_led_on
|
||||||
#define set_led_white red_led_on; grn_led_on; blu_led_on
|
#define set_led_white red_led_on; grn_led_on; blu_led_on
|
||||||
|
|
||||||
|
// For readability
|
||||||
|
#define ___ KC_NO
|
||||||
|
|
||||||
// This a shortcut to help you visually see your layout.
|
// This a shortcut to help you visually see your layout.
|
||||||
// The first section contains all of the arguments
|
// The first section contains all of the arguments
|
||||||
// The second converts the arguments into a two-dimensional array
|
// The second converts the arguments into a two-dimensional array
|
||||||
#define LAYOUT( \
|
#define LAYOUT_split_3x6_3( \
|
||||||
k0a, k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0b, \
|
k0a, k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0b, \
|
||||||
k1a, k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1b,\
|
k1a, k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1b,\
|
||||||
k2a, k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2b,\
|
k2a, k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2b,\
|
||||||
k32, k33, k34, k35, k36, k37 \
|
k32, k33, k34, k35, k36, k37 \
|
||||||
) \
|
) \
|
||||||
{ \
|
{ \
|
||||||
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09 }, \
|
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09 }, \
|
||||||
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19 }, \
|
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19 }, \
|
||||||
{ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29 }, \
|
{ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29 }, \
|
||||||
{ KC_NO, KC_NO, k32, k33, k34, k35, k36, k37, KC_NO, KC_NO }, \
|
{ ___, ___, k32, k33, k34, k35, k36, k37, ___, ___ }, \
|
||||||
{ KC_NO, KC_NO, k2a, k1a, k0a, k0b, k1b, k2b, KC_NO, KC_NO } \
|
{ ___, ___, k2a, k1a, k0a, k0b, k1b, k2b, ___, ___ } \
|
||||||
}
|
}
|
||||||
|
|
||||||
#define LAYOUT_split_3x6_3 LAYOUT
|
#define LAYOUT_split_3x5_3( \
|
||||||
|
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, \
|
||||||
|
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19,\
|
||||||
|
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29,\
|
||||||
|
k32, k33, k34, k35, k36, k37 \
|
||||||
|
) \
|
||||||
|
{ \
|
||||||
|
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09 }, \
|
||||||
|
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19 }, \
|
||||||
|
{ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29 }, \
|
||||||
|
{ ___, ___, k32, k33, k34, k35, k36, k37, ___, ___ }, \
|
||||||
|
{ ___, ___, ___, ___, ___, ___, ___, ___, ___, ___ } \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define LAYOUT LAYOUT_split_3x6_3
|
||||||
@@ -5,7 +5,7 @@
|
|||||||
"width": 14,
|
"width": 14,
|
||||||
"height": 4,
|
"height": 4,
|
||||||
"layouts": {
|
"layouts": {
|
||||||
"LAYOUT": {
|
"LAYOUT_split_3x6_3": {
|
||||||
"layout": [
|
"layout": [
|
||||||
{"label":"Tab", "x":0, "y":0.25},
|
{"label":"Tab", "x":0, "y":0.25},
|
||||||
{"label":"Q", "x":1, "y":0.25},
|
{"label":"Q", "x":1, "y":0.25},
|
||||||
@@ -50,6 +50,46 @@
|
|||||||
{"label":"MO(_NUM)", "x":8.5, "y":3.25},
|
{"label":"MO(_NUM)", "x":8.5, "y":3.25},
|
||||||
{"label":"RAlt", "x":9.5, "y":3.125}
|
{"label":"RAlt", "x":9.5, "y":3.125}
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
"LAYOUT_split_3x5_3": {
|
||||||
|
"layout": [
|
||||||
|
{"label":"Q", "x":0, "y":0.25},
|
||||||
|
{"label":"W", "x":1, "y":0.125},
|
||||||
|
{"label":"E", "x":2, "y":0},
|
||||||
|
{"label":"R", "x":3, "y":0.125},
|
||||||
|
{"label":"T", "x":4, "y":0.25},
|
||||||
|
{"label":"Y", "x":7, "y":0.25},
|
||||||
|
{"label":"U", "x":8, "y":0.125},
|
||||||
|
{"label":"I", "x":9, "y":0},
|
||||||
|
{"label":"O", "x":10, "y":0.125},
|
||||||
|
{"label":"P", "x":11, "y":0.25},
|
||||||
|
{"label":"A", "x":0, "y":1.25},
|
||||||
|
{"label":"S", "x":1, "y":1.125},
|
||||||
|
{"label":"D", "x":2, "y":1},
|
||||||
|
{"label":"F", "x":3, "y":1.125},
|
||||||
|
{"label":"G", "x":4, "y":1.25},
|
||||||
|
{"label":"H", "x":7, "y":1.25},
|
||||||
|
{"label":"J", "x":8, "y":1.125},
|
||||||
|
{"label":"K", "x":9, "y":1},
|
||||||
|
{"label":"L", "x":10, "y":1.125},
|
||||||
|
{"label":";", "x":11, "y":1.25},
|
||||||
|
{"label":"Z", "x":0, "y":2.25},
|
||||||
|
{"label":"X", "x":1, "y":2.125},
|
||||||
|
{"label":"C", "x":2, "y":2},
|
||||||
|
{"label":"V", "x":3, "y":2.125},
|
||||||
|
{"label":"B", "x":4, "y":2.25},
|
||||||
|
{"label":"N", "x":7, "y":2.25},
|
||||||
|
{"label":"M", "x":8, "y":2.125},
|
||||||
|
{"label":",", "x":9, "y":2},
|
||||||
|
{"label":".", "x":10, "y":2.125},
|
||||||
|
{"label":"/", "x":11, "y":2.25},
|
||||||
|
{"label":"LGUI", "x":2.5, "y":3.125},
|
||||||
|
{"label":"MO(_FN)", "x":3.5, "y":3.25},
|
||||||
|
{"label":"Space", "x":4.5, "y":3.375},
|
||||||
|
{"label":"Space", "x":6.5, "y":3.375},
|
||||||
|
{"label":"MO(_NUM)", "x":7.5, "y":3.25},
|
||||||
|
{"label":"RAlt", "x":8.5, "y":3.125}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -10,7 +10,7 @@ enum centromere_layers
|
|||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
[_STD] = LAYOUT( \
|
[_STD] = LAYOUT_split_3x6_3( \
|
||||||
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
||||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,\
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,\
|
||||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||||
@@ -24,7 +24,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
),
|
),
|
||||||
|
|
||||||
|
|
||||||
[_NUM] = LAYOUT( \
|
[_NUM] = LAYOUT_split_3x6_3( \
|
||||||
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
||||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,\
|
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,\
|
||||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||||
@@ -36,7 +36,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
//`--------------------------' `--------------------------'
|
//`--------------------------' `--------------------------'
|
||||||
),
|
),
|
||||||
|
|
||||||
[_FN] = LAYOUT( \
|
[_FN] = LAYOUT_split_3x6_3( \
|
||||||
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
||||||
KC_ESC, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,\
|
KC_ESC, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,\
|
||||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ enum centromere_layers
|
|||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
[_STD] = LAYOUT( \
|
[_STD] = LAYOUT_split_3x6_3( \
|
||||||
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
||||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,\
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,\
|
||||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||||
@@ -23,7 +23,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
),
|
),
|
||||||
|
|
||||||
|
|
||||||
[_NUM] = LAYOUT( \
|
[_NUM] = LAYOUT_split_3x6_3( \
|
||||||
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
||||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,\
|
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,\
|
||||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||||
@@ -35,7 +35,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
//`--------------------------' `--------------------------'
|
//`--------------------------' `--------------------------'
|
||||||
),
|
),
|
||||||
|
|
||||||
[_FN] = LAYOUT( \
|
[_FN] = LAYOUT_split_3x6_3( \
|
||||||
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
||||||
KC_ESC, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,\
|
KC_ESC, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,\
|
||||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||||
|
|||||||
@@ -38,10 +38,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
* | | | |
|
* | | | |
|
||||||
* `------' `------'
|
* `------' `------'
|
||||||
*/
|
*/
|
||||||
[_QWERTY] = LAYOUT(
|
[_QWERTY] = LAYOUT_split_3x5_3(
|
||||||
KC_NO, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_NO,
|
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
|
||||||
KC_NO, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_NO,
|
KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,
|
||||||
KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO,
|
KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH,
|
||||||
KC_LCTL, LOWER, KC_SPC, KC_BSPC, RAISE, OSM(MOD_LSFT)
|
KC_LCTL, LOWER, KC_SPC, KC_BSPC, RAISE, OSM(MOD_LSFT)
|
||||||
),
|
),
|
||||||
|
|
||||||
@@ -60,10 +60,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
* | | | |
|
* | | | |
|
||||||
* `------' `------'
|
* `------' `------'
|
||||||
*/
|
*/
|
||||||
[_RAISE] = LAYOUT(
|
[_RAISE] = LAYOUT_split_3x5_3(
|
||||||
KC_NO, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_NO,
|
KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
|
||||||
KC_NO, KC_TAB, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_NO,
|
KC_TAB, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC,
|
||||||
KC_NO, KC_LCTL, KC_GRV, KC_LGUI, KC_LALT, _______, _______, _______, _______, KC_BSLS, KC_QUOT, KC_NO,
|
KC_LCTL, KC_GRV, KC_LGUI, KC_LALT, _______, _______, _______, _______, KC_BSLS, KC_QUOT,
|
||||||
_______, _______, _______, _______, _______, _______
|
_______, _______, _______, _______, _______, _______
|
||||||
),
|
),
|
||||||
|
|
||||||
@@ -82,10 +82,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
* | | | |
|
* | | | |
|
||||||
* `------' `------'
|
* `------' `------'
|
||||||
*/
|
*/
|
||||||
[_LOWER] = LAYOUT(
|
[_LOWER] = LAYOUT_split_3x5_3(
|
||||||
KC_NO, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_NO,
|
KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN,
|
||||||
KC_NO, KC_ESC, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_NO,
|
KC_ESC, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR,
|
||||||
KC_NO, KC_CAPS, KC_TILD, _______, _______, _______, _______, _______, _______, KC_PIPE, KC_DQT, KC_NO,
|
KC_CAPS, KC_TILD, _______, _______, _______, _______, _______, _______, KC_PIPE, KC_DQT,
|
||||||
_______, _______, _______, KC_ENT, _______, KC_DEL
|
_______, _______, _______, KC_ENT, _______, KC_DEL
|
||||||
),
|
),
|
||||||
|
|
||||||
@@ -104,10 +104,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
* | | | |
|
* | | | |
|
||||||
* `------' `------'
|
* `------' `------'
|
||||||
*/
|
*/
|
||||||
[_ADJUST] = LAYOUT(
|
[_ADJUST] = LAYOUT_split_3x5_3(
|
||||||
KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_NO,
|
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
|
||||||
KC_NO, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, TSKMGR, CALTDEL, KC_NO,
|
KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, TSKMGR, CALTDEL,
|
||||||
KC_NO, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_NO,
|
RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
_______, _______, _______, _______, _______, _______
|
_______, _______, _______, _______, _______, _______
|
||||||
)
|
)
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -41,4 +41,4 @@ OPT_DEFS += -DCENTROMERE_PROMICRO
|
|||||||
# # project specific files
|
# # project specific files
|
||||||
SRC = matrix.c
|
SRC = matrix.c
|
||||||
|
|
||||||
LAYOUTS = split_3x6_3
|
LAYOUTS = split_3x5_3 split_3x6_3
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
/* Copyright 2019 COSEYFANNITUTTI
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General 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_65_ansi(
|
||||||
|
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_GRV,
|
||||||
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
|
||||||
|
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,
|
||||||
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
|
||||||
|
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, MO(1), KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT),
|
||||||
|
|
||||||
|
[1] = LAYOUT_65_ansi(
|
||||||
|
/* esc 1 2 3 4 5 6 7 8 9 0 - = bkspc `~ */
|
||||||
|
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_PSCR,
|
||||||
|
/* tab Q W E R T Y U I O P [ ] \ delete*/
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS,KC_TRNS,KC_TRNS,KC_INS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PAUS, KC_TRNS, KC_TRNS,
|
||||||
|
/* caps A S D F G H J K L ; ' enter pg up*/
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_HOME,
|
||||||
|
/* shift Z X C V B N M , . / shift up pg dn*/
|
||||||
|
KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLU, KC_END,
|
||||||
|
/* ctrl alt cmd space fn alt ctrl left down right*/
|
||||||
|
KC_LCTL, KC_LALT, KC_LGUI, KC_TRNS, KC_TRNS, KC_RALT, KC_RCTL, KC_MPRV, KC_VOLD, KC_MNXT)
|
||||||
|
};
|
||||||
@@ -34,9 +34,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
),
|
),
|
||||||
/* Number */
|
/* Number */
|
||||||
[_NUM] = LAYOUT(
|
[_NUM] = LAYOUT(
|
||||||
KC_1, KC_2, KC_3,
|
KC_7, KC_8, KC_9,
|
||||||
KC_TRNS, KC_4, KC_5, KC_6,
|
KC_ESC, KC_4, KC_5, KC_6,
|
||||||
KC_TRNS, KC_7, KC_8, KC_9, KC_F3, KC_TRNS, KC_TRNS
|
KC_TRNS, KC_1, KC_2, KC_3, KC_F3, KC_TRNS, KC_TRNS
|
||||||
),
|
),
|
||||||
/* Adjust */
|
/* Adjust */
|
||||||
[_ADJUST] = LAYOUT(
|
[_ADJUST] = LAYOUT(
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
"width": 15,
|
"width": 15,
|
||||||
"height": 4.7,
|
"height": 4.7,
|
||||||
"layouts": {
|
"layouts": {
|
||||||
"LAYOUT": {
|
"LAYOUT_split_3x6_3": {
|
||||||
"layout": [
|
"layout": [
|
||||||
{"label":"Esc", "x":0, "y":0.3},
|
{"label":"Esc", "x":0, "y":0.3},
|
||||||
{"label":"Q", "x":1, "y":0.3},
|
{"label":"Q", "x":1, "y":0.3},
|
||||||
@@ -57,6 +57,53 @@
|
|||||||
{"label":"Raise", "x":9, "y":3.7},
|
{"label":"Raise", "x":9, "y":3.7},
|
||||||
{"label":"Alt / KC_HAEN", "x":10, "y":3.7}
|
{"label":"Alt / KC_HAEN", "x":10, "y":3.7}
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
"LAYOUT_split_3x5_3": {
|
||||||
|
"layout": [
|
||||||
|
{"label":"Q", "x":0, "y":0.3},
|
||||||
|
{"label":"W", "x":1, "y":0.1},
|
||||||
|
{"label":"E", "x":2, "y":0},
|
||||||
|
{"label":"R", "x":3, "y":0.1},
|
||||||
|
{"label":"T", "x":4, "y":0.2},
|
||||||
|
|
||||||
|
{"label":"Y", "x":8, "y":0.2},
|
||||||
|
{"label":"U", "x":9, "y":0.1},
|
||||||
|
{"label":"I", "x":10, "y":0},
|
||||||
|
{"label":"O", "x":11, "y":0.1},
|
||||||
|
{"label":"P", "x":12, "y":0.3},
|
||||||
|
|
||||||
|
{"label":"A", "x":0, "y":1.3},
|
||||||
|
{"label":"S", "x":1, "y":1.1},
|
||||||
|
{"label":"D", "x":2, "y":1},
|
||||||
|
{"label":"F", "x":3, "y":1.1},
|
||||||
|
{"label":"G", "x":4, "y":1.2},
|
||||||
|
|
||||||
|
{"label":"H", "x":8, "y":1.2},
|
||||||
|
{"label":"J", "x":9, "y":1.1},
|
||||||
|
{"label":"K", "x":10, "y":1},
|
||||||
|
{"label":"L", "x":11, "y":1.1},
|
||||||
|
{"label":";", "x":12, "y":1.3},
|
||||||
|
|
||||||
|
{"label":"Z", "x":0, "y":2.3},
|
||||||
|
{"label":"X", "x":1, "y":2.1},
|
||||||
|
{"label":"C", "x":2, "y":2},
|
||||||
|
{"label":"V", "x":3, "y":2.1},
|
||||||
|
{"label":"B", "x":4, "y":2.2},
|
||||||
|
|
||||||
|
{"label":"N", "x":8, "y":2.2},
|
||||||
|
{"label":"M", "x":9, "y":2.1},
|
||||||
|
{"label":",", "x":10, "y":2},
|
||||||
|
{"label":".", "x":11, "y":2.1},
|
||||||
|
{"label":"/", "x":12, "y":2.3},
|
||||||
|
|
||||||
|
{"label":"GUI / KC_HANJ", "x":3, "y":3.7},
|
||||||
|
{"label":"Lower", "x":4, "y":3.7},
|
||||||
|
{"label":"Space", "x":5, "y":3.2, "h":1.5},
|
||||||
|
|
||||||
|
{"label":"Enter", "x":7, "y":3.2, "h":1.5},
|
||||||
|
{"label":"Raise", "x":8, "y":3.7},
|
||||||
|
{"label":"Alt / KC_HAEN", "x":9, "y":3.7}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -31,7 +31,7 @@ enum macro_keycodes {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
[_QWERTY] = LAYOUT( \
|
[_QWERTY] = LAYOUT_split_3x6_3( \
|
||||||
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
||||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,\
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,\
|
||||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||||
@@ -44,7 +44,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
|
|
||||||
),
|
),
|
||||||
|
|
||||||
[_LOWER] = LAYOUT( \
|
[_LOWER] = LAYOUT_split_3x6_3( \
|
||||||
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
||||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,\
|
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,\
|
||||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||||
@@ -56,7 +56,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
//`--------------------------' `--------------------------'
|
//`--------------------------' `--------------------------'
|
||||||
),
|
),
|
||||||
|
|
||||||
[_RAISE] = LAYOUT( \
|
[_RAISE] = LAYOUT_split_3x6_3( \
|
||||||
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
||||||
KC_ESC, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,\
|
KC_ESC, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,\
|
||||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||||
@@ -68,7 +68,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
//`--------------------------' `--------------------------'
|
//`--------------------------' `--------------------------'
|
||||||
),
|
),
|
||||||
|
|
||||||
[_ADJUST] = LAYOUT( \
|
[_ADJUST] = LAYOUT_split_3x6_3( \
|
||||||
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
||||||
RESET, RGBRST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,\
|
RESET, RGBRST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,\
|
||||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
// clang-format off
|
// clang-format off
|
||||||
#define LAYOUT( \
|
#define LAYOUT_split_3x6_3( \
|
||||||
L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \
|
L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \
|
||||||
L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \
|
L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \
|
||||||
L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \
|
L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \
|
||||||
@@ -39,6 +39,23 @@
|
|||||||
{ KC_NO, KC_NO, KC_NO, R32, R31, R30 } \
|
{ KC_NO, KC_NO, KC_NO, R32, R31, R30 } \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define LAYOUT_split_3x5_3( \
|
||||||
|
L00, L01, L02, L03, L04, R00, R01, R02, R03, R04, \
|
||||||
|
L10, L11, L12, L13, L14, R10, R11, R12, R13, R14, \
|
||||||
|
L20, L21, L22, L23, L24, R20, R21, R22, R23, R24, \
|
||||||
|
L30, L31, L32, R30, R31, R32 \
|
||||||
|
) \
|
||||||
|
{ \
|
||||||
|
{ KC_NO, L00, L01, L02, L03, L04 }, \
|
||||||
|
{ KC_NO, L10, L11, L12, L13, L14 }, \
|
||||||
|
{ KC_NO, L20, L21, L22, L23, L24 }, \
|
||||||
|
{ KC_NO, KC_NO, KC_NO, L30, L31, L32 }, \
|
||||||
|
{ KC_NO, R04, R03, R02, R01, R00 }, \
|
||||||
|
{ KC_NO, R14, R13, R12, R11, R10 }, \
|
||||||
|
{ KC_NO, R24, R23, R22, R21, R20 }, \
|
||||||
|
{ KC_NO, KC_NO, KC_NO, R32, R31, R30 } \
|
||||||
|
}
|
||||||
|
|
||||||
#define LAYOUT_kc( \
|
#define LAYOUT_kc( \
|
||||||
L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \
|
L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \
|
||||||
L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \
|
L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \
|
||||||
@@ -53,4 +70,4 @@
|
|||||||
)
|
)
|
||||||
// clang-format on
|
// clang-format on
|
||||||
|
|
||||||
#define LAYOUT_split_3x6_3 LAYOUT
|
#define LAYOUT LAYOUT_split_3x6_3
|
||||||
@@ -2,4 +2,4 @@ SRC += matrix.c \
|
|||||||
split_util.c \
|
split_util.c \
|
||||||
split_scomm.c
|
split_scomm.c
|
||||||
|
|
||||||
LAYOUTS = split_3x6_3
|
LAYOUTS = split_3x5_3 split_3x6_3
|
||||||
@@ -0,0 +1,62 @@
|
|||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
// KBDfans DZ60 - ANSI with Arrow
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
/* Qwerty [0]
|
||||||
|
* ,-----------------------------------------------------------------------------------------.
|
||||||
|
* | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Backspace |
|
||||||
|
* |-----------------------------------------------------------------------------------------+
|
||||||
|
* | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ |
|
||||||
|
* |-----------------------------------------------------------------------------------------+
|
||||||
|
* |Caps Lock| A | S | D | F | G | H | J | K | L | ; | ' | Enter |
|
||||||
|
* |-----------------------------------------------------------------------------------------+
|
||||||
|
* | Shift | Z | X | C | V | B | N | M | , | . | RShift | Up | / |
|
||||||
|
* |-----------------------------------------------------------------------------------------+
|
||||||
|
* | Ctrl | OS | Alt | Space | RAlt | Fn |Left |Down |Right|
|
||||||
|
* `-----------------------------------------------------------------------------------------'
|
||||||
|
*/
|
||||||
|
|
||||||
|
[0] = LAYOUT_60_b_ansi(KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC,
|
||||||
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||||
|
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||||
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, KC_UP, KC_SLSH,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT),
|
||||||
|
|
||||||
|
/* Fn Layer [1]
|
||||||
|
* ,-----------------------------------------------------------------------------------------.
|
||||||
|
* | ` ~ | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Delete |
|
||||||
|
* |-----------------------------------------------------------------------------------------+
|
||||||
|
* | Bri Up | | | End | Rst | | | | Ins | | P Sc| | | Eject |
|
||||||
|
* |-----------------------------------------------------------------------------------------+
|
||||||
|
* | Bri Down| | S L | | | | Home| | | | | | Mute |
|
||||||
|
* |-----------------------------------------------------------------------------------------+
|
||||||
|
* | Vol + | | | Calc| | | | Mail| | | |Pg U |Pause|
|
||||||
|
* |-----------------------------------------------------------------------------------------+
|
||||||
|
* | Vol - | Rwd | F Fd | Play | M Stp| | Prev| Pg D| Next|
|
||||||
|
* `-----------------------------------------------------------------------------------------'
|
||||||
|
*/
|
||||||
|
|
||||||
|
[1] = LAYOUT_60_b_ansi(KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL,
|
||||||
|
KC_BRIU, _______, _______, KC_END, RESET, _______, _______, _______, KC_INS, _______, KC_PSCR, _______, _______, KC_EJCT,
|
||||||
|
KC_BRID, _______, KC_SLCK, _______, _______, _______, KC_HOME, _______, _______, _______, _______, _______, KC_MUTE,
|
||||||
|
KC_VOLU, _______, _______, KC_CALC, _______, _______, _______, KC_MAIL, _______, _______, _______, KC_PGUP, KC_PAUS,
|
||||||
|
KC_VOLD, KC_MRWD, KC_MFFD, KC_MPLY, KC_MPLY, KC_MPLY, KC_MSTP, KC_TRNS, KC_MPRV, KC_PGDN, KC_MNXT)
|
||||||
|
};
|
||||||
|
|
||||||
|
void keyboard_post_init_user(void) {
|
||||||
|
rgblight_enable_noeeprom();
|
||||||
|
rgblight_sethsv_noeeprom(0, 0, 0);
|
||||||
|
};
|
||||||
|
|
||||||
|
// RGB Underglow as a Caps Lock Indicator
|
||||||
|
|
||||||
|
void led_set_user(uint8_t usb_led) {
|
||||||
|
if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) {
|
||||||
|
writePinLow(B2);
|
||||||
|
rgblight_setrgb(100, 255, 100);
|
||||||
|
} else {
|
||||||
|
rgblight_setrgb(0, 0, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,46 @@
|
|||||||
|
# Sendy YK's Keymap
|
||||||
|
---
|
||||||
|
|
||||||
|
KBDfans DZ60 ANSI with Arrow also RGB Underglow as a Caps Lock Indicator
|
||||||
|
|
||||||
|
### Qwerty [0]
|
||||||
|
```
|
||||||
|
,-----------------------------------------------------------------------------------------.
|
||||||
|
| Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Backspace |
|
||||||
|
|-----------------------------------------------------------------------------------------+
|
||||||
|
| Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ |
|
||||||
|
|-----------------------------------------------------------------------------------------+
|
||||||
|
|Caps Lock| A | S | D | F | G | H | J | K | L | ; | ' | Enter |
|
||||||
|
|-----------------------------------------------------------------------------------------+
|
||||||
|
| Shift | Z | X | C | V | B | N | M | , | . | RShift | Up | / |
|
||||||
|
|-----------------------------------------------------------------------------------------+
|
||||||
|
| Ctrl | OS | Alt | Space | RAlt | Fn |Left |Down |Right|
|
||||||
|
`-----------------------------------------------------------------------------------------'
|
||||||
|
```
|
||||||
|
|
||||||
|
### Fn Layer [1]
|
||||||
|
```
|
||||||
|
,-----------------------------------------------------------------------------------------.
|
||||||
|
| ` ~ | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Delete |
|
||||||
|
|-----------------------------------------------------------------------------------------+
|
||||||
|
| Bri Up | | | End | Rst | | | | Ins | | P Sc| | | Eject |
|
||||||
|
|-----------------------------------------------------------------------------------------+
|
||||||
|
| Bri Down| | S L | | | | Home| | | | | | Mute |
|
||||||
|
|-----------------------------------------------------------------------------------------+
|
||||||
|
| Vol + | | | Calc| | | | Mail| | | |Pg U |Pause|
|
||||||
|
|-----------------------------------------------------------------------------------------+
|
||||||
|
| Vol - | Rwd | F Fd | Play | M Stp| | Prev| Pg D| Next|
|
||||||
|
`-----------------------------------------------------------------------------------------'
|
||||||
|
```
|
||||||
|
|
||||||
|
### RGB Underglow as a Caps Lock Indicator
|
||||||
|
|
||||||
|
Set in `mrsendyyk/keymap.c` in the `led_set_user` function.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make dz60:mrsendyyk
|
||||||
|
|
||||||
|
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).
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
/* Copyright 2020 dztech
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General 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 "bocc.h"
|
||||||
|
|
||||||
|
void matrix_init_kb(void) {
|
||||||
|
setPinOutput(E6);
|
||||||
|
matrix_init_user();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool led_update_kb(led_t led_state) {
|
||||||
|
bool res = led_update_user(led_state);
|
||||||
|
if(res) {
|
||||||
|
writePin(E6, !led_state.caps_lock);
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
/* Copyright 2020 dztech
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "quantum.h"
|
||||||
|
|
||||||
|
#define LAYOUT_all( \
|
||||||
|
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K414, K015, K016, \
|
||||||
|
K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K116, \
|
||||||
|
K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K216, \
|
||||||
|
K300, K301, K302, K405, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K315, K316, \
|
||||||
|
K400, K401, K402, K403, K404, K407, K411, K412, K413, K415, K416 \
|
||||||
|
) { \
|
||||||
|
{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016 }, \
|
||||||
|
{ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K116 }, \
|
||||||
|
{ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, KC_NO, K216 }, \
|
||||||
|
{ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, KC_NO, K315, K316 }, \
|
||||||
|
{ K400, K401, K402, K403, K404, K405, KC_NO, K407, KC_NO, KC_NO, KC_NO, K411, K412, K413, K414, K415, K416 } \
|
||||||
|
}
|
||||||
@@ -0,0 +1,70 @@
|
|||||||
|
/* Copyright 2020 dztech
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General 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 "config_common.h"
|
||||||
|
|
||||||
|
/* USB Device descriptor parameter */
|
||||||
|
#define VENDOR_ID 0x445A // "DZ"
|
||||||
|
#define PRODUCT_ID 0x1010
|
||||||
|
#define DEVICE_VER 0x0001
|
||||||
|
#define MANUFACTURER DZtech
|
||||||
|
#define PRODUCT BOCC
|
||||||
|
|
||||||
|
/* key matrix size */
|
||||||
|
#define MATRIX_ROWS 5
|
||||||
|
#define MATRIX_COLS 17
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Keyboard Matrix Assignments
|
||||||
|
*
|
||||||
|
* Change this to how you wired your keyboard
|
||||||
|
* COLS: AVR pins used for columns, left to right
|
||||||
|
* ROWS: AVR pins used for rows, top to bottom
|
||||||
|
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
|
||||||
|
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#define MATRIX_ROW_PINS { B0, B1, B2, B3, F0 }
|
||||||
|
#define MATRIX_COL_PINS { B5, B6, C6, C7, F7, F6, F5, F4, F1, D1, D2, D3, D5, D4, D6, D7, B4 }
|
||||||
|
#define UNUSED_PINS
|
||||||
|
|
||||||
|
/* COL2ROW, ROW2COL*/
|
||||||
|
#define DIODE_DIRECTION COL2ROW
|
||||||
|
|
||||||
|
#define BACKLIGHT_PIN B7
|
||||||
|
#define BACKLIGHT_LEVELS 5
|
||||||
|
|
||||||
|
#define RGB_DI_PIN E2
|
||||||
|
#ifdef RGB_DI_PIN
|
||||||
|
# define RGBLIGHT_ANIMATIONS
|
||||||
|
# define RGBLED_NUM 16
|
||||||
|
# define RGBLIGHT_HUE_STEP 8
|
||||||
|
# define RGBLIGHT_SAT_STEP 8
|
||||||
|
# define RGBLIGHT_VAL_STEP 8
|
||||||
|
# define RGBLIGHT_SLEEP
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||||
|
#define DEBOUNCE 5
|
||||||
|
|
||||||
|
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||||
|
#define LOCKING_SUPPORT_ENABLE
|
||||||
|
/* Locking resynchronize hack */
|
||||||
|
#define LOCKING_RESYNC_ENABLE
|
||||||
|
|
||||||
|
/* VIA related config */
|
||||||
|
#define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "BOCC",
|
||||||
|
"url": "",
|
||||||
|
"maintainer": "DZTECH",
|
||||||
|
"width": 18.5,
|
||||||
|
"height": 5,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT_all": {
|
||||||
|
"layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"label":"~", "x":2.5, "y":0}, {"label":"!", "x":3.5, "y":0}, {"label":"@", "x":4.5, "y":0}, {"label":"#", "x":5.5, "y":0}, {"label":"$", "x":6.5, "y":0}, {"label":"%", "x":7.5, "y":0}, {"label":"^", "x":8.5, "y":0}, {"label":"&", "x":9.5, "y":0}, {"label":"*", "x":10.5, "y":0}, {"label":"(", "x":11.5, "y":0}, {"label":")", "x":12.5, "y":0}, {"label":"_", "x":13.5, "y":0}, {"label":"+", "x":14.5, "y":0}, {"label":"Backspace", "x":15.5, "y":0}, {"x":16.5, "y":0}, {"label":"Home", "x":17.5, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"label":"Tab", "x":2.5, "y":1, "w":1.5}, {"label":"Q", "x":4, "y":1}, {"label":"W", "x":5, "y":1}, {"label":"E", "x":6, "y":1}, {"label":"R", "x":7, "y":1}, {"label":"T", "x":8, "y":1}, {"label":"Y", "x":9, "y":1}, {"label":"U", "x":10, "y":1}, {"label":"I", "x":11, "y":1}, {"label":"O", "x":12, "y":1}, {"label":"P", "x":13, "y":1}, {"label":"{", "x":14, "y":1}, {"label":"}", "x":15, "y":1}, {"label":"|", "x":16, "y":1, "w":1.5}, {"label":"Page Up", "x":17.5, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"label":"Caps Lock", "x":2.5, "y":2, "w":1.75}, {"label":"A", "x":4.25, "y":2}, {"label":"S", "x":5.25, "y":2}, {"label":"D", "x":6.25, "y":2}, {"label":"F", "x":7.25, "y":2}, {"label":"G", "x":8.25, "y":2}, {"label":"H", "x":9.25, "y":2}, {"label":"J", "x":10.25, "y":2}, {"label":"K", "x":11.25, "y":2}, {"label":"L", "x":12.25, "y":2}, {"label":":", "x":13.25, "y":2}, {"label":"\"", "x":14.25, "y":2}, {"label":"Enter", "x":15.25, "y":2, "w":2.25}, {"label":"Page Down", "x":17.5, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2.5, "y":3, "w":1.25}, {"label":"Shift", "x":3.75, "y":3}, {"label":"Z", "x":4.75, "y":3}, {"label":"X", "x":5.75, "y":3}, {"label":"C", "x":6.75, "y":3}, {"label":"V", "x":7.75, "y":3}, {"label":"B", "x":8.75, "y":3}, {"label":"N", "x":9.75, "y":3}, {"label":"M", "x":10.75, "y":3}, {"label":"<", "x":11.75, "y":3}, {"label":">", "x":12.75, "y":3}, {"label":"?", "x":13.75, "y":3}, {"label":"Shift", "x":14.75, "y":3, "w":1.75}, {"label":"\u2191", "x":16.5, "y":3}, {"label":"End", "x":17.5, "y":3}, {"x":0, "y":4}, {"x":1, "y":4}, {"label":"Ctrl", "x":2.5, "y":4, "w":1.25}, {"label":"Win", "x":3.75, "y":4, "w":1.25}, {"label":"Alt", "x":5, "y":4, "w":1.25}, {"x":6.25, "y":4, "w":6.25}, {"label":"Alt", "x":12.5, "y":4, "w":1.25}, {"label":"Fn", "x":13.75, "y":4, "w":1.25}, {"label":"\u2190", "x":15.5, "y":4}, {"label":"\u2193", "x":16.5, "y":4}, {"label":"\u2192", "x":17.5, "y":4}]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
+27
@@ -0,0 +1,27 @@
|
|||||||
|
/* Copyright 2020 dztech
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General 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] = {
|
||||||
|
|
||||||
|
LAYOUT_all(
|
||||||
|
KC_F1, KC_F2, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, KC_HOME,
|
||||||
|
KC_F3, KC_F4, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
|
||||||
|
KC_F5, KC_F6, KC_CAPS,KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
|
||||||
|
KC_F7, KC_F8, KC_LSFT,KC_BSLS, 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_F9, KC_F10, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
|
||||||
|
|
||||||
|
};
|
||||||
Executable
+48
@@ -0,0 +1,48 @@
|
|||||||
|
/* Copyright 2020 dztech
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General 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] = {
|
||||||
|
|
||||||
|
LAYOUT_all(
|
||||||
|
KC_F1, KC_F2, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, KC_HOME,
|
||||||
|
KC_F3, KC_F4, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
|
||||||
|
KC_F5, KC_F6, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
|
||||||
|
KC_F7, KC_F8, KC_LSFT, KC_BSLS, 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_F9, KC_F10, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
|
||||||
|
|
||||||
|
LAYOUT_all(
|
||||||
|
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||||
|
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||||
|
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||||
|
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||||
|
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO),
|
||||||
|
|
||||||
|
LAYOUT_all(
|
||||||
|
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||||
|
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||||
|
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||||
|
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||||
|
KC_NO, KC_NO, KC_NO,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO),
|
||||||
|
|
||||||
|
LAYOUT_all(
|
||||||
|
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||||
|
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||||
|
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||||
|
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||||
|
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO),
|
||||||
|
|
||||||
|
};
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
VIA_ENABLE = yes
|
||||||
|
LTO_ENABLE = yes
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
# BOCC
|
||||||
|
|
||||||
|
* Keyboard Maintainer: DZTECH
|
||||||
|
* Hardware Supported: DZTECH
|
||||||
|
* Hardware Availability: BOCC
|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make dztech/bocc:default
|
||||||
|
make dztech/bocc:via
|
||||||
|
|
||||||
|
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).
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
# MCU name
|
||||||
|
MCU = atmega32u4
|
||||||
|
|
||||||
|
# Bootloader selection
|
||||||
|
BOOTLOADER = atmel-dfu
|
||||||
|
|
||||||
|
# Build Options
|
||||||
|
# change yes to no to disable
|
||||||
|
#
|
||||||
|
BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
|
||||||
|
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||||
|
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||||
|
CONSOLE_ENABLE = no # Console for debug
|
||||||
|
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||||
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
|
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||||
|
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
|
NKRO_ENABLE = yes # USB Nkey Rollover
|
||||||
|
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
||||||
|
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
|
||||||
|
BLUETOOTH_ENABLE = no # Enable Bluetooth
|
||||||
|
AUDIO_ENABLE = no # Audio output
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
/*
|
||||||
|
This is the c configuration file for the keymap
|
||||||
|
|
||||||
|
Copyright 2012 Jun Wako <[email protected]>
|
||||||
|
Copyright 2015 Jack Humbert
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
// place overrides here
|
||||||
|
#define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
|
||||||
|
SONG(COLEMAK_SOUND), \
|
||||||
|
SONG(DVORAK_SOUND) \
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Use I2C or Serial, not both */
|
||||||
|
#define USE_SERIAL
|
||||||
|
// #define USE_I2C
|
||||||
|
|
||||||
|
/* Select hand configuration */
|
||||||
|
#define MASTER_LEFT
|
||||||
|
// #define MASTER_RIGHT
|
||||||
|
// #define EE_HANDS
|
||||||
@@ -0,0 +1,160 @@
|
|||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
// Each layer gets a name for readability, which is then used in the keymap matrix below.
|
||||||
|
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
|
||||||
|
// Layer names don't all need to be of the same length, obviously, and you can also skip them
|
||||||
|
// entirely and just use numbers.
|
||||||
|
enum custom_layers {
|
||||||
|
_QWERTY,
|
||||||
|
_COLEMAK,
|
||||||
|
_DVORAK,
|
||||||
|
_LOWER,
|
||||||
|
_RAISE,
|
||||||
|
_ADJUST,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum custom_keycodes {
|
||||||
|
QWERTY = SAFE_RANGE,
|
||||||
|
COLEMAK,
|
||||||
|
DVORAK
|
||||||
|
};
|
||||||
|
|
||||||
|
#define LOWER MO(_LOWER)
|
||||||
|
#define RAISE MO(_RAISE)
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
/* Qwerty
|
||||||
|
* ,-----------------------------------------------------------------------------------.
|
||||||
|
* | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
|
||||||
|
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||||
|
* | GEsc | A | S | D | F | G | H | J | K | L | ; | " |
|
||||||
|
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||||
|
* | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
|
||||||
|
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||||
|
* | @ | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
|
||||||
|
* `-----------------------------------------------------------------------------------'
|
||||||
|
*/
|
||||||
|
[_QWERTY] = LAYOUT_ortho_4x12(
|
||||||
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
|
||||||
|
KC_GESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
|
||||||
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT ,
|
||||||
|
KC_AT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
|
||||||
|
),
|
||||||
|
|
||||||
|
/* Colemak
|
||||||
|
* ,-----------------------------------------------------------------------------------.
|
||||||
|
* | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp |
|
||||||
|
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||||
|
* | GEsc | A | R | S | T | D | H | N | E | I | O | ' |
|
||||||
|
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||||
|
* | Shift| Z | X | C | V | B | K | M | , | . | / |Enter |
|
||||||
|
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||||
|
* | @ | Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right |
|
||||||
|
* `-----------------------------------------------------------------------------------'
|
||||||
|
*/
|
||||||
|
[_COLEMAK] = LAYOUT_ortho_4x12(
|
||||||
|
KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC,
|
||||||
|
KC_GESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
|
||||||
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT ,
|
||||||
|
KC_AT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
|
||||||
|
),
|
||||||
|
|
||||||
|
/* Dvorak
|
||||||
|
* ,-----------------------------------------------------------------------------------.
|
||||||
|
* | Tab | ' | , | . | P | Y | F | G | C | R | L | Bksp |
|
||||||
|
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||||
|
* | GEsc | A | O | E | U | I | D | H | T | N | S | / |
|
||||||
|
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||||
|
* | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter |
|
||||||
|
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||||
|
* | @ | Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right |
|
||||||
|
* `-----------------------------------------------------------------------------------'
|
||||||
|
*/
|
||||||
|
[_DVORAK] = LAYOUT_ortho_4x12(
|
||||||
|
KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC,
|
||||||
|
KC_GESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH,
|
||||||
|
KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT ,
|
||||||
|
KC_AT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
|
||||||
|
),
|
||||||
|
|
||||||
|
/* Lower
|
||||||
|
* ,-----------------------------------------------------------------------------------.
|
||||||
|
* | ~ | F1 | F2 | F3 | F4 | _ | % | 7 | 8 | 9 | ^ | Del |
|
||||||
|
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||||
|
* | Del | F5 | F6 | F7 | F8 | ! | $ | 4 | 5 | 6 | 0 | | |
|
||||||
|
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||||
|
* | | F8 | F9 | F10 | F12 | & | # | 1 | 2 | 3 | = | |
|
||||||
|
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||||
|
* | | | | | | | | / | - | + | * |
|
||||||
|
* `-----------------------------------------------------------------------------------'
|
||||||
|
*/
|
||||||
|
[_LOWER] = LAYOUT_ortho_4x12(
|
||||||
|
KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4,S(KC_MINS), KC_PERC, KC_7, KC_8, KC_9, KC_CIRC, KC_DEL,
|
||||||
|
KC_DEL, KC_F5, KC_F6, KC_F7, KC_F8, KC_EXLM, KC_DLR, KC_4, KC_5, KC_6, KC_0, KC_PIPE,
|
||||||
|
_______, KC_F9, KC_F10, KC_F11, KC_F12, KC_AMPR, KC_HASH, KC_1, KC_2, KC_3, KC_EQL, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, KC_PSLS, KC_PMNS, KC_PPLS, KC_PAST
|
||||||
|
),
|
||||||
|
|
||||||
|
/* Raise (Mouse & Media)
|
||||||
|
* ,-----------------------------------------------------------------------------------.
|
||||||
|
* | ` | | | MsUp | | { | } | | MsWup| | | Del |
|
||||||
|
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||||
|
* | Del | |MsLeft|MsDown|MsRght| ( | ) | Lclk |MsWdwn| Rclk | | \ |
|
||||||
|
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||||
|
* | | | | | | [ | ] | | | Mute | | |
|
||||||
|
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||||
|
* | | | | | | | | Next | Vol- | Vol+ | Play |
|
||||||
|
* `-----------------------------------------------------------------------------------'
|
||||||
|
*/
|
||||||
|
[_RAISE] = LAYOUT_ortho_4x12(
|
||||||
|
KC_GRV, _______, _______, KC_MS_U, _______, KC_LCBR, KC_RCBR, _______, KC_WH_U, _______, _______, KC_DEL,
|
||||||
|
KC_DEL, _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_LPRN, KC_RPRN, KC_BTN1, KC_WH_D, KC_BTN2, _______, KC_BSLS,
|
||||||
|
_______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, _______, _______, KC_MUTE, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
|
||||||
|
),
|
||||||
|
|
||||||
|
/* Adjust (Lower + Raise)
|
||||||
|
* ,-----------------------------------------------------------------------------------.
|
||||||
|
* | | Reset| | | | | | | | | Reset| Del |
|
||||||
|
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||||
|
* | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | |
|
||||||
|
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||||
|
* | | | | | | | | | | | | |
|
||||||
|
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||||
|
* | | | | | | | | | | | |
|
||||||
|
* `-----------------------------------------------------------------------------------'
|
||||||
|
*/
|
||||||
|
[_ADJUST] = LAYOUT_ortho_4x12(
|
||||||
|
_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, RESET, KC_DEL,
|
||||||
|
_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||||
|
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||||
|
switch (keycode) {
|
||||||
|
case QWERTY:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
set_single_persistent_default_layer(_QWERTY);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
case COLEMAK:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
set_single_persistent_default_layer(_COLEMAK);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
case DVORAK:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
set_single_persistent_default_layer(_DVORAK);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
@@ -5,7 +5,7 @@
|
|||||||
"width": 11,
|
"width": 11,
|
||||||
"height": 4,
|
"height": 4,
|
||||||
"layouts": {
|
"layouts": {
|
||||||
"LAYOUT": {
|
"LAYOUT_split_3x5_3": {
|
||||||
"layout": [{"label":"Q", "x":0, "y":0}, {"label":"W", "x":1, "y":0}, {"label":"E", "x":2, "y":0}, {"label":"R", "x":3, "y":0}, {"label":"T", "x":4, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"A", "x":0, "y":1}, {"label":"S", "x":1, "y":1}, {"label":"D", "x":2, "y":1}, {"label":"F", "x":3, "y":1}, {"label":"G", "x":4, "y":1}, {"label":"J", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"Z", "x":0, "y":2}, {"label":"X", "x":1, "y":2}, {"label":"C", "x":2, "y":2}, {"label":"V", "x":3, "y":2}, {"label":"B", "x":4, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Cmd", "x":2, "y":3}, {"label":"⇓", "x":3, "y":3}, {"label":"Ctrl", "x":4, "y":3}, {"x":6, "y":3}, {"label":"⇑", "x":7, "y":3}, {"label":"Opt", "x":8, "y":3}]
|
"layout": [{"label":"Q", "x":0, "y":0}, {"label":"W", "x":1, "y":0}, {"label":"E", "x":2, "y":0}, {"label":"R", "x":3, "y":0}, {"label":"T", "x":4, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"A", "x":0, "y":1}, {"label":"S", "x":1, "y":1}, {"label":"D", "x":2, "y":1}, {"label":"F", "x":3, "y":1}, {"label":"G", "x":4, "y":1}, {"label":"J", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"Z", "x":0, "y":2}, {"label":"X", "x":1, "y":2}, {"label":"C", "x":2, "y":2}, {"label":"V", "x":3, "y":2}, {"label":"B", "x":4, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Cmd", "x":2, "y":3}, {"label":"⇓", "x":3, "y":3}, {"label":"Ctrl", "x":4, "y":3}, {"x":6, "y":3}, {"label":"⇑", "x":7, "y":3}, {"label":"Opt", "x":8, "y":3}]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
* | GUI | LOWER|Ctrl/Esc| |Spc/Sft| RAISE|Alt/BkSp |
|
* | GUI | LOWER|Ctrl/Esc| |Spc/Sft| RAISE|Alt/BkSp |
|
||||||
* `--------------------' `--------------------'
|
* `--------------------' `--------------------'
|
||||||
*/
|
*/
|
||||||
[_QWERTY] = LAYOUT( \
|
[_QWERTY] = LAYOUT_split_3x5_3( \
|
||||||
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, \
|
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, \
|
||||||
KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, \
|
KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, \
|
||||||
KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, \
|
KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, \
|
||||||
@@ -61,7 +61,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
* | | LOWER| | | Esc | RAISE| |
|
* | | LOWER| | | Esc | RAISE| |
|
||||||
* `--------------------' `--------------------'
|
* `--------------------' `--------------------'
|
||||||
*/
|
*/
|
||||||
[_RAISE] = LAYOUT( \
|
[_RAISE] = LAYOUT_split_3x5_3( \
|
||||||
KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, \
|
KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, \
|
||||||
KC_TAB, KC_UNDS, KC_PLUS, KC_PIPE, KC_TILD, KC_COLN, KC_DQUO, KC_GT, KC_LCBR, KC_RCBR, \
|
KC_TAB, KC_UNDS, KC_PLUS, KC_PIPE, KC_TILD, KC_COLN, KC_DQUO, KC_GT, KC_LCBR, KC_RCBR, \
|
||||||
KC_CAPS, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, KC_SCLN, KC_QUOT, KC_LT, KC_LBRC, KC_RBRC, \
|
KC_CAPS, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, KC_SCLN, KC_QUOT, KC_LT, KC_LBRC, KC_RBRC, \
|
||||||
@@ -80,7 +80,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
* | | LOWER| | | | RAISE| |
|
* | | LOWER| | | | RAISE| |
|
||||||
* `--------------------' `--------------------'
|
* `--------------------' `--------------------'
|
||||||
*/
|
*/
|
||||||
[_LOWER] = LAYOUT( \
|
[_LOWER] = LAYOUT_split_3x5_3( \
|
||||||
KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, \
|
KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, \
|
||||||
KC_TAB, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_ENT, \
|
KC_TAB, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_ENT, \
|
||||||
KC_LCTL, KC_GRV, KC_LGUI, KC_LALT, KC_DEL, KC_BSPC, KC_PGUP, KC_PGDN, KC_BSLS, KC_QUOT, \
|
KC_LCTL, KC_GRV, KC_LGUI, KC_LALT, KC_DEL, KC_BSPC, KC_PGUP, KC_PGDN, KC_BSLS, KC_QUOT, \
|
||||||
@@ -100,7 +100,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
* | | LOWER| | | | RAISE| |
|
* | | LOWER| | | | RAISE| |
|
||||||
* `--------------------' `--------------------'
|
* `--------------------' `--------------------'
|
||||||
*/
|
*/
|
||||||
[_ADJUST] = LAYOUT( \
|
[_ADJUST] = LAYOUT_split_3x5_3( \
|
||||||
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, \
|
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_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, _______, \
|
||||||
RESET, _______, _______, _______, _______, KC_MPRV, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, \
|
RESET, _______, _______, _______, _______, KC_MPRV, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, \
|
||||||
|
|||||||
@@ -30,7 +30,7 @@
|
|||||||
// readability
|
// readability
|
||||||
#define ___ KC_NO
|
#define ___ KC_NO
|
||||||
|
|
||||||
#define LAYOUT( \
|
#define LAYOUT_split_3x5_3( \
|
||||||
L01, L02, L03, L04, L05, R01, R02, R03, R04, R05, \
|
L01, L02, L03, L04, L05, R01, R02, R03, R04, R05, \
|
||||||
L06, L07, L08, L09, L10, R06, R07, R08, R09, R10, \
|
L06, L07, L08, L09, L10, R06, R07, R08, R09, R10, \
|
||||||
L11, L12, L13, L14, L15, R11, R12, R13, R14, R15, \
|
L11, L12, L13, L14, L15, R11, R12, R13, R14, R15, \
|
||||||
@@ -48,3 +48,5 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#define LAYOUT LAYOUT_split_3x5_3
|
||||||
@@ -35,3 +35,5 @@ HD44780_ENABLE = no # Enable support for HD44780 based LCDs
|
|||||||
DEBUG_ENABLE = no
|
DEBUG_ENABLE = no
|
||||||
CUSTOM_MATRIX = no # Use custom matrix code
|
CUSTOM_MATRIX = no # Use custom matrix code
|
||||||
SPLIT_KEYBOARD = yes # Use shared split_common code
|
SPLIT_KEYBOARD = yes # Use shared split_common code
|
||||||
|
|
||||||
|
LAYOUTS = split_3x5_3
|
||||||
@@ -38,7 +38,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
* | | | |
|
* | | | |
|
||||||
* `------' `------'
|
* `------' `------'
|
||||||
*/
|
*/
|
||||||
[_QWERTY] = LAYOUT( \
|
[_QWERTY] = LAYOUT_split_3x5_3( \
|
||||||
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, \
|
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, \
|
||||||
KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, \
|
KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, \
|
||||||
KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, \
|
KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, \
|
||||||
@@ -60,7 +60,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
* | | | |
|
* | | | |
|
||||||
* `------' `------'
|
* `------' `------'
|
||||||
*/
|
*/
|
||||||
[_RAISE] = LAYOUT( \
|
[_RAISE] = LAYOUT_split_3x5_3( \
|
||||||
KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, \
|
KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, \
|
||||||
KC_TAB, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, \
|
KC_TAB, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, \
|
||||||
KC_LCTL, KC_GRV, KC_LGUI, KC_LALT, _______, _______, _______, _______, KC_BSLS, KC_QUOT, \
|
KC_LCTL, KC_GRV, KC_LGUI, KC_LALT, _______, _______, _______, _______, KC_BSLS, KC_QUOT, \
|
||||||
@@ -82,7 +82,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
* | | | |
|
* | | | |
|
||||||
* `------' `------'
|
* `------' `------'
|
||||||
*/
|
*/
|
||||||
[_LOWER] = LAYOUT( \
|
[_LOWER] = LAYOUT_split_3x5_3( \
|
||||||
KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, \
|
KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, \
|
||||||
KC_ESC, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, \
|
KC_ESC, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, \
|
||||||
KC_CAPS, KC_TILD, _______, _______, _______, _______, _______, _______, KC_PIPE, KC_DQT, \
|
KC_CAPS, KC_TILD, _______, _______, _______, _______, _______, _______, KC_PIPE, KC_DQT, \
|
||||||
@@ -104,7 +104,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
* | | | |
|
* | | | |
|
||||||
* `------' `------'
|
* `------' `------'
|
||||||
*/
|
*/
|
||||||
[_ADJUST] = LAYOUT( \
|
[_ADJUST] = LAYOUT_split_3x5_3( \
|
||||||
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, \
|
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, \
|
||||||
KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, TSKMGR, CALTDEL, \
|
KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, TSKMGR, CALTDEL, \
|
||||||
RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
|
RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
"width": 12,
|
"width": 12,
|
||||||
"height": 5.75,
|
"height": 5.75,
|
||||||
"layouts": {
|
"layouts": {
|
||||||
"LAYOUT": {
|
"LAYOUT_split_3x5_3": {
|
||||||
"key_count": 36,
|
"key_count": 36,
|
||||||
"layout": [{"x":0, "y":0.375}, {"x":1, "y":0.125}, {"x":2, "y":0}, {"x":3, "y":0.125}, {"x":4, "y":0.25}, {"x":7, "y":0.25}, {"x":8, "y":0.125}, {"x":9, "y":0}, {"x":10, "y":0.125}, {"x":11, "y":0.375}, {"x":0, "y":1.375}, {"x":1, "y":1.125}, {"x":2, "y":1}, {"x":3, "y":1.125}, {"x":4, "y":1.25}, {"x":7, "y":1.25}, {"x":8, "y":1.125}, {"x":9, "y":1}, {"x":10, "y":1.125}, {"x":11, "y":1.375}, {"x":0, "y":2.375}, {"x":1, "y":2.125}, {"x":2, "y":2}, {"x":3, "y":2.125}, {"x":4, "y":2.25}, {"x":7, "y":2.25}, {"x":8, "y":2.125}, {"x":9, "y":2}, {"x":10, "y":2.125}, {"x":11, "y":2.375}, {"x":2.5, "y":4.75}, {"x":3.5, "y":4.75}, {"x":4.5, "y":3.75, "h":2}, {"x":6.5, "y":3.75, "h":2}, {"x":7.5, "y":4.75}, {"x":8.5, "y":4.75}]
|
"layout": [{"x":0, "y":0.375}, {"x":1, "y":0.125}, {"x":2, "y":0}, {"x":3, "y":0.125}, {"x":4, "y":0.25}, {"x":7, "y":0.25}, {"x":8, "y":0.125}, {"x":9, "y":0}, {"x":10, "y":0.125}, {"x":11, "y":0.375}, {"x":0, "y":1.375}, {"x":1, "y":1.125}, {"x":2, "y":1}, {"x":3, "y":1.125}, {"x":4, "y":1.25}, {"x":7, "y":1.25}, {"x":8, "y":1.125}, {"x":9, "y":1}, {"x":10, "y":1.125}, {"x":11, "y":1.375}, {"x":0, "y":2.375}, {"x":1, "y":2.125}, {"x":2, "y":2}, {"x":3, "y":2.125}, {"x":4, "y":2.25}, {"x":7, "y":2.25}, {"x":8, "y":2.125}, {"x":9, "y":2}, {"x":10, "y":2.125}, {"x":11, "y":2.375}, {"x":2.5, "y":4.75}, {"x":3.5, "y":4.75}, {"x":4.5, "y":3.75, "h":2}, {"x":6.5, "y":3.75, "h":2}, {"x":7.5, "y":4.75}, {"x":8.5, "y":4.75}]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
// readability
|
// readability
|
||||||
#define ___ KC_NO
|
#define ___ KC_NO
|
||||||
|
|
||||||
#define LAYOUT( \
|
#define LAYOUT_split_3x5_3( \
|
||||||
k01, k02, k03, k04, k05, k45, k44, k43, k42, k41, \
|
k01, k02, k03, k04, k05, k45, k44, k43, k42, k41, \
|
||||||
k11, k12, k13, k14, k15, k55, k54, k53, k52, k51, \
|
k11, k12, k13, k14, k15, k55, k54, k53, k52, k51, \
|
||||||
k21, k22, k23, k24, k25, k65, k64, k63, k62, k61, \
|
k21, k22, k23, k24, k25, k65, k64, k63, k62, k61, \
|
||||||
@@ -21,3 +21,5 @@
|
|||||||
{ k61, k62, k63, k64, k65 }, \
|
{ k61, k62, k63, k64, k65 }, \
|
||||||
{ ___, ___, k73, k74, k75 } \
|
{ ___, ___, k73, k74, k75 } \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define LAYOUT LAYOUT_split_3x5_3
|
||||||
@@ -1 +1,3 @@
|
|||||||
BACKLIGHT_ENABLE = no
|
BACKLIGHT_ENABLE = no
|
||||||
|
|
||||||
|
LAYOUTS = split_3x5_3
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
/* Copyright 2020 Neil Brian Ramirez
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General 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_L,
|
||||||
|
KC_O
|
||||||
|
),
|
||||||
|
[1] = LAYOUT(
|
||||||
|
KC_TRNS,
|
||||||
|
KC_TRNS
|
||||||
|
),
|
||||||
|
[2] = LAYOUT(
|
||||||
|
KC_TRNS,
|
||||||
|
KC_TRNS
|
||||||
|
),
|
||||||
|
[3] = LAYOUT(
|
||||||
|
KC_TRNS,
|
||||||
|
KC_TRNS
|
||||||
|
)
|
||||||
|
};
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
VIA_ENABLE = yes
|
||||||
|
LTO_ENABLE = yes
|
||||||
@@ -5,13 +5,22 @@
|
|||||||
"width": 21.25,
|
"width": 21.25,
|
||||||
"height": 5,
|
"height": 5,
|
||||||
"layouts": {
|
"layouts": {
|
||||||
|
"LAYOUT_all": {
|
||||||
|
"layout": [
|
||||||
|
{ "label": "Calc", "x": 0, "y": 0 },{ "label": "/", "x": 1, "y": 0 },{ "label": "*", "x": 2, "y": 0 },{ "label": "Bksp", "x": 3, "y": 0 },{ "label": "Esc", "x": 4, "y": 0 },{ "label": "~", "x": 5.25, "y": 0 },{ "label": "!", "x": 6.25, "y": 0 },{ "label": "@", "x": 7.25, "y": 0 },{ "label": "#", "x": 8.25, "y": 0 },{ "label": "$", "x": 9.25, "y": 0 },{ "label": "%", "x": 10.25, "y": 0 },{ "label": "^", "x": 11.25, "y": 0 },{ "label": "&", "x": 12.25, "y": 0 },{ "label": "*", "x": 13.25, "y": 0 },{ "label": "(", "x": 14.25, "y": 0 },{ "label": ")", "x": 15.25, "y": 0 },{ "label": "_", "x": 16.25, "y": 0 },{ "label": "+", "x": 17.25, "y": 0 },{ "label": "|", "x": 18.25, "y": 0 },{ "label": "PrintScr", "x": 19.25, "y": 0 },{ "label": "Home", "x": 20.25, "y": 0 },
|
||||||
|
{ "label": "-", "x": 0, "y": 1 },{ "label": "7", "x": 1, "y": 1 },{ "label": "8", "x": 2, "y": 1 },{ "label": "9", "x": 3, "y": 1 },{ "label": "Num Lock", "x": 4, "y": 1 },{ "label": "Tab", "x": 5.25, "y": 1, "w": 1.5 },{ "label": "Q", "x": 6.75, "y": 1 },{ "label": "W", "x": 7.75, "y": 1 },{ "label": "E", "x": 8.75, "y": 1 },{ "label": "R", "x": 9.75, "y": 1 },{ "label": "T", "x": 10.75, "y": 1 },{ "label": "Y", "x": 11.75, "y": 1 },{ "label": "U", "x": 12.75, "y": 1 },{ "label": "I", "x": 13.75, "y": 1 },{ "label": "O", "x": 14.75, "y": 1 },{ "label": "P", "x": 15.75, "y": 1 },{ "label": "{", "x": 16.75, "y": 1 },{ "label": "}", "x": 17.75, "y": 1 },{ "label": "Backspace", "x": 18.75, "y": 1, "w": 1.5 },{ "label": "PageUp", "x": 20.25, "y": 1 },
|
||||||
|
{ "label": "+", "x": 0, "y": 2 },{ "label": "4", "x": 1, "y": 2 },{ "label": "5", "x": 2, "y": 2 },{ "label": "6", "x": 3, "y": 2 },{ "label": "Copy", "x": 4, "y": 2 },{ "label": "Capslock", "x": 5.25, "y": 2, "w": 1.75 },{ "label": "A", "x": 7, "y": 2 },{ "label": "S", "x": 8, "y": 2 },{ "label": "D", "x": 9, "y": 2 },{ "label": "F", "x": 10, "y": 2 },{ "label": "G", "x": 11, "y": 2 },{ "label": "H", "x": 12, "y": 2 },{ "label": "J", "x": 13, "y": 2 },{ "label": "K", "x": 14, "y": 2 },{ "label": "L", "x": 15, "y": 2 },{ "label": ":", "x": 16, "y": 2 },{ "label": "\"", "x": 17, "y": 2 },{ "label": "Enter", "x": 18, "y": 2, "w": 2.25 },{ "label": "PageDown", "x": 20.25, "y": 2 },
|
||||||
|
{ "label": "=", "x": 0, "y": 3 },{ "label": "1", "x": 1, "y": 3 },{ "label": "2", "x": 2, "y": 3 },{ "label": "3", "x": 3, "y": 3 },{ "label": "Paste", "x": 4, "y": 3 },{ "label": "Shift", "x": 5.25, "y": 3, "w": 2.25 },{ "label": "Z", "x": 7.5, "y": 3 },{ "label": "X", "x": 8.5, "y": 3 },{ "label": "C", "x": 9.5, "y": 3 },{ "label": "V", "x": 10.5, "y": 3 },{ "label": "B", "x": 11.5, "y": 3 },{ "label": "N", "x": 12.5, "y": 3 },{ "label": "M", "x": 13.5, "y": 3 },{ "label": "<", "x": 14.5, "y": 3 },{ "label": ">", "x": 15.5, "y": 3 },{ "label": "?", "x": 16.5, "y": 3 },{ "label": "Shift", "x": 17.5, "y": 3, "w": 1.75 },{ "label": "Up", "x": 19.25, "y": 3 },{ "label": "End", "x": 20.25, "y": 3 },
|
||||||
|
{ "label": "Enter", "x": 0, "y": 4 },{ "label": ".", "x": 1, "y": 4 },{ "label": "0", "x": 2, "y": 4 },{ "label": "00", "x": 3, "y": 4 },{ "label": ",", "x": 4, "y": 4 },{ "label": "Ctrl", "x": 5.25, "y": 4, "w": 1.25 },{ "label": "Win", "x": 6.5, "y": 4, "w": 1.25 },{ "label": "Alt", "x": 7.75, "y": 4, "w": 1.25 },{ "label": "Space", "x": 9, "y": 4, "w": 2.25 },{ "label": "Space", "x": 11.25, "y": 4, "w": 1.25 },{ "label": "Space", "x": 12.5, "y": 4, "w": 2.25 },{ "label": "Alt", "x": 14.75, "y": 4, "w": 1.25 },{ "label": "Fn", "x": 16, "y": 4 },{ "label": "Ctrl", "x": 17, "y": 4, "w": 1.25 },{ "label": "Left", "x": 18.25, "y": 4 },{ "label": "Down", "x": 19.25, "y": 4 },{ "label": "Right", "x": 20.25, "y": 4 }
|
||||||
|
]
|
||||||
|
},
|
||||||
"LAYOUT_ansi": {
|
"LAYOUT_ansi": {
|
||||||
"layout": [
|
"layout": [
|
||||||
{ "label": "-", "x": 0, "y": 0 },{ "label": "/", "x": 1, "y": 0 },{ "label": "*", "x": 2, "y": 0 },{ "label": "Bksp", "x": 3, "y": 0 },{ "label": "Esc", "x": 4, "y": 0 },{ "label": "~", "x": 5.25, "y": 0 },{ "label": "!", "x": 6.25, "y": 0 },{ "label": "@", "x": 7.25, "y": 0 },{ "label": "#", "x": 8.25, "y": 0 },{ "label": "$", "x": 9.25, "y": 0 },{ "label": "%", "x": 10.25, "y": 0 },{ "label": "^", "x": 11.25, "y": 0 },{ "label": "&", "x": 12.25, "y": 0 },{ "label": "*", "x": 13.25, "y": 0 },{ "label": "(", "x": 14.25, "y": 0 },{ "label": ")", "x": 15.25, "y": 0 },{ "label": "_", "x": 16.25, "y": 0 },{ "label": "+", "x": 17.25, "y": 0 },{ "label": "Backspace", "x": 18.25, "y": 0, "w": 2 },{ "label": "Home", "x": 20.25, "y": 0 },
|
{ "label": "-", "x": 0, "y": 0 },{ "label": "/", "x": 1, "y": 0 },{ "label": "*", "x": 2, "y": 0 },{ "label": "Bksp", "x": 3, "y": 0 },{ "label": "Esc", "x": 4, "y": 0 },{ "label": "~", "x": 5.25, "y": 0 },{ "label": "!", "x": 6.25, "y": 0 },{ "label": "@", "x": 7.25, "y": 0 },{ "label": "#", "x": 8.25, "y": 0 },{ "label": "$", "x": 9.25, "y": 0 },{ "label": "%", "x": 10.25, "y": 0 },{ "label": "^", "x": 11.25, "y": 0 },{ "label": "&", "x": 12.25, "y": 0 },{ "label": "*", "x": 13.25, "y": 0 },{ "label": "(", "x": 14.25, "y": 0 },{ "label": ")", "x": 15.25, "y": 0 },{ "label": "_", "x": 16.25, "y": 0 },{ "label": "+", "x": 17.25, "y": 0 },{ "label": "Backspace", "x": 18.25, "y": 0, "w": 2 },{ "label": "Home", "x": 20.25, "y": 0 },
|
||||||
{ "label": "7", "x": 1, "y": 1 }, { "label": "8", "x": 2, "y": 1 }, { "label": "9", "x": 3, "y": 1 }, { "label": "Num Lock", "x": 4, "y": 1 }, { "label": "Tab", "x": 5.25, "y": 1, "w": 1.5 }, { "label": "Q", "x": 6.25, "y": 1 }, { "label": "W", "x": 7.25, "y": 1 }, { "label": "E", "x": 8.25, "y": 1 }, { "label": "R", "x": 9.25, "y": 1 }, { "label": "T", "x": 10.25, "y": 1 }, { "label": "Y", "x": 11.25, "y": 1 }, { "label": "U", "x": 12.25, "y": 1 }, { "label": "I", "x": 13.25, "y": 1 }, { "label": "O", "x": 14.25, "y": 1 }, { "label": "P", "x": 15.25, "y": 1 }, { "label": "{", "x": 16.25, "y": 1 }, { "label": "}", "x": 17.25, "y": 1 }, { "label": "|", "x": 18.75, "y": 1, "w": 1.5 }, { "label": "Delete", "x": 20.25, "y": 1 },
|
{ "label": "+", "x": 0, "y": 1, "h": 2 },{ "label": "7", "x": 1, "y": 1 },{ "label": "8", "x": 2, "y": 1 },{ "label": "9", "x": 3, "y": 1 },{ "label": "Num Lock", "x": 4, "y": 1 },{ "label": "Tab", "x": 5.25, "y": 1, "w": 1.5 },{ "label": "Q", "x": 6.75, "y": 1 },{ "label": "W", "x": 7.75, "y": 1 },{ "label": "E", "x": 8.75, "y": 1 },{ "label": "R", "x": 9.75, "y": 1 },{ "label": "T", "x": 10.75, "y": 1 },{ "label": "Y", "x": 11.75, "y": 1 },{ "label": "U", "x": 12.75, "y": 1 },{ "label": "I", "x": 13.75, "y": 1 },{ "label": "O", "x": 14.75, "y": 1 },{ "label": "P", "x": 15.75, "y": 1 },{ "label": "{", "x": 16.75, "y": 1 },{ "label": "}", "x": 17.75, "y": 1 },{ "label": "|", "x": 18.75, "y": 1, "w": 1.5 },{ "label": "Delete", "x": 20.25, "y": 1 },
|
||||||
{ "label": "+", "x": 0, "y": 2, "h": 2 }, { "label": "4", "x": 1, "y": 2 }, { "label": "5", "x": 2, "y": 2 }, { "label": "6", "x": 3, "y": 2 }, { "label": "Copy", "x": 4, "y": 2 },{ "label": "Capslock", "x": 5.25, "y": 3, "w": 1.75 }, { "label": "A", "x": 7, "y": 3 }, { "label": "S", "x": 8, "y": 3 }, { "label": "D", "x": 9, "y": 3 }, { "label": "F", "x": 10, "y": 3 }, { "label": "G", "x": 11, "y": 3 }, { "label": "H", "x": 12, "y": 3 }, { "label": "J", "x": 13, "y": 3 }, { "label": "K", "x": 14, "y": 3 }, { "label": "L", "x": 15, "y": 3 }, { "label": ":", "x": 16, "y": 3 }, { "label": "\"", "x": 17, "y": 3 }, { "label": "Enter", "x": 18, "y": 1, "w": 2.25 }, { "label": "PageUp", "x": 20.25, "y": 1 },
|
{ "label": "4", "x": 1, "y": 2 },{ "label": "5", "x": 2, "y": 2 },{ "label": "6", "x": 3, "y": 2 },{ "label": "Copy", "x": 4, "y": 2 },{ "label": "Capslock", "x": 5.25, "y": 2, "w": 1.75 },{ "label": "A", "x": 7, "y": 2 },{ "label": "S", "x": 8, "y": 2 },{ "label": "D", "x": 9, "y": 2 },{ "label": "F", "x": 10, "y": 2 },{ "label": "G", "x": 11, "y": 2 },{ "label": "H", "x": 12, "y": 2 },{ "label": "J", "x": 13, "y": 2 },{ "label": "K", "x": 14, "y": 2 },{ "label": "L", "x": 15, "y": 2 },{ "label": ":", "x": 16, "y": 2 },{ "label": "\"", "x": 17, "y": 2 },{ "label": "Enter", "x": 18, "y": 2, "w": 2.25 },{ "label": "PageUp", "x": 20.25, "y": 2 },
|
||||||
{ "label": "1", "x": 1, "y": 4 }, { "label": "2", "x": 2, "y": 4 }, { "label": "3", "x": 3, "y": 4 }, { "label": "Paste", "x": 4, "y": 4 },{ "label": "Shift", "x": 5.25, "y": 4, "w": 2.25 },{ "label": "Z", "x": 7.5, "y": 4 },{ "label": "X", "x": 8.5, "y": 4 },{ "label": "C", "x": 9.5, "y": 4 },{ "label": "V", "x": 10.5, "y": 4 },{ "label": "B", "x": 11.5, "y": 4 },{ "label": "N", "x": 12.5, "y": 4 },{ "label": "M", "x": 13.5, "y": 4 },{ "label": "<", "x": 14.5, "y": 4 },{ "label": ">", "x": 15.5, "y": 4 },{ "label": "?", "x": 16.5, "y": 4 },{ "label": "Shift", "x": 17.5, "y": 4, "w": 1.75 },{ "label": "Up", "x": 19.25, "y": 4 },{ "label": "PageDown", "x": 20.25, "y": 4 },
|
{ "label": "Enter", "x": 0, "y": 3, "h": 2 },{ "label": "1", "x": 1, "y": 3 },{ "label": "2", "x": 2, "y": 3 },{ "label": "3", "x": 3, "y": 3 },{ "label": "Paste", "x": 4, "y": 3 },{ "label": "Shift", "x": 5.25, "y": 3, "w": 2.25 },{ "label": "Z", "x": 7.5, "y": 3 },{ "label": "X", "x": 8.5, "y": 3 },{ "label": "C", "x": 9.5, "y": 3 },{ "label": "V", "x": 10.5, "y": 3 },{ "label": "B", "x": 11.5, "y": 3 },{ "label": "N", "x": 12.5, "y": 3 },{ "label": "M", "x": 13.5, "y": 3 },{ "label": "<", "x": 14.5, "y": 3 },{ "label": ">", "x": 15.5, "y": 3 },{ "label": "?", "x": 16.5, "y": 3 },{ "label": "Shift", "x": 17.5, "y": 3, "w": 1.75 },{ "label": "Up", "x": 19.25, "y": 3 },{ "label": "PageDown", "x": 20.25, "y": 3 },
|
||||||
{ "label": "Enter", "x": 0, "y": 5, "h": 2 }, { "label": ".", "x": 1, "y": 5 }, { "label": "0", "x": 2, "y": 5, "w": 2 }, { "label": ",", "x": 4, "y": 5 },{ "label": "Ctrl", "x": 5.25, "y": 5, "w": 1.25 },{ "label": "Win", "x": 6.5, "y": 5, "w": 1.25 },{ "label": "Alt", "x": 7.75, "y": 5, "w": 1.25 },{ "label": "Space", "x": 9, "y": 5, "w": 6.25 },{ "label": "Alt", "x": 15.25, "y": 5, "w": 1.5 },{ "label": "Fn", "x": 16.75, "y": 5, "w": 1.5 },{ "label": "Left", "x": 18.25, "y": 5 },{ "label": "Down", "x": 19.25, "y": 5 },{ "label": "Right", "x": 20.25, "y": 5 }
|
{ "label": ".", "x": 1, "y": 4 },{ "label": "0", "x": 2, "y": 4, "w": 2 },{ "label": ",", "x": 4, "y": 4 },{ "label": "Ctrl", "x": 5.25, "y": 4, "w": 1.25 },{ "label": "Win", "x": 6.5, "y": 4, "w": 1.25 },{ "label": "Alt", "x": 7.75, "y": 4, "w": 1.25 },{ "label": "Space", "x": 9, "y": 4, "w": 6.25 },{ "label": "Alt", "x": 15.25, "y": 4, "w": 1.5 },{ "label": "Fn", "x": 16.75, "y": 4, "w": 1.5 },{ "label": "Left", "x": 18.25, "y": 4 },{ "label": "Down", "x": 19.25, "y": 4 },{ "label": "Right", "x": 20.25, "y": 4 }
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,18 +25,18 @@ enum layer_names {
|
|||||||
#define CMD_PASTE LSFT(KC_INS)
|
#define CMD_PASTE LSFT(KC_INS)
|
||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
[_DEF] = LAYOUT_ansi(
|
[_DEF] = LAYOUT_all(
|
||||||
KC_PMNS, KC_PAST, KC_PSLS, KC_BSPACE, KC_ESC, KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, KC_EQUAL, KC_BSPACE, KC_HOME,
|
KC_CALC, KC_PAST, KC_PSLS, KC_BSPACE, KC_ESC, KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, KC_EQUAL, KC_BSLASH , KC_PSCR, KC_HOME,
|
||||||
KC_P7, KC_P8, KC_P9, KC_NUMLOCK, 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_BSLASH, KC_PGUP,
|
KC_PMNS, KC_P7, KC_P8, KC_P9, KC_NUMLOCK, 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_BSPACE, KC_PGUP,
|
||||||
KC_PPLS, KC_P4, KC_P5, KC_P6, CMD_COPY, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCOLON, KC_QUOTE, KC_ENTER, KC_PGDN,
|
KC_PPLS, KC_P4, KC_P5, KC_P6, CMD_COPY, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCOLON, KC_QUOTE, KC_ENTER, KC_PGDN,
|
||||||
KC_P1, KC_P2, KC_P3, CMD_PASTE, KC_LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH, KC_RSHIFT, KC_UP, KC_END,
|
KC_EQL, KC_P1, KC_P2, KC_P3, CMD_PASTE, KC_LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH, KC_RSHIFT, KC_UP, KC_END,
|
||||||
KC_PENT, KC_PDOT, KC_P0, KC_COMMA , KC_LCTRL, KC_LGUI, KC_LALT, KC_SPACE, KC_RALT, MO(_FNC), KC_LEFT, KC_DOWN, KC_RIGHT
|
KC_PENT, KC_PDOT, KC_P0, KC_P0, KC_COMMA , KC_LCTRL, KC_LGUI, KC_LALT, KC_SPACE, KC_SPACE, KC_SPACE, KC_RALT, MO(_FNC), KC_RCTRL, KC_LEFT, KC_DOWN, KC_RIGHT
|
||||||
),
|
),
|
||||||
[_FNC] = LAYOUT_ansi(
|
[_FNC] = LAYOUT_all(
|
||||||
_______, _______, _______, _______, _______, _______, 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_PSCR,
|
_______, _______, _______, _______, _______, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_RMOD, RGB_MOD, KC_INS, KC_VOLU,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_RMOD, RGB_MOD, _______, KC_VOLU,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_TOGG, KC_VOLD,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_TOGG, KC_VOLD,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_DEC, BL_INC, BL_BRTG, _______, _______, KC_MUTE,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_DEC, BL_INC, BL_BRTG, _______, _______, KC_MUTE,
|
||||||
_______, _______, _______, _______ , _______, _______, _______, _______, _______, MO(_FNC), _______, _______, _______
|
_______, _______, _______, _______, _______ , _______, _______, _______, _______, _______, _______, _______, MO(_FNC), _______, _______, _______, _______
|
||||||
)
|
)
|
||||||
};
|
};
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
/* Copyright 2020 Nguyen Minh HOang
|
||||||
|
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General 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
|
||||||
|
|
||||||
|
// Defines names for use in layer keycodes and the keymap
|
||||||
|
enum layer_names {
|
||||||
|
_DEF,
|
||||||
|
_FNC
|
||||||
|
};
|
||||||
|
|
||||||
|
#define CMD_COPY LCTL(KC_INS)
|
||||||
|
#define CMD_PASTE LSFT(KC_INS)
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[_DEF] = LAYOUT_ansi(
|
||||||
|
KC_PMNS, KC_PAST, KC_PSLS, KC_BSPACE, KC_ESC, KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, KC_EQUAL, KC_BSPACE, KC_HOME,
|
||||||
|
KC_PPLS, KC_P7, KC_P8, KC_P9, KC_NUMLOCK, 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_BSLASH, KC_PGUP,
|
||||||
|
KC_P4, KC_P5, KC_P6, CMD_COPY, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCOLON, KC_QUOTE, KC_ENTER, KC_PGDN,
|
||||||
|
KC_PENT, KC_P1, KC_P2, KC_P3, CMD_PASTE, KC_LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH, KC_RSHIFT, KC_UP, KC_END,
|
||||||
|
KC_PDOT, KC_P0, KC_COMMA , KC_LCTRL, KC_LGUI, KC_LALT, KC_SPACE, KC_RALT, MO(_FNC), KC_LEFT, KC_DOWN, KC_RIGHT
|
||||||
|
),
|
||||||
|
[_FNC] = LAYOUT_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_PSCR,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_RMOD, RGB_MOD, KC_INS, KC_VOLU,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_TOGG, KC_VOLD,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_DEC, BL_INC, BL_BRTG, _______, _______, KC_MUTE,
|
||||||
|
_______, _______, _______ , _______, _______, _______, _______, _______, MO(_FNC), _______, _______, _______
|
||||||
|
)
|
||||||
|
};
|
||||||
@@ -42,10 +42,10 @@
|
|||||||
|
|
||||||
#define LAYOUT_ansi(\
|
#define LAYOUT_ansi(\
|
||||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, K12, K13, K14, K15, K16, K17, K19, K96, \
|
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, K12, K13, K14, K15, K16, K17, K19, K96, \
|
||||||
K21, K22, K23, K24, K25, K26, K27, K28, K29, K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, \
|
K40, K21, K22, K23, K24, K25, K26, K27, K28, K29, K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, \
|
||||||
K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K50, K51, K52, K53, K54, K55, K56, K58, K59, \
|
K41, K42, K43, K44, K45, K46, K47, K48, K49, K50, K51, K52, K53, K54, K55, K56, K58, K59, \
|
||||||
K61, K62, K63, K64, K65, K66, K67, K68, K69, K70, K71, K72, K73, K74, K75, K77, K78, K79, \
|
K80, K61, K62, K63, K64, K65, K66, K67, K68, K69, K70, K71, K72, K73, K74, K75, K77, K78, K79, \
|
||||||
K80, K81, K83, K84, K85, K86, K87, K89, K93, K95, K97, K98, K99 \
|
K81, K83, K84, K85, K86, K87, K89, K93, K95, K97, K98, K99 \
|
||||||
) {\
|
) {\
|
||||||
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09 },\
|
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09 },\
|
||||||
{ K10, K11, K12, K13, K14, K15, K16, K17, KC_NO, K19 },\
|
{ K10, K11, K12, K13, K14, K15, K16, K17, KC_NO, K19 },\
|
||||||
|
|||||||
@@ -25,7 +25,7 @@
|
|||||||
* The second converts the arguments into a two-dimensional array which
|
* The second converts the arguments into a two-dimensional array which
|
||||||
* represents the switch matrix.
|
* represents the switch matrix.
|
||||||
*/
|
*/
|
||||||
#define LAYOUT( \
|
#define LAYOUT_split_3x5_3( \
|
||||||
L00, L01, L02, L03, L04, R04, R03, R02, R01, R00, \
|
L00, L01, L02, L03, L04, R04, R03, R02, R01, R00, \
|
||||||
L10, L11, L12, L13, L14, R14, R13, R12, R11, R10, \
|
L10, L11, L12, L13, L14, R14, R13, R12, R11, R10, \
|
||||||
L20, L21, L22, L23, L24, R24, R23, R22, R21, R20, \
|
L20, L21, L22, L23, L24, R24, R23, R22, R21, R20, \
|
||||||
@@ -42,3 +42,4 @@
|
|||||||
{ R30, R31, R32 }, \
|
{ R30, R31, R32 }, \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define LAYOUT LAYOUT_split_3x5_3
|
||||||
@@ -5,7 +5,7 @@
|
|||||||
"width": 13.2,
|
"width": 13.2,
|
||||||
"height": 4.85,
|
"height": 4.85,
|
||||||
"layouts": {
|
"layouts": {
|
||||||
"LAYOUT": {
|
"LAYOUT_split_3x5_3": {
|
||||||
"layout": [
|
"layout": [
|
||||||
{"x": 0, "y": 0.375},
|
{"x": 0, "y": 0.375},
|
||||||
{"x": 1, "y": 0.125},
|
{"x": 1, "y": 0.125},
|
||||||
|
|||||||
@@ -29,25 +29,25 @@ enum layers{
|
|||||||
#define KC_SET_CTRL LT(SETTING,KC_LCTRL)
|
#define KC_SET_CTRL LT(SETTING,KC_LCTRL)
|
||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
[BASE] = LAYOUT( /* Base */
|
[BASE] = LAYOUT_split_3x5_3( /* Base */
|
||||||
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
|
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
|
||||||
KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,
|
KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,
|
||||||
KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH,
|
KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH,
|
||||||
KC_SET_CTRL, KC_NUM_ALT, KC_CMD_SP, KC_CMD_ET, KC_BSPC, KC_LSFT
|
KC_SET_CTRL, KC_NUM_ALT, KC_CMD_SP, KC_CMD_ET, KC_BSPC, KC_LSFT
|
||||||
),
|
),
|
||||||
[COMMAND] = LAYOUT( /* Base */
|
[COMMAND] = LAYOUT_split_3x5_3( /* Base */
|
||||||
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
|
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
|
||||||
KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,
|
KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,
|
||||||
LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), LCTL(KC_B), KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH,
|
LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), LCTL(KC_B), KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH,
|
||||||
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
|
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
|
||||||
),
|
),
|
||||||
[NUMBER] = LAYOUT( /* Base */
|
[NUMBER] = LAYOUT_split_3x5_3( /* Base */
|
||||||
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_P7, KC_P8, KC_P9, KC_NO, KC_NO,
|
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_P7, KC_P8, KC_P9, KC_NO, KC_NO,
|
||||||
KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_P4, KC_P5, KC_P6, KC_NO, KC_NO,
|
KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_P4, KC_P5, KC_P6, KC_NO, KC_NO,
|
||||||
KC_F11, KC_F12, KC_NO, KC_NO, KC_NO, KC_P1, KC_P2, KC_P3, KC_NO, KC_NO,
|
KC_F11, KC_F12, KC_NO, KC_NO, KC_NO, KC_P1, KC_P2, KC_P3, KC_NO, KC_NO,
|
||||||
KC_NO, KC_NO, KC_NO, KC_P0, KC_PDOT, KC_NO
|
KC_NO, KC_NO, KC_NO, KC_P0, KC_PDOT, KC_NO
|
||||||
),
|
),
|
||||||
[SETTING] = LAYOUT( /* Base */
|
[SETTING] = LAYOUT_split_3x5_3( /* Base */
|
||||||
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||||
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||||
KC_NO, KC_NO, KC_NO, KC_NO, RGB_MOD, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
KC_NO, KC_NO, KC_NO, KC_NO, RGB_MOD, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||||
|
|||||||
@@ -25,7 +25,7 @@
|
|||||||
* The second converts the arguments into a two-dimensional array which
|
* The second converts the arguments into a two-dimensional array which
|
||||||
* represents the switch matrix.
|
* represents the switch matrix.
|
||||||
*/
|
*/
|
||||||
#define LAYOUT( \
|
#define LAYOUT_split_3x5_3( \
|
||||||
L00, L01, L02, L03, L04, R04, R03, R02, R01, R00, \
|
L00, L01, L02, L03, L04, R04, R03, R02, R01, R00, \
|
||||||
L10, L11, L12, L13, L14, R14, R13, R12, R11, R10, \
|
L10, L11, L12, L13, L14, R14, R13, R12, R11, R10, \
|
||||||
L20, L21, L22, L23, L24, R24, R23, R22, R21, R20, \
|
L20, L21, L22, L23, L24, R24, R23, R22, R21, R20, \
|
||||||
@@ -43,3 +43,5 @@
|
|||||||
{ R03, R13, R23, KC_NO }, \
|
{ R03, R13, R23, KC_NO }, \
|
||||||
{ R04, R14, R24, KC_NO }, \
|
{ R04, R14, R24, KC_NO }, \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define LAYOUT LAYOUT_split_3x5_3
|
||||||
@@ -1 +1,2 @@
|
|||||||
RGBLIGHT_ENABLE = yes
|
RGBLIGHT_ENABLE = yes
|
||||||
|
LAYOUTS = split_3x5_3
|
||||||
Reference in new issue
Block a user