Compare commits

...

10 commits

Author SHA1 Message Date
NCKiser
2772f52fa5
Add Suffer V1 and V2 (#706)
* Add Suffer V1 and V2

New Keyboard

* Update copyright, add readme

Need to add Imgur link once Imgur comes back online
2024-04-01 21:57:29 -06:00
Sắn
b6b363b1da
Add VIAL support for Asmodus plaqueAD (#705)
* add VIAL support for Asmodus plaqueAD

* Reformat source
2024-04-01 21:57:13 -06:00
Jacky@LAZYDESIGNERS
19a70746ac
Add support for duo (#704)
Add support for duo
2024-04-01 21:56:43 -06:00
josh-l-wang
48c09a1f5a
Add bruce le clavier (#703)
* add le bruce layout to bruce the keyboard firmware

* add rules.mk

* Update keymap.c

* update author

* add bruce le clavier separate from bruce the keyboard

* Update info.json

* Update info.json

* Update readme.md

---------

Co-authored-by: avshockeyw <avshockeyw@users.noreply.github.com>
2024-04-01 21:56:27 -06:00
josh-l-wang
3be37c3693
add isobae (#701)
* add isobae

* Update rules.mk

---------

Co-authored-by: avshockeyw <avshockeyw@users.noreply.github.com>
2024-04-01 21:56:01 -06:00
NCKiser
64a9967520
Add Gyrovan (#697) 2024-04-01 21:55:36 -06:00
NCKiser
ea4692ce67
Add Keyboard La Somme (#696)
* Base QMK and Vial

Still need to add RGB indicators and OLED

* add PCB render to readme

* Add RGB indicators for layers, mods, and capslock

* Add some really fun OLED code

* add OLED mode switching
2024-04-01 21:55:21 -06:00
NCKiser
a9b7d48cdc
Add Simple75 Keyboard (vial only) (#694)
* Add Simple75

* Add Default keymap

* Flip encoder orientation
2024-04-01 21:55:05 -06:00
doublevoid
c487c8b1f0
add 5075 vial support (#683)
enable vialrgb

proper esc + escape unlock vial

proper keymaps

proper keymap and inverted rotary encoder

better layout
2024-03-10 19:31:43 -06:00
Fernando Muñoz
47dc08baa4
Implement ISO, terminal extra key and SSK on modelh controller (#688)
* Implement ISO and SSK

This PR will implement ISO and TKL/SSK for the modelh controller

* Allow extra key on numpad terminal
2024-03-10 19:30:58 -06:00
112 changed files with 5981 additions and 33 deletions

260
keyboards/akko/5075/5075.c Normal file
View file

@ -0,0 +1,260 @@
/* Copyright (C) 2022 jonylee@hfd
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "quantum.h"
// clang-format off
#ifdef RGB_MATRIX_ENABLE
const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to IS31 manual for these locations
* driver
* | R location
* | | G location
* | | | B location
* | | | | */
{1, A_1, B_1, C_1},
{1, A_2, B_2, C_2},
{1, A_3, B_3, C_3},
{1, A_4, B_4, C_4},
{1, A_5, B_5, C_5},
{1, A_6, B_6, C_6},
{1, A_7, B_7, C_7},
{1, A_8, B_8, C_8},
{1, A_9, B_9, C_9},
{1, A_10, B_10, C_10},
{1, A_11, B_11, C_11},
{1, A_12, B_12, C_12},
{1, A_13, B_13, C_13},
{1, A_14, B_14, C_14},
{0, A_1, B_1, C_1},
{0, A_2, B_2, C_2},
{0, A_3, B_3, C_3},
{0, A_4, B_4, C_4},
{0, A_5, B_5, C_5},
{0, A_6, B_6, C_6},
{0, A_7, B_7, C_7},
{0, A_8, B_8, C_8},
{0, A_9, B_9, C_9},
{0, A_10, B_10, C_10},
{0, A_11, B_11, C_11},
{0, A_12, B_12, C_12},
{0, A_13, B_13, C_13},
{0, A_14, B_14, C_14},
{1, D_1, E_1, F_1},
{0, D_1, E_1, F_1},
{0, D_2, E_2, F_2},
{0, D_3, E_3, F_3},
{0, D_4, E_4, F_4},
{0, D_5, E_5, F_5},
{0, D_6, E_6, F_6},
{0, D_7, E_7, F_7},
{0, D_8, E_8, F_8},
{0, D_9, E_9, F_9},
{0, D_10, E_10, F_10},
{0, D_11, E_11, F_11},
{0, D_12, E_12, F_12},
{0, D_13, E_13, F_13},
{0, D_14, E_14, F_14},
{1, D_2, E_2, F_2},
{0, G_1, H_1, I_1},
{0, G_2, H_2, I_2},
{0, G_3, H_3, I_3},
{0, G_4, H_4, I_4},
{0, G_5, H_5, I_5},
{0, G_6, H_6, I_6},
{0, G_7, H_7, I_7},
{0, G_8, H_8, I_8},
{0, G_9, H_9, I_9},
{0, G_10, H_10, I_10},
{0, G_11, H_11, I_11},
{0, G_12, H_12, I_12},
{0, A_15, B_15, C_15},
{0, G_13, H_13, I_13},
{1, D_3, E_3, F_3},
{0, J_1, K_1, L_1},
{0, A_16, B_16, C_16},
{0, J_2, K_2, L_2},
{0, J_3, K_3, L_3},
{0, J_4, K_4, L_4},
{0, J_5, K_5, L_5},
{0, J_6, K_6, L_6},
{0, J_7, K_7, L_7},
{0, J_8, K_8, L_8},
{0, J_9, K_9, L_9},
{0, J_10, K_10, L_10},
{0, J_11, K_11, L_11},
{0, J_12, K_12, L_12},
{1, D_7, E_7, F_7},
{1, D_4, E_4, F_4},
{0, J_13, K_13, L_13},
{0, J_14, K_14, L_14},
{0, J_15, K_15, L_15},
{0, J_16, K_16, L_16},
{0, G_14, H_14, I_14},
{0, G_15, H_15, I_15},
{0, G_16, H_16, I_16},
{0, D_15, E_15, F_15},
{1, D_6, E_6, F_6},
{1, D_5, E_5, F_5},
{1, G_1, H_1, I_1},
{1, G_2, H_2, I_2},
{1, G_3, H_3, I_3},
{1, G_4, H_4, I_4},
{1, G_5, H_5, I_5},
{1, G_6, H_6, I_6},
{1, G_7, H_7, I_7},
{1, G_8, H_8, I_8},
{1, G_9, H_9, I_9},
{1, G_10, H_10, I_10},
{1, G_11, H_11, I_11},
{1, J_1, K_1, L_1},
{1, J_2, K_2, L_2},
{1, J_3, K_3, L_3},
{1, J_4, K_4, L_4},
{1, J_5, K_5, L_5},
{1, J_6, K_6, L_6},
{1, J_7, K_7, L_7},
{1, J_8, K_8, L_8},
{1, J_9, K_9, L_9},
{1, J_10, K_10, L_10},
{1, J_11, K_11, L_11},
};
#endif
enum __layers {
WIN_B,
WIN_W,
WIN_FN,
MAC_B,
MAC_W,
MAC_FN
};
// clang-format on
void led_init_ports(void) {
// set our LED pings as output
setPinOutput(LED_CAPS_LOCK_PIN); // LED1 Num Lock
writePinLow(LED_CAPS_LOCK_PIN);
setPinOutput(LED_MAC_OS_PIN); // LDE2 MAC\WIN
writePinLow(LED_MAC_OS_PIN);
setPinOutput(LED_WIN_LOCK_PIN); // LED3 Win Lock
writePinLow(LED_WIN_LOCK_PIN);
}
void housekeeping_task_kb(void) {
/* Execute every 1ms */
static uint32_t last_time = 0;
if (timer_elapsed32(last_time) >= 1) {
last_time = timer_read32();
writePin(LED_MAC_OS_PIN, default_layer_state & ((1<<MAC_B)|(1<<MAC_W)));
writePin(LED_WIN_LOCK_PIN, keymap_config.no_gui);
}
}
bool dip_switch_update_kb(uint8_t index, bool active) {
if (!dip_switch_update_user(index, active)) {
return false;
}
switch (index) {
case 0:
if (active) {
if (default_layer_state & (1<<MAC_W)) {
set_single_persistent_default_layer(MAC_W);
layer_on(MAC_B);
} else {
set_single_persistent_default_layer(MAC_B);
layer_off(WIN_W);
}
keymap_config.no_gui = 0;
} else {
if (default_layer_state & (1<<MAC_W)) {
set_single_persistent_default_layer(WIN_W);
layer_on(WIN_B);
} else {
set_single_persistent_default_layer(WIN_B);
layer_off(MAC_W);
}
}
default:
break;
}
return true;
}
bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
if (!process_record_user(keycode, record)) {
return false;
}
switch (keycode) {
#ifndef DISABLE_5075_KEYCODES
case TG(WIN_W):
if (record->event.pressed) {
if (layer_state_cmp(default_layer_state, WIN_W)) {
set_single_persistent_default_layer(WIN_B);
layer_off(WIN_W);
} else {
set_single_persistent_default_layer(WIN_W);
layer_on(WIN_B);
}
}
return false;
case TG(MAC_W):
if (record->event.pressed) {
if (layer_state_cmp(default_layer_state, MAC_W)) {
set_single_persistent_default_layer(MAC_B);
layer_off(MAC_W);
} else {
set_single_persistent_default_layer(MAC_W);
layer_on(MAC_B);
}
}
return false;
case GU_TOGG:
if (record->event.pressed) {
writePin(LED_WIN_LOCK_PIN, !keymap_config.no_gui);
}
return true;
case RGB_TOG:
if (record->event.pressed) {
switch (rgb_matrix_get_flags()) {
case LED_FLAG_ALL: {
rgb_matrix_set_flags(LED_FLAG_NONE);
} break;
default: {
rgb_matrix_set_flags(LED_FLAG_ALL);
} break;
}
}
if (!rgb_matrix_is_enabled()) {
rgb_matrix_set_flags(LED_FLAG_ALL);
rgb_matrix_enable();
}
return false;
#endif//DISABLE_5075_KEYCODES
default:
return true;
}
}

View file

@ -0,0 +1,48 @@
/* Copyright (C) 2023 jonylee@hfd
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
/* Use 6 dynamic keymap layers */
#define DYNAMIC_KEYMAP_LAYER_COUNT 6
/*encoder resolution */
#define ENCODER_DEFAULT_POS 0x3
/* LED Indicators */
#define LED_MAC_OS_PIN C10
#define LED_WIN_LOCK_PIN C11
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
/* SPI Config for spi flash*/
#define SPI_DRIVER SPIDQ
#define SPI_SCK_PIN B3
#define SPI_MOSI_PIN B5
#define SPI_MISO_PIN B4
#define SPI_MOSI_PAL_MODE 5
#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12
/* I2C Config for LED Driver */
#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND
#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_VDDIO
#define I2C1_OPMODE OPMODE_I2C
#define I2C1_CLOCK_SPEED 400000 /* 400000 */
// #define DISABLE_5075_KEYCODES /*If you need to change or restore the default QMK button function, please open it*/

View file

@ -0,0 +1,23 @@
/* Copyright (C) 2022 jonylee@hfd
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#define HAL_USE_I2C TRUE
#define HAL_USE_SPI TRUE
#define SPI_USE_WAIT TRUE
#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD
#include_next <halconf.h>

View file

@ -0,0 +1,269 @@
{
"manufacturer": "Akko",
"keyboard_name": "5075",
"maintainer": "jonylee@hfd",
"bootloader": "wb32-dfu",
"diode_direction": "ROW2COL",
"eeprom": {
"driver": "wear_leveling",
"wear_leveling": {
"driver": "spi_flash",
"backing_size": 8192
}
},
"dip_switch": {
"pins": ["A9"]
},
"encoder": {
"rotary": [
{"pin_a": "B13", "pin_b": "B14"}
]
},
"features": {
"bootmagic": true,
"command": false,
"console": false,
"dip_switch": true,
"encoder": true,
"extrakey": true,
"mousekey": false,
"nkro": true,
"rgb_matrix": true
},
"indicators": {
"caps_lock": "A15"
},
"matrix_pins": {
"cols": ["C1", "C2", "C3", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "C4", "C5", "B0", "B1", "B2"],
"rows": ["B15", "C6", "C7", "C8", "C9", "A8"]
},
"processor": "WB32FQ95",
"rgb_matrix": {
"animations": {
"breathing": true,
"cycle_all": true,
"cycle_left_right": true,
"cycle_out_in": true,
"cycle_out_in_dual": true,
"cycle_pinwheel": true,
"cycle_spiral": true,
"cycle_up_down": true,
"dual_beacon": true,
"multisplash": true,
"rainbow_beacon": true,
"rainbow_moving_chevron": true,
"raindrops": true,
"solid_reactive": true,
"solid_reactive_cross": true,
"solid_reactive_simple": true,
"typing_heatmap": true
},
"driver": "snled27351",
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
{"matrix": [0, 1], "x": 14, "y": 0, "flags": 4},
{"matrix": [0, 2], "x": 29, "y": 0, "flags": 4},
{"matrix": [0, 3], "x": 44, "y": 0, "flags": 4},
{"matrix": [0, 4], "x": 59, "y": 0, "flags": 4},
{"matrix": [0, 5], "x": 74, "y": 0, "flags": 4},
{"matrix": [0, 6], "x": 89, "y": 0, "flags": 4},
{"matrix": [0, 7], "x": 104, "y": 0, "flags": 4},
{"matrix": [0, 8], "x": 119, "y": 0, "flags": 4},
{"matrix": [0, 9], "x": 134, "y": 0, "flags": 4},
{"matrix": [0, 10], "x": 149, "y": 0, "flags": 4},
{"matrix": [0, 11], "x": 164, "y": 0, "flags": 4},
{"matrix": [0, 12], "x": 179, "y": 0, "flags": 4},
{"matrix": [0, 13], "x": 196, "y": 0, "flags": 4},
{"matrix": [1, 0], "x": 0, "y": 12, "flags": 4},
{"matrix": [1, 1], "x": 14, "y": 12, "flags": 4},
{"matrix": [1, 2], "x": 28, "y": 12, "flags": 4},
{"matrix": [1, 3], "x": 42, "y": 12, "flags": 4},
{"matrix": [1, 4], "x": 56, "y": 12, "flags": 4},
{"matrix": [1, 5], "x": 70, "y": 12, "flags": 4},
{"matrix": [1, 6], "x": 84, "y": 12, "flags": 4},
{"matrix": [1, 7], "x": 98, "y": 12, "flags": 4},
{"matrix": [1, 8], "x": 112, "y": 12, "flags": 4},
{"matrix": [1, 9], "x": 126, "y": 12, "flags": 4},
{"matrix": [1, 10], "x": 140, "y": 12, "flags": 4},
{"matrix": [1, 11], "x": 154, "y": 12, "flags": 4},
{"matrix": [1, 12], "x": 168, "y": 12, "flags": 4},
{"matrix": [1, 13], "x": 182, "y": 12, "flags": 4},
{"matrix": [1, 15], "x": 224, "y": 12, "flags": 4},
{"matrix": [2, 0], "x": 0, "y": 25, "flags": 4},
{"matrix": [2, 1], "x": 14, "y": 25, "flags": 4},
{"matrix": [2, 2], "x": 28, "y": 25, "flags": 4},
{"matrix": [2, 3], "x": 42, "y": 25, "flags": 4},
{"matrix": [2, 4], "x": 56, "y": 25, "flags": 4},
{"matrix": [2, 5], "x": 70, "y": 25, "flags": 4},
{"matrix": [2, 6], "x": 84, "y": 25, "flags": 4},
{"matrix": [2, 7], "x": 98, "y": 25, "flags": 4},
{"matrix": [2, 8], "x": 112, "y": 25, "flags": 4},
{"matrix": [2, 9], "x": 126, "y": 25, "flags": 4},
{"matrix": [2, 10], "x": 140, "y": 25, "flags": 4},
{"matrix": [2, 11], "x": 154, "y": 25, "flags": 4},
{"matrix": [2, 12], "x": 168, "y": 25, "flags": 4},
{"matrix": [2, 13], "x": 182, "y": 25, "flags": 4},
{"matrix": [2, 15], "x": 224, "y": 25, "flags": 4},
{"matrix": [3, 0], "x": 0, "y": 38, "flags": 4},
{"matrix": [3, 1], "x": 28, "y": 38, "flags": 4},
{"matrix": [3, 2], "x": 42, "y": 38, "flags": 4},
{"matrix": [3, 3], "x": 56, "y": 38, "flags": 4},
{"matrix": [3, 4], "x": 70, "y": 38, "flags": 4},
{"matrix": [3, 5], "x": 84, "y": 38, "flags": 4},
{"matrix": [3, 6], "x": 98, "y": 38, "flags": 4},
{"matrix": [3, 7], "x": 112, "y": 38, "flags": 4},
{"matrix": [3, 8], "x": 126, "y": 38, "flags": 4},
{"matrix": [3, 9], "x": 140, "y": 38, "flags": 4},
{"matrix": [3, 10], "x": 154, "y": 38, "flags": 4},
{"matrix": [3, 11], "x": 168, "y": 38, "flags": 4},
{"matrix": [3, 12], "x": 182, "y": 38, "flags": 4},
{"matrix": [3, 13], "x": 196, "y": 38, "flags": 4},
{"matrix": [3, 15], "x": 224, "y": 38, "flags": 4},
{"matrix": [4, 0], "x": 0, "y": 51, "flags": 4},
{"matrix": [4, 11], "x": 18, "y": 51, "flags": 4},
{"matrix": [4, 1], "x": 32, "y": 51, "flags": 4},
{"matrix": [4, 2], "x": 46, "y": 51, "flags": 4},
{"matrix": [4, 3], "x": 61, "y": 51, "flags": 4},
{"matrix": [4, 4], "x": 75, "y": 51, "flags": 4},
{"matrix": [4, 5], "x": 90, "y": 51, "flags": 4},
{"matrix": [4, 6], "x": 104, "y": 51, "flags": 4},
{"matrix": [4, 7], "x": 129, "y": 51, "flags": 4},
{"matrix": [4, 8], "x": 143, "y": 51, "flags": 4},
{"matrix": [4, 9], "x": 157, "y": 51, "flags": 4},
{"matrix": [4, 10], "x": 172, "y": 51, "flags": 4},
{"matrix": [4, 13], "x": 186, "y": 51, "flags": 4},
{"matrix": [4, 14], "x": 205, "y": 51, "flags": 4},
{"matrix": [4, 15], "x": 224, "y": 51, "flags": 4},
{"matrix": [5, 0], "x": 0, "y": 64, "flags": 4},
{"matrix": [5, 1], "x": 18, "y": 64, "flags": 4},
{"matrix": [5, 2], "x": 37, "y": 64, "flags": 4},
{"matrix": [5, 5], "x": 90, "y": 64, "flags": 4},
{"matrix": [5, 9], "x": 144, "y": 64, "flags": 4},
{"matrix": [5, 10], "x": 158, "y": 64, "flags": 4},
{"matrix": [5, 11], "x": 173, "y": 64, "flags": 4},
{"matrix": [5, 13], "x": 191, "y": 64, "flags": 4},
{"matrix": [5, 14], "x": 205, "y": 64, "flags": 4},
{"matrix": [5, 15], "x": 220, "y": 64, "flags": 4},
{"x": 0, "y": 0, "flags": 2},
{"x": 0, "y": 6, "flags": 2},
{"x": 0, "y": 13, "flags": 2},
{"x": 0, "y": 19, "flags": 2},
{"x": 0, "y": 25, "flags": 2},
{"x": 0, "y": 32, "flags": 2},
{"x": 0, "y": 38, "flags": 2},
{"x": 0, "y": 45, "flags": 2},
{"x": 0, "y": 51, "flags": 2},
{"x": 0, "y": 57, "flags": 2},
{"x": 0, "y": 64, "flags": 2},
{"x": 224, "y": 0, "flags": 2},
{"x": 224, "y": 6, "flags": 2},
{"x": 224, "y": 13, "flags": 2},
{"x": 224, "y": 19, "flags": 2},
{"x": 224, "y": 25, "flags": 2},
{"x": 224, "y": 32, "flags": 2},
{"x": 224, "y": 38, "flags": 2},
{"x": 224, "y": 45, "flags": 2},
{"x": 224, "y": 51, "flags": 2},
{"x": 224, "y": 57, "flags": 2},
{"x": 224, "y": 64, "flags": 2}
],
"max_brightness": 180
},
"url": "https://www.akkogear.com",
"usb": {
"device_version": "1.0.3",
"force_nkro": true,
"pid": "0x000B",
"suspend_wakeup_delay": 1000,
"vid": "0xFFFE"
},
"layouts": {
"LAYOUT": {
"layout": [
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "F1", "matrix": [0, 1], "x": 1.25, "y": 0},
{"label": "F2", "matrix": [0, 2], "x": 2.25, "y": 0},
{"label": "F3", "matrix": [0, 3], "x": 3.25, "y": 0},
{"label": "F4", "matrix": [0, 4], "x": 4.25, "y": 0},
{"label": "F5", "matrix": [0, 5], "x": 5.5, "y": 0},
{"label": "F6", "matrix": [0, 6], "x": 6.5, "y": 0},
{"label": "F7", "matrix": [0, 7], "x": 7.5, "y": 0},
{"label": "F8", "matrix": [0, 8], "x": 8.5, "y": 0},
{"label": "F9", "matrix": [0, 9], "x": 9.75, "y": 0},
{"label": "F10", "matrix": [0, 10], "x": 10.75, "y": 0},
{"label": "F11", "matrix": [0, 11], "x": 11.75, "y": 0},
{"label": "F12", "matrix": [0, 12], "x": 12.75, "y": 0},
{"label": "Del", "matrix": [0, 13], "x": 14, "y": 0},
{"label": "Mute", "matrix": [0, 15], "x": 15.5, "y": 0},
{"label": "~", "matrix": [1, 0], "x": 0, "y": 1.25},
{"label": "!", "matrix": [1, 1], "x": 1, "y": 1.25},
{"label": "@", "matrix": [1, 2], "x": 2, "y": 1.25},
{"label": "#", "matrix": [1, 3], "x": 3, "y": 1.25},
{"label": "$", "matrix": [1, 4], "x": 4, "y": 1.25},
{"label": "%", "matrix": [1, 5], "x": 5, "y": 1.25},
{"label": "^", "matrix": [1, 6], "x": 6, "y": 1.25},
{"label": "&", "matrix": [1, 7], "x": 7, "y": 1.25},
{"label": "*", "matrix": [1, 8], "x": 8, "y": 1.25},
{"label": "(", "matrix": [1, 9], "x": 9, "y": 1.25},
{"label": ")", "matrix": [1, 10], "x": 10, "y": 1.25},
{"label": "_", "matrix": [1, 11], "x": 11, "y": 1.25},
{"label": "+", "matrix": [1, 12], "x": 12, "y": 1.25},
{"label": "Bksp", "matrix": [1, 13], "x": 13, "y": 1.25, "w": 2},
{"label": "Home", "matrix": [1, 15], "x": 15.5, "y": 1.25},
{"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
{"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25},
{"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25},
{"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25},
{"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25},
{"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25},
{"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25},
{"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25},
{"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25},
{"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25},
{"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25},
{"label": "{", "matrix": [2, 11], "x": 11.5, "y": 2.25},
{"label": "}", "matrix": [2, 12], "x": 12.5, "y": 2.25},
{"label": "|", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5},
{"label": "PageUp", "matrix": [2, 15], "x": 15.5, "y": 2.25},
{"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
{"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25},
{"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25},
{"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25},
{"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25},
{"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25},
{"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25},
{"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25},
{"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25},
{"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25},
{"label": ":", "matrix": [3, 10], "x": 10.75, "y": 3.25},
{"label": "\"", "matrix": [3, 11], "x": 11.75, "y": 3.25},
{"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 3.25, "w": 2.25},
{"label": "PageDn", "matrix": [3, 15], "x": 15.5, "y": 3.25},
{"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25},
{"label": "Z", "matrix": [4, 1], "x": 2.25, "y": 4.25},
{"label": "X", "matrix": [4, 2], "x": 3.25, "y": 4.25},
{"label": "C", "matrix": [4, 3], "x": 4.25, "y": 4.25},
{"label": "V", "matrix": [4, 4], "x": 5.25, "y": 4.25},
{"label": "B", "matrix": [4, 5], "x": 6.25, "y": 4.25},
{"label": "N", "matrix": [4, 6], "x": 7.25, "y": 4.25},
{"label": "M", "matrix": [4, 7], "x": 8.25, "y": 4.25},
{"label": "<", "matrix": [4, 8], "x": 9.25, "y": 4.25},
{"label": ">", "matrix": [4, 9], "x": 10.25, "y": 4.25},
{"label": "?", "matrix": [4, 10], "x": 11.25, "y": 4.25},
{"label": "Shift", "matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 1.75},
{"label": "Up", "matrix": [4, 14], "x": 14.25, "y": 4.5},
{"label": "End", "matrix": [4, 15], "x": 15.5, "y": 4.25},
{"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25},
{"label": "Win", "matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25},
{"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25},
{"label": "Space", "matrix": [5, 5], "x": 3.75, "y": 5.25, "w": 6.25},
{"label": "Alt", "matrix": [5, 9], "x": 10, "y": 5.25},
{"label": "Fn", "matrix": [5, 10], "x": 11, "y": 5.25},
{"label": "Ctrl", "matrix": [5, 11], "x": 12, "y": 5.25},
{"label": "Left", "matrix": [5, 13], "x": 13.25, "y": 5.5},
{"label": "Down", "matrix": [5, 14], "x": 14.25, "y": 5.5},
{"label": "Right", "matrix": [5, 15], "x": 15.25, "y": 5.5}
]
}
}
}

View file

@ -0,0 +1,90 @@
/* Copyright (C) 2023 jonylee@hfd
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
// clang-format off
enum __layers {
WIN_B,
WIN_W,
WIN_FN,
MAC_B,
MAC_W,
MAC_FN
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[WIN_B] = LAYOUT( /* Base */
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_MUTE,
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_BSPC, KC_HOME,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,KC_RBRC, KC_BSLS, KC_PGUP,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
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_END,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
[WIN_W] = LAYOUT( /* Base */
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W, _______,
_______, _______, _______, _______, _______, MO(WIN_FN), _______, KC_A, KC_S, KC_D),
[WIN_FN] = LAYOUT( /* FN */
_______, KC_MYCM, KC_MAIL, KC_WSCH, KC_WHOM, KC_MSEL, KC_MPLY, KC_MPRV, KC_MNXT, _______, _______, _______, _______, _______, RGB_MOD,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______,
_______, _______,TG(WIN_W),_______, _______, _______, _______, _______, KC_INS, _______, KC_PSCR,_______, _______, RGB_MOD, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, RGB_MOD, RGB_HUI, _______,
_______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI, _______,
_______, GU_TOGG, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI),
[MAC_B] = LAYOUT( /* Base */
KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, KC_F5, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD,KC_VOLU, KC_DEL, KC_MUTE,
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_BSPC, KC_HOME,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,KC_RBRC, KC_BSLS, KC_PGUP,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
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_END,
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, MO(MAC_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
[MAC_W] = LAYOUT( /* Base */
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W, _______,
_______, _______, _______, _______, _______, MO(MAC_FN), _______, KC_A, KC_S, KC_D),
[MAC_FN] = LAYOUT( /* FN */
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, RGB_MOD,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______,
_______, _______,TG(MAC_W),_______, _______, _______, _______, _______, KC_INS, _______, KC_PSCR,_______, _______,RGB_MOD, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, RGB_MOD, RGB_HUI, _______,
_______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI, _______,
_______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI),
};
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[WIN_B] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
[WIN_W] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
[WIN_FN] = { ENCODER_CCW_CW(RGB_VAI, RGB_VAD) },
[MAC_B] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
[MAC_W] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
[MAC_FN] = { ENCODER_CCW_CW(RGB_VAI, RGB_VAD) }
};
#endif

View file

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

View file

@ -0,0 +1,90 @@
/* Copyright (C) 2023 jonylee@hfd
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
// clang-format off
enum __layers {
WIN_B,
WIN_W,
WIN_FN,
MAC_B,
MAC_W,
MAC_FN
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[WIN_B] = LAYOUT( /* Base */
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_MUTE,
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_BSPC, KC_HOME,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,KC_RBRC, KC_BSLS, KC_PGUP,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
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_END,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
[WIN_W] = LAYOUT( /* Base */
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W, _______,
_______, _______, _______, _______, _______, MO(WIN_FN), _______, KC_A, KC_S, KC_D),
[WIN_FN] = LAYOUT( /* FN */
_______, KC_MYCM, KC_MAIL, KC_WSCH, KC_WHOM, KC_MSEL, KC_MPLY, KC_MPRV, KC_MNXT, _______, _______, _______, _______, _______, RGB_MOD,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______,
_______, _______,TG(WIN_W),_______, _______, _______, _______, _______, KC_INS, _______, KC_PSCR,_______, _______, RGB_MOD, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, RGB_MOD, RGB_HUI, _______,
_______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI, _______,
_______, GU_TOGG, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI),
[MAC_B] = LAYOUT( /* Base */
KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, KC_F5, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD,KC_VOLU, KC_DEL, KC_MUTE,
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_BSPC, KC_HOME,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,KC_RBRC, KC_BSLS, KC_PGUP,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
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_END,
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, MO(MAC_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
[MAC_W] = LAYOUT( /* Base */
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W, _______,
_______, _______, _______, _______, _______, MO(MAC_FN), _______, KC_A, KC_S, KC_D),
[MAC_FN] = LAYOUT( /* FN */
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, RGB_MOD,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______,
_______, _______,TG(MAC_W),_______, _______, _______, _______, _______, KC_INS, _______, KC_PSCR,_______, _______,RGB_MOD, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, RGB_MOD, RGB_HUI, _______,
_______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI, _______,
_______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI),
};
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[WIN_B] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
[WIN_W] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
[WIN_FN] = { ENCODER_CCW_CW(RGB_VAI, RGB_VAD) },
[MAC_B] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
[MAC_W] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
[MAC_FN] = { ENCODER_CCW_CW(RGB_VAI, RGB_VAD) }
};
#endif

View file

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

View file

@ -0,0 +1,7 @@
/* SPDX-License-Identifier: GPL-2.0-or-later */
#pragma once
#define VIAL_KEYBOARD_UID {0x83, 0x85, 0x35, 0x7A, 0xB4, 0xD8, 0x47, 0x4E}
#define VIAL_UNLOCK_COMBO_ROWS { 0, 3 }
#define VIAL_UNLOCK_COMBO_COLS { 0, 13 }

View file

@ -0,0 +1,91 @@
/* Copyright (C) 2023 jonylee@hfd
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
// clang-format off
enum __layers {
WIN_B,
WIN_W,
WIN_FN,
MAC_B,
MAC_W,
MAC_FN
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[WIN_B] = LAYOUT( /* Base */
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_MUTE,
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_BSPC, KC_HOME,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,KC_RBRC, KC_BSLS, KC_PGUP,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
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_END,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
[WIN_W] = LAYOUT( /* Base */
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W, _______,
_______, _______, _______, _______, _______, MO(WIN_FN), _______, KC_A, KC_S, KC_D),
[WIN_FN] = LAYOUT( /* FN */
_______, KC_MYCM, KC_MAIL, KC_WSCH, KC_WHOM, KC_MSEL, KC_MPLY, KC_MPRV, KC_MNXT, _______, _______, _______, _______, _______, RGB_MOD,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______,
_______, _______,TG(WIN_W),_______, _______, _______, _______, _______, KC_INS, _______, KC_PSCR,_______, _______, RGB_MOD, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, RGB_MOD, RGB_HUI, _______,
_______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI, _______,
_______, GU_TOGG, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI),
[MAC_B] = LAYOUT( /* Base */
KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, KC_F5, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD,KC_VOLU, KC_DEL, KC_MUTE,
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_BSPC, KC_HOME,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,KC_RBRC, KC_BSLS, KC_PGUP,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
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_END,
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, MO(MAC_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
[MAC_W] = LAYOUT( /* Base */
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W, _______,
_______, _______, _______, _______, _______, MO(MAC_FN), _______, KC_A, KC_S, KC_D),
[MAC_FN] = LAYOUT( /* FN */
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, RGB_MOD,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______,
_______, _______,TG(MAC_W),_______, _______, _______, _______, _______, KC_INS, _______, KC_PSCR,_______, _______,RGB_MOD, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, RGB_MOD, RGB_HUI, _______,
_______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI, _______,
_______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI),
};
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
[WIN_B] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
[WIN_W] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
[WIN_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI) },
[MAC_B] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
[MAC_W] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
[MAC_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }
};
#endif

View file

@ -0,0 +1,4 @@
ENCODER_MAP_ENABLE = yes
VIA_ENABLE = yes
VIAL_ENABLE = yes
VIALRGB_ENABLE = yes

View file

@ -0,0 +1,211 @@
{
"matrix": { "rows": 6, "cols": 16 },
"lighting": "vialrgb",
"customKeycodes":[
{"name":"RESET","title":"RESET EEPROM","shortName":"RESET"}
],
"layouts": {
"keymap":[
[
{
"c": "#777777"
},
"0,0",
{
"x": 0.25,
"c": "#AAAAAA"
},
"0,1",
"0,2",
"0,3",
"0,4",
{
"x": 0.25
},
"0,5",
"0,6",
"0,7",
"0,8",
{
"x": 0.25
},
"0,9",
"0,10",
"0,11",
"0,12",
{
"x": 0.25
},
"0,13",
{
"x": 0.5
},
"0,15",
{
"x": 0.25
},
"0,0\n\n\n\n\n\n\n\n\ne",
"0,1\n\n\n\n\n\n\n\n\ne"
],
[
{
"y": 0.25
},
"1,0\n`",
{
"c": "#cccccc"
},
"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": "#AAAAAA",
"w": 2
},
"1,13",
{
"x": 0.5
},
"1,15"
],
[
{
"w": 1.5
},
"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",
"2,12",
{
"c": "#AAAAAA",
"w": 1.5
},
"2,13",
{
"x": 0.5
},
"2,15"
],
[
{
"w": 1.75
},
"3,0",
{
"c": "#cccccc"
},
"3,1",
"3,2",
"3,3",
"3,4",
"3,5",
"3,6",
"3,7",
"3,8",
"3,9",
"3,10",
"3,11",
{
"c": "#777777",
"w": 2.25
},
"3,13",
{
"x": 0.5,
"c": "#AAAAAA"
},
"3,15"
],
[
{
"w": 2.25
},
"4,0",
{
"c": "#cccccc"
},
"4,1",
"4,2",
"4,3",
"4,4",
"4,5",
"4,6",
"4,7",
"4,8",
"4,9",
"4,10",
{
"c": "#AAAAAA",
"w": 1.75
},
"4,13",
{
"x": 1.5
},
"4,15"
],
[
{
"y": -0.75,
"x": 14.25,
"c": "#777777"
},
"4,14"
],
[
{
"y": -0.25,
"c": "#AAAAAA",
"w": 1.25
},
"5,0",
{
"w": 1.25
},
"5,1",
{
"w": 1.25
},
"5,2",
{
"w": 6.25
},
"5,5",
"5,9",
"5,10",
"5,11"
],
[
{
"y": -0.75,
"x": 13.25,
"c": "#777777"
},
"5,13",
"5,14",
"5,15"
]
]
}
}

View file

@ -0,0 +1,24 @@
/* Copyright (C) 2022 jonylee@hfd
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#include_next <mcuconf.h>
#undef WB32_SPI_USE_QSPI
#define WB32_SPI_USE_QSPI TRUE
#undef WB32_I2C_USE_I2C1
#define WB32_I2C_USE_I2C1 TRUE

View file

@ -0,0 +1,25 @@
# 5075
![5075](https://github.com/jonylee1986/qmk_firmware_master/assets/108282809/e2b46a2b-4ab5-48bd-90d2-7e8a7a841d7e)
A customizable 75% encoder keyboard.
* Keyboard Maintainer: [jonylee@hfd](https://github.com/jonylee1986)
* Hardware Supported: Akko 5075
* Hardware Availability: [akko](https://www.akkogear.com/)
Make example for this keyboard (after setting up your build environment):
make akko/5075:default
Flashing example for this keyboard:
make akko/5075:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
## Bootloader
Enter the bootloader in 2 ways:
* **Bootmagic reset**: Hold down the Hold down the top left key (commonly programmed as *Esc*) and plug in the keyboard
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

View file

@ -0,0 +1 @@
# This file intentionally left blank

View file

@ -0,0 +1,112 @@
{
"maintainer": "Mai The San",
"manufacturer": "Asmodus",
"processor": "RP2040",
"bootloader": "rp2040",
"diode_direction": "COL2ROW",
"matrix_pins": {
"rows": ["GP3", "GP1", "GP0", "GP25", "GP11", "GP9"],
"cols": ["GP29", "GP27", "GP26", "GP24", "GP23", "GP22", "GP21", "GP20", "GP19", "GP18", "GP17", "GP16", "GP15", "GP14", "GP13", "GP5", "GP4"]
},
"dynamic_keymap": {
"layer_count": 6
},
"url": "https://paramountkeeb.com/products/plaque-a-d",
"layouts": {
"LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1.25, "y": 0},
{"matrix": [0, 2], "x": 2.25, "y": 0},
{"matrix": [0, 3], "x": 3.25, "y": 0},
{"matrix": [0, 4], "x": 4.25, "y": 0},
{"matrix": [0, 5], "x": 5.5, "y": 0},
{"matrix": [0, 6], "x": 6.5, "y": 0},
{"matrix": [0, 7], "x": 7.5, "y": 0},
{"matrix": [0, 8], "x": 8.5, "y": 0},
{"matrix": [0, 9], "x": 9.75, "y": 0},
{"matrix": [0, 10], "x": 10.75, "y": 0},
{"matrix": [0, 11], "x": 11.75, "y": 0},
{"matrix": [0, 12], "x": 12.75, "y": 0},
{"matrix": [0, 13], "x": 14, "y": 0},
{"matrix": [0, 14], "x": 15.25, "y": 0},
{"matrix": [0, 15], "x": 16.25, "y": 0},
{"matrix": [0, 16], "x": 17.25, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1.25},
{"matrix": [1, 1], "x": 1, "y": 1.25},
{"matrix": [1, 2], "x": 2, "y": 1.25},
{"matrix": [1, 3], "x": 3, "y": 1.25},
{"matrix": [1, 4], "x": 4, "y": 1.25},
{"matrix": [1, 5], "x": 5, "y": 1.25},
{"matrix": [1, 6], "x": 6, "y": 1.25},
{"matrix": [1, 7], "x": 7, "y": 1.25},
{"matrix": [1, 8], "x": 8, "y": 1.25},
{"matrix": [1, 9], "x": 9, "y": 1.25},
{"matrix": [1, 10], "x": 10, "y": 1.25},
{"matrix": [1, 11], "x": 11, "y": 1.25},
{"matrix": [1, 12], "x": 12, "y": 1.25},
{"matrix": [3, 12], "x": 13, "y": 1.25},
{"matrix": [1, 13], "x": 14, "y": 1.25},
{"matrix": [1, 14], "x": 15.25, "y": 1.25},
{"matrix": [1, 15], "x": 16.25, "y": 1.25},
{"matrix": [1, 16], "x": 17.25, "y": 1.25},
{"matrix": [2, 0], "w": 1.5, "x": 0, "y": 2.25},
{"matrix": [2, 1], "x": 1.5, "y": 2.25},
{"matrix": [2, 2], "x": 2.5, "y": 2.25},
{"matrix": [2, 3], "x": 3.5, "y": 2.25},
{"matrix": [2, 4], "x": 4.5, "y": 2.25},
{"matrix": [2, 5], "x": 5.5, "y": 2.25},
{"matrix": [2, 6], "x": 6.5, "y": 2.25},
{"matrix": [2, 7], "x": 7.5, "y": 2.25},
{"matrix": [2, 8], "x": 8.5, "y": 2.25},
{"matrix": [2, 9], "x": 9.5, "y": 2.25},
{"matrix": [2, 10], "x": 10.5, "y": 2.25},
{"matrix": [2, 11], "x": 11.5, "y": 2.25},
{"matrix": [2, 12], "x": 12.5, "y": 2.25},
{"matrix": [2, 13], "w": 1.5, "x": 13.5, "y": 2.25},
{"matrix": [2, 14], "x": 15.25, "y": 2.25},
{"matrix": [2, 15], "x": 16.25, "y": 2.25},
{"matrix": [2, 16], "x": 17.25, "y": 2.25},
{"matrix": [3, 0], "w": 1.75, "x": 0, "y": 3.25},
{"matrix": [3, 1], "x": 1.75, "y": 3.25},
{"matrix": [3, 2], "x": 2.75, "y": 3.25},
{"matrix": [3, 3], "x": 3.75, "y": 3.25},
{"matrix": [3, 4], "x": 4.75, "y": 3.25},
{"matrix": [3, 5], "x": 5.75, "y": 3.25},
{"matrix": [3, 6], "x": 6.75, "y": 3.25},
{"matrix": [3, 7], "x": 7.75, "y": 3.25},
{"matrix": [3, 8], "x": 8.75, "y": 3.25},
{"matrix": [3, 9], "x": 9.75, "y": 3.25},
{"matrix": [3, 10], "x": 10.75, "y": 3.25},
{"matrix": [3, 11], "x": 11.75, "y": 3.25},
{"matrix": [3, 13], "w": 2.25, "x": 12.75, "y": 3.25},
{"matrix": [4, 0], "w": 1.25, "x": 0, "y": 4.25},
{"matrix": [4, 1], "x": 1.25, "y": 4.25},
{"matrix": [4, 2], "x": 2.25, "y": 4.25},
{"matrix": [4, 3], "x": 3.25, "y": 4.25},
{"matrix": [4, 4], "x": 4.25, "y": 4.25},
{"matrix": [4, 5], "x": 5.25, "y": 4.25},
{"matrix": [4, 6], "x": 6.25, "y": 4.25},
{"matrix": [4, 7], "x": 7.25, "y": 4.25},
{"matrix": [4, 8], "x": 8.25, "y": 4.25},
{"matrix": [4, 9], "x": 9.25, "y": 4.25},
{"matrix": [4, 10], "x": 10.25, "y": 4.25},
{"matrix": [4, 11], "x": 11.25, "y": 4.25},
{"matrix": [4, 12], "w": 1.75, "x": 12.25, "y": 4.25},
{"matrix": [4, 13], "x": 14, "y": 4.25},
{"matrix": [4, 15], "x": 16.25, "y": 4.25},
{"matrix": [5, 0], "w": 1.25, "x": 0, "y": 5.25},
{"matrix": [5, 1], "w": 1.25, "x": 1.25, "y": 5.25},
{"matrix": [5, 2], "w": 1.25, "x": 2.5, "y": 5.25},
{"matrix": [5, 6], "w": 6.25, "x": 3.75, "y": 5.25},
{"matrix": [5, 10], "w": 1.25, "x": 10, "y": 5.25},
{"matrix": [5, 11], "w": 1.25, "x": 11.25, "y": 5.25},
{"matrix": [5, 12], "w": 1.25, "x": 12.5, "y": 5.25},
{"matrix": [5, 13], "w": 1.25, "x": 13.75, "y": 5.25},
{"matrix": [5, 14], "x": 15.25, "y": 5.25},
{"matrix": [5, 15], "x": 16.25, "y": 5.25},
{"matrix": [5, 16], "x": 17.25, "y": 5.25}
]
}
}
}

View file

@ -0,0 +1,29 @@
# Plaque A.D
![Plaque A.D](https://i.imgur.com/axShuI3.jpeg)
A Hotswap Multi-layout F13 TKL PCB (h88c compatible) powered by RP2040.
* Keyboard Maintainer: Mai The San
* Hardware Supported: Plaque A.D PCB
* Hardware Availability: [Plaque A.D](https://paramountkeeb.com/products/plaque-a-d)
Make example for this keyboard (after setting up your build environment):
make asmodus/plaquead:default
make asmodus/plaquead/rgb:default
Flashing example for this keyboard:
make asmodus/plaquead:default:flash
make asmodus/plaquead/rgb:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
## Bootloader
Enter the bootloader in 3 ways:
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
* **Physical reset button**: Briefly short the `RST` and `GND` pads on the SWD header twice, or short the `BOOT` header and plug in keyboard
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

View file

@ -0,0 +1,25 @@
/*
Copyright 2024 Asmodus
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U
#define RP2040_FLASH_GENERIC_03H
#ifdef RGB_MATRIX_ENABLE
#define CAPS_LOCK_LED_INDEX 54
#define SCROLL_LOCK_LED_INDEX 1
#endif

View file

@ -0,0 +1,73 @@
{
"keyboard_name": "Plaque A.D RGB",
"usb": {
"vid": "0x5A50",
"pid": "0x1875",
"device_version": "0.0.1"
},
"features": {
"bootmagic": true,
"mousekey": true,
"extrakey": true,
"nkro": true,
"rgb_matrix": true
},
"ws2812": {
"pin": "GP2",
"driver": "vendor"
},
"rgb_matrix": {
"led_count": 136,
"center_point": [112, 32],
"animations": {
"alphas_mods": true,
"gradient_up_down": true,
"gradient_left_right": true,
"breathing": true,
"band_sat": true,
"band_val": true,
"band_pinwheel_sat": true,
"band_pinwheel_val": true,
"band_spiral_sat": true,
"band_spiral_val": true,
"cycle_all": true,
"cycle_left_right": true,
"cycle_up_down": true,
"rainbow_moving_chevron": true,
"cycle_out_in": true,
"cycle_out_in_dual": true,
"cycle_pinwheel": true,
"cycle_spiral": true,
"dual_beacon": true,
"rainbow_beacon": true,
"rainbow_pinwheels": true,
"raindrops": true,
"jellybean_raindrops": true,
"hue_breathing": true,
"hue_pendulum": true,
"hue_wave": true,
"fractal": true,
"pixel_rain": true,
"pixel_flow": true,
"typing_heatmap": true,
"digital_rain": true,
"solid_reactive_simple": true,
"solid_reactive": true,
"solid_reactive_wide": true,
"solid_reactive_multiwide": true,
"solid_reactive_cross": true,
"solid_reactive_multicross": true,
"solid_reactive_nexus": true,
"solid_reactive_multinexus": true,
"splash": true,
"multisplash": true,
"solid_splash": true,
"solid_multisplash": true
},
"default": {
"val": 60
},
"driver": "ws2812",
"sleep": true
}
}

View file

@ -0,0 +1,78 @@
/*
Copyright 2024 Asmodus
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_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_BSPC, KC_INS, KC_HOME, KC_PGUP,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_TRNS, KC_UP,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, _______, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT)
};
// Code for indicator
#if defined(RGB_MATRIX_ENABLE) && defined(CAPS_LOCK_LED_INDEX) && defined(SCROLL_LOCK_LED_INDEX)
#if !defined(CAPS_LOCK_MAX_BRIGHTNESS)
#define CAPS_LOCK_MAX_BRIGHTNESS RGB_MATRIX_MAXIMUM_BRIGHTNESS
#endif
#if !defined(CAPS_LOCK_VAL_STEP)
#define CAPS_LOCK_VAL_STEP RGB_MATRIX_VAL_STEP
#endif
#if !defined(SCROLL_LOCK_MAX_BRIGHTNESS)
#define SCROLL_LOCK_MAX_BRIGHTNESS RGB_MATRIX_MAXIMUM_BRIGHTNESS
#endif
#if !defined(SCROLL_LOCK_VAL_STEP)
#define SCROLL_LOCK_VAL_STEP RGB_MATRIX_VAL_STEP
#endif
bool rgb_matrix_indicators_user(void) {
if (host_keyboard_led_state().caps_lock) {
uint8_t b = rgb_matrix_get_val();
if (b < CAPS_LOCK_VAL_STEP) {
b = CAPS_LOCK_VAL_STEP;
} else if (b < (CAPS_LOCK_MAX_BRIGHTNESS - CAPS_LOCK_VAL_STEP)) {
b += CAPS_LOCK_VAL_STEP; // one step more than current brightness
} else {
b = CAPS_LOCK_MAX_BRIGHTNESS;
}
rgb_matrix_set_color(CAPS_LOCK_LED_INDEX, b, b, b); // white, with the adjusted brightness
}
if (host_keyboard_led_state().scroll_lock) {
uint8_t b = rgb_matrix_get_val();
if (b < SCROLL_LOCK_VAL_STEP) {
b = SCROLL_LOCK_VAL_STEP;
} else if (b < (SCROLL_LOCK_MAX_BRIGHTNESS - SCROLL_LOCK_VAL_STEP)) {
b += SCROLL_LOCK_VAL_STEP; // one step more than current brightness
} else {
b = SCROLL_LOCK_MAX_BRIGHTNESS;
}
rgb_matrix_set_color(SCROLL_LOCK_LED_INDEX, b, b, b); // white, with the adjusted brightness
}
return false;
}
#endif
// Code for Scroll Locks indicator

View file

@ -0,0 +1,78 @@
/*
Copyright 2024 Asmodus
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_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_BSPC, KC_INS, KC_HOME, KC_PGUP,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_TRNS, KC_UP,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT)
};
// Code for indicator
#if defined(RGB_MATRIX_ENABLE) && defined(CAPS_LOCK_LED_INDEX) && defined(SCROLL_LOCK_LED_INDEX)
#if !defined(CAPS_LOCK_MAX_BRIGHTNESS)
#define CAPS_LOCK_MAX_BRIGHTNESS RGB_MATRIX_MAXIMUM_BRIGHTNESS
#endif
#if !defined(CAPS_LOCK_VAL_STEP)
#define CAPS_LOCK_VAL_STEP RGB_MATRIX_VAL_STEP
#endif
#if !defined(SCROLL_LOCK_MAX_BRIGHTNESS)
#define SCROLL_LOCK_MAX_BRIGHTNESS RGB_MATRIX_MAXIMUM_BRIGHTNESS
#endif
#if !defined(SCROLL_LOCK_VAL_STEP)
#define SCROLL_LOCK_VAL_STEP RGB_MATRIX_VAL_STEP
#endif
bool rgb_matrix_indicators_user(void) {
if (host_keyboard_led_state().caps_lock) {
uint8_t b = rgb_matrix_get_val();
if (b < CAPS_LOCK_VAL_STEP) {
b = CAPS_LOCK_VAL_STEP;
} else if (b < (CAPS_LOCK_MAX_BRIGHTNESS - CAPS_LOCK_VAL_STEP)) {
b += CAPS_LOCK_VAL_STEP; // one step more than current brightness
} else {
b = CAPS_LOCK_MAX_BRIGHTNESS;
}
rgb_matrix_set_color(CAPS_LOCK_LED_INDEX, b, b, b); // white, with the adjusted brightness
}
if (host_keyboard_led_state().scroll_lock) {
uint8_t b = rgb_matrix_get_val();
if (b < SCROLL_LOCK_VAL_STEP) {
b = SCROLL_LOCK_VAL_STEP;
} else if (b < (SCROLL_LOCK_MAX_BRIGHTNESS - SCROLL_LOCK_VAL_STEP)) {
b += SCROLL_LOCK_VAL_STEP; // one step more than current brightness
} else {
b = SCROLL_LOCK_MAX_BRIGHTNESS;
}
rgb_matrix_set_color(SCROLL_LOCK_LED_INDEX, b, b, b); // white, with the adjusted brightness
}
return false;
}
#endif
// Code for Scroll Locks indicator

View file

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

View file

@ -0,0 +1,19 @@
/*
Copyright 2024 Asmodus
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#define VIAL_UNLOCK_COMBO_ROWS { 0, 3 }
#define VIAL_UNLOCK_COMBO_COLS { 0, 13 }
#define VIAL_KEYBOARD_UID {0x9C, 0x48, 0x52, 0xD7, 0x95, 0xC0, 0x50, 0x8C}

View file

@ -0,0 +1,120 @@
/*
Copyright 2024 Asmodus
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_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_BSPC, KC_INS, KC_HOME, KC_PGUP,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_TRNS, KC_UP,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
[1] = LAYOUT(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
[2] = LAYOUT(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
[3] = LAYOUT(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
[4] = LAYOUT(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
[5] = LAYOUT(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
};
// Code for indicator
#if defined(RGB_MATRIX_ENABLE) && defined(CAPS_LOCK_LED_INDEX) && defined(SCROLL_LOCK_LED_INDEX)
#if !defined(CAPS_LOCK_MAX_BRIGHTNESS)
#define CAPS_LOCK_MAX_BRIGHTNESS RGB_MATRIX_MAXIMUM_BRIGHTNESS
#endif
#if !defined(CAPS_LOCK_VAL_STEP)
#define CAPS_LOCK_VAL_STEP RGB_MATRIX_VAL_STEP
#endif
#if !defined(SCROLL_LOCK_MAX_BRIGHTNESS)
#define SCROLL_LOCK_MAX_BRIGHTNESS RGB_MATRIX_MAXIMUM_BRIGHTNESS
#endif
#if !defined(SCROLL_LOCK_VAL_STEP)
#define SCROLL_LOCK_VAL_STEP RGB_MATRIX_VAL_STEP
#endif
bool rgb_matrix_indicators_user(void) {
if (host_keyboard_led_state().caps_lock) {
uint8_t b = rgb_matrix_get_val();
if (b < CAPS_LOCK_VAL_STEP) {
b = CAPS_LOCK_VAL_STEP;
} else if (b < (CAPS_LOCK_MAX_BRIGHTNESS - CAPS_LOCK_VAL_STEP)) {
b += CAPS_LOCK_VAL_STEP; // one step more than current brightness
} else {
b = CAPS_LOCK_MAX_BRIGHTNESS;
}
rgb_matrix_set_color(CAPS_LOCK_LED_INDEX, b, b, b); // white, with the adjusted brightness
}
if (host_keyboard_led_state().scroll_lock) {
uint8_t b = rgb_matrix_get_val();
if (b < SCROLL_LOCK_VAL_STEP) {
b = SCROLL_LOCK_VAL_STEP;
} else if (b < (SCROLL_LOCK_MAX_BRIGHTNESS - SCROLL_LOCK_VAL_STEP)) {
b += SCROLL_LOCK_VAL_STEP; // one step more than current brightness
} else {
b = SCROLL_LOCK_MAX_BRIGHTNESS;
}
rgb_matrix_set_color(SCROLL_LOCK_LED_INDEX, b, b, b); // white, with the adjusted brightness
}
return false;
}
#endif
// Code for Scroll Locks indicator

View file

@ -0,0 +1,3 @@
VIA_ENABLE = yes
VIAL_ENABLE = yes
VIALRGB_ENABLE = yes

View file

@ -0,0 +1,297 @@
{
"name": "Plaque A.D RGB",
"vendorId": "0x5A50",
"productId": "0x1875",
"matrix": {
"rows": 6,
"cols": 17
},
"lighting": "vialrgb",
"layouts": {
"labels": [
"Split Backspace",
"ISO",
"Split Left Shift",
"Split Right Shift",
"Stepped Caps",
["Bottom Row", "6.25U", "7U", "WKL"]
],
"keymap": [
[
{
"x": 2.5
},
"0,0",
{
"x": 0.25
},
"0,1",
"0,2",
"0,3",
"0,4",
{
"x": 0.25
},
"0,5",
"0,6",
"0,7",
"0,8",
{
"x": 0.25
},
"0,9",
"0,10",
"0,11",
"0,12",
{
"x": 0.25
},
"0,13",
{
"x": 0.25
},
"0,14",
"0,15",
"0,16"
],
[
{
"y": 0.25,
"x": 2.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",
{
"w": 2
},
"1,13\n\n\n0,0",
{
"x": 0.25
},
"1,14",
"1,15",
"1,16",
{
"x": 1
},
"3,12\n\n\n0,1",
"1,13\n\n\n0,1"
],
[
{
"x": 2.5,
"w": 1.5
},
"2,0",
"2,1",
"2,2",
"2,3",
"2,4",
"2,5",
"2,6",
"2,7",
"2,8",
"2,9",
"2,10",
"2,11",
"2,12",
{
"w": 1.5
},
"2,13\n\n\n1,0",
{
"x": 0.25
},
"2,14",
"2,15",
"2,16",
{
"x": 1.75,
"w": 1.25,
"h": 2,
"w2": 1.5,
"h2": 1,
"x2": -0.25
},
"2,13\n\n\n1,1"
],
[
{
"w": 1.25,
"w2": 1.75,
"l": true
},
"3,0\n\n\n4,1",
{
"x": 1.25,
"w": 1.75
},
"3,0\n\n\n4,0",
"3,1",
"3,2",
"3,3",
"3,4",
"3,5",
"3,6",
"3,7",
"3,8",
"3,9",
"3,10",
"3,11",
{
"w": 2.25
},
"3,13\n\n\n1,0",
{
"x": 4
},
"3,13\n\n\n1,1"
],
[
{
"w": 1.25
},
"4,0\n\n\n2,1",
"4,1\n\n\n2,1",
{
"x": 0.25,
"w": 2.25
},
"4,0\n\n\n2,0",
"4,2",
"4,3",
"4,4",
"4,5",
"4,6",
"4,7",
"4,8",
"4,9",
"4,10",
"4,11",
{
"w": 2.75
},
"4,12\n\n\n3,0",
{
"x": 1.25
},
"4,15",
{
"x": 1.25,
"w": 1.75
},
"4,12\n\n\n3,1",
"4,13\n\n\n3,1"
],
[
{
"x": 2.5,
"w": 1.25
},
"5,0\n\n\n5,0",
{
"w": 1.25
},
"5,1\n\n\n5,0",
{
"w": 1.25
},
"5,2\n\n\n5,0",
{
"w": 6.25
},
"5,6\n\n\n5,0",
{
"w": 1.25
},
"5,10\n\n\n5,0",
{
"w": 1.25
},
"5,11\n\n\n5,0",
{
"w": 1.25
},
"5,12\n\n\n5,0",
{
"w": 1.25
},
"5,13\n\n\n5,0",
{
"x": 0.25
},
"5,14",
"5,15",
"5,16"
],
[
{
"y": 0.25,
"x": 2.5,
"w": 1.5
},
"5,0\n\n\n5,1",
"5,1\n\n\n5,1",
{
"w": 1.5
},
"5,2\n\n\n5,1",
{
"w": 7
},
"5,6\n\n\n5,1",
{
"w": 1.5
},
"5,11\n\n\n5,1",
"5,12\n\n\n5,1",
{
"w": 1.5
},
"5,13\n\n\n5,1"
],
[
{
"x": 2.5,
"w": 1.5
},
"5,0\n\n\n5,2",
{
"d": true
},
"5,1\n\n\n5,2",
{
"w": 1.5
},
"5,2\n\n\n5,2",
{
"w": 7
},
"5,6\n\n\n5,2",
{
"w": 1.5
},
"5,11\n\n\n5,2",
{
"d": true
},
"5,12\n\n\n5,2",
{
"w": 1.5
},
"5,13\n\n\n5,2"
]
]
}
}

View file

@ -0,0 +1,71 @@
/*
Copyright 2024 Asmodus
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
led_config_t g_led_config = { {
// { 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , NO_LED , 13 , 14 , 15 },
// { 16 , 17 , 18 , 19 , 20 , 21 , 22 , 23 , 24 , 25 , 26 , 27 , 28 , 29 , 30 , 31 , 32 },
// { 33 , 34 , 35 , 36 , 37 , 38 , 39 , 40 , 41 , 42 , 43 , 44 , 45 , 46 , 47 , 48 , 49 },
// { 50 , 51 , 52 , 53 , 54 , 55 , 56 , 57 , 58 , 59 , 60 , 61 , 62 , NO_LED , NO_LED , NO_LED , NO_LED },
// { 63 , NO_LED , 64 , 65 , 66 , 67 , 68 , 69 , 70 , 71 , 72 , 73 , 74 , NO_LED , NO_LED , 75 , NO_LED },
// { 76 , 77 , 78 , NO_LED , NO_LED , NO_LED , 79 , NO_LED , NO_LED , 80 , 81 , 82 , 83 , NO_LED , 84 , 85 , 86 }
//
{ 17 , 16 , 15 , 14 , 13 , 12 , 10 , 9 , 8 , 7 , 6 , 5 , 4 , 3 , 2 , 1 , 0 },
{ 18 , 19 , 20 , 21 , 22 , 23 , 24 , 25 , 26 , 27 , 28 , 29 , 30 , 33 , 34 , 35 , 36 },
{ 53 , 52 , 51 , 50 , 49 , 48 , 47 , 46 , 45 , 44 , 43 , 42 , 41 , 40 , 39 , 38 , 37 },
{ 54 , 55 , 56 , 57 , 58 , 59 , 60 , 61 , 62 , 63 , 64 , 65 , 31 , 66 , NO_LED , NO_LED , NO_LED },
{ 82 , 80 , 79 , 78 , 77 , 76 , 75 , 74 , 73 , 72 , 71 , 70 , 69 , 67 , NO_LED , 93 , NO_LED },
{ 83 , 84 , 85 , NO_LED , NO_LED , NO_LED , 86 , NO_LED , NO_LED , NO_LED , 88 , 89 , 90 , 91 , 92 , 94 , 95 }
},{
// "Fine-tuned" complex configuration
{224,0 }, {211,0 }, {198,0 }, {182,0 }, {166,0 }, {153,0 }, {148,0 }, {140,0 }, {127,0 }, {110,0 }, { 97,0 }, { 84,0 }, { 71,0 }, { 55,0 }, { 42,0 }, { 29,0 }, { 16,0 }, { 0,0 },
{ 0,15 }, { 13,15 }, { 26,15 }, { 39,15 }, { 52,15 }, { 65,15 }, { 78,15 }, { 91,15 }, {104,15 }, {117,15 }, {130,15 }, {143,15 }, {156,15 }, {175,15 }, {169,15 }, {182,15 }, {198,15 }, {211,15 }, {224,15 },
{224,27 }, {211,27 }, {198,27 }, {179,27 }, {162,27 }, {149,27 }, {136,27 }, {123,27 }, {110,27 }, { 97,27 }, { 84,27 }, { 71,27 }, { 58,27 }, { 45,27 }, { 32,27 }, { 19,27 }, { 3,27 },
{ 5,40 }, { 23,40 }, { 36,40 }, { 49,40 }, { 62,40 }, { 75,40 }, { 88,40 }, {101,40 }, {114,40 }, {127,40 }, {140,40 }, {153,40 }, {174,40 },
{182,52 }, {170,52 }, {164,52 }, {146,52 }, {133,52 }, {120,52 }, {107,52 }, { 94,52 }, { 81,52 }, { 68,52 }, { 55,52 }, { 42,52 }, { 29,52 }, { 16,52 }, { 8,52 }, { 2,52 },
{ 5,64 }, { 21,64 }, { 37,64 }, { 83,64 }, { 91,64 }, {131,64 }, {151,64 }, {167,64 }, {183,64 }, {198,64 }, {211,52 }, {211,64 }, {224,64 },
{224,57 }, {224,45 }, {224,32 }, {224,20 },
{224,5 }, {209,5 }, {194,5 }, {179,5 }, {164,5 }, {149,5 }, {134,5 }, {119,5 }, {104,5 }, {89,5 }, { 74,5 }, { 59,5 }, { 44,5 }, { 29,5 }, { 14,5 },
{ 0,5 }, { 0,20 }, { 0,32 }, { 0,45 },
{ 0,57 }, { 14,57 }, { 29,57 }, { 44,57 }, { 59,57 }, { 74,57 }, { 89,57 }, {104,57 }, {119,57 }, {134,57 }, {149,57 }, {164,57 }, {179,57 }, {194,57 }, {209,57 },
// "Stock" simple configuration
// { 224, 0}, { 210, 0}, { 196, 0}, { 182, 0}, { 168, 0}, { 154, 0}, { 140, 0}, { 126, 0}, { 112, 0}, { 98, 0}, { 84, 0}, { 70, 0}, { 56, 0}, { 28, 0}, { 14, 0}, { 0, 0},
// { 0, 45}, { 14, 45}, { 28, 45}, { 42, 45}, { 56, 45}, { 70, 45}, { 84, 45}, { 98, 45}, { 112, 45}, { 126, 45}, { 140, 45}, { 154, 45}, { 168, 45}, { 182, 45}, { 196, 45}, { 210, 45}, { 224, 45},
// { 224, 90}, { 210, 90}, { 196, 90}, { 182, 90}, { 168, 90}, { 154, 90}, { 140, 90}, { 126, 90}, { 112, 90}, { 98, 90}, { 84, 90}, { 70, 90}, { 56, 90}, { 42, 90}, { 28, 90}, { 14, 90}, { 0, 90},
// { 0, 135}, { 14, 135}, { 28, 135}, { 42, 135}, { 56, 135}, { 70, 135}, { 84, 135}, { 98, 135}, { 112, 135}, { 126, 135}, { 140, 135}, { 154, 135}, { 168, 135},
// { 224, 180}, { 196, 180}, { 182, 180}, { 168, 180}, { 154, 180}, { 140, 180}, { 126, 180}, { 112, 180}, { 98, 180}, { 84, 180}, { 70, 180}, { 56, 180}, { 14, 180},
// { 0, 225}, { 14, 225}, { 28, 225}, { 84, 225}, { 126, 225}, { 140, 225}, { 154, 225}, { 168, 225}, { 196, 45}, { 210, 45}, { 224, 90}
}, {
4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 ,
4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 1 , 1 , 1 , 4 , 4 , 4 ,
4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 ,
1 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 1 ,
4 , 1 , 1 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 1 , 1 , 4 ,
1 , 1 , 1 , 4 , 4 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ,
2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 ,
2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2
} };
#endif

View file

@ -0,0 +1 @@
# This file intentionally left blank

View file

@ -0,0 +1 @@
DEFAULT_FOLDER = asmodus/plaquead/standard

View file

@ -0,0 +1,20 @@
/*
Copyright 2024 Asmodus
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U
#define RP2040_FLASH_GENERIC_03H

View file

@ -0,0 +1,44 @@
{
"keyboard_name": "Plaque A.D",
"usb": {
"vid": "0x5A50",
"pid": "0x0875",
"device_version": "0.0.1"
},
"features": {
"bootmagic": true,
"mousekey": true,
"extrakey": true,
"nkro": true,
"rgblight": true
},
"dynamic_keymap": {
"layer_count": 6
},
"indicators": {
"caps_lock": "GP28",
"scroll_lock": "GP2"
},
"rgblight": {
"led_count": 38,
"saturation_steps": 8,
"brightness_steps": 8,
"sleep": true,
"animations": {
"alternating": true,
"breathing": true,
"christmas": true,
"knight": true,
"rainbow_mood": true,
"rainbow_swirl": true,
"rgb_test": true,
"snake": true,
"static_gradient": true,
"twinkle": true
}
},
"ws2812": {
"pin": "GP10",
"driver": "vendor"
}
}

View file

@ -0,0 +1,26 @@
/*
Copyright 2024 Asmodus
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_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_BSPC, KC_INS, KC_HOME, KC_PGUP,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_TRNS, KC_UP,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, _______, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT)
};

View file

@ -0,0 +1,26 @@
/*
Copyright 2024 Asmodus
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_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_BSPC, KC_INS, KC_HOME, KC_PGUP,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_TRNS, KC_UP,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
};

View file

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

View file

@ -0,0 +1,19 @@
/*
Copyright 2024 Asmodus
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#define VIAL_UNLOCK_COMBO_ROWS { 0, 3 }
#define VIAL_UNLOCK_COMBO_COLS { 0, 13 }
#define VIAL_KEYBOARD_UID {0xF1, 0x51, 0xCF, 0x94, 0x3E, 0x04, 0xAF, 0x6B}

View file

@ -0,0 +1,68 @@
/*
Copyright 2024 Asmodus
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_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_BSPC, KC_INS, KC_HOME, KC_PGUP,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_TRNS, KC_UP,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
[1] = LAYOUT(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
[2] = LAYOUT(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
[3] = LAYOUT(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
[4] = LAYOUT(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
[5] = LAYOUT(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
};

View file

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

View file

@ -0,0 +1,297 @@
{
"name": "Plaque A.D",
"vendorId": "0x5A50",
"productId": "0x0875",
"matrix": {
"rows": 6,
"cols": 17
},
"lighting": "qmk_rgblight",
"layouts": {
"labels": [
"Split Backspace",
"ISO",
"Split Left Shift",
"Split Right Shift",
"Stepped Caps",
["Bottom Row", "6.25U", "7U", "WKL"]
],
"keymap": [
[
{
"x": 2.5
},
"0,0",
{
"x": 0.25
},
"0,1",
"0,2",
"0,3",
"0,4",
{
"x": 0.25
},
"0,5",
"0,6",
"0,7",
"0,8",
{
"x": 0.25
},
"0,9",
"0,10",
"0,11",
"0,12",
{
"x": 0.25
},
"0,13",
{
"x": 0.25
},
"0,14",
"0,15",
"0,16"
],
[
{
"y": 0.25,
"x": 2.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",
{
"w": 2
},
"1,13\n\n\n0,0",
{
"x": 0.25
},
"1,14",
"1,15",
"1,16",
{
"x": 1
},
"3,12\n\n\n0,1",
"1,13\n\n\n0,1"
],
[
{
"x": 2.5,
"w": 1.5
},
"2,0",
"2,1",
"2,2",
"2,3",
"2,4",
"2,5",
"2,6",
"2,7",
"2,8",
"2,9",
"2,10",
"2,11",
"2,12",
{
"w": 1.5
},
"2,13\n\n\n1,0",
{
"x": 0.25
},
"2,14",
"2,15",
"2,16",
{
"x": 1.75,
"w": 1.25,
"h": 2,
"w2": 1.5,
"h2": 1,
"x2": -0.25
},
"2,13\n\n\n1,1"
],
[
{
"w": 1.25,
"w2": 1.75,
"l": true
},
"3,0\n\n\n4,1",
{
"x": 1.25,
"w": 1.75
},
"3,0\n\n\n4,0",
"3,1",
"3,2",
"3,3",
"3,4",
"3,5",
"3,6",
"3,7",
"3,8",
"3,9",
"3,10",
"3,11",
{
"w": 2.25
},
"3,13\n\n\n1,0",
{
"x": 4
},
"3,13\n\n\n1,1"
],
[
{
"w": 1.25
},
"4,0\n\n\n2,1",
"4,1\n\n\n2,1",
{
"x": 0.25,
"w": 2.25
},
"4,0\n\n\n2,0",
"4,2",
"4,3",
"4,4",
"4,5",
"4,6",
"4,7",
"4,8",
"4,9",
"4,10",
"4,11",
{
"w": 2.75
},
"4,12\n\n\n3,0",
{
"x": 1.25
},
"4,15",
{
"x": 1.25,
"w": 1.75
},
"4,12\n\n\n3,1",
"4,13\n\n\n3,1"
],
[
{
"x": 2.5,
"w": 1.25
},
"5,0\n\n\n5,0",
{
"w": 1.25
},
"5,1\n\n\n5,0",
{
"w": 1.25
},
"5,2\n\n\n5,0",
{
"w": 6.25
},
"5,6\n\n\n5,0",
{
"w": 1.25
},
"5,10\n\n\n5,0",
{
"w": 1.25
},
"5,11\n\n\n5,0",
{
"w": 1.25
},
"5,12\n\n\n5,0",
{
"w": 1.25
},
"5,13\n\n\n5,0",
{
"x": 0.25
},
"5,14",
"5,15",
"5,16"
],
[
{
"y": 0.25,
"x": 2.5,
"w": 1.5
},
"5,0\n\n\n5,1",
"5,1\n\n\n5,1",
{
"w": 1.5
},
"5,2\n\n\n5,1",
{
"w": 7
},
"5,6\n\n\n5,1",
{
"w": 1.5
},
"5,11\n\n\n5,1",
"5,12\n\n\n5,1",
{
"w": 1.5
},
"5,13\n\n\n5,1"
],
[
{
"x": 2.5,
"w": 1.5
},
"5,0\n\n\n5,2",
{
"d": true
},
"5,1\n\n\n5,2",
{
"w": 1.5
},
"5,2\n\n\n5,2",
{
"w": 7
},
"5,6\n\n\n5,2",
{
"w": 1.5
},
"5,11\n\n\n5,2",
{
"d": true
},
"5,12\n\n\n5,2",
{
"w": 1.5
},
"5,13\n\n\n5,2"
]
]
}
}

View file

@ -0,0 +1 @@
# This file intentionally left blank

View file

@ -5,33 +5,45 @@
"cols": 16
},
"layouts": {
"labels": "iso",
"labels": [
"Split LShift",
"ISO Enter",
["Numpad", "Standard", "Terminal", "SSK"]
],
"keymap": [
[
{
"x": 5,
"c": "#99948C"
},
"0,2",
{
"x": 1
"x": 1,
"c": "#cccccc"
},
"2,3",
"2,4",
"1,4",
"0,4",
{
"x": 0.5
"x": 0.5,
"c": "#99948C"
},
"0,6",
"0,8",
"1,9",
"2,9",
{
"x": 0.5
"x": 0.5,
"c": "#cccccc"
},
"2,6",
"3,6",
"3,11",
"3,12",
{
"x": 0.25
"x": 0.25,
"c": "#99948C"
},
"3,15",
"4,15",
@ -39,7 +51,9 @@
],
[
{
"y": 0.5
"y": 0.5,
"x": 5,
"c": "#cccccc"
},
"2,2",
"3,2",
@ -55,6 +69,7 @@
"2,10",
"2,8",
{
"c": "#99948C",
"w": 2
},
"1,6",
@ -67,16 +82,36 @@
{
"x": 0.25
},
"6,11",
"6,12",
"6,13",
"7,13"
"6,11\n\n\n2,0",
{
"x": -1
},
"6,11\n\n\n2,1",
"6,12\n\n\n2,0",
{
"x": -1
},
"6,12\n\n\n2,1",
"6,13\n\n\n2,0",
{
"x": -1
},
"6,13\n\n\n2,1",
"7,13\n\n\n2,0",
{
"x": -1
},
"7,13\n\n\n2,1"
],
[
{
"x": 5,
"w": 1.5
},
"1,2",
{
"c": "#cccccc"
},
"4,2",
"4,3",
"4,4",
@ -90,9 +125,19 @@
"1,10",
"1,8",
{
"c": "#99948C",
"w": 1.5
},
"5,6",
"5,6\n\n\n1,0",
{
"x": -1.25,
"w": 1.25,
"h": 2,
"w2": 1.5,
"h2": 1,
"x2": -0.25
},
"6,6\n\n\n1,1",
{
"x": 0.25
},
@ -100,21 +145,43 @@
"3,14",
"3,13",
{
"x": 0.25
"x": 0.25,
"c": "#cccccc"
},
"4,11",
"4,12",
"4,13",
"4,11\n\n\n2,0",
{
"x": -1
},
"4,11\n\n\n2,1",
"4,12\n\n\n2,0",
{
"x": -1
},
"4,12\n\n\n2,1",
"4,13\n\n\n2,0",
{
"x": -1
},
"4,13\n\n\n2,1",
{
"c": "#99948C",
"h": 2
},
"4,14"
"4,14\n\n\n2,0",
{
"x": -1
},
"4,14\n\n\n2,1"
],
[
{
"x": 5,
"w": 1.75
},
"1,3",
{
"c": "#cccccc"
},
"5,2",
"5,3",
"5,4",
@ -127,21 +194,54 @@
"5,10",
"0,10",
{
"c": "#99948C",
"w": 2.25
},
"6,6",
"6,6\n\n\n1,0",
{
"x": 3.5
"x": -2.25,
"c": "#cccccc"
},
"1,11",
"1,12",
"1,13"
"6,10\n\n\n1,1",
{
"x": 4.75
},
"1,11\n\n\n2,0",
{
"x": -1
},
"1,11\n\n\n2,1",
"1,12\n\n\n2,0",
{
"x": -1
},
"1,12\n\n\n2,1",
"1,13\n\n\n2,0",
{
"x": -1
},
"1,13\n\n\n2,1",
{
"c": "#99948C"
},
"1,14\n\n\n2,1"
],
[
{
"x": 5,
"w": 1.25
},
"1,1\n\n\n0,1",
{
"x": -1.25,
"w": 2.25
},
"1,1",
"1,1\n\n\n0,0",
{
"x": -1,
"c": "#cccccc"
},
"0,3\n\n\n0,1",
"6,2",
"6,3",
"6,4",
@ -153,6 +253,7 @@
"6,9",
"7,10",
{
"c": "#99948C",
"w": 2.75
},
"6,1",
@ -161,18 +262,38 @@
},
"0,14",
{
"x": 1.25
"x": 1.25,
"c": "#cccccc"
},
"5,11",
"5,12",
"5,13",
"5,11\n\n\n2,0",
{
"x": -1
},
"5,11\n\n\n2,1",
"5,12\n\n\n2,0",
{
"x": -1
},
"5,12\n\n\n2,1",
"5,13\n\n\n2,0",
{
"x": -1
},
"5,13\n\n\n2,1",
{
"c": "#99948C",
"h": 2
},
"5,14"
"5,14\n\n\n2,0",
{
"x": -1,
"h": 2
},
"5,14\n\n\n2,1"
],
[
{
"x": 5,
"w": 1.5
},
"2,0",
@ -182,10 +303,12 @@
},
"0,15",
{
"c": "#cccccc",
"w": 7
},
"7,6",
{
"c": "#99948C",
"w": 1.5
},
"7,15",
@ -202,11 +325,22 @@
"7,12",
{
"x": 0.25,
"c": "#cccccc",
"w": 2
},
"0,12",
"0,13"
"0,12\n\n\n2,0",
{
"x": -2,
"w": 2
},
"0,12\n\n\n2,1",
"0,13\n\n\n2,0",
{
"x": -1
},
"0,13\n\n\n2,1"
]
]
]
}
}

View file

@ -0,0 +1,76 @@
{
"keyboard_name": "Bruce the Keyboard",
"manufacturer": "jlw",
"url": "https://github.com/josh-l-wang/Bruce-the-Keyboard-the-Resources",
"maintainer": "jlw",
"usb": {
"vid": "0x1209",
"pid": "0xA459",
"device_version": "0.0.1"
},
"processor": "STM32F072",
"bootloader": "stm32-dfu",
"diode_direction": "COL2ROW",
"matrix_pins": {
"cols": ["B1", "B0", "A7", "A4", "A3", "B7", "B6", "B5", "B4", "B3", "B14"],
"rows": ["B11", "B9", "A5", "A6", "B15"]
},
"features": {
"bootmagic": true,
"extrakey": true,
"mousekey": true,
"nkro": true,
"encoder_map": true
},
"encoder": {
"rotary": [{"pin_a": "B12", "pin_b": "B13"}]
},
"ws2812": {
"pin": "B8"
},
"layouts": {
"LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0, "h":1.75},
{"matrix": [0, 1], "x": 1, "y": 0, "h":1.5},
{"matrix": [0, 2], "x": 2, "y": 0},
{"matrix": [0, 3], "x": 3, "y": 0, "h":1.25},
{"matrix": [0, 4], "x": 4, "y": 0, "h":1.25},
{"matrix": [0, 5], "x": 5, "y": 0, "h":1.25},
{"matrix": [0, 6], "x": 6, "y": 0, "h":1.25},
{"matrix": [0, 7], "x": 7, "y": 0},
{"matrix": [0, 8], "x": 8, "y": 0, "h":1.5},
{"matrix": [0, 9], "x": 9, "y": 0, "h":1.75},
{"matrix": [1, 0], "x": 0, "y": 1.75},
{"matrix": [1, 1], "x": 1, "y": 1.5},
{"matrix": [1, 2], "x": 2, "y": 1},
{"matrix": [1, 3], "x": 3, "y": 1.25},
{"matrix": [1, 4], "x": 4, "y": 1.25},
{"matrix": [1, 5], "x": 5, "y": 1.25},
{"matrix": [1, 6], "x": 6, "y": 1.25},
{"matrix": [1, 7], "x": 7, "y": 1},
{"matrix": [1, 8], "x": 8, "y": 1.5},
{"matrix": [1, 9], "x": 9, "y": 1.75},
{"matrix": [2, 0], "x": 0, "y": 2.75, "h":1.5},
{"matrix": [2, 1], "x": 1, "y": 2.5, "h":1.75},
{"matrix": [2, 2], "x": 2, "y": 2, "h":1.25},
{"matrix": [2, 3], "x": 3, "y": 2.25},
{"matrix": [2, 4], "x": 4, "y": 2.25},
{"matrix": [2, 5], "x": 5, "y": 2.25},
{"matrix": [2, 6], "x": 6, "y": 2.25},
{"matrix": [2, 7], "x": 7, "y": 2, "h":1.25},
{"matrix": [2, 8], "x": 8, "y": 2.5, "h":1.75},
{"matrix": [2, 9], "x": 9, "y": 2.75, "h":1.5},
{"matrix": [3, 2], "x": 2, "y": 3.25},
{"matrix": [3, 3], "x": 3, "y": 3.25, "w": 2},
{"matrix": [3, 5], "x": 5, "y": 3.25, "w": 2},
{"matrix": [3, 7], "x": 7, "y": 3.25},
{"matrix": [4, 10], "x": 4, "y": 4}
]
}
}
}

View file

@ -0,0 +1,52 @@
// Copyright 2023 jlw
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
#define HM_A LGUI_T(KC_A)
#define HM_R LALT_T(KC_R)
#define HM_S LCTL_T(KC_S)
#define HM_E RCTL_T(KC_E)
#define HM_I LALT_T(KC_I)
#define HM_O LGUI_T(KC_O)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_Q, KC_W, KC_F, KC_P, KC_B, QK_BOOT, KC_J, KC_L, KC_U, KC_Y, KC_QUOT,
HM_A, HM_R, HM_S, KC_T, KC_G, KC_M, KC_N, HM_E, HM_I, HM_O,
KC_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH,
LT(3, KC_TAB), SFT_T(KC_BSPC), LT(1, KC_SPC), LT(2,KC_ENT)
),
[1] = LAYOUT(
KC_GRAVE, KC_F2, XXXXXXX, KC_F4, KC_F5, XXXXXXX, KC_BSLS, KC_MINUS, KC_EQUAL, KC_LBRC, KC_RBRC,
KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
DF(0), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DF(1), XXXXXXX, _______, _______, KC_SCLN,
_______, _______, _______, _______
),
[2] = LAYOUT(
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F11, KC_F12, XXXXXXX, XXXXXXX,
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
DF(0), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DF(2), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
_______, _______, _______, _______
),
[3] = LAYOUT(
XXXXXXX, XXXXXXX, LSG(KC_4),LSG(KC_S),XXXXXXX, XXXXXXX, KC_HOME, XXXXXXX, KC_UP, XXXXXXX, KC_PGUP,
KC_LGUI, KC_LALT, KC_LCTL, KC_LGUI, XXXXXXX, KC_END, KC_LEFT, KC_DOWN, KC_RIGHT, KC_PGDN,
DF(0), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DF(2), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
_______, _______, _______, _______
)
};
// Encoder Map
#ifdef ENCODER_MAP_ENABLE
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[0] = { ENCODER_CCW_CW(S(KC_F2), KC_F2) },
[1] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
[2] = { ENCODER_CCW_CW(_______, _______) },
[3] = { ENCODER_CCW_CW(_______, _______) }
};
#endif

View file

@ -0,0 +1 @@
# This file intentionally left blank.

View file

@ -0,0 +1,10 @@
/* SPDX-License-Identifier: GPL-2.0-or-later */
#pragma once
#define VIAL_KEYBOARD_UID {0x5F, 0xAD, 0x10, 0x37, 0x92, 0xA3, 0xA7, 0x6A}
#define VIAL_UNLOCK_COMBO_ROWS { 0, 2 }
#define VIAL_UNLOCK_COMBO_COLS { 0, 9 }
#define VIAL_COMBO_ENTRIES 69
#define DYNAMIC_KEYMAP_LAYER_COUNT 8

View file

@ -0,0 +1,52 @@
// Copyright 2023 jlw
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
#define HM_A LGUI_T(KC_A)
#define HM_R LALT_T(KC_R)
#define HM_S LCTL_T(KC_S)
#define HM_E RCTL_T(KC_E)
#define HM_I LALT_T(KC_I)
#define HM_O LGUI_T(KC_O)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_Q, KC_W, KC_F, KC_P, KC_B, QK_BOOT, KC_J, KC_L, KC_U, KC_Y, KC_QUOT,
HM_A, HM_R, HM_S, KC_T, KC_G, KC_M, KC_N, HM_E, HM_I, HM_O,
KC_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH,
LT(3, KC_TAB), SFT_T(KC_BSPC), LT(1, KC_SPC), LT(2,KC_ENT)
),
[1] = LAYOUT(
KC_GRAVE, KC_F2, XXXXXXX, KC_F4, KC_F5, XXXXXXX, KC_BSLS, KC_MINUS, KC_EQUAL, KC_LBRC, KC_RBRC,
KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
DF(0), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DF(1), XXXXXXX, _______, _______, KC_SCLN,
_______, _______, _______, _______
),
[2] = LAYOUT(
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F11, KC_F12, XXXXXXX, XXXXXXX,
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
DF(0), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DF(2), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
_______, _______, _______, _______
),
[3] = LAYOUT(
XXXXXXX, XXXXXXX, LSG(KC_4),LSG(KC_S),XXXXXXX, XXXXXXX, KC_HOME, XXXXXXX, KC_UP, XXXXXXX, KC_PGUP,
KC_LGUI, KC_LALT, KC_LCTL, KC_LGUI, XXXXXXX, KC_END, KC_LEFT, KC_DOWN, KC_RIGHT, KC_PGDN,
DF(0), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DF(2), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
_______, _______, _______, _______
)
};
// Encoder Map
#ifdef ENCODER_MAP_ENABLE
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[0] = { ENCODER_CCW_CW(S(KC_F2), KC_F2) },
[1] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
[2] = { ENCODER_CCW_CW(_______, _______) },
[3] = { ENCODER_CCW_CW(_______, _______) }
};
#endif

View file

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

View file

@ -0,0 +1,254 @@
{
"lighting": "none",
"matrix": {
"rows": 5,
"cols": 11
},
"layouts": {
"labels": [["Centre", "Encodeur rotatif", "Clé", "Aucun"]],
"keymap":
[
[
{
"y": 0.75,
"x": 5.69
},
"4,10\n\n\n0,0"
],
[
{
"x": 5.69
},
"0,0\n\n\n0,0\n\n\n\n\n\ne"
],
[
{
"x": 5.69
},
"0,1\n\n\n0,0\n\n\n\n\n\ne"
],
[
{
"y": 1.25,
"x": 0.5
},
"4,10\n\n\n0,1",
{
"x": 0.25,
"d": true
},
"4,10\n\n\n0,2"
],
[
{
"x": 0.5,
"d": true
},
"0,0\n\n\n0,1\n\n\n\n\n\ne",
{
"x": 0.25,
"d": true
},
"0,0\n\n\n0,2\n\n\n\n\n\ne"
],
[
{
"x": 0.5,
"d": true
},
"0,1\n\n\n0,1\n\n\n\n\n\ne",
{
"x": 0.25,
"d": true
},
"0,1\n\n\n0,2\n\n\n\n\n\ne"
],
[
{
"r": 7,
"rx": 4.25,
"y": 0.5,
"x": -3.75,
"h": 1.75
},
"0,0",
{
"h": 1.5
},
"0,1",
"0,2",
{
"h": 1.25
},
"0,3",
{
"h": 1.25
},
"0,4"
],
[
{
"x": -1.75
},
"1,2"
],
[
{
"y": -0.75,
"x": -0.75
},
"1,3",
"1,4"
],
[
{
"y": -0.75,
"x": -2.75
},
"1,1"
],
[
{
"y": -0.75,
"x": -3.75
},
"1,0"
],
[
{
"y": -0.75,
"x": -1.75,
"h": 1.25
},
"2,2"
],
[
{
"y": -0.75,
"x": -0.75
},
"2,3",
"2,4"
],
[
{
"y": -0.75,
"x": -2.75,
"h": 1.75
},
"2,1"
],
[
{
"y": -0.75,
"x": -3.75,
"h": 1.5
},
"2,0"
],
[
{
"y": -0.5,
"x": -1.75
},
"3,2",
{
"w": 2
},
"3,3"
],
[
{
"r": -7,
"rx": 8.5,
"ry": 7,
"y": -6.5,
"x": -0.75,
"h": 1.25
},
"0,5",
{
"h": 1.25
},
"0,6",
"0,7",
{
"h": 1.5
},
"0,8",
{
"h": 1.75
},
"0,9"
],
[
{
"x": 1.25
},
"1,7"
],
[
{
"y": -0.75,
"x": -0.75
},
"1,5",
"1,6"
],
[
{
"y": -0.75,
"x": 2.25
},
"1,8"
],
[
{
"y": -0.75,
"x": 3.25
},
"1,9"
],
[
{
"y": -0.75,
"x": 1.25,
"h": 1.25
},
"2,7"
],
[
{
"y": -0.75,
"x": -0.75
},
"2,5",
"2,6"
],
[
{
"y": -0.75,
"x": 2.25,
"h": 1.75
},
"2,8"
],
[
{
"y": -0.75,
"x": 3.25,
"h": 1.5
},
"2,9"
],
[
{
"y": -0.5,
"x": -0.75,
"w": 2
},
"3,5",
"3,7"
]
]
}}

View file

@ -0,0 +1,5 @@
# Ceci est le micrologiciel pour Bruce le clavier
Notez bien que Bruce le clavier n'est pas un humain.
Bruce le clavier est un clavier de 34 touches colonnaire créé par [jlw](github.com/josh-l-wang). Il y a une option d'ajouter un encodeur rotatif ou une 35ème touche au centre.

View file

@ -0,0 +1 @@
#This file intentionally left blank

View file

@ -1,7 +1,7 @@
{
"keyboard_name": "Bruce the Keyboard",
"manufacturer": "whydobearsexplod",
"url": "https://github.com/josh-l-wang/bruce-the-keyboard",
"manufacturer": "jlw",
"url": "https://github.com/josh-l-wang/Bruce-the-Keyboard-the-Resources",
"maintainer": "jlw",
"usb": {
"vid": "0x1209",
@ -63,6 +63,6 @@
{"matrix": [3, 7], "x": 7, "y": 3.25},
]
}
}
}

View file

@ -0,0 +1,74 @@
{
"keyboard_name": "isobae",
"manufacturer": "jlw",
"url": "https://github.com/josh-l-wang/isobae",
"maintainer": "jlw",
"usb": {
"vid": "0x1209",
"pid": "0xA459",
"device_version": "0.0.1"
},
"processor": "STM32F072",
"bootloader": "stm32-dfu",
"diode_direction": "COL2ROW",
"matrix_pins": {
"cols": ["A10", "A9", "A8", "B15", "B14", "A13", "B7", "B6", "B5", "B4", "B3", "A15"],
"rows": ["B8", "B9", "A5", "A4"]
},
"features": {
"bootmagic": true,
"extrakey": true,
"mousekey": true,
"nkro": true
},
"layouts": {
"LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0.5},
{"matrix": [0, 1], "x": 1, "y": 0.25},
{"matrix": [0, 2], "x": 2, "y": 0},
{"matrix": [0, 3], "x": 3, "y": 0.25},
{"matrix": [0, 4], "x": 4, "y": 0.25},
{"matrix": [0, 7], "x": 7, "y": 0.25},
{"matrix": [0, 8], "x": 8, "y": 0.25},
{"matrix": [0, 9], "x": 9, "y": 0},
{"matrix": [0, 10], "x": 7, "y": 0.25},
{"matrix": [0, 11], "x": 8, "y": 0.5},
{"matrix": [1, 0], "x": 0, "y": 1.5},
{"matrix": [1, 1], "x": 1, "y": 1.25},
{"matrix": [1, 2], "x": 2, "y": 1},
{"matrix": [1, 3], "x": 3, "y": 1.25},
{"matrix": [1, 4], "x": 4, "y": 1.25},
{"matrix": [1, 5], "x": 5, "y": 0.25, "h": 2.75},
{"matrix": [1, 6], "x": 6, "y": 0.25, "h": 2.25},
{"matrix": [1, 7], "x": 7, "y": 1.25},
{"matrix": [1, 8], "x": 8, "y": 1.25},
{"matrix": [1, 9], "x": 9, "y": 1},
{"matrix": [1, 10], "x": 7, "y": 1.25},
{"matrix": [1, 11], "x": 8, "y": 1.5},
{"matrix": [2, 0], "x": 0, "y": 2.5},
{"matrix": [2, 1], "x": 1, "y": 2.25},
{"matrix": [2, 2], "x": 2, "y": 2},
{"matrix": [2, 3], "x": 3, "y": 2.25},
{"matrix": [2, 4], "x": 4, "y": 2.25},
{"matrix": [2, 5], "x": 5, "y": 3, "h": 1.75},
{"matrix": [2, 6], "x": 6, "y": 3.25, "h": 2.25},
{"matrix": [2, 7], "x": 7, "y": 2.25},
{"matrix": [2, 8], "x": 8, "y": 2.25},
{"matrix": [2, 9], "x": 9, "y": 2},
{"matrix": [2, 10], "x": 7, "y": 2.25},
{"matrix": [2, 11], "x": 8, "y": 2.5},
{"matrix": [3, 0], "x": 0, "y": 3.5},
{"matrix": [3, 1], "x": 1, "y": 3.25}
]
}
}
}

View file

@ -0,0 +1,52 @@
// Copyright 2023 jlw
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
#define HM_A LGUI_T(KC_A)
#define HM_R LALT_T(KC_R)
#define HM_S LCTL_T(KC_S)
#define HM_E RCTL_T(KC_E)
#define HM_I LALT_T(KC_I)
#define HM_O LGUI_T(KC_O)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_QUOT,
HM_A, HM_R, HM_S, KC_T, KC_G, LT(3, KC_TAB), LT(2,KC_ENT), KC_M, KC_N, HM_E, HM_I, HM_O,
KC_Z, KC_X, KC_C, KC_D, KC_V, SFT_T(KC_BSPC),LT(1, KC_SPC), KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH,
KC_ESC, QK_BOOT
),
[1] = LAYOUT(
KC_GRAVE, KC_F2, XXXXXXX, KC_F4, KC_F5, KC_BSLS, KC_MINUS, KC_EQUAL, KC_LBRC, KC_RBRC,
KC_1, KC_2, KC_3, KC_4, KC_5, _______, _______, KC_6, KC_7, KC_8, KC_9, KC_0,
DF(0), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, DF(1), XXXXXXX, _______, _______, KC_SCLN,
_______, _______
),
[2] = LAYOUT(
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F11, KC_F12, XXXXXXX, XXXXXXX,
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
DF(0), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, DF(2), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
_______, _______
),
[3] = LAYOUT(
XXXXXXX, XXXXXXX, LSG(KC_4),LSG(KC_S),XXXXXXX, KC_HOME, XXXXXXX, KC_UP, XXXXXXX, KC_PGUP,
KC_LGUI, KC_LALT, KC_LCTL, KC_LGUI, XXXXXXX, _______, _______, KC_END, KC_LEFT, KC_DOWN, KC_RIGHT, KC_PGDN,
DF(0), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, DF(2), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
_______, _______
)
};
// Encoder Map
#ifdef ENCODER_MAP_ENABLE
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[0] = { ENCODER_CCW_CW(S(KC_F2), KC_F2) },
[1] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
[2] = { ENCODER_CCW_CW(_______, _______) },
[3] = { ENCODER_CCW_CW(_______, _______) }
};
#endif

View file

@ -0,0 +1 @@
# This file intentionally left blank.

View file

@ -0,0 +1,10 @@
/* SPDX-License-Identifier: GPL-2.0-or-later */
#pragma once
#define VIAL_KEYBOARD_UID {0xA9, 0xA0, 0x51, 0x63, 0xBB, 0xAA, 0xD5, 0x3C}
#define VIAL_UNLOCK_COMBO_ROWS { 2, 2 }
#define VIAL_UNLOCK_COMBO_COLS { 5, 6 }
#define VIAL_COMBO_ENTRIES 69
#define DYNAMIC_KEYMAP_LAYER_COUNT 8

View file

@ -0,0 +1,52 @@
// Copyright 2023 jlw
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
#define HM_A LGUI_T(KC_A)
#define HM_R LALT_T(KC_R)
#define HM_S LCTL_T(KC_S)
#define HM_E RCTL_T(KC_E)
#define HM_I LALT_T(KC_I)
#define HM_O LGUI_T(KC_O)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_QUOT,
HM_A, HM_R, HM_S, KC_T, KC_G, LT(3, KC_TAB), LT(2,KC_ENT), KC_M, KC_N, HM_E, HM_I, HM_O,
KC_Z, KC_X, KC_C, KC_D, KC_V, SFT_T(KC_BSPC),LT(1, KC_SPC), KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH,
KC_ESC, QK_BOOT
),
[1] = LAYOUT(
KC_GRAVE, KC_F2, XXXXXXX, KC_F4, KC_F5, KC_BSLS, KC_MINUS, KC_EQUAL, KC_LBRC, KC_RBRC,
KC_1, KC_2, KC_3, KC_4, KC_5, _______, _______, KC_6, KC_7, KC_8, KC_9, KC_0,
DF(0), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, DF(1), XXXXXXX, _______, _______, KC_SCLN,
_______, _______
),
[2] = LAYOUT(
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F11, KC_F12, XXXXXXX, XXXXXXX,
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
DF(0), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, DF(2), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
_______, _______
),
[3] = LAYOUT(
XXXXXXX, XXXXXXX, LSG(KC_4),LSG(KC_S),XXXXXXX, KC_HOME, XXXXXXX, KC_UP, XXXXXXX, KC_PGUP,
KC_LGUI, KC_LALT, KC_LCTL, KC_LGUI, XXXXXXX, _______, _______, KC_END, KC_LEFT, KC_DOWN, KC_RIGHT, KC_PGDN,
DF(0), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, DF(2), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
_______, _______
)
};
// Encoder Map
#ifdef ENCODER_MAP_ENABLE
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[0] = { ENCODER_CCW_CW(S(KC_F2), KC_F2) },
[1] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
[2] = { ENCODER_CCW_CW(_______, _______) },
[3] = { ENCODER_CCW_CW(_______, _______) }
};
#endif

View file

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

View file

@ -0,0 +1,184 @@
{
"lighting": "none",
"matrix": {
"rows": 4,
"cols": 12
},
"layouts": {
"keymap":
[
[
{
"x": 2
},
"0,2",
{
"x": 6
},
"0,9"
],
[
{
"y": -0.75,
"x": 1
},
"0,1",
{
"x": 1
},
"0,3",
"0,4",
{
"h": 2.75
},
"1,5",
{
"h": 2.25
},
"1,6",
"0,7",
"0,8",
{
"x": 1
},
"0,10"
],
[
{
"y": -0.75
},
"0,0",
{
"x": 10
},
"0,11"
],
[
{
"y": -0.5,
"x": 2
},
"1,2",
{
"x": 6
},
"1,9"
],
[
{
"y": -0.75,
"x": 1
},
"1,1",
{
"x": 1
},
"1,3",
"1,4",
{
"x": 2
},
"1,7",
"1,8",
{
"x": 1
},
"1,10"
],
[
{
"y": -0.75
},
"1,0",
{
"x": 10
},
"1,11"
],
[
{
"y": -0.5,
"x": 2
},
"2,2",
{
"x": 6
},
"2,9"
],
[
{
"y": -0.75,
"x": 1
},
"2,1",
{
"x": 1
},
"2,3",
"2,4",
{
"x": 2
},
"2,7",
"2,8",
{
"x": 1
},
"2,10"
],
[
{
"y": -0.75
},
"2,0",
{
"x": 10
},
"2,11"
],
[
{
"y": -0.25,
"x": 1
},
"3,1"
],
[
{
"y": -0.75
},
"3,0"
],
[
{
"r": 90,
"rx": 4.75,
"ry": 4.25,
"y": -1.25,
"x": -1,
"w": 1.25,
"h": 2,
"w2": 1.5,
"h2": 1,
"x2": -0.25
},
"2,5"
],
[
{
"rx": 7.25,
"ry": 4,
"y": -0.75,
"x": -0.75,
"w": 1.5,
"h": 2,
"w2": 2.25,
"h2": 1,
"x2": -0.75,
"y2": 1
},
"2,6"
]
]
}}

View file

@ -0,0 +1,3 @@
# This is the firmware for isobae
isobae is a column staggered 36-key board created by [jlw](github.com/josh-l-wang) with a single layout, supporting ISO and ANSI big enters for thumb keys.

View file

@ -0,0 +1 @@
# This file intentionally left blank.

View file

@ -0,0 +1,122 @@
{
"manufacturer": "Kiser Designs",
"keyboard_name": "Gyrovan",
"maintainer": "NCKiser",
"bootloader": "stm32-dfu",
"diode_direction": "COL2ROW",
"encoder": {
"enabled": true,
"rotary": [
{"pin_a": "A10", "pin_b": "B3"},
{"pin_a": "A15", "pin_b": "A14"},
{"pin_a": "A8", "pin_b": "B15"},
{"pin_a": "C15", "pin_b": "F0"}
]
},
"features": {
"bootmagic": true,
"command": false,
"console": false,
"extrakey": true,
"mousekey": true,
"nkro": true,
"rgb_matrix": true
},
"matrix_pins": {
"cols": ["B11", "B10", "B2", "B1", "B0", "A7", "A6", "A5", "A4", "A3", "A1", "F1"],
"rows": ["C13", "B12", "A2", "A0", "C14"]
},
"processor": "STM32F072",
"rgb_matrix": {
"driver": "ws2812",
"led_count": 6,
"layout": [
{"flags": 4, "matrix": [0, 0], "x": 132, "y": 32},
{"flags": 4, "matrix": [0, 1], "x": 172, "y": 32},
{"flags": 4, "matrix": [0, 2], "x": 212, "y": 32},
{"flags": 4, "matrix": [4, 0], "x": 12, "y": 32},
{"flags": 4, "matrix": [4, 1], "x": 52, "y": 32},
{"flags": 4, "matrix": [4, 2], "x": 92, "y": 32}
],
"animations": {
"gradient_left_right": true,
"breathing": true,
"cycle_all": true,
"cycle_left_right": true
}
},
"url": "https://qmk.fm/keyboards",
"usb": {
"device_version": "0.0.1",
"pid": "0x4776",
"vid": "0x4B44"
},
"ws2812": {
"pin": "A9",
"driver": "bitbang"
},
"layouts": {
"LAYOUT": {
"layout": [
{ "matrix": [4, 0], "x": 0.5, "y": 0.25 },
{ "matrix": [4, 1], "x": 1.5, "y": 0.25 },
{ "matrix": [4, 2], "x": 2.5, "y": 0.25 },
{ "matrix": [4, 3], "x": 3.5, "y": 0.25 },
{ "matrix": [4, 4], "x": 4.5, "y": 0.25 },
{ "matrix": [4, 5], "x": 5.5, "y": 0.25 },
{ "matrix": [4, 9], "x": 11.75, "y": 0 },
{ "matrix": [0, 0], "x": 0, "y": 1.25 },
{ "matrix": [0, 1], "x": 1, "y": 1.25 },
{ "matrix": [0, 2], "x": 2, "y": 1.25 },
{ "matrix": [0, 3], "x": 3, "y": 1.25 },
{ "matrix": [0, 4], "x": 4, "y": 1.25 },
{ "matrix": [0, 5], "x": 5, "y": 1.25 },
{ "matrix": [0, 6], "x": 6, "y": 1.25 },
{ "matrix": [0, 7], "x": 7, "y": 1.25 },
{ "matrix": [0, 8], "x": 8, "y": 1.25 },
{ "matrix": [0, 9], "x": 9, "y": 1.25 },
{ "matrix": [0, 10], "x": 10, "y": 1.25 },
{ "matrix": [0, 11], "w": 1.75, "x": 11, "y": 1.25 },
{ "matrix": [1, 0], "w": 1.25, "x": 0, "y": 2.25 },
{ "matrix": [1, 1], "x": 1.25, "y": 2.25 },
{ "matrix": [1, 2], "x": 2.25, "y": 2.25 },
{ "matrix": [1, 3], "x": 3.25, "y": 2.25 },
{ "matrix": [1, 4], "x": 4.25, "y": 2.25 },
{ "matrix": [1, 5], "x": 5.25, "y": 2.25 },
{ "matrix": [1, 6], "x": 6.25, "y": 2.25 },
{ "matrix": [1, 7], "x": 7.25, "y": 2.25 },
{ "matrix": [1, 8], "x": 8.25, "y": 2.25 },
{ "matrix": [1, 9], "x": 9.25, "y": 2.25 },
{ "matrix": [1, 10], "x": 10.25, "y": 2.25 },
{ "matrix": [1, 11], "w": 1.5, "x": 11.25, "y": 2.25 },
{ "matrix": [2, 0], "w": 1.75, "x": 0, "y": 3.25 },
{ "matrix": [2, 1], "x": 1.75, "y": 3.25 },
{ "matrix": [2, 2], "x": 2.75, "y": 3.25 },
{ "matrix": [2, 3], "x": 3.75, "y": 3.25 },
{ "matrix": [2, 4], "x": 4.75, "y": 3.25 },
{ "matrix": [2, 5], "x": 5.75, "y": 3.25 },
{ "matrix": [2, 6], "x": 6.75, "y": 3.25 },
{ "matrix": [2, 7], "x": 7.75, "y": 3.25 },
{ "matrix": [2, 8], "x": 8.75, "y": 3.25 },
{ "matrix": [2, 9], "x": 9.75, "y": 3.25 },
{ "matrix": [2, 10], "x": 10.75, "y": 3.25 },
{ "matrix": [2, 11], "x": 11.75, "y": 3.25 },
{ "matrix": [3, 0], "w": 1.25, "x": 0, "y": 4.25 },
{ "matrix": [3, 1], "x": 1.25, "y": 4.25 },
{ "matrix": [3, 2], "w": 1.25, "x": 2.25, "y": 4.25 },
{ "matrix": [3, 4], "w": 2.75, "x": 3.5, "y": 4.25 },
{ "matrix": [3, 5], "w": 6.25, "x": 3.5, "y": 5.25 },
{ "matrix": [3, 6], "w": 2.25, "x": 6.25, "y": 4.25 },
{ "matrix": [3, 8], "w": 1.25, "x": 8.5, "y": 4.25 },
{ "matrix": [3, 9], "x": 9.75, "y": 4.25 },
{ "matrix": [3, 10], "x": 10.75, "y": 4.25 },
{ "matrix": [3, 11], "x": 11.75, "y": 4.25 }
]
}
}
}

View file

@ -0,0 +1,32 @@
/* Copyright 2024 Noah Kiser (NCKiser)
*
* 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_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_MUTE,
KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_APP, KC_RALT, KC_RGUI, KC_RCTL
)
};
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MPRV, KC_MNXT), ENCODER_CCW_CW(KC_PGUP, KC_PGDN), ENCODER_CCW_CW(KC_HOME, KC_END) }
};
#endif

View file

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

View file

@ -0,0 +1,25 @@
/* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#define VIAL_KEYBOARD_UID {0x91, 0xC7, 0x88, 0x4B, 0xE5, 0x17, 0x8B, 0x62}
#define VIAL_TAP_DANCE_ENTRIES 16
#define VIAL_COMBO_ENTRIES 16
#define DYNAMIC_KEYMAP_LAYER_COUNT 8
#define VIAL_UNLOCK_COMBO_ROWS { 1, 2 }
#define VIAL_UNLOCK_COMBO_COLS { 0, 11 }

View file

@ -0,0 +1,84 @@
/* Copyright 2024 Noah Kiser (NCKiser)
*
* 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_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_MUTE,
KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_APP, KC_RALT, KC_RGUI, KC_RCTL
)
};
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MPRV, KC_MNXT), ENCODER_CCW_CW(KC_PGUP, KC_PGDN), ENCODER_CCW_CW(KC_HOME, KC_END) }
};
#endif
bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
if (rgb_matrix_is_enabled()){
HSV layer_hsv = {rgb_matrix_get_hue(), ((int)rgb_matrix_get_sat()>>1)+128, rgb_matrix_get_val()}; //get the matrix hue, sat (minimum 50%), and value
HSV lock_hsv = {(rgb_matrix_get_hue()+(rgb_matrix_get_speed()>>1))%256, ((int)rgb_matrix_get_sat()>>1)+128, 0};
HSV mod_hsv = {(rgb_matrix_get_hue()+2*(rgb_matrix_get_speed()>>1))%256, ((int)rgb_matrix_get_sat()>>1)+128, 0};
layer_hsv.h += 32*get_highest_layer(layer_state|default_layer_state); //hue-shift the layer indicator based on highest layer (of 0-7 layers)
layer_hsv.h = layer_hsv.h % 256; //modulo 256
int mods = get_mods() | get_oneshot_mods(); //get all modifiers, either held or OSM
//0bGASC
mods = ((mods>>4)|mods) & 0x0F; //combine left and right mods, and take just the bottom 4 bits (0-15)
if (mods == 0b0001){mod_hsv.h = ( mod_hsv.h + 0 )%256; mod_hsv.s = mod_hsv.s; mod_hsv.v = rgb_matrix_get_val();}
if (mods == 0b0011){mod_hsv.h = ( mod_hsv.h + 32 )%256; mod_hsv.s = mod_hsv.s; mod_hsv.v = rgb_matrix_get_val();}
if (mods == 0b0010){mod_hsv.h = ( mod_hsv.h + 64 )%256; mod_hsv.s = mod_hsv.s; mod_hsv.v = rgb_matrix_get_val();}
if (mods == 0b0110){mod_hsv.h = ( mod_hsv.h + 96 )%256; mod_hsv.s = mod_hsv.s; mod_hsv.v = rgb_matrix_get_val();}
if (mods == 0b0100){mod_hsv.h = ( mod_hsv.h + 128 )%256; mod_hsv.s = mod_hsv.s; mod_hsv.v = rgb_matrix_get_val();}
if (mods == 0b1100){mod_hsv.h = ( mod_hsv.h + 160 )%256; mod_hsv.s = mod_hsv.s; mod_hsv.v = rgb_matrix_get_val();}
if (mods == 0b1000){mod_hsv.h = ( mod_hsv.h + 192 )%256; mod_hsv.s = mod_hsv.s; mod_hsv.v = rgb_matrix_get_val();}
if (mods == 0b1001){mod_hsv.h = ( mod_hsv.h + 224 )%256; mod_hsv.s = mod_hsv.s; mod_hsv.v = rgb_matrix_get_val();}
if (mods == 0b1010){mod_hsv.h = ( mod_hsv.h + 85 )%256; mod_hsv.s = mod_hsv.s >> 1; mod_hsv.v = rgb_matrix_get_val();}
if (mods == 0b0101){mod_hsv.h = ( mod_hsv.h + 213 )%256; mod_hsv.s = mod_hsv.s >> 1; mod_hsv.v = rgb_matrix_get_val();}
if (mods == 0b1110){mod_hsv.h = ( mod_hsv.h + 128 )%256; mod_hsv.s = mod_hsv.s >> 1; mod_hsv.v = rgb_matrix_get_val();}
if (mods == 0b0111){mod_hsv.h = ( mod_hsv.h + 43 )%256; mod_hsv.s = mod_hsv.s >> 1; mod_hsv.v = rgb_matrix_get_val();}
if (mods == 0b1011){mod_hsv.h = ( mod_hsv.h + 0 )%256; mod_hsv.s = mod_hsv.s >> 1; mod_hsv.v = rgb_matrix_get_val();}
if (mods == 0b1101){mod_hsv.h = ( mod_hsv.h + 171 )%256; mod_hsv.s = mod_hsv.s >> 1; mod_hsv.v = rgb_matrix_get_val();}
if (mods == 0b1111){mod_hsv.h = mod_hsv.h; mod_hsv.s = 0; mod_hsv.v = rgb_matrix_get_val();}
int locks = (host_keyboard_led_state().caps_lock << 0) | ( (1-host_keyboard_led_state().num_lock) << 1) | (host_keyboard_led_state().scroll_lock << 2);
//0bSNC
if (locks == 0b001){lock_hsv.h = ( lock_hsv.h + 0 )%256; lock_hsv.s = lock_hsv.s; lock_hsv.v = rgb_matrix_get_val();}
if (locks == 0b010){lock_hsv.h = ( lock_hsv.h + 85 )%256; lock_hsv.s = lock_hsv.s; lock_hsv.v = rgb_matrix_get_val();}
if (locks == 0b100){lock_hsv.h = ( lock_hsv.h + 171 )%256; lock_hsv.s = lock_hsv.s; lock_hsv.v = rgb_matrix_get_val();}
if (locks == 0b011){lock_hsv.h = ( lock_hsv.h + 43 )%256; lock_hsv.s = lock_hsv.s; lock_hsv.v = rgb_matrix_get_val();}
if (locks == 0b110){lock_hsv.h = ( lock_hsv.h + 128 )%256; lock_hsv.s = lock_hsv.s; lock_hsv.v = rgb_matrix_get_val();}
if (locks == 0b101){lock_hsv.h = ( lock_hsv.h + 213 )%256; lock_hsv.s = lock_hsv.s; lock_hsv.v = rgb_matrix_get_val();}
if (locks == 0b111){lock_hsv.h = lock_hsv.h; lock_hsv.s = lock_hsv.s >> 1; lock_hsv.v = rgb_matrix_get_val();}
RGB layer_rgb = hsv_to_rgb(layer_hsv);
RGB lock_rgb = hsv_to_rgb(lock_hsv);
RGB mod_rgb = hsv_to_rgb(mod_hsv);
int top_row = via_get_layout_options()&0x80 ? 0 : 1;
rgb_matrix_set_color(0 + 3*top_row, layer_rgb.r, layer_rgb.g, layer_rgb.b);
rgb_matrix_set_color(1 + 3*top_row, lock_rgb.r, lock_rgb.g, lock_rgb.b);
rgb_matrix_set_color(2 + 3*top_row, mod_rgb.r, mod_rgb.g, mod_rgb.b);
rgb_matrix_set_color(3 - 3*top_row, 0, 0, 0);
rgb_matrix_set_color(4 - 3*top_row, 0, 0, 0);
rgb_matrix_set_color(5 - 3*top_row, 0, 0, 0);
}
return true;
}

View file

@ -0,0 +1,4 @@
VIA_ENABLE = yes
VIAL_ENABLE = yes
VIALRGB_ENABLE = yes
ENCODER_MAP_ENABLE = yes

View file

@ -0,0 +1,350 @@
{
"matrix": {
"rows": 5,
"cols": 12
},
"lighting": "vialrgb",
"layouts": {
"labels":[
"Remove Top Row",
"ESC Encoder",
"\"1\" Encoder",
"\"6\" Encoder",
"Embrace DB",
"ISO Enter",
[
"Bottom Row",
"275/225 Bars",
"6.00 or 6.25",
"300/300 Bars",
"7u Big Bar"
]
],
"keymap": [
[
{
"x": 0.5,
"d": true
},
"1,0\n\n\n2,0\n\n\n\n\n\ne",
{
"d": true
},
"1,1\n\n\n2,0\n\n\n\n\n\ne",
{
"x": 6.5,
"d": true
},
"2,0\n\n\n3,0\n\n\n\n\n\ne",
{
"d": true
},
"2,1\n\n\n3,0\n\n\n\n\n\ne",
{
"x": 0.75,
"d": true
},
"3,0\n\n\n4,0\n\n\n\n\n\ne",
{
"d": true
},
"3,1\n\n\n4,0\n\n\n\n\n\ne",
{
"x": 0.25,
"c": "#b69ac6",
"d": true
},
"4,9\n\n\n4,0",
{
"x": 0.25,
"c": "#cccccc"
},
"3,0\n\n\n4,1\n\n\n\n\n\ne",
"3,1\n\n\n4,1\n\n\n\n\n\ne",
{
"x": 0.25,
"c": "#b69ac6"
},
"4,9\n\n\n4,1"
],
[
{
"y": -0.75,
"x": 2.75,
"c": "#b9aec1"
},
"4,0\n\n\n0,0",
{
"c": "#b8b8b8"
},
"4,1\n\n\n0,0",
"4,2\n\n\n0,0",
"4,3\n\n\n0,0",
"4,4\n\n\n0,0",
{
"c": "#b9aec1"
},
"4,5\n\n\n0,0"
],
[
{
"c": "#cccccc",
"d": true
},
"0,0\n\n\n1,0\n\n\n\n\n\ne",
{
"d": true
},
"0,1\n\n\n1,0\n\n\n\n\n\ne",
{
"x": 0.25,
"c": "#b69ac6"
},
"0,0",
{
"c": "#cccccc"
},
"0,1",
"0,2",
"0,3",
"0,4",
"0,5",
"0,6",
"0,7",
"0,8",
"0,9",
"0,10",
{
"w": 1.75
},
"0,11"
],
[
{
"x": 2.25,
"w": 1.25
},
"1,0",
"1,1",
"1,2",
"1,3",
"1,4",
"1,5",
"1,6",
"1,7",
"1,8",
"1,9",
"1,10",
{
"c": "#58b4c4",
"w": 1.5
},
"1,11\n\n\n5,0"
],
[
{
"y": -0.75,
"c": "#cccccc"
},
"0,0\n\n\n1,1\n\n\n\n\n\ne",
"0,1\n\n\n1,1\n\n\n\n\n\ne"
],
[
{
"y": -0.25,
"x": 2.25,
"c": "#58b4c4",
"w": 1.75
},
"2,0\n\n\n5,0",
{
"c": "#cccccc"
},
"2,1\n\n\n5,0",
"2,2\n\n\n5,0",
"2,3\n\n\n5,0",
"2,4\n\n\n5,0",
"2,5\n\n\n5,0",
"2,6\n\n\n5,0",
"2,7\n\n\n5,0",
"2,8\n\n\n5,0",
"2,9\n\n\n5,0",
"2,10\n\n\n5,0",
{
"c": "#58b4c4"
},
"2,11\n\n\n5,0"
],
[
{
"y": -0.75,
"c": "#cccccc"
},
"1,0\n\n\n2,1\n\n\n\n\n\ne",
"1,1\n\n\n2,1\n\n\n\n\n\ne"
],
[
{
"y": -0.25,
"x": 2.25,
"c": "#83c069",
"w": 1.25
},
"3,0\n\n\n6,0",
"3,1\n\n\n6,0",
{
"w": 1.25
},
"3,2\n\n\n6,0",
{
"w": 2.75
},
"3,4\n\n\n6,0",
{
"w": 2.25
},
"3,6\n\n\n6,0",
{
"w": 1.25
},
"3,8\n\n\n6,0",
"3,9\n\n\n6,0",
"3,10\n\n\n6,0",
"3,11\n\n\n6,0"
],
[
{
"y": -0.75,
"c": "#cccccc"
},
"2,0\n\n\n3,1\n\n\n\n\n\ne",
"2,1\n\n\n3,1\n\n\n\n\n\ne"
],
[
{
"x": 2.25,
"c": "#83c069",
"w": 1.25
},
"3,0\n\n\n6,1",
"3,1\n\n\n6,1",
{
"w": 1.25
},
"3,2\n\n\n6,1",
{
"w": 6.25
},
"3,5\n\n\n6,1",
"3,9\n\n\n6,1",
"3,10\n\n\n6,1",
"3,11\n\n\n6,1"
],
[
{
"x": 2.25,
"c": "#a4c894",
"w": 1.25
},
"3,0\n\n\n6,2",
"3,1\n\n\n6,2",
"3,2\n\n\n6,2",
{
"w": 3
},
"3,4\n\n\n6,2",
{
"w": 3
},
"3,6\n\n\n6,2",
{
"w": 1.25
},
"3,9\n\n\n6,2",
"3,10\n\n\n6,2",
{
"w": 1.25
},
"3,11\n\n\n6,2"
],
[
{
"x": 2.25,
"w": 1.25
},
"3,0\n\n\n6,3",
{
"w": 1.5
},
"3,1\n\n\n6,3",
{
"w": 7
},
"3,5\n\n\n6,3",
"3,9\n\n\n6,3",
"3,10\n\n\n6,3",
"3,11\n\n\n6,3"
],
[
{
"x": 2.75,
"c": "#b9aec1",
"d": true
},
"4,0\n\n\n0,1",
{
"c": "#b8b8b8",
"d": true
},
"4,1\n\n\n0,1",
{
"d": true
},
"4,2\n\n\n0,1",
{
"d": true
},
"4,3\n\n\n0,1",
{
"d": true
},
"4,4\n\n\n0,1",
{
"c": "#b9aec1",
"d": true
},
"4,5\n\n\n0,1",
{
"x": 5,
"c": "#89bac1",
"w": 1.25,
"h": 2,
"w2": 1.5,
"h2": 1,
"x2": -0.25
},
"2,11\n\n\n5,1"
],
[
{
"x": 2.25,
"w": 1.5
},
"2,0\n\n\n5,1",
{
"c": "#cccccc"
},
"2,1\n\n\n5,1",
"2,2\n\n\n5,1",
"2,3\n\n\n5,1",
"2,4\n\n\n5,1",
"2,5\n\n\n5,1",
"2,6\n\n\n5,1",
"2,7\n\n\n5,1",
"2,8\n\n\n5,1",
"2,9\n\n\n5,1",
"2,10\n\n\n5,1"
]
]
}
}

View file

@ -0,0 +1,22 @@
# Gyrovan
![Gyrovan](https://i.imgur.com/2meFupl.jpg)
*A MiniVan/Vanagon/Embrace-compatible PCB powered by an STM32F072*
* Keyboard Maintainer: [NCKiser](https://github.com/NCKiser)
* Hardware Supported: Gyrovan PCB, STM32F072
Make example for this keyboard (after setting up your build environment):
make kiserdesigns/gyrovan:default
Flashing example for this keyboard:
make kiserdesigns/gyrovan:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
## Bootloader
Enter the bootloader in 3 ways:
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (ESC key) and plug in the keyboard
* **Physical bootsel button**: Hold down the button on the back of the PCB while plugging into the computer
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

View file

@ -0,0 +1 @@
# This file intentionally left blank

View file

@ -0,0 +1,27 @@
/* Copyright 2021 Noah Kiser (NCKiser)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U
#define RP2040_FLASH_GENERIC_03H
#define I2C_DRIVER I2CD1
#define I2C1_SDA_PIN GP18
#define I2C1_SCL_PIN GP19
#define OLED_BRIGHTNESS 255

View file

@ -0,0 +1,5 @@
#pragma once
#define HAL_USE_I2C TRUE
#include_next <halconf.h>

View file

@ -0,0 +1,98 @@
{
"manufacturer": "rubybuilds",
"keyboard_name": "La Somme",
"maintainer": "NCKiser",
"bootloader": "rp2040",
"diode_direction": "COL2ROW",
"encoder": {
"enabled": true,
"rotary": [
{"pin_a": "GP29", "pin_b": "GP0"}
]
},
"features": {
"bootmagic": true,
"command": false,
"console": false,
"extrakey": true,
"mousekey": true,
"nkro": true,
"rgb_matrix": true,
"oled": true
},
"matrix_pins": {
"cols": ["GP22", "GP23", "GP24", "GP26", "GP27", "GP3", "GP4", "GP5", "GP6", "GP7"],
"rows": ["GP1", "GP28", "GP2", "GP25"]
},
"processor": "RP2040",
"qmk": {
"tap_keycode_delay": 10
},
"rgb_matrix": {
"driver": "ws2812",
"led_count": 2,
"layout": [
{"flags": 4, "matrix": [3, 3], "x": 92, "y": 32},
{"flags": 4, "matrix": [3, 6], "x": 132, "y": 32}
]
},
"url": "https://qmk.fm/keyboards",
"usb": {
"device_version": "0.0.1",
"pid": "0x1503",
"vid": "0x4B44"
},
"ws2812": {
"pin": "GP17",
"driver": "vendor"
},
"layouts": {
"LAYOUT": {
"layout": [
{ "matrix": [0, 0], "x": 0, "y": 0.5 },
{ "matrix": [0, 1], "x": 1, "y": 0.25 },
{ "matrix": [0, 2], "x": 2, "y": 0 },
{ "matrix": [0, 3], "x": 3, "y": 0.25 },
{ "matrix": [0, 4], "x": 4, "y": 0.25 },
{ "matrix": [0, 5], "x": 6.5, "y": 0.25 },
{ "matrix": [0, 6], "x": 7.5, "y": 0.25 },
{ "matrix": [0, 7], "x": 8.5, "y": 0 },
{ "matrix": [0, 8], "x": 9.5, "y": 0.25 },
{ "matrix": [0, 9], "x": 10.5, "y": 0.5 },
{ "matrix": [1, 0], "x": 0, "y": 1.5 },
{ "matrix": [1, 1], "x": 1, "y": 1.25 },
{ "matrix": [1, 2], "x": 2, "y": 1 },
{ "matrix": [1, 3], "x": 3, "y": 1.25 },
{ "matrix": [1, 4], "x": 4, "y": 1.25 },
{ "matrix": [1, 5], "x": 6.5, "y": 1.25 },
{ "matrix": [1, 6], "x": 7.5, "y": 1.25 },
{ "matrix": [1, 7], "x": 8.5, "y": 1 },
{ "matrix": [1, 8], "x": 9.5, "y": 1.25 },
{ "matrix": [1, 9], "x": 10.5, "y": 1.5 },
{ "matrix": [2, 0], "x": 0, "y": 2.5 },
{ "matrix": [2, 1], "x": 1, "y": 2.25 },
{ "matrix": [2, 2], "x": 2, "y": 2 },
{ "matrix": [2, 3], "x": 3, "y": 2.25 },
{ "matrix": [2, 4], "x": 4, "y": 2.25 },
{ "matrix": [2, 5], "x": 6.5, "y": 2.25 },
{ "matrix": [2, 6], "x": 7.5, "y": 2.25 },
{ "matrix": [2, 7], "x": 8.5, "y": 2 },
{ "matrix": [2, 8], "x": 9.5, "y": 2.25 },
{ "matrix": [2, 9], "x": 10.5, "y": 2.5 },
{ "matrix": [3, 0], "x": 1, "y": 3.25 },
{ "matrix": [3, 1], "x": 2, "y": 3 },
{ "matrix": [3, 2], "x": 3, "y": 3.25 },
{ "matrix": [3, 3], "x": 4, "y": 3.25 },
{ "matrix": [3, 6], "x": 6.5, "y": 3.25 },
{ "matrix": [3, 7], "x": 7.5, "y": 3.25 },
{ "matrix": [3, 8], "x": 8.5, "y": 3 },
{ "matrix": [3, 9], "x": 9.5, "y": 3.25 },
{ "matrix": [3, 4], "x": 5.25, "y": 0.5 }
]
}
}
}

View file

@ -0,0 +1,46 @@
/* 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
#define KC_NUM_SPC LT(1, KC_SPC)
#define KC_GA LGUI_T(KC_A)
#define KC_AS LALT_T(KC_S)
#define KC_CD LCTL_T(KC_D)
#define KC_SF LSFT_T(KC_F)
#define KC_SJ RSFT_T(KC_J)
#define KC_CK RCTL_T(KC_K)
#define KC_AL RALT_T(KC_L)
#define KC_GSCLN RGUI_T(KC_SCLN)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
KC_GA, KC_AS, KC_CD, KC_SF, KC_G, KC_H, KC_SJ, KC_CK, KC_AL, KC_ENT,
KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT,
KC_LCTL, KC_LALT, KC_LGUI, KC_BSPC, KC_NUM_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_ESC
),
[1] = LAYOUT(
KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_EQUAL, KC_MINS,
KC_LCBR, KC_LBRC, KC_LPRN, KC_UNDS, KC_NO, KC_RPRN, KC_RBRC, KC_RCBR, KC_SCLN, KC_QUOTE,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
)
};
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
[0] = { ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN) },
[1] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }
};
#endif

View file

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

View file

@ -0,0 +1,27 @@
/* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#define VIAL_KEYBOARD_UID {0xD6, 0xB9, 0x37, 0xBF, 0x7E, 0xEF, 0x49, 0x7D}
#define VIAL_TAP_DANCE_ENTRIES 32
#define VIAL_COMBO_ENTRIES 64
#define DYNAMIC_KEYMAP_LAYER_COUNT 16
#define VIAL_UNLOCK_COMBO_ROWS { 0, 1 }
#define VIAL_UNLOCK_COMBO_COLS { 0, 9 }

View file

@ -0,0 +1,233 @@
/* 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
#define KC_NUM_SPC LT(1, KC_SPC)
#define KC_GA LGUI_T(KC_A)
#define KC_AS LALT_T(KC_S)
#define KC_CD LCTL_T(KC_D)
#define KC_SF LSFT_T(KC_F)
#define KC_SJ RSFT_T(KC_J)
#define KC_CK RCTL_T(KC_K)
#define KC_AL RALT_T(KC_L)
#define KC_GSCLN RGUI_T(KC_SCLN)
void oled_logo_task(void);
void oled_status_task(void);
void oled_matrix_task(void);
void oled_disabled_task(void);
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
KC_GA, KC_AS, KC_CD, KC_SF, KC_G, KC_H, KC_SJ, KC_CK, KC_AL, KC_ENT,
KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT,
KC_LCTL, KC_LALT, KC_LGUI, KC_BSPC, KC_NUM_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_ESC
),
[1] = LAYOUT(
KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_EQUAL, KC_MINS,
KC_LCBR, KC_LBRC, KC_LPRN, KC_UNDS, KC_NO, KC_RPRN, KC_RBRC, KC_RCBR, KC_SCLN, KC_QUOTE,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
)
};
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
[0] = { ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN) },
[1] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }
};
#endif
bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
if (rgb_matrix_is_enabled()){
HSV layer_hsv = {rgb_matrix_get_hue(), ((int)rgb_matrix_get_sat()>>1)+128, rgb_matrix_get_val()}; //get the matrix hue, sat (minimum 50%), and value
HSV mod_hsv = {rgb_matrix_get_hue(), ((int)rgb_matrix_get_sat()>>1)+128, rgb_matrix_get_val()};
layer_hsv.h += 16*get_highest_layer(layer_state|default_layer_state); //hue-shift the layer indicator based on highest layer (of 0-15 layers)
layer_hsv.h = layer_hsv.h % 256; //modulo 256
int mods = get_mods() | get_oneshot_mods(); //get all modifiers, either held or OSM
mods = ((mods>>4)|mods) & 0x0F; //combine left and right mods, and take just the bottom 4 bits (0-15)
mod_hsv.h += 16*mods; //hue-shift the modifier indicator based on the modifiers held (of 0-15 combinations)
mod_hsv.h = mod_hsv.h % 256; //modulo 256
if (host_keyboard_led_state().caps_lock) { //if capslock is active
layer_hsv.s = 0; //turn both indicators white
mod_hsv.s = 0;
};
RGB layer_rgb = hsv_to_rgb(layer_hsv);
RGB mod_rgb = hsv_to_rgb(mod_hsv);
rgb_matrix_set_color(0, layer_rgb.r, layer_rgb.g, layer_rgb.b);
rgb_matrix_set_color(1, mod_rgb.r, mod_rgb.g, mod_rgb.b);
}
return true;
}
#ifdef OLED_ENABLE
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
return OLED_ROTATION_90;
}
bool oled_task_user(void) {
oled_set_brightness(rgb_matrix_get_speed());
switch (via_get_layout_options()&0x03) {
case 1:
oled_logo_task();
break;
case 2:
oled_status_task();
break;
case 3:
oled_matrix_task();
break;
default:
oled_disabled_task();
}
return false;
}
void oled_logo_task(void) {
const unsigned char lasomme [] PROGMEM = {
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x07, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x07, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0f, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0f, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0f, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x1f, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x1f, 0x00, 0xf0, 0x00, 0x00, 0xfc, 0x07, 0x00, 0x00, 0x80, 0x80, 0x00, 0x40, 0x40, 0x01, 0xc0,
0x1e, 0x03, 0xfc, 0x00, 0x01, 0xf8, 0x1f, 0x81, 0xc3, 0xe3, 0xe0, 0xe1, 0xf1, 0xf0, 0x07, 0xf0,
0x3e, 0x07, 0xfc, 0x00, 0x01, 0xf0, 0x7f, 0xc1, 0xe7, 0xe7, 0xe0, 0xf3, 0xf3, 0xf0, 0x0f, 0xf0,
0x3e, 0x0f, 0x8e, 0x00, 0x03, 0xf0, 0x7c, 0xe1, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xf8, 0x1f, 0x30,
0x3c, 0x1f, 0x06, 0x00, 0x03, 0xf0, 0xf9, 0xe1, 0xfd, 0xfd, 0xf0, 0xfe, 0xfe, 0xf8, 0x3e, 0x30,
0x3c, 0x1e, 0x06, 0x00, 0x07, 0xe1, 0xf1, 0xf1, 0xf9, 0xf9, 0xe0, 0xfc, 0xfc, 0xf0, 0x7c, 0x30,
0x7c, 0x3e, 0x0c, 0x00, 0x07, 0xe1, 0xe1, 0xb1, 0xf1, 0xf1, 0xe0, 0xf8, 0xf8, 0xf0, 0x7c, 0x70,
0x78, 0x3c, 0x0e, 0x00, 0x07, 0xe1, 0xe1, 0x33, 0xf1, 0xf3, 0xe1, 0xf8, 0xf9, 0xf0, 0xf8, 0x60,
0x78, 0x3c, 0x0f, 0x04, 0x0c, 0xf3, 0xe0, 0x33, 0xe3, 0xe3, 0xe1, 0xf1, 0xf1, 0xf0, 0xf8, 0xe3,
0x78, 0x7c, 0x0f, 0x0e, 0x0c, 0xf3, 0xc0, 0x33, 0xc3, 0xc3, 0xc1, 0xe1, 0xe1, 0xe0, 0xf1, 0xc3,
0x78, 0x78, 0x1f, 0x0c, 0x1e, 0xf3, 0xc0, 0x33, 0xc3, 0xc3, 0xc3, 0xe1, 0xe1, 0xe1, 0xf3, 0x86,
0xf8, 0x78, 0x1f, 0x0c, 0x1e, 0xf3, 0xc0, 0x33, 0xc3, 0xc3, 0xc3, 0xe1, 0xe1, 0xe1, 0xff, 0x06,
0xf0, 0xf8, 0x3f, 0x18, 0x3e, 0x73, 0xc0, 0x73, 0x83, 0x83, 0xc7, 0xe1, 0xe1, 0xe3, 0xfe, 0x0c,
0xf1, 0xf8, 0x3e, 0x18, 0x38, 0x7b, 0xe0, 0x73, 0x83, 0x83, 0xc7, 0xc1, 0xc1, 0xe3, 0xf8, 0x1c,
0xf1, 0xf8, 0x7e, 0x30, 0x38, 0x79, 0xe0, 0xe3, 0x83, 0x83, 0xcf, 0xc1, 0xc1, 0xe7, 0xf0, 0x18,
0xf3, 0xfc, 0xfe, 0x70, 0x38, 0x79, 0xf1, 0xe3, 0x83, 0x83, 0xdf, 0xc1, 0xc1, 0xee, 0xf8, 0x38,
0x7f, 0x3f, 0xdf, 0xe0, 0x1c, 0x78, 0xff, 0xc3, 0x83, 0x83, 0xf9, 0xc1, 0xc1, 0xfe, 0xfc, 0xf0,
0x7e, 0x1f, 0x8f, 0xc0, 0x1f, 0xf0, 0x7f, 0x83, 0x83, 0x83, 0xf9, 0xc1, 0xc1, 0xfc, 0x7f, 0xe0,
0x3c, 0x0f, 0x0f, 0x80, 0x07, 0xe0, 0x3f, 0x00, 0x80, 0x81, 0xf0, 0x40, 0x40, 0xf8, 0x3f, 0xc0,
0x00, 0x00, 0x00, 0x00, 0x01, 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
};
unsigned int x;
unsigned int y;
unsigned char bit;
uint index = 0;
for (y = 0; y < 32; y++){
for (x = 0; x < 16; x++){
for (bit = 0; bit < 8; bit++){
oled_write_pixel(31-y, (8*x)+bit, lasomme[index]&(0x80>>bit));
}
index++;
}
}
}
void oled_status_task(void) {
oled_write_pixel(31, 6, 0);
oled_write_pixel(30, 5, 0);
oled_write_pixel(30, 6, 0);
oled_write_pixel(30, 7, 0);
// Host Keyboard Layer Status
switch (get_highest_layer(layer_state)) {
case 0:
oled_write_P(PSTR(" LYR \n"), false);
break;
case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8:
case 9: case 10: case 11: case 12: case 13: case 14: case 15:
oled_write_P(PSTR(" "), true);
oled_write_P(get_u8_str(get_highest_layer(layer_state), '0'), true);
oled_write_P(PSTR(" \n"), true);
break;
default:
// Or use the write_ln shortcut over adding '\n' to the end of your string
oled_write_P(PSTR(" LRX \n"), true);
}
// Host Keyboard LED Status
led_t led_state = host_keyboard_led_state();
oled_write_P(PSTR(" CAP \n"), led_state.caps_lock);
oled_write_P(PSTR(" NUM \n"), led_state.num_lock);
oled_write_P(PSTR(" SCL \n"), led_state.scroll_lock);
//Host Keyboard Modifier Status
int mods = get_mods() | get_oneshot_mods(); //get all modifiers, either held or OSM
mods = ((mods>>4)|mods) & 0x0F; //combine left and right mods, and take just the bottom 4 bits (0-15)
oled_write_P(PSTR(" CTL \n"), mods & 0x1);
oled_write_P(PSTR(" SFT \n"), mods & 0x2);
oled_write_P(PSTR(" ALT \n"), mods & 0x4);
oled_write_P(PSTR(" GUI \n"), mods & 0x8);
}
void oled_matrix_task(void) {
oled_write_pixel(31, 6, 0);
oled_write_pixel(30, 5, 0);
oled_write_pixel(30, 6, 0);
oled_write_pixel(30, 7, 0);
int row;
int col;
for (row = 0; row < MATRIX_ROWS; row++) {
oled_write_P(PSTR("-----"), false);
for (col = 0; col < MATRIX_COLS; col++){
if (matrix_get_row(row) & (1 << col)) {
oled_write_char(col+48, false);
} else {
oled_write_P(PSTR(" "), false);
}
}
oled_write_P(PSTR("-----"), false);
}
}
void oled_disabled_task(void) {
oled_write_pixel(31, 6, 0);
oled_write_pixel(30, 5, 0);
oled_write_pixel(30, 6, 0);
oled_write_pixel(30, 7, 0);
oled_write_P(PSTR(" \n"), false);
oled_write_P(PSTR(" \n"), false);
oled_write_P(PSTR(" \n"), false);
oled_write_P(PSTR(" \n"), false);
oled_write_P(PSTR(" \n"), false);
oled_write_P(PSTR(" \n"), false);
oled_write_P(PSTR(" \n"), false);
oled_write_P(PSTR(" \n"), false);
}
#endif

View file

@ -0,0 +1,4 @@
VIA_ENABLE = yes
VIAL_ENABLE = yes
ENCODER_MAP_ENABLE = yes
VIALRGB_ENABLE = yes

View file

@ -0,0 +1,245 @@
{
"matrix": {
"rows": 4,
"cols": 10
},
"lighting": "vialrgb",
"layouts": {
"labels": [
"2u Left Space",
"2u Right Space",
"Remove Encoder",
[
"OLED Mode",
"Disabled",
"Logo",
"Status",
"Matrix"
]
],
"keymap": [
[
{
"y": 1.5,
"x": 2
},
"0,2",
{
"x": 5.5
},
"0,7"
],
[
{
"y": -0.75,
"x": 1
},
"0,1",
{
"x": 1
},
"0,3",
"0,4",
{
"x": 1.5
},
"0,5",
"0,6",
{
"x": 1
},
"0,8"
],
[
{
"y": -0.75
},
"0,0",
{
"x": 4.25
},
"3,4",
{
"x": 4.25
},
"0,9"
],
[
{
"y": -0.5,
"x": 2
},
"1,2",
{
"x": 5.5
},
"1,7"
],
[
{
"y": -0.75,
"x": 1
},
"1,1",
{
"x": 1
},
"1,3",
"1,4",
{
"x": 0.25,
"d": true
},
"3,5\n\n\n3,0",
{
"x": 0.25
},
"1,5",
"1,6",
{
"x": 1
},
"1,8"
],
[
{
"y": -0.75
},
"1,0",
{
"x": 9.5
},
"1,9"
],
[
{
"y": -0.75,
"x": 5.25
},
"0,0\n\n\n2,0\n\n\n\n\n\ne"
],
[
{
"y": -0.75,
"x": 2
},
"2,2",
{
"x": 5.5
},
"2,7"
],
[
{
"y": -0.75,
"x": 1
},
"2,1",
{
"x": 1
},
"2,3",
"2,4",
{
"x": 1.5
},
"2,5",
"2,6",
{
"x": 1
},
"2,8"
],
[
{
"y": -0.75
},
"2,0",
{
"x": 9.5
},
"2,9"
],
[
{
"y": -0.75,
"x": 5.25
},
"0,1\n\n\n2,0\n\n\n\n\n\ne"
],
[
{
"y": -0.75,
"x": 2
},
"3,1",
{
"x": 5.5
},
"3,8"
],
[
{
"y": -0.75,
"x": 1
},
"3,0",
{
"x": 1
},
"3,2\n\n\n0,0",
"3,3\n\n\n0,0",
{
"x": 1.5
},
"3,6\n\n\n1,0",
"3,7\n\n\n1,0",
{
"x": 1
},
"3,9"
],
[
{
"y": -0.25,
"x": 5.25,
"d": true
},
"0,0\n\n\n2,1\n\n\n\n\n\ne"
],
[
{
"y": -0.5,
"x": 3,
"w": 2
},
"3,3\n\n\n0,1",
{
"x": 1.5,
"w": 2
},
"3,6\n\n\n1,1",
{
"d": true
},
"3,5\n\n\n3,1",
{
"d": true
},
"3,5\n\n\n3,2",
{
"d": true
},
"3,5\n\n\n3,3"
],
[
{
"y": -0.5,
"x": 5.25,
"d": true
},
"0,1\n\n\n2,1\n\n\n\n\n\ne"
]
]
}
}

View file

@ -0,0 +1,8 @@
#pragma once
#include_next <mcuconf.h>
#undef RP_I2C_USE_I2C0
#undef RP_I2C_USE_I2C1
#define RP_I2C_USE_I2C0 FALSE
#define RP_I2C_USE_I2C1 TRUE

View file

@ -0,0 +1,23 @@
# La Somme
![La Somme](https://i.imgur.com/E9JGFkX.jpg)
*A unibody-split col-stag 10u board by [rubybuilds](https://github.com/onisage) with the PCB designed by [NoahK](https://github.com/NCKiser)*
* Keyboard Maintainer: [NCKiser](https://github.com/NCKiser)
* Hardware Supported: La Somme PCB, rp2040
* Hardware Availability: shop.rubybuilds.com
Make example for this keyboard (after setting up your build environment):
make kiserdesigns/la_somme:default
Flashing example for this keyboard:
make kiserdesigns/la_somme:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
## Bootloader
Enter the bootloader in 3 ways:
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (the top left key or "Q") and plug in the keyboard
* **Physical reset button(s)**: On the back of the PCB: tap the RESET button while holding the BOOT button, or double-tap the RESET button
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

View file

@ -0,0 +1 @@
# This file intentionally left blank

View file

@ -0,0 +1,123 @@
{
"manufacturer": "Kiser Designs",
"keyboard_name": "Simple75",
"maintainer": "NCKiser",
"diode_direction": "COL2ROW",
"encoder": {
"enabled": true,
"rotary": [
{"pin_a": "F6", "pin_b": "F7", "resolution": 2}
]
},
"features": {
"bootmagic": true,
"command": false,
"console": false,
"extrakey": true,
"mousekey": true,
"nkro": true
},
"matrix_pins": {
"cols": ["D1", "D0", "B7", "D6", "D7", "B5", "B1", "B6", "C6", "C7", "E6", "F0", "F1", "F4", "F5", "B2"],
"rows": ["D2", "D3", "D5", "D4", "B4", "B0"]
},
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
"usb": {
"device_version": "0.0.1",
"pid": "0x5175",
"vid": "0x4B44"
},
"layouts": {
"LAYOUT": {
"layout": [
{ "matrix": [0, 0], "x": 0, "y": 0 },
{ "matrix": [0, 1], "x": 1.25, "y": 0 },
{ "matrix": [0, 2], "x": 2.25, "y": 0 },
{ "matrix": [0, 3], "x": 3.25, "y": 0 },
{ "matrix": [0, 4], "x": 4.25, "y": 0 },
{ "matrix": [0, 5], "x": 5.5, "y": 0 },
{ "matrix": [0, 6], "x": 6.5, "y": 0 },
{ "matrix": [0, 7], "x": 7.5, "y": 0 },
{ "matrix": [0, 8], "x": 8.5, "y": 0 },
{ "matrix": [0, 9], "x": 9.75, "y": 0 },
{ "matrix": [0, 10], "x": 10.75, "y": 0 },
{ "matrix": [0, 11], "x": 11.75, "y": 0 },
{ "matrix": [0, 12], "x": 12.75, "y": 0 },
{ "matrix": [0, 15], "w": 2, "x": 14, "y": 0 },
{ "matrix": [1, 0], "x": 0, "y": 1.25 },
{ "matrix": [1, 1], "x": 1, "y": 1.25 },
{ "matrix": [1, 2], "x": 2, "y": 1.25 },
{ "matrix": [1, 3], "x": 3, "y": 1.25 },
{ "matrix": [1, 4], "x": 4, "y": 1.25 },
{ "matrix": [1, 5], "x": 5, "y": 1.25 },
{ "matrix": [1, 6], "x": 6, "y": 1.25 },
{ "matrix": [1, 7], "x": 7, "y": 1.25 },
{ "matrix": [1, 8], "x": 8, "y": 1.25 },
{ "matrix": [1, 9], "x": 9, "y": 1.25 },
{ "matrix": [1, 10], "x": 10, "y": 1.25 },
{ "matrix": [1, 11], "x": 11, "y": 1.25 },
{ "matrix": [1, 12], "x": 12, "y": 1.25 },
{ "matrix": [1, 13], "w": 2, "x": 13, "y": 1.25 },
{ "matrix": [1, 14], "x": 15, "y": 1.25 },
{ "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2.25 },
{ "matrix": [2, 1], "x": 1.5, "y": 2.25 },
{ "matrix": [2, 2], "x": 2.5, "y": 2.25 },
{ "matrix": [2, 3], "x": 3.5, "y": 2.25 },
{ "matrix": [2, 4], "x": 4.5, "y": 2.25 },
{ "matrix": [2, 5], "x": 5.5, "y": 2.25 },
{ "matrix": [2, 6], "x": 6.5, "y": 2.25 },
{ "matrix": [2, 7], "x": 7.5, "y": 2.25 },
{ "matrix": [2, 8], "x": 8.5, "y": 2.25 },
{ "matrix": [2, 9], "x": 9.5, "y": 2.25 },
{ "matrix": [2, 10], "x": 10.5, "y": 2.25 },
{ "matrix": [2, 11], "x": 11.5, "y": 2.25 },
{ "matrix": [2, 12], "x": 12.5, "y": 2.25 },
{ "matrix": [2, 13], "w": 1.5, "x": 13.5, "y": 2.25 },
{ "matrix": [2, 14], "x": 15, "y": 2.25 },
{ "matrix": [3, 0], "w": 1.75, "x": 0, "y": 3.25 },
{ "matrix": [3, 1], "x": 1.75, "y": 3.25 },
{ "matrix": [3, 2], "x": 2.75, "y": 3.25 },
{ "matrix": [3, 3], "x": 3.75, "y": 3.25 },
{ "matrix": [3, 4], "x": 4.75, "y": 3.25 },
{ "matrix": [3, 5], "x": 5.75, "y": 3.25 },
{ "matrix": [3, 6], "x": 6.75, "y": 3.25 },
{ "matrix": [3, 7], "x": 7.75, "y": 3.25 },
{ "matrix": [3, 8], "x": 8.75, "y": 3.25 },
{ "matrix": [3, 9], "x": 9.75, "y": 3.25 },
{ "matrix": [3, 10], "x": 10.75, "y": 3.25 },
{ "matrix": [3, 11], "x": 11.75, "y": 3.25 },
{ "matrix": [3, 13], "w": 2.25, "x": 12.75, "y": 3.25 },
{ "matrix": [3, 14], "x": 15, "y": 3.25 },
{ "matrix": [4, 0], "w": 2.25, "x": 0, "y": 4.25 },
{ "matrix": [4, 2], "x": 2.25, "y": 4.25 },
{ "matrix": [4, 3], "x": 3.25, "y": 4.25 },
{ "matrix": [4, 4], "x": 4.25, "y": 4.25 },
{ "matrix": [4, 5], "x": 5.25, "y": 4.25 },
{ "matrix": [4, 6], "x": 6.25, "y": 4.25 },
{ "matrix": [4, 7], "x": 7.25, "y": 4.25 },
{ "matrix": [4, 8], "x": 8.25, "y": 4.25 },
{ "matrix": [4, 9], "x": 9.25, "y": 4.25 },
{ "matrix": [4, 10], "x": 10.25, "y": 4.25 },
{ "matrix": [4, 11], "x": 11.25, "y": 4.25 },
{ "matrix": [4, 12], "w": 1.75, "x": 12.25, "y": 4.25 },
{ "matrix": [4, 13], "x": 14, "y": 4.25 },
{ "matrix": [4, 14], "x": 15, "y": 4.25 },
{ "matrix": [5, 0], "w": 1.25, "x": 0, "y": 5.25 },
{ "matrix": [5, 1], "w": 1.25, "x": 1.25, "y": 5.25 },
{ "matrix": [5, 2], "w": 1.25, "x": 2.5, "y": 5.25 },
{ "matrix": [5, 6], "w": 6.25, "x": 3.75, "y": 5.25 },
{ "matrix": [5, 10], "w": 1.25, "x": 10, "y": 5.25 },
{ "matrix": [5, 11], "w": 1.25, "x": 11.25, "y": 5.25 },
{ "matrix": [5, 12], "x": 13, "y": 5.25 },
{ "matrix": [5, 13], "x": 14, "y": 5.25 },
{ "matrix": [5, 14], "x": 15, "y": 5.25 }
]
}
}
}

View file

@ -0,0 +1,31 @@
/* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MUTE,
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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_PGUP,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
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_END,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
)
};
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
[0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }
};
#endif

View file

@ -0,0 +1,2 @@
ENCODER_MAP_ENABLE = yes
LTO_ENABLE = yes

View file

@ -0,0 +1,27 @@
/* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#define VIAL_KEYBOARD_UID {0xA3, 0xB8, 0x1B, 0x88, 0xA2, 0xD7, 0x0B, 0x41}
#define VIAL_TAP_DANCE_ENTRIES 4
#define VIAL_COMBO_ENTRIES 4
#define DYNAMIC_KEYMAP_LAYER_COUNT 4
#define VIAL_UNLOCK_COMBO_ROWS { 0, 3 }
#define VIAL_UNLOCK_COMBO_COLS { 0, 13 }

View file

@ -0,0 +1,31 @@
/* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MUTE,
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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_PGUP,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
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_END,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
)
};
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
[0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }
};
#endif

View file

@ -0,0 +1,9 @@
VIA_ENABLE = yes
VIAL_ENABLE = yes
ENCODER_MAP_ENABLE = yes
COMBO_ENABLE = no
QMK_SETTINGS = no
KEY_OVERRIDE_ENABLE = no
LTO_ENABLE = yes

View file

@ -0,0 +1,174 @@
{
"matrix": {
"rows": 6,
"cols": 16
},
"layouts": {
"keymap": [
[
{
"y": 0.25
},
"0,0",
{
"x": 0.25
},
"0,1",
"0,2",
"0,3",
"0,4",
{
"x": 0.25
},
"0,5",
"0,6",
"0,7",
"0,8",
{
"x": 0.25
},
"0,9",
"0,10",
"0,11",
"0,12",
{
"x": 0.25,
"w": 2
},
"0,15",
{
"x": 0.25
},
"0,1\n\n\n\n\n\n\n\n\ne"
],
[
{
"x": 16.25
},
"0,0\n\n\n\n\n\n\n\n\ne"
],
[
{
"y": -0.75
},
"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",
{
"w": 2
},
"1,13",
"1,14"
],
[
{
"w": 1.5
},
"2,0",
"2,1",
"2,2",
"2,3",
"2,4",
"2,5",
"2,6",
"2,7",
"2,8",
"2,9",
"2,10",
"2,11",
"2,12",
{
"w": 1.5
},
"2,13",
"2,14"
],
[
{
"w": 1.75
},
"3,0",
"3,1",
"3,2",
"3,3",
"3,4",
"3,5",
"3,6",
"3,7",
"3,8",
"3,9",
"3,10",
"3,11",
{
"w": 2.25
},
"3,13",
"3,14"
],
[
{
"w": 2.25
},
"4,0",
"4,2",
"4,3",
"4,4",
"4,5",
"4,6",
"4,7",
"4,8",
"4,9",
"4,10",
"4,11",
{
"w": 1.75
},
"4,12",
"4,13",
"4,14"
],
[
{
"w": 1.25
},
"5,0",
{
"w": 1.25
},
"5,1",
{
"w": 1.25
},
"5,2",
{
"w": 6.25
},
"5,6",
{
"w": 1.25
},
"5,10",
{
"w": 1.25
},
"5,11",
{
"x": 0.5
},
"5,12",
"5,13",
"5,14"
]
]
}
}

View file

@ -0,0 +1 @@
# this file intentionally left blank

View file

@ -0,0 +1,23 @@
# Suffer (SVFFER)
![Suffer Layouts](https://i.imgur.com/replaceme)
*Suffer is a 12-18 key macropad inspired by the [masochist16 by Zicodia](https://github.com/Z1codia/masochist16), with a case designed by seirin_blu*
* Keyboard Maintainer: [NCKiser](https://github.com/NCKiser)
* Hardware Supported: Suffer PCB (V1: 32u4, V2: STM32)
* Hardware Availability: kiserdesigns.com
Make example for this keyboard (after setting up your build environment):
make kiserdesigns/suffer/v2:default
Flashing example for this keyboard:
make kiserdesigns/suffer/v2:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
## Bootloader
Enter the bootloader in 3 ways:
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (the top left key) and plug in the keyboard
* **Physical reset button**: Briefly double-tap the reset button on the back of the PCB
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

View file

@ -0,0 +1,49 @@
{
"manufacturer": "Kiser Designs",
"keyboard_name": "Suffer",
"maintainer": "qmk",
"bootloader": "atmel-dfu",
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"command": false,
"console": false,
"extrakey": true,
"mousekey": true,
"nkro": true
},
"matrix_pins": {
"cols": ["D5", "D3", "D2", "F4", "D1", "D0"],
"rows": ["E6", "B0", "B3"]
},
"processor": "atmega32u4",
"usb": {
"device_version": "0.0.1",
"pid": "0x5376",
"vid": "0x4B44"
},
"layouts": {
"LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
{"matrix": [0, 2], "x": 2, "y": 0},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [0, 4], "x": 4, "y": 0},
{"matrix": [0, 5], "x": 5, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.25},
{"matrix": [1, 1], "x": 1.25, "y": 1},
{"matrix": [1, 2], "x": 2.25, "y": 1},
{"matrix": [1, 3], "x": 3.25, "y": 1},
{"matrix": [1, 5], "x": 4.25, "y": 1, "w": 1.75},
{"matrix": [2, 0], "x": 0, "y": 2},
{"matrix": [2, 1], "x": 1, "y": 2},
{"matrix": [2, 2], "x": 2, "y": 2, "w": 2},
{"matrix": [2, 4], "x": 4, "y": 2},
{"matrix": [2, 5], "x": 5, "y": 2}
]
}
}
}

View file

@ -0,0 +1,26 @@
/* Copyright 2024 Noah Kiser
*
* 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_F1, KC_F2, KC_F3, KC_F4, KC_BSPC, KC_ESC,
KC_F5, KC_F6, KC_F7, KC_F8, KC_ENT,
KC_TAB, KC_PGUP, LT(1,KC_SPC), KC_PGDN, KC_RCTL
)
};

View file

@ -0,0 +1,14 @@
#pragma once
#define VIAL_KEYBOARD_UID {0xBE, 0xA2, 0x9B, 0x4C, 0x6E, 0x78, 0xDA, 0x7D}
#define DYNAMIC_KEYMAP_LAYER_COUNT 8
#define VIAL_TAP_DANCE_ENTRIES 12
#define VIAL_COMBO_ENTRIES 48
#define DYNAMIC_KEYMAP_MACRO_COUNT 16
#define VIAL_UNLOCK_COMBO_ROWS { 0, 1 }
#define VIAL_UNLOCK_COMBO_COLS { 0, 5 }

View file

@ -0,0 +1,26 @@
/* Copyright 2024 Noah Kiser
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_BSPC,
KC_ENT, KC_F5, KC_F6, KC_F7, KC_F8,
KC_TAB, KC_LALT, LT(1,KC_SPC), KC_LCTL, KC_F9
)
};

View file

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

View file

@ -0,0 +1,48 @@
{
"name": "Suffer",
"vendorId": "0x4B44",
"productId": "0x5346",
"lighting": "none",
"matrix": {
"rows": 3,
"cols": 6
},
"layouts": {
"keymap":
[
[
"0,0",
"0,1",
"0,2",
"0,3",
"0,4",
"0,5"
],
[
{
"w": 1.25
},
"1,0",
"1,1",
"1,2",
"1,3",
{
"w": 1.75
},
"1,5"
],
[
"2,0",
"2,1",
{
"w": 2
},
"2,2",
"2,4",
"2,5"
]
]
}
}

View file

@ -0,0 +1 @@
# This file intentionally left blank

View file

@ -0,0 +1,53 @@
{
"manufacturer": "Kiser Designs",
"keyboard_name": "Suffer V2",
"maintainer": "qmk",
"bootloader": "stm32-dfu",
"features": {
"bootmagic": true,
"command": false,
"console": false,
"extrakey": true,
"mousekey": true,
"nkro": true
},
"matrix_pins": {
"direct": [
[ "B14", "B15", "A8", "A14", "A0", "A2" ],
[ "B13", "B12", "B11", "B0", "A4", "A3" ],
[ "B10", "B2", "B1", "A7", "A6", "A5" ]
]
},
"processor": "STM32F072",
"usb": {
"device_version": "0.2.0",
"pid": "0x5376",
"vid": "0x4B44"
},
"layouts": {
"LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
{"matrix": [0, 2], "x": 2, "y": 0},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [0, 4], "x": 4, "y": 0},
{"matrix": [0, 5], "x": 5, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1},
{"matrix": [1, 1], "x": 1, "y": 1},
{"matrix": [1, 2], "x": 2, "y": 1},
{"matrix": [1, 3], "x": 3, "y": 1},
{"matrix": [1, 4], "x": 4, "y": 1},
{"matrix": [1, 5], "x": 5, "y": 1},
{"matrix": [2, 0], "x": 0, "y": 2},
{"matrix": [2, 1], "x": 1, "y": 2},
{"matrix": [2, 2], "x": 2, "y": 2},
{"matrix": [2, 3], "x": 3, "y": 2},
{"matrix": [2, 4], "x": 4, "y": 2},
{"matrix": [2, 5], "x": 5, "y": 2}
]
}
}
}

View file

@ -0,0 +1,12 @@
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT( \
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, \
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
)
};

View file

@ -0,0 +1,14 @@
#pragma once
#define VIAL_KEYBOARD_UID {0x0E, 0x2B, 0xCD, 0x9D, 0x2C, 0x60, 0xDC, 0xC5}
#define DYNAMIC_KEYMAP_LAYER_COUNT 16
#define VIAL_TAP_DANCE_ENTRIES 24
#define VIAL_COMBO_ENTRIES 64
#define DYNAMIC_KEYMAP_MACRO_COUNT 32
#define VIAL_UNLOCK_COMBO_ROWS { 0, 1 }
#define VIAL_UNLOCK_COMBO_COLS { 0, 4 }

View file

@ -0,0 +1,12 @@
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT( \
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, \
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
)
};

Some files were not shown because too many files have changed in this diff Show more