Compare commits
10 Commits
fcd56b119e
...
dc49a1cc1b
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
dc49a1cc1b | ||
|
|
1d9c72972d | ||
|
|
0a0ebacf13 | ||
|
|
e5d212c60b | ||
|
|
72fb6f1fed | ||
|
|
2c19604a9c | ||
|
|
7e78fe2e8b | ||
|
|
e988c64064 | ||
|
|
c0ac784c45 | ||
|
|
70a3043ba3 |
75
keyboards/cheapino/cheapino.c
Normal file
75
keyboards/cheapino/cheapino.c
Normal file
@@ -0,0 +1,75 @@
|
||||
#include "wait.h"
|
||||
#include "quantum.h"
|
||||
|
||||
// This is to keep state between callbacks, when it is 0 the
|
||||
// initial RGB flash is finished
|
||||
uint8_t _hue_countdown = 50;
|
||||
|
||||
// These are to keep track of user selected color, so we
|
||||
// can restore it after RGB flash
|
||||
uint8_t _hue;
|
||||
uint8_t _saturation;
|
||||
uint8_t _value;
|
||||
|
||||
// Do a little 2.5 seconds display of the different colors
|
||||
// Use the deferred executor so the LED flash dance does not
|
||||
// stop us from using the keyboard.
|
||||
// https://docs.qmk.fm/#/custom_quantum_functions?id=deferred-executor-registration
|
||||
uint32_t flash_led(uint32_t next_trigger_time, void *cb_arg) {
|
||||
rgblight_sethsv(_hue_countdown * 5, 230, 70);
|
||||
_hue_countdown--;
|
||||
if (_hue_countdown == 0) {
|
||||
// Finished, reset to user chosen led color
|
||||
rgblight_sethsv(_hue, _saturation, _value);
|
||||
return 0;
|
||||
} else {
|
||||
return 50;
|
||||
}
|
||||
}
|
||||
|
||||
void keyboard_post_init_user(void) {
|
||||
//debug_enable=true;
|
||||
//debug_matrix=true;
|
||||
//debug_keyboard=true;
|
||||
//debug_mouse=true;
|
||||
|
||||
// Store user selected rgb hsv:
|
||||
_hue = rgblight_get_hue();
|
||||
_saturation = rgblight_get_sat();
|
||||
_value = rgblight_get_val();
|
||||
|
||||
// Flash a little on start
|
||||
// defer_exec(50, flash_led, NULL);
|
||||
}
|
||||
|
||||
// Make the builtin RGB led show different colors per layer:
|
||||
uint8_t get_hue(uint8_t layer) {
|
||||
switch (layer) {
|
||||
case 13:
|
||||
return 0;
|
||||
case 12:
|
||||
return 20;
|
||||
case 5:
|
||||
return 43;
|
||||
case 4:
|
||||
return 43;
|
||||
case 3:
|
||||
return 170;
|
||||
case 2:
|
||||
return 213;
|
||||
case 1:
|
||||
return 128;
|
||||
case 0:
|
||||
return 85;
|
||||
default:
|
||||
return 255;
|
||||
}
|
||||
}
|
||||
|
||||
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||
uint8_t sat = rgblight_get_sat();
|
||||
uint8_t val = rgblight_get_val();
|
||||
uint8_t hue = get_hue(get_highest_layer(state));
|
||||
rgblight_sethsv(hue, sat, val);
|
||||
return state;
|
||||
}
|
||||
26
keyboards/cheapino/config.h
Normal file
26
keyboards/cheapino/config.h
Normal file
@@ -0,0 +1,26 @@
|
||||
// Copyright 2023 Thomas Haukland (@tompi)
|
||||
// Copyright 2026 Arne Moerman (@thearne4)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#define BOTH_SHIFTS_TURNS_ON_CAPS_WORD
|
||||
#define WS2812_PIO_USE_PIO1 // Force the usage of PIO1 peripheral, by default the WS2812 implementation uses the PIO0 peripheral
|
||||
#define WS2812_BYTE_ORDER WS2812_BYTE_ORDER_RGB
|
||||
|
||||
|
||||
// Pick good defaults for enabling homerow modifiers
|
||||
#define TAPPING_TERM 230
|
||||
|
||||
#define WS2812_DI_PIN GP16 // The pin connected to the data pin of the LEDs
|
||||
#define RGBLIGHT_LED_COUNT 1 // The number of LEDs connected
|
||||
|
||||
// Max number of threads
|
||||
#define MAX_DEFERRED_EXECUTORS 32
|
||||
|
||||
// #define DEBUG_MATRIX_SCAN_RATE
|
||||
|
||||
// Avoid very bright default LED
|
||||
#define RGBLIGHT_DEFAULT_HUE 128 // Sets the default hue value, if none has been set
|
||||
#define RGBLIGHT_DEFAULT_SAT 128 // Sets the default saturation value, if none has been set
|
||||
#define RGBLIGHT_DEFAULT_VAL 32 // Sets the default brightness value, if none has been set
|
||||
63
keyboards/cheapino/encoder.c
Normal file
63
keyboards/cheapino/encoder.c
Normal file
@@ -0,0 +1,63 @@
|
||||
#include "matrix.h"
|
||||
#include "quantum.h"
|
||||
|
||||
#define COL_SHIFTER ((uint16_t)1)
|
||||
|
||||
#define ENC_ROW 3
|
||||
#define ENC_A_COL 2
|
||||
#define ENC_B_COL 4
|
||||
#define ENC_BUTTON_COL 0
|
||||
|
||||
static bool colABPressed = false;
|
||||
static bool encoderPressed = false;
|
||||
|
||||
void clicked(void) {
|
||||
tap_code(KC_MPLY);
|
||||
}
|
||||
|
||||
void turned(bool clockwise) {
|
||||
if (IS_LAYER_ON(6)) {
|
||||
tap_code(clockwise ? KC_VOLU : KC_VOLD);
|
||||
} else if (IS_LAYER_ON(3)) {
|
||||
tap_code16(clockwise ? LCTL(KC_TAB) : LCTL(LSFT(KC_TAB)));
|
||||
} else if (IS_LAYER_ON(5)) {
|
||||
tap_code16(clockwise ? LGUI(KC_Y) : LGUI(KC_Z));
|
||||
} else {
|
||||
tap_code16(clockwise ? KC_PGDN : KC_PGUP);
|
||||
}
|
||||
}
|
||||
|
||||
void fix_encoder_action(matrix_row_t current_matrix[]) {
|
||||
matrix_row_t encoder_row = current_matrix[ENC_ROW];
|
||||
|
||||
if (encoder_row & (COL_SHIFTER << ENC_BUTTON_COL)) {
|
||||
encoderPressed = true;
|
||||
} else {
|
||||
// Only trigger click on release
|
||||
if (encoderPressed) {
|
||||
encoderPressed = false;
|
||||
clicked();
|
||||
}
|
||||
}
|
||||
|
||||
// Check which way the encoder is turned:
|
||||
bool colA = encoder_row & (COL_SHIFTER << ENC_A_COL);
|
||||
bool colB = encoder_row & (COL_SHIFTER << ENC_B_COL);
|
||||
|
||||
if (colA && colB) {
|
||||
colABPressed = true;
|
||||
} else if (colA) {
|
||||
if (colABPressed) {
|
||||
// A+B followed by A means clockwise
|
||||
colABPressed = false;
|
||||
turned(true);
|
||||
}
|
||||
} else if (colB) {
|
||||
if (colABPressed) {
|
||||
// A+B followed by B means counter-clockwise
|
||||
colABPressed = false;
|
||||
turned(false);
|
||||
}
|
||||
}
|
||||
current_matrix[ENC_ROW] = 0;
|
||||
}
|
||||
5
keyboards/cheapino/encoder.h
Normal file
5
keyboards/cheapino/encoder.h
Normal file
@@ -0,0 +1,5 @@
|
||||
//
|
||||
// Created by Thomas Haukland on 25/03/2023.
|
||||
//
|
||||
|
||||
void fix_encoder_action(matrix_row_t current_matrix[]);
|
||||
128
keyboards/cheapino/ghosting.c
Normal file
128
keyboards/cheapino/ghosting.c
Normal file
@@ -0,0 +1,128 @@
|
||||
//
|
||||
// Created by Thomas Haukland on 2024-05-05.
|
||||
//
|
||||
|
||||
#include "matrix.h"
|
||||
#include "quantum.h"
|
||||
#include "print.h"
|
||||
|
||||
// This is just to be able to declare constants as they appear in the qmk console
|
||||
#define rev(b) \
|
||||
((b & 1) << 15) | \
|
||||
((b & (1 << 1)) << 13) | \
|
||||
((b & (1 << 2)) << 11) | \
|
||||
((b & (1 << 3)) << 9) | \
|
||||
((b & (1 << 4)) << 7) | \
|
||||
((b & (1 << 5)) << 5) | \
|
||||
((b & (1 << 6)) << 3) | \
|
||||
((b & (1 << 7)) << 1) | \
|
||||
((b & (1 << 8)) >> 1) | \
|
||||
((b & (1 << 9)) >> 3) | \
|
||||
((b & (1 << 10)) >> 5) | \
|
||||
((b & (1 << 11)) >> 7) | \
|
||||
((b & (1 << 12)) >> 9) | \
|
||||
((b & (1 << 13)) >> 11) | \
|
||||
((b & (1 << 14)) >> 13) | \
|
||||
b >> 15
|
||||
|
||||
/* This is for debugging the matrix rows
|
||||
void printBits(uint16_t n)
|
||||
{
|
||||
long i;
|
||||
for (i = 15; i >= 0; i--) {
|
||||
if ((n & (1 << i)) != 0) {
|
||||
printf("1");
|
||||
}
|
||||
else {
|
||||
printf("0");
|
||||
}
|
||||
}
|
||||
printf("\n");
|
||||
}
|
||||
*/
|
||||
|
||||
bool bit_pattern_set(uint16_t number, uint16_t bitPattern) {
|
||||
return !(~number & bitPattern);
|
||||
}
|
||||
|
||||
void fix_ghosting_instance(
|
||||
matrix_row_t current_matrix[],
|
||||
unsigned short row_num_with_possible_error_cause,
|
||||
uint16_t possible_error_cause,
|
||||
unsigned short row_num_with_possible_error,
|
||||
uint16_t possible_error,
|
||||
uint16_t error_fix) {
|
||||
if (bit_pattern_set(current_matrix[row_num_with_possible_error_cause], possible_error_cause)) {
|
||||
if (bit_pattern_set(current_matrix[row_num_with_possible_error], possible_error)) {
|
||||
current_matrix[row_num_with_possible_error] = current_matrix[row_num_with_possible_error] ^ error_fix;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void fix_ghosting_column(
|
||||
matrix_row_t matrix[],
|
||||
uint16_t possible_error_cause,
|
||||
uint16_t possible_error,
|
||||
uint16_t error_fix) {
|
||||
// First the right side
|
||||
for (short i = 0; i<3; i++) {
|
||||
fix_ghosting_instance(matrix, i, possible_error_cause, (i+1)%3, possible_error, error_fix);
|
||||
fix_ghosting_instance(matrix, i, possible_error_cause, (i+2)%3, possible_error, error_fix);
|
||||
}
|
||||
|
||||
// Then exactly same procedure on the left side
|
||||
for (short i = 0; i<3; i++) {
|
||||
fix_ghosting_instance(matrix, i+4, possible_error_cause<<6, 4+((i+1)%3), possible_error<<6, error_fix<<6);
|
||||
fix_ghosting_instance(matrix, i+4, possible_error_cause<<6, 4+((i+2)%3), possible_error<<6, error_fix<<6);
|
||||
}
|
||||
}
|
||||
|
||||
// For QWERTY layout, key combo a+s+e also outputs q. This suppresses the q, and other similar ghosts
|
||||
// These are observed ghosts(following a pattern). TODO: need to fix this for v3
|
||||
// Might need to add 2 diodes(one in each direction) for every row, to increase voltage drop.
|
||||
void fix_ghosting(matrix_row_t matrix[]) {
|
||||
fix_ghosting_column(matrix,
|
||||
rev(0B0110000000000000),
|
||||
rev(0B1010000000000000),
|
||||
rev(0B0010000000000000));
|
||||
fix_ghosting_column(matrix,
|
||||
rev(0B0110000000000000),
|
||||
rev(0B0101000000000000),
|
||||
rev(0B0100000000000000));
|
||||
|
||||
fix_ghosting_column(matrix,
|
||||
rev(0B0001100000000000),
|
||||
rev(0B0010100000000000),
|
||||
rev(0B0000100000000000));
|
||||
fix_ghosting_column(matrix,
|
||||
rev(0B0001100000000000),
|
||||
rev(0B0001010000000000),
|
||||
rev(0B0001000000000000));
|
||||
|
||||
fix_ghosting_column(matrix,
|
||||
rev(0B1000010000000000),
|
||||
rev(0B1000100000000000),
|
||||
rev(0B1000000000000000));
|
||||
fix_ghosting_column(matrix,
|
||||
rev(0B1000010000000000),
|
||||
rev(0B0100010000000000),
|
||||
rev(0B0000010000000000));
|
||||
|
||||
fix_ghosting_column(matrix,
|
||||
rev(0B1001000000000000),
|
||||
rev(0B0101000000000000),
|
||||
rev(0B0001000000000000));
|
||||
fix_ghosting_column(matrix,
|
||||
rev(0B1001000000000000),
|
||||
rev(0B1010000000000000),
|
||||
rev(0B1000000000000000));
|
||||
|
||||
fix_ghosting_column(matrix,
|
||||
rev(0B0100100000000000),
|
||||
rev(0B0100010000000000),
|
||||
rev(0B0100000000000000));
|
||||
fix_ghosting_column(matrix,
|
||||
rev(0B0100100000000000),
|
||||
rev(0B1000100000000000),
|
||||
rev(0B0000100000000000));
|
||||
}
|
||||
5
keyboards/cheapino/ghosting.h
Normal file
5
keyboards/cheapino/ghosting.h
Normal file
@@ -0,0 +1,5 @@
|
||||
//
|
||||
// Created by Thomas Haukland on 2024-05-05.
|
||||
//
|
||||
|
||||
void fix_ghosting(matrix_row_t current_matrix[]);
|
||||
4
keyboards/cheapino/halconf.h
Normal file
4
keyboards/cheapino/halconf.h
Normal file
@@ -0,0 +1,4 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include_next <halconf.h>
|
||||
96
keyboards/cheapino/keyboard.json
Normal file
96
keyboards/cheapino/keyboard.json
Normal file
@@ -0,0 +1,96 @@
|
||||
{
|
||||
"manufacturer": "Arne Moerman",
|
||||
"keyboard_name": "Cheapino2",
|
||||
"maintainer": "tompi",
|
||||
"bootloader": "rp2040",
|
||||
"diode_direction": "ROW2COL",
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"command": false,
|
||||
"console": false,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true,
|
||||
"via": true,
|
||||
"vial": true
|
||||
},
|
||||
"community_layouts": ["split_3x5_3"],
|
||||
"matrix_pins": {
|
||||
"cols": [
|
||||
"GP6",
|
||||
"GP6",
|
||||
"GP5",
|
||||
"GP5",
|
||||
"GP4",
|
||||
"GP4",
|
||||
|
||||
"GP14",
|
||||
"GP14",
|
||||
"GP15",
|
||||
"GP15",
|
||||
"GP26",
|
||||
"GP26"
|
||||
],
|
||||
"rows": ["GP3", "GP1", "GP2", "GP0", "GP27", "GP28", "GP29", "GP8"]
|
||||
},
|
||||
"processor": "RP2040",
|
||||
"url": "",
|
||||
"usb": {
|
||||
"device_version": "1.0.1",
|
||||
"pid": "0x10B8",
|
||||
"vid": "0xFEE3",
|
||||
"force_nkro": false
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT_split_3x5_3": {
|
||||
"layout": [
|
||||
{ "matrix": [4, 10], "x": 0, "y": 0.25 },
|
||||
{ "matrix": [4, 9], "x": 1, "y": 0.125 },
|
||||
{ "matrix": [4, 8], "x": 2, "y": 0 },
|
||||
{ "matrix": [4, 7], "x": 3, "y": 0.125 },
|
||||
{ "matrix": [4, 6], "x": 4, "y": 0.25 },
|
||||
|
||||
{ "matrix": [0, 0], "x": 7, "y": 0.25 },
|
||||
{ "matrix": [0, 1], "x": 8, "y": 0.125 },
|
||||
{ "matrix": [0, 2], "x": 9, "y": 0 },
|
||||
{ "matrix": [0, 3], "x": 10, "y": 0.125 },
|
||||
{ "matrix": [0, 4], "x": 11, "y": 0.25 },
|
||||
|
||||
|
||||
{ "matrix": [5, 10], "x": 0, "y": 1.25 },
|
||||
{ "matrix": [5, 9], "x": 1, "y": 1.125 },
|
||||
{ "matrix": [5, 8], "x": 2, "y": 1 },
|
||||
{ "matrix": [5, 7], "x": 3, "y": 1.125 },
|
||||
{ "matrix": [5, 6], "x": 4, "y": 1.25 },
|
||||
|
||||
{ "matrix": [1, 0], "x": 7, "y": 1.25 },
|
||||
{ "matrix": [1, 1], "x": 8, "y": 1.125 },
|
||||
{ "matrix": [1, 2], "x": 9, "y": 1 },
|
||||
{ "matrix": [1, 3], "x": 10, "y": 1.125 },
|
||||
{ "matrix": [1, 4], "x": 11, "y": 1.25 },
|
||||
|
||||
|
||||
{ "matrix": [6, 10], "x": 0, "y": 2.25 },
|
||||
{ "matrix": [6, 9], "x": 1, "y": 2.125 },
|
||||
{ "matrix": [6, 8], "x": 2, "y": 2 },
|
||||
{ "matrix": [6, 7], "x": 3, "y": 2.125 },
|
||||
{ "matrix": [6, 6], "x": 4, "y": 2.25 },
|
||||
|
||||
{ "matrix": [2, 0], "x": 7, "y": 2.25 },
|
||||
{ "matrix": [2, 1], "x": 8, "y": 2.125 },
|
||||
{ "matrix": [2, 2], "x": 9, "y": 2 },
|
||||
{ "matrix": [2, 3], "x": 10, "y": 2.125 },
|
||||
{ "matrix": [2, 4], "x": 11, "y": 2.25 },
|
||||
|
||||
|
||||
{ "matrix": [6, 11], "x": 2.5, "y": 3.25 },
|
||||
{ "matrix": [5, 11], "x": 3.5, "y": 3.5 },
|
||||
{ "matrix": [4, 11], "x": 4.5, "y": 3.75 },
|
||||
|
||||
{ "matrix": [0, 5], "x": 6.5, "y": 3.75 },
|
||||
{ "matrix": [1, 5], "x": 7.5, "y": 3.5 },
|
||||
{ "matrix": [2, 5], "x": 8.5, "y": 3.25 }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
163
keyboards/cheapino/keymaps/default/keymap.json
Normal file
163
keyboards/cheapino/keymaps/default/keymap.json
Normal file
@@ -0,0 +1,163 @@
|
||||
{
|
||||
"version": 1,
|
||||
"notes": "Cheapino default keymap",
|
||||
"documentation": "\"This file is a QMK Configurator export. You can import this at <https://config.qmk.fm>. It can also be used directly with QMK's source code.\n\nTo setup your QMK environment check out the tutorial: <https://docs.qmk.fm/#/newbs>\n\nYou can convert this file to a keymap.c using this command: `qmk json2c {keymap}`\n\nYou can compile this keymap using this command: `qmk compile {keymap}`\"\n",
|
||||
"keyboard": "bastardkb/skeletyl/blackpill",
|
||||
"keymap": "default",
|
||||
"layout": "LAYOUT_split_3x5_3",
|
||||
"layers": [
|
||||
[
|
||||
"KC_Q",
|
||||
"KC_W",
|
||||
"KC_E",
|
||||
"KC_R",
|
||||
"KC_T",
|
||||
"KC_Y",
|
||||
"KC_U",
|
||||
"KC_I",
|
||||
"KC_O",
|
||||
"KC_P",
|
||||
"KC_A",
|
||||
"KC_S",
|
||||
"KC_D",
|
||||
"KC_F",
|
||||
"KC_G",
|
||||
"KC_H",
|
||||
"KC_J",
|
||||
"KC_K",
|
||||
"KC_L",
|
||||
"KC_SCLN",
|
||||
"KC_Z",
|
||||
"KC_X",
|
||||
"KC_C",
|
||||
"KC_V",
|
||||
"KC_B",
|
||||
"KC_N",
|
||||
"KC_M",
|
||||
"KC_COMM",
|
||||
"KC_DOT",
|
||||
"KC_SLSH",
|
||||
"KC_LGUI",
|
||||
"KC_SPC",
|
||||
"MO(1)",
|
||||
"MO(2)",
|
||||
"KC_ENT",
|
||||
"KC_RALT"
|
||||
],
|
||||
[
|
||||
"KC_1",
|
||||
"KC_2",
|
||||
"KC_3",
|
||||
"KC_4",
|
||||
"KC_5",
|
||||
"KC_6",
|
||||
"KC_7",
|
||||
"KC_8",
|
||||
"KC_9",
|
||||
"KC_0",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_LEFT",
|
||||
"KC_DOWN",
|
||||
"KC_UP",
|
||||
"KC_RGHT",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_LGUI",
|
||||
"KC_SPC",
|
||||
"KC_TRNS",
|
||||
"MO(3)",
|
||||
"KC_ENT",
|
||||
"KC_RALT"
|
||||
],
|
||||
[
|
||||
"KC_EXLM",
|
||||
"KC_AT",
|
||||
"KC_HASH",
|
||||
"KC_DLR",
|
||||
"KC_PERC",
|
||||
"KC_CIRC",
|
||||
"KC_AMPR",
|
||||
"KC_ASTR",
|
||||
"KC_LPRN",
|
||||
"KC_RPRN",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_MINS",
|
||||
"KC_EQL",
|
||||
"KC_LBRC",
|
||||
"KC_RBRC",
|
||||
"KC_BSLS",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_UNDS",
|
||||
"KC_PLUS",
|
||||
"KC_LCBR",
|
||||
"KC_RCBR",
|
||||
"KC_PIPE",
|
||||
"KC_LGUI",
|
||||
"KC_SPC",
|
||||
"MO(3)",
|
||||
"KC_TRNS",
|
||||
"KC_ENT",
|
||||
"KC_RALT"
|
||||
],
|
||||
[
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"RGB_HUI",
|
||||
"RGB_SAI",
|
||||
"RGB_VAI",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"RGB_HUD",
|
||||
"RGB_SAD",
|
||||
"RGB_VAD",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_LGUI",
|
||||
"KC_SPC",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_ENT",
|
||||
"KC_RALT"
|
||||
]
|
||||
],
|
||||
"author": ""
|
||||
}
|
||||
51
keyboards/cheapino/keymaps/lars/config.h
Normal file
51
keyboards/cheapino/keymaps/lars/config.h
Normal file
@@ -0,0 +1,51 @@
|
||||
/*
|
||||
Copyright 2020 Pierre Chevalier <pierrechevalier83@gmail.com>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
// Set the mouse settings to a comfortable speed/accuracy trade-off,
|
||||
// assuming a screen refresh rate of 60 Htz or higher
|
||||
// The default is 50. This makes the mouse ~3 times faster and more accurate
|
||||
#define MOUSEKEY_INTERVAL 16
|
||||
// The default is 20. Since we made the mouse about 3 times faster with the previous setting,
|
||||
// give it more time to accelerate to max speed to retain precise control over short distances.
|
||||
#define MOUSEKEY_TIME_TO_MAX 40
|
||||
// The default is 300. Let's try and make this as low as possible while keeping the cursor responsive
|
||||
#define MOUSEKEY_DELAY 100
|
||||
// It makes sense to use the same delay for the mouseweel
|
||||
#define MOUSEKEY_WHEEL_DELAY 100
|
||||
// The default is 100
|
||||
#define MOUSEKEY_WHEEL_INTERVAL 50
|
||||
// The default is 40
|
||||
#define MOUSEKEY_WHEEL_TIME_TO_MAX 100
|
||||
|
||||
// Pick good defaults for enabling homerow modifiers
|
||||
#undef TAPPING_TERM
|
||||
#define TAPPING_TERM 200
|
||||
// #define PERMISSIVE_HOLD
|
||||
|
||||
#define TAPPING_FORCE_HOLD
|
||||
//#define RETRO_TAPPING
|
||||
|
||||
// Underglow configuration
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
#define RGBLIGHT_ANIMATIONS
|
||||
#define RGBLIGHT_HUE_STEP 8
|
||||
#define RGBLIGHT_SAT_STEP 8
|
||||
#define RGBLIGHT_VAL_STEP 8
|
||||
#endif
|
||||
|
||||
//#define UNICODE_SELECTED_MODES UC_MAC
|
||||
125
keyboards/cheapino/keymaps/lars/keymap.json
Normal file
125
keyboards/cheapino/keymaps/lars/keymap.json
Normal file
@@ -0,0 +1,125 @@
|
||||
{
|
||||
"version": 1,
|
||||
"notes": "My awesome keymap",
|
||||
"documentation": "\"This file is a QMK Configurator export. You can import this at <https://config.qmk.fm>. It can also be used directly with QMK's source code.\n\nTo setup your QMK environment check out the tutorial: <https://docs.qmk.fm/#/newbs>\n\nYou can convert this file to a keymap.c using this command: `qmk json2c {keymap}`\n\nYou can compile this keymap using this command: `qmk compile {keymap}`\"\n",
|
||||
"keyboard": "bastardkb/skeletyl/blackpill",
|
||||
"keymap": "default",
|
||||
"layout": "LAYOUT_split_3x5_3",
|
||||
"layers": [
|
||||
[
|
||||
"KC_Q",
|
||||
"KC_W",
|
||||
"KC_F",
|
||||
"KC_P",
|
||||
"KC_B",
|
||||
"KC_J",
|
||||
"KC_L",
|
||||
"KC_U",
|
||||
"KC_Y",
|
||||
"KC_SCLN",
|
||||
"KC_A",
|
||||
"KC_R",
|
||||
"KC_S",
|
||||
"KC_T",
|
||||
"KC_G",
|
||||
"KC_M",
|
||||
"KC_N",
|
||||
"KC_E",
|
||||
"KC_I",
|
||||
"KC_O",
|
||||
"LSFT_T(KC_Z)",
|
||||
"LCTL_T(KC_X)",
|
||||
"RALT_T(KC_C)",
|
||||
"KC_D",
|
||||
"KC_V",
|
||||
"KC_K",
|
||||
"KC_H",
|
||||
"RALT_T(KC_COMM)",
|
||||
"LCTL_T(KC_DOT)",
|
||||
"LSFT_T(KC_SLSH)",
|
||||
"TO(1)",
|
||||
"KC_BSPC",
|
||||
"KC_TAB",
|
||||
"KC_LGUI",
|
||||
"KC_SPC",
|
||||
"KC_ENT"
|
||||
],
|
||||
[
|
||||
"KC_TRNS",
|
||||
"KC_7",
|
||||
"KC_8",
|
||||
"KC_9",
|
||||
"KC_TRNS",
|
||||
"KC_QUOT",
|
||||
"KC_MINS",
|
||||
"KC_EQL",
|
||||
"KC_ASTR",
|
||||
"KC_CIRC",
|
||||
"KC_TRNS",
|
||||
"KC_4",
|
||||
"KC_5",
|
||||
"KC_6",
|
||||
"KC_0",
|
||||
"KC_BSLS",
|
||||
"KC_LPRN",
|
||||
"KC_RPRN",
|
||||
"KC_LBRC",
|
||||
"KC_RBRC",
|
||||
"KC_LSFT",
|
||||
"KC_1",
|
||||
"KC_2",
|
||||
"KC_3",
|
||||
"KC_TRNS",
|
||||
"KC_PIPE",
|
||||
"KC_GRV",
|
||||
"KC_LALT",
|
||||
"KC_LCTL",
|
||||
"KC_RSFT",
|
||||
"TO(2)",
|
||||
"KC_BSPC",
|
||||
"KC_TAB",
|
||||
"KC_DEL",
|
||||
"TO(0)",
|
||||
"KC_ENT"
|
||||
],
|
||||
[
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_PGUP",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"ANY(UC(0xE6))",
|
||||
"ANY(UC(0xF8))",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_LEFT",
|
||||
"KC_UP",
|
||||
"KC_DOWN",
|
||||
"KC_RGHT",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_LGUI",
|
||||
"ANY(UC(0xE5))",
|
||||
"LCTL(KC_LALT)",
|
||||
"LCA(KC_LSFT)",
|
||||
"KC_TRNS",
|
||||
"KC_HOME",
|
||||
"KC_PGDN",
|
||||
"KC_END",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_RBRC",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TAB",
|
||||
"KC_DEL",
|
||||
"TO(0)",
|
||||
"KC_TRNS"
|
||||
]
|
||||
],
|
||||
"author": "thomas.haukland@gmail.com"
|
||||
}
|
||||
239
keyboards/cheapino/keymaps/thearne4/keymap.json
Normal file
239
keyboards/cheapino/keymaps/thearne4/keymap.json
Normal file
@@ -0,0 +1,239 @@
|
||||
{
|
||||
"documentation": "\"This file is a QMK Configurator export. It is based around Windows being set to azerty-be . You can import this at <https://config.qmk.fm>. It can also be used directly with QMK's source code.\n\nTo setup your QMK environment check out the tutorial: <https://docs.qmk.fm/#/newbs>\n\nYou can convert this file to a keymap.c using this command: `qmk json2c {keymap}`\n\nYou can compile this keymap using this command: `qmk compile {keymap}`\"\n",
|
||||
"notes": "TheArne4 keymap",
|
||||
"version": 1,
|
||||
"keyboard": "bastardkb/skeletyl/blackpill",
|
||||
"keymap": "thearne4",
|
||||
"layout": "LAYOUT_split_3x5_3",
|
||||
"layers": [
|
||||
[
|
||||
"KC_Q",
|
||||
"KC_W",
|
||||
"KC_E",
|
||||
"KC_R",
|
||||
"KC_T",
|
||||
"KC_Y",
|
||||
"KC_U",
|
||||
"KC_I",
|
||||
"KC_O",
|
||||
"KC_P",
|
||||
"LGUI_T(KC_A)",
|
||||
"LALT_T(KC_S)",
|
||||
"LSFT_T(KC_D)",
|
||||
"LCTL_T(KC_F)",
|
||||
"KC_G",
|
||||
"KC_H",
|
||||
"LCTL_T(KC_J)",
|
||||
"RSFT_T(KC_K)",
|
||||
"LALT_T(KC_L)",
|
||||
"LGUI_T(KC_SCLN)",
|
||||
"KC_Z",
|
||||
"KC_X",
|
||||
"KC_C",
|
||||
"KC_V",
|
||||
"LT(5,KC_B)",
|
||||
"LT(1,KC_N)",
|
||||
"KC_M",
|
||||
"KC_COMM",
|
||||
"KC_DOT",
|
||||
"KC_SLSH",
|
||||
"LT(4,KC_ESC)",
|
||||
"LT(3,KC_ENT)",
|
||||
"LT(2,KC_TAB)",
|
||||
"LT(2,KC_BSPC)",
|
||||
"LT(3,KC_SPC)",
|
||||
"LT(4,KC_DEL)"
|
||||
],
|
||||
[
|
||||
"KC_A",
|
||||
"KC_Z",
|
||||
"KC_F",
|
||||
"KC_P",
|
||||
"KC_B",
|
||||
"KC_J",
|
||||
"KC_L",
|
||||
"KC_U",
|
||||
"KC_Y",
|
||||
"KC_SLSH",
|
||||
"LGUI_T(KC_Q)",
|
||||
"LALT_T(KC_R)",
|
||||
"LSFT(KC_S)",
|
||||
"LCTL(KC_T)",
|
||||
"KC_G",
|
||||
"KC_SCLN",
|
||||
"RCTL_T(KC_N)",
|
||||
"RSFT_T(KC_E)",
|
||||
"LALT_T(KC_I)",
|
||||
"RGUI_T(KC_O)",
|
||||
"KC_W",
|
||||
"KC_X",
|
||||
"KC_C",
|
||||
"KC_D",
|
||||
"RALT_T(KC_V)",
|
||||
"RALT_T(KC_K)",
|
||||
"KC_H",
|
||||
"KC_M",
|
||||
"KC_COMM",
|
||||
"KC_DOT",
|
||||
"LT(4,KC_ESC)",
|
||||
"LT(3,KC_ENT)",
|
||||
"LT(2,KC_TAB)",
|
||||
"LT(2,KC_BSPC)",
|
||||
"LT(3,KC_SPC)",
|
||||
"LT(4,KC_DEL)"
|
||||
],
|
||||
[
|
||||
"KC_F1",
|
||||
"KC_F2",
|
||||
"KC_F3",
|
||||
"KC_F4",
|
||||
"KC_F5",
|
||||
"KC_F6",
|
||||
"KC_F7",
|
||||
"KC_F8",
|
||||
"KC_F9",
|
||||
"KC_F10",
|
||||
"LGUI_T(KC_1)",
|
||||
"LALT_T(KC_2)",
|
||||
"LSFT_T(KC_3)",
|
||||
"LCTL_T(KC_4)",
|
||||
"KC_5",
|
||||
"KC_6",
|
||||
"RCTL_T(KC_7)",
|
||||
"RSFT_T(KC_8)",
|
||||
"LALT_T(KC_9)",
|
||||
"RGUI_T(KC_0)",
|
||||
"KC_GRV",
|
||||
"KC_LBRC",
|
||||
"KC_RBRC",
|
||||
"KC_QUOT",
|
||||
"RALT_T(KC_NUHS)",
|
||||
"RALT_T(KC_CAPS)",
|
||||
"KC_MINS",
|
||||
"KC_EQL",
|
||||
"KC_F11",
|
||||
"KC_F12",
|
||||
"KC_ESC",
|
||||
"KC_ENT",
|
||||
"KC_TAB",
|
||||
"KC_BSPC",
|
||||
"KC_SPC",
|
||||
"KC_DEL"
|
||||
],
|
||||
[
|
||||
"LSFT(KC_NUBS)",
|
||||
"RALT(KC_1)",
|
||||
"RALT(KC_LBRC)",
|
||||
"RALT(KC_RBRC)",
|
||||
"RALT(KC_NUBS)",
|
||||
"KC_INS",
|
||||
"KC_HOME",
|
||||
"KC_UP",
|
||||
"KC_PGUP",
|
||||
"KC_PAUS",
|
||||
"LGUI_T(KC_NUBS)",
|
||||
"LALT_T(KC_1)",
|
||||
"LSFT_T(KC_5)",
|
||||
"LCTL_T(KC_MINS)",
|
||||
"RALT(KC_2)",
|
||||
"KC_HASH",
|
||||
"KC_LEFT",
|
||||
"KC_DOWN",
|
||||
"KC_RGHT",
|
||||
"KC_SCRL",
|
||||
"RALT(KC_QUOT)",
|
||||
"RALT(KC_NUHS)",
|
||||
"RALT(KC_9)",
|
||||
"RALT(KC_0)",
|
||||
"RALT(KC_3)",
|
||||
"RSFT(KC_RBRC)",
|
||||
"KC_QUOT",
|
||||
"RSFT(KC_EQL)",
|
||||
"KC_PGDN",
|
||||
"TO(5)",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_NO"
|
||||
],
|
||||
[
|
||||
"KC_WBAK",
|
||||
"MS_WHLU",
|
||||
"MS_UP",
|
||||
"MS_BTN2",
|
||||
"KC_WFWD",
|
||||
"KC_PAST",
|
||||
"KC_P7",
|
||||
"KC_P8",
|
||||
"KC_P9",
|
||||
"KC_PPLS",
|
||||
"MS_WHLL",
|
||||
"MS_LEFT",
|
||||
"MS_BTN1",
|
||||
"MS_RGHT",
|
||||
"MS_WHLR",
|
||||
"KC_PSLS",
|
||||
"KC_P4",
|
||||
"KC_P5",
|
||||
"KC_P6",
|
||||
"KC_PMNS",
|
||||
"KC_TRNS",
|
||||
"MS_WHLD",
|
||||
"MS_DOWN",
|
||||
"MS_BTN3",
|
||||
"TO(0)",
|
||||
"KC_P0",
|
||||
"KC_P1",
|
||||
"KC_P2",
|
||||
"KC_P3",
|
||||
"KC_PDOT",
|
||||
"KC_ESC",
|
||||
"KC_ENT",
|
||||
"KC_TAB",
|
||||
"KC_BSPC",
|
||||
"KC_SPC",
|
||||
"KC_DEL"
|
||||
],
|
||||
[
|
||||
"KC_F13",
|
||||
"KC_F14",
|
||||
"KC_F15",
|
||||
"KC_F16",
|
||||
"KC_F17",
|
||||
"KC_F18",
|
||||
"KC_F19",
|
||||
"KC_F20",
|
||||
"KC_F21",
|
||||
"KC_F22",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_MSTP",
|
||||
"KC_MPLY",
|
||||
"KC_VOLU",
|
||||
"KC_MUTE",
|
||||
"KC_NO",
|
||||
"TO(4)",
|
||||
"KC_NO",
|
||||
"KC_CALC",
|
||||
"KC_MAIL",
|
||||
"TO(0)",
|
||||
"KC_MPRV",
|
||||
"KC_MNXT",
|
||||
"KC_VOLD",
|
||||
"KC_F23",
|
||||
"KC_F24",
|
||||
"KC_ESC",
|
||||
"KC_ENT",
|
||||
"KC_TAB",
|
||||
"KC_BSPC",
|
||||
"KC_SPC",
|
||||
"KC_DEL"
|
||||
]
|
||||
],
|
||||
"author": "cheapino@arnemoerman.be"
|
||||
}
|
||||
277
keyboards/cheapino/keymaps/tompi/keymap.json
Normal file
277
keyboards/cheapino/keymaps/tompi/keymap.json
Normal file
@@ -0,0 +1,277 @@
|
||||
{
|
||||
"version": 1,
|
||||
"notes": "Tompi keymap",
|
||||
"documentation": "\"This file is a QMK Configurator export. You can import this at <https://config.qmk.fm>. It can also be used directly with QMK's source code.\n\nTo setup your QMK environment check out the tutorial: <https://docs.qmk.fm/#/newbs>\n\nYou can convert this file to a keymap.c using this command: `qmk json2c {keymap}`\n\nYou can compile this keymap using this command: `qmk compile {keymap}`\"\n",
|
||||
"keyboard": "bastardkb/skeletyl/blackpill",
|
||||
"keymap": "tompi",
|
||||
"layout": "LAYOUT_split_3x5_3",
|
||||
"layers": [
|
||||
[
|
||||
"KC_Q",
|
||||
"KC_W",
|
||||
"KC_F",
|
||||
"KC_P",
|
||||
"KC_B",
|
||||
"KC_J",
|
||||
"KC_L",
|
||||
"KC_U",
|
||||
"KC_Y",
|
||||
"KC_SCLN",
|
||||
"LGUI_T(KC_A)",
|
||||
"LALT_T(KC_R)",
|
||||
"LCTL_T(KC_S)",
|
||||
"LSFT_T(KC_T)",
|
||||
"KC_G",
|
||||
"KC_M",
|
||||
"RSFT_T(KC_N)",
|
||||
"LCTL_T(KC_E)",
|
||||
"LALT_T(KC_I)",
|
||||
"LGUI_T(KC_O)",
|
||||
"KC_Z",
|
||||
"KC_X",
|
||||
"KC_C",
|
||||
"KC_D",
|
||||
"LT(5,KC_V)",
|
||||
"LT(1,KC_K)",
|
||||
"KC_H",
|
||||
"KC_COMM",
|
||||
"KC_DOT",
|
||||
"KC_SLSH",
|
||||
"LT(6,KC_ESC)",
|
||||
"LT(3,KC_SPC)",
|
||||
"LT(5,KC_TAB)",
|
||||
"LT(1,KC_DEL)",
|
||||
"LT(2,KC_BSPC)",
|
||||
"LT(4,KC_ENT)"
|
||||
],
|
||||
[
|
||||
"KC_VOLU",
|
||||
"KC_WH_L",
|
||||
"KC_NO",
|
||||
"KC_WH_U",
|
||||
"KC_WH_R",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"QK_CLEAR_EEPROM",
|
||||
"ANY(QK_RBT)",
|
||||
"KC_NO",
|
||||
"KC_MS_L",
|
||||
"KC_MS_U",
|
||||
"KC_MS_R",
|
||||
"KC_MUTE",
|
||||
"KC_NO",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_VOLD",
|
||||
"KC_MNXT",
|
||||
"KC_MS_D",
|
||||
"KC_WH_D",
|
||||
"KC_MPLY",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO"
|
||||
],
|
||||
[
|
||||
"NK_TOGG",
|
||||
"KC_HOME",
|
||||
"KC_DEL",
|
||||
"KC_PGUP",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_LEFT",
|
||||
"KC_UP",
|
||||
"KC_RGHT",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_NO",
|
||||
"KC_END",
|
||||
"KC_DOWN",
|
||||
"KC_PGDN",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_BTN1",
|
||||
"KC_BTN2",
|
||||
"KC_BTN3",
|
||||
"KC_BTN4",
|
||||
"KC_NO",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO"
|
||||
],
|
||||
[
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_WH_U",
|
||||
"KC_AT",
|
||||
"KC_UNDS",
|
||||
"KC_PIPE",
|
||||
"KC_GRV",
|
||||
"KC_PERC",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"RGB_TOG",
|
||||
"KC_HASH",
|
||||
"KC_TAB",
|
||||
"KC_EXLM",
|
||||
"KC_DQUO",
|
||||
"KC_DLR",
|
||||
"KC_BTN4",
|
||||
"KC_BTN3",
|
||||
"KC_BTN2",
|
||||
"KC_BTN1",
|
||||
"KC_WH_D",
|
||||
"KC_TILD",
|
||||
"KC_QUOT",
|
||||
"KC_BSLS",
|
||||
"KC_SLSH",
|
||||
"KC_AMPR",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_NO"
|
||||
],
|
||||
[
|
||||
"KC_GRV",
|
||||
"KC_CIRC",
|
||||
"KC_LT",
|
||||
"KC_GT",
|
||||
"KC_SCLN",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_LCBR",
|
||||
"KC_RCBR",
|
||||
"KC_LPRN",
|
||||
"KC_RPRN",
|
||||
"KC_AT",
|
||||
"KC_NO",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_MINS",
|
||||
"KC_EXLM",
|
||||
"KC_LBRC",
|
||||
"KC_RBRC",
|
||||
"KC_TRNS",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_NO",
|
||||
"KC_NO"
|
||||
],
|
||||
[
|
||||
"ANY(QK_RBT)",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_F7",
|
||||
"KC_F8",
|
||||
"KC_F9",
|
||||
"KC_F10",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_F4",
|
||||
"KC_F5",
|
||||
"KC_F6",
|
||||
"KC_F11",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_F1",
|
||||
"KC_F2",
|
||||
"KC_F3",
|
||||
"KC_F12",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS"
|
||||
],
|
||||
[
|
||||
"RGB_SPI",
|
||||
"RGB_VAI",
|
||||
"RGB_SAI",
|
||||
"RGB_HUI",
|
||||
"RGB_MOD",
|
||||
"KC_PPLS",
|
||||
"KC_7",
|
||||
"KC_8",
|
||||
"KC_9",
|
||||
"KC_PAST",
|
||||
"EE_CLR",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"RGB_TOG",
|
||||
"KC_PMNS",
|
||||
"KC_4",
|
||||
"KC_5",
|
||||
"KC_6",
|
||||
"KC_PSLS",
|
||||
"RGB_SPD",
|
||||
"RGB_VAD",
|
||||
"RGB_SAD",
|
||||
"RGB_HUD",
|
||||
"RGB_RMOD",
|
||||
"KC_PDOT",
|
||||
"KC_1",
|
||||
"KC_2",
|
||||
"KC_3",
|
||||
"KC_PEQL",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_0",
|
||||
"KC_COMM",
|
||||
"KC_0"
|
||||
]
|
||||
],
|
||||
"author": "thomas.haukland@gmail.com"
|
||||
}
|
||||
163
keyboards/cheapino/keymaps/via/keymap.json
Normal file
163
keyboards/cheapino/keymaps/via/keymap.json
Normal file
@@ -0,0 +1,163 @@
|
||||
{
|
||||
"version": 1,
|
||||
"notes": "Cheapino default keymap",
|
||||
"documentation": "\"This file is a QMK Configurator export. You can import this at <https://config.qmk.fm>. It can also be used directly with QMK's source code.\n\nTo setup your QMK environment check out the tutorial: <https://docs.qmk.fm/#/newbs>\n\nYou can convert this file to a keymap.c using this command: `qmk json2c {keymap}`\n\nYou can compile this keymap using this command: `qmk compile {keymap}`\"\n",
|
||||
"keyboard": "bastardkb/skeletyl/blackpill",
|
||||
"keymap": "via",
|
||||
"layout": "LAYOUT_split_3x5_3",
|
||||
"layers": [
|
||||
[
|
||||
"KC_Q",
|
||||
"KC_W",
|
||||
"KC_E",
|
||||
"KC_R",
|
||||
"KC_T",
|
||||
"KC_Y",
|
||||
"KC_U",
|
||||
"KC_I",
|
||||
"KC_O",
|
||||
"KC_P",
|
||||
"LGUI_T(KC_A)",
|
||||
"LALT_T(KC_S)",
|
||||
"LCTL_T(KC_D)",
|
||||
"LSFT_T(KC_F)",
|
||||
"KC_G",
|
||||
"KC_H",
|
||||
"RSFT_T(KC_J)",
|
||||
"LCTL_T(KC_K)",
|
||||
"LALT_T(KC_L)",
|
||||
"LGUI_T(KC_SCLN)",
|
||||
"KC_Z",
|
||||
"KC_X",
|
||||
"KC_C",
|
||||
"KC_V",
|
||||
"LT(5,KC_B)",
|
||||
"LT(1,KC_N)",
|
||||
"KC_M",
|
||||
"KC_COMM",
|
||||
"KC_DOT",
|
||||
"KC_SLSH",
|
||||
"LT(6,KC_ESC)",
|
||||
"LT(3,KC_SPC)",
|
||||
"LT(5,KC_TAB)",
|
||||
"LT(1,KC_DEL)",
|
||||
"LT(2,KC_BSPC)",
|
||||
"LT(4,KC_ENT)"
|
||||
],
|
||||
[
|
||||
"KC_VOLU",
|
||||
"KC_WH_L",
|
||||
"KC_MS_U",
|
||||
"KC_WH_U",
|
||||
"KC_WH_R",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"ANY(QK_RBT)",
|
||||
"KC_MS_L",
|
||||
"KC_BTN2",
|
||||
"KC_BTN1",
|
||||
"KC_MS_R",
|
||||
"KC_MUTE",
|
||||
"KC_NO",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_VOLD",
|
||||
"KC_MNXT",
|
||||
"KC_MS_D",
|
||||
"KC_WH_D",
|
||||
"KC_MPLY",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO"
|
||||
],
|
||||
[
|
||||
"KC_NO",
|
||||
"KC_HOME",
|
||||
"KC_DEL",
|
||||
"KC_PGUP",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_LEFT",
|
||||
"KC_UP",
|
||||
"KC_RGHT",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_NO",
|
||||
"KC_END",
|
||||
"KC_DOWN",
|
||||
"KC_PGDN",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_BTN1",
|
||||
"KC_BTN2",
|
||||
"KC_BTN3",
|
||||
"KC_BTN4",
|
||||
"KC_NO",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO"
|
||||
],
|
||||
[
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_WH_U",
|
||||
"KC_AT",
|
||||
"KC_UNDS",
|
||||
"KC_PIPE",
|
||||
"KC_GRV",
|
||||
"KC_PERC",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"RGB_TOG",
|
||||
"KC_HASH",
|
||||
"KC_TAB",
|
||||
"KC_EXLM",
|
||||
"KC_DQUO",
|
||||
"KC_DLR",
|
||||
"KC_BTN4",
|
||||
"KC_BTN3",
|
||||
"KC_BTN2",
|
||||
"KC_BTN1",
|
||||
"KC_WH_D",
|
||||
"KC_TILD",
|
||||
"KC_QUOT",
|
||||
"KC_BSLS",
|
||||
"KC_SLSH",
|
||||
"KC_AMPR",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_NO"
|
||||
]
|
||||
],
|
||||
"author": "thomas.haukland@gmail.com"
|
||||
}
|
||||
5
keyboards/cheapino/keymaps/vial/config.h
Normal file
5
keyboards/cheapino/keymaps/vial/config.h
Normal file
@@ -0,0 +1,5 @@
|
||||
#pragma once
|
||||
|
||||
#define VIAL_KEYBOARD_UID {0x2B, 0x7E, 0x15, 0x16, 0x28, 0xAE, 0xD2, 0xA6}
|
||||
#define VIAL_UNLOCK_COMBO_ROWS {0, 0}
|
||||
#define VIAL_UNLOCK_COMBO_COLS {0, 1}
|
||||
49
keyboards/cheapino/keymaps/vial/keymap.json
Normal file
49
keyboards/cheapino/keymaps/vial/keymap.json
Normal file
@@ -0,0 +1,49 @@
|
||||
{
|
||||
"documentation": "\"This file is a QMK Configurator export. It is based around Windows being set to azerty-be . You can import this at <https://config.qmk.fm>. It can also be used directly with QMK's source code.\n\nTo setup your QMK environment check out the tutorial: <https://docs.qmk.fm/#/newbs>\n\nYou can convert this file to a keymap.c using this command: `qmk json2c {keymap}`\n\nYou can compile this keymap using this command: `qmk compile {keymap}`\"\n",
|
||||
"notes": "TheArne4 keymap",
|
||||
"version": 1,
|
||||
"keyboard": "bastardkb/skeletyl/blackpill",
|
||||
"keymap": "vial",
|
||||
"layout": "LAYOUT_split_3x5_3",
|
||||
"layers": [
|
||||
[
|
||||
"KC_Q",
|
||||
"KC_W",
|
||||
"KC_E",
|
||||
"KC_R",
|
||||
"KC_T",
|
||||
"KC_Y",
|
||||
"KC_U",
|
||||
"KC_I",
|
||||
"KC_O",
|
||||
"KC_P",
|
||||
"LGUI_T(KC_A)",
|
||||
"LALT_T(KC_S)",
|
||||
"LSFT_T(KC_D)",
|
||||
"LCTL_T(KC_F)",
|
||||
"KC_G",
|
||||
"KC_H",
|
||||
"LCTL_T(KC_J)",
|
||||
"RSFT_T(KC_K)",
|
||||
"LALT_T(KC_L)",
|
||||
"LGUI_T(KC_SCLN)",
|
||||
"KC_Z",
|
||||
"KC_X",
|
||||
"KC_C",
|
||||
"KC_V",
|
||||
"RALT_T(KC_B)",
|
||||
"RALT_T(KC_N)",
|
||||
"KC_M",
|
||||
"KC_COMM",
|
||||
"KC_DOT",
|
||||
"KC_SLSH",
|
||||
"KC_ESC",
|
||||
"KC_ENT",
|
||||
"KC_TAB",
|
||||
"KC_BSPC",
|
||||
"KC_SPC",
|
||||
"KC_DEL"
|
||||
]
|
||||
],
|
||||
"author": "cheapino@arnemoerman.be"
|
||||
}
|
||||
18
keyboards/cheapino/keymaps/vial/vial.json
Normal file
18
keyboards/cheapino/keymaps/vial/vial.json
Normal file
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"name": "TheArne4 Cheapino2",
|
||||
"vendorId": "0xFEE3",
|
||||
"productId": "0x10B8",
|
||||
"lighting": "vialrgb",
|
||||
"matrix": {
|
||||
"rows": 8,
|
||||
"cols": 12
|
||||
},
|
||||
"layouts": {
|
||||
"keymap": [
|
||||
["0,0", "0,1", "0,2", "0,3", "0,4", {"x": 2}, "4,10", "4,9", "4,8", "4,7", "4,6"],
|
||||
["1,0", "1,1", "1,2", "1,3", "1,4", {"x": 2}, "5,10", "5,9", "5,8", "5,7", "5,6"],
|
||||
["2,0", "2,1", "2,2", "2,3", "2,4", {"x": 2}, "6,10", "6,9", "6,8", "6,7", "6,6"],
|
||||
[{"x": 1.5}, "0,5", "1,5", "2,5", {"x": 1}, "6,11", "5,11", "4,11"]
|
||||
]
|
||||
}
|
||||
}
|
||||
152
keyboards/cheapino/matrix.c
Normal file
152
keyboards/cheapino/matrix.c
Normal file
@@ -0,0 +1,152 @@
|
||||
/*
|
||||
Copyright 2012 Jun Wako <wakojun@gmail.com>
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Copied from here: https://github.com/e3w2q/qmk_firmware/blob/762fe3e0a7cbea768245a75520f06ff5a2f00b9f/keyboards/2x3test/matrix.c
|
||||
*/
|
||||
|
||||
/*
|
||||
* scan matrix
|
||||
*/
|
||||
#include <stdint.h>
|
||||
#include <stdbool.h>
|
||||
#include "wait.h"
|
||||
#include "util.h"
|
||||
#include "matrix.h"
|
||||
#include "config.h"
|
||||
#include "quantum.h"
|
||||
#include "debounce.h"
|
||||
#include "encoder.h"
|
||||
#include "ghosting.h"
|
||||
#include "print.h"
|
||||
|
||||
// How long the scanning code waits for changed io to settle.
|
||||
// Adjust from default 30 to weigh up for increased time spent ghost-hunting.
|
||||
// (the rp2040 does not seem to have any problems with this value...)
|
||||
#define MATRIX_IO_DELAY 25
|
||||
|
||||
#define COL_SHIFTER ((uint16_t)1)
|
||||
|
||||
static const pin_t row_pins[] = MATRIX_ROW_PINS;
|
||||
static const pin_t col_pins[] = MATRIX_COL_PINS;
|
||||
static matrix_row_t previous_matrix[MATRIX_ROWS];
|
||||
|
||||
static void select_row(uint8_t row) {
|
||||
setPinOutput(row_pins[row]);
|
||||
writePinLow(row_pins[row]);
|
||||
}
|
||||
|
||||
static void unselect_row(uint8_t row) { setPinInputHigh(row_pins[row]); }
|
||||
|
||||
static void unselect_rows(void) {
|
||||
for (uint8_t x = 0; x < MATRIX_ROWS; x++) {
|
||||
setPinInputHigh(row_pins[x]);
|
||||
}
|
||||
}
|
||||
|
||||
static void select_col(uint8_t col) {
|
||||
setPinOutput(col_pins[col]);
|
||||
writePinLow(col_pins[col]);
|
||||
}
|
||||
|
||||
static void unselect_col(uint8_t col) {
|
||||
setPinInputHigh(col_pins[col]);
|
||||
}
|
||||
|
||||
static void unselect_cols(void) {
|
||||
for (uint8_t x = 0; x < MATRIX_COLS/2; x++) {
|
||||
setPinInputHigh(col_pins[x*2]);
|
||||
}
|
||||
}
|
||||
|
||||
static void read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) {
|
||||
// Select row and wait for row selection to stabilize
|
||||
select_row(current_row);
|
||||
wait_us(MATRIX_IO_DELAY);
|
||||
|
||||
// For each col...
|
||||
for (uint8_t col_index = 0; col_index < MATRIX_COLS / 2; col_index++) {
|
||||
uint16_t column_index_bitmask = COL_SHIFTER << ((col_index * 2) + 1);
|
||||
// Check row pin state
|
||||
if (readPin(col_pins[col_index*2])) {
|
||||
// Pin HI, clear col bit
|
||||
current_matrix[current_row] &= ~column_index_bitmask;
|
||||
} else {
|
||||
// Pin LO, set col bit
|
||||
current_matrix[current_row] |= column_index_bitmask;
|
||||
}
|
||||
}
|
||||
|
||||
// Unselect row
|
||||
unselect_row(current_row);
|
||||
}
|
||||
|
||||
static void read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col) {
|
||||
// Select col and wait for col selection to stabilize
|
||||
select_col(current_col*2);
|
||||
wait_us(MATRIX_IO_DELAY);
|
||||
|
||||
uint16_t column_index_bitmask = COL_SHIFTER << (current_col * 2);
|
||||
// For each row...
|
||||
for (uint8_t row_index = 0; row_index < MATRIX_ROWS; row_index++) {
|
||||
// Check row pin state
|
||||
if (readPin(row_pins[row_index])) {
|
||||
// Pin HI, clear col bit
|
||||
current_matrix[row_index] &= ~column_index_bitmask;
|
||||
} else {
|
||||
// Pin LO, set col bit
|
||||
current_matrix[row_index] |= column_index_bitmask;
|
||||
}
|
||||
}
|
||||
// Unselect col
|
||||
unselect_col(current_col*2);
|
||||
}
|
||||
|
||||
|
||||
void matrix_init_custom(void) {
|
||||
// initialize key pins
|
||||
unselect_cols();
|
||||
unselect_rows();
|
||||
debounce_init(MATRIX_ROWS);
|
||||
}
|
||||
|
||||
void store_old_matrix(matrix_row_t current_matrix[]) {
|
||||
for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
|
||||
previous_matrix[i] = current_matrix[i];
|
||||
}
|
||||
}
|
||||
|
||||
bool has_matrix_changed(matrix_row_t current_matrix[]) {
|
||||
for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
|
||||
if (previous_matrix[i] != current_matrix[i]) return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
bool matrix_scan_custom(matrix_row_t current_matrix[]) {
|
||||
store_old_matrix(current_matrix);
|
||||
// Set row, read cols
|
||||
for (uint8_t current_row = 0; current_row < MATRIX_ROWS; current_row++) {
|
||||
read_cols_on_row(current_matrix, current_row);
|
||||
}
|
||||
// Set col, read rows
|
||||
for (uint8_t current_col = 0; current_col < MATRIX_COLS/2; current_col++) {
|
||||
read_rows_on_col(current_matrix, current_col);
|
||||
}
|
||||
|
||||
fix_encoder_action(current_matrix);
|
||||
|
||||
fix_ghosting(current_matrix);
|
||||
|
||||
return has_matrix_changed(current_matrix);
|
||||
}
|
||||
|
||||
4
keyboards/cheapino/mcuconf.h
Normal file
4
keyboards/cheapino/mcuconf.h
Normal file
@@ -0,0 +1,4 @@
|
||||
#pragma once
|
||||
|
||||
#include_next <mcuconf.h>
|
||||
|
||||
28
keyboards/cheapino/readme.md
Normal file
28
keyboards/cheapino/readme.md
Normal file
@@ -0,0 +1,28 @@
|
||||
# cheapino
|
||||
|
||||

|
||||
|
||||
*A short description of the keyboard/project*
|
||||
|
||||
* Keyboard Maintainer: [Thomas Haukland](https://github.com/tompi)
|
||||
* Keyboard Builder: [Arne Moerman](https://github.com/thearne4)
|
||||
* Hardware Supported: *The PCBs, controllers supported*
|
||||
* Hardware Availability: *Links to where you can find this hardware*
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make cheapino:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make cheapino:default:flash
|
||||
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||
|
||||
## Bootloader
|
||||
|
||||
Enter the bootloader in 3 ways:
|
||||
|
||||
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
|
||||
* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
|
||||
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
|
||||
8
keyboards/cheapino/rules.mk
Normal file
8
keyboards/cheapino/rules.mk
Normal file
@@ -0,0 +1,8 @@
|
||||
CAPS_WORD_ENABLE = yes
|
||||
CUSTOM_MATRIX = lite
|
||||
WS2812_DRIVER = vendor
|
||||
RGBLIGHT_ENABLE = yes
|
||||
DEFERRED_EXEC_ENABLE = yes
|
||||
SRC += encoder.c
|
||||
SRC += ghosting.c
|
||||
SRC += matrix.c
|
||||
22
keyboards/handwired/franky36/keymaps/vial/config.h
Normal file
22
keyboards/handwired/franky36/keymaps/vial/config.h
Normal file
@@ -0,0 +1,22 @@
|
||||
/* Copyright 2024-2026 Grigory Avdyushin
|
||||
*
|
||||
* 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/>.
|
||||
*/
|
||||
|
||||
#define ONESHOT_TIMEOUT 5000
|
||||
#define TAPPING_TERM 180
|
||||
|
||||
#define VIAL_KEYBOARD_UID {0x5B, 0x8C, 0x96, 0xB0, 0x00, 0xD5, 0xF4, 0xC9}
|
||||
#define VIAL_UNLOCK_COMBO_ROWS { 0, 1 }
|
||||
#define VIAL_UNLOCK_COMBO_COLS { 0, 1 }
|
||||
126
keyboards/handwired/franky36/keymaps/vial/keymap.c
Normal file
126
keyboards/handwired/franky36/keymaps/vial/keymap.c
Normal file
@@ -0,0 +1,126 @@
|
||||
/* Copyright 2024-2026 Grigory Avdyushin
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
enum my_layers {
|
||||
_BASE = 0,
|
||||
_LOWER,
|
||||
_RAISE,
|
||||
_NAV,
|
||||
};
|
||||
|
||||
#define LOWER MO(_LOWER)
|
||||
#define RAISE MO(_RAISE)
|
||||
#define NAV MO(_NAV)
|
||||
|
||||
#define OSM_LSFT OSM(MOD_LSFT) // One Shot Right Shift
|
||||
|
||||
#define KC_SFT_Z SFT_T(KC_Z) // Left Shift when held, Z when tapped
|
||||
#define KC_SFT_SL RSFT_T(KC_SLSH) // Right Shift when held, / when tapped
|
||||
|
||||
#define KC_SFT_BSLS RSFT_T(KC_BSLS) // Right Shift when held, \ when tapped
|
||||
|
||||
#define KC_LWR_SPC LT(_LOWER, KC_SPC) // Lower layer when held, Space when tapped
|
||||
#define KC_RSE_BSPC LT(_RAISE, KC_BSPC) // Raise layer when held, Backspace when tapped
|
||||
#define KC_NAV_A LT(_NAV,KC_A) // Navigation layer when held, A when tapped
|
||||
|
||||
#define KC_CMD_TAB CMD_T(KC_TAB) // Left Command when held, Tab when tapped
|
||||
#define KC_CMD_ENT RCMD_T(KC_ENT) // Right Command when held, Enter when tapped
|
||||
|
||||
#define KC_CTL_ESC CTL_T(KC_ESC) // Left Control when held, Escape when tapped
|
||||
#define KC_OPT_OSM_SFT ROPT_T(OSM_LSFT) // Right Option when held, One Shot Shift when tapped
|
||||
|
||||
#define KC_OSM_CTL OSM(MOD_LCTL) // One Shot Modifier Ctrl, Shift, Alt
|
||||
#define KC_OSM_MEH OSM(MOD_MEH) // One Shot Modifier Ctrl, Shift, Alt
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/*
|
||||
* ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐
|
||||
* │ Q │ W │ E │ R │ T │ │ Y │ U │ I │ O │ P │
|
||||
* ├───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┤
|
||||
* │ A │ S │ D │ F │ G │ │ H │ J │ K │ L │ ;:│
|
||||
* ├───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┤
|
||||
* │⇧/Z│ X │ C │ V │ B │ │ N │ M │ ,<│ .>│⇧/?│
|
||||
* └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘
|
||||
* ┌───┬───┬───┐ ┌───┬───┬───┐
|
||||
* │CTL│CMD│SPC│ │ENT│CMD│MEH│
|
||||
* └───┴───┴───┘ └───┴───┴───┘
|
||||
*/
|
||||
[_BASE] = LAYOUT_split_3x5_3(
|
||||
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
|
||||
KC_NAV_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,
|
||||
KC_SFT_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SFT_SL,
|
||||
KC_OSM_CTL, KC_CMD_TAB, KC_LWR_SPC, KC_RSE_BSPC, KC_CMD_ENT, KC_OSM_MEH
|
||||
),
|
||||
|
||||
/*
|
||||
* ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐
|
||||
* │ 1!│ 2@│ 3#│ 4$│ 5%│ │ 6^│ 7&│ 8*│ 9(│ 0)│
|
||||
* ├───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┤
|
||||
* │ `~│ ~ │ | │ ( │ ) │ │ _ │ + │ { │ } │ '"│
|
||||
* ├───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┤
|
||||
* │ ⇧ │ │ │ │ │ │ -_│ =+│ [{│ ]}│ \|│
|
||||
* └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘
|
||||
* ┌───┬───┬───┐ ┌───┬───┬───┐
|
||||
* │ │ │ │ │ │ │ │
|
||||
* └───┴───┴───┘ └───┴───┴───┘
|
||||
*/
|
||||
[_LOWER] = LAYOUT_split_3x5_3(
|
||||
KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
|
||||
KC_GRV, S(KC_GRV), S(KC_BSLS), S(KC_9), S(KC_0), S(KC_MINS), S(KC_EQL), S(KC_LBRC), S(KC_RBRC), KC_QUOT,
|
||||
KC_LSFT, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_SFT_BSLS,
|
||||
_______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
/*
|
||||
* ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐
|
||||
* │ F1│ F2│ F3│ F4│ F5│ │ F6│ F7│ F8│ F9│F10│
|
||||
* ├───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* ├───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘
|
||||
* ┌───┬───┬───┐ ┌───┬───┬───┐
|
||||
* │ │ │ │ │ │ │ │
|
||||
* └───┴───┴───┘ └───┴───┴───┘
|
||||
*/
|
||||
[_RAISE] = LAYOUT_split_3x5_3(
|
||||
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
/*
|
||||
* ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐
|
||||
* │ │ │ │ │ │ │HOM│ │ │END│ │
|
||||
* ├───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┤
|
||||
* │ │ │ │ │ │ │ ← │ ↓ │ ↑ │ → │ │
|
||||
* ├───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┤
|
||||
* │ │ │ │ │ │ │PUP│ │ │PDN│ │
|
||||
* └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘
|
||||
* ┌───┬───┬───┐ ┌───┬───┬───┐
|
||||
* │ │ │ │ │ │ │ │
|
||||
* └───┴───┴───┘ └───┴───┴───┘
|
||||
*/
|
||||
[_NAV] = LAYOUT_split_3x5_3(
|
||||
_______, _______, _______, _______, _______, KC_HOME, _______, _______, KC_END, _______,
|
||||
_______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______,
|
||||
_______, _______, _______, _______, _______, KC_PGUP, _______, _______, KC_PGDN, _______,
|
||||
_______, _______, _______, _______, _______, _______
|
||||
)
|
||||
};
|
||||
3
keyboards/handwired/franky36/keymaps/vial/rules.mk
Normal file
3
keyboards/handwired/franky36/keymaps/vial/rules.mk
Normal file
@@ -0,0 +1,3 @@
|
||||
VIA_ENABLE = yes
|
||||
VIAL_ENABLE = yes
|
||||
COMBO_ENABLE = yes
|
||||
217
keyboards/handwired/franky36/keymaps/vial/vial.json
Normal file
217
keyboards/handwired/franky36/keymaps/vial/vial.json
Normal file
@@ -0,0 +1,217 @@
|
||||
{
|
||||
"name": "franky36",
|
||||
"vendorId": "0x1209",
|
||||
"productId": "0x3336",
|
||||
"matrix": {
|
||||
"rows": 4,
|
||||
"cols": 10
|
||||
},
|
||||
"layouts": {
|
||||
"keymap": [
|
||||
[
|
||||
{
|
||||
"x": 2
|
||||
},
|
||||
"0,2",
|
||||
{
|
||||
"x": 7.5
|
||||
},
|
||||
"0,7"
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.85,
|
||||
"x": 1
|
||||
},
|
||||
"0,1",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"0,3",
|
||||
{
|
||||
"x": 5.5
|
||||
},
|
||||
"0,6",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"0,8"
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.9
|
||||
},
|
||||
"0,0",
|
||||
{
|
||||
"x": 3
|
||||
},
|
||||
"0,4",
|
||||
{
|
||||
"x": 3.5
|
||||
},
|
||||
"0,5",
|
||||
{
|
||||
"x": 3
|
||||
},
|
||||
"0,9"
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.25,
|
||||
"x": 2
|
||||
},
|
||||
"1,2",
|
||||
{
|
||||
"x": 7.5
|
||||
},
|
||||
"1,7"
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.85,
|
||||
"x": 1
|
||||
},
|
||||
"1,1",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"1,3",
|
||||
{
|
||||
"x": 5.5
|
||||
},
|
||||
"1,6",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"1,8"
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.9
|
||||
},
|
||||
"1,0",
|
||||
{
|
||||
"x": 3
|
||||
},
|
||||
"1,4",
|
||||
{
|
||||
"x": 3.5
|
||||
},
|
||||
"1,5",
|
||||
{
|
||||
"x": 3
|
||||
},
|
||||
"1,9"
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.25,
|
||||
"x": 2
|
||||
},
|
||||
"2,2",
|
||||
{
|
||||
"x": 7.5
|
||||
},
|
||||
"2,7"
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.85,
|
||||
"x": 1
|
||||
},
|
||||
"2,1",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"2,3",
|
||||
{
|
||||
"x": 5.5
|
||||
},
|
||||
"2,6",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"2,8"
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.9
|
||||
},
|
||||
"2,0",
|
||||
{
|
||||
"x": 3
|
||||
},
|
||||
"2,4",
|
||||
{
|
||||
"x": 3.5
|
||||
},
|
||||
"2,5",
|
||||
{
|
||||
"x": 3
|
||||
},
|
||||
"2,9"
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": 0.15,
|
||||
"x": 1,
|
||||
"c": "#777777"
|
||||
},
|
||||
"3,2",
|
||||
{
|
||||
"x": 9.5,
|
||||
"c": "#777777"
|
||||
},
|
||||
"3,7"
|
||||
],
|
||||
[
|
||||
{
|
||||
"r": 11,
|
||||
"rx": 6.25,
|
||||
"ry": 3.5,
|
||||
"y": 0.41,
|
||||
"x": -4,
|
||||
"c": "#aaaaaa",
|
||||
"w": 1.25
|
||||
},
|
||||
"3,3"
|
||||
],
|
||||
[
|
||||
{
|
||||
"r": 11,
|
||||
"rx": 5.75,
|
||||
"ry": 3.25,
|
||||
"y": 0.4,
|
||||
"x": -2,
|
||||
"c": "#aaaaaa",
|
||||
"w": 1.25
|
||||
},
|
||||
"3,4"
|
||||
],
|
||||
[
|
||||
{
|
||||
"r": -11,
|
||||
"rx": 7,
|
||||
"ry": 3.5,
|
||||
"y": 0.25,
|
||||
"x": 1.5,
|
||||
"w": 1.25,
|
||||
"c": "#aaaaaa"
|
||||
},
|
||||
"3,5"
|
||||
],
|
||||
[
|
||||
{
|
||||
"r": -11,
|
||||
"rx": 7.25,
|
||||
"ry": 3.5,
|
||||
"y": 0.41,
|
||||
"x": 2.75,
|
||||
"w": 1.25,
|
||||
"c": "#aaaaaa"
|
||||
},
|
||||
"3,6"
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
74
keyboards/ivndbt/ows/keyboard.json
Normal file
74
keyboards/ivndbt/ows/keyboard.json
Normal file
@@ -0,0 +1,74 @@
|
||||
{
|
||||
"keyboard_name": "OWS",
|
||||
"manufacturer": "ivndbt",
|
||||
"url": "https://github.com/ivndbt/obiwanstenobit",
|
||||
"maintainer": "ivndbt",
|
||||
"usb": {
|
||||
"vid": "0x6961",
|
||||
"pid": "0x3033",
|
||||
"device_version": "0.1.1"
|
||||
},
|
||||
"development_board": "promicro_rp2040",
|
||||
"diode_direction": "COL2ROW",
|
||||
"matrix_pins": {
|
||||
"cols": ["GP4", "GP5", "GP6", "GP8", "GP7", "GP22", "GP26", "GP21", "GP23", "GP20"],
|
||||
"rows": ["GP9", "GP28", "GP27"]
|
||||
},
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"nkro": true,
|
||||
"steno": true,
|
||||
"mousekey": false,
|
||||
"extrakey": true
|
||||
},
|
||||
"host": {
|
||||
"default": {
|
||||
"nkro": true
|
||||
}
|
||||
},
|
||||
"stenography": {
|
||||
"enabled": true,
|
||||
"protocol": "geminipr"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{"matrix": [2, 8], "x": 0, "y": 0},
|
||||
{"matrix": [0, 9], "x": 1, "y": 0},
|
||||
{"matrix": [0, 8], "x": 2, "y": 0},
|
||||
{"matrix": [0, 7], "x": 3, "y": 0},
|
||||
{"matrix": [0, 6], "x": 4, "y": 0},
|
||||
{"matrix": [0, 5], "x": 5, "y": 0},
|
||||
|
||||
{"matrix": [0, 0], "x": 8, "y": 0},
|
||||
{"matrix": [0, 1], "x": 9, "y": 0},
|
||||
{"matrix": [0, 2], "x": 10, "y": 0},
|
||||
{"matrix": [0, 3], "x": 11, "y": 0},
|
||||
{"matrix": [0, 4], "x": 12, "y": 0},
|
||||
{"matrix": [2, 3], "x": 13, "y": 0},
|
||||
|
||||
{"matrix": [2, 9], "x": 0, "y": 1},
|
||||
{"matrix": [1, 9], "x": 1, "y": 1},
|
||||
{"matrix": [1, 8], "x": 2, "y": 1},
|
||||
{"matrix": [1, 7], "x": 3, "y": 1},
|
||||
{"matrix": [1, 6], "x": 4, "y": 1},
|
||||
{"matrix": [1, 5], "x": 5, "y": 1},
|
||||
|
||||
{"matrix": [1, 0], "x": 8, "y": 1},
|
||||
{"matrix": [1, 1], "x": 9, "y": 1},
|
||||
{"matrix": [1, 2], "x": 10, "y": 1},
|
||||
{"matrix": [1, 3], "x": 11, "y": 1},
|
||||
{"matrix": [1, 4], "x": 12, "y": 1},
|
||||
{"matrix": [2, 4], "x": 13, "y": 1},
|
||||
|
||||
{"matrix": [2, 7], "x": 3, "y": 3},
|
||||
{"matrix": [2, 6], "x": 4, "y": 3},
|
||||
{"matrix": [2, 5], "x": 5, "y": 3},
|
||||
|
||||
{"matrix": [2, 0], "x": 8, "y": 3},
|
||||
{"matrix": [2, 1], "x": 9, "y": 3},
|
||||
{"matrix": [2, 2], "x": 10, "y": 3}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
49
keyboards/ivndbt/ows/keymaps/default/keymap.c
Normal file
49
keyboards/ivndbt/ows/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,49 @@
|
||||
// Copyright 2026 ivndbt
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
// Layers declarations
|
||||
enum layers {
|
||||
_PLOVER,
|
||||
_LOWER,
|
||||
_RAISE,
|
||||
_CONTROL,
|
||||
_QWERTY
|
||||
};
|
||||
|
||||
#define LOWER TL_LOWR
|
||||
#define RAISE TL_UPPR
|
||||
#define QWERTY TG(_QWERTY)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_PLOVER] = LAYOUT(
|
||||
LOWER, STN_S1, STN_TL, STN_PL, STN_HL, STN_ST1, STN_ST3, STN_FR, STN_PR, STN_LR, STN_TR, STN_DR,
|
||||
RAISE, STN_S2, STN_KL, STN_WL, STN_RL, STN_ST2, STN_ST4, STN_RR, STN_BR, STN_GR, STN_SR, STN_ZR,
|
||||
STN_N1, STN_A, STN_O, STN_E, STN_U, STN_N2
|
||||
),
|
||||
|
||||
[_LOWER] = LAYOUT(
|
||||
_______, _______, _______, _______, _______, KC_DEL, KC_ESC, _______, KC_UP, _______, KC_PGUP, _______,
|
||||
_______, _______, _______, _______, _______, _______, KC_TAB, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______,
|
||||
_______, _______, _______, KC_HOME, KC_END, _______
|
||||
),
|
||||
|
||||
[_RAISE] = LAYOUT(
|
||||
_______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, KC_BRID, KC_BRIU, _______, _______, _______,
|
||||
_______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT
|
||||
),
|
||||
|
||||
[_CONTROL] = LAYOUT(
|
||||
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QWERTY,
|
||||
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_RBT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
|
||||
),
|
||||
|
||||
[_QWERTY] = LAYOUT(
|
||||
KC_BSPC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, QWERTY,
|
||||
KC_SPC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_Z, KC_ENT,
|
||||
KC_X, KC_C, KC_V, KC_B, KC_N, KC_M
|
||||
)
|
||||
};
|
||||
6
keyboards/ivndbt/ows/keymaps/default/readme.md
Normal file
6
keyboards/ivndbt/ows/keymaps/default/readme.md
Normal file
@@ -0,0 +1,6 @@
|
||||
# OWS usage
|
||||
|
||||
OWS is meant to be use with [Plover](https://opensteno.org/plover/) via the GeminiPR steno protocol.\
|
||||
To get started, make sure to follow the setup guide described in the [Plover Wiki](https://plover.wiki/index.php/Setting_up_a_hobbyist_writer_with_Plover) for hobbyist writers.
|
||||
|
||||
For an in-depth look at its features, please visit the [project repository](https://github.com/ivndbt/obiwanstenobit).
|
||||
1
keyboards/ivndbt/ows/keymaps/default/rules.mk
Normal file
1
keyboards/ivndbt/ows/keymaps/default/rules.mk
Normal file
@@ -0,0 +1 @@
|
||||
TRI_LAYER_ENABLE = yes
|
||||
12
keyboards/ivndbt/ows/keymaps/vial/config.h
Normal file
12
keyboards/ivndbt/ows/keymaps/vial/config.h
Normal file
@@ -0,0 +1,12 @@
|
||||
// Copyright 2026 ivndbt
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#define VIAL_KEYBOARD_UID {0xEC, 0x22, 0x9A, 0x6F, 0x66, 0xA1, 0xCB, 0xDF}
|
||||
|
||||
#define VIAL_UNLOCK_COMBO_ROWS {0, 0}
|
||||
#define VIAL_UNLOCK_COMBO_COLS {0, 5}
|
||||
|
||||
#undef DYNAMIC_KEYMAP_LAYER_COUNT
|
||||
#define DYNAMIC_KEYMAP_LAYER_COUNT 5
|
||||
49
keyboards/ivndbt/ows/keymaps/vial/keymap.c
Normal file
49
keyboards/ivndbt/ows/keymaps/vial/keymap.c
Normal file
@@ -0,0 +1,49 @@
|
||||
// Copyright 2026 ivndbt
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
// Layers declarations
|
||||
enum layers {
|
||||
_PLOVER,
|
||||
_LOWER,
|
||||
_RAISE,
|
||||
_CONTROL,
|
||||
_QWERTY
|
||||
};
|
||||
|
||||
#define LOWER TL_LOWR
|
||||
#define RAISE TL_UPPR
|
||||
#define QWERTY TG(_QWERTY)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_PLOVER] = LAYOUT(
|
||||
LOWER, STN_S1, STN_TL, STN_PL, STN_HL, STN_ST1, STN_ST3, STN_FR, STN_PR, STN_LR, STN_TR, STN_DR,
|
||||
RAISE, STN_S2, STN_KL, STN_WL, STN_RL, STN_ST2, STN_ST4, STN_RR, STN_BR, STN_GR, STN_SR, STN_ZR,
|
||||
STN_N1, STN_A, STN_O, STN_E, STN_U, STN_N2
|
||||
),
|
||||
|
||||
[_LOWER] = LAYOUT(
|
||||
_______, _______, _______, _______, _______, KC_DEL, KC_ESC, _______, KC_UP, _______, KC_PGUP, _______,
|
||||
_______, _______, _______, _______, _______, _______, KC_TAB, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______,
|
||||
_______, _______, _______, KC_HOME, KC_END, _______
|
||||
),
|
||||
|
||||
[_RAISE] = LAYOUT(
|
||||
_______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, KC_BRID, KC_BRIU, _______, _______, _______,
|
||||
_______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT
|
||||
),
|
||||
|
||||
[_CONTROL] = LAYOUT(
|
||||
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QWERTY,
|
||||
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_RBT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
|
||||
),
|
||||
|
||||
[_QWERTY] = LAYOUT(
|
||||
KC_BSPC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, QWERTY,
|
||||
KC_SPC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_Z, KC_ENT,
|
||||
KC_X, KC_C, KC_V, KC_B, KC_N, KC_M
|
||||
)
|
||||
};
|
||||
8
keyboards/ivndbt/ows/keymaps/vial/readme.md
Normal file
8
keyboards/ivndbt/ows/keymaps/vial/readme.md
Normal file
@@ -0,0 +1,8 @@
|
||||
# OWS usage with VIAL
|
||||
|
||||
OWS is meant to be use with [Plover](https://opensteno.org/plover/) via the GeminiPR steno protocol.\
|
||||
To get started, make sure to follow the setup guide described in the [Plover Wiki](https://plover.wiki/index.php/Setting_up_a_hobbyist_writer_with_Plover) for hobbyist writers.
|
||||
|
||||
Compatibility with VIAL is provided to simplify key customization on the additional layers beyond the default Plover layout. **Editing the base layer through VIAL is not recommended**, as doing so may prevent you from reassigning the dedicated Plover keycodes without reflashing the firmware using QMK.
|
||||
|
||||
For an in-depth look at its features, please visit the [project repository](https://github.com/ivndbt/obiwanstenobit).
|
||||
3
keyboards/ivndbt/ows/keymaps/vial/rules.mk
Normal file
3
keyboards/ivndbt/ows/keymaps/vial/rules.mk
Normal file
@@ -0,0 +1,3 @@
|
||||
TRI_LAYER_ENABLE = yes
|
||||
VIA_ENABLE = yes
|
||||
VIAL_ENABLE = yes
|
||||
59
keyboards/ivndbt/ows/keymaps/vial/vial.json
Normal file
59
keyboards/ivndbt/ows/keymaps/vial/vial.json
Normal file
@@ -0,0 +1,59 @@
|
||||
{
|
||||
"matrix": {
|
||||
"rows": 3,
|
||||
"cols": 10
|
||||
},
|
||||
"layouts": {
|
||||
"keymap": [
|
||||
[
|
||||
"2,8",
|
||||
"0,9",
|
||||
"0,8",
|
||||
"0,7",
|
||||
"0,6",
|
||||
"0,5",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"0,0",
|
||||
"0,1",
|
||||
"0,2",
|
||||
"0,3",
|
||||
"0,4",
|
||||
"2,3"
|
||||
],
|
||||
[
|
||||
"2,9",
|
||||
"1,9",
|
||||
"1,8",
|
||||
"1,7",
|
||||
"1,6",
|
||||
"1,5",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"1,0",
|
||||
"1,1",
|
||||
"1,2",
|
||||
"1,3",
|
||||
"1,4",
|
||||
"2,4"
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": 1,
|
||||
"x": 3
|
||||
},
|
||||
"2,7",
|
||||
"2,6",
|
||||
"2,5",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"2,0",
|
||||
"2,1",
|
||||
"2,2"
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
32
keyboards/ivndbt/ows/readme.md
Normal file
32
keyboards/ivndbt/ows/readme.md
Normal file
@@ -0,0 +1,32 @@
|
||||
# OWS
|
||||
|
||||
Open-source steno keyboard with a pseudo-split layout, designed to be compact, portable, and cost-effective.
|
||||
|
||||

|
||||
|
||||
* Keyboard maintainer: [ivndbt](https://github.com/ivndbt)
|
||||
* Hardware supported: Pro Micro RP2040
|
||||
* Hardware Availability: OWS is open-source, check the [project repository](https://github.com/ivndbt/obiwanstenobit)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make ivndbt/ows:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make ivndbt/ows: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
|
||||
|
||||
1. There are 4 ways to enter the bootloader:
|
||||
|
||||
* **Physical reset button**: Double tap the `RST` button located on the back of the Controller PCB.
|
||||
* **Physical boot button**: Hold the `BOOT` button as you plug the RP2040
|
||||
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (the top-left key on the right-hand Main PCB) while plugging in the keyboard.
|
||||
* **Keycode in layout**: Press the key assigned to `QK_BOOT` if it is available
|
||||
|
||||
2. Wait for the OS to detect the device
|
||||
3. Copy the `.uf2` file to the new USB disk or flash via QMK CLI
|
||||
4. Wait for the keyboard to become available
|
||||
@@ -0,0 +1,7 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
|
||||
#pragma once
|
||||
|
||||
#define VIAL_KEYBOARD_UID {0x9B, 0xB2, 0x2D, 0x80, 0x32, 0x37, 0x16, 0x1C}
|
||||
#define VIAL_UNLOCK_COMBO_ROWS { 0, 3 }
|
||||
#define VIAL_UNLOCK_COMBO_COLS { 0, 13 }
|
||||
@@ -0,0 +1,65 @@
|
||||
/* Copyright 2025 @ Keychron (https://www.keychron.com)
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
enum layers{
|
||||
MAC_BASE,
|
||||
MAC_FN,
|
||||
WIN_BASE,
|
||||
WIN_FN,
|
||||
};
|
||||
|
||||
#define KC_TASK LGUI(KC_TAB)
|
||||
#define KC_FLXP LGUI(KC_E)
|
||||
|
||||
// clang-format off
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[MAC_BASE] = LAYOUT_104_ansi(
|
||||
KC_ESC, KC_BRID, KC_BRIU, _______, _______, LM_BRID, LM_BRIU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, LM_NEXT,
|
||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT,
|
||||
KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, KC_ROPT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT ),
|
||||
|
||||
[MAC_FN] = LAYOUT_104_ansi(
|
||||
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, BL_TOGG,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
LM_TOGG, LM_NEXT, LM_BRIU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, LM_BRID, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ),
|
||||
|
||||
[WIN_BASE] = LAYOUT_104_ansi(
|
||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_NO, BL_STEP,
|
||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT,
|
||||
KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT ),
|
||||
|
||||
[WIN_FN] = LAYOUT_104_ansi(
|
||||
_______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, LM_BRID, LM_BRIU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, LM_TOGG,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
LM_TOGG, LM_NEXT, LM_BRIU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, LM_BRID, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ),
|
||||
};
|
||||
|
||||
// clang-format on
|
||||
|
||||
271
keyboards/keychron/c2_pro_v2/ansi/white/keymaps/vial/vial.json
Normal file
271
keyboards/keychron/c2_pro_v2/ansi/white/keymaps/vial/vial.json
Normal file
@@ -0,0 +1,271 @@
|
||||
{
|
||||
"name": "Keychron C1 Pro V2 ANSI White",
|
||||
"vendorId": "0x3434",
|
||||
"productId": "0x0519",
|
||||
"matrix": {
|
||||
"rows": 6,
|
||||
"cols": 17
|
||||
},
|
||||
"customKeycodes": [
|
||||
{
|
||||
"name": "Mission Control",
|
||||
"title": "Mission Control in macOS",
|
||||
"shortName": "MCtrl"
|
||||
},
|
||||
{
|
||||
"name": "Launch Pad",
|
||||
"title": "Launch Pad in macOS",
|
||||
"shortName": "LPad"
|
||||
},
|
||||
{
|
||||
"name": "Left Option",
|
||||
"title": "Left Option in macOS",
|
||||
"shortName": "LOpt"
|
||||
},
|
||||
{
|
||||
"name": "Right Option",
|
||||
"title": "Right Option in macOS",
|
||||
"shortName": "ROpt"
|
||||
},
|
||||
{
|
||||
"name": "Left Cmd",
|
||||
"title": "Left Command in macOS",
|
||||
"shortName": "LCmd"
|
||||
},
|
||||
{
|
||||
"name": "Right Cmd",
|
||||
"title": "Right Command in macOS",
|
||||
"shortName": "RCmd"
|
||||
},
|
||||
{
|
||||
"name": "Siri",
|
||||
"title": "Siri in macOS",
|
||||
"shortName": "Siri"
|
||||
},
|
||||
{
|
||||
"name": "Task View",
|
||||
"title": "Task View in windows",
|
||||
"shortName": "Task"
|
||||
},
|
||||
{
|
||||
"name": "File Explorer",
|
||||
"title": "File Explorer in windows",
|
||||
"shortName": "File"
|
||||
},
|
||||
{
|
||||
"name": "Screen Shot",
|
||||
"title": "Screenshot in macOS",
|
||||
"shortName": "SShot"
|
||||
},
|
||||
{
|
||||
"name": "Cortana",
|
||||
"title": "Cortana in windows",
|
||||
"shortName": "Cortana"
|
||||
}
|
||||
],
|
||||
"keycodes": ["qmk_lighting"],
|
||||
"layouts": {
|
||||
"keymap": [
|
||||
[
|
||||
{
|
||||
"c": "#777777"
|
||||
},
|
||||
"0,0",
|
||||
{
|
||||
"x": 1,
|
||||
"c": "#cccccc"
|
||||
},
|
||||
"0,1",
|
||||
"0,2",
|
||||
"0,3",
|
||||
"0,4",
|
||||
{
|
||||
"x": 0.5,
|
||||
"c": "#aaaaaa"
|
||||
},
|
||||
"0,5",
|
||||
"0,6",
|
||||
"0,7",
|
||||
"0,8",
|
||||
{
|
||||
"x": 0.5,
|
||||
"c": "#cccccc"
|
||||
},
|
||||
"0,9",
|
||||
"0,10",
|
||||
"0,11",
|
||||
"0,12",
|
||||
{
|
||||
"x": 0.25,
|
||||
"c": "#aaaaaa"
|
||||
},
|
||||
"0,14",
|
||||
"0,15",
|
||||
"0,16"
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": 0.25
|
||||
},
|
||||
"1,0",
|
||||
{
|
||||
"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.25
|
||||
},
|
||||
"1,14",
|
||||
"1,15",
|
||||
"1,16"
|
||||
],
|
||||
[
|
||||
{
|
||||
"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.25
|
||||
},
|
||||
"2,14",
|
||||
"2,15",
|
||||
"2,16"
|
||||
],
|
||||
[
|
||||
{
|
||||
"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"
|
||||
],
|
||||
[
|
||||
{
|
||||
"c": "#aaaaaa",
|
||||
"w": 2.25
|
||||
},
|
||||
"4,0",
|
||||
{
|
||||
"c": "#cccccc"
|
||||
},
|
||||
"4,2",
|
||||
"4,3",
|
||||
"4,4",
|
||||
"4,5",
|
||||
"4,6",
|
||||
"4,7",
|
||||
"4,8",
|
||||
"4,9",
|
||||
"4,10",
|
||||
"4,11",
|
||||
{
|
||||
"c": "#aaaaaa",
|
||||
"w": 2.75
|
||||
},
|
||||
"4,13",
|
||||
{
|
||||
"x": 1.25,
|
||||
"c": "#777777"
|
||||
},
|
||||
"4,15"
|
||||
],
|
||||
[
|
||||
{
|
||||
"c": "#aaaaaa",
|
||||
"w": 1.25
|
||||
},
|
||||
"5,0",
|
||||
{
|
||||
"w": 1.25
|
||||
},
|
||||
"5,1",
|
||||
{
|
||||
"w": 1.25
|
||||
},
|
||||
"5,2",
|
||||
{
|
||||
"c": "#cccccc",
|
||||
"w": 6.25
|
||||
},
|
||||
"5,6",
|
||||
{
|
||||
"c": "#aaaaaa",
|
||||
"w": 1.25
|
||||
},
|
||||
"5,10",
|
||||
{
|
||||
"w": 1.25
|
||||
},
|
||||
"5,11",
|
||||
{
|
||||
"w": 1.25
|
||||
},
|
||||
"5,12",
|
||||
{
|
||||
"w": 1.25
|
||||
},
|
||||
"5,13",
|
||||
{
|
||||
"x": 0.25,
|
||||
"c": "#777777"
|
||||
},
|
||||
"5,14",
|
||||
"5,15",
|
||||
"5,16"
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
292
keyboards/keyten/imi60_hs/keyboard.json
Normal file
292
keyboards/keyten/imi60_hs/keyboard.json
Normal file
@@ -0,0 +1,292 @@
|
||||
{
|
||||
"manufacturer": "La-Versa x keyten",
|
||||
"keyboard_name": "imi60-HS",
|
||||
"maintainer": "key10iq",
|
||||
"processor": "STM32F072",
|
||||
"bootloader": "stm32-dfu",
|
||||
"usb": {
|
||||
"vid": "0xEB69",
|
||||
"pid": "0x6009",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true
|
||||
},
|
||||
"diode_direction": "COL2ROW",
|
||||
"matrix_pins": {
|
||||
"rows": ["B1", "B0", "A6", "A5", "B11"],
|
||||
"cols": ["A3", "A4", "A7", "B2", "B10", "B9", "B8", "B7", "B6", "B5", "B4", "B3", "A15", "A14"]
|
||||
},
|
||||
"community_layouts": [
|
||||
"60_ansi_wkl_split_bs_rshift",
|
||||
"60_hhkb",
|
||||
"60_ansi_tsangan_split_bs_rshift"
|
||||
],
|
||||
"layout_aliases": {
|
||||
"LAYOUT_all": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT_60_ansi_wkl_split_bs_rshift": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"matrix": [0, 13], "x": 13, "y": 0},
|
||||
{"matrix": [2, 13], "x": 14, "y": 0},
|
||||
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [1, 1], "x": 1.5, "y": 1},
|
||||
{"matrix": [1, 2], "x": 2.5, "y": 1},
|
||||
{"matrix": [1, 3], "x": 3.5, "y": 1},
|
||||
{"matrix": [1, 4], "x": 4.5, "y": 1},
|
||||
{"matrix": [1, 5], "x": 5.5, "y": 1},
|
||||
{"matrix": [1, 6], "x": 6.5, "y": 1},
|
||||
{"matrix": [1, 7], "x": 7.5, "y": 1},
|
||||
{"matrix": [1, 8], "x": 8.5, "y": 1},
|
||||
{"matrix": [1, 9], "x": 9.5, "y": 1},
|
||||
{"matrix": [1, 10], "x": 10.5, "y": 1},
|
||||
{"matrix": [1, 11], "x": 11.5, "y": 1},
|
||||
{"matrix": [1, 12], "x": 12.5, "y": 1},
|
||||
{"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
|
||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [2, 1], "x": 1.75, "y": 2},
|
||||
{"matrix": [2, 2], "x": 2.75, "y": 2},
|
||||
{"matrix": [2, 3], "x": 3.75, "y": 2},
|
||||
{"matrix": [2, 4], "x": 4.75, "y": 2},
|
||||
{"matrix": [2, 5], "x": 5.75, "y": 2},
|
||||
{"matrix": [2, 6], "x": 6.75, "y": 2},
|
||||
{"matrix": [2, 7], "x": 7.75, "y": 2},
|
||||
{"matrix": [2, 8], "x": 8.75, "y": 2},
|
||||
{"matrix": [2, 9], "x": 9.75, "y": 2},
|
||||
{"matrix": [2, 10], "x": 10.75, "y": 2},
|
||||
{"matrix": [2, 11], "x": 11.75, "y": 2},
|
||||
{"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
|
||||
{"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
|
||||
{"matrix": [3, 1], "x": 2.25, "y": 3},
|
||||
{"matrix": [3, 2], "x": 3.25, "y": 3},
|
||||
{"matrix": [3, 3], "x": 4.25, "y": 3},
|
||||
{"matrix": [3, 4], "x": 5.25, "y": 3},
|
||||
{"matrix": [3, 5], "x": 6.25, "y": 3},
|
||||
{"matrix": [3, 6], "x": 7.25, "y": 3},
|
||||
{"matrix": [3, 7], "x": 8.25, "y": 3},
|
||||
{"matrix": [3, 8], "x": 9.25, "y": 3},
|
||||
{"matrix": [3, 9], "x": 10.25, "y": 3},
|
||||
{"matrix": [3, 10], "x": 11.25, "y": 3},
|
||||
{"matrix": [4, 12], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"matrix": [3, 13], "x": 14, "y": 3},
|
||||
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
|
||||
{"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_hhkb": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"matrix": [0, 13], "x": 13, "y": 0},
|
||||
{"matrix": [2, 13], "x": 14, "y": 0},
|
||||
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [1, 1], "x": 1.5, "y": 1},
|
||||
{"matrix": [1, 2], "x": 2.5, "y": 1},
|
||||
{"matrix": [1, 3], "x": 3.5, "y": 1},
|
||||
{"matrix": [1, 4], "x": 4.5, "y": 1},
|
||||
{"matrix": [1, 5], "x": 5.5, "y": 1},
|
||||
{"matrix": [1, 6], "x": 6.5, "y": 1},
|
||||
{"matrix": [1, 7], "x": 7.5, "y": 1},
|
||||
{"matrix": [1, 8], "x": 8.5, "y": 1},
|
||||
{"matrix": [1, 9], "x": 9.5, "y": 1},
|
||||
{"matrix": [1, 10], "x": 10.5, "y": 1},
|
||||
{"matrix": [1, 11], "x": 11.5, "y": 1},
|
||||
{"matrix": [1, 12], "x": 12.5, "y": 1},
|
||||
{"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
|
||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [2, 1], "x": 1.75, "y": 2},
|
||||
{"matrix": [2, 2], "x": 2.75, "y": 2},
|
||||
{"matrix": [2, 3], "x": 3.75, "y": 2},
|
||||
{"matrix": [2, 4], "x": 4.75, "y": 2},
|
||||
{"matrix": [2, 5], "x": 5.75, "y": 2},
|
||||
{"matrix": [2, 6], "x": 6.75, "y": 2},
|
||||
{"matrix": [2, 7], "x": 7.75, "y": 2},
|
||||
{"matrix": [2, 8], "x": 8.75, "y": 2},
|
||||
{"matrix": [2, 9], "x": 9.75, "y": 2},
|
||||
{"matrix": [2, 10], "x": 10.75, "y": 2},
|
||||
{"matrix": [2, 11], "x": 11.75, "y": 2},
|
||||
{"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
|
||||
{"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
|
||||
{"matrix": [3, 1], "x": 2.25, "y": 3},
|
||||
{"matrix": [3, 2], "x": 3.25, "y": 3},
|
||||
{"matrix": [3, 3], "x": 4.25, "y": 3},
|
||||
{"matrix": [3, 4], "x": 5.25, "y": 3},
|
||||
{"matrix": [3, 5], "x": 6.25, "y": 3},
|
||||
{"matrix": [3, 6], "x": 7.25, "y": 3},
|
||||
{"matrix": [3, 7], "x": 8.25, "y": 3},
|
||||
{"matrix": [3, 8], "x": 9.25, "y": 3},
|
||||
{"matrix": [3, 9], "x": 10.25, "y": 3},
|
||||
{"matrix": [3, 10], "x": 11.25, "y": 3},
|
||||
{"matrix": [4, 12], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"matrix": [3, 13], "x": 14, "y": 3},
|
||||
{"matrix": [4, 1], "x": 1.5, "y": 4},
|
||||
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
|
||||
{"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 11], "x": 12.5, "y": 4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_ansi_tsangan_split_bs_rshift": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"matrix": [0, 13], "x": 13, "y": 0},
|
||||
{"matrix": [2, 13], "x": 14, "y": 0},
|
||||
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [1, 1], "x": 1.5, "y": 1},
|
||||
{"matrix": [1, 2], "x": 2.5, "y": 1},
|
||||
{"matrix": [1, 3], "x": 3.5, "y": 1},
|
||||
{"matrix": [1, 4], "x": 4.5, "y": 1},
|
||||
{"matrix": [1, 5], "x": 5.5, "y": 1},
|
||||
{"matrix": [1, 6], "x": 6.5, "y": 1},
|
||||
{"matrix": [1, 7], "x": 7.5, "y": 1},
|
||||
{"matrix": [1, 8], "x": 8.5, "y": 1},
|
||||
{"matrix": [1, 9], "x": 9.5, "y": 1},
|
||||
{"matrix": [1, 10], "x": 10.5, "y": 1},
|
||||
{"matrix": [1, 11], "x": 11.5, "y": 1},
|
||||
{"matrix": [1, 12], "x": 12.5, "y": 1},
|
||||
{"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
|
||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [2, 1], "x": 1.75, "y": 2},
|
||||
{"matrix": [2, 2], "x": 2.75, "y": 2},
|
||||
{"matrix": [2, 3], "x": 3.75, "y": 2},
|
||||
{"matrix": [2, 4], "x": 4.75, "y": 2},
|
||||
{"matrix": [2, 5], "x": 5.75, "y": 2},
|
||||
{"matrix": [2, 6], "x": 6.75, "y": 2},
|
||||
{"matrix": [2, 7], "x": 7.75, "y": 2},
|
||||
{"matrix": [2, 8], "x": 8.75, "y": 2},
|
||||
{"matrix": [2, 9], "x": 9.75, "y": 2},
|
||||
{"matrix": [2, 10], "x": 10.75, "y": 2},
|
||||
{"matrix": [2, 11], "x": 11.75, "y": 2},
|
||||
{"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
|
||||
{"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
|
||||
{"matrix": [3, 1], "x": 2.25, "y": 3},
|
||||
{"matrix": [3, 2], "x": 3.25, "y": 3},
|
||||
{"matrix": [3, 3], "x": 4.25, "y": 3},
|
||||
{"matrix": [3, 4], "x": 5.25, "y": 3},
|
||||
{"matrix": [3, 5], "x": 6.25, "y": 3},
|
||||
{"matrix": [3, 6], "x": 7.25, "y": 3},
|
||||
{"matrix": [3, 7], "x": 8.25, "y": 3},
|
||||
{"matrix": [3, 8], "x": 9.25, "y": 3},
|
||||
{"matrix": [3, 9], "x": 10.25, "y": 3},
|
||||
{"matrix": [3, 10], "x": 11.25, "y": 3},
|
||||
{"matrix": [4, 12], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"matrix": [3, 13], "x": 14, "y": 3},
|
||||
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 1], "x": 1.5, "y": 4},
|
||||
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
|
||||
{"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 11], "x": 12.5, "y": 4},
|
||||
{"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_ansi_tsangan_split_rshift": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"matrix": [2, 13], "x": 13, "y": 0, "w": 2},
|
||||
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [1, 1], "x": 1.5, "y": 1},
|
||||
{"matrix": [1, 2], "x": 2.5, "y": 1},
|
||||
{"matrix": [1, 3], "x": 3.5, "y": 1},
|
||||
{"matrix": [1, 4], "x": 4.5, "y": 1},
|
||||
{"matrix": [1, 5], "x": 5.5, "y": 1},
|
||||
{"matrix": [1, 6], "x": 6.5, "y": 1},
|
||||
{"matrix": [1, 7], "x": 7.5, "y": 1},
|
||||
{"matrix": [1, 8], "x": 8.5, "y": 1},
|
||||
{"matrix": [1, 9], "x": 9.5, "y": 1},
|
||||
{"matrix": [1, 10], "x": 10.5, "y": 1},
|
||||
{"matrix": [1, 11], "x": 11.5, "y": 1},
|
||||
{"matrix": [1, 12], "x": 12.5, "y": 1},
|
||||
{"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
|
||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [2, 1], "x": 1.75, "y": 2},
|
||||
{"matrix": [2, 2], "x": 2.75, "y": 2},
|
||||
{"matrix": [2, 3], "x": 3.75, "y": 2},
|
||||
{"matrix": [2, 4], "x": 4.75, "y": 2},
|
||||
{"matrix": [2, 5], "x": 5.75, "y": 2},
|
||||
{"matrix": [2, 6], "x": 6.75, "y": 2},
|
||||
{"matrix": [2, 7], "x": 7.75, "y": 2},
|
||||
{"matrix": [2, 8], "x": 8.75, "y": 2},
|
||||
{"matrix": [2, 9], "x": 9.75, "y": 2},
|
||||
{"matrix": [2, 10], "x": 10.75, "y": 2},
|
||||
{"matrix": [2, 11], "x": 11.75, "y": 2},
|
||||
{"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
|
||||
{"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
|
||||
{"matrix": [3, 1], "x": 2.25, "y": 3},
|
||||
{"matrix": [3, 2], "x": 3.25, "y": 3},
|
||||
{"matrix": [3, 3], "x": 4.25, "y": 3},
|
||||
{"matrix": [3, 4], "x": 5.25, "y": 3},
|
||||
{"matrix": [3, 5], "x": 6.25, "y": 3},
|
||||
{"matrix": [3, 6], "x": 7.25, "y": 3},
|
||||
{"matrix": [3, 7], "x": 8.25, "y": 3},
|
||||
{"matrix": [3, 8], "x": 9.25, "y": 3},
|
||||
{"matrix": [3, 9], "x": 10.25, "y": 3},
|
||||
{"matrix": [3, 10], "x": 11.25, "y": 3},
|
||||
{"matrix": [4, 12], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"matrix": [3, 13], "x": 14, "y": 3},
|
||||
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 1], "x": 1.5, "y": 4},
|
||||
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
|
||||
{"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 11], "x": 12.5, "y": 4},
|
||||
{"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,5 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
// Copyright 2025 key10iq
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
@@ -13,7 +14,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
),
|
||||
|
||||
[1] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
|
||||
KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS,
|
||||
QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
8
keyboards/keyten/imi60_hs/keymaps/vial/config.h
Normal file
8
keyboards/keyten/imi60_hs/keymaps/vial/config.h
Normal file
@@ -0,0 +1,8 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
|
||||
#pragma once
|
||||
|
||||
#define VIAL_KEYBOARD_UID {0x4E, 0x5B, 0xA3, 0x4D, 0x62, 0x7F, 0x07, 0xF1}
|
||||
|
||||
#define VIAL_UNLOCK_COMBO_ROWS {0, 4}
|
||||
#define VIAL_UNLOCK_COMBO_COLS {0, 13}
|
||||
@@ -1,4 +1,5 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
// Copyright 2025 key10iq
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
@@ -13,7 +14,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
),
|
||||
|
||||
[1] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
|
||||
KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS,
|
||||
QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, 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
keyboards/keyten/imi60_hs/keymaps/vial/rules.mk
Normal file
2
keyboards/keyten/imi60_hs/keymaps/vial/rules.mk
Normal file
@@ -0,0 +1,2 @@
|
||||
VIA_ENABLE = yes
|
||||
VIAL_ENABLE = yes
|
||||
220
keyboards/keyten/imi60_hs/keymaps/vial/vial.json
Normal file
220
keyboards/keyten/imi60_hs/keymaps/vial/vial.json
Normal file
@@ -0,0 +1,220 @@
|
||||
{
|
||||
"name": "imi60-HS",
|
||||
"vendorId": "0xEB69",
|
||||
"productId": "0x6009",
|
||||
"lighting": "none",
|
||||
"matrix": {
|
||||
"rows": 5,
|
||||
"cols": 14
|
||||
},
|
||||
"layouts": {
|
||||
"labels": [
|
||||
"Split Backspace",
|
||||
[
|
||||
"Bottom Row",
|
||||
"Tsangan",
|
||||
"WKL",
|
||||
"HHKB"
|
||||
]
|
||||
],
|
||||
"keymap": [
|
||||
[
|
||||
{
|
||||
"c": "#777777"
|
||||
},
|
||||
"0,0",
|
||||
{
|
||||
"c": "#cccccc"
|
||||
},
|
||||
"0,1",
|
||||
"0,2",
|
||||
"0,3",
|
||||
"0,4",
|
||||
"0,5",
|
||||
"0,6",
|
||||
"0,7",
|
||||
"0,8",
|
||||
"0,9",
|
||||
"0,10",
|
||||
"0,11",
|
||||
"0,12",
|
||||
{
|
||||
"c": "#aaaaaa",
|
||||
"w": 2
|
||||
},
|
||||
"2,13\n\n\n0,0",
|
||||
{
|
||||
"x": 0.25,
|
||||
"c": "#cccccc"
|
||||
},
|
||||
"0,13\n\n\n0,1",
|
||||
"2,13\n\n\n0,1"
|
||||
],
|
||||
[
|
||||
{
|
||||
"c": "#aaaaaa",
|
||||
"w": 1.5
|
||||
},
|
||||
"1,0",
|
||||
{
|
||||
"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",
|
||||
{
|
||||
"w": 1.5
|
||||
},
|
||||
"1,13"
|
||||
],
|
||||
[
|
||||
{
|
||||
"c": "#aaaaaa",
|
||||
"w": 1.75
|
||||
},
|
||||
"2,0",
|
||||
{
|
||||
"c": "#cccccc"
|
||||
},
|
||||
"2,1",
|
||||
"2,2",
|
||||
"2,3",
|
||||
"2,4",
|
||||
"2,5",
|
||||
"2,6",
|
||||
"2,7",
|
||||
"2,8",
|
||||
"2,9",
|
||||
"2,10",
|
||||
"2,11",
|
||||
{
|
||||
"c": "#777777",
|
||||
"w": 2.25
|
||||
},
|
||||
"2,12"
|
||||
],
|
||||
[
|
||||
{
|
||||
"c": "#aaaaaa",
|
||||
"w": 2.25
|
||||
},
|
||||
"3,0",
|
||||
{
|
||||
"c": "#cccccc"
|
||||
},
|
||||
"3,1",
|
||||
"3,2",
|
||||
"3,3",
|
||||
"3,4",
|
||||
"3,5",
|
||||
"3,6",
|
||||
"3,7",
|
||||
"3,8",
|
||||
"3,9",
|
||||
"3,10",
|
||||
{
|
||||
"c": "#aaaaaa",
|
||||
"w": 1.75
|
||||
},
|
||||
"4,12",
|
||||
"3,13"
|
||||
],
|
||||
[
|
||||
{
|
||||
"w": 1.5
|
||||
},
|
||||
"4,0\n\n\n1,0",
|
||||
"4,1\n\n\n1,0",
|
||||
{
|
||||
"w": 1.5
|
||||
},
|
||||
"4,2\n\n\n1,0",
|
||||
{
|
||||
"c": "#cccccc",
|
||||
"w": 7
|
||||
},
|
||||
"4,6\n\n\n1,0",
|
||||
{
|
||||
"c": "#aaaaaa",
|
||||
"w": 1.5
|
||||
},
|
||||
"4,10\n\n\n1,0",
|
||||
"4,11\n\n\n1,0",
|
||||
{
|
||||
"w": 1.5
|
||||
},
|
||||
"4,13\n\n\n1,0"
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": 0.25,
|
||||
"w": 1.5
|
||||
},
|
||||
"4,0\n\n\n1,1",
|
||||
{
|
||||
"d": true
|
||||
},
|
||||
"4,1\n\n\n1,1",
|
||||
{
|
||||
"w": 1.5
|
||||
},
|
||||
"4,2\n\n\n1,1",
|
||||
{
|
||||
"c": "#cccccc",
|
||||
"w": 7
|
||||
},
|
||||
"4,6\n\n\n1,1",
|
||||
{
|
||||
"c": "#aaaaaa",
|
||||
"w": 1.5
|
||||
},
|
||||
"4,10\n\n\n1,1",
|
||||
{
|
||||
"d": true
|
||||
},
|
||||
"4,11\n\n\n1,1",
|
||||
{
|
||||
"w": 1.5
|
||||
},
|
||||
"4,13\n\n\n1,1"
|
||||
],
|
||||
[
|
||||
{
|
||||
"w": 1.5,
|
||||
"d": true
|
||||
},
|
||||
"4,0\n\n\n1,2",
|
||||
"4,1\n\n\n1,2",
|
||||
{
|
||||
"w": 1.5
|
||||
},
|
||||
"4,2\n\n\n1,2",
|
||||
{
|
||||
"c": "#cccccc",
|
||||
"w": 7
|
||||
},
|
||||
"4,6\n\n\n1,2",
|
||||
{
|
||||
"c": "#aaaaaa",
|
||||
"w": 1.5
|
||||
},
|
||||
"4,10\n\n\n1,2",
|
||||
"4,11\n\n\n1,2",
|
||||
{
|
||||
"w": 1.5,
|
||||
"d": true
|
||||
},
|
||||
"4,13\n\n\n1,2"
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
27
keyboards/keyten/imi60_hs/readme.md
Normal file
27
keyboards/keyten/imi60_hs/readme.md
Normal file
@@ -0,0 +1,27 @@
|
||||
# keyten imi60-HS
|
||||
|
||||
imi60-HS - 60% Hot-Swap PCB compatible with keyboards by La-Versa: Animi, Mirimi, Otsukimi and Abyss
|
||||
|
||||

|
||||
|
||||
* Keyboard Maintainer: [keyten](https://github.com/key10iq)
|
||||
* Hardware Supported: keyten imi60-HS
|
||||
* Hardware Availability: private GB
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make keyten/imi60_hs:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make keyten/imi60_hs: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
|
||||
* Keycode in layout: Press the key mapped to `QK_BOOT` if it is available
|
||||
* Physical reset button: Hold the button on the back of the PCB
|
||||
299
keyboards/keyten/kt356_mini/keyboard.json
Normal file
299
keyboards/keyten/kt356_mini/keyboard.json
Normal file
@@ -0,0 +1,299 @@
|
||||
{
|
||||
"manufacturer": "keyten",
|
||||
"keyboard_name": "kt356 Mini",
|
||||
"maintainer": "key10iq",
|
||||
"processor": "STM32F072",
|
||||
"bootloader": "stm32-dfu",
|
||||
"usb": {
|
||||
"vid": "0xEB69",
|
||||
"pid": "0x6008",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true
|
||||
},
|
||||
"diode_direction": "COL2ROW",
|
||||
"matrix_pins": {
|
||||
"rows": ["B4", "B5", "A6", "B10", "B11"],
|
||||
"cols": ["A15", "F1", "F0", "C14", "A3", "C13", "B1", "B9", "A4", "B8", "B0", "B7", "A7", "B6"]
|
||||
},
|
||||
"indicators": {
|
||||
"caps_lock": "A14"
|
||||
},
|
||||
"community_layouts": [
|
||||
"60_ansi",
|
||||
"60_ansi_split_bs_rshift",
|
||||
"60_ansi_tsangan",
|
||||
"60_ansi_tsangan_split_bs_rshift"
|
||||
],
|
||||
"layout_aliases": {
|
||||
"LAYOUT_all": "LAYOUT_60_ansi_split_bs_rshift"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT_60_ansi": {
|
||||
"layout": [
|
||||
{ "matrix": [0, 0], "x": 0, "y": 0 },
|
||||
{ "matrix": [0, 1], "x": 1, "y": 0 },
|
||||
{ "matrix": [0, 2], "x": 2, "y": 0 },
|
||||
{ "matrix": [0, 3], "x": 3, "y": 0 },
|
||||
{ "matrix": [0, 4], "x": 4, "y": 0 },
|
||||
{ "matrix": [0, 5], "x": 5, "y": 0 },
|
||||
{ "matrix": [0, 6], "x": 6, "y": 0 },
|
||||
{ "matrix": [0, 7], "x": 7, "y": 0 },
|
||||
{ "matrix": [0, 8], "x": 8, "y": 0 },
|
||||
{ "matrix": [0, 9], "x": 9, "y": 0 },
|
||||
{ "matrix": [0, 10], "x": 10, "y": 0 },
|
||||
{ "matrix": [0, 11], "x": 11, "y": 0 },
|
||||
{ "matrix": [0, 12], "x": 12, "y": 0 },
|
||||
{ "matrix": [2, 13], "w": 2, "x": 13, "y": 0 },
|
||||
{ "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 },
|
||||
{ "matrix": [1, 1], "x": 1.5, "y": 1 },
|
||||
{ "matrix": [1, 2], "x": 2.5, "y": 1 },
|
||||
{ "matrix": [1, 3], "x": 3.5, "y": 1 },
|
||||
{ "matrix": [1, 4], "x": 4.5, "y": 1 },
|
||||
{ "matrix": [1, 5], "x": 5.5, "y": 1 },
|
||||
{ "matrix": [1, 6], "x": 6.5, "y": 1 },
|
||||
{ "matrix": [1, 7], "x": 7.5, "y": 1 },
|
||||
{ "matrix": [1, 8], "x": 8.5, "y": 1 },
|
||||
{ "matrix": [1, 9], "x": 9.5, "y": 1 },
|
||||
{ "matrix": [1, 10], "x": 10.5, "y": 1 },
|
||||
{ "matrix": [1, 11], "x": 11.5, "y": 1 },
|
||||
{ "matrix": [1, 12], "x": 12.5, "y": 1 },
|
||||
{ "matrix": [1, 13], "w": 1.5, "x": 13.5, "y": 1 },
|
||||
{ "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 },
|
||||
{ "matrix": [2, 1], "x": 1.75, "y": 2 },
|
||||
{ "matrix": [2, 2], "x": 2.75, "y": 2 },
|
||||
{ "matrix": [2, 3], "x": 3.75, "y": 2 },
|
||||
{ "matrix": [2, 4], "x": 4.75, "y": 2 },
|
||||
{ "matrix": [2, 5], "x": 5.75, "y": 2 },
|
||||
{ "matrix": [2, 6], "x": 6.75, "y": 2 },
|
||||
{ "matrix": [2, 7], "x": 7.75, "y": 2 },
|
||||
{ "matrix": [2, 8], "x": 8.75, "y": 2 },
|
||||
{ "matrix": [2, 9], "x": 9.75, "y": 2 },
|
||||
{ "matrix": [2, 10], "x": 10.75, "y": 2 },
|
||||
{ "matrix": [2, 11], "x": 11.75, "y": 2 },
|
||||
{ "matrix": [2, 12], "w": 2.25, "x": 12.75, "y": 2 },
|
||||
{ "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 },
|
||||
{ "matrix": [3, 1], "x": 2.25, "y": 3 },
|
||||
{ "matrix": [3, 2], "x": 3.25, "y": 3 },
|
||||
{ "matrix": [3, 3], "x": 4.25, "y": 3 },
|
||||
{ "matrix": [3, 4], "x": 5.25, "y": 3 },
|
||||
{ "matrix": [3, 5], "x": 6.25, "y": 3 },
|
||||
{ "matrix": [3, 6], "x": 7.25, "y": 3 },
|
||||
{ "matrix": [3, 7], "x": 8.25, "y": 3 },
|
||||
{ "matrix": [3, 8], "x": 9.25, "y": 3 },
|
||||
{ "matrix": [3, 9], "x": 10.25, "y": 3 },
|
||||
{ "matrix": [3, 10], "x": 11.25, "y": 3 },
|
||||
{ "matrix": [3, 12], "w": 2.75, "x": 12.25, "y": 3 },
|
||||
{ "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 },
|
||||
{ "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 },
|
||||
{ "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 },
|
||||
{ "matrix": [4, 6], "w": 6.25, "x": 3.75, "y": 4 },
|
||||
{ "matrix": [4, 9], "w": 1.25, "x": 10, "y": 4 },
|
||||
{ "matrix": [4, 10], "w": 1.25, "x": 11.25, "y": 4 },
|
||||
{ "matrix": [4, 11], "w": 1.25, "x": 12.5, "y": 4 },
|
||||
{ "matrix": [4, 13], "w": 1.25, "x": 13.75, "y": 4 }
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_ansi_split_bs_rshift": {
|
||||
"layout": [
|
||||
{ "matrix": [0, 0], "x": 0, "y": 0 },
|
||||
{ "matrix": [0, 1], "x": 1, "y": 0 },
|
||||
{ "matrix": [0, 2], "x": 2, "y": 0 },
|
||||
{ "matrix": [0, 3], "x": 3, "y": 0 },
|
||||
{ "matrix": [0, 4], "x": 4, "y": 0 },
|
||||
{ "matrix": [0, 5], "x": 5, "y": 0 },
|
||||
{ "matrix": [0, 6], "x": 6, "y": 0 },
|
||||
{ "matrix": [0, 7], "x": 7, "y": 0 },
|
||||
{ "matrix": [0, 8], "x": 8, "y": 0 },
|
||||
{ "matrix": [0, 9], "x": 9, "y": 0 },
|
||||
{ "matrix": [0, 10], "x": 10, "y": 0 },
|
||||
{ "matrix": [0, 11], "x": 11, "y": 0 },
|
||||
{ "matrix": [0, 12], "x": 12, "y": 0 },
|
||||
{ "matrix": [0, 13], "x": 13, "y": 0 },
|
||||
{ "matrix": [2, 13], "x": 14, "y": 0 },
|
||||
{ "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 },
|
||||
{ "matrix": [1, 1], "x": 1.5, "y": 1 },
|
||||
{ "matrix": [1, 2], "x": 2.5, "y": 1 },
|
||||
{ "matrix": [1, 3], "x": 3.5, "y": 1 },
|
||||
{ "matrix": [1, 4], "x": 4.5, "y": 1 },
|
||||
{ "matrix": [1, 5], "x": 5.5, "y": 1 },
|
||||
{ "matrix": [1, 6], "x": 6.5, "y": 1 },
|
||||
{ "matrix": [1, 7], "x": 7.5, "y": 1 },
|
||||
{ "matrix": [1, 8], "x": 8.5, "y": 1 },
|
||||
{ "matrix": [1, 9], "x": 9.5, "y": 1 },
|
||||
{ "matrix": [1, 10], "x": 10.5, "y": 1 },
|
||||
{ "matrix": [1, 11], "x": 11.5, "y": 1 },
|
||||
{ "matrix": [1, 12], "x": 12.5, "y": 1 },
|
||||
{ "matrix": [1, 13], "w": 1.5, "x": 13.5, "y": 1 },
|
||||
{ "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 },
|
||||
{ "matrix": [2, 1], "x": 1.75, "y": 2 },
|
||||
{ "matrix": [2, 2], "x": 2.75, "y": 2 },
|
||||
{ "matrix": [2, 3], "x": 3.75, "y": 2 },
|
||||
{ "matrix": [2, 4], "x": 4.75, "y": 2 },
|
||||
{ "matrix": [2, 5], "x": 5.75, "y": 2 },
|
||||
{ "matrix": [2, 6], "x": 6.75, "y": 2 },
|
||||
{ "matrix": [2, 7], "x": 7.75, "y": 2 },
|
||||
{ "matrix": [2, 8], "x": 8.75, "y": 2 },
|
||||
{ "matrix": [2, 9], "x": 9.75, "y": 2 },
|
||||
{ "matrix": [2, 10], "x": 10.75, "y": 2 },
|
||||
{ "matrix": [2, 11], "x": 11.75, "y": 2 },
|
||||
{ "matrix": [2, 12], "w": 2.25, "x": 12.75, "y": 2 },
|
||||
{ "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 },
|
||||
{ "matrix": [3, 1], "x": 2.25, "y": 3 },
|
||||
{ "matrix": [3, 2], "x": 3.25, "y": 3 },
|
||||
{ "matrix": [3, 3], "x": 4.25, "y": 3 },
|
||||
{ "matrix": [3, 4], "x": 5.25, "y": 3 },
|
||||
{ "matrix": [3, 5], "x": 6.25, "y": 3 },
|
||||
{ "matrix": [3, 6], "x": 7.25, "y": 3 },
|
||||
{ "matrix": [3, 7], "x": 8.25, "y": 3 },
|
||||
{ "matrix": [3, 8], "x": 9.25, "y": 3 },
|
||||
{ "matrix": [3, 9], "x": 10.25, "y": 3 },
|
||||
{ "matrix": [3, 10], "x": 11.25, "y": 3 },
|
||||
{ "matrix": [3, 12], "w": 1.75, "x": 12.25, "y": 3 },
|
||||
{ "matrix": [3, 13], "x": 14, "y": 3 },
|
||||
{ "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 },
|
||||
{ "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 },
|
||||
{ "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 },
|
||||
{ "matrix": [4, 6], "w": 6.25, "x": 3.75, "y": 4 },
|
||||
{ "matrix": [4, 9], "w": 1.25, "x": 10, "y": 4 },
|
||||
{ "matrix": [4, 10], "w": 1.25, "x": 11.25, "y": 4 },
|
||||
{ "matrix": [4, 11], "w": 1.25, "x": 12.5, "y": 4 },
|
||||
{ "matrix": [4, 13], "w": 1.25, "x": 13.75, "y": 4 }
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_ansi_tsangan": {
|
||||
"layout": [
|
||||
{ "matrix": [0, 0], "x": 0, "y": 0 },
|
||||
{ "matrix": [0, 1], "x": 1, "y": 0 },
|
||||
{ "matrix": [0, 2], "x": 2, "y": 0 },
|
||||
{ "matrix": [0, 3], "x": 3, "y": 0 },
|
||||
{ "matrix": [0, 4], "x": 4, "y": 0 },
|
||||
{ "matrix": [0, 5], "x": 5, "y": 0 },
|
||||
{ "matrix": [0, 6], "x": 6, "y": 0 },
|
||||
{ "matrix": [0, 7], "x": 7, "y": 0 },
|
||||
{ "matrix": [0, 8], "x": 8, "y": 0 },
|
||||
{ "matrix": [0, 9], "x": 9, "y": 0 },
|
||||
{ "matrix": [0, 10], "x": 10, "y": 0 },
|
||||
{ "matrix": [0, 11], "x": 11, "y": 0 },
|
||||
{ "matrix": [0, 12], "x": 12, "y": 0 },
|
||||
{ "matrix": [2, 13], "w": 2, "x": 13, "y": 0 },
|
||||
{ "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 },
|
||||
{ "matrix": [1, 1], "x": 1.5, "y": 1 },
|
||||
{ "matrix": [1, 2], "x": 2.5, "y": 1 },
|
||||
{ "matrix": [1, 3], "x": 3.5, "y": 1 },
|
||||
{ "matrix": [1, 4], "x": 4.5, "y": 1 },
|
||||
{ "matrix": [1, 5], "x": 5.5, "y": 1 },
|
||||
{ "matrix": [1, 6], "x": 6.5, "y": 1 },
|
||||
{ "matrix": [1, 7], "x": 7.5, "y": 1 },
|
||||
{ "matrix": [1, 8], "x": 8.5, "y": 1 },
|
||||
{ "matrix": [1, 9], "x": 9.5, "y": 1 },
|
||||
{ "matrix": [1, 10], "x": 10.5, "y": 1 },
|
||||
{ "matrix": [1, 11], "x": 11.5, "y": 1 },
|
||||
{ "matrix": [1, 12], "x": 12.5, "y": 1 },
|
||||
{ "matrix": [1, 13], "w": 1.5, "x": 13.5, "y": 1 },
|
||||
{ "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 },
|
||||
{ "matrix": [2, 1], "x": 1.75, "y": 2 },
|
||||
{ "matrix": [2, 2], "x": 2.75, "y": 2 },
|
||||
{ "matrix": [2, 3], "x": 3.75, "y": 2 },
|
||||
{ "matrix": [2, 4], "x": 4.75, "y": 2 },
|
||||
{ "matrix": [2, 5], "x": 5.75, "y": 2 },
|
||||
{ "matrix": [2, 6], "x": 6.75, "y": 2 },
|
||||
{ "matrix": [2, 7], "x": 7.75, "y": 2 },
|
||||
{ "matrix": [2, 8], "x": 8.75, "y": 2 },
|
||||
{ "matrix": [2, 9], "x": 9.75, "y": 2 },
|
||||
{ "matrix": [2, 10], "x": 10.75, "y": 2 },
|
||||
{ "matrix": [2, 11], "x": 11.75, "y": 2 },
|
||||
{ "matrix": [2, 12], "w": 2.25, "x": 12.75, "y": 2 },
|
||||
{ "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 },
|
||||
{ "matrix": [3, 1], "x": 2.25, "y": 3 },
|
||||
{ "matrix": [3, 2], "x": 3.25, "y": 3 },
|
||||
{ "matrix": [3, 3], "x": 4.25, "y": 3 },
|
||||
{ "matrix": [3, 4], "x": 5.25, "y": 3 },
|
||||
{ "matrix": [3, 5], "x": 6.25, "y": 3 },
|
||||
{ "matrix": [3, 6], "x": 7.25, "y": 3 },
|
||||
{ "matrix": [3, 7], "x": 8.25, "y": 3 },
|
||||
{ "matrix": [3, 8], "x": 9.25, "y": 3 },
|
||||
{ "matrix": [3, 9], "x": 10.25, "y": 3 },
|
||||
{ "matrix": [3, 10], "x": 11.25, "y": 3 },
|
||||
{ "matrix": [3, 12], "w": 2.75, "x": 12.25, "y": 3 },
|
||||
{ "matrix": [4, 0], "w": 1.5, "x": 0, "y": 4 },
|
||||
{ "matrix": [4, 1], "x": 1.5, "y": 4 },
|
||||
{ "matrix": [4, 2], "w": 1.5, "x": 2.5, "y": 4 },
|
||||
{ "matrix": [4, 6], "w": 7, "x": 4, "y": 4 },
|
||||
{ "matrix": [4, 10], "w": 1.5, "x": 11, "y": 4 },
|
||||
{ "matrix": [4, 11], "x": 12.5, "y": 4 },
|
||||
{ "matrix": [4, 13], "w": 1.5, "x": 13.5, "y": 4 }
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_ansi_tsangan_split_bs_rshift": {
|
||||
"layout": [
|
||||
{ "matrix": [0, 0], "x": 0, "y": 0 },
|
||||
{ "matrix": [0, 1], "x": 1, "y": 0 },
|
||||
{ "matrix": [0, 2], "x": 2, "y": 0 },
|
||||
{ "matrix": [0, 3], "x": 3, "y": 0 },
|
||||
{ "matrix": [0, 4], "x": 4, "y": 0 },
|
||||
{ "matrix": [0, 5], "x": 5, "y": 0 },
|
||||
{ "matrix": [0, 6], "x": 6, "y": 0 },
|
||||
{ "matrix": [0, 7], "x": 7, "y": 0 },
|
||||
{ "matrix": [0, 8], "x": 8, "y": 0 },
|
||||
{ "matrix": [0, 9], "x": 9, "y": 0 },
|
||||
{ "matrix": [0, 10], "x": 10, "y": 0 },
|
||||
{ "matrix": [0, 11], "x": 11, "y": 0 },
|
||||
{ "matrix": [0, 12], "x": 12, "y": 0 },
|
||||
{ "matrix": [0, 13], "x": 13, "y": 0 },
|
||||
{ "matrix": [2, 13], "x": 14, "y": 0 },
|
||||
{ "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 },
|
||||
{ "matrix": [1, 1], "x": 1.5, "y": 1 },
|
||||
{ "matrix": [1, 2], "x": 2.5, "y": 1 },
|
||||
{ "matrix": [1, 3], "x": 3.5, "y": 1 },
|
||||
{ "matrix": [1, 4], "x": 4.5, "y": 1 },
|
||||
{ "matrix": [1, 5], "x": 5.5, "y": 1 },
|
||||
{ "matrix": [1, 6], "x": 6.5, "y": 1 },
|
||||
{ "matrix": [1, 7], "x": 7.5, "y": 1 },
|
||||
{ "matrix": [1, 8], "x": 8.5, "y": 1 },
|
||||
{ "matrix": [1, 9], "x": 9.5, "y": 1 },
|
||||
{ "matrix": [1, 10], "x": 10.5, "y": 1 },
|
||||
{ "matrix": [1, 11], "x": 11.5, "y": 1 },
|
||||
{ "matrix": [1, 12], "x": 12.5, "y": 1 },
|
||||
{ "matrix": [1, 13], "w": 1.5, "x": 13.5, "y": 1 },
|
||||
{ "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 },
|
||||
{ "matrix": [2, 1], "x": 1.75, "y": 2 },
|
||||
{ "matrix": [2, 2], "x": 2.75, "y": 2 },
|
||||
{ "matrix": [2, 3], "x": 3.75, "y": 2 },
|
||||
{ "matrix": [2, 4], "x": 4.75, "y": 2 },
|
||||
{ "matrix": [2, 5], "x": 5.75, "y": 2 },
|
||||
{ "matrix": [2, 6], "x": 6.75, "y": 2 },
|
||||
{ "matrix": [2, 7], "x": 7.75, "y": 2 },
|
||||
{ "matrix": [2, 8], "x": 8.75, "y": 2 },
|
||||
{ "matrix": [2, 9], "x": 9.75, "y": 2 },
|
||||
{ "matrix": [2, 10], "x": 10.75, "y": 2 },
|
||||
{ "matrix": [2, 11], "x": 11.75, "y": 2 },
|
||||
{ "matrix": [2, 12], "w": 2.25, "x": 12.75, "y": 2 },
|
||||
{ "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 },
|
||||
{ "matrix": [3, 1], "x": 2.25, "y": 3 },
|
||||
{ "matrix": [3, 2], "x": 3.25, "y": 3 },
|
||||
{ "matrix": [3, 3], "x": 4.25, "y": 3 },
|
||||
{ "matrix": [3, 4], "x": 5.25, "y": 3 },
|
||||
{ "matrix": [3, 5], "x": 6.25, "y": 3 },
|
||||
{ "matrix": [3, 6], "x": 7.25, "y": 3 },
|
||||
{ "matrix": [3, 7], "x": 8.25, "y": 3 },
|
||||
{ "matrix": [3, 8], "x": 9.25, "y": 3 },
|
||||
{ "matrix": [3, 9], "x": 10.25, "y": 3 },
|
||||
{ "matrix": [3, 10], "x": 11.25, "y": 3 },
|
||||
{ "matrix": [3, 12], "w": 1.75, "x": 12.25, "y": 3 },
|
||||
{ "matrix": [3, 13], "x": 14, "y": 3 },
|
||||
{ "matrix": [4, 0], "w": 1.5, "x": 0, "y": 4 },
|
||||
{ "matrix": [4, 1], "x": 1.5, "y": 4 },
|
||||
{ "matrix": [4, 2], "w": 1.5, "x": 2.5, "y": 4 },
|
||||
{ "matrix": [4, 6], "w": 7, "x": 4, "y": 4 },
|
||||
{ "matrix": [4, 10], "w": 1.5, "x": 11, "y": 4 },
|
||||
{ "matrix": [4, 11], "x": 12.5, "y": 4 },
|
||||
{ "matrix": [4, 13], "w": 1.5, "x": 13.5, "y": 4 }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
24
keyboards/keyten/kt356_mini/keymaps/default/keymap.c
Normal file
24
keyboards/keyten/kt356_mini/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,24 @@
|
||||
// Copyright 2025 key10iq
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[0] = LAYOUT_60_ansi_split_bs_rshift(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_APP, KC_RALT, KC_RGUI, KC_RCTL
|
||||
),
|
||||
|
||||
[1] = LAYOUT_60_ansi_split_bs_rshift(
|
||||
QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
)
|
||||
|
||||
};
|
||||
8
keyboards/keyten/kt356_mini/keymaps/vial/config.h
Normal file
8
keyboards/keyten/kt356_mini/keymaps/vial/config.h
Normal file
@@ -0,0 +1,8 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
|
||||
#pragma once
|
||||
|
||||
#define VIAL_KEYBOARD_UID {0x33, 0x15, 0xBE, 0xE4, 0xF9, 0x14, 0x61, 0x98}
|
||||
|
||||
#define VIAL_UNLOCK_COMBO_ROWS {0, 4}
|
||||
#define VIAL_UNLOCK_COMBO_COLS {0, 13}
|
||||
24
keyboards/keyten/kt356_mini/keymaps/vial/keymap.c
Normal file
24
keyboards/keyten/kt356_mini/keymaps/vial/keymap.c
Normal file
@@ -0,0 +1,24 @@
|
||||
// Copyright 2025 key10iq
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[0] = LAYOUT_60_ansi_split_bs_rshift(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_APP, KC_RALT, KC_RGUI, KC_RCTL
|
||||
),
|
||||
|
||||
[1] = LAYOUT_60_ansi_split_bs_rshift(
|
||||
QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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
keyboards/keyten/kt356_mini/keymaps/vial/rules.mk
Normal file
2
keyboards/keyten/kt356_mini/keymaps/vial/rules.mk
Normal file
@@ -0,0 +1,2 @@
|
||||
VIA_ENABLE = yes
|
||||
VIAL_ENABLE = yes
|
||||
208
keyboards/keyten/kt356_mini/keymaps/vial/vial.json
Normal file
208
keyboards/keyten/kt356_mini/keymaps/vial/vial.json
Normal file
@@ -0,0 +1,208 @@
|
||||
{
|
||||
"name": "kt356 Mini",
|
||||
"vendorId": "0xEB69",
|
||||
"productId": "0x6008",
|
||||
"lighting": "none",
|
||||
"matrix": {
|
||||
"rows": 5,
|
||||
"cols": 14
|
||||
},
|
||||
"layouts": {
|
||||
"labels": [
|
||||
"Split Backspace",
|
||||
"Split Right Shift",
|
||||
[
|
||||
"Bottom Row",
|
||||
"Tsangan",
|
||||
"ANSI"
|
||||
]
|
||||
],
|
||||
"keymap": [
|
||||
[
|
||||
{
|
||||
"c": "#777777"
|
||||
},
|
||||
"0,0",
|
||||
{
|
||||
"c": "#cccccc"
|
||||
},
|
||||
"0,1",
|
||||
"0,2",
|
||||
"0,3",
|
||||
"0,4",
|
||||
"0,5",
|
||||
"0,6",
|
||||
"0,7",
|
||||
"0,8",
|
||||
"0,9",
|
||||
"0,10",
|
||||
"0,11",
|
||||
"0,12",
|
||||
{
|
||||
"c": "#aaaaaa",
|
||||
"w": 2
|
||||
},
|
||||
"2,13\n\n\n0,0",
|
||||
{
|
||||
"x": 1,
|
||||
"c": "#cccccc"
|
||||
},
|
||||
"0,13\n\n\n0,1",
|
||||
{
|
||||
"c": "#aaaaaa"
|
||||
},
|
||||
"2,13\n\n\n0,1"
|
||||
],
|
||||
[
|
||||
{
|
||||
"w": 1.5
|
||||
},
|
||||
"1,0",
|
||||
{
|
||||
"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",
|
||||
{
|
||||
"w": 1.5
|
||||
},
|
||||
"1,13\n\n\n0,0",
|
||||
{
|
||||
"x": 1.5,
|
||||
"c": "#aaaaaa",
|
||||
"w": 1.5
|
||||
},
|
||||
"1,13\n\n\n0,1"
|
||||
],
|
||||
[
|
||||
{
|
||||
"w": 1.75
|
||||
},
|
||||
"2,0",
|
||||
{
|
||||
"c": "#cccccc"
|
||||
},
|
||||
"2,1",
|
||||
"2,2",
|
||||
"2,3",
|
||||
"2,4",
|
||||
"2,5",
|
||||
"2,6",
|
||||
"2,7",
|
||||
"2,8",
|
||||
"2,9",
|
||||
"2,10",
|
||||
"2,11",
|
||||
{
|
||||
"c": "#777777",
|
||||
"w": 2.25
|
||||
},
|
||||
"2,12"
|
||||
],
|
||||
[
|
||||
{
|
||||
"c": "#aaaaaa",
|
||||
"w": 2.25
|
||||
},
|
||||
"3,0",
|
||||
{
|
||||
"c": "#cccccc"
|
||||
},
|
||||
"3,1",
|
||||
"3,2",
|
||||
"3,3",
|
||||
"3,4",
|
||||
"3,5",
|
||||
"3,6",
|
||||
"3,7",
|
||||
"3,8",
|
||||
"3,9",
|
||||
"3,10",
|
||||
{
|
||||
"c": "#aaaaaa",
|
||||
"w": 2.75
|
||||
},
|
||||
"3,12\n\n\n1,0",
|
||||
{
|
||||
"x": 0.25,
|
||||
"w": 1.75
|
||||
},
|
||||
"3,12\n\n\n1,1",
|
||||
"3,13\n\n\n1,1"
|
||||
],
|
||||
[
|
||||
{
|
||||
"w": 1.5
|
||||
},
|
||||
"4,0\n\n\n2,0",
|
||||
"4,1\n\n\n2,0",
|
||||
{
|
||||
"w": 1.5
|
||||
},
|
||||
"4,2\n\n\n2,0",
|
||||
{
|
||||
"c": "#cccccc",
|
||||
"w": 7
|
||||
},
|
||||
"4,6\n\n\n2,0",
|
||||
{
|
||||
"c": "#aaaaaa",
|
||||
"w": 1.5
|
||||
},
|
||||
"4,10\n\n\n2,0",
|
||||
"4,11\n\n\n2,0",
|
||||
{
|
||||
"w": 1.5
|
||||
},
|
||||
"4,13\n\n\n2,0"
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": 0.25,
|
||||
"w": 1.25
|
||||
},
|
||||
"4,0\n\n\n2,1",
|
||||
{
|
||||
"w": 1.25
|
||||
},
|
||||
"4,1\n\n\n2,1",
|
||||
{
|
||||
"w": 1.25
|
||||
},
|
||||
"4,2\n\n\n2,1",
|
||||
{
|
||||
"c": "#cccccc",
|
||||
"w": 6.25
|
||||
},
|
||||
"4,6\n\n\n2,1",
|
||||
{
|
||||
"c": "#aaaaaa",
|
||||
"w": 1.25
|
||||
},
|
||||
"4,9\n\n\n2,1",
|
||||
{
|
||||
"w": 1.25
|
||||
},
|
||||
"4,10\n\n\n2,1",
|
||||
{
|
||||
"w": 1.25
|
||||
},
|
||||
"4,11\n\n\n2,1",
|
||||
{
|
||||
"w": 1.25
|
||||
},
|
||||
"4,13\n\n\n2,1"
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
27
keyboards/keyten/kt356_mini/readme.md
Normal file
27
keyboards/keyten/kt356_mini/readme.md
Normal file
@@ -0,0 +1,27 @@
|
||||
# keyten kt356 Mini
|
||||
|
||||
Replacement PCB for the OTD (and UTD) 356 Mini keyboard.
|
||||
|
||||

|
||||
|
||||
* Keyboard Maintainer: [keyten](https://github.com/key10iq)
|
||||
* Hardware Supported: keyten kt356 Mini
|
||||
* Hardware Availability: private GB
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make keyten/kt356_mini:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make keyten/kt356_mini: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
|
||||
* Keycode in layout: Press the key mapped to `QK_BOOT` if it is available
|
||||
* Physical reset button: Hold the button on the back of the PCB
|
||||
@@ -2,15 +2,16 @@
|
||||
|
||||
60% MX Hot-Swap Tsangan PCB
|
||||
|
||||

|
||||

|
||||
|
||||
Supports:
|
||||
1. Split Backspace
|
||||
2. Stepped Caps Lock
|
||||
|
||||
There are two versions of the PCB available.
|
||||
There are three versions of the PCB available.
|
||||
|
||||
|Version| Features |
|
||||
|-------|-------------------------------------------|
|
||||
|v1 |Blue/Purple PCB / ARM STM32F401 controller |
|
||||
|v2 |Purple PCB / ARM STM32F072 controller |
|
||||
|Version| Features |
|
||||
|-------|---------------------------------------------------------|
|
||||
|v1 |Blue/Purple PCB / ARM STM32F401 controller |
|
||||
|v2 |Purple PCB / ARM STM32F072 controller |
|
||||
|v3 |Purple PCB / ARM STM32F072 controller, different routing |
|
||||
|
||||
23
keyboards/keyten/kt60hs_t/v1/keymaps/default/keymap.c
Normal file
23
keyboards/keyten/kt60hs_t/v1/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,23 @@
|
||||
// Copyright 2025 key10iq
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[0] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL
|
||||
),
|
||||
|
||||
[1] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
|
||||
QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
)
|
||||
};
|
||||
8
keyboards/keyten/kt60hs_t/v1/keymaps/vial/config.h
Normal file
8
keyboards/keyten/kt60hs_t/v1/keymaps/vial/config.h
Normal file
@@ -0,0 +1,8 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
|
||||
#pragma once
|
||||
|
||||
#define VIAL_KEYBOARD_UID {0xDA, 0x36, 0x8F, 0x21, 0xC8, 0x47, 0xD6, 0xDA}
|
||||
|
||||
#define VIAL_UNLOCK_COMBO_ROWS {0, 4}
|
||||
#define VIAL_UNLOCK_COMBO_COLS {0, 13}
|
||||
23
keyboards/keyten/kt60hs_t/v1/keymaps/vial/keymap.c
Normal file
23
keyboards/keyten/kt60hs_t/v1/keymaps/vial/keymap.c
Normal file
@@ -0,0 +1,23 @@
|
||||
// Copyright 2025 key10iq
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[0] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL
|
||||
),
|
||||
|
||||
[1] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
|
||||
QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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
keyboards/keyten/kt60hs_t/v1/keymaps/vial/rules.mk
Normal file
2
keyboards/keyten/kt60hs_t/v1/keymaps/vial/rules.mk
Normal file
@@ -0,0 +1,2 @@
|
||||
VIA_ENABLE = yes
|
||||
VIAL_ENABLE = yes
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "kt60HS-T",
|
||||
"vendorId": "0xEB69",
|
||||
"productId": "0x6007",
|
||||
"productId": "0x6004",
|
||||
"lighting": "none",
|
||||
"matrix": {
|
||||
"rows": 5,
|
||||
23
keyboards/keyten/kt60hs_t/v2/keymaps/default/keymap.c
Normal file
23
keyboards/keyten/kt60hs_t/v2/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,23 @@
|
||||
// Copyright 2025 key10iq
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[0] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL
|
||||
),
|
||||
|
||||
[1] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
|
||||
QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
)
|
||||
};
|
||||
23
keyboards/keyten/kt60hs_t/v2/keymaps/vial/keymap.c
Normal file
23
keyboards/keyten/kt60hs_t/v2/keymaps/vial/keymap.c
Normal file
@@ -0,0 +1,23 @@
|
||||
// Copyright 2025 key10iq
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[0] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL
|
||||
),
|
||||
|
||||
[1] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
|
||||
QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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
keyboards/keyten/kt60hs_t/v2/keymaps/vial/rules.mk
Normal file
2
keyboards/keyten/kt60hs_t/v2/keymaps/vial/rules.mk
Normal file
@@ -0,0 +1,2 @@
|
||||
VIA_ENABLE = yes
|
||||
VIAL_ENABLE = yes
|
||||
251
keyboards/keyten/kt60hs_t/v2/keymaps/vial/vial.json
Normal file
251
keyboards/keyten/kt60hs_t/v2/keymaps/vial/vial.json
Normal file
@@ -0,0 +1,251 @@
|
||||
{
|
||||
"name": "kt60HS-T v2",
|
||||
"vendorId": "0xEB69",
|
||||
"productId": "0x6007",
|
||||
"lighting": "none",
|
||||
"matrix": {
|
||||
"rows": 5,
|
||||
"cols": 14
|
||||
},
|
||||
"layouts": {
|
||||
"labels": [
|
||||
"Split Backspace",
|
||||
[
|
||||
"Bottom Row",
|
||||
"Tsangan",
|
||||
"WKL",
|
||||
"HHKB",
|
||||
"10U"
|
||||
]
|
||||
],
|
||||
"keymap": [
|
||||
[
|
||||
{
|
||||
"c": "#777777"
|
||||
},
|
||||
"0,0",
|
||||
{
|
||||
"c": "#cccccc"
|
||||
},
|
||||
"0,1",
|
||||
"0,2",
|
||||
"0,3",
|
||||
"0,4",
|
||||
"0,5",
|
||||
"0,6",
|
||||
"0,7",
|
||||
"0,8",
|
||||
"0,9",
|
||||
"0,10",
|
||||
"0,11",
|
||||
"0,12",
|
||||
{
|
||||
"c": "#aaaaaa",
|
||||
"w": 2
|
||||
},
|
||||
"2,13\n\n\n0,0",
|
||||
{
|
||||
"x": 0.25,
|
||||
"c": "#cccccc"
|
||||
},
|
||||
"0,13\n\n\n0,1",
|
||||
"2,13\n\n\n0,1"
|
||||
],
|
||||
[
|
||||
{
|
||||
"c": "#aaaaaa",
|
||||
"w": 1.5
|
||||
},
|
||||
"1,0",
|
||||
{
|
||||
"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",
|
||||
{
|
||||
"w": 1.5
|
||||
},
|
||||
"1,13"
|
||||
],
|
||||
[
|
||||
{
|
||||
"c": "#aaaaaa",
|
||||
"w": 1.75
|
||||
},
|
||||
"2,0",
|
||||
{
|
||||
"c": "#cccccc"
|
||||
},
|
||||
"2,1",
|
||||
"2,2",
|
||||
"2,3",
|
||||
"2,4",
|
||||
"2,5",
|
||||
"2,6",
|
||||
"2,7",
|
||||
"2,8",
|
||||
"2,9",
|
||||
"2,10",
|
||||
"2,11",
|
||||
{
|
||||
"c": "#777777",
|
||||
"w": 2.25
|
||||
},
|
||||
"2,12"
|
||||
],
|
||||
[
|
||||
{
|
||||
"c": "#aaaaaa",
|
||||
"w": 2.25
|
||||
},
|
||||
"3,0",
|
||||
{
|
||||
"c": "#cccccc"
|
||||
},
|
||||
"3,1",
|
||||
"3,2",
|
||||
"3,3",
|
||||
"3,4",
|
||||
"3,5",
|
||||
"3,6",
|
||||
"3,7",
|
||||
"3,8",
|
||||
"3,9",
|
||||
"3,10",
|
||||
{
|
||||
"c": "#aaaaaa",
|
||||
"w": 1.75
|
||||
},
|
||||
"4,12",
|
||||
"3,13"
|
||||
],
|
||||
[
|
||||
{
|
||||
"w": 1.5
|
||||
},
|
||||
"4,0\n\n\n1,0",
|
||||
"4,1\n\n\n1,0",
|
||||
{
|
||||
"w": 1.5
|
||||
},
|
||||
"4,2\n\n\n1,0",
|
||||
{
|
||||
"c": "#cccccc",
|
||||
"w": 7
|
||||
},
|
||||
"4,6\n\n\n1,0",
|
||||
{
|
||||
"c": "#aaaaaa",
|
||||
"w": 1.5
|
||||
},
|
||||
"4,10\n\n\n1,0",
|
||||
"4,11\n\n\n1,0",
|
||||
{
|
||||
"w": 1.5
|
||||
},
|
||||
"4,13\n\n\n1,0"
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": 0.25,
|
||||
"w": 1.5
|
||||
},
|
||||
"4,0\n\n\n1,1",
|
||||
{
|
||||
"d": true
|
||||
},
|
||||
"4,1\n\n\n1,1",
|
||||
{
|
||||
"w": 1.5
|
||||
},
|
||||
"4,2\n\n\n1,1",
|
||||
{
|
||||
"c": "#cccccc",
|
||||
"w": 7
|
||||
},
|
||||
"4,6\n\n\n1,1",
|
||||
{
|
||||
"c": "#aaaaaa",
|
||||
"w": 1.5
|
||||
},
|
||||
"4,10\n\n\n1,1",
|
||||
{
|
||||
"d": true
|
||||
},
|
||||
"4,11\n\n\n1,1",
|
||||
{
|
||||
"w": 1.5
|
||||
},
|
||||
"4,13\n\n\n1,1"
|
||||
],
|
||||
[
|
||||
{
|
||||
"w": 1.5,
|
||||
"d": true
|
||||
},
|
||||
"4,0\n\n\n1,2",
|
||||
"4,1\n\n\n1,2",
|
||||
{
|
||||
"w": 1.5
|
||||
},
|
||||
"4,2\n\n\n1,2",
|
||||
{
|
||||
"c": "#cccccc",
|
||||
"w": 7
|
||||
},
|
||||
"4,6\n\n\n1,2",
|
||||
{
|
||||
"c": "#aaaaaa",
|
||||
"w": 1.5
|
||||
},
|
||||
"4,10\n\n\n1,2",
|
||||
"4,11\n\n\n1,2",
|
||||
{
|
||||
"w": 1.5,
|
||||
"d": true
|
||||
},
|
||||
"4,13\n\n\n1,2"
|
||||
],
|
||||
[
|
||||
{
|
||||
"w": 1.5
|
||||
},
|
||||
"4,0\n\n\n1,3",
|
||||
"4,1\n\n\n1,3",
|
||||
{
|
||||
"w": 1.5,
|
||||
"d": true
|
||||
},
|
||||
"4,2\n\n\n1,3",
|
||||
{
|
||||
"x": -1.5,
|
||||
"c": "#cccccc",
|
||||
"w": 10
|
||||
},
|
||||
"4,6\n\n\n1,3",
|
||||
{
|
||||
"x": -1.5,
|
||||
"c": "#aaaaaa",
|
||||
"w": 1.5,
|
||||
"d": true
|
||||
},
|
||||
"4,10\n\n\n1,3",
|
||||
"4,11\n\n\n1,3",
|
||||
{
|
||||
"w": 1.5
|
||||
},
|
||||
"4,13\n\n\n1,3"
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
282
keyboards/keyten/kt60hs_t/v3/keyboard.json
Normal file
282
keyboards/keyten/kt60hs_t/v3/keyboard.json
Normal file
@@ -0,0 +1,282 @@
|
||||
{
|
||||
"bootloader": "stm32-dfu",
|
||||
"diode_direction": "COL2ROW",
|
||||
"matrix_pins": {
|
||||
"cols": ["A3", "A4", "B12", "B15", "A7", "B9", "B8", "B7", "B6", "B5", "B4", "B3", "A15", "A14"],
|
||||
"rows": ["B13", "B14", "A5", "A6", "B0"]
|
||||
},
|
||||
"processor": "STM32F072",
|
||||
"usb": {
|
||||
"device_version": "3.0.0",
|
||||
"pid": "0x6010"
|
||||
},
|
||||
"community_layouts": [
|
||||
"60_ansi_wkl_split_bs_rshift",
|
||||
"60_hhkb",
|
||||
"60_ansi_tsangan_split_bs_rshift"
|
||||
],
|
||||
"layout_aliases": {
|
||||
"LAYOUT_all": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT_60_ansi_wkl_split_bs_rshift": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"matrix": [0, 13], "x": 13, "y": 0},
|
||||
{"matrix": [2, 13], "x": 14, "y": 0},
|
||||
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [1, 1], "x": 1.5, "y": 1},
|
||||
{"matrix": [1, 2], "x": 2.5, "y": 1},
|
||||
{"matrix": [1, 3], "x": 3.5, "y": 1},
|
||||
{"matrix": [1, 4], "x": 4.5, "y": 1},
|
||||
{"matrix": [1, 5], "x": 5.5, "y": 1},
|
||||
{"matrix": [1, 6], "x": 6.5, "y": 1},
|
||||
{"matrix": [1, 7], "x": 7.5, "y": 1},
|
||||
{"matrix": [1, 8], "x": 8.5, "y": 1},
|
||||
{"matrix": [1, 9], "x": 9.5, "y": 1},
|
||||
{"matrix": [1, 10], "x": 10.5, "y": 1},
|
||||
{"matrix": [1, 11], "x": 11.5, "y": 1},
|
||||
{"matrix": [1, 12], "x": 12.5, "y": 1},
|
||||
{"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
|
||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [2, 1], "x": 1.75, "y": 2},
|
||||
{"matrix": [2, 2], "x": 2.75, "y": 2},
|
||||
{"matrix": [2, 3], "x": 3.75, "y": 2},
|
||||
{"matrix": [2, 4], "x": 4.75, "y": 2},
|
||||
{"matrix": [2, 5], "x": 5.75, "y": 2},
|
||||
{"matrix": [2, 6], "x": 6.75, "y": 2},
|
||||
{"matrix": [2, 7], "x": 7.75, "y": 2},
|
||||
{"matrix": [2, 8], "x": 8.75, "y": 2},
|
||||
{"matrix": [2, 9], "x": 9.75, "y": 2},
|
||||
{"matrix": [2, 10], "x": 10.75, "y": 2},
|
||||
{"matrix": [2, 11], "x": 11.75, "y": 2},
|
||||
{"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
|
||||
{"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
|
||||
{"matrix": [3, 1], "x": 2.25, "y": 3},
|
||||
{"matrix": [3, 2], "x": 3.25, "y": 3},
|
||||
{"matrix": [3, 3], "x": 4.25, "y": 3},
|
||||
{"matrix": [3, 4], "x": 5.25, "y": 3},
|
||||
{"matrix": [3, 5], "x": 6.25, "y": 3},
|
||||
{"matrix": [3, 6], "x": 7.25, "y": 3},
|
||||
{"matrix": [3, 7], "x": 8.25, "y": 3},
|
||||
{"matrix": [3, 8], "x": 9.25, "y": 3},
|
||||
{"matrix": [3, 9], "x": 10.25, "y": 3},
|
||||
{"matrix": [3, 10], "x": 11.25, "y": 3},
|
||||
{"matrix": [4, 12], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"matrix": [3, 13], "x": 14, "y": 3},
|
||||
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
|
||||
{"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_hhkb": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"matrix": [0, 13], "x": 13, "y": 0},
|
||||
{"matrix": [2, 13], "x": 14, "y": 0},
|
||||
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [1, 1], "x": 1.5, "y": 1},
|
||||
{"matrix": [1, 2], "x": 2.5, "y": 1},
|
||||
{"matrix": [1, 3], "x": 3.5, "y": 1},
|
||||
{"matrix": [1, 4], "x": 4.5, "y": 1},
|
||||
{"matrix": [1, 5], "x": 5.5, "y": 1},
|
||||
{"matrix": [1, 6], "x": 6.5, "y": 1},
|
||||
{"matrix": [1, 7], "x": 7.5, "y": 1},
|
||||
{"matrix": [1, 8], "x": 8.5, "y": 1},
|
||||
{"matrix": [1, 9], "x": 9.5, "y": 1},
|
||||
{"matrix": [1, 10], "x": 10.5, "y": 1},
|
||||
{"matrix": [1, 11], "x": 11.5, "y": 1},
|
||||
{"matrix": [1, 12], "x": 12.5, "y": 1},
|
||||
{"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
|
||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [2, 1], "x": 1.75, "y": 2},
|
||||
{"matrix": [2, 2], "x": 2.75, "y": 2},
|
||||
{"matrix": [2, 3], "x": 3.75, "y": 2},
|
||||
{"matrix": [2, 4], "x": 4.75, "y": 2},
|
||||
{"matrix": [2, 5], "x": 5.75, "y": 2},
|
||||
{"matrix": [2, 6], "x": 6.75, "y": 2},
|
||||
{"matrix": [2, 7], "x": 7.75, "y": 2},
|
||||
{"matrix": [2, 8], "x": 8.75, "y": 2},
|
||||
{"matrix": [2, 9], "x": 9.75, "y": 2},
|
||||
{"matrix": [2, 10], "x": 10.75, "y": 2},
|
||||
{"matrix": [2, 11], "x": 11.75, "y": 2},
|
||||
{"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
|
||||
{"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
|
||||
{"matrix": [3, 1], "x": 2.25, "y": 3},
|
||||
{"matrix": [3, 2], "x": 3.25, "y": 3},
|
||||
{"matrix": [3, 3], "x": 4.25, "y": 3},
|
||||
{"matrix": [3, 4], "x": 5.25, "y": 3},
|
||||
{"matrix": [3, 5], "x": 6.25, "y": 3},
|
||||
{"matrix": [3, 6], "x": 7.25, "y": 3},
|
||||
{"matrix": [3, 7], "x": 8.25, "y": 3},
|
||||
{"matrix": [3, 8], "x": 9.25, "y": 3},
|
||||
{"matrix": [3, 9], "x": 10.25, "y": 3},
|
||||
{"matrix": [3, 10], "x": 11.25, "y": 3},
|
||||
{"matrix": [4, 12], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"matrix": [3, 13], "x": 14, "y": 3},
|
||||
{"matrix": [4, 1], "x": 1.5, "y": 4},
|
||||
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
|
||||
{"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 11], "x": 12.5, "y": 4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_ansi_tsangan_split_bs_rshift": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"matrix": [0, 13], "x": 13, "y": 0},
|
||||
{"matrix": [2, 13], "x": 14, "y": 0},
|
||||
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [1, 1], "x": 1.5, "y": 1},
|
||||
{"matrix": [1, 2], "x": 2.5, "y": 1},
|
||||
{"matrix": [1, 3], "x": 3.5, "y": 1},
|
||||
{"matrix": [1, 4], "x": 4.5, "y": 1},
|
||||
{"matrix": [1, 5], "x": 5.5, "y": 1},
|
||||
{"matrix": [1, 6], "x": 6.5, "y": 1},
|
||||
{"matrix": [1, 7], "x": 7.5, "y": 1},
|
||||
{"matrix": [1, 8], "x": 8.5, "y": 1},
|
||||
{"matrix": [1, 9], "x": 9.5, "y": 1},
|
||||
{"matrix": [1, 10], "x": 10.5, "y": 1},
|
||||
{"matrix": [1, 11], "x": 11.5, "y": 1},
|
||||
{"matrix": [1, 12], "x": 12.5, "y": 1},
|
||||
{"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
|
||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [2, 1], "x": 1.75, "y": 2},
|
||||
{"matrix": [2, 2], "x": 2.75, "y": 2},
|
||||
{"matrix": [2, 3], "x": 3.75, "y": 2},
|
||||
{"matrix": [2, 4], "x": 4.75, "y": 2},
|
||||
{"matrix": [2, 5], "x": 5.75, "y": 2},
|
||||
{"matrix": [2, 6], "x": 6.75, "y": 2},
|
||||
{"matrix": [2, 7], "x": 7.75, "y": 2},
|
||||
{"matrix": [2, 8], "x": 8.75, "y": 2},
|
||||
{"matrix": [2, 9], "x": 9.75, "y": 2},
|
||||
{"matrix": [2, 10], "x": 10.75, "y": 2},
|
||||
{"matrix": [2, 11], "x": 11.75, "y": 2},
|
||||
{"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
|
||||
{"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
|
||||
{"matrix": [3, 1], "x": 2.25, "y": 3},
|
||||
{"matrix": [3, 2], "x": 3.25, "y": 3},
|
||||
{"matrix": [3, 3], "x": 4.25, "y": 3},
|
||||
{"matrix": [3, 4], "x": 5.25, "y": 3},
|
||||
{"matrix": [3, 5], "x": 6.25, "y": 3},
|
||||
{"matrix": [3, 6], "x": 7.25, "y": 3},
|
||||
{"matrix": [3, 7], "x": 8.25, "y": 3},
|
||||
{"matrix": [3, 8], "x": 9.25, "y": 3},
|
||||
{"matrix": [3, 9], "x": 10.25, "y": 3},
|
||||
{"matrix": [3, 10], "x": 11.25, "y": 3},
|
||||
{"matrix": [4, 12], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"matrix": [3, 13], "x": 14, "y": 3},
|
||||
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 1], "x": 1.5, "y": 4},
|
||||
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
|
||||
{"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 11], "x": 12.5, "y": 4},
|
||||
{"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_ansi_tsangan_split_rshift": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"matrix": [2, 13], "x": 13, "y": 0, "w": 2},
|
||||
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [1, 1], "x": 1.5, "y": 1},
|
||||
{"matrix": [1, 2], "x": 2.5, "y": 1},
|
||||
{"matrix": [1, 3], "x": 3.5, "y": 1},
|
||||
{"matrix": [1, 4], "x": 4.5, "y": 1},
|
||||
{"matrix": [1, 5], "x": 5.5, "y": 1},
|
||||
{"matrix": [1, 6], "x": 6.5, "y": 1},
|
||||
{"matrix": [1, 7], "x": 7.5, "y": 1},
|
||||
{"matrix": [1, 8], "x": 8.5, "y": 1},
|
||||
{"matrix": [1, 9], "x": 9.5, "y": 1},
|
||||
{"matrix": [1, 10], "x": 10.5, "y": 1},
|
||||
{"matrix": [1, 11], "x": 11.5, "y": 1},
|
||||
{"matrix": [1, 12], "x": 12.5, "y": 1},
|
||||
{"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
|
||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [2, 1], "x": 1.75, "y": 2},
|
||||
{"matrix": [2, 2], "x": 2.75, "y": 2},
|
||||
{"matrix": [2, 3], "x": 3.75, "y": 2},
|
||||
{"matrix": [2, 4], "x": 4.75, "y": 2},
|
||||
{"matrix": [2, 5], "x": 5.75, "y": 2},
|
||||
{"matrix": [2, 6], "x": 6.75, "y": 2},
|
||||
{"matrix": [2, 7], "x": 7.75, "y": 2},
|
||||
{"matrix": [2, 8], "x": 8.75, "y": 2},
|
||||
{"matrix": [2, 9], "x": 9.75, "y": 2},
|
||||
{"matrix": [2, 10], "x": 10.75, "y": 2},
|
||||
{"matrix": [2, 11], "x": 11.75, "y": 2},
|
||||
{"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
|
||||
{"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
|
||||
{"matrix": [3, 1], "x": 2.25, "y": 3},
|
||||
{"matrix": [3, 2], "x": 3.25, "y": 3},
|
||||
{"matrix": [3, 3], "x": 4.25, "y": 3},
|
||||
{"matrix": [3, 4], "x": 5.25, "y": 3},
|
||||
{"matrix": [3, 5], "x": 6.25, "y": 3},
|
||||
{"matrix": [3, 6], "x": 7.25, "y": 3},
|
||||
{"matrix": [3, 7], "x": 8.25, "y": 3},
|
||||
{"matrix": [3, 8], "x": 9.25, "y": 3},
|
||||
{"matrix": [3, 9], "x": 10.25, "y": 3},
|
||||
{"matrix": [3, 10], "x": 11.25, "y": 3},
|
||||
{"matrix": [4, 12], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"matrix": [3, 13], "x": 14, "y": 3},
|
||||
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 1], "x": 1.5, "y": 4},
|
||||
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
|
||||
{"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 11], "x": 12.5, "y": 4},
|
||||
{"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
23
keyboards/keyten/kt60hs_t/v3/keymaps/default/keymap.c
Normal file
23
keyboards/keyten/kt60hs_t/v3/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,23 @@
|
||||
// Copyright 2025 key10iq
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[0] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL
|
||||
),
|
||||
|
||||
[1] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
|
||||
QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
)
|
||||
};
|
||||
8
keyboards/keyten/kt60hs_t/v3/keymaps/vial/config.h
Normal file
8
keyboards/keyten/kt60hs_t/v3/keymaps/vial/config.h
Normal file
@@ -0,0 +1,8 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
|
||||
#pragma once
|
||||
|
||||
#define VIAL_KEYBOARD_UID {0xE9, 0x80, 0x97, 0x7B, 0x40, 0x78, 0xCE, 0x17}
|
||||
|
||||
#define VIAL_UNLOCK_COMBO_ROWS {0, 4}
|
||||
#define VIAL_UNLOCK_COMBO_COLS {0, 13}
|
||||
23
keyboards/keyten/kt60hs_t/v3/keymaps/vial/keymap.c
Normal file
23
keyboards/keyten/kt60hs_t/v3/keymaps/vial/keymap.c
Normal file
@@ -0,0 +1,23 @@
|
||||
// Copyright 2025 key10iq
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[0] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL
|
||||
),
|
||||
|
||||
[1] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
|
||||
QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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
keyboards/keyten/kt60hs_t/v3/keymaps/vial/rules.mk
Normal file
2
keyboards/keyten/kt60hs_t/v3/keymaps/vial/rules.mk
Normal file
@@ -0,0 +1,2 @@
|
||||
VIA_ENABLE = yes
|
||||
VIAL_ENABLE = yes
|
||||
251
keyboards/keyten/kt60hs_t/v3/keymaps/vial/vial.json
Normal file
251
keyboards/keyten/kt60hs_t/v3/keymaps/vial/vial.json
Normal file
@@ -0,0 +1,251 @@
|
||||
{
|
||||
"name": "kt60HS-T v3",
|
||||
"vendorId": "0xEB69",
|
||||
"productId": "0x6010",
|
||||
"lighting": "none",
|
||||
"matrix": {
|
||||
"rows": 5,
|
||||
"cols": 14
|
||||
},
|
||||
"layouts": {
|
||||
"labels": [
|
||||
"Split Backspace",
|
||||
[
|
||||
"Bottom Row",
|
||||
"Tsangan",
|
||||
"WKL",
|
||||
"HHKB",
|
||||
"10U"
|
||||
]
|
||||
],
|
||||
"keymap": [
|
||||
[
|
||||
{
|
||||
"c": "#777777"
|
||||
},
|
||||
"0,0",
|
||||
{
|
||||
"c": "#cccccc"
|
||||
},
|
||||
"0,1",
|
||||
"0,2",
|
||||
"0,3",
|
||||
"0,4",
|
||||
"0,5",
|
||||
"0,6",
|
||||
"0,7",
|
||||
"0,8",
|
||||
"0,9",
|
||||
"0,10",
|
||||
"0,11",
|
||||
"0,12",
|
||||
{
|
||||
"c": "#aaaaaa",
|
||||
"w": 2
|
||||
},
|
||||
"2,13\n\n\n0,0",
|
||||
{
|
||||
"x": 0.25,
|
||||
"c": "#cccccc"
|
||||
},
|
||||
"0,13\n\n\n0,1",
|
||||
"2,13\n\n\n0,1"
|
||||
],
|
||||
[
|
||||
{
|
||||
"c": "#aaaaaa",
|
||||
"w": 1.5
|
||||
},
|
||||
"1,0",
|
||||
{
|
||||
"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",
|
||||
{
|
||||
"w": 1.5
|
||||
},
|
||||
"1,13"
|
||||
],
|
||||
[
|
||||
{
|
||||
"c": "#aaaaaa",
|
||||
"w": 1.75
|
||||
},
|
||||
"2,0",
|
||||
{
|
||||
"c": "#cccccc"
|
||||
},
|
||||
"2,1",
|
||||
"2,2",
|
||||
"2,3",
|
||||
"2,4",
|
||||
"2,5",
|
||||
"2,6",
|
||||
"2,7",
|
||||
"2,8",
|
||||
"2,9",
|
||||
"2,10",
|
||||
"2,11",
|
||||
{
|
||||
"c": "#777777",
|
||||
"w": 2.25
|
||||
},
|
||||
"2,12"
|
||||
],
|
||||
[
|
||||
{
|
||||
"c": "#aaaaaa",
|
||||
"w": 2.25
|
||||
},
|
||||
"3,0",
|
||||
{
|
||||
"c": "#cccccc"
|
||||
},
|
||||
"3,1",
|
||||
"3,2",
|
||||
"3,3",
|
||||
"3,4",
|
||||
"3,5",
|
||||
"3,6",
|
||||
"3,7",
|
||||
"3,8",
|
||||
"3,9",
|
||||
"3,10",
|
||||
{
|
||||
"c": "#aaaaaa",
|
||||
"w": 1.75
|
||||
},
|
||||
"4,12",
|
||||
"3,13"
|
||||
],
|
||||
[
|
||||
{
|
||||
"w": 1.5
|
||||
},
|
||||
"4,0\n\n\n1,0",
|
||||
"4,1\n\n\n1,0",
|
||||
{
|
||||
"w": 1.5
|
||||
},
|
||||
"4,2\n\n\n1,0",
|
||||
{
|
||||
"c": "#cccccc",
|
||||
"w": 7
|
||||
},
|
||||
"4,6\n\n\n1,0",
|
||||
{
|
||||
"c": "#aaaaaa",
|
||||
"w": 1.5
|
||||
},
|
||||
"4,10\n\n\n1,0",
|
||||
"4,11\n\n\n1,0",
|
||||
{
|
||||
"w": 1.5
|
||||
},
|
||||
"4,13\n\n\n1,0"
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": 0.25,
|
||||
"w": 1.5
|
||||
},
|
||||
"4,0\n\n\n1,1",
|
||||
{
|
||||
"d": true
|
||||
},
|
||||
"4,1\n\n\n1,1",
|
||||
{
|
||||
"w": 1.5
|
||||
},
|
||||
"4,2\n\n\n1,1",
|
||||
{
|
||||
"c": "#cccccc",
|
||||
"w": 7
|
||||
},
|
||||
"4,6\n\n\n1,1",
|
||||
{
|
||||
"c": "#aaaaaa",
|
||||
"w": 1.5
|
||||
},
|
||||
"4,10\n\n\n1,1",
|
||||
{
|
||||
"d": true
|
||||
},
|
||||
"4,11\n\n\n1,1",
|
||||
{
|
||||
"w": 1.5
|
||||
},
|
||||
"4,13\n\n\n1,1"
|
||||
],
|
||||
[
|
||||
{
|
||||
"w": 1.5,
|
||||
"d": true
|
||||
},
|
||||
"4,0\n\n\n1,2",
|
||||
"4,1\n\n\n1,2",
|
||||
{
|
||||
"w": 1.5
|
||||
},
|
||||
"4,2\n\n\n1,2",
|
||||
{
|
||||
"c": "#cccccc",
|
||||
"w": 7
|
||||
},
|
||||
"4,6\n\n\n1,2",
|
||||
{
|
||||
"c": "#aaaaaa",
|
||||
"w": 1.5
|
||||
},
|
||||
"4,10\n\n\n1,2",
|
||||
"4,11\n\n\n1,2",
|
||||
{
|
||||
"w": 1.5,
|
||||
"d": true
|
||||
},
|
||||
"4,13\n\n\n1,2"
|
||||
],
|
||||
[
|
||||
{
|
||||
"w": 1.5
|
||||
},
|
||||
"4,0\n\n\n1,3",
|
||||
"4,1\n\n\n1,3",
|
||||
{
|
||||
"w": 1.5,
|
||||
"d": true
|
||||
},
|
||||
"4,2\n\n\n1,3",
|
||||
{
|
||||
"x": -1.5,
|
||||
"c": "#cccccc",
|
||||
"w": 10
|
||||
},
|
||||
"4,6\n\n\n1,3",
|
||||
{
|
||||
"x": -1.5,
|
||||
"c": "#aaaaaa",
|
||||
"w": 1.5,
|
||||
"d": true
|
||||
},
|
||||
"4,10\n\n\n1,3",
|
||||
"4,11\n\n\n1,3",
|
||||
{
|
||||
"w": 1.5
|
||||
},
|
||||
"4,13\n\n\n1,3"
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
27
keyboards/keyten/kt60hs_t/v3/readme.md
Normal file
27
keyboards/keyten/kt60hs_t/v3/readme.md
Normal file
@@ -0,0 +1,27 @@
|
||||
# keyten kt60HS-T V3
|
||||
|
||||
60% MX Hot-Swap Tsangan PCB
|
||||
|
||||

|
||||
|
||||
* Keyboard Maintainer: [keyten](https://github.com/key10iq)
|
||||
* Hardware Supported: keyten kt60HS-T V3
|
||||
* Hardware Availability: private GB
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make keyten/kt60hs_t/v3:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make keyten/kt60hs_t/v3: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
|
||||
* Keycode in layout: Press the key mapped to `QK_BOOT` if it is available
|
||||
* Physical reset button: Hold the button on the back of the PCB
|
||||
@@ -5,9 +5,9 @@
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[0] = LAYOUT_all(
|
||||
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_PAUS, KC_HOME, KC_END, KC_PGUP, KC_PGDN, KC_DEL,
|
||||
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_HOME, KC_END, KC_PGUP, KC_PGDN, KC_PSCR,
|
||||
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_NUM, KC_PSLS, KC_PAST, KC_PMNS,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_NONUS_HASH, KC_P7, KC_P8, KC_P9, KC_PPLS,
|
||||
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_NONUS_HASH, KC_P7, KC_P8, KC_P9, KC_PPLS,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6,
|
||||
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT
|
||||
@@ -15,26 +15,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
};
|
||||
|
||||
static const uint8_t numblock[] = {
|
||||
72,
|
||||
73,
|
||||
74,
|
||||
75,
|
||||
44,
|
||||
43,
|
||||
42,
|
||||
41,
|
||||
38,
|
||||
39,
|
||||
40,
|
||||
12,
|
||||
11,
|
||||
10,
|
||||
9,
|
||||
7,
|
||||
8
|
||||
};
|
||||
|
||||
static const uint8_t arrow[] = {
|
||||
13,
|
||||
4,
|
||||
@@ -48,9 +28,11 @@ bool rgb_matrix_indicators_user() {
|
||||
}
|
||||
|
||||
if (host_keyboard_led_state().num_lock) {
|
||||
for (uint8_t i = 0; i < sizeof(numblock)/sizeof(numblock[0]); i++) {
|
||||
rgb_matrix_set_color(numblock[i], 30, 30, 0);
|
||||
}
|
||||
rgb_matrix_set_color(72, 30, 30, 0);
|
||||
}
|
||||
|
||||
if (host_keyboard_led_state().caps_lock) {
|
||||
rgb_matrix_set_color(97, 30, 30, 0);
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
9
keyboards/swagkeys/eave/keymaps/vial/config.h
Normal file
9
keyboards/swagkeys/eave/keymaps/vial/config.h
Normal file
@@ -0,0 +1,9 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
|
||||
#pragma once
|
||||
|
||||
#define VIAL_KEYBOARD_UID {0x89, 0x2A, 0x89, 0xB2, 0x3A, 0x40, 0x7A, 0x9D}
|
||||
|
||||
// Esc + Enter
|
||||
#define VIAL_UNLOCK_COMBO_ROWS { 0, 2 }
|
||||
#define VIAL_UNLOCK_COMBO_COLS { 0, 12 }
|
||||
36
keyboards/swagkeys/eave/keymaps/vial/keymap.c
Normal file
36
keyboards/swagkeys/eave/keymaps/vial/keymap.c
Normal file
@@ -0,0 +1,36 @@
|
||||
/*
|
||||
Copyright 2024 Swagkeys
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT_65_ansi(
|
||||
KC_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_BSLS, KC_BSPC, KC_DEL,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_HOME,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
[1] = LAYOUT_65_ansi(
|
||||
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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, UG_TOGG, UG_NEXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
|
||||
};
|
||||
|
||||
|
||||
|
||||
10
keyboards/swagkeys/eave/keymaps/vial/rules.mk
Normal file
10
keyboards/swagkeys/eave/keymaps/vial/rules.mk
Normal file
@@ -0,0 +1,10 @@
|
||||
VIA_ENABLE = yes
|
||||
VIAL_ENABLE = yes
|
||||
|
||||
RGBLIGHT_ENABLE = yes
|
||||
|
||||
LTO_ENABLE = yes
|
||||
TAP_DANCE_ENABLE = no
|
||||
COMBO_ENABLE = no
|
||||
KEY_OVERRIDE_ENABLE = no
|
||||
REPEAT_KEY_ENABLE = no
|
||||
180
keyboards/swagkeys/eave/keymaps/vial/vial.json
Normal file
180
keyboards/swagkeys/eave/keymaps/vial/vial.json
Normal file
@@ -0,0 +1,180 @@
|
||||
{
|
||||
"name": "Swagkeys Eave",
|
||||
"vendorId": "0x4A16",
|
||||
"productId": "0x4A16",
|
||||
"matrix": {
|
||||
"rows": 5,
|
||||
"cols": 16
|
||||
},
|
||||
"keycodes": ["qmk_lighting"],
|
||||
"menus": ["qmk_rgblight"],
|
||||
"layouts": {
|
||||
"labels": ["Split Backspace"],
|
||||
"keymap": [
|
||||
[
|
||||
{
|
||||
"x": 13
|
||||
},
|
||||
"0,14\n\n\n0,1",
|
||||
"0,15\n\n\n0,1"
|
||||
],
|
||||
[
|
||||
{
|
||||
"c": "#777777"
|
||||
},
|
||||
"0,0",
|
||||
{
|
||||
"c": "#cccccc"
|
||||
},
|
||||
"0,1",
|
||||
"0,2",
|
||||
"0,3",
|
||||
"0,4",
|
||||
"0,5",
|
||||
"0,6",
|
||||
"0,7",
|
||||
"0,8",
|
||||
"0,9",
|
||||
"0,10",
|
||||
"0,11",
|
||||
"0,12",
|
||||
{
|
||||
"c": "#aaaaaa",
|
||||
"w": 2
|
||||
},
|
||||
"0,13\n\n\n0,0",
|
||||
{
|
||||
"c": "#cccccc"
|
||||
},
|
||||
"1,14"
|
||||
],
|
||||
[
|
||||
{
|
||||
"c": "#aaaaaa",
|
||||
"w": 1.5
|
||||
},
|
||||
"1,0",
|
||||
{
|
||||
"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": 1.5
|
||||
},
|
||||
"1,13",
|
||||
{
|
||||
"c": "#cccccc"
|
||||
},
|
||||
"1,15"
|
||||
],
|
||||
[
|
||||
{
|
||||
"c": "#aaaaaa",
|
||||
"w": 1.75
|
||||
},
|
||||
"2,0",
|
||||
{
|
||||
"c": "#cccccc"
|
||||
},
|
||||
"2,1",
|
||||
"2,2",
|
||||
"2,3",
|
||||
"2,4",
|
||||
"2,5",
|
||||
"2,6",
|
||||
"2,7",
|
||||
"2,8",
|
||||
"2,9",
|
||||
"2,10",
|
||||
"2,11",
|
||||
{
|
||||
"c": "#777777",
|
||||
"w": 2.25
|
||||
},
|
||||
"2,12",
|
||||
{
|
||||
"c": "#cccccc"
|
||||
},
|
||||
"2,15"
|
||||
],
|
||||
[
|
||||
{
|
||||
"c": "#aaaaaa",
|
||||
"w": 2.25
|
||||
},
|
||||
"3,0",
|
||||
{
|
||||
"c": "#cccccc"
|
||||
},
|
||||
"3,1",
|
||||
"3,2",
|
||||
"3,3",
|
||||
"3,4",
|
||||
"3,5",
|
||||
"3,6",
|
||||
"3,7",
|
||||
"3,8",
|
||||
"3,9",
|
||||
"3,10",
|
||||
{
|
||||
"c": "#aaaaaa",
|
||||
"w": 1.75
|
||||
},
|
||||
"3,11",
|
||||
{
|
||||
"c": "#cccccc"
|
||||
},
|
||||
"3,14",
|
||||
"3,15"
|
||||
],
|
||||
[
|
||||
{
|
||||
"c": "#aaaaaa",
|
||||
"w": 1.25
|
||||
},
|
||||
"4,0",
|
||||
{
|
||||
"w": 1.25
|
||||
},
|
||||
"4,1",
|
||||
{
|
||||
"w": 1.25
|
||||
},
|
||||
"4,2",
|
||||
{
|
||||
"c": "#cccccc",
|
||||
"w": 6.25
|
||||
},
|
||||
"4,5",
|
||||
{
|
||||
"c": "#aaaaaa",
|
||||
"w": 1.25
|
||||
},
|
||||
"4,9",
|
||||
{
|
||||
"w": 1.25
|
||||
},
|
||||
"4,10",
|
||||
{
|
||||
"x": 0.5,
|
||||
"c": "#cccccc"
|
||||
},
|
||||
"4,11",
|
||||
"4,14",
|
||||
"4,15"
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
9
keyboards/ymdk/sp64/keymaps/vial/config.h
Normal file
9
keyboards/ymdk/sp64/keymaps/vial/config.h
Normal file
@@ -0,0 +1,9 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
|
||||
#pragma once
|
||||
|
||||
#define VIAL_KEYBOARD_UID {0xF7, 0x20, 0x5E, 0xE3, 0x8E, 0x8D, 0x0F, 0xC9}
|
||||
#define VIAL_UNLOCK_COMBO_ROWS { 5, 4 }
|
||||
#define VIAL_UNLOCK_COMBO_COLS { 0, 13 }
|
||||
|
||||
#define DYNAMIC_KEYMAP_LAYER_COUNT 4
|
||||
73
keyboards/ymdk/sp64/keymaps/vial/keymap.c
Normal file
73
keyboards/ymdk/sp64/keymaps/vial/keymap.c
Normal file
@@ -0,0 +1,73 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
enum layer_names {
|
||||
BASE, // default layer
|
||||
_FN, // function layer
|
||||
_FX, // media keys
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* Keymap 0: Basic layer
|
||||
*
|
||||
* ┌-----┬-----┬-----┬-----┬-----┬-----┬-----┐ ┌-----┬-----┬-----┬-----┬-----┬-----┬----------┐
|
||||
* │ Esc │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ │ 7 │ 8 │ 9 │ 0 │ - │ = │ BkSp │
|
||||
* ├-----┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┘ ┌--┴-----┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬-------┤
|
||||
* │ Tab │ Q │ W │ E │ R │ T │ │ Y │ U │ I │ O │ P │ [ │ ] │ \ │
|
||||
* ├--------┴┬----┴┬----┴┬----┴┬----┴┬----┴┐ └┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴-------┤
|
||||
* │ Caps │ A │ S │ D │ F │ G │ │ H │ J │ K │ L │ ; │ ' │ Enter │
|
||||
* ├---------┴┬----┴┬----┴┬----┴┬----┴┬----┴┐ └┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴┬-----┬-----┤
|
||||
* │ LShift │ Z │ X │ C │ V │ B │ │ N │ M │ < │ > │ ? │ Sft │ Up │ Fn │
|
||||
* ├------┬---┴-┬---┴--┬--┴-----┴----┬┴----┬┘ ┌┴-----┴-----┴--┬--┴----┬┴-----┼-----┼-----┼-----┤
|
||||
* │ Ctrl │ Win │ Alt │ │ Fn │ │ │ Alt │ Win │ Lft │ Dwn │ Rgt │
|
||||
* └------┴-----┴------┴-------------┴-----┘ └---------------┴-------┴------┴-----┴-----┴-----┘
|
||||
*/
|
||||
[BASE] = LAYOUT(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, KC_EQUAL, KC_BSPC,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOTE, KC_ENTER,
|
||||
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_F3,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, MO(_FN), KC_SPACE, KC_RALT, KC_RGUI, KC_LEFT, KC_DOWN, KC_RIGHT
|
||||
),
|
||||
/* Function
|
||||
*
|
||||
* ┌-----┬-----┬-----┬-----┬-----┬-----┬-----┐ ┌-----┬-----┬-----┬-----┬-----┬-----┬----------┐
|
||||
* │ │ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │ │
|
||||
* ├-----┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┘ ┌--┴-----┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬-------┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* ├--------┴┬----┴┬----┴┬----┴┬----┴┬----┴┐ └┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴-------┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* ├---------┴┬----┴┬----┴┬----┴┬----┴┬----┴┐ └┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴┬-----┬-----┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* ├------┬---┴-┬---┴--┬--┴-----┴----┬┴----┬┘ ┌┴-----┴-----┴--┬--┴----┬┴-----┼-----┼-----┼-----┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* └------┴-----┴------┴-------------┴-----┘ └---------------┴-------┴------┴-----┴-----┴-----┘
|
||||
*/
|
||||
[_FN] = LAYOUT(
|
||||
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
/* Media
|
||||
*
|
||||
* ┌-----┬-----┬-----┬-----┬-----┬-----┬-----┐ ┌-----┬-----┬-----┬-----┬-----┬-----┬----------┐
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* ├-----┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┘ ┌--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬-------┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* ├--------┴┬----┴┬----┴┬----┴┬----┴┬----┴┐ └┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴-------┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* ├---------┴┬----┴┬----┴┬----┴┬----┴┬----┴┐ └┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴┬-----┬-----┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* ├------┬---┴-┬---┴--┬--┴-----┴----┬┴----┬┘ ┌┴-----┴-----┴--┬--┴----┬┴-----┼-----┼-----┼-----┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* └------┴-----┴------┴-------------┴-----┘ └---------------┴-------┴------┴-----┴-----┴-----┘
|
||||
*/
|
||||
[_FX] = LAYOUT(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
};
|
||||
23
keyboards/ymdk/sp64/keymaps/vial/rules.mk
Normal file
23
keyboards/ymdk/sp64/keymaps/vial/rules.mk
Normal file
@@ -0,0 +1,23 @@
|
||||
VIA_ENABLE = yes
|
||||
VIAL_ENABLE = yes
|
||||
|
||||
LTO_ENABLE = yes
|
||||
|
||||
CONSOLE_ENABLE = no
|
||||
COMMAND_ENABLE = no
|
||||
MOUSEKEY_ENABLE = no
|
||||
EXTRAKEY_ENABLE = yes
|
||||
|
||||
SPACE_CADET_ENABLE = yes
|
||||
GRAVE_ESC_ENABLE = yes
|
||||
MAGIC_ENABLE = yes
|
||||
|
||||
QMK_SETTINGS = no
|
||||
TAP_DANCE_ENABLE = yes
|
||||
COMBO_ENABLE = yes
|
||||
KEY_OVERRIDE_ENABLE = no
|
||||
|
||||
CAPS_WORD_ENABLE = yes
|
||||
AUTOSHIFT_ENABLE = no
|
||||
KEY_LOCK_ENABLE = no
|
||||
REPEAT_KEY_ENABLE = no
|
||||
109
keyboards/ymdk/sp64/keymaps/vial/vial.json
Executable file
109
keyboards/ymdk/sp64/keymaps/vial/vial.json
Executable file
@@ -0,0 +1,109 @@
|
||||
{
|
||||
"name": "SP64",
|
||||
"vendorId": "0x594D",
|
||||
"productId": "0x5364",
|
||||
"lighting": "qmk_backlight_rgblight",
|
||||
"matrix": {
|
||||
"rows": 6,
|
||||
"cols": 15
|
||||
},
|
||||
"layouts": {
|
||||
"keymap": [
|
||||
[
|
||||
"5,0",
|
||||
"5,1",
|
||||
"5,2",
|
||||
"5,3",
|
||||
"5,4",
|
||||
"5,5",
|
||||
"1,5",
|
||||
{ "x": 1 },
|
||||
"4,7",
|
||||
"4,8",
|
||||
"4,9",
|
||||
"4,10",
|
||||
"4,11",
|
||||
"4,12",
|
||||
{ "w": 2 },
|
||||
"4,13"
|
||||
],
|
||||
[
|
||||
{ "w": 1.5 },
|
||||
"4,0",
|
||||
"4,1",
|
||||
"4,2",
|
||||
"4,3",
|
||||
"4,4",
|
||||
"4,5",
|
||||
{ "x": 1 },
|
||||
"5,7",
|
||||
"3,7",
|
||||
"3,8",
|
||||
"3,9",
|
||||
"3,10",
|
||||
"3,11",
|
||||
"3,12",
|
||||
{ "w": 1.5 },
|
||||
"3,13"
|
||||
],
|
||||
[
|
||||
{ "w": 1.75 },
|
||||
"3,0",
|
||||
"3,1",
|
||||
"3,2",
|
||||
"3,3",
|
||||
"3,4",
|
||||
"3,5",
|
||||
{ "x": 1 },
|
||||
"2,7",
|
||||
"2,8",
|
||||
"2,9",
|
||||
"2,10",
|
||||
"2,11",
|
||||
"2,12",
|
||||
{ "w": 2.25 },
|
||||
"2,13"
|
||||
],
|
||||
[
|
||||
{ "w": 2 },
|
||||
"2,0",
|
||||
"2,1",
|
||||
"2,2",
|
||||
"2,3",
|
||||
"2,4",
|
||||
"2,5",
|
||||
{ "x": 1 },
|
||||
"1,7",
|
||||
"1,8",
|
||||
"1,9",
|
||||
"1,10",
|
||||
"1,11",
|
||||
"1,12",
|
||||
"1,13",
|
||||
"0,13"
|
||||
],
|
||||
[
|
||||
{ "w": 1.25 },
|
||||
"1,0",
|
||||
{ "w": 1 },
|
||||
"1,1",
|
||||
{ "w": 1.25 },
|
||||
"1,2",
|
||||
{ "w": 2.25 },
|
||||
"1,3",
|
||||
{ "w": 1 },
|
||||
"1,4",
|
||||
{ "x": 1, "w": 2.75 },
|
||||
"0,7",
|
||||
{ "w": 1.25 },
|
||||
"0,8",
|
||||
{ "w": 1.25 },
|
||||
"0,9",
|
||||
{ "w": 1 },
|
||||
"0,10",
|
||||
"0,11",
|
||||
"0,12"
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -77,6 +77,11 @@ void matrix_init(void)
|
||||
matrix_init_kb();
|
||||
}
|
||||
|
||||
bool matrix_is_on(uint8_t row, uint8_t col)
|
||||
{
|
||||
return (matrix[row] & ((matrix_row_t)1<<col));
|
||||
}
|
||||
|
||||
uint8_t matrix_scan(void)
|
||||
{
|
||||
#ifdef RIGHT_HALF
|
||||
|
||||
Reference in New Issue
Block a user