Merge branch 'vial-kb:vial' into HLB_PoorKoi

This commit is contained in:
H3lli0n 2024-11-17 13:20:24 +01:00 committed by GitHub
commit 03e2d894cf
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
24 changed files with 1057 additions and 66 deletions

View file

@ -18,7 +18,7 @@ jobs:
steps:
- name: (actions) Checkout Vial repo
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
persist-credentials: false
@ -28,13 +28,13 @@ jobs:
build-default:
name: Build default keymaps for Vial
runs-on: ubuntu-latest
container: ghcr.io/qmk/qmk_cli
container: ghcr.io/qmk/qmk_cli@sha256:16c4916e95b99bf88d27b15aec8db409ee17265d1710287fde248c6666508966
env:
KEYMAP: default
steps:
- name: (actions) Checkout Vial repo
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
persist-credentials: false
submodules: recursive
@ -66,13 +66,13 @@ jobs:
build-vial:
name: Build Vial keymaps
runs-on: ubuntu-latest
container: ghcr.io/qmk/qmk_cli
container: ghcr.io/qmk/qmk_cli@sha256:16c4916e95b99bf88d27b15aec8db409ee17265d1710287fde248c6666508966
env:
KEYMAP: vial
steps:
- name: (actions) Checkout Vial repo
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
persist-credentials: false
submodules: recursive

View file

@ -0,0 +1,12 @@
// Copyright 2024 JP Roemer (@0rax)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#define VIAL_KEYBOARD_UID {0xFE, 0x06, 0xBF, 0x52, 0x18, 0xBA, 0x4F, 0x8A}
#define VIAL_UNLOCK_COMBO_ROWS {0, 0}
#define VIAL_UNLOCK_COMBO_COLS {0, 4}
#define RGBLIGHT_EFFECT_BREATHING
#define RGBLIGHT_EFFECT_RAINBOW_MOOD

View file

@ -0,0 +1,27 @@
// Copyright 2024 JP Roemer (@0rax)
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
enum layers {
_MAIN,
};
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[_MAIN] = {
ENCODER_CCW_CW(KC_2, KC_1), /* First encoder*/
ENCODER_CCW_CW(KC_4, KC_3), /* Second encoder*/
ENCODER_CCW_CW(KC_6, KC_5), /* Third encoder*/
ENCODER_CCW_CW(KC_8, KC_7), /* Fourth encoder*/
ENCODER_CCW_CW(KC_0, KC_9) /* Fifth encoder*/
}
};
#endif
//
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //buttion closest to usb is first
[_MAIN] = LAYOUT_ortho_1x5(
KC_A, KC_B, KC_C, KC_D, KC_E
)
};

View file

@ -0,0 +1,11 @@
VIA_ENABLE = yes
VIAL_ENABLE = yes
ENCODER_MAP_ENABLE = yes
# Reduce size on atmega32u4
ifeq ($(strip $(CONVERT_TO)), )
TAP_DANCE_ENABLE = no
QMK_SETTINGS = no
KEY_OVERRIDE_ENABLE = no
COMBO_ENABLE = no
endif

View file

@ -0,0 +1,125 @@
{
"name": "miniMACRO5",
"vendorId": "0xCEEB",
"productId": "0x0007",
"lighting": "qmk_rgblight",
"matrix": {
"rows": 1,
"cols": 5
},
"layouts": {
"labels": [
"Encoder 1",
"Encoder 2",
"Encoder 3",
"Encoder 4",
"Encoder 5"
],
"keymap": [
[
{
"w": 2,
"h": 2,
"w2": 0.5
},
"0,0\n\n\n0,0",
{
"x": 0.25,
"w": 2,
"h": 2,
"w2": 0.5
},
"0,1\n\n\n1,0",
{
"x": 0.25,
"w": 2,
"h": 2,
"w2": 0.5
},
"0,2\n\n\n2,0",
{
"x": 0.25,
"w": 2,
"h": 2,
"w2": 0.5
},
"0,3\n\n\n3,0",
{
"x": 0.25,
"w": 2,
"h": 2,
"w2": 0.5
},
"0,4\n\n\n4,0"
],
[
{
"y": 1.5,
"x": 1
},
"0,1\n\n\n0,1\n\n\n\n\n\ne",
{
"x": 1.25
},
"1,1\n\n\n1,1\n\n\n\n\n\ne",
{
"x": 1.25
},
"2,1\n\n\n2,1\n\n\n\n\n\ne",
{
"x": 1.25
},
"3,1\n\n\n3,1\n\n\n\n\n\ne",
{
"x": 1.25
},
"4,1\n\n\n4,1\n\n\n\n\n\ne"
],
[
{
"y": -0.5
},
"0,0\n\n\n0,1",
{
"x": 1.25
},
"0,1\n\n\n1,1",
{
"x": 1.25
},
"0,2\n\n\n2,1",
{
"x": 1.25
},
"0,3\n\n\n3,1",
{
"x": 1.25
},
"0,4\n\n\n4,1"
],
[
{
"y": -0.5,
"x": 1
},
"0,0\n\n\n0,1\n\n\n\n\n\ne",
{
"x": 1.25
},
"1,0\n\n\n1,1\n\n\n\n\n\ne",
{
"x": 1.25
},
"2,0\n\n\n2,1\n\n\n\n\n\ne",
{
"x": 1.25
},
"3,0\n\n\n3,1\n\n\n\n\n\ne",
{
"x": 1.25
},
"4,0\n\n\n4,1\n\n\n\n\n\ne"
]
]
}
}

View file

@ -0,0 +1,32 @@
# JRIS65
**Hotswap PCB**
A 65% keyboard sold by Mykeyclub.
* Keyboard Maintainer: [Dave](https://github.com/unixb0y)
* Hardware Supported: JRIS65 hotswap.
* Hardware Availability: intermitently via group buys from [Mykeyclub](https://www.mykeyclub.com/)
Make example for this keyboard (after setting up your build environment):
make mykeyclub/jris65:vial
Flashing example for this keyboard:
make mykeyclub/jris65:vial:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
## Bootloader
Enter the bootloader in 3 ways:
* **Keycode in layout**: Using the default firmware, assign a key to Reset (`QK_BOOT`) and press the assigned key.
* **Physical reset button**: Briefly press the button on the back of the PCB
The QMK default keymap has FN+Backspace assigned to `QK_BOOT` so you can use that key sequence for subsequent flashing.
## Disclaimer
In May 2024 Mykeyclub was contacted to see if they had interest in contributing firmware to the QMK project they did not. This code is thus community supported.

View file

@ -0,0 +1,10 @@
/* SPDX-License-Identifier: GPL-2.0-or-later */
#pragma once
/* key matrix size */
#define MATRIX_ROWS 5
#define MATRIX_COLS 16
/* Use 1000hz polling */
#define USB_POLLING_INTERVAL_MS 1

View file

@ -0,0 +1,100 @@
{
"keyboard_name": "IRIS65",
"manufacturer": "zlkb",
"maintainer": "unixb0y",
"bootloader": "atmel-dfu",
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"extrakey": true,
"mousekey": true,
"nkro": true
},
"matrix_pins": {
"cols": ["B6", "C6", "C7", "F1", "F0", "E6", "B0", "B1", "B3", "B7", "D2", "D1", "D0", "D7", "B4", "B5"],
"rows": ["F7", "F6", "F5", "B2", "F4"]
},
"processor": "atmega32u4",
"url": "",
"usb": {
"device_version": "0.1.0",
"pid": "0x4953",
"vid": "0x5A4C"
},
"layouts": {
"LAYOUT_65_ansi": {
"layout": [
{"label": "0,0", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "0,1", "matrix": [0, 1], "x": 1, "y": 0},
{"label": "0,2", "matrix": [0, 2], "x": 2, "y": 0},
{"label": "0,3", "matrix": [0, 3], "x": 3, "y": 0},
{"label": "0,4", "matrix": [0, 4], "x": 4, "y": 0},
{"label": "0,5", "matrix": [0, 5], "x": 5, "y": 0},
{"label": "0,6", "matrix": [0, 6], "x": 6, "y": 0},
{"label": "0,7", "matrix": [0, 7], "x": 7, "y": 0},
{"label": "0,8", "matrix": [0, 8], "x": 8, "y": 0},
{"label": "0,9", "matrix": [0, 9], "x": 9, "y": 0},
{"label": "0,10", "matrix": [0, 10], "x": 10, "y": 0},
{"label": "0,11", "matrix": [0, 11], "x": 11, "y": 0},
{"label": "0,12", "matrix": [0, 12], "x": 12, "y": 0},
{"label": "0,13", "matrix": [0, 13], "x": 13, "y": 0},
{"label": "0,14", "matrix": [0, 14], "x": 14, "y": 0},
{"label": "0,15", "matrix": [0, 15], "x": 15, "y": 0},
{"label": "1,0", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "1,1", "matrix": [1, 1], "x": 1.5, "y": 1},
{"label": "1,2", "matrix": [1, 2], "x": 2.5, "y": 1},
{"label": "1,3", "matrix": [1, 3], "x": 3.5, "y": 1},
{"label": "1,4", "matrix": [1, 4], "x": 4.5, "y": 1},
{"label": "1,5", "matrix": [1, 5], "x": 5.5, "y": 1},
{"label": "1,6", "matrix": [1, 6], "x": 6.5, "y": 1},
{"label": "1,7", "matrix": [1, 7], "x": 7.5, "y": 1},
{"label": "1,,8", "matrix": [1, 8], "x": 8.5, "y": 1},
{"label": "1,9", "matrix": [1, 9], "x": 9.5, "y": 1},
{"label": "1,10", "matrix": [1, 10], "x": 10.5, "y": 1},
{"label": "1,11", "matrix": [1, 11], "x": 11.5, "y": 1},
{"label": "1,12", "matrix": [1, 12], "x": 12.5, "y": 1},
{"label": "1,13", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
{"label": "1,14", "matrix": [1, 14], "x": 15, "y": 1},
{"label": "2,0", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"label": "2,1", "matrix": [2, 1], "x": 1.75, "y": 2},
{"label": "2,2", "matrix": [2, 2], "x": 2.75, "y": 2},
{"label": "2,3", "matrix": [2, 3], "x": 3.75, "y": 2},
{"label": "2,4", "matrix": [2, 4], "x": 4.75, "y": 2},
{"label": "2,5", "matrix": [2, 5], "x": 5.75, "y": 2},
{"label": "2,6", "matrix": [2, 6], "x": 6.75, "y": 2},
{"label": "2,7", "matrix": [2, 7], "x": 7.75, "y": 2},
{"label": "2,8", "matrix": [2, 8], "x": 8.75, "y": 2},
{"label": "2,9", "matrix": [2, 9], "x": 9.75, "y": 2},
{"label": "2,10", "matrix": [2, 10], "x": 10.75, "y": 2},
{"label": "2,11", "matrix": [2, 11], "x": 11.75, "y": 2},
{"label": "2,12", "matrix": [2, 12], "x": 12.75, "y": 2},
{"label": "2,13", "matrix": [2, 13], "x": 13.75, "y": 2, "w": 1.25},
{"label": "2,14", "matrix": [2, 14], "x": 15, "y": 2},
{"label": "3,0", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
{"label": "3,1", "matrix": [3, 1], "x": 1.25, "y": 3},
{"label": "3,2", "matrix": [3, 2], "x": 2.25, "y": 3},
{"label": "3,3", "matrix": [3, 3], "x": 3.25, "y": 3},
{"label": "3,4", "matrix": [3, 4], "x": 4.25, "y": 3},
{"label": "3,5", "matrix": [3, 5], "x": 5.25, "y": 3},
{"label": "3,6", "matrix": [3, 6], "x": 6.25, "y": 3},
{"label": "3,7", "matrix": [3, 7], "x": 7.25, "y": 3},
{"label": "3,8", "matrix": [3, 8], "x": 8.25, "y": 3},
{"label": "3,9", "matrix": [3, 9], "x": 9.25, "y": 3},
{"label": "3,10", "matrix": [3, 10], "x": 10.25, "y": 3},
{"label": "3,11", "matrix": [3, 11], "x": 11.25, "y": 3},
{"label": "3,12", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
{"label": "3,13", "matrix": [3, 13], "x": 14, "y": 3},
{"label": "3,14", "matrix": [3, 14], "x": 15, "y": 3},
{"label": "4,0", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
{"label": "4,1", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
{"label": "4,2", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
{"label": "4,3", "matrix": [4, 3], "x": 3.75, "y": 4, "w": 6.25},
{"label": "4,10", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
{"label": "4,11", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
{"label": "4,12", "matrix": [4, 12], "x": 13, "y": 4},
{"label": "4,13", "matrix": [4, 13], "x": 14, "y": 4},
{"label": "4,14", "matrix": [4, 14], "x": 15, "y": 4}
]
}
}
}

View file

@ -0,0 +1,20 @@
/* SPDX-License-Identifier: GPL-2.0-or-later */
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_65_ansi(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_BSPC, KC_DEL,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_VOLU,
MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT, KC_VOLD,
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_MPLY,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT
),
[1] = LAYOUT_65_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_MPRV, KC_MPLY, KC_MNXT, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, _______,
_______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
)
};

View file

@ -0,0 +1,7 @@
/* SPDX-License-Identifier: GPL-2.0-or-later */
#pragma once
#define VIAL_KEYBOARD_UID {0x6B, 0x8A, 0xF2, 0xD4, 0x69, 0x87, 0x4B, 0x4C}
#define VIAL_UNLOCK_COMBO_ROWS { 0, 2 }
#define VIAL_UNLOCK_COMBO_COLS { 0, 13 }

View file

@ -0,0 +1,20 @@
/* SPDX-License-Identifier: GPL-2.0-or-later */
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_65_ansi(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_BSPC, KC_DEL,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_VOLU,
MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT, KC_VOLD,
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_MPLY,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT
),
[1] = LAYOUT_65_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_MPRV, KC_MPLY, KC_MNXT, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, _______,
_______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
)
};

View file

@ -0,0 +1,8 @@
VIA_ENABLE = yes
VIAL_ENABLE = yes
LTO_ENABLE = yes
TAP_DANCE_ENABLE = no
COMBO_ENABLE = no
KEY_OVERRIDE_ENABLE = no

View file

@ -0,0 +1,194 @@
{
"name": "JRIS65",
"vendorId": "zlkb",
"productId": "JRIS65",
"matrix": {
"rows": 5,
"cols": 16
},
"layouts": {
"labels":[
"Split Backspace",
"ISO Enter",
"Split Left Shift"
],
"keymap": [
[
{
"x": 15.5,
"c": "#00c21d"
},
"0,13\n\n\n0,1",
"0,14\n\n\n0,1"
],
[
{
"x": 2.5,
"c": "#cccccc"
},
"0,0",
"0,1",
"0,2",
"0,3",
"0,4",
"0,5",
"0,6",
"0,7",
"0,8",
"0,9",
"0,10",
"0,11",
"0,12",
{
"c": "#00c21d",
"w": 2
},
"0,14\n\n\n0,0",
{
"c": "#cccccc"
},
"0,15",
{
"x": 1.25,
"c": "#ff7878",
"w": 1.25,
"h": 2,
"w2": 1.5,
"h2": 1,
"x2": -0.25
},
"2,13\n\n\n1,1"
],
[
{
"x": 2.5,
"c": "#cccccc",
"w": 1.5
},
"1,0",
"1,1",
"1,2",
"1,3",
"1,4",
"1,5",
"1,6",
"1,7",
"1,8",
"1,9",
"1,10",
"1,11",
"1,12",
{
"c": "#ff7878",
"w": 1.5
},
"1,13\n\n\n1,0",
{
"c": "#cccccc"
},
"1,14",
{
"x": 0.25,
"c": "#ff7878"
},
"2,12\n\n\n1,1"
],
[
{
"x": 2.5,
"c": "#ff8f00",
"w": 1.75
},
"2,0",
{
"c": "#cccccc"
},
"2,1",
"2,2",
"2,3",
"2,4",
"2,5",
"2,6",
"2,7",
"2,8",
"2,9",
"2,10",
"2,11",
{
"c": "#ff7878",
"w": 2.25
},
"2,13\n\n\n1,0",
{
"c": "#cccccc"
},
"2,14"
],
[
{
"c": "#ff5eef",
"w": 1.25
},
"3,0\n\n\n2,1",
"3,1\n\n\n2,1",
{
"x": 0.25,
"w": 2.25
},
"3,0\n\n\n2,0",
{
"c": "#cccccc"
},
"3,2",
"3,3",
"3,4",
"3,5",
"3,6",
"3,7",
"3,8",
"3,9",
"3,10",
"3,11",
{
"w": 1.75
},
"3,12",
"3,13",
"3,14"
],
[
{
"x": 2.5,
"w": 1.25
},
"4,0",
{
"w": 1.25
},
"4,1",
{
"w": 1.25
},
"4,2",
{
"w": 6.25
},
"4,3",
{
"w": 1.25
},
"4,10",
{
"w": 1.25
},
"4,11",
{
"x": 0.5
},
"4,12",
"4,13",
"4,14"
]
]
}
}

View file

@ -0,0 +1,15 @@
# MCU name
MCU = atmega32u4
# Bootloader selection
BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
BLUETOOTH_ENABLE = no # Enable Bluetooth
AUDIO_ENABLE = no # Audio output

View file

@ -147,13 +147,69 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* `-----------------------------------------------------------------------------------'
*/
[_ADJUST] = LAYOUT_planck_grid(
_______, QK_BOOT, DB_TOGG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL ,
_______, QK_BOOT, DB_TOGG, UG_TOGG, UG_NEXT, UG_HUEU, UG_HUED, UG_SATU, UG_SATD, UG_SPDU, UG_SPDD, KC_DEL ,
_______, EE_CLR, MU_NEXT, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______,
_______, AU_PREV, AU_NEXT, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
)
};
#ifdef ENCODER_MAP_ENABLE
/* Rotary Encoders
*/
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
/* Qwerty
* v- (index) Clockwise / Counter Clockwise v- (index) Clockwise / Counter Clockwise
* ,---------------------------------------------------------------------------------------.
* | (0) Vol- / Vol+ | | | | | | | | | | | (4) Vol- / Vol+ |
* |-----------------------+---+---+---+---+---+---+---+---+---+---+-----------------------|
* | (1) KC_MNXT / KC_MPRV | | | | | | | | | | | (5) KC_MNXT / KC_MPRV |
* |-----------------------+---+---+---+---+---+---+---+---+---+---+-----------------------|
* | (2) KC_WBAK / KC_WFWD | | | | | | | | | | | (6) KC_SPC / KC_ENT |
* |-----------------------+---+---+---+---+---+---+---+---+---+---+-----------------------|
* | (3) KC_LEFT / KC_RGHT | | | | | | | | | | (7) KC_DOWN / KC_UP |
* `---------------------------------------------------------------------------------------'
*/
[_QWERTY] = {
// LEFT SIDE (index 0 to 3)
ENCODER_CCW_CW(KC_VOLU, KC_VOLD),
ENCODER_CCW_CW(KC_MNXT, KC_MPRV),
ENCODER_CCW_CW(KC_WBAK, KC_WFWD),
ENCODER_CCW_CW(KC_LEFT, KC_RGHT),
// RIGHT SIDE (index 4 to 7)
ENCODER_CCW_CW(KC_VOLU, KC_VOLD),
ENCODER_CCW_CW(KC_MNXT, KC_MPRV),
ENCODER_CCW_CW(KC_SPC, KC_ENT),
ENCODER_CCW_CW(KC_DOWN, KC_UP)
},
/* Adjust (Lower + Raise)
* v- (index) Clockwise / Counter Clockwise v- (index) Clockwise / Counter Clockwise
* ,---------------------------------------------------------------------------------------.
* | (0) _______ / _______ | | | | | | | | | | | (4) _______ / _______ |
* |-----------------------+---+---+---+---+---+---+---+---+---+---+-----------------------|
* | (1) _______ / _______ | | | | | | | | | | | (5) _______ / _______ |
* |-----------------------+---+---+---+---+---+---+---+---+---+---+-----------------------|
* | (2) UG_NEXT / UG_PREV | | | | | | | | | | | (6) SAT- / SAT+ |
* |-----------------------+---+---+---+---+---+---+---+---+---+---+-----------------------|
* | (3) UG_VALD / UG_VALU | | | | | | | | | | (7) HUE- / HUE+ |
* `---------------------------------------------------------------------------------------'
*/
[_ADJUST] = {
// LEFT SIDE (index 0 to 3)
ENCODER_CCW_CW(_______, _______),
ENCODER_CCW_CW(_______, _______),
ENCODER_CCW_CW(UG_NEXT, UG_PREV),
ENCODER_CCW_CW(UG_VALD, UG_VALU),
// RIGHT SIDE (index 4 to 7)
ENCODER_CCW_CW(_______, _______),
ENCODER_CCW_CW(_______, _______),
ENCODER_CCW_CW(UG_SATD, UG_SATU),
ENCODER_CCW_CW(UG_HUEU, UG_HUED)
}
};
#endif
/* clang-format on */
#ifdef AUDIO_ENABLE
@ -161,14 +217,22 @@ float plover_song[][2] = SONG(PLOVER_SOUND);
float plover_gb_song[][2] = SONG(PLOVER_GOODBYE_SOUND);
#endif
bool play_encoder_melody(uint8_t index, bool clockwise);
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) {
#ifdef ENCODER_MAP_ENABLE
if (IS_ENCODEREVENT(record->event) && record->event.pressed) {
play_encoder_melody(record->event.key.col, record->event.type == ENCODER_CCW_EVENT);
}
#endif
switch (keycode) {
case QWERTY:
if (record->event.pressed) {
print("mode just switched to qwerty and this is a huge string\n");
set_single_persistent_default_layer(_QWERTY);
}
return false;
@ -227,13 +291,13 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
/* clang-format off */
float melody[8][2][2] = {
{{440.0f, 8}, {440.0f, 24}},
{{440.0f, 8}, {440.0f, 24}},
{{440.0f, 8}, {440.0f, 24}},
{{440.0f, 8}, {440.0f, 24}},
{{440.0f, 8}, {440.0f, 24}},
{{440.0f, 8}, {440.0f, 24}},
{{440.0f, 8}, {440.0f, 24}},
{{440.0f, 8}, {440.0f, 24}},
{{440.0f, 8}, {440.0f, 24}},
{{440.0f, 8}, {440.0f, 24}},
{{440.0f, 8}, {440.0f, 24}},
{{440.0f, 8}, {440.0f, 24}},
{{440.0f, 8}, {440.0f, 24}},
{{440.0f, 8}, {440.0f, 24}},
{{440.0f, 8}, {440.0f, 24}},
};
/* clang-format on */
@ -250,7 +314,7 @@ float melody[8][2][2] = {
#define ET12_MAJOR_THIRD 1.259921
#define ET12_PERFECT_FOURTH 1.33484
#define ET12_TRITONE 1.414214
#define ET12_PERFECT_FIFTH 1.498307
#define ET12_PERFECT_FIFTH 1.498307
deferred_token tokens[8];
@ -259,7 +323,7 @@ uint32_t reset_note(uint32_t trigger_time, void *note) {
return 0;
}
bool encoder_update_user(uint8_t index, bool clockwise) {
bool play_encoder_melody(uint8_t index, bool clockwise) {
cancel_deferred_exec(tokens[index]);
if (clockwise) {
melody[index][1][0] = melody[index][1][0] * ET12_MINOR_SECOND;
@ -274,6 +338,10 @@ bool encoder_update_user(uint8_t index, bool clockwise) {
return false;
}
bool encoder_update_user(uint8_t index, bool clockwise) {
return play_encoder_melody(index, clockwise);
}
bool dip_switch_update_user(uint8_t index, bool active) {
switch (index) {
case 0: {
@ -302,4 +370,4 @@ bool dip_switch_update_user(uint8_t index, bool active) {
}
}
return true;
}
}

View file

@ -1,12 +1,24 @@
{
"matrix": {"rows": 8, "cols": 6},
"layouts": {
"labels": [["Layout", "MIT (1x2u)", "Grid (2x1u)", "2x2u", "3x3u"]],
"labels": [["Layout", "MIT (1x2u)", "Grid (2x1u)", "2x2u", "3x3u"], "Encoders"],
"keymap": [
[
{"c": "#aaaaaa"},
"0,0\n\n\n1,1\n\n\n\n\n\ne",
{
"x": -1,
"d": true
},
"0,0\n\n\n1,0",
"0,1\n\n\n1,1\n\n\n\n\n\ne",
{
"x": 1.5,
"c": "#aaaaaa"
},
"0,0",
{"c": "#cccccc"},
{
"c": "#cccccc"
},
"0,1",
"0,2",
"0,3",
@ -17,12 +29,26 @@
"4,2",
"4,3",
"4,4",
{"c": "#aaaaaa"},
"4,5"
],
[
{
"c": "#aaaaaa"
},
"4,5",
{
"x": 1.5
},
"4,0\n\n\n1,1\n\n\n\n\n\ne",
"4,1\n\n\n1,1\n\n\n\n\n\ne"
],
[
"1,0\n\n\n1,1\n\n\n\n\n\ne",
"1,1\n\n\n1,1\n\n\n\n\n\ne",
{
"x": 1.5
},
"1,0",
{"c": "#cccccc"},
{
"c": "#cccccc"
},
"1,1",
"1,2",
"1,3",
@ -33,12 +59,26 @@
"5,2",
"5,3",
"5,4",
{"c": "#aaaaaa"},
"5,5"
],
[
{
"c": "#aaaaaa"
},
"5,5",
{
"x": 1.5
},
"5,0\n\n\n1,1\n\n\n\n\n\ne",
"5,1\n\n\n1,1\n\n\n\n\n\ne"
],
[
"2,0\n\n\n1,1\n\n\n\n\n\ne",
"2,1\n\n\n1,1\n\n\n\n\n\ne",
{
"x": 1.5
},
"2,0",
{"c": "#cccccc"},
{
"c": "#cccccc"
},
"2,1",
"2,2",
"2,3",
@ -49,55 +89,107 @@
"6,2",
"6,3",
"6,4",
{"c": "#aaaaaa"},
"6,5"
],
[
{
"c": "#aaaaaa"
},
"6,5",
{
"x": 1.5
},
"6,0\n\n\n1,1\n\n\n\n\n\ne",
"6,1\n\n\n1,1\n\n\n\n\n\ne"
],
[
"3,0\n\n\n1,1\n\n\n\n\n\ne",
"3,1\n\n\n1,1\n\n\n\n\n\ne",
{
"x": 1.5
},
"3,0",
"3,1",
"3,2",
"7,3\n\n\n0,0",
{"c": "#777777"},
"7,4\n\n\n0,0",
{"c": "#cccccc", "w": 2},
"3,3\n\n\n0,0",
{
"c": "#777777"
},
"3,4\n\n\n0,0",
{
"c": "#cccccc",
"w": 2
},
"7,0\n\n\n0,0",
{"c": "#777777"},
{
"c": "#777777"
},
"7,1\n\n\n0,0",
{"c": "#aaaaaa"},
{
"c": "#aaaaaa"
},
"7,2\n\n\n0,0",
"3,3",
"3,4",
"3,5"
],
[
{"y": 0.25, "x": 3},
"7,3\n\n\n0,1",
{"c": "#777777"},
"7,4\n\n\n0,1",
{"c": "#cccccc"},
"7,5\n\n\n0,1",
"7,3",
"7,4",
"7,5",
{
"x": 1.5
},
"7,0\n\n\n1,1\n\n\n\n\n\ne",
"7,1\n\n\n1,1\n\n\n\n\n\ne"
],
[
{
"y": 0.25,
"x": 6.5
},
"3,3\n\n\n0,1",
{
"c": "#777777"
},
"3,4\n\n\n0,1",
{
"c": "#cccccc"
},
"3,5\n\n\n0,1",
"7,0\n\n\n0,1",
{"c": "#777777"},
{
"c": "#777777"
},
"7,1\n\n\n0,1",
{"c": "#aaaaaa"},
{
"c": "#aaaaaa"
},
"7,2\n\n\n0,1"
],
[
{"x": 3},
"7,3\n\n\n0,2",
{"c": "#777777", "w": 2},
"7,5\n\n\n0,2",
{"w": 2},
],
[
{
"x": 6.5
},
"3,3\n\n\n0,2",
{
"c": "#777777",
"w": 2
},
"3,5\n\n\n0,2",
{
"w": 2
},
"7,1\n\n\n0,2",
{"c": "#aaaaaa"},
{
"c": "#aaaaaa"
},
"7,2\n\n\n0,2"
],
[
{"x": 3, "c": "#777777", "w": 3},
"7,4\n\n\n0,3",
{"w": 3},
],
[
{
"x": 6.5,
"c": "#777777",
"w": 3
},
"3,4\n\n\n0,3",
{
"w": 3
},
"7,1\n\n\n0,3"
]
]
]
}
}

View file

@ -0,0 +1,56 @@
{
"manufacturer": "Rorian04",
"keyboard_name": "R4_onehand",
"maintainer": "Rorian04",
"bootloader": "rp2040",
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"command": false,
"console": false,
"extrakey": true,
"mousekey": true,
"nkro": true
},
"matrix_pins": {
"cols": ["GP8", "GP9", "GP12", "GP27", "GP26", "GP29"],
"rows": ["GP28", "GP15", "GP14", "GP11"]
},
"processor": "RP2040",
"url": "",
"usb": {
"device_version": "1.0.0",
"pid": "0x0000",
"vid": "0xFEED"
},
"layouts": {
"LAYOUT_split_3x6_3": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0.3},
{"matrix": [0, 1], "x": 1, "y": 0.3},
{"matrix": [0, 2], "x": 2, "y": 0.1},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [0, 4], "x": 4, "y": 0.1},
{"matrix": [0, 5], "x": 5, "y": 0.2},
{"matrix": [1, 0], "x": 0, "y": 1.3},
{"matrix": [1, 1], "x": 1, "y": 1.3},
{"matrix": [1, 2], "x": 2, "y": 1.1},
{"matrix": [1, 3], "x": 3, "y": 1},
{"matrix": [1, 4], "x": 4, "y": 1.1},
{"matrix": [1, 5], "x": 5, "y": 1.2},
{"matrix": [2, 0], "x": 0, "y": 2.3},
{"matrix": [2, 1], "x": 1, "y": 2.3},
{"matrix": [2, 2], "x": 2, "y": 2.1},
{"matrix": [2, 3], "x": 3, "y": 2},
{"matrix": [2, 4], "x": 4, "y": 2.1},
{"matrix": [2, 5], "x": 5, "y": 2.2},
{"matrix": [3, 3], "x": 4, "y": 3.7},
{"matrix": [3, 4], "x": 5, "y": 3.7},
{"matrix": [3, 5], "x": 6, "y": 3.2, "h": 1.5}
]
}
}
}

View file

@ -0,0 +1,8 @@
//copyright info
#pragma once
// Define options
#define TAPPING_TERM 135
#define PERMISSIVE_HOLD
#define TAPPING_TERM_PER_KEY

View file

@ -0,0 +1,13 @@
// Copyright 2023 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_split_3x6_3(
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T,
KC_ENT, KC_A, KC_S, KC_D, KC_F, KC_G,
KC_LSFT, LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B,
KC_LALT, KC_SPC, KC_TAB
)
};

View file

@ -0,0 +1,18 @@
//copyright info
#pragma once
// Define options
#define DYNAMIC_KEYMAP_LAYER_COUNT 8
#define VIAL_KEYBOARD_UID {0x7C, 0x3D, 0x40, 0xD2, 0xE4, 0x39, 0xF9, 0xBB}
#define VIAL_UNLOCK_COMBO_ROWS { 0, 0 }
#define VIAL_UNLOCK_COMBO_COLS { 0, 5 }
#define WS2812_PIO_USE_PIO1 // Force the usage of PIO1 peripheral, by default the WS2812 implementation uses the PIO0 peripheral
#define RGBLIGHT_LAYERS
#define WS2812_DI_PIN GP16
#define RGBLIGHT_LED_COUNT 1
#define WS2812_BYTE_ORDER WS2812_BYTE_ORDER_RGB
#define RGBLIGHT_SLEEP
#define USB_SUSPEND_WAKEUP_DELAY 500
#define FORCE_NKRO
#define HOLD_ON_OTHER_KEY_PRESS

View file

@ -0,0 +1,126 @@
// Copyright 2023 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_split_3x6_3(
KC_TAB, KC_Q, KC_W, KC_E, KC_R, QK_BOOT,
KC_ENT, KC_A, KC_S, KC_D, KC_F, KC_G,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B,
KC_LALT, KC_SPC, KC_TAB
),
[1] = LAYOUT_split_3x6_3(
_______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______,
_______, _______, _______
),
[2] = LAYOUT_split_3x6_3(
_______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______,
_______, _______, _______
),
[3] = LAYOUT_split_3x6_3(
_______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______,
_______, _______, _______
),
[4] = LAYOUT_split_3x6_3(
_______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______,
_______, _______, _______
),
[5] = LAYOUT_split_3x6_3(
_______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______,
_______, _______, _______
),
[6] = LAYOUT_split_3x6_3(
_______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______,
_______, _______, _______
),
[7] = LAYOUT_split_3x6_3(
_______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______,
_______, _______, _______
)
};
#define value 40
// Change LED color based on layer
const rgblight_segment_t PROGMEM layer0_rgb[] = RGBLIGHT_LAYER_SEGMENTS(
{0, 1, 85, 255, value} // color if layer 0
);
const rgblight_segment_t PROGMEM layer1_rgb[] = RGBLIGHT_LAYER_SEGMENTS(
{0, 1, 125, 255, value} // color if layer 1
);
const rgblight_segment_t PROGMEM layer2_rgb[] = RGBLIGHT_LAYER_SEGMENTS(
{0, 1, 170, 255, value} // color if layer 2
);
const rgblight_segment_t PROGMEM layer3_rgb[] = RGBLIGHT_LAYER_SEGMENTS(
{0, 1, 200, 255, value} // color if layer 3
);
const rgblight_segment_t PROGMEM layer4_rgb[] = RGBLIGHT_LAYER_SEGMENTS(
{0, 1, 45, 255, value} // color if layer 4
);
const rgblight_segment_t PROGMEM layer5_rgb[] = RGBLIGHT_LAYER_SEGMENTS(
{0, 1, 85, 0, value} // color if layer 5
);
const rgblight_segment_t PROGMEM layer6_rgb[] = RGBLIGHT_LAYER_SEGMENTS(
{0, 1, 0, 255, value} // color if layer 6
);
const rgblight_segment_t PROGMEM layer7_rgb[] = RGBLIGHT_LAYER_SEGMENTS(
{0, 1, HSV_OFF} // color if layer 6
);
// Now define the array of layers. Later layers take precedence
const rgblight_segment_t* const PROGMEM rgb_layers[] = RGBLIGHT_LAYERS_LIST(
layer0_rgb, // Bottom layer
layer1_rgb, // Overrides above layers
layer2_rgb, // Overrides above layers
layer3_rgb, // Overrides above layers
layer4_rgb, // Overrides above layers
layer5_rgb, // Overrides above layers
layer6_rgb, // Overrides above layers
layer7_rgb // Overrides above layers
);
void keyboard_post_init_user(void) {
// Enable the LED layers
rgblight_layers = rgb_layers;
}
//bellow code block checks and changes state of LED
layer_state_t default_layer_state_set_user(layer_state_t state) {
rgblight_set_layer_state(0, layer_state_cmp(state, 0));
return state;
}
layer_state_t layer_state_set_user(layer_state_t state) {
rgblight_set_layer_state(1, layer_state_cmp(state, 1));
rgblight_set_layer_state(2, layer_state_cmp(state, 2));
rgblight_set_layer_state(3, layer_state_cmp(state, 3));
rgblight_set_layer_state(4, layer_state_cmp(state, 4));
rgblight_set_layer_state(5, layer_state_cmp(state, 5));
rgblight_set_layer_state(6, layer_state_cmp(state, 6));
rgblight_set_layer_state(7, layer_state_cmp(state, 7));
return state;
}

View file

@ -0,0 +1,5 @@
VIA_ENABLE = yes
VIAL_ENABLE = yes
KEY_LOCK_ENABLE = yes
RGBLIGHT_ENABLE = yes
WS2812_DRIVER = vendor

View file

@ -0,0 +1,23 @@
{
"name": "rorian04_kbd",
"matrix": {
"rows": 4,
"cols": 6
},
"layouts": {
"keymap": [
[{"x":3},"0,3"],
[{"y":-0.75,"x":2},"0,2",{"x":1},"0,4"],
[{"y":-0.75},"0,0","0,1",{"x":3},"0,5"],
[{"y":-0.5,"x":3},"1,3"],
[{"y":-0.75,"x":2},"1,2",{"x":1},"1,4"],
[{"y":-0.75},"1,0","1,1",{"x":3},"1,5"],
[{"y":-0.5,"x":3},"2,3"],
[{"y":-0.75,"x":2},"2,2",{"x":1},"2,4"],
[{"y":-0.75},"2,0","2,1",{"x":3},"2,5"],
[{"x":4},"3,3"],
[{"y":-0.75,"x":5},"3,4"],
[{"y":-0.75,"x":6},"3,5"]
]
}
}

View file

@ -0,0 +1 @@
#this file is left empty intentionally