Merge branch 'develop' into playground

This commit is contained in:
lalalademaxiya1
2022-08-17 15:38:19 +09:00
20 changed files with 514 additions and 162 deletions

View File

@@ -406,11 +406,11 @@ And you're done. The RGB layer indication will only work if you want it to. And
The `val` is the value of the data that you want to write to EEPROM. And the `eeconfig_read_*` function return a 32 bit (DWORD) value from the EEPROM.
### Deferred Execution :id=deferred-execution
# Deferred Execution :id=deferred-execution
QMK has the ability to execute a callback after a specified period of time, rather than having to manually manage timers. To enable this functionality, set `DEFERRED_EXEC_ENABLE = yes` in rules.mk.
#### Deferred executor callbacks
## Deferred executor callbacks
All _deferred executor callbacks_ have a common function signature and look like:
@@ -430,7 +430,7 @@ The return value is the number of milliseconds to use if the function should be
?> Note that the returned delay will be applied to the intended trigger time, not the time of callback invocation. This allows for generally consistent timing even in the face of occasional late execution.
#### Deferred executor registration
## Deferred executor registration
Once a callback has been defined, it can be scheduled using the following API:
@@ -444,7 +444,7 @@ The third parameter is the `cb_arg` that gets passed to the callback at the poin
The return value is a `deferred_token` that can consequently be used to cancel the deferred executor callback before it's invoked. If a failure occurs, the returned value will be `INVALID_DEFERRED_TOKEN`. Usually this will be as a result of supplying `0` to the delay, or a `NULL` for the callback. The other failure case is if there are too many deferred executions "in flight" -- this can be increased by changing the limit, described below.
#### Extending a deferred execution
## Extending a deferred execution
The `deferred_token` returned by `defer_exec()` can be used to extend a the duration a pending execution waits before it gets invoked:
```c
@@ -452,7 +452,7 @@ The `deferred_token` returned by `defer_exec()` can be used to extend a the dura
extend_deferred_exec(my_token, 800);
```
#### Cancelling a deferred execution
## Cancelling a deferred execution
The `deferred_token` returned by `defer_exec()` can be used to cancel a pending execution before it gets invoked:
```c
@@ -462,7 +462,7 @@ cancel_deferred_exec(my_token);
Once a token has been canceled, it should be considered invalid. Reusing the same token is not supported.
#### Deferred callback limits
## Deferred callback limits
There are a maximum number of deferred callbacks that can be scheduled, controlled by the value of the define `MAX_DEFERRED_EXECUTORS`.

View File

@@ -326,7 +326,7 @@ bool process_combo_key_release(uint16_t combo_index, combo_t *combo, uint8_t key
If you, for example, use multiple base layers for different key layouts, one for QWERTY, and another one for Colemak, you might want your combos to work from the same key positions on all layers. Defining the same combos again for another layout is redundant and takes more memory. The solution is to just check the keycodes from one layer.
With `#define COMBO_ONLY_FROM_LAYER _LAYER_A` the combos' keys are always checked from layer `_LAYER_A` even though the active layer would be `_LAYER_B`.
With `#define COMBO_ONLY_FROM_LAYER 0` in config.h, the combos' keys are always checked from layer `0`, even if other layers are active.
## User callbacks

View File

@@ -46,9 +46,12 @@ Closed PRs (for inspiration, previous sets of review comments will help you elim
https://github.com/qmk/qmk_firmware/pulls?q=is%3Apr+is%3Aclosed+label%3Akeyboard
- `info.json`
- valid URL
- valid maintainer
- displays correctly in Configurator (press Ctrl+Shift+I to preview local file, turn on fast input to verify ordering)
- With the move to [data driven](https://docs.qmk.fm/#/data_driven_config) keyboard configuration, we encourage contributors to utilise as many features as possible of the info.json [schema](https://github.com/qmk/qmk_firmware/blob/master/data/schemas/keyboard.jsonschema).
- the mandatory elements for a minimally complete `info.json` at present are:
- valid URL
- valid maintainer
- valid USB VID/PID and device version
- displays correctly in Configurator (press Ctrl+Shift+I to preview local file, turn on fast input to verify ordering)
- `readme.md`
- standard template should be present -- [link to template](https://github.com/qmk/qmk_firmware/blob/master/data/templates/keyboard/readme.md)
- flash command is present, and has `:flash` at end

View File

@@ -22,7 +22,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
[_LOWER] = LAYOUT_ortho_4x12(
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, _______, _______, _______,
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, RCMD(RALT(KC_O)), RCMD(RALT(KC_L)), _______,
_______, KC_LT, KC_GT, KC_LPRN, KC_RPRN, KC_GRV, KC_MINS, KC_LCBR, KC_RCBR, KC_LBRC, KC_RBRC, KC_PIPE,
KC_LALT, _______, _______, _______, KC_EQL, KC_QUES, KC_UNDS, KC_PLUS, KC_COMM, _______, KC_SLSH, _______,
_______, _______, _______, _______, _______, KC_TRNS, KC_TRNS, KC_RGUI, _______, _______, _______, _______

View File

@@ -39,6 +39,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define WS2812_PWM_COMPLEMENTARY_OUTPUT
#define WS2812_DMA_STREAM STM32_DMA1_STREAM5
#define WS2812_DMA_CHANNEL 5
#define WS2812_BYTE_ORDER WS2812_BYTE_ORDER_RGB
#define RGB_DI_PIN B15
#define RGBLED_NUM 36

View File

@@ -1,98 +0,0 @@
#include QMK_KEYBOARD_H
enum layer_names {
_BASE,
_LOWER,
_RAISE,
_ADJUST
};
#define LOWER MO(_LOWER)
#define RAISE MO(_RAISE)
#define ADJUST MO(_ADJUST)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_BASE] = LAYOUT_ergodox(
// left hand
_______, _______, _______, _______, _______, _______, _______,
KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, LGUI(KC_LCTL),
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G,
KC_SPC, KC_Z, KC_X, KC_C, KC_V, KC_B, LGUI(KC_LALT),
_______, _______, _______, _______, LOWER,
KC_LGUI, _______,
_______,
KC_ENT, RGUI(KC_RCTL), _______,
// right hand
_______, _______, _______, _______, _______, _______, _______,
RGUI(KC_RCTL), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
KC_H, KC_J, KC_K, KC_L, KC_RSFT, KC_RGUI,
RGUI(KC_RALT), KC_N, KC_M, KC_RCTL, KC_DOT, KC_RALT, RGUI(KC_RSFT),
RAISE, _______, _______, _______, _______,
_______, KC_RGUI,
_______,
_______, KC_BSPC, KC_ENT
),
[_LOWER] = LAYOUT_ergodox(
// left hand
_______, _______, _______, _______, _______, _______, _______,
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, _______,
_______, KC_LT, KC_GT, KC_LPRN, KC_RPRN, KC_GRV,
KC_LALT, _______, _______, _______, KC_EQL, KC_QUES, _______,
_______, _______, _______, _______, _______,
_______, _______,
_______,
KC_NO, KC_NO, _______,
// right hand
_______, _______, _______, _______, _______, _______, _______,
KC_NO, KC_CIRC, KC_AMPR, KC_ASTR, _______, _______, _______,
KC_MINS, KC_LCBR, KC_RCBR, KC_LBRC, KC_RBRC, KC_PIPE,
KC_NO, KC_UNDS, KC_PLUS, KC_COMM, _______, KC_SLSH, _______,
KC_RGUI, _______, _______, _______, _______,
_______, KC_NO,
_______,
_______, KC_NO, KC_NO
),
[_RAISE] = LAYOUT_ergodox(
// left hand
_______, _______, _______, _______, _______, _______, _______,
KC_NO, KC_1, KC_2, KC_3, KC_4, KC_5, _______,
KC_NO, KC_COLN, KC_SCLN, KC_DQT, KC_QUOT, KC_BSLS,
_______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, KC_LGUI,
_______, _______,
_______,
KC_NO, KC_NO, _______,
// right hand
_______, _______, _______, _______, _______, _______, KC_NO,
KC_NO, KC_6, KC_7, KC_8, KC_9, KC_0, KC_NO,
KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, KC_NO,
_______, ADJUST, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______,
_______, KC_NO,
_______,
_______, KC_NO, KC_NO
),
[_ADJUST] = LAYOUT_ergodox(
// left hand
_______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______,
KC_MUTE, KC_VOLD, KC_VOLU, KC_BRID, KC_BRIU, RESET, _______,
_______, _______, _______, _______, KC_LGUI,
_______, _______,
_______,
KC_NO, KC_NO, _______,
// right hand
_______, _______, _______, _______, _______, _______, _______,
KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______,
KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______,
_______, _______, _______, _______, _______, KC_LANG1, KC_LANG2,
_______, _______, _______, _______, _______,
_______, KC_NO,
_______,
_______, KC_NO, KC_NO
)
};

View File

@@ -45,6 +45,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define WS2812_PWM_PAL_MODE 2
#define WS2812_DMA_STREAM STM32_DMA1_STREAM5
#define WS2812_DMA_CHANNEL 5
#define WS2812_BYTE_ORDER WS2812_BYTE_ORDER_RGB
#define RGB_DI_PIN A9
#define RGBLED_NUM 37

View File

@@ -0,0 +1,32 @@
/*
Copyright 2021 Kyle McCreery
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"
/* key matrix size */
#define MATRIX_ROWS 6
#define MATRIX_COLS 17
#define MATRIX_ROW_PINS { B0, B1, B2, E6, F0, F1 }
#define MATRIX_COL_PINS { D0, D1, D2, D3, D5, D4, D6, D7, B4, B5, B6, C6, C7, F7, F6, F5, F4 }
#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

View File

@@ -0,0 +1,16 @@
/* Copyright 2021 Ocean
* 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 "ibis80.h"

View File

@@ -0,0 +1,76 @@
/* Copyright 2021 Ocean
*
* 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 XXX KC_NO
/*
* ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ ┌───┬───┬───┐
* │00 ││01 │02 │03 │04 ││05 │06 │07 │08 ││09 │0A │0B │0C ││0D │ │0E │0F │0G │
* └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ └───┴───┴───┘
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐
* │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │ │1E │1F │1G │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ ┌─────┐
* │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2D │ │2E │2F │2G │ │3D │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ ┌──┴┐ │ ISO Enter
* │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3D │ │2D │ │
* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ └───┴────┘
* │40 │41 │42 │43 │44 │45 │46 │47 │48 │49 │4A │4D │ │4F │
* ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─────┤ ┌───┼───┼───┐
* │50 │51 │52 │56 │5A │5B │5D │ │5E │5F │5G │
* └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘
* ┌─────┐ ┌─────┬───────────────────────────┬─────┐ ┌─────┐
* │50 │ │52 │56 │5A │ │5D │
* └─────┘ └─────┴───────────────────────────┴─────┘ └─────┘
*/
#define LAYOUT(\
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, \
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, \
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g, \
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, \
k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4d, k4f, \
k50, k51, k52, k56, k5a, k5b, k5d, k5e, k5f, k5g \
) \
{ \
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g }, \
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g }, \
{ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g }, \
{ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, KC_NO, k3d, KC_NO, KC_NO, KC_NO }, \
{ k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, KC_NO, KC_NO, k4d, KC_NO, k4f, KC_NO }, \
{ k50, k51, k52, KC_NO, KC_NO, KC_NO, k56, KC_NO, KC_NO, KC_NO, k5a, k5b, KC_NO, k5d, k5e, k5f, k5g } \
}
#define LAYOUT_all(\
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, \
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, \
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k3d, k2e, k2f, k2g, \
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k2d, \
k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4d, k4f, \
k50, k52, k56, k5a, k5d, k5e, k5f, k5g \
) \
{ \
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g }, \
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g }, \
{ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k3d, k2e, k2f, k2g }, \
{ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, KC_NO, k2d, KC_NO, KC_NO, KC_NO }, \
{ k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, KC_NO, KC_NO, k4d, KC_NO, k4f, KC_NO }, \
{ k50, KC_NO, k52, KC_NO, KC_NO, KC_NO, k56, KC_NO, KC_NO, KC_NO, k5a, KC_NO, KC_NO, k5d, k5e, k5f, k5g } \
}

View File

@@ -0,0 +1,213 @@
{
"keyboard_name": "ibis 80",
"manufacturer": "Mokey",
"url": "",
"maintainer": "Mokey",
"usb": {
"vid": "0x6653",
"pid": "0x3380",
"device_version": "0.0.1"
},
"layouts": {
"LAYOUT": {
"layout": [
{"label": "k00", "x": 0, "y": 0},
{"label": "k01", "x": 1.25, "y": 0},
{"label": "k02", "x": 2.25, "y": 0},
{"label": "k03", "x": 3.25, "y": 0},
{"label": "k04", "x": 4.25, "y": 0},
{"label": "k05", "x": 5.5, "y": 0},
{"label": "k06", "x": 6.5, "y": 0},
{"label": "k07", "x": 7.5, "y": 0},
{"label": "k08", "x": 8.5, "y": 0},
{"label": "k09", "x": 9.75, "y": 0},
{"label": "k0A", "x": 10.75, "y": 0},
{"label": "k0B", "x": 11.75, "y": 0},
{"label": "k0C", "x": 12.75, "y": 0},
{"label": "k0D", "x": 14, "y": 0},
{"label": "k0E", "x": 15.25, "y": 0},
{"label": "k0F", "x": 16.25, "y": 0},
{"label": "k0G", "x": 17.25, "y": 0},
{"label": "k10", "x": 0, "y": 1.5},
{"label": "k11", "x": 1, "y": 1.5},
{"label": "k12", "x": 2, "y": 1.5},
{"label": "k13", "x": 3, "y": 1.5},
{"label": "k14", "x": 4, "y": 1.5},
{"label": "k15", "x": 5, "y": 1.5},
{"label": "k16", "x": 6, "y": 1.5},
{"label": "k17", "x": 7, "y": 1.5},
{"label": "k18", "x": 8, "y": 1.5},
{"label": "k19", "x": 9, "y": 1.5},
{"label": "k1A", "x": 10, "y": 1.5},
{"label": "k1B", "x": 11, "y": 1.5},
{"label": "k1C", "x": 12, "y": 1.5},
{"label": "k1D", "x": 13, "y": 1.5, "w": 2},
{"label": "k1E", "x": 15.25, "y": 1.5},
{"label": "k1F", "x": 16.25, "y": 1.5},
{"label": "k1G", "x": 17.25, "y": 1.5},
{"label": "k20", "x": 0, "y": 2.5, "w": 1.5},
{"label": "k21", "x": 1.5, "y": 2.5},
{"label": "k22", "x": 2.5, "y": 2.5},
{"label": "k23", "x": 3.5, "y": 2.5},
{"label": "k24", "x": 4.5, "y": 2.5},
{"label": "k25", "x": 5.5, "y": 2.5},
{"label": "k26", "x": 6.5, "y": 2.5},
{"label": "k27", "x": 7.5, "y": 2.5},
{"label": "k28", "x": 8.5, "y": 2.5},
{"label": "k29", "x": 9.5, "y": 2.5},
{"label": "k2A", "x": 10.5, "y": 2.5},
{"label": "k2B", "x": 11.5, "y": 2.5},
{"label": "k2C", "x": 12.5, "y": 2.5},
{"label": "k2D", "x": 13.5, "y": 2.5},
{"label": "k2E", "x": 15.25, "y": 2.5},
{"label": "k2F", "x": 16.25, "y": 2.5},
{"label": "k2G", "x": 17.25, "y": 2.5},
{"label": "k30", "x": 0, "y": 3.5, "w": 1.75},
{"label": "k31", "x": 1.75, "y": 3.5},
{"label": "k32", "x": 2.75, "y": 3.5},
{"label": "k33", "x": 3.75, "y": 3.5},
{"label": "k34", "x": 4.75, "y": 3.5},
{"label": "k35", "x": 5.75, "y": 3.5},
{"label": "k36", "x": 6.75, "y": 3.5},
{"label": "k37", "x": 7.75, "y": 3.5},
{"label": "k38", "x": 8.75, "y": 3.5},
{"label": "k39", "x": 9.75, "y": 3.5},
{"label": "k3A", "x": 10.75, "y": 3.5},
{"label": "k3B", "x": 11.75, "y": 3.5},
{"label": "k3D", "x": 12.75, "y": 3.5, "w": 2.25},
{"label": "k40", "x": 0, "y": 4.5, "w": 2.25},
{"label": "k41", "x": 2.25, "y": 4.5},
{"label": "k42", "x": 3.25, "y": 4.5},
{"label": "k43", "x": 4.25, "y": 4.5},
{"label": "k44", "x": 5.25, "y": 4.5},
{"label": "k45", "x": 6.25, "y": 4.5},
{"label": "k46", "x": 7.25, "y": 4.5},
{"label": "k47", "x": 8.25, "y": 4.5},
{"label": "k48", "x": 9.25, "y": 4.5},
{"label": "k49", "x": 10.25, "y": 4.5},
{"label": "k4A", "x": 11.25, "y": 4.5},
{"label": "k4D", "x": 12.25, "y": 4.5, "w": 2.75},
{"label": "k4F", "x": 16.25, "y": 4.5},
{"label": "k50", "x": 0, "y": 5.5, "w": 1.5},
{"label": "k51", "x": 1.5, "y": 5.5},
{"label": "k52", "x": 2.5, "y": 5.5, "w": 1.5},
{"label": "k56", "x": 4, "y": 5.5, "w": 7},
{"label": "k5A", "x": 11, "y": 5.5, "w": 1.5},
{"label": "k5B", "x": 12.5, "y": 5.5},
{"label": "k5D", "x": 13.5, "y": 5.5, "w": 1.5},
{"label": "k5E", "x": 15.25, "y": 5.5},
{"label": "k5F", "x": 16.25, "y": 5.5},
{"label": "k5G", "x": 17.25, "y": 5.5}
]
},
"LAYOUT_all": {
"layout": [
{"label": "k00", "x": 0, "y": 0},
{"label": "k01", "x": 1.25, "y": 0},
{"label": "k02", "x": 2.25, "y": 0},
{"label": "k03", "x": 3.25, "y": 0},
{"label": "k04", "x": 4.25, "y": 0},
{"label": "k05", "x": 5.5, "y": 0},
{"label": "k06", "x": 6.5, "y": 0},
{"label": "k07", "x": 7.5, "y": 0},
{"label": "k08", "x": 8.5, "y": 0},
{"label": "k09", "x": 9.75, "y": 0},
{"label": "k0A", "x": 10.75, "y": 0},
{"label": "k0B", "x": 11.75, "y": 0},
{"label": "k0C", "x": 12.75, "y": 0},
{"label": "k0D", "x": 14, "y": 0},
{"label": "k0E", "x": 15.25, "y": 0},
{"label": "k0F", "x": 16.25, "y": 0},
{"label": "k0G", "x": 17.25, "y": 0},
{"label": "k10", "x": 0, "y": 1.5},
{"label": "k11", "x": 1, "y": 1.5},
{"label": "k12", "x": 2, "y": 1.5},
{"label": "k13", "x": 3, "y": 1.5},
{"label": "k14", "x": 4, "y": 1.5},
{"label": "k15", "x": 5, "y": 1.5},
{"label": "k16", "x": 6, "y": 1.5},
{"label": "k17", "x": 7, "y": 1.5},
{"label": "k18", "x": 8, "y": 1.5},
{"label": "k19", "x": 9, "y": 1.5},
{"label": "k1A", "x": 10, "y": 1.5},
{"label": "k1B", "x": 11, "y": 1.5},
{"label": "k1C", "x": 12, "y": 1.5},
{"label": "k1D", "x": 13, "y": 1.5, "w": 2},
{"label": "k1E", "x": 15.25, "y": 1.5},
{"label": "k1F", "x": 16.25, "y": 1.5},
{"label": "k1G", "x": 17.25, "y": 1.5},
{"label": "k20", "x": 0, "y": 2.5, "w": 1.5},
{"label": "k21", "x": 1.5, "y": 2.5},
{"label": "k22", "x": 2.5, "y": 2.5},
{"label": "k23", "x": 3.5, "y": 2.5},
{"label": "k24", "x": 4.5, "y": 2.5},
{"label": "k25", "x": 5.5, "y": 2.5},
{"label": "k26", "x": 6.5, "y": 2.5},
{"label": "k27", "x": 7.5, "y": 2.5},
{"label": "k28", "x": 8.5, "y": 2.5},
{"label": "k29", "x": 9.5, "y": 2.5},
{"label": "k2A", "x": 10.5, "y": 2.5},
{"label": "k2B", "x": 11.5, "y": 2.5},
{"label": "k2C", "x": 12.5, "y": 2.5},
{"label": "k3D", "x": 13.75, "y": 2.5, "w": 1.25, "h": 2},
{"label": "k2E", "x": 15.25, "y": 2.5},
{"label": "k2F", "x": 16.25, "y": 2.5},
{"label": "k2G", "x": 17.25, "y": 2.5},
{"label": "k30", "x": 0, "y": 3.5, "w": 1.75},
{"label": "k31", "x": 1.75, "y": 3.5},
{"label": "k32", "x": 2.75, "y": 3.5},
{"label": "k33", "x": 3.75, "y": 3.5},
{"label": "k34", "x": 4.75, "y": 3.5},
{"label": "k35", "x": 5.75, "y": 3.5},
{"label": "k36", "x": 6.75, "y": 3.5},
{"label": "k37", "x": 7.75, "y": 3.5},
{"label": "k38", "x": 8.75, "y": 3.5},
{"label": "k39", "x": 9.75, "y": 3.5},
{"label": "k3A", "x": 10.75, "y": 3.5},
{"label": "k3B", "x": 11.75, "y": 3.5},
{"label": "k2C", "x": 12.75, "y": 3.5},
{"label": "k40", "x": 0, "y": 4.5, "w": 2.25},
{"label": "k41", "x": 2.25, "y": 4.5},
{"label": "k42", "x": 3.25, "y": 4.5},
{"label": "k43", "x": 4.25, "y": 4.5},
{"label": "k44", "x": 5.25, "y": 4.5},
{"label": "k45", "x": 6.25, "y": 4.5},
{"label": "k46", "x": 7.25, "y": 4.5},
{"label": "k47", "x": 8.25, "y": 4.5},
{"label": "k48", "x": 9.25, "y": 4.5},
{"label": "k49", "x": 10.25, "y": 4.5},
{"label": "k4A", "x": 11.25, "y": 4.5},
{"label": "k4D", "x": 12.25, "y": 4.5, "w": 2.75},
{"label": "k4F", "x": 16.25, "y": 4.5},
{"label": "k50", "x": 0, "y": 5.5, "w": 1.5},
{"label": "k52", "x": 2.5, "y": 5.5, "w": 1.5},
{"label": "k56", "x": 4, "y": 5.5, "w": 7},
{"label": "k5A", "x": 11, "y": 5.5, "w": 1.5},
{"label": "k5D", "x": 13.5, "y": 5.5, "w": 1.5},
{"label": "k5E", "x": 15.25, "y": 5.5},
{"label": "k5F", "x": 16.25, "y": 5.5},
{"label": "k5G", "x": 17.25, "y": 5.5}
]
}
}
}

View File

@@ -0,0 +1,36 @@
/* Copyright 2021 Ocean
* 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(
KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_BRMD, KC_PAUS,
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INSERT, KC_HOME, KC_PGUP,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DELETE, KC_END, KC_PGDOWN,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_LWIN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
),
LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
)
};

View File

@@ -0,0 +1,51 @@
/* Copyright 2021 Ocean
* 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(
KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SCRL, KC_PAUS,
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INSERT, KC_HOME, KC_PGUP,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DELETE, KC_END, KC_PGDOWN,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_LWIN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
[1] = LAYOUT_all(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
[2] = LAYOUT_all(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
[3] = LAYOUT_all(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
};

View File

@@ -0,0 +1 @@
VIA_ENABLE = yes

View File

@@ -0,0 +1,18 @@
# ibis80
Support Atmega32u4 keyboard,With a variety of configurations
* Keyboard Maintainer: [Mokey](https://github.com/Runheme)
## Bootloader
* **Physical reset button**: Short press the button on the back of the PCB to enter the Bootloader and flash the firmwar
Make example for this keyboard (after setting up your build environment):
make mokey/ibis80:default
Flashing example for this keyboard:
make mokey/ibis80: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).

View File

@@ -0,0 +1,18 @@
# MCU name
MCU = atmega32u4
# Bootloader selection
BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
MOUSEKEY_ENABLE = yes # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = no # Enable N-Key Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output

View File

@@ -35,9 +35,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
[_LOWER] = LAYOUT_reviung39(
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, _______, _______, _______,
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, RCMD(RALT(KC_I)), RCMD(RALT(KC_O)), _______,
_______, KC_LT, KC_GT, KC_LPRN, KC_RPRN, KC_GRV, KC_MINS, KC_LCBR, KC_RCBR, KC_LBRC, KC_RBRC, KC_PIPE,
KC_LALT, _______, _______, _______, KC_EQL, KC_QUES, KC_UNDS, KC_PLUS, KC_COMM, _______, KC_SLSH, _______,
KC_LALT, _______, _______, ADJUST, KC_EQL, KC_QUES, KC_UNDS, KC_PLUS, KC_COMM, _______, KC_SLSH, _______,
_______, _______, KC_RGUI
),
@@ -49,9 +49,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
[_ADJUST] = LAYOUT_reviung39(
RGB_VAI, RGB_SAI, RGB_HUI, RGB_MOD, XXXXXXX, RGB_TOG, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, XXXXXXX,
RGB_VAD, RGB_SAD, RGB_HUD, RGB_RMOD, XXXXXXX, XXXXXXX, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, XXXXXXX,
KC_MUTE, KC_VOLD, KC_VOLU, KC_BRID, KC_BRIU, RESET, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LANG1, KC_LANG2,
KC_LGUI, XXXXXXX, _______
_______, RCMD(LALT(KC_1)), RCMD(LALT(KC_2)), RCMD(LALT(KC_3)), RCMD(LALT(KC_4)), RCMD(LALT(KC_5)), RCMD(LALT(KC_6)), RCMD(LALT(KC_7)), _______, _______, RCMD(LALT(KC_0)), _______,
RGB_SAI, RGB_HUI, RGB_MOD, _______, RGB_TOG, RGB_VAI, RGB_VAD, RGB_SAD, RGB_HUD, RGB_RMOD, _______, _______,
KC_MUTE, KC_VOLD, KC_VOLU, KC_BRID, KC_BRIU, RESET, _______, _______, _______, _______, _______, _______,
KC_LGUI, _______, _______
),
};

View File

@@ -1,6 +1,6 @@
# MCU name
MCU = STM32F411
BOARD = GENERIC_STM32_F401XC
BOARD = GENERIC_STM32_F411XE
# Bootloader selection
BOOTLOADER = stm32-dfu

View File

@@ -1,4 +0,0 @@
// jotix ortho_4x12_layout config.h
#define TAPPING_TOGGLE 2
#define TAPPING_TERM 175

View File

@@ -2,19 +2,17 @@
enum layers {
_QWERTY,
_TCURSOR,
_LOWER,
_RAISE,
_GAME,
_NUMPAD,
_MOUSE,
_ADJUST,
};
#define LOWER MO(_LOWER)
#define RAISE MO(_RAISE)
#define GAME TG(_GAME)
#define NUMPAD TG(_NUMPAD)
#define MOUSE TG(_MOUSE)
#define TCURSOR TG(_TCURSOR)
#define LOWER MO(_LOWER)
#define RAISE MO(_RAISE)
#define NUMPAD MO(_NUMPAD)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
@@ -26,7 +24,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
KC_LSFT,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH,KC_ENT,
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
KC_LCTL,KC_LGUI,KC_LALT,KC_RALT,LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT,KC_DOWN,KC_UP, KC_RGHT
KC_LCTL,KC_LGUI,KC_LALT,NUMPAD, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT,KC_DOWN,KC_UP, KC_RGHT
// └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘
),
[_TCURSOR] = LAYOUT_ortho_4x12 (
// ┌───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┐
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,KC_UP, _______,
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
_______,_______,_______,_______,_______,_______,_______,_______,KC_SLSH,KC_LEFT,KC_DOWN,KC_RGHT
// └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘
),
@@ -54,49 +64,25 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘
),
[_GAME] = LAYOUT_ortho_4x12 (
// ┌───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┐
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,KC_UP, _______,
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
_______,_______,_______,_______,_______,_______,_______,_______,KC_SLSH,KC_LEFT,KC_DOWN,KC_RGHT
// └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘
),
[_NUMPAD] = LAYOUT_ortho_4x12 (
// ┌───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┐
NUMPAD ,_______,_______,_______,_______,_______,_______,KC_P7, KC_P8, KC_P9, KC_PMNS,_______,
_______,KC_BTN1,KC_MS_U,KC_BTN2,KC_WH_U,_______,_______,KC_P7, KC_P8, KC_P9, KC_PMNS,_______,
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
_______,_______,_______,_______,_______,_______,_______,KC_P4, KC_P5, KC_P6, KC_PPLS,_______,
_______,KC_MS_L,KC_MS_D,KC_MS_R,KC_WH_D,_______,_______,KC_P4, KC_P5, KC_P6, KC_PPLS,_______,
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
_______,_______,_______,_______,_______,_______,_______,KC_P1, KC_P2, KC_P3, KC_PSLS,KC_PENT,
_______,_______,_______,_______,_______,_______,KC_NLCK,KC_P1, KC_P2, KC_P3, KC_PSLS,KC_PENT,
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
_______,_______,_______,_______,_______,_______,_______,_______,KC_P0, KC_PDOT,KC_PAST,_______
// └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘
),
[_MOUSE] = LAYOUT_ortho_4x12 (
// ┌───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┐
MOUSE, KC_BTN1,KC_MS_U,KC_BTN2,KC_WH_U,_______,_______,_______,_______,_______,_______,_______,
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
_______,KC_MS_L,KC_MS_D,KC_MS_R,KC_WH_D,_______,_______,_______,_______,_______,_______,_______,
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______
// └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘
),
[_ADJUST] = LAYOUT_ortho_4x12 (
// ┌───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┐
_______,RESET ,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,
_______,RESET ,_______,_______,RGB_TOG,RGB_M_P,RGB_M_B,RGB_M_R,RGB_M_SW,_______,_______,_______,
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
_______,_______,_______,_______,_______,GAME ,_______,_______,_______,_______,_______,_______,
_______,_______,RGB_SAI,RGB_SAD,_______,_______,RGB_HUI,RGB_HUD,_______,_______,_______,_______,
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
_______,_______,_______,_______,_______,_______,NUMPAD, MOUSE, _______,_______,_______,_______,
_______,_______,_______,_______,_______,RGB_VAI,RGB_VAD,_______,RGB_MOD,RGB_RMOD,TCURSOR,_______,
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______
// └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘
@@ -104,10 +90,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};
layer_state_t layer_state_set_user(layer_state_t state) {
state = update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
state = update_tri_layer_state(state, _NUMPAD, _RAISE, _ADJUST);
#ifdef JOTANCK_LEDS
writePin(JOTANCK_LED1, (get_highest_layer(state) == _MOUSE));
writePin(JOTANCK_LED2, (get_highest_layer(state) == _NUMPAD));
writePin(JOTANCK_LED2, (IS_LAYER_ON(_TCURSOR)));
#endif
return state;
}
@@ -117,5 +102,8 @@ bool led_update_user(led_t led_state) {
if (!led_state.num_lock) {
tap_code(KC_NUMLOCK);
}
#ifdef JOTANCK_LEDS
writePin(JOTANCK_LED1, led_state.caps_lock);
#endif
return true;
}