forked from mirror/qmk_firmware
Compare commits
7 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5bb7476400 | ||
|
|
6242c09f7d | ||
|
|
eb5703d12e | ||
|
|
bb2ca21647 | ||
|
|
ed343ddad4 | ||
|
|
e7ad19bb95 | ||
|
|
024c4ef853 |
@@ -15,8 +15,9 @@ static bool dummy_comms_start(painter_device_t device) {
|
||||
return true;
|
||||
}
|
||||
|
||||
static void dummy_comms_stop(painter_device_t device) {
|
||||
static bool dummy_comms_stop(painter_device_t device) {
|
||||
// No-op.
|
||||
return true;
|
||||
}
|
||||
|
||||
uint32_t dummy_comms_send(painter_device_t device, const void *data, uint32_t byte_count) {
|
||||
|
||||
@@ -35,7 +35,9 @@ uint32_t qp_comms_i2c_send_data(painter_device_t device, const void *data, uint3
|
||||
return qp_comms_i2c_send_raw(device, data, byte_count);
|
||||
}
|
||||
|
||||
void qp_comms_i2c_stop(painter_device_t device) {}
|
||||
bool qp_comms_i2c_stop(painter_device_t device) {
|
||||
return true;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Command+Data I2C support
|
||||
@@ -43,9 +45,9 @@ void qp_comms_i2c_stop(painter_device_t device) {}
|
||||
static const uint8_t cmd_byte = 0x00;
|
||||
static const uint8_t data_byte = 0x40;
|
||||
|
||||
void qp_comms_i2c_cmddata_send_command(painter_device_t device, uint8_t cmd) {
|
||||
bool qp_comms_i2c_cmddata_send_command(painter_device_t device, uint8_t cmd) {
|
||||
uint8_t buf[2] = {cmd_byte, cmd};
|
||||
qp_comms_i2c_send_raw(device, &buf, 2);
|
||||
return qp_comms_i2c_send_raw(device, &buf, 2);
|
||||
}
|
||||
|
||||
uint32_t qp_comms_i2c_cmddata_send_data(painter_device_t device, const void *data, uint32_t byte_count) {
|
||||
@@ -58,7 +60,7 @@ uint32_t qp_comms_i2c_cmddata_send_data(painter_device_t device, const void *dat
|
||||
return byte_count;
|
||||
}
|
||||
|
||||
void qp_comms_i2c_bulk_command_sequence(painter_device_t device, const uint8_t *sequence, size_t sequence_len) {
|
||||
bool qp_comms_i2c_bulk_command_sequence(painter_device_t device, const uint8_t *sequence, size_t sequence_len) {
|
||||
uint8_t buf[32];
|
||||
for (size_t i = 0; i < sequence_len;) {
|
||||
uint8_t command = sequence[i];
|
||||
@@ -67,12 +69,17 @@ void qp_comms_i2c_bulk_command_sequence(painter_device_t device, const uint8_t *
|
||||
buf[0] = cmd_byte;
|
||||
buf[1] = command;
|
||||
memcpy(&buf[2], &sequence[i + 3], num_bytes);
|
||||
qp_comms_i2c_send_raw(device, buf, num_bytes + 2);
|
||||
if (!qp_comms_i2c_send_raw(device, buf, num_bytes + 2)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (delay > 0) {
|
||||
wait_ms(delay);
|
||||
}
|
||||
i += (3 + num_bytes);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
const painter_comms_with_command_vtable_t i2c_comms_cmddata_vtable = {
|
||||
|
||||
@@ -19,7 +19,7 @@ typedef struct qp_comms_i2c_config_t {
|
||||
bool qp_comms_i2c_init(painter_device_t device);
|
||||
bool qp_comms_i2c_start(painter_device_t device);
|
||||
uint32_t qp_comms_i2c_send_data(painter_device_t device, const void* data, uint32_t byte_count);
|
||||
void qp_comms_i2c_stop(painter_device_t device);
|
||||
bool qp_comms_i2c_stop(painter_device_t device);
|
||||
|
||||
extern const painter_comms_with_command_vtable_t i2c_comms_cmddata_vtable;
|
||||
|
||||
|
||||
@@ -45,11 +45,12 @@ uint32_t qp_comms_spi_send_data(painter_device_t device, const void *data, uint3
|
||||
return byte_count - bytes_remaining;
|
||||
}
|
||||
|
||||
void qp_comms_spi_stop(painter_device_t device) {
|
||||
bool qp_comms_spi_stop(painter_device_t device) {
|
||||
painter_driver_t * driver = (painter_driver_t *)device;
|
||||
qp_comms_spi_config_t *comms_config = (qp_comms_spi_config_t *)driver->comms_config;
|
||||
spi_stop();
|
||||
gpio_write_pin_high(comms_config->chip_select_pin);
|
||||
return true;
|
||||
}
|
||||
|
||||
const painter_comms_vtable_t spi_comms_vtable = {
|
||||
@@ -97,14 +98,15 @@ uint32_t qp_comms_spi_dc_reset_send_data(painter_device_t device, const void *da
|
||||
return qp_comms_spi_send_data(device, data, byte_count);
|
||||
}
|
||||
|
||||
void qp_comms_spi_dc_reset_send_command(painter_device_t device, uint8_t cmd) {
|
||||
bool qp_comms_spi_dc_reset_send_command(painter_device_t device, uint8_t cmd) {
|
||||
painter_driver_t * driver = (painter_driver_t *)device;
|
||||
qp_comms_spi_dc_reset_config_t *comms_config = (qp_comms_spi_dc_reset_config_t *)driver->comms_config;
|
||||
gpio_write_pin_low(comms_config->dc_pin);
|
||||
spi_write(cmd);
|
||||
return true;
|
||||
}
|
||||
|
||||
void qp_comms_spi_dc_reset_bulk_command_sequence(painter_device_t device, const uint8_t *sequence, size_t sequence_len) {
|
||||
bool qp_comms_spi_dc_reset_bulk_command_sequence(painter_device_t device, const uint8_t *sequence, size_t sequence_len) {
|
||||
painter_driver_t * driver = (painter_driver_t *)device;
|
||||
qp_comms_spi_dc_reset_config_t *comms_config = (qp_comms_spi_dc_reset_config_t *)driver->comms_config;
|
||||
for (size_t i = 0; i < sequence_len;) {
|
||||
@@ -126,6 +128,8 @@ void qp_comms_spi_dc_reset_bulk_command_sequence(painter_device_t device, const
|
||||
}
|
||||
i += (3 + num_bytes);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
const painter_comms_with_command_vtable_t spi_comms_with_dc_vtable = {
|
||||
|
||||
@@ -22,7 +22,7 @@ typedef struct qp_comms_spi_config_t {
|
||||
bool qp_comms_spi_init(painter_device_t device);
|
||||
bool qp_comms_spi_start(painter_device_t device);
|
||||
uint32_t qp_comms_spi_send_data(painter_device_t device, const void* data, uint32_t byte_count);
|
||||
void qp_comms_spi_stop(painter_device_t device);
|
||||
bool qp_comms_spi_stop(painter_device_t device);
|
||||
|
||||
extern const painter_comms_vtable_t spi_comms_vtable;
|
||||
|
||||
@@ -39,9 +39,9 @@ typedef struct qp_comms_spi_dc_reset_config_t {
|
||||
} qp_comms_spi_dc_reset_config_t;
|
||||
|
||||
bool qp_comms_spi_dc_reset_init(painter_device_t device);
|
||||
void qp_comms_spi_dc_reset_send_command(painter_device_t device, uint8_t cmd);
|
||||
bool qp_comms_spi_dc_reset_send_command(painter_device_t device, uint8_t cmd);
|
||||
uint32_t qp_comms_spi_dc_reset_send_data(painter_device_t device, const void* data, uint32_t byte_count);
|
||||
void qp_comms_spi_dc_reset_bulk_command_sequence(painter_device_t device, const uint8_t* sequence, size_t sequence_len);
|
||||
bool qp_comms_spi_dc_reset_bulk_command_sequence(painter_device_t device, const uint8_t* sequence, size_t sequence_len);
|
||||
|
||||
extern const painter_comms_with_command_vtable_t spi_comms_with_dc_vtable;
|
||||
|
||||
|
||||
@@ -32,7 +32,9 @@ __attribute__((weak)) bool qp_gc9107_init(painter_device_t device, painter_rotat
|
||||
};
|
||||
|
||||
// clang-format on
|
||||
qp_comms_bulk_command_sequence(device, gc9107_init_sequence, sizeof(gc9107_init_sequence));
|
||||
if (!qp_comms_bulk_command_sequence(device, gc9107_init_sequence, sizeof(gc9107_init_sequence))) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Configure the rotation (i.e. the ordering and direction of memory writes in GRAM)
|
||||
const uint8_t madctl[] = {
|
||||
@@ -41,9 +43,7 @@ __attribute__((weak)) bool qp_gc9107_init(painter_device_t device, painter_rotat
|
||||
[QP_ROTATION_180] = GC9XXX_MADCTL_BGR | GC9XXX_MADCTL_MX | GC9XXX_MADCTL_MY,
|
||||
[QP_ROTATION_270] = GC9XXX_MADCTL_BGR | GC9XXX_MADCTL_MV | GC9XXX_MADCTL_MY,
|
||||
};
|
||||
qp_comms_command_databyte(device, GC9XXX_SET_MEM_ACS_CTL, madctl[rotation]);
|
||||
|
||||
return true;
|
||||
return qp_comms_command_databyte(device, GC9XXX_SET_MEM_ACS_CTL, madctl[rotation]);
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -45,7 +45,9 @@ __attribute__((weak)) bool qp_gc9a01_init(painter_device_t device, painter_rotat
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
qp_comms_bulk_command_sequence(device, gc9a01_init_sequence, sizeof(gc9a01_init_sequence));
|
||||
if (!qp_comms_bulk_command_sequence(device, gc9a01_init_sequence, sizeof(gc9a01_init_sequence))) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Configure the rotation (i.e. the ordering and direction of memory writes in GRAM)
|
||||
const uint8_t madctl[] = {
|
||||
@@ -54,9 +56,7 @@ __attribute__((weak)) bool qp_gc9a01_init(painter_device_t device, painter_rotat
|
||||
[QP_ROTATION_180] = GC9XXX_MADCTL_BGR | GC9XXX_MADCTL_MX | GC9XXX_MADCTL_MY,
|
||||
[QP_ROTATION_270] = GC9XXX_MADCTL_BGR | GC9XXX_MADCTL_MV | GC9XXX_MADCTL_MY,
|
||||
};
|
||||
qp_comms_command_databyte(device, GC9XXX_SET_MEM_ACS_CTL, madctl[rotation]);
|
||||
|
||||
return true;
|
||||
return qp_comms_command_databyte(device, GC9XXX_SET_MEM_ACS_CTL, madctl[rotation]);
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -41,7 +41,9 @@ __attribute__((weak)) bool qp_ili9163_init(painter_device_t device, painter_rota
|
||||
ILI9XXX_CMD_DISPLAY_ON, 20, 0
|
||||
};
|
||||
// clang-format on
|
||||
qp_comms_bulk_command_sequence(device, ili9163_init_sequence, sizeof(ili9163_init_sequence));
|
||||
if (!qp_comms_bulk_command_sequence(device, ili9163_init_sequence, sizeof(ili9163_init_sequence))) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Configure the rotation (i.e. the ordering and direction of memory writes in GRAM)
|
||||
const uint8_t madctl[] = {
|
||||
@@ -50,9 +52,7 @@ __attribute__((weak)) bool qp_ili9163_init(painter_device_t device, painter_rota
|
||||
[QP_ROTATION_180] = ILI9XXX_MADCTL_BGR | ILI9XXX_MADCTL_MX | ILI9XXX_MADCTL_MY,
|
||||
[QP_ROTATION_270] = ILI9XXX_MADCTL_BGR | ILI9XXX_MADCTL_MV | ILI9XXX_MADCTL_MY,
|
||||
};
|
||||
qp_comms_command_databyte(device, ILI9XXX_SET_MEM_ACS_CTL, madctl[rotation]);
|
||||
|
||||
return true;
|
||||
return qp_comms_command_databyte(device, ILI9XXX_SET_MEM_ACS_CTL, madctl[rotation]);
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -48,7 +48,9 @@ __attribute__((weak)) bool qp_ili9341_init(painter_device_t device, painter_rota
|
||||
ILI9XXX_CMD_DISPLAY_ON, 20, 0
|
||||
};
|
||||
// clang-format on
|
||||
qp_comms_bulk_command_sequence(device, ili9341_init_sequence, sizeof(ili9341_init_sequence));
|
||||
if (!qp_comms_bulk_command_sequence(device, ili9341_init_sequence, sizeof(ili9341_init_sequence))) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Configure the rotation (i.e. the ordering and direction of memory writes in GRAM)
|
||||
const uint8_t madctl[] = {
|
||||
@@ -57,9 +59,7 @@ __attribute__((weak)) bool qp_ili9341_init(painter_device_t device, painter_rota
|
||||
[QP_ROTATION_180] = ILI9XXX_MADCTL_BGR | ILI9XXX_MADCTL_MX | ILI9XXX_MADCTL_MY,
|
||||
[QP_ROTATION_270] = ILI9XXX_MADCTL_BGR | ILI9XXX_MADCTL_MV | ILI9XXX_MADCTL_MY,
|
||||
};
|
||||
qp_comms_command_databyte(device, ILI9XXX_SET_MEM_ACS_CTL, madctl[rotation]);
|
||||
|
||||
return true;
|
||||
return qp_comms_command_databyte(device, ILI9XXX_SET_MEM_ACS_CTL, madctl[rotation]);
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -37,7 +37,9 @@ bool qp_ili9486_init(painter_device_t device, painter_rotation_t rotation) {
|
||||
ILI9XXX_SET_INVERSION_CTL, 0, 1, 0x02,
|
||||
};
|
||||
// clang-format on
|
||||
qp_comms_bulk_command_sequence(device, ili9486_init_sequence, sizeof(ili9486_init_sequence));
|
||||
if (!qp_comms_bulk_command_sequence(device, ili9486_init_sequence, sizeof(ili9486_init_sequence))) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Configure the rotation (i.e. the ordering and direction of memory writes in GRAM)
|
||||
const uint8_t madctl[] = {
|
||||
@@ -62,22 +64,22 @@ bool qp_ili9486_init(painter_device_t device, painter_rotation_t rotation) {
|
||||
ILI9XXX_CMD_DISPLAY_ON, 5, 0,
|
||||
};
|
||||
// clang-format on
|
||||
qp_comms_bulk_command_sequence(device, rotation_sequence, sizeof(rotation_sequence));
|
||||
|
||||
return true;
|
||||
return qp_comms_bulk_command_sequence(device, rotation_sequence, sizeof(rotation_sequence));
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Driver vtable
|
||||
|
||||
// waveshare variant needs some tweaks due to shift registers
|
||||
static void qp_comms_spi_dc_reset_send_command_odd_cs_pulse(painter_device_t device, uint8_t cmd) {
|
||||
static bool qp_comms_spi_dc_reset_send_command_odd_cs_pulse(painter_device_t device, uint8_t cmd) {
|
||||
painter_driver_t * driver = (painter_driver_t *)device;
|
||||
qp_comms_spi_dc_reset_config_t *comms_config = (qp_comms_spi_dc_reset_config_t *)driver->comms_config;
|
||||
|
||||
gpio_write_pin_low(comms_config->spi_config.chip_select_pin);
|
||||
qp_comms_spi_dc_reset_send_command(device, cmd);
|
||||
gpio_write_pin_high(comms_config->spi_config.chip_select_pin);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
static uint32_t qp_comms_spi_send_data_odd_cs_pulse(painter_device_t device, const void *data, uint32_t byte_count) {
|
||||
@@ -124,7 +126,7 @@ static uint32_t qp_ili9486_send_data_toggling(painter_device_t device, const uin
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void qp_comms_spi_send_command_sequence_odd_cs_pulse(painter_device_t device, const uint8_t *sequence, size_t sequence_len) {
|
||||
static bool qp_comms_spi_send_command_sequence_odd_cs_pulse(painter_device_t device, const uint8_t *sequence, size_t sequence_len) {
|
||||
for (size_t i = 0; i < sequence_len;) {
|
||||
uint8_t command = sequence[i];
|
||||
uint8_t delay = sequence[i + 1];
|
||||
@@ -140,6 +142,8 @@ static void qp_comms_spi_send_command_sequence_odd_cs_pulse(painter_device_t dev
|
||||
}
|
||||
i += (3 + num_bytes);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool qp_ili9486_viewport(painter_device_t device, uint16_t left, uint16_t top, uint16_t right, uint16_t bottom) {
|
||||
|
||||
@@ -41,7 +41,9 @@ __attribute__((weak)) bool qp_ili9488_init(painter_device_t device, painter_rota
|
||||
ILI9XXX_CMD_DISPLAY_ON, 20, 0
|
||||
};
|
||||
// clang-format on
|
||||
qp_comms_bulk_command_sequence(device, ili9488_init_sequence, sizeof(ili9488_init_sequence));
|
||||
if (!qp_comms_bulk_command_sequence(device, ili9488_init_sequence, sizeof(ili9488_init_sequence))) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Configure the rotation (i.e. the ordering and direction of memory writes in GRAM)
|
||||
const uint8_t madctl[] = {
|
||||
@@ -50,9 +52,7 @@ __attribute__((weak)) bool qp_ili9488_init(painter_device_t device, painter_rota
|
||||
[QP_ROTATION_180] = ILI9XXX_MADCTL_BGR | ILI9XXX_MADCTL_MX,
|
||||
[QP_ROTATION_270] = ILI9XXX_MADCTL_BGR | ILI9XXX_MADCTL_MV,
|
||||
};
|
||||
qp_comms_command_databyte(device, ILI9XXX_SET_MEM_ACS_CTL, madctl[rotation]);
|
||||
|
||||
return true;
|
||||
return qp_comms_command_databyte(device, ILI9XXX_SET_MEM_ACS_CTL, madctl[rotation]);
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
#include "qp_surface.h"
|
||||
#include "qp_surface_internal.h"
|
||||
|
||||
typedef void (*ld7032_driver_comms_send_command_and_data_func)(painter_device_t device, uint8_t cmd, uint8_t data);
|
||||
typedef bool (*ld7032_driver_comms_send_command_and_data_func)(painter_device_t device, uint8_t cmd, uint8_t data);
|
||||
typedef uint32_t (*ld7032_driver_comms_send_command_and_databuf_func)(painter_device_t device, uint8_t cmd, const void *data, uint32_t byte_count);
|
||||
|
||||
typedef struct ld7032_comms_with_command_vtable_t {
|
||||
@@ -25,12 +25,13 @@ typedef struct ld7032_comms_with_command_vtable_t {
|
||||
// LD7032 Internal API
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void ld7032_comms_i2c_send_command_and_data(painter_device_t device, uint8_t cmd, uint8_t data) {
|
||||
#ifdef QUANTUM_PAINTER_LD7032_I2C_ENABLE
|
||||
bool ld7032_comms_i2c_send_command_and_data(painter_device_t device, uint8_t cmd, uint8_t data) {
|
||||
uint8_t buf[2] = {cmd, data};
|
||||
qp_comms_i2c_send_data(device, buf, 2);
|
||||
return qp_comms_i2c_send_data(device, buf, 2);
|
||||
}
|
||||
|
||||
void ld7032_comms_i2c_bulk_command_sequence(painter_device_t device, const uint8_t *sequence, size_t sequence_len) {
|
||||
bool ld7032_comms_i2c_bulk_command_sequence(painter_device_t device, const uint8_t *sequence, size_t sequence_len) {
|
||||
uint8_t buf[32];
|
||||
for (size_t i = 0; i < sequence_len;) {
|
||||
uint8_t command = sequence[i];
|
||||
@@ -38,12 +39,16 @@ void ld7032_comms_i2c_bulk_command_sequence(painter_device_t device, const uint8
|
||||
uint8_t num_bytes = sequence[i + 2];
|
||||
buf[0] = command;
|
||||
memcpy(&buf[1], &sequence[i + 3], num_bytes);
|
||||
qp_comms_i2c_send_data(device, buf, num_bytes + 1);
|
||||
if (!qp_comms_i2c_send_data(device, buf, num_bytes + 1)) {
|
||||
return false;
|
||||
}
|
||||
if (delay > 0) {
|
||||
wait_ms(delay);
|
||||
}
|
||||
i += (3 + num_bytes);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
uint32_t ld7032_comms_i2c_send_command_and_databuf(painter_device_t device, uint8_t cmd, const void *data, uint32_t byte_count) {
|
||||
@@ -53,6 +58,7 @@ uint32_t ld7032_comms_i2c_send_command_and_databuf(painter_device_t device, uint
|
||||
memcpy(&buf[1], data, byte_count);
|
||||
return qp_comms_send(device, buf, byte_count + 1);
|
||||
}
|
||||
#endif // QUANTUM_PAINTER_LD7032_I2C_ENABLE
|
||||
|
||||
// Power control
|
||||
bool qp_ld7032_power(painter_device_t device, bool power_on) {
|
||||
@@ -201,7 +207,9 @@ __attribute__((weak)) bool qp_ld7032_init(painter_device_t device, painter_rotat
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
qp_comms_bulk_command_sequence(device, ld7032_init_sequence, sizeof(ld7032_init_sequence));
|
||||
if (!qp_comms_bulk_command_sequence(device, ld7032_init_sequence, sizeof(ld7032_init_sequence))) {
|
||||
return false;
|
||||
}
|
||||
|
||||
uint8_t display_y_start = 40 - driver->oled.base.panel_height;
|
||||
uint8_t display_x_start = (128 - driver->oled.base.panel_width) / 2;
|
||||
@@ -223,7 +231,9 @@ __attribute__((weak)) bool qp_ld7032_init(painter_device_t device, painter_rotat
|
||||
ld7032_memory_setup[13] = ld7032_memory_setup[4] + 1;
|
||||
ld7032_memory_setup[17] = driver->oled.base.panel_height;
|
||||
|
||||
qp_comms_bulk_command_sequence(device, ld7032_memory_setup, sizeof(ld7032_memory_setup));
|
||||
if (!qp_comms_bulk_command_sequence(device, ld7032_memory_setup, sizeof(ld7032_memory_setup))) {
|
||||
return false;
|
||||
}
|
||||
|
||||
uint8_t write_direction = 0;
|
||||
switch (rotation) {
|
||||
@@ -245,7 +255,9 @@ __attribute__((weak)) bool qp_ld7032_init(painter_device_t device, painter_rotat
|
||||
painter_driver_t * pdriver = (painter_driver_t *)device;
|
||||
ld7032_comms_with_command_vtable_t *comms_vtable = (ld7032_comms_with_command_vtable_t *)pdriver->comms_vtable;
|
||||
|
||||
comms_vtable->send_command_data(device, LD7032_WRITE_DIRECTION, write_direction);
|
||||
if (!comms_vtable->send_command_data(device, LD7032_WRITE_DIRECTION, write_direction)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
qp_ld7032_power(device, true);
|
||||
|
||||
|
||||
@@ -71,8 +71,7 @@ __attribute__((weak)) bool qp_sh1106_init(painter_device_t device, painter_rotat
|
||||
sh1106_init_sequence[20] = 0x02;
|
||||
}
|
||||
|
||||
qp_comms_bulk_command_sequence(device, sh1106_init_sequence, sizeof(sh1106_init_sequence));
|
||||
return true;
|
||||
return qp_comms_bulk_command_sequence(device, sh1106_init_sequence, sizeof(sh1106_init_sequence));
|
||||
}
|
||||
|
||||
// Screen flush
|
||||
|
||||
@@ -73,8 +73,7 @@ __attribute__((weak)) bool qp_sh1107_init(painter_device_t device, painter_rotat
|
||||
sh1107_init_sequence[20] = 0x02;
|
||||
}
|
||||
|
||||
qp_comms_bulk_command_sequence(device, sh1107_init_sequence, sizeof(sh1107_init_sequence));
|
||||
return true;
|
||||
return qp_comms_bulk_command_sequence(device, sh1107_init_sequence, sizeof(sh1107_init_sequence));
|
||||
}
|
||||
|
||||
// Screen flush
|
||||
|
||||
@@ -44,7 +44,9 @@ __attribute__((weak)) bool qp_ssd1351_init(painter_device_t device, painter_rota
|
||||
SSD1351_DISPLAYON, 5, 0,
|
||||
};
|
||||
// clang-format on
|
||||
qp_comms_bulk_command_sequence(device, ssd1351_init_sequence, sizeof(ssd1351_init_sequence));
|
||||
if (!qp_comms_bulk_command_sequence(device, ssd1351_init_sequence, sizeof(ssd1351_init_sequence))) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Configure the rotation (i.e. the ordering and direction of memory writes in GRAM)
|
||||
const uint8_t madctl[] = {
|
||||
@@ -53,10 +55,10 @@ __attribute__((weak)) bool qp_ssd1351_init(painter_device_t device, painter_rota
|
||||
[QP_ROTATION_180] = SSD1351_MADCTL_BGR | SSD1351_MADCTL_MX,
|
||||
[QP_ROTATION_270] = SSD1351_MADCTL_BGR | SSD1351_MADCTL_MV,
|
||||
};
|
||||
qp_comms_command_databyte(device, SSD1351_SETREMAP, madctl[rotation]);
|
||||
qp_comms_command_databyte(device, SSD1351_STARTLINE, (rotation == QP_ROTATION_0 || rotation == QP_ROTATION_90) ? driver->base.panel_height : 0);
|
||||
|
||||
return true;
|
||||
if (!qp_comms_command_databyte(device, SSD1351_SETREMAP, madctl[rotation])) {
|
||||
return false;
|
||||
}
|
||||
return qp_comms_command_databyte(device, SSD1351_STARTLINE, (rotation == QP_ROTATION_0 || rotation == QP_ROTATION_90) ? driver->base.panel_height : 0);
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -63,7 +63,9 @@ __attribute__((weak)) bool qp_st7735_init(painter_device_t device, painter_rotat
|
||||
ST77XX_CMD_DISPLAY_ON, 20, 0
|
||||
};
|
||||
// clang-format on
|
||||
qp_comms_bulk_command_sequence(device, st7735_init_sequence, sizeof(st7735_init_sequence));
|
||||
if (!qp_comms_bulk_command_sequence(device, st7735_init_sequence, sizeof(st7735_init_sequence))) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Configure the rotation (i.e. the ordering and direction of memory writes in GRAM)
|
||||
const uint8_t madctl[] = {
|
||||
@@ -72,7 +74,9 @@ __attribute__((weak)) bool qp_st7735_init(painter_device_t device, painter_rotat
|
||||
[QP_ROTATION_180] = ST77XX_MADCTL_BGR | ST77XX_MADCTL_MX | ST77XX_MADCTL_MY,
|
||||
[QP_ROTATION_270] = ST77XX_MADCTL_BGR | ST77XX_MADCTL_MV | ST77XX_MADCTL_MY,
|
||||
};
|
||||
qp_comms_command_databyte(device, ST77XX_SET_MADCTL, madctl[rotation]);
|
||||
if (!qp_comms_command_databyte(device, ST77XX_SET_MADCTL, madctl[rotation])) {
|
||||
return false;
|
||||
}
|
||||
|
||||
#ifndef ST7735_NO_AUTOMATIC_VIEWPORT_OFFSETS
|
||||
st7735_automatic_viewport_offsets(device, rotation);
|
||||
|
||||
@@ -60,7 +60,9 @@ __attribute__((weak)) bool qp_st7789_init(painter_device_t device, painter_rotat
|
||||
ST77XX_CMD_DISPLAY_ON, 20, 0
|
||||
};
|
||||
// clang-format on
|
||||
qp_comms_bulk_command_sequence(device, st7789_init_sequence, sizeof(st7789_init_sequence));
|
||||
if (!qp_comms_bulk_command_sequence(device, st7789_init_sequence, sizeof(st7789_init_sequence))) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Configure the rotation (i.e. the ordering and direction of memory writes in GRAM)
|
||||
const uint8_t madctl[] = {
|
||||
@@ -69,7 +71,9 @@ __attribute__((weak)) bool qp_st7789_init(painter_device_t device, painter_rotat
|
||||
[QP_ROTATION_180] = ST77XX_MADCTL_RGB | ST77XX_MADCTL_MX | ST77XX_MADCTL_MY,
|
||||
[QP_ROTATION_270] = ST77XX_MADCTL_RGB | ST77XX_MADCTL_MV | ST77XX_MADCTL_MY,
|
||||
};
|
||||
qp_comms_command_databyte(device, ST77XX_SET_MADCTL, madctl[rotation]);
|
||||
if (!qp_comms_command_databyte(device, ST77XX_SET_MADCTL, madctl[rotation])) {
|
||||
return false;
|
||||
}
|
||||
|
||||
#ifndef ST7789_NO_AUTOMATIC_VIEWPORT_OFFSETS
|
||||
st7789_automatic_viewport_offsets(device, rotation);
|
||||
|
||||
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}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
23
keyboards/keyten/imi60_hs/keymaps/default/keymap.c
Normal file
23
keyboards/keyten/imi60_hs/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
|
||||
)
|
||||
};
|
||||
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
|
||||
5
keyboards/yiancardesigns/hyper7/v4/config.h
Normal file
5
keyboards/yiancardesigns/hyper7/v4/config.h
Normal file
@@ -0,0 +1,5 @@
|
||||
// Copyright 2025 Yiancar-Designs, Bit-Shifter
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
#pragma once
|
||||
|
||||
#define DYNAMIC_KEYMAP_MACRO_COUNT 30
|
||||
429
keyboards/yiancardesigns/hyper7/v4/keyboard.json
Normal file
429
keyboards/yiancardesigns/hyper7/v4/keyboard.json
Normal file
@@ -0,0 +1,429 @@
|
||||
{
|
||||
"manufacturer": "Yiancar-Designs",
|
||||
"keyboard_name": "Hyper7 v4",
|
||||
"maintainer": "Yiancar-Designs",
|
||||
"bootloader": "stm32-dfu",
|
||||
"bootmagic": {
|
||||
"matrix": [3, 0]
|
||||
},
|
||||
"diode_direction": "COL2ROW",
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["B11", "B10", "B2", "B1", "B0", "C5", "C4", "A7", "A6", "A5", "A4", "A3", "A2", "A1", "A0", "B12", "B13", "B14", "B15", "A8", "C9", "C8", "C7", "C6", "C11", "C10", "A15", "A14"],
|
||||
"rows": ["C1", "C2", "C3", "A13", "C12", "B3", "B4", "B5"]
|
||||
},
|
||||
"processor": "STM32F072",
|
||||
"url": "https://yiancar-designs.com",
|
||||
"usb": {
|
||||
"device_version": "0.0.1",
|
||||
"pid": "0x6837",
|
||||
"vid": "0x8968"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT_modern": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0, "w":2},
|
||||
{"matrix": [0, 2], "x": 2, "y": 0, "w":2},
|
||||
{"matrix": [0, 4], "x": 4.5, "y": 0, "w":2},
|
||||
{"matrix": [0, 6], "x": 6.5, "y": 0, "w":2},
|
||||
{"matrix": [0, 8], "x": 8.5, "y": 0, "w":2},
|
||||
{"matrix": [0, 10], "x": 10.5, "y": 0, "w":2},
|
||||
{"matrix": [0, 12], "x": 12.5, "y": 0, "w":2},
|
||||
{"matrix": [0, 14], "x": 14.5, "y": 0, "w":2},
|
||||
{"matrix": [0, 16], "x": 16.5, "y": 0, "w":2},
|
||||
{"matrix": [0, 18], "x": 18.5, "y": 0, "w":2},
|
||||
{"matrix": [0, 20], "x": 20.5, "y": 0, "w":2},
|
||||
{"matrix": [0, 22], "x": 22.5, "y": 0, "w":2},
|
||||
{"matrix": [0, 24], "x": 25, "y": 0, "w":2},
|
||||
{"matrix": [0, 26], "x": 27, "y": 0, "w":2},
|
||||
{"matrix": [1, 0], "x": 0, "y": 1, "w":2},
|
||||
{"matrix": [1, 2], "x": 2, "y": 1, "w":2},
|
||||
{"matrix": [1, 4], "x": 4.5, "y": 1, "w":2},
|
||||
{"matrix": [1, 6], "x": 6.5, "y": 1, "w":2},
|
||||
{"matrix": [1, 8], "x": 8.5, "y": 1, "w":2},
|
||||
{"matrix": [1, 10], "x": 10.5, "y": 1, "w":2},
|
||||
{"matrix": [1, 12], "x": 12.5, "y": 1, "w":2},
|
||||
{"matrix": [1, 14], "x": 14.5, "y": 1, "w":2},
|
||||
{"matrix": [1, 16], "x": 16.5, "y": 1, "w":2},
|
||||
{"matrix": [1, 18], "x": 18.5, "y": 1, "w":2},
|
||||
{"matrix": [1, 20], "x": 20.5, "y": 1, "w":2},
|
||||
{"matrix": [1, 22], "x": 22.5, "y": 1, "w":2},
|
||||
{"matrix": [1, 24], "x": 25, "y": 1, "w":2},
|
||||
{"matrix": [1, 26], "x": 27, "y": 1, "w":2},
|
||||
{"matrix": [2, 0], "x": 0, "y": 2},
|
||||
{"matrix": [2, 1], "x": 1, "y": 2},
|
||||
{"matrix": [2, 2], "x": 2, "y": 2},
|
||||
{"matrix": [2, 3], "x": 3, "y": 2},
|
||||
{"matrix": [2, 4], "x": 4.5, "y": 2, "w":2},
|
||||
{"matrix": [2, 6], "x": 6.5, "y": 2},
|
||||
{"matrix": [2, 7], "x": 7.5, "y": 2},
|
||||
{"matrix": [2, 8], "x": 8.5, "y": 2},
|
||||
{"matrix": [2, 9], "x": 9.5, "y": 2},
|
||||
{"matrix": [2, 10], "x": 10.5, "y": 2},
|
||||
{"matrix": [2, 11], "x": 11.5, "y": 2},
|
||||
{"matrix": [2, 12], "x": 12.5, "y": 2},
|
||||
{"matrix": [2, 13], "x": 13.5, "y": 2},
|
||||
{"matrix": [2, 14], "x": 14.5, "y": 2},
|
||||
{"matrix": [2, 15], "x": 15.5, "y": 2},
|
||||
{"matrix": [2, 16], "x": 16.5, "y": 2},
|
||||
{"matrix": [2, 17], "x": 17.5, "y": 2},
|
||||
{"matrix": [2, 18], "x": 18.5, "y": 2},
|
||||
{"matrix": [2, 19], "x": 19.5, "y": 2},
|
||||
{"matrix": [2, 20], "x": 20.5, "y": 2},
|
||||
{"matrix": [2, 21], "x": 21.5, "y": 2},
|
||||
{"matrix": [2, 22], "x": 22.5, "y": 2, "w":2},
|
||||
{"matrix": [2, 24], "x": 25, "y": 2},
|
||||
{"matrix": [2, 25], "x": 26, "y": 2},
|
||||
{"matrix": [2, 26], "x": 27, "y": 2},
|
||||
{"matrix": [2, 27], "x": 28, "y": 2},
|
||||
{"matrix": [3, 0], "x": 0, "y": 3.5},
|
||||
{"matrix": [3, 1], "x": 1, "y": 3.5},
|
||||
{"matrix": [3, 2], "x": 2, "y": 3.5},
|
||||
{"matrix": [3, 3], "x": 3, "y": 3.5},
|
||||
{"matrix": [3, 4], "x": 4.5, "y": 3.5, "w": 1.5},
|
||||
{"matrix": [3, 6], "x": 6, "y": 3.5},
|
||||
{"matrix": [3, 7], "x": 7, "y": 3.5},
|
||||
{"matrix": [3, 8], "x": 8, "y": 3.5},
|
||||
{"matrix": [3, 9], "x": 9, "y": 3.5},
|
||||
{"matrix": [3, 10], "x": 10, "y": 3.5},
|
||||
{"matrix": [3, 11], "x": 11, "y": 3.5},
|
||||
{"matrix": [3, 12], "x": 12, "y": 3.5},
|
||||
{"matrix": [3, 13], "x": 13, "y": 3.5},
|
||||
{"matrix": [3, 14], "x": 14, "y": 3.5},
|
||||
{"matrix": [3, 15], "x": 15, "y": 3.5},
|
||||
{"matrix": [3, 16], "x": 16, "y": 3.5},
|
||||
{"matrix": [3, 17], "x": 17, "y": 3.5},
|
||||
{"matrix": [3, 18], "x": 18, "y": 3.5},
|
||||
{"matrix": [3, 19], "x": 19, "y": 3.5},
|
||||
{"matrix": [3, 20], "x": 20, "y": 3.5},
|
||||
{"matrix": [3, 21], "x": 21, "y": 3.5},
|
||||
{"matrix": [3, 22], "x": 22, "y": 3.5},
|
||||
{"matrix": [3, 23], "x": 23, "y": 3.5, "w": 1.5},
|
||||
{"matrix": [3, 24], "x": 25, "y": 3.5},
|
||||
{"matrix": [3, 25], "x": 26, "y": 3.5},
|
||||
{"matrix": [3, 26], "x": 27, "y": 3.5},
|
||||
{"matrix": [3, 27], "x": 28, "y": 3.5},
|
||||
{"matrix": [4, 0], "x": 0, "y": 4.5},
|
||||
{"matrix": [4, 1], "x": 1, "y": 4.5},
|
||||
{"matrix": [4, 2], "x": 2, "y": 4.5},
|
||||
{"matrix": [4, 3], "x": 3, "y": 4.5},
|
||||
{"matrix": [4, 4], "x": 4.5, "y": 4.5},
|
||||
{"matrix": [4, 5], "x": 5.5, "y": 4.5, "w": 1.5},
|
||||
{"matrix": [4, 7], "x": 7, "y": 4.5, "w": 1.5},
|
||||
{"matrix": [4, 8], "x": 8.5, "y": 4.5},
|
||||
{"matrix": [4, 9], "x": 9.5, "y": 4.5},
|
||||
{"matrix": [4, 10], "x": 10.5, "y": 4.5},
|
||||
{"matrix": [4, 11], "x": 11.5, "y": 4.5},
|
||||
{"matrix": [4, 12], "x": 12.5, "y": 4.5},
|
||||
{"matrix": [4, 13], "x": 13.5, "y": 4.5},
|
||||
{"matrix": [4, 14], "x": 14.5, "y": 4.5},
|
||||
{"matrix": [4, 15], "x": 15.5, "y": 4.5},
|
||||
{"matrix": [4, 16], "x": 16.5, "y": 4.5},
|
||||
{"matrix": [4, 17], "x": 17.5, "y": 4.5},
|
||||
{"matrix": [4, 18], "x": 18.5, "y": 4.5},
|
||||
{"matrix": [4, 19], "x": 19.5, "y": 4.5},
|
||||
{"matrix": [4, 20], "x": 20.5, "y": 4.5, "w": 1.5},
|
||||
{"matrix": [4, 22], "x": 22, "y": 4.5, "w": 1.5},
|
||||
{"matrix": [4, 23], "x": 23.5, "y": 4.5},
|
||||
{"matrix": [4, 24], "x": 25, "y": 4.5},
|
||||
{"matrix": [4, 25], "x": 26, "y": 4.5},
|
||||
{"matrix": [4, 26], "x": 27, "y": 4.5},
|
||||
{"matrix": [4, 27], "x": 28, "y": 4.5},
|
||||
{"matrix": [5, 0], "x": 0, "y": 5.5},
|
||||
{"matrix": [5, 1], "x": 1, "y": 5.5},
|
||||
{"matrix": [5, 2], "x": 2, "y": 5.5},
|
||||
{"matrix": [5, 3], "x": 3, "y": 5.5},
|
||||
{"matrix": [5, 4], "x": 4.5, "y": 5.5, "w": 1.5},
|
||||
{"matrix": [5, 6], "x": 6, "y": 5.5, "w": 1.5},
|
||||
{"matrix": [5, 7], "x": 7.5, "y": 5.5, "w": 1.5},
|
||||
{"matrix": [5, 9], "x": 9, "y": 5.5},
|
||||
{"matrix": [5, 10], "x": 10, "y": 5.5},
|
||||
{"matrix": [5, 11], "x": 11, "y": 5.5},
|
||||
{"matrix": [5, 12], "x": 12, "y": 5.5},
|
||||
{"matrix": [5, 13], "x": 13, "y": 5.5},
|
||||
{"matrix": [5, 14], "x": 14, "y": 5.5},
|
||||
{"matrix": [5, 15], "x": 15, "y": 5.5},
|
||||
{"matrix": [5, 16], "x": 16, "y": 5.5},
|
||||
{"matrix": [5, 17], "x": 17, "y": 5.5},
|
||||
{"matrix": [5, 18], "x": 18, "y": 5.5},
|
||||
{"matrix": [5, 19], "x": 19, "y": 5.5},
|
||||
{"matrix": [5, 20], "x": 20, "y": 5.5, "w": 1.5},
|
||||
{"matrix": [5, 21], "x": 21.5, "y": 5.5, "w": 1.5},
|
||||
{"matrix": [5, 23], "x": 23, "y": 5.5, "w": 1.5},
|
||||
{"matrix": [5, 24], "x": 25, "y": 5.5},
|
||||
{"matrix": [5, 25], "x": 26, "y": 5.5},
|
||||
{"matrix": [5, 26], "x": 27, "y": 5.5},
|
||||
{"matrix": [5, 27], "x": 28, "y": 5.5},
|
||||
{"matrix": [6, 0], "x": 0, "y": 6.5},
|
||||
{"matrix": [6, 1], "x": 1, "y": 6.5},
|
||||
{"matrix": [6, 2], "x": 2, "y": 6.5},
|
||||
{"matrix": [6, 3], "x": 3, "y": 6.5},
|
||||
{"matrix": [6, 4], "x": 4.5, "y": 6.5},
|
||||
{"matrix": [6, 5], "x": 5.5, "y": 6.5},
|
||||
{"matrix": [6, 6], "x": 6.5, "y": 6.5, "w": 1.5},
|
||||
{"matrix": [6, 8], "x": 8, "y": 6.5, "w": 1.5},
|
||||
{"matrix": [6, 9], "x": 9.5, "y": 6.5},
|
||||
{"matrix": [6, 10], "x": 10.5, "y": 6.5},
|
||||
{"matrix": [6, 11], "x": 11.5, "y": 6.5},
|
||||
{"matrix": [6, 12], "x": 12.5, "y": 6.5},
|
||||
{"matrix": [6, 13], "x": 13.5, "y": 6.5},
|
||||
{"matrix": [6, 14], "x": 14.5, "y": 6.5},
|
||||
{"matrix": [6, 15], "x": 15.5, "y": 6.5},
|
||||
{"matrix": [6, 16], "x": 16.5, "y": 6.5},
|
||||
{"matrix": [6, 17], "x": 17.5, "y": 6.5},
|
||||
{"matrix": [6, 18], "x": 18.5, "y": 6.5},
|
||||
{"matrix": [6, 19], "x": 19.5, "y": 6.5, "w": 1.5},
|
||||
{"matrix": [6, 21], "x": 21, "y": 6.5, "w": 1.5},
|
||||
{"matrix": [6, 22], "x": 22.5, "y": 6.5},
|
||||
{"matrix": [6, 23], "x": 23.5, "y": 6.5},
|
||||
{"matrix": [6, 24], "x": 25, "y": 6.5},
|
||||
{"matrix": [6, 25], "x": 26, "y": 6.5},
|
||||
{"matrix": [6, 26], "x": 27, "y": 6.5},
|
||||
{"matrix": [6, 27], "x": 28, "y": 6.5},
|
||||
{"matrix": [7, 0], "x": 0, "y": 7.5},
|
||||
{"matrix": [7, 1], "x": 1, "y": 7.5},
|
||||
{"matrix": [7, 2], "x": 2, "y": 7.5},
|
||||
{"matrix": [7, 3], "x": 3, "y": 7.5},
|
||||
{"matrix": [7, 4], "x": 4.5, "y": 7.5},
|
||||
{"matrix": [7, 5], "x": 5.5, "y": 7.5},
|
||||
{"matrix": [7, 6], "x": 6.5, "y": 7.5},
|
||||
{"matrix": [7, 7], "x": 7.5, "y": 7.5, "w": 1.5},
|
||||
{"matrix": [7, 8], "x": 9, "y": 7.5, "w": 1.5},
|
||||
{"matrix": [7, 13], "x": 10.5, "y": 7.5, "w": 7},
|
||||
{"matrix": [7, 18], "x": 17.5, "y": 7.5},
|
||||
{"matrix": [7, 19], "x": 18.5, "y": 7.5, "w": 1.5},
|
||||
{"matrix": [7, 20], "x": 20, "y": 7.5, "w": 1.5},
|
||||
{"matrix": [7, 21], "x": 21.5, "y": 7.5},
|
||||
{"matrix": [7, 22], "x": 22.5, "y": 7.5},
|
||||
{"matrix": [7, 23], "x": 23.5, "y": 7.5},
|
||||
{"matrix": [7, 24], "x": 25, "y": 7.5},
|
||||
{"matrix": [7, 25], "x": 26, "y": 7.5},
|
||||
{"matrix": [7, 26], "x": 27, "y": 7.5},
|
||||
{"matrix": [7, 27], "x": 28, "y": 7.5}
|
||||
]
|
||||
},
|
||||
"LAYOUT_all": {
|
||||
"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.5, "y": 0},
|
||||
{"matrix": [0, 5], "x": 5.5, "y": 0},
|
||||
{"matrix": [0, 6], "x": 6.5, "y": 0},
|
||||
{"matrix": [0, 7], "x": 7.5, "y": 0},
|
||||
{"matrix": [0, 8], "x": 8.5, "y": 0},
|
||||
{"matrix": [0, 9], "x": 9.5, "y": 0},
|
||||
{"matrix": [0, 10], "x": 10.5, "y": 0},
|
||||
{"matrix": [0, 11], "x": 11.5, "y": 0},
|
||||
{"matrix": [0, 12], "x": 12.5, "y": 0},
|
||||
{"matrix": [0, 13], "x": 13.5, "y": 0},
|
||||
{"matrix": [0, 14], "x": 14.5, "y": 0},
|
||||
{"matrix": [0, 15], "x": 15.5, "y": 0},
|
||||
{"matrix": [0, 16], "x": 16.5, "y": 0},
|
||||
{"matrix": [0, 17], "x": 17.5, "y": 0},
|
||||
{"matrix": [0, 18], "x": 18.5, "y": 0},
|
||||
{"matrix": [0, 19], "x": 19.5, "y": 0},
|
||||
{"matrix": [0, 20], "x": 20.5, "y": 0},
|
||||
{"matrix": [0, 21], "x": 21.5, "y": 0},
|
||||
{"matrix": [0, 22], "x": 22.5, "y": 0},
|
||||
{"matrix": [0, 23], "x": 23.5, "y": 0},
|
||||
{"matrix": [0, 24], "x": 25, "y": 0},
|
||||
{"matrix": [0, 25], "x": 26, "y": 0},
|
||||
{"matrix": [0, 26], "x": 27, "y": 0},
|
||||
{"matrix": [0, 27], "x": 28, "y": 0},
|
||||
{"matrix": [1, 0], "x": 0, "y": 1},
|
||||
{"matrix": [1, 1], "x": 1, "y": 1},
|
||||
{"matrix": [1, 2], "x": 2, "y": 1},
|
||||
{"matrix": [1, 3], "x": 3, "y": 1},
|
||||
{"matrix": [1, 4], "x": 4.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},
|
||||
{"matrix": [1, 14], "x": 14.5, "y": 1},
|
||||
{"matrix": [1, 15], "x": 15.5, "y": 1},
|
||||
{"matrix": [1, 16], "x": 16.5, "y": 1},
|
||||
{"matrix": [1, 17], "x": 17.5, "y": 1},
|
||||
{"matrix": [1, 18], "x": 18.5, "y": 1},
|
||||
{"matrix": [1, 19], "x": 19.5, "y": 1},
|
||||
{"matrix": [1, 20], "x": 20.5, "y": 1},
|
||||
{"matrix": [1, 21], "x": 21.5, "y": 1},
|
||||
{"matrix": [1, 22], "x": 22.5, "y": 1},
|
||||
{"matrix": [1, 23], "x": 23.5, "y": 1},
|
||||
{"matrix": [1, 24], "x": 25, "y": 1},
|
||||
{"matrix": [1, 25], "x": 26, "y": 1},
|
||||
{"matrix": [1, 26], "x": 27, "y": 1},
|
||||
{"matrix": [1, 27], "x": 28, "y": 1},
|
||||
{"matrix": [2, 0], "x": 0, "y": 2},
|
||||
{"matrix": [2, 1], "x": 1, "y": 2},
|
||||
{"matrix": [2, 2], "x": 2, "y": 2},
|
||||
{"matrix": [2, 3], "x": 3, "y": 2},
|
||||
{"matrix": [2, 4], "x": 4.5, "y": 2},
|
||||
{"matrix": [2, 5], "x": 5.5, "y": 2},
|
||||
{"matrix": [2, 6], "x": 6.5, "y": 2},
|
||||
{"matrix": [2, 7], "x": 7.5, "y": 2},
|
||||
{"matrix": [2, 8], "x": 8.5, "y": 2},
|
||||
{"matrix": [2, 9], "x": 9.5, "y": 2},
|
||||
{"matrix": [2, 10], "x": 10.5, "y": 2},
|
||||
{"matrix": [2, 11], "x": 11.5, "y": 2},
|
||||
{"matrix": [2, 12], "x": 12.5, "y": 2},
|
||||
{"matrix": [2, 13], "x": 13.5, "y": 2},
|
||||
{"matrix": [2, 14], "x": 14.5, "y": 2},
|
||||
{"matrix": [2, 15], "x": 15.5, "y": 2},
|
||||
{"matrix": [2, 16], "x": 16.5, "y": 2},
|
||||
{"matrix": [2, 17], "x": 17.5, "y": 2},
|
||||
{"matrix": [2, 18], "x": 18.5, "y": 2},
|
||||
{"matrix": [2, 19], "x": 19.5, "y": 2},
|
||||
{"matrix": [2, 20], "x": 20.5, "y": 2},
|
||||
{"matrix": [2, 21], "x": 21.5, "y": 2},
|
||||
{"matrix": [2, 22], "x": 22.5, "y": 2},
|
||||
{"matrix": [2, 23], "x": 23.5, "y": 2},
|
||||
{"matrix": [2, 24], "x": 25, "y": 2},
|
||||
{"matrix": [2, 25], "x": 26, "y": 2},
|
||||
{"matrix": [2, 26], "x": 27, "y": 2},
|
||||
{"matrix": [2, 27], "x": 28, "y": 2},
|
||||
{"matrix": [3, 0], "x": 0, "y": 3.5},
|
||||
{"matrix": [3, 1], "x": 1, "y": 3.5},
|
||||
{"matrix": [3, 2], "x": 2, "y": 3.5},
|
||||
{"matrix": [3, 3], "x": 3, "y": 3.5},
|
||||
{"matrix": [3, 4], "x": 4.5, "y": 3.5, "w": 1.5},
|
||||
{"matrix": [3, 6], "x": 6, "y": 3.5},
|
||||
{"matrix": [3, 7], "x": 7, "y": 3.5},
|
||||
{"matrix": [3, 8], "x": 8, "y": 3.5},
|
||||
{"matrix": [3, 9], "x": 9, "y": 3.5},
|
||||
{"matrix": [3, 10], "x": 10, "y": 3.5},
|
||||
{"matrix": [3, 11], "x": 11, "y": 3.5},
|
||||
{"matrix": [3, 12], "x": 12, "y": 3.5},
|
||||
{"matrix": [3, 13], "x": 13, "y": 3.5},
|
||||
{"matrix": [3, 14], "x": 14, "y": 3.5},
|
||||
{"matrix": [3, 15], "x": 15, "y": 3.5},
|
||||
{"matrix": [3, 16], "x": 16, "y": 3.5},
|
||||
{"matrix": [3, 17], "x": 17, "y": 3.5},
|
||||
{"matrix": [3, 18], "x": 18, "y": 3.5},
|
||||
{"matrix": [3, 19], "x": 19, "y": 3.5},
|
||||
{"matrix": [3, 20], "x": 20, "y": 3.5},
|
||||
{"matrix": [3, 21], "x": 21, "y": 3.5},
|
||||
{"matrix": [3, 22], "x": 22, "y": 3.5},
|
||||
{"matrix": [3, 23], "x": 23, "y": 3.5, "w": 1.5},
|
||||
{"matrix": [3, 24], "x": 25, "y": 3.5},
|
||||
{"matrix": [3, 25], "x": 26, "y": 3.5},
|
||||
{"matrix": [3, 26], "x": 27, "y": 3.5},
|
||||
{"matrix": [3, 27], "x": 28, "y": 3.5},
|
||||
{"matrix": [4, 0], "x": 0, "y": 4.5},
|
||||
{"matrix": [4, 1], "x": 1, "y": 4.5},
|
||||
{"matrix": [4, 2], "x": 2, "y": 4.5},
|
||||
{"matrix": [4, 3], "x": 3, "y": 4.5},
|
||||
{"matrix": [4, 4], "x": 4.5, "y": 4.5},
|
||||
{"matrix": [4, 5], "x": 5.5, "y": 4.5, "w": 1.5},
|
||||
{"matrix": [4, 7], "x": 7, "y": 4.5, "w": 1.5},
|
||||
{"matrix": [4, 8], "x": 8.5, "y": 4.5},
|
||||
{"matrix": [4, 9], "x": 9.5, "y": 4.5},
|
||||
{"matrix": [4, 10], "x": 10.5, "y": 4.5},
|
||||
{"matrix": [4, 11], "x": 11.5, "y": 4.5},
|
||||
{"matrix": [4, 12], "x": 12.5, "y": 4.5},
|
||||
{"matrix": [4, 13], "x": 13.5, "y": 4.5},
|
||||
{"matrix": [4, 14], "x": 14.5, "y": 4.5},
|
||||
{"matrix": [4, 15], "x": 15.5, "y": 4.5},
|
||||
{"matrix": [4, 16], "x": 16.5, "y": 4.5},
|
||||
{"matrix": [4, 17], "x": 17.5, "y": 4.5},
|
||||
{"matrix": [4, 18], "x": 18.5, "y": 4.5},
|
||||
{"matrix": [4, 19], "x": 19.5, "y": 4.5},
|
||||
{"matrix": [4, 20], "x": 20.5, "y": 4.5, "w": 1.5},
|
||||
{"matrix": [4, 22], "x": 22, "y": 4.5, "w": 1.5},
|
||||
{"matrix": [4, 23], "x": 23.5, "y": 4.5},
|
||||
{"matrix": [4, 24], "x": 25, "y": 4.5},
|
||||
{"matrix": [4, 25], "x": 26, "y": 4.5},
|
||||
{"matrix": [4, 26], "x": 27, "y": 4.5},
|
||||
{"matrix": [4, 27], "x": 28, "y": 4.5},
|
||||
{"matrix": [5, 0], "x": 0, "y": 5.5},
|
||||
{"matrix": [5, 1], "x": 1, "y": 5.5},
|
||||
{"matrix": [5, 2], "x": 2, "y": 5.5},
|
||||
{"matrix": [5, 3], "x": 3, "y": 5.5},
|
||||
{"matrix": [5, 4], "x": 4.5, "y": 5.5, "w": 1.5},
|
||||
{"matrix": [5, 6], "x": 6, "y": 5.5, "w": 1.5},
|
||||
{"matrix": [5, 7], "x": 7.5, "y": 5.5, "w": 1.5},
|
||||
{"matrix": [5, 9], "x": 9, "y": 5.5},
|
||||
{"matrix": [5, 10], "x": 10, "y": 5.5},
|
||||
{"matrix": [5, 11], "x": 11, "y": 5.5},
|
||||
{"matrix": [5, 12], "x": 12, "y": 5.5},
|
||||
{"matrix": [5, 13], "x": 13, "y": 5.5},
|
||||
{"matrix": [5, 14], "x": 14, "y": 5.5},
|
||||
{"matrix": [5, 15], "x": 15, "y": 5.5},
|
||||
{"matrix": [5, 16], "x": 16, "y": 5.5},
|
||||
{"matrix": [5, 17], "x": 17, "y": 5.5},
|
||||
{"matrix": [5, 18], "x": 18, "y": 5.5},
|
||||
{"matrix": [5, 19], "x": 19, "y": 5.5},
|
||||
{"matrix": [5, 20], "x": 20, "y": 5.5, "w": 1.5},
|
||||
{"matrix": [5, 21], "x": 21.5, "y": 5.5, "w": 1.5},
|
||||
{"matrix": [5, 23], "x": 23, "y": 5.5, "w": 1.5},
|
||||
{"matrix": [5, 24], "x": 25, "y": 5.5},
|
||||
{"matrix": [5, 25], "x": 26, "y": 5.5},
|
||||
{"matrix": [5, 26], "x": 27, "y": 5.5},
|
||||
{"matrix": [5, 27], "x": 28, "y": 5.5},
|
||||
{"matrix": [6, 0], "x": 0, "y": 6.5},
|
||||
{"matrix": [6, 1], "x": 1, "y": 6.5},
|
||||
{"matrix": [6, 2], "x": 2, "y": 6.5},
|
||||
{"matrix": [6, 3], "x": 3, "y": 6.5},
|
||||
{"matrix": [6, 4], "x": 4.5, "y": 6.5},
|
||||
{"matrix": [6, 5], "x": 5.5, "y": 6.5},
|
||||
{"matrix": [6, 6], "x": 6.5, "y": 6.5, "w": 1.5},
|
||||
{"matrix": [6, 8], "x": 8, "y": 6.5, "w": 1.5},
|
||||
{"matrix": [6, 9], "x": 9.5, "y": 6.5},
|
||||
{"matrix": [6, 10], "x": 10.5, "y": 6.5},
|
||||
{"matrix": [6, 11], "x": 11.5, "y": 6.5},
|
||||
{"matrix": [6, 12], "x": 12.5, "y": 6.5},
|
||||
{"matrix": [6, 13], "x": 13.5, "y": 6.5},
|
||||
{"matrix": [6, 14], "x": 14.5, "y": 6.5},
|
||||
{"matrix": [6, 15], "x": 15.5, "y": 6.5},
|
||||
{"matrix": [6, 16], "x": 16.5, "y": 6.5},
|
||||
{"matrix": [6, 17], "x": 17.5, "y": 6.5},
|
||||
{"matrix": [6, 18], "x": 18.5, "y": 6.5},
|
||||
{"matrix": [6, 19], "x": 19.5, "y": 6.5, "w": 1.5},
|
||||
{"matrix": [6, 21], "x": 21, "y": 6.5, "w": 1.5},
|
||||
{"matrix": [6, 22], "x": 22.5, "y": 6.5},
|
||||
{"matrix": [6, 23], "x": 23.5, "y": 6.5},
|
||||
{"matrix": [6, 24], "x": 25, "y": 6.5},
|
||||
{"matrix": [6, 25], "x": 26, "y": 6.5},
|
||||
{"matrix": [6, 26], "x": 27, "y": 6.5},
|
||||
{"matrix": [6, 27], "x": 28, "y": 6.5},
|
||||
{"matrix": [7, 0], "x": 0, "y": 7.5},
|
||||
{"matrix": [7, 1], "x": 1, "y": 7.5},
|
||||
{"matrix": [7, 2], "x": 2, "y": 7.5},
|
||||
{"matrix": [7, 3], "x": 3, "y": 7.5},
|
||||
{"matrix": [7, 4], "x": 4.5, "y": 7.5},
|
||||
{"matrix": [7, 5], "x": 5.5, "y": 7.5},
|
||||
{"matrix": [7, 6], "x": 6.5, "y": 7.5},
|
||||
{"matrix": [7, 7], "x": 7.5, "y": 7.5},
|
||||
{"matrix": [7, 8], "x": 8.5, "y": 7.5, "w": 1.5},
|
||||
{"matrix": [7, 10], "x": 10, "y": 7.5},
|
||||
{"matrix": [7, 11], "x": 11, "y": 7.5, "w": 1.5},
|
||||
{"matrix": [7, 12], "x": 12.5, "y": 7.5, "w": 1.5},
|
||||
{"matrix": [7, 14], "x": 14, "y": 7.5},
|
||||
{"matrix": [7, 15], "x": 15, "y": 7.5, "w": 1.5},
|
||||
{"matrix": [7, 16], "x": 16.5, "y": 7.5, "w": 1.5},
|
||||
{"matrix": [7, 18], "x": 18, "y": 7.5},
|
||||
{"matrix": [7, 19], "x": 19, "y": 7.5, "w": 1.5},
|
||||
{"matrix": [7, 20], "x": 20.5, "y": 7.5},
|
||||
{"matrix": [7, 21], "x": 21.5, "y": 7.5},
|
||||
{"matrix": [7, 22], "x": 22.5, "y": 7.5},
|
||||
{"matrix": [7, 23], "x": 23.5, "y": 7.5},
|
||||
{"matrix": [7, 24], "x": 25, "y": 7.5},
|
||||
{"matrix": [7, 25], "x": 26, "y": 7.5},
|
||||
{"matrix": [7, 26], "x": 27, "y": 7.5},
|
||||
{"matrix": [7, 27], "x": 28, "y": 7.5},
|
||||
{"matrix": [7, 13], "x": 11, "y": 8.5, "w": 7}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
111
keyboards/yiancardesigns/hyper7/v4/keymaps/default/keymap.c
Normal file
111
keyboards/yiancardesigns/hyper7/v4/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,111 @@
|
||||
// Copyright 2025 Yiancar-Designs, Bit-Shifter
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
enum my_keycodes {
|
||||
MACRO = QK_USER_0,
|
||||
QUOTE,
|
||||
CLRIN,
|
||||
SQUAR,
|
||||
CIRCL,
|
||||
TRIAN,
|
||||
DIAMO,
|
||||
WRITE,
|
||||
TTY,
|
||||
PLUSM,
|
||||
MODE,
|
||||
};
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
case MACRO:
|
||||
if (record->event.pressed) {
|
||||
// when keycode MACRO is pressed
|
||||
SEND_STRING("Hyper7 is the best thing ever!");
|
||||
}
|
||||
break;
|
||||
case QUOTE:
|
||||
if (record->event.pressed) {
|
||||
// when keycode QUOTE is pressed
|
||||
SEND_STRING("\"\"" SS_TAP(X_LEFT));
|
||||
}
|
||||
break;
|
||||
case CLRIN:
|
||||
if (record->event.pressed) {
|
||||
// when keycode CLRIN is pressed
|
||||
SEND_STRING(SS_LCTL("a") SS_TAP(X_DEL));
|
||||
}
|
||||
break;
|
||||
case SQUAR:
|
||||
if (record->event.pressed) {
|
||||
// when keycode SQUAR is pressed
|
||||
SEND_STRING("I like squares");
|
||||
}
|
||||
break;
|
||||
case CIRCL:
|
||||
if (record->event.pressed) {
|
||||
// when keycode CIRCL is pressed
|
||||
SEND_STRING("I like circles");
|
||||
}
|
||||
break;
|
||||
case TRIAN:
|
||||
if (record->event.pressed) {
|
||||
// when keycode TRIAN is pressed
|
||||
SEND_STRING("I like the illuminati");
|
||||
}
|
||||
break;
|
||||
case DIAMO:
|
||||
if (record->event.pressed) {
|
||||
// when keycode DIAMO is pressed
|
||||
SEND_STRING("Everyone likes diamonds");
|
||||
}
|
||||
break;
|
||||
case WRITE:
|
||||
if (record->event.pressed) {
|
||||
// when keycode WRITE is pressed
|
||||
SEND_STRING(SS_LGUI("x") "notepad" SS_TAP(X_ENT));
|
||||
}
|
||||
break;
|
||||
case TTY:
|
||||
if (record->event.pressed) {
|
||||
// when keycode TTY is pressed
|
||||
SEND_STRING(SS_LGUI("x") "cmd" SS_TAP(X_ENT));
|
||||
}
|
||||
break;
|
||||
case PLUSM:
|
||||
if (record->event.pressed) {
|
||||
// when keycode PLUSM is pressed
|
||||
SEND_STRING("+-");
|
||||
}
|
||||
case MODE:
|
||||
if (record->event.pressed) {
|
||||
// when keycode MODE is pressed
|
||||
SEND_STRING("Mode");
|
||||
}
|
||||
}
|
||||
return true;
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT_modern(
|
||||
G(KC_F1), MACRO, RCS(KC_ESC), QUOTE, KC_INS, CLRIN, G(KC_D), C(KC_S), C(KC_C), A(KC_F4), KC_PAUS, C(KC_P), G(C(KC_Q)), LCA(KC_DEL),
|
||||
G(KC_X), KC_WHOM, G(KC_PAUS), C(KC_R), A(KC_TAB), SQUAR, CIRCL, TRIAN, DIAMO, C(KC_Y), LAG(KC_R), RCS(KC_ESC), G(KC_L), KC_CAPS,
|
||||
KC_F1, KC_F2, A(KC_F4), G(KC_R), KC_ESC, KC_QUES, KC_EXLM, KC_AT, KC_AT, KC_AT, KC_AT, KC_GRV, KC_GRV, KC_GRV, KC_GRV, KC_UNDS, KC_LABK, KC_RABK, KC_PIPE, KC_LCBR, KC_RCBR, C(KC_ENT), KC_CIRC, KC_PERC, KC_HASH, KC_DLR,
|
||||
KC_F3, KC_F4, C(KC_F), WRITE, LSFT(KC_N), PLUSM, KC_TILD, 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_NUBS, KC_LBRC, KC_RBRC, C(KC_Z), KC_PMNS, KC_PSLS, KC_PAST, KC_PMNS,
|
||||
KC_F5, KC_F6, C(KC_M), C(KC_Z), C(KC_V), C(KC_X), KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LCBR, KC_RCBR, KC_BSPC, KC_CLEAR, C(KC_HOME),KC_P7, KC_P8, KC_P9, KC_PPLS,
|
||||
KC_F7, KC_F8, C(KC_A), KC_F12, MO(1), MODE, KC_PGUP, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_COLN, KC_QUOT, KC_ENT, KC_HOME, KC_PGDN, KC_P4, KC_P5, KC_P6, KC_AMPR,
|
||||
KC_F9, KC_F10, TTY, G(KC_L), C(KC_HOME),KC_END, G(KC_DOT), KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, G(KC_DOT), KC_UP, KC_LGUI, KC_P1, KC_P2, KC_P3, KC_EQL,
|
||||
KC_F11, KC_F12, KC_HOME, C(KC_END), C(KC_LEFT),C(KC_RGHT),G(KC_DOWN),KC_HYPR, KC_LALT, KC_SPC, KC_RGUI, KC_HYPR, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL, KC_P0, KC_PDOT, KC_ENTER
|
||||
),
|
||||
[1] = LAYOUT_modern(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
};
|
||||
25
keyboards/yiancardesigns/hyper7/v4/readme.md
Normal file
25
keyboards/yiancardesigns/hyper7/v4/readme.md
Normal file
@@ -0,0 +1,25 @@
|
||||
# Hyper7 v4
|
||||
|
||||
This is a very big pcb... It supports VIA.
|
||||
|
||||
* Keyboard Maintainer: [Yiancar](http://yiancar-designs.com/) and on [GitHub](https://github.com/yiancar)
|
||||
* Hardware Supported: A very big keyboard with STM32F072RB
|
||||
* Hardware Availability: https://mechboards.co.uk/
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make yiancardesigns/hyper7/v4:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make yiancardesigns/hyper7/v4: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 (3,0) in the matrix (F3) 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
|
||||
20
keyboards/zeix/singa/rubrehaku/config.h
Normal file
20
keyboards/zeix/singa/rubrehaku/config.h
Normal file
@@ -0,0 +1,20 @@
|
||||
/*
|
||||
Copyright 2024 zeix (@itsme-zeix)
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
|
||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U
|
||||
694
keyboards/zeix/singa/rubrehaku/keyboard.json
Normal file
694
keyboards/zeix/singa/rubrehaku/keyboard.json
Normal file
@@ -0,0 +1,694 @@
|
||||
{
|
||||
"manufacturer": "KLC",
|
||||
"keyboard_name": "Rubrehaku",
|
||||
"maintainer": "itsme-zeix",
|
||||
"bootloader": "rp2040",
|
||||
"diode_direction": "COL2ROW",
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true,
|
||||
"rgblight": true
|
||||
},
|
||||
"indicators": {
|
||||
"caps_lock": "GP29"
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["GP7", "GP6", "GP5", "GP4", "GP3", "GP2", "GP1", "GP0"],
|
||||
"rows": ["GP27", "GP28", "GP10", "GP11", "GP18", "GP19", "GP23", "GP24", "GP25", "GP26"]
|
||||
},
|
||||
"processor": "RP2040",
|
||||
"rgblight": {
|
||||
"animations": {
|
||||
"alternating": true,
|
||||
"breathing": true,
|
||||
"christmas": true,
|
||||
"knight": true,
|
||||
"rainbow_mood": true,
|
||||
"rainbow_swirl": true,
|
||||
"snake": true,
|
||||
"static_gradient": true,
|
||||
"twinkle": true
|
||||
},
|
||||
"default": {
|
||||
"hue": 210,
|
||||
"sat": 100,
|
||||
"val": 8
|
||||
},
|
||||
"driver": "ws2812",
|
||||
"led_count": 16,
|
||||
"sleep": true
|
||||
},
|
||||
"url": "https://klc-playground.com",
|
||||
"usb": {
|
||||
"device_version": "0.0.1",
|
||||
"pid": "0x8889",
|
||||
"vid": "0x4C27"
|
||||
},
|
||||
"ws2812": {
|
||||
"driver": "vendor",
|
||||
"pin": "GP20"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT_all": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [1, 0], "x": 1, "y": 0},
|
||||
{"matrix": [0, 1], "x": 2, "y": 0},
|
||||
{"matrix": [1, 1], "x": 3, "y": 0},
|
||||
{"matrix": [0, 2], "x": 4, "y": 0},
|
||||
{"matrix": [1, 2], "x": 5, "y": 0},
|
||||
{"matrix": [0, 3], "x": 6, "y": 0},
|
||||
{"matrix": [1, 3], "x": 7, "y": 0},
|
||||
{"matrix": [0, 4], "x": 8, "y": 0},
|
||||
{"matrix": [1, 4], "x": 9, "y": 0},
|
||||
{"matrix": [0, 5], "x": 10, "y": 0},
|
||||
{"matrix": [1, 5], "x": 11, "y": 0},
|
||||
{"matrix": [0, 6], "x": 12, "y": 0},
|
||||
{"matrix": [1, 6], "x": 13, "y": 0},
|
||||
{"matrix": [0, 7], "x": 14, "y": 0},
|
||||
{"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [3, 0], "x": 1.5, "y": 1},
|
||||
{"matrix": [2, 1], "x": 2.5, "y": 1},
|
||||
{"matrix": [3, 1], "x": 3.5, "y": 1},
|
||||
{"matrix": [2, 2], "x": 4.5, "y": 1},
|
||||
{"matrix": [3, 2], "x": 5.5, "y": 1},
|
||||
{"matrix": [2, 3], "x": 6.5, "y": 1},
|
||||
{"matrix": [3, 3], "x": 7.5, "y": 1},
|
||||
{"matrix": [2, 4], "x": 8.5, "y": 1},
|
||||
{"matrix": [3, 4], "x": 9.5, "y": 1},
|
||||
{"matrix": [2, 5], "x": 10.5, "y": 1},
|
||||
{"matrix": [3, 5], "x": 11.5, "y": 1},
|
||||
{"matrix": [2, 6], "x": 12.5, "y": 1},
|
||||
{"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5},
|
||||
{"matrix": [3, 7], "x": 15, "y": 1},
|
||||
{"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [5, 0], "x": 1.75, "y": 2},
|
||||
{"matrix": [4, 1], "x": 2.75, "y": 2},
|
||||
{"matrix": [5, 1], "x": 3.75, "y": 2},
|
||||
{"matrix": [4, 2], "x": 4.75, "y": 2},
|
||||
{"matrix": [5, 2], "x": 5.75, "y": 2},
|
||||
{"matrix": [4, 3], "x": 6.75, "y": 2},
|
||||
{"matrix": [5, 3], "x": 7.75, "y": 2},
|
||||
{"matrix": [4, 4], "x": 8.75, "y": 2},
|
||||
{"matrix": [5, 4], "x": 9.75, "y": 2},
|
||||
{"matrix": [4, 5], "x": 10.75, "y": 2},
|
||||
{"matrix": [5, 5], "x": 11.75, "y": 2},
|
||||
{"matrix": [4, 6], "x": 12.75, "y": 2},
|
||||
{"matrix": [5, 6], "x": 13.75, "y": 2, "w": 1.25},
|
||||
{"matrix": [5, 7], "x": 15, "y": 2},
|
||||
{"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25},
|
||||
{"matrix": [7, 0], "x": 1.25, "y": 3},
|
||||
{"matrix": [6, 1], "x": 2.25, "y": 3},
|
||||
{"matrix": [7, 1], "x": 3.25, "y": 3},
|
||||
{"matrix": [6, 2], "x": 4.25, "y": 3},
|
||||
{"matrix": [7, 2], "x": 5.25, "y": 3},
|
||||
{"matrix": [6, 3], "x": 6.25, "y": 3},
|
||||
{"matrix": [7, 3], "x": 7.25, "y": 3},
|
||||
{"matrix": [6, 4], "x": 8.25, "y": 3},
|
||||
{"matrix": [7, 4], "x": 9.25, "y": 3},
|
||||
{"matrix": [6, 5], "x": 10.25, "y": 3},
|
||||
{"matrix": [7, 5], "x": 11.25, "y": 3},
|
||||
{"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"matrix": [7, 6], "x": 14, "y": 3},
|
||||
{"matrix": [7, 7], "x": 15, "y": 3},
|
||||
{"matrix": [8, 0], "x": 0, "y": 4, "w": 1.25},
|
||||
{"matrix": [9, 0], "x": 1.25, "y": 4, "w": 1.25},
|
||||
{"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.25},
|
||||
{"matrix": [9, 2], "x": 3.75, "y": 4, "w": 2.75},
|
||||
{"matrix": [8, 3], "x": 6.5, "y": 4, "w": 1.25},
|
||||
{"matrix": [9, 4], "x": 7.75, "y": 4, "w": 2.25},
|
||||
{"matrix": [8, 5], "x": 10, "y": 4, "w": 1.25},
|
||||
{"matrix": [9, 5], "x": 11.25, "y": 4, "w": 1.25},
|
||||
{"matrix": [8, 6], "x": 13, "y": 4},
|
||||
{"matrix": [9, 6], "x": 14, "y": 4},
|
||||
{"matrix": [9, 7], "x": 15, "y": 4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_ansi": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [1, 0], "x": 1, "y": 0},
|
||||
{"matrix": [0, 1], "x": 2, "y": 0},
|
||||
{"matrix": [1, 1], "x": 3, "y": 0},
|
||||
{"matrix": [0, 2], "x": 4, "y": 0},
|
||||
{"matrix": [1, 2], "x": 5, "y": 0},
|
||||
{"matrix": [0, 3], "x": 6, "y": 0},
|
||||
{"matrix": [1, 3], "x": 7, "y": 0},
|
||||
{"matrix": [0, 4], "x": 8, "y": 0},
|
||||
{"matrix": [1, 4], "x": 9, "y": 0},
|
||||
{"matrix": [0, 5], "x": 10, "y": 0},
|
||||
{"matrix": [1, 5], "x": 11, "y": 0},
|
||||
{"matrix": [0, 6], "x": 12, "y": 0},
|
||||
{"matrix": [0, 7], "x": 13, "y": 0, "w": 2},
|
||||
{"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [3, 0], "x": 1.5, "y": 1},
|
||||
{"matrix": [2, 1], "x": 2.5, "y": 1},
|
||||
{"matrix": [3, 1], "x": 3.5, "y": 1},
|
||||
{"matrix": [2, 2], "x": 4.5, "y": 1},
|
||||
{"matrix": [3, 2], "x": 5.5, "y": 1},
|
||||
{"matrix": [2, 3], "x": 6.5, "y": 1},
|
||||
{"matrix": [3, 3], "x": 7.5, "y": 1},
|
||||
{"matrix": [2, 4], "x": 8.5, "y": 1},
|
||||
{"matrix": [3, 4], "x": 9.5, "y": 1},
|
||||
{"matrix": [2, 5], "x": 10.5, "y": 1},
|
||||
{"matrix": [3, 5], "x": 11.5, "y": 1},
|
||||
{"matrix": [2, 6], "x": 12.5, "y": 1},
|
||||
{"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5},
|
||||
{"matrix": [3, 7], "x": 15, "y": 1},
|
||||
{"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [5, 0], "x": 1.75, "y": 2},
|
||||
{"matrix": [4, 1], "x": 2.75, "y": 2},
|
||||
{"matrix": [5, 1], "x": 3.75, "y": 2},
|
||||
{"matrix": [4, 2], "x": 4.75, "y": 2},
|
||||
{"matrix": [5, 2], "x": 5.75, "y": 2},
|
||||
{"matrix": [4, 3], "x": 6.75, "y": 2},
|
||||
{"matrix": [5, 3], "x": 7.75, "y": 2},
|
||||
{"matrix": [4, 4], "x": 8.75, "y": 2},
|
||||
{"matrix": [5, 4], "x": 9.75, "y": 2},
|
||||
{"matrix": [4, 5], "x": 10.75, "y": 2},
|
||||
{"matrix": [5, 5], "x": 11.75, "y": 2},
|
||||
{"matrix": [5, 6], "x": 12.75, "y": 2, "w": 2.25},
|
||||
{"matrix": [5, 7], "x": 15, "y": 2},
|
||||
{"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25},
|
||||
{"matrix": [6, 1], "x": 2.25, "y": 3},
|
||||
{"matrix": [7, 1], "x": 3.25, "y": 3},
|
||||
{"matrix": [6, 2], "x": 4.25, "y": 3},
|
||||
{"matrix": [7, 2], "x": 5.25, "y": 3},
|
||||
{"matrix": [6, 3], "x": 6.25, "y": 3},
|
||||
{"matrix": [7, 3], "x": 7.25, "y": 3},
|
||||
{"matrix": [6, 4], "x": 8.25, "y": 3},
|
||||
{"matrix": [7, 4], "x": 9.25, "y": 3},
|
||||
{"matrix": [6, 5], "x": 10.25, "y": 3},
|
||||
{"matrix": [7, 5], "x": 11.25, "y": 3},
|
||||
{"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"matrix": [7, 6], "x": 14, "y": 3},
|
||||
{"matrix": [7, 7], "x": 15, "y": 3},
|
||||
{"matrix": [8, 0], "x": 0, "y": 4, "w": 1.25},
|
||||
{"matrix": [9, 0], "x": 1.25, "y": 4, "w": 1.25},
|
||||
{"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.25},
|
||||
{"matrix": [8, 3], "x": 3.75, "y": 4, "w": 6.25},
|
||||
{"matrix": [8, 5], "x": 10, "y": 4, "w": 1.25},
|
||||
{"matrix": [9, 5], "x": 11.25, "y": 4, "w": 1.25},
|
||||
{"matrix": [8, 6], "x": 13, "y": 4},
|
||||
{"matrix": [9, 6], "x": 14, "y": 4},
|
||||
{"matrix": [9, 7], "x": 15, "y": 4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_ansi_split_bs": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [1, 0], "x": 1, "y": 0},
|
||||
{"matrix": [0, 1], "x": 2, "y": 0},
|
||||
{"matrix": [1, 1], "x": 3, "y": 0},
|
||||
{"matrix": [0, 2], "x": 4, "y": 0},
|
||||
{"matrix": [1, 2], "x": 5, "y": 0},
|
||||
{"matrix": [0, 3], "x": 6, "y": 0},
|
||||
{"matrix": [1, 3], "x": 7, "y": 0},
|
||||
{"matrix": [0, 4], "x": 8, "y": 0},
|
||||
{"matrix": [1, 4], "x": 9, "y": 0},
|
||||
{"matrix": [0, 5], "x": 10, "y": 0},
|
||||
{"matrix": [1, 5], "x": 11, "y": 0},
|
||||
{"matrix": [0, 6], "x": 12, "y": 0},
|
||||
{"matrix": [1, 6], "x": 13, "y": 0},
|
||||
{"matrix": [0, 7], "x": 14, "y": 0},
|
||||
{"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [3, 0], "x": 1.5, "y": 1},
|
||||
{"matrix": [2, 1], "x": 2.5, "y": 1},
|
||||
{"matrix": [3, 1], "x": 3.5, "y": 1},
|
||||
{"matrix": [2, 2], "x": 4.5, "y": 1},
|
||||
{"matrix": [3, 2], "x": 5.5, "y": 1},
|
||||
{"matrix": [2, 3], "x": 6.5, "y": 1},
|
||||
{"matrix": [3, 3], "x": 7.5, "y": 1},
|
||||
{"matrix": [2, 4], "x": 8.5, "y": 1},
|
||||
{"matrix": [3, 4], "x": 9.5, "y": 1},
|
||||
{"matrix": [2, 5], "x": 10.5, "y": 1},
|
||||
{"matrix": [3, 5], "x": 11.5, "y": 1},
|
||||
{"matrix": [2, 6], "x": 12.5, "y": 1},
|
||||
{"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5},
|
||||
{"matrix": [3, 7], "x": 15, "y": 1},
|
||||
{"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [5, 0], "x": 1.75, "y": 2},
|
||||
{"matrix": [4, 1], "x": 2.75, "y": 2},
|
||||
{"matrix": [5, 1], "x": 3.75, "y": 2},
|
||||
{"matrix": [4, 2], "x": 4.75, "y": 2},
|
||||
{"matrix": [5, 2], "x": 5.75, "y": 2},
|
||||
{"matrix": [4, 3], "x": 6.75, "y": 2},
|
||||
{"matrix": [5, 3], "x": 7.75, "y": 2},
|
||||
{"matrix": [4, 4], "x": 8.75, "y": 2},
|
||||
{"matrix": [5, 4], "x": 9.75, "y": 2},
|
||||
{"matrix": [4, 5], "x": 10.75, "y": 2},
|
||||
{"matrix": [5, 5], "x": 11.75, "y": 2},
|
||||
{"matrix": [5, 6], "x": 12.75, "y": 2, "w": 2.25},
|
||||
{"matrix": [5, 7], "x": 15, "y": 2},
|
||||
{"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25},
|
||||
{"matrix": [6, 1], "x": 2.25, "y": 3},
|
||||
{"matrix": [7, 1], "x": 3.25, "y": 3},
|
||||
{"matrix": [6, 2], "x": 4.25, "y": 3},
|
||||
{"matrix": [7, 2], "x": 5.25, "y": 3},
|
||||
{"matrix": [6, 3], "x": 6.25, "y": 3},
|
||||
{"matrix": [7, 3], "x": 7.25, "y": 3},
|
||||
{"matrix": [6, 4], "x": 8.25, "y": 3},
|
||||
{"matrix": [7, 4], "x": 9.25, "y": 3},
|
||||
{"matrix": [6, 5], "x": 10.25, "y": 3},
|
||||
{"matrix": [7, 5], "x": 11.25, "y": 3},
|
||||
{"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"matrix": [7, 6], "x": 14, "y": 3},
|
||||
{"matrix": [7, 7], "x": 15, "y": 3},
|
||||
{"matrix": [8, 0], "x": 0, "y": 4, "w": 1.25},
|
||||
{"matrix": [9, 0], "x": 1.25, "y": 4, "w": 1.25},
|
||||
{"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.25},
|
||||
{"matrix": [8, 3], "x": 3.75, "y": 4, "w": 6.25},
|
||||
{"matrix": [8, 5], "x": 10, "y": 4, "w": 1.25},
|
||||
{"matrix": [9, 5], "x": 11.25, "y": 4, "w": 1.25},
|
||||
{"matrix": [8, 6], "x": 13, "y": 4},
|
||||
{"matrix": [9, 6], "x": 14, "y": 4},
|
||||
{"matrix": [9, 7], "x": 15, "y": 4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_ansi_tsangan": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [1, 0], "x": 1, "y": 0},
|
||||
{"matrix": [0, 1], "x": 2, "y": 0},
|
||||
{"matrix": [1, 1], "x": 3, "y": 0},
|
||||
{"matrix": [0, 2], "x": 4, "y": 0},
|
||||
{"matrix": [1, 2], "x": 5, "y": 0},
|
||||
{"matrix": [0, 3], "x": 6, "y": 0},
|
||||
{"matrix": [1, 3], "x": 7, "y": 0},
|
||||
{"matrix": [0, 4], "x": 8, "y": 0},
|
||||
{"matrix": [1, 4], "x": 9, "y": 0},
|
||||
{"matrix": [0, 5], "x": 10, "y": 0},
|
||||
{"matrix": [1, 5], "x": 11, "y": 0},
|
||||
{"matrix": [0, 6], "x": 12, "y": 0},
|
||||
{"matrix": [0, 7], "x": 13, "y": 0, "w": 2},
|
||||
{"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [3, 0], "x": 1.5, "y": 1},
|
||||
{"matrix": [2, 1], "x": 2.5, "y": 1},
|
||||
{"matrix": [3, 1], "x": 3.5, "y": 1},
|
||||
{"matrix": [2, 2], "x": 4.5, "y": 1},
|
||||
{"matrix": [3, 2], "x": 5.5, "y": 1},
|
||||
{"matrix": [2, 3], "x": 6.5, "y": 1},
|
||||
{"matrix": [3, 3], "x": 7.5, "y": 1},
|
||||
{"matrix": [2, 4], "x": 8.5, "y": 1},
|
||||
{"matrix": [3, 4], "x": 9.5, "y": 1},
|
||||
{"matrix": [2, 5], "x": 10.5, "y": 1},
|
||||
{"matrix": [3, 5], "x": 11.5, "y": 1},
|
||||
{"matrix": [2, 6], "x": 12.5, "y": 1},
|
||||
{"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5},
|
||||
{"matrix": [3, 7], "x": 15, "y": 1},
|
||||
{"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [5, 0], "x": 1.75, "y": 2},
|
||||
{"matrix": [4, 1], "x": 2.75, "y": 2},
|
||||
{"matrix": [5, 1], "x": 3.75, "y": 2},
|
||||
{"matrix": [4, 2], "x": 4.75, "y": 2},
|
||||
{"matrix": [5, 2], "x": 5.75, "y": 2},
|
||||
{"matrix": [4, 3], "x": 6.75, "y": 2},
|
||||
{"matrix": [5, 3], "x": 7.75, "y": 2},
|
||||
{"matrix": [4, 4], "x": 8.75, "y": 2},
|
||||
{"matrix": [5, 4], "x": 9.75, "y": 2},
|
||||
{"matrix": [4, 5], "x": 10.75, "y": 2},
|
||||
{"matrix": [5, 5], "x": 11.75, "y": 2},
|
||||
{"matrix": [5, 6], "x": 12.75, "y": 2, "w": 2.25},
|
||||
{"matrix": [5, 7], "x": 15, "y": 2},
|
||||
{"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25},
|
||||
{"matrix": [6, 1], "x": 2.25, "y": 3},
|
||||
{"matrix": [7, 1], "x": 3.25, "y": 3},
|
||||
{"matrix": [6, 2], "x": 4.25, "y": 3},
|
||||
{"matrix": [7, 2], "x": 5.25, "y": 3},
|
||||
{"matrix": [6, 3], "x": 6.25, "y": 3},
|
||||
{"matrix": [7, 3], "x": 7.25, "y": 3},
|
||||
{"matrix": [6, 4], "x": 8.25, "y": 3},
|
||||
{"matrix": [7, 4], "x": 9.25, "y": 3},
|
||||
{"matrix": [6, 5], "x": 10.25, "y": 3},
|
||||
{"matrix": [7, 5], "x": 11.25, "y": 3},
|
||||
{"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"matrix": [7, 6], "x": 14, "y": 3},
|
||||
{"matrix": [7, 7], "x": 15, "y": 3},
|
||||
{"matrix": [8, 0], "x": 0, "y": 4, "w": 1.5},
|
||||
{"matrix": [9, 0], "x": 1.5, "y": 4},
|
||||
{"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.5},
|
||||
{"matrix": [8, 3], "x": 4, "y": 4, "w": 7},
|
||||
{"matrix": [8, 5], "x": 11, "y": 4, "w": 1.5},
|
||||
{"matrix": [8, 6], "x": 13, "y": 4},
|
||||
{"matrix": [9, 6], "x": 14, "y": 4},
|
||||
{"matrix": [9, 7], "x": 15, "y": 4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_ansi_tsangan_split_bs": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [1, 0], "x": 1, "y": 0},
|
||||
{"matrix": [0, 1], "x": 2, "y": 0},
|
||||
{"matrix": [1, 1], "x": 3, "y": 0},
|
||||
{"matrix": [0, 2], "x": 4, "y": 0},
|
||||
{"matrix": [1, 2], "x": 5, "y": 0},
|
||||
{"matrix": [0, 3], "x": 6, "y": 0},
|
||||
{"matrix": [1, 3], "x": 7, "y": 0},
|
||||
{"matrix": [0, 4], "x": 8, "y": 0},
|
||||
{"matrix": [1, 4], "x": 9, "y": 0},
|
||||
{"matrix": [0, 5], "x": 10, "y": 0},
|
||||
{"matrix": [1, 5], "x": 11, "y": 0},
|
||||
{"matrix": [0, 6], "x": 12, "y": 0},
|
||||
{"matrix": [1, 6], "x": 13, "y": 0},
|
||||
{"matrix": [0, 7], "x": 14, "y": 0},
|
||||
{"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [3, 0], "x": 1.5, "y": 1},
|
||||
{"matrix": [2, 1], "x": 2.5, "y": 1},
|
||||
{"matrix": [3, 1], "x": 3.5, "y": 1},
|
||||
{"matrix": [2, 2], "x": 4.5, "y": 1},
|
||||
{"matrix": [3, 2], "x": 5.5, "y": 1},
|
||||
{"matrix": [2, 3], "x": 6.5, "y": 1},
|
||||
{"matrix": [3, 3], "x": 7.5, "y": 1},
|
||||
{"matrix": [2, 4], "x": 8.5, "y": 1},
|
||||
{"matrix": [3, 4], "x": 9.5, "y": 1},
|
||||
{"matrix": [2, 5], "x": 10.5, "y": 1},
|
||||
{"matrix": [3, 5], "x": 11.5, "y": 1},
|
||||
{"matrix": [2, 6], "x": 12.5, "y": 1},
|
||||
{"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5},
|
||||
{"matrix": [3, 7], "x": 15, "y": 1},
|
||||
{"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [5, 0], "x": 1.75, "y": 2},
|
||||
{"matrix": [4, 1], "x": 2.75, "y": 2},
|
||||
{"matrix": [5, 1], "x": 3.75, "y": 2},
|
||||
{"matrix": [4, 2], "x": 4.75, "y": 2},
|
||||
{"matrix": [5, 2], "x": 5.75, "y": 2},
|
||||
{"matrix": [4, 3], "x": 6.75, "y": 2},
|
||||
{"matrix": [5, 3], "x": 7.75, "y": 2},
|
||||
{"matrix": [4, 4], "x": 8.75, "y": 2},
|
||||
{"matrix": [5, 4], "x": 9.75, "y": 2},
|
||||
{"matrix": [4, 5], "x": 10.75, "y": 2},
|
||||
{"matrix": [5, 5], "x": 11.75, "y": 2},
|
||||
{"matrix": [5, 6], "x": 12.75, "y": 2, "w": 2.25},
|
||||
{"matrix": [5, 7], "x": 15, "y": 2},
|
||||
{"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25},
|
||||
{"matrix": [6, 1], "x": 2.25, "y": 3},
|
||||
{"matrix": [7, 1], "x": 3.25, "y": 3},
|
||||
{"matrix": [6, 2], "x": 4.25, "y": 3},
|
||||
{"matrix": [7, 2], "x": 5.25, "y": 3},
|
||||
{"matrix": [6, 3], "x": 6.25, "y": 3},
|
||||
{"matrix": [7, 3], "x": 7.25, "y": 3},
|
||||
{"matrix": [6, 4], "x": 8.25, "y": 3},
|
||||
{"matrix": [7, 4], "x": 9.25, "y": 3},
|
||||
{"matrix": [6, 5], "x": 10.25, "y": 3},
|
||||
{"matrix": [7, 5], "x": 11.25, "y": 3},
|
||||
{"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"matrix": [7, 6], "x": 14, "y": 3},
|
||||
{"matrix": [7, 7], "x": 15, "y": 3},
|
||||
{"matrix": [8, 0], "x": 0, "y": 4, "w": 1.5},
|
||||
{"matrix": [9, 0], "x": 1.5, "y": 4},
|
||||
{"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.5},
|
||||
{"matrix": [8, 3], "x": 4, "y": 4, "w": 7},
|
||||
{"matrix": [8, 5], "x": 11, "y": 4, "w": 1.5},
|
||||
{"matrix": [8, 6], "x": 13, "y": 4},
|
||||
{"matrix": [9, 6], "x": 14, "y": 4},
|
||||
{"matrix": [9, 7], "x": 15, "y": 4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_iso": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [1, 0], "x": 1, "y": 0},
|
||||
{"matrix": [0, 1], "x": 2, "y": 0},
|
||||
{"matrix": [1, 1], "x": 3, "y": 0},
|
||||
{"matrix": [0, 2], "x": 4, "y": 0},
|
||||
{"matrix": [1, 2], "x": 5, "y": 0},
|
||||
{"matrix": [0, 3], "x": 6, "y": 0},
|
||||
{"matrix": [1, 3], "x": 7, "y": 0},
|
||||
{"matrix": [0, 4], "x": 8, "y": 0},
|
||||
{"matrix": [1, 4], "x": 9, "y": 0},
|
||||
{"matrix": [0, 5], "x": 10, "y": 0},
|
||||
{"matrix": [1, 5], "x": 11, "y": 0},
|
||||
{"matrix": [0, 6], "x": 12, "y": 0},
|
||||
{"matrix": [0, 7], "x": 13, "y": 0, "w": 2},
|
||||
{"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [3, 0], "x": 1.5, "y": 1},
|
||||
{"matrix": [2, 1], "x": 2.5, "y": 1},
|
||||
{"matrix": [3, 1], "x": 3.5, "y": 1},
|
||||
{"matrix": [2, 2], "x": 4.5, "y": 1},
|
||||
{"matrix": [3, 2], "x": 5.5, "y": 1},
|
||||
{"matrix": [2, 3], "x": 6.5, "y": 1},
|
||||
{"matrix": [3, 3], "x": 7.5, "y": 1},
|
||||
{"matrix": [2, 4], "x": 8.5, "y": 1},
|
||||
{"matrix": [3, 4], "x": 9.5, "y": 1},
|
||||
{"matrix": [2, 5], "x": 10.5, "y": 1},
|
||||
{"matrix": [3, 5], "x": 11.5, "y": 1},
|
||||
{"matrix": [2, 6], "x": 12.5, "y": 1},
|
||||
{"matrix": [3, 7], "x": 15, "y": 1},
|
||||
{"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [5, 0], "x": 1.75, "y": 2},
|
||||
{"matrix": [4, 1], "x": 2.75, "y": 2},
|
||||
{"matrix": [5, 1], "x": 3.75, "y": 2},
|
||||
{"matrix": [4, 2], "x": 4.75, "y": 2},
|
||||
{"matrix": [5, 2], "x": 5.75, "y": 2},
|
||||
{"matrix": [4, 3], "x": 6.75, "y": 2},
|
||||
{"matrix": [5, 3], "x": 7.75, "y": 2},
|
||||
{"matrix": [4, 4], "x": 8.75, "y": 2},
|
||||
{"matrix": [5, 4], "x": 9.75, "y": 2},
|
||||
{"matrix": [4, 5], "x": 10.75, "y": 2},
|
||||
{"matrix": [5, 5], "x": 11.75, "y": 2},
|
||||
{"matrix": [4, 6], "x": 12.75, "y": 2},
|
||||
{"matrix": [5, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
|
||||
{"matrix": [5, 7], "x": 15, "y": 2},
|
||||
{"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25},
|
||||
{"matrix": [7, 0], "x": 1.25, "y": 3},
|
||||
{"matrix": [6, 1], "x": 2.25, "y": 3},
|
||||
{"matrix": [7, 1], "x": 3.25, "y": 3},
|
||||
{"matrix": [6, 2], "x": 4.25, "y": 3},
|
||||
{"matrix": [7, 2], "x": 5.25, "y": 3},
|
||||
{"matrix": [6, 3], "x": 6.25, "y": 3},
|
||||
{"matrix": [7, 3], "x": 7.25, "y": 3},
|
||||
{"matrix": [6, 4], "x": 8.25, "y": 3},
|
||||
{"matrix": [7, 4], "x": 9.25, "y": 3},
|
||||
{"matrix": [6, 5], "x": 10.25, "y": 3},
|
||||
{"matrix": [7, 5], "x": 11.25, "y": 3},
|
||||
{"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"matrix": [7, 6], "x": 14, "y": 3},
|
||||
{"matrix": [7, 7], "x": 15, "y": 3},
|
||||
{"matrix": [8, 0], "x": 0, "y": 4, "w": 1.25},
|
||||
{"matrix": [9, 0], "x": 1.25, "y": 4, "w": 1.25},
|
||||
{"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.25},
|
||||
{"matrix": [8, 3], "x": 3.75, "y": 4, "w": 6.25},
|
||||
{"matrix": [8, 5], "x": 10, "y": 4, "w": 1.25},
|
||||
{"matrix": [9, 5], "x": 11.25, "y": 4, "w": 1.25},
|
||||
{"matrix": [8, 6], "x": 13, "y": 4},
|
||||
{"matrix": [9, 6], "x": 14, "y": 4},
|
||||
{"matrix": [9, 7], "x": 15, "y": 4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_iso_split_bs": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [1, 0], "x": 1, "y": 0},
|
||||
{"matrix": [0, 1], "x": 2, "y": 0},
|
||||
{"matrix": [1, 1], "x": 3, "y": 0},
|
||||
{"matrix": [0, 2], "x": 4, "y": 0},
|
||||
{"matrix": [1, 2], "x": 5, "y": 0},
|
||||
{"matrix": [0, 3], "x": 6, "y": 0},
|
||||
{"matrix": [1, 3], "x": 7, "y": 0},
|
||||
{"matrix": [0, 4], "x": 8, "y": 0},
|
||||
{"matrix": [1, 4], "x": 9, "y": 0},
|
||||
{"matrix": [0, 5], "x": 10, "y": 0},
|
||||
{"matrix": [1, 5], "x": 11, "y": 0},
|
||||
{"matrix": [0, 6], "x": 12, "y": 0},
|
||||
{"matrix": [1, 6], "x": 13, "y": 0},
|
||||
{"matrix": [0, 7], "x": 14, "y": 0},
|
||||
{"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [3, 0], "x": 1.5, "y": 1},
|
||||
{"matrix": [2, 1], "x": 2.5, "y": 1},
|
||||
{"matrix": [3, 1], "x": 3.5, "y": 1},
|
||||
{"matrix": [2, 2], "x": 4.5, "y": 1},
|
||||
{"matrix": [3, 2], "x": 5.5, "y": 1},
|
||||
{"matrix": [2, 3], "x": 6.5, "y": 1},
|
||||
{"matrix": [3, 3], "x": 7.5, "y": 1},
|
||||
{"matrix": [2, 4], "x": 8.5, "y": 1},
|
||||
{"matrix": [3, 4], "x": 9.5, "y": 1},
|
||||
{"matrix": [2, 5], "x": 10.5, "y": 1},
|
||||
{"matrix": [3, 5], "x": 11.5, "y": 1},
|
||||
{"matrix": [2, 6], "x": 12.5, "y": 1},
|
||||
{"matrix": [3, 7], "x": 15, "y": 1},
|
||||
{"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [5, 0], "x": 1.75, "y": 2},
|
||||
{"matrix": [4, 1], "x": 2.75, "y": 2},
|
||||
{"matrix": [5, 1], "x": 3.75, "y": 2},
|
||||
{"matrix": [4, 2], "x": 4.75, "y": 2},
|
||||
{"matrix": [5, 2], "x": 5.75, "y": 2},
|
||||
{"matrix": [4, 3], "x": 6.75, "y": 2},
|
||||
{"matrix": [5, 3], "x": 7.75, "y": 2},
|
||||
{"matrix": [4, 4], "x": 8.75, "y": 2},
|
||||
{"matrix": [5, 4], "x": 9.75, "y": 2},
|
||||
{"matrix": [4, 5], "x": 10.75, "y": 2},
|
||||
{"matrix": [5, 5], "x": 11.75, "y": 2},
|
||||
{"matrix": [4, 6], "x": 12.75, "y": 2},
|
||||
{"matrix": [5, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
|
||||
{"matrix": [5, 7], "x": 15, "y": 2},
|
||||
{"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25},
|
||||
{"matrix": [7, 0], "x": 1.25, "y": 3},
|
||||
{"matrix": [6, 1], "x": 2.25, "y": 3},
|
||||
{"matrix": [7, 1], "x": 3.25, "y": 3},
|
||||
{"matrix": [6, 2], "x": 4.25, "y": 3},
|
||||
{"matrix": [7, 2], "x": 5.25, "y": 3},
|
||||
{"matrix": [6, 3], "x": 6.25, "y": 3},
|
||||
{"matrix": [7, 3], "x": 7.25, "y": 3},
|
||||
{"matrix": [6, 4], "x": 8.25, "y": 3},
|
||||
{"matrix": [7, 4], "x": 9.25, "y": 3},
|
||||
{"matrix": [6, 5], "x": 10.25, "y": 3},
|
||||
{"matrix": [7, 5], "x": 11.25, "y": 3},
|
||||
{"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"matrix": [7, 6], "x": 14, "y": 3},
|
||||
{"matrix": [7, 7], "x": 15, "y": 3},
|
||||
{"matrix": [8, 0], "x": 0, "y": 4, "w": 1.25},
|
||||
{"matrix": [9, 0], "x": 1.25, "y": 4, "w": 1.25},
|
||||
{"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.25},
|
||||
{"matrix": [8, 3], "x": 3.75, "y": 4, "w": 6.25},
|
||||
{"matrix": [8, 5], "x": 10, "y": 4, "w": 1.25},
|
||||
{"matrix": [9, 5], "x": 11.25, "y": 4, "w": 1.25},
|
||||
{"matrix": [8, 6], "x": 13, "y": 4},
|
||||
{"matrix": [9, 6], "x": 14, "y": 4},
|
||||
{"matrix": [9, 7], "x": 15, "y": 4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_iso_tsangan": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [1, 0], "x": 1, "y": 0},
|
||||
{"matrix": [0, 1], "x": 2, "y": 0},
|
||||
{"matrix": [1, 1], "x": 3, "y": 0},
|
||||
{"matrix": [0, 2], "x": 4, "y": 0},
|
||||
{"matrix": [1, 2], "x": 5, "y": 0},
|
||||
{"matrix": [0, 3], "x": 6, "y": 0},
|
||||
{"matrix": [1, 3], "x": 7, "y": 0},
|
||||
{"matrix": [0, 4], "x": 8, "y": 0},
|
||||
{"matrix": [1, 4], "x": 9, "y": 0},
|
||||
{"matrix": [0, 5], "x": 10, "y": 0},
|
||||
{"matrix": [1, 5], "x": 11, "y": 0},
|
||||
{"matrix": [0, 6], "x": 12, "y": 0},
|
||||
{"matrix": [0, 7], "x": 13, "y": 0, "w": 2},
|
||||
{"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [3, 0], "x": 1.5, "y": 1},
|
||||
{"matrix": [2, 1], "x": 2.5, "y": 1},
|
||||
{"matrix": [3, 1], "x": 3.5, "y": 1},
|
||||
{"matrix": [2, 2], "x": 4.5, "y": 1},
|
||||
{"matrix": [3, 2], "x": 5.5, "y": 1},
|
||||
{"matrix": [2, 3], "x": 6.5, "y": 1},
|
||||
{"matrix": [3, 3], "x": 7.5, "y": 1},
|
||||
{"matrix": [2, 4], "x": 8.5, "y": 1},
|
||||
{"matrix": [3, 4], "x": 9.5, "y": 1},
|
||||
{"matrix": [2, 5], "x": 10.5, "y": 1},
|
||||
{"matrix": [3, 5], "x": 11.5, "y": 1},
|
||||
{"matrix": [2, 6], "x": 12.5, "y": 1},
|
||||
{"matrix": [3, 7], "x": 15, "y": 1},
|
||||
{"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [5, 0], "x": 1.75, "y": 2},
|
||||
{"matrix": [4, 1], "x": 2.75, "y": 2},
|
||||
{"matrix": [5, 1], "x": 3.75, "y": 2},
|
||||
{"matrix": [4, 2], "x": 4.75, "y": 2},
|
||||
{"matrix": [5, 2], "x": 5.75, "y": 2},
|
||||
{"matrix": [4, 3], "x": 6.75, "y": 2},
|
||||
{"matrix": [5, 3], "x": 7.75, "y": 2},
|
||||
{"matrix": [4, 4], "x": 8.75, "y": 2},
|
||||
{"matrix": [5, 4], "x": 9.75, "y": 2},
|
||||
{"matrix": [4, 5], "x": 10.75, "y": 2},
|
||||
{"matrix": [5, 5], "x": 11.75, "y": 2},
|
||||
{"matrix": [4, 6], "x": 12.75, "y": 2},
|
||||
{"matrix": [5, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
|
||||
{"matrix": [5, 7], "x": 15, "y": 2},
|
||||
{"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25},
|
||||
{"matrix": [7, 0], "x": 1.25, "y": 3},
|
||||
{"matrix": [6, 1], "x": 2.25, "y": 3},
|
||||
{"matrix": [7, 1], "x": 3.25, "y": 3},
|
||||
{"matrix": [6, 2], "x": 4.25, "y": 3},
|
||||
{"matrix": [7, 2], "x": 5.25, "y": 3},
|
||||
{"matrix": [6, 3], "x": 6.25, "y": 3},
|
||||
{"matrix": [7, 3], "x": 7.25, "y": 3},
|
||||
{"matrix": [6, 4], "x": 8.25, "y": 3},
|
||||
{"matrix": [7, 4], "x": 9.25, "y": 3},
|
||||
{"matrix": [6, 5], "x": 10.25, "y": 3},
|
||||
{"matrix": [7, 5], "x": 11.25, "y": 3},
|
||||
{"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"matrix": [7, 6], "x": 14, "y": 3},
|
||||
{"matrix": [7, 7], "x": 15, "y": 3},
|
||||
{"matrix": [8, 0], "x": 0, "y": 4, "w": 1.5},
|
||||
{"matrix": [9, 0], "x": 1.5, "y": 4},
|
||||
{"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.5},
|
||||
{"matrix": [8, 3], "x": 4, "y": 4, "w": 7},
|
||||
{"matrix": [8, 5], "x": 11, "y": 4, "w": 1.5},
|
||||
{"matrix": [8, 6], "x": 13, "y": 4},
|
||||
{"matrix": [9, 6], "x": 14, "y": 4},
|
||||
{"matrix": [9, 7], "x": 15, "y": 4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_iso_tsangan_split_bs": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [1, 0], "x": 1, "y": 0},
|
||||
{"matrix": [0, 1], "x": 2, "y": 0},
|
||||
{"matrix": [1, 1], "x": 3, "y": 0},
|
||||
{"matrix": [0, 2], "x": 4, "y": 0},
|
||||
{"matrix": [1, 2], "x": 5, "y": 0},
|
||||
{"matrix": [0, 3], "x": 6, "y": 0},
|
||||
{"matrix": [1, 3], "x": 7, "y": 0},
|
||||
{"matrix": [0, 4], "x": 8, "y": 0},
|
||||
{"matrix": [1, 4], "x": 9, "y": 0},
|
||||
{"matrix": [0, 5], "x": 10, "y": 0},
|
||||
{"matrix": [1, 5], "x": 11, "y": 0},
|
||||
{"matrix": [0, 6], "x": 12, "y": 0},
|
||||
{"matrix": [1, 6], "x": 13, "y": 0},
|
||||
{"matrix": [0, 7], "x": 14, "y": 0},
|
||||
{"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [3, 0], "x": 1.5, "y": 1},
|
||||
{"matrix": [2, 1], "x": 2.5, "y": 1},
|
||||
{"matrix": [3, 1], "x": 3.5, "y": 1},
|
||||
{"matrix": [2, 2], "x": 4.5, "y": 1},
|
||||
{"matrix": [3, 2], "x": 5.5, "y": 1},
|
||||
{"matrix": [2, 3], "x": 6.5, "y": 1},
|
||||
{"matrix": [3, 3], "x": 7.5, "y": 1},
|
||||
{"matrix": [2, 4], "x": 8.5, "y": 1},
|
||||
{"matrix": [3, 4], "x": 9.5, "y": 1},
|
||||
{"matrix": [2, 5], "x": 10.5, "y": 1},
|
||||
{"matrix": [3, 5], "x": 11.5, "y": 1},
|
||||
{"matrix": [2, 6], "x": 12.5, "y": 1},
|
||||
{"matrix": [3, 7], "x": 15, "y": 1},
|
||||
{"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [5, 0], "x": 1.75, "y": 2},
|
||||
{"matrix": [4, 1], "x": 2.75, "y": 2},
|
||||
{"matrix": [5, 1], "x": 3.75, "y": 2},
|
||||
{"matrix": [4, 2], "x": 4.75, "y": 2},
|
||||
{"matrix": [5, 2], "x": 5.75, "y": 2},
|
||||
{"matrix": [4, 3], "x": 6.75, "y": 2},
|
||||
{"matrix": [5, 3], "x": 7.75, "y": 2},
|
||||
{"matrix": [4, 4], "x": 8.75, "y": 2},
|
||||
{"matrix": [5, 4], "x": 9.75, "y": 2},
|
||||
{"matrix": [4, 5], "x": 10.75, "y": 2},
|
||||
{"matrix": [5, 5], "x": 11.75, "y": 2},
|
||||
{"matrix": [4, 6], "x": 12.75, "y": 2},
|
||||
{"matrix": [5, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
|
||||
{"matrix": [5, 7], "x": 15, "y": 2},
|
||||
{"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25},
|
||||
{"matrix": [7, 0], "x": 1.25, "y": 3},
|
||||
{"matrix": [6, 1], "x": 2.25, "y": 3},
|
||||
{"matrix": [7, 1], "x": 3.25, "y": 3},
|
||||
{"matrix": [6, 2], "x": 4.25, "y": 3},
|
||||
{"matrix": [7, 2], "x": 5.25, "y": 3},
|
||||
{"matrix": [6, 3], "x": 6.25, "y": 3},
|
||||
{"matrix": [7, 3], "x": 7.25, "y": 3},
|
||||
{"matrix": [6, 4], "x": 8.25, "y": 3},
|
||||
{"matrix": [7, 4], "x": 9.25, "y": 3},
|
||||
{"matrix": [6, 5], "x": 10.25, "y": 3},
|
||||
{"matrix": [7, 5], "x": 11.25, "y": 3},
|
||||
{"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"matrix": [7, 6], "x": 14, "y": 3},
|
||||
{"matrix": [7, 7], "x": 15, "y": 3},
|
||||
{"matrix": [8, 0], "x": 0, "y": 4, "w": 1.5},
|
||||
{"matrix": [9, 0], "x": 1.5, "y": 4},
|
||||
{"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.5},
|
||||
{"matrix": [8, 3], "x": 4, "y": 4, "w": 7},
|
||||
{"matrix": [8, 5], "x": 11, "y": 4, "w": 1.5},
|
||||
{"matrix": [8, 6], "x": 13, "y": 4},
|
||||
{"matrix": [9, 6], "x": 14, "y": 4},
|
||||
{"matrix": [9, 7], "x": 15, "y": 4}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
35
keyboards/zeix/singa/rubrehaku/keymaps/default/keymap.c
Normal file
35
keyboards/zeix/singa/rubrehaku/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,35 @@
|
||||
/*
|
||||
Copyright 2024 zeix (@itsme-zeix)
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[0] = LAYOUT_all(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_BSPC,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGDN,
|
||||
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, MO(1),
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT
|
||||
),
|
||||
|
||||
[1] = LAYOUT_all(
|
||||
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_DEL,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
};
|
||||
30
keyboards/zeix/singa/rubrehaku/matrix_diagram.md
Normal file
30
keyboards/zeix/singa/rubrehaku/matrix_diagram.md
Normal file
@@ -0,0 +1,30 @@
|
||||
# Matrix Diagram for Rubrehaku
|
||||
|
||||
```
|
||||
┌───┬───┐
|
||||
Split Backspace │16 │07 │
|
||||
└───┴───┘
|
||||
┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
│00 │10 │01 │11 │02 │12 │03 │13 │04 │14 │05 │15 │06 │07 │
|
||||
├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┐ ┌─────┐
|
||||
│20 │30 │21 │31 │22 │32 │23 │33 │24 │34 │25 │35 │26 │36 │37 │ │ │
|
||||
├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ ┌──┴┐56 │ ISO Enter
|
||||
│40 │50 │41 │51 │42 │52 │43 │53 │44 │54 │45 │55 │56 │57 │ │46 │ │
|
||||
├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ └───┴────┘
|
||||
│60 │61 │71 │62 │72 │63 │73 │64 │74 │65 │75 │66 │76 │77 │
|
||||
├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬─┬───┼───┼───┤
|
||||
│80 │90 │81 │83 │95 │ │86 │96 │97 │
|
||||
└─────┴───┴─────┴───────────────────────────┴─────┘ └───┴───┴───┘
|
||||
┌────┬───┐
|
||||
│60 │70 │ Split Left Shift
|
||||
└────┴───┘
|
||||
┌────┬────┬────┬────────────────────────┬────┬────┐
|
||||
│80 │90 │81 │83 │85 │95 │ 6.25u
|
||||
└────┴────┴────┴────────────────────────┴────┴────┘
|
||||
┌────┬────┬────┬───────────┬────┬───────┬────┬────┐
|
||||
│80 │90 │81 │92 │83 │94 │85 │95 │ Split Space (Left 2.75u)
|
||||
└────┴────┴────┴───────────┴────┴───────┴────┴────┘
|
||||
┌────┬────┬────┬───────┬────┬───────────┬────┬────┐
|
||||
│80 │90 │81 │92 │83 │94 │85 │95 │ Split Space (Left 2.25u)
|
||||
└────┴────┴────┴───────┴────┴───────────┴────┴────┘
|
||||
```
|
||||
27
keyboards/zeix/singa/rubrehaku/readme.md
Normal file
27
keyboards/zeix/singa/rubrehaku/readme.md
Normal file
@@ -0,0 +1,27 @@
|
||||
# SINGA Rubrehaku (PCB designed by Zeix)
|
||||
|
||||

|
||||
|
||||
65% PCB designed to support Rubrehaku
|
||||
|
||||
* Keyboard Maintainer: [Zeix](https://github.com/itsme-zeix)
|
||||
* Hardware Supported: KLC x SINGA x Rubrehose Rubrehaku
|
||||
* Hardware Availability: https://klc-playground.com/
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make zeix/singa/rubrehaku:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make zeix/singa/rubrehaku: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 top left key and plug in the keyboard.
|
||||
* **Physical reset button**: Briefly press the `RESET` button twice or short the 'USB_BOOT' and `GND` pads and plug in the keyboard.
|
||||
* **Keycode in layout**: Press the key mapped to `QK_BOOT`.
|
||||
@@ -47,6 +47,7 @@ def userspace_add(cli):
|
||||
from qmk.cli.new.keymap import new_keymap
|
||||
cli.config.new_keymap.keyboard = cli.args.keyboard
|
||||
cli.config.new_keymap.keymap = cli.args.keymap
|
||||
cli.args.skip_converter = True
|
||||
if new_keymap(cli) is not False:
|
||||
userspace.add_target(keyboard=cli.args.keyboard, keymap=cli.args.keymap, build_env=build_env)
|
||||
else:
|
||||
|
||||
@@ -153,6 +153,7 @@ def _flash_atmel_dfu(mcu, file):
|
||||
|
||||
|
||||
def _flash_hid_bootloader(mcu, details, file):
|
||||
cmd = None
|
||||
if details == 'halfkay':
|
||||
if shutil.which('teensy-loader-cli'):
|
||||
cmd = 'teensy-loader-cli'
|
||||
|
||||
@@ -49,15 +49,15 @@ uint32_t qp_comms_send(painter_device_t device, const void *data, uint32_t byte_
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Comms APIs that use a D/C pin
|
||||
|
||||
void qp_comms_command(painter_device_t device, uint8_t cmd) {
|
||||
bool qp_comms_command(painter_device_t device, uint8_t cmd) {
|
||||
painter_driver_t * driver = (painter_driver_t *)device;
|
||||
painter_comms_with_command_vtable_t *comms_vtable = (painter_comms_with_command_vtable_t *)driver->comms_vtable;
|
||||
comms_vtable->send_command(device, cmd);
|
||||
return comms_vtable->send_command(device, cmd);
|
||||
}
|
||||
|
||||
void qp_comms_command_databyte(painter_device_t device, uint8_t cmd, uint8_t data) {
|
||||
bool qp_comms_command_databyte(painter_device_t device, uint8_t cmd, uint8_t data) {
|
||||
qp_comms_command(device, cmd);
|
||||
qp_comms_send(device, &data, sizeof(data));
|
||||
return qp_comms_send(device, &data, sizeof(data));
|
||||
}
|
||||
|
||||
uint32_t qp_comms_command_databuf(painter_device_t device, uint8_t cmd, const void *data, uint32_t byte_count) {
|
||||
@@ -65,8 +65,8 @@ uint32_t qp_comms_command_databuf(painter_device_t device, uint8_t cmd, const vo
|
||||
return qp_comms_send(device, data, byte_count);
|
||||
}
|
||||
|
||||
void qp_comms_bulk_command_sequence(painter_device_t device, const uint8_t *sequence, size_t sequence_len) {
|
||||
bool qp_comms_bulk_command_sequence(painter_device_t device, const uint8_t *sequence, size_t sequence_len) {
|
||||
painter_driver_t * driver = (painter_driver_t *)device;
|
||||
painter_comms_with_command_vtable_t *comms_vtable = (painter_comms_with_command_vtable_t *)driver->comms_vtable;
|
||||
comms_vtable->bulk_command_sequence(device, sequence, sequence_len);
|
||||
return comms_vtable->bulk_command_sequence(device, sequence, sequence_len);
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ uint32_t qp_comms_send(painter_device_t device, const void* data, uint32_t byte_
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Comms APIs that use a D/C pin
|
||||
|
||||
void qp_comms_command(painter_device_t device, uint8_t cmd);
|
||||
void qp_comms_command_databyte(painter_device_t device, uint8_t cmd, uint8_t data);
|
||||
bool qp_comms_command(painter_device_t device, uint8_t cmd);
|
||||
bool qp_comms_command_databyte(painter_device_t device, uint8_t cmd, uint8_t data);
|
||||
uint32_t qp_comms_command_databuf(painter_device_t device, uint8_t cmd, const void* data, uint32_t byte_count);
|
||||
void qp_comms_bulk_command_sequence(painter_device_t device, const uint8_t* sequence, size_t sequence_len);
|
||||
bool qp_comms_bulk_command_sequence(painter_device_t device, const uint8_t* sequence, size_t sequence_len);
|
||||
|
||||
@@ -36,7 +36,7 @@ typedef struct painter_driver_vtable_t {
|
||||
|
||||
typedef bool (*painter_driver_comms_init_func)(painter_device_t device);
|
||||
typedef bool (*painter_driver_comms_start_func)(painter_device_t device);
|
||||
typedef void (*painter_driver_comms_stop_func)(painter_device_t device);
|
||||
typedef bool (*painter_driver_comms_stop_func)(painter_device_t device);
|
||||
typedef uint32_t (*painter_driver_comms_send_func)(painter_device_t device, const void *data, uint32_t byte_count);
|
||||
|
||||
typedef struct painter_comms_vtable_t {
|
||||
@@ -46,8 +46,8 @@ typedef struct painter_comms_vtable_t {
|
||||
painter_driver_comms_send_func comms_send;
|
||||
} painter_comms_vtable_t;
|
||||
|
||||
typedef void (*painter_driver_comms_send_command_func)(painter_device_t device, uint8_t cmd);
|
||||
typedef void (*painter_driver_comms_bulk_command_sequence)(painter_device_t device, const uint8_t *sequence, size_t sequence_len);
|
||||
typedef bool (*painter_driver_comms_send_command_func)(painter_device_t device, uint8_t cmd);
|
||||
typedef bool (*painter_driver_comms_bulk_command_sequence)(painter_device_t device, const uint8_t *sequence, size_t sequence_len);
|
||||
|
||||
typedef struct painter_comms_with_command_vtable_t {
|
||||
painter_comms_vtable_t base; // must be first, so this object can be cast from the painter_comms_vtable_t* type
|
||||
|
||||
@@ -37,6 +37,10 @@
|
||||
#include "version.h" // for QMK_BUILDDATE used in EEPROM magic
|
||||
#include "nvm_via.h"
|
||||
|
||||
#if defined(SECURE_ENABLE)
|
||||
# include "secure.h"
|
||||
#endif
|
||||
|
||||
#if defined(AUDIO_ENABLE)
|
||||
# include "audio.h"
|
||||
#endif
|
||||
@@ -322,8 +326,13 @@ void raw_hid_receive(uint8_t *data, uint8_t length) {
|
||||
uint8_t rows = 28 / ((MATRIX_COLS + 7) / 8);
|
||||
uint8_t i = 2;
|
||||
for (uint8_t row = 0; row < rows && row + offset < MATRIX_ROWS; row++) {
|
||||
#ifdef VIA_INSECURE
|
||||
#if defined(VIA_INSECURE)
|
||||
matrix_row_t value = matrix_get_row(row + offset);
|
||||
#elif defined(SECURE_ENABLE)
|
||||
matrix_row_t value = 0;
|
||||
if (secure_is_unlocked()) {
|
||||
value = matrix_get_row(row + offset);
|
||||
}
|
||||
#else
|
||||
matrix_row_t value = 0;
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user