Add Lemokey L1 ISO

This commit is contained in:
lokher
2026-01-19 11:17:39 +08:00
parent f3cea8e97a
commit 6f5058f7d0
10 changed files with 757 additions and 5 deletions
+6 -1
View File
@@ -40,6 +40,7 @@ const snled27351_led_t g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
{0, G_13, I_13, H_13}, {0, G_13, I_13, H_13},
{0, G_14, I_14, H_14}, {0, G_14, I_14, H_14},
{0, G_15, I_15, H_15}, {0, G_15, I_15, H_15},
{0, A_1, C_1, B_1}, {0, A_1, C_1, B_1},
{0, A_2, C_2, B_2}, {0, A_2, C_2, B_2},
{0, A_3, C_3, B_3}, {0, A_3, C_3, B_3},
@@ -55,6 +56,7 @@ const snled27351_led_t g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
{0, A_13, C_13, B_13}, {0, A_13, C_13, B_13},
{0, A_14, C_14, B_14}, {0, A_14, C_14, B_14},
{0, A_15, C_15, B_15}, {0, A_15, C_15, B_15},
{1, D_13, F_13, E_13}, {1, D_13, F_13, E_13},
{0, D_1, F_1, E_1}, {0, D_1, F_1, E_1},
{0, D_2, F_2, E_2}, {0, D_2, F_2, E_2},
@@ -71,6 +73,7 @@ const snled27351_led_t g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
{0, D_13, F_13, E_13}, {0, D_13, F_13, E_13},
{0, D_14, F_14, E_14}, {0, D_14, F_14, E_14},
{0, D_15, F_15, E_15}, {0, D_15, F_15, E_15},
{1, D_12, F_12, E_12}, {1, D_12, F_12, E_12},
{1, A_16, C_16, B_16}, {1, A_16, C_16, B_16},
{1, A_15, C_15, B_15}, {1, A_15, C_15, B_15},
@@ -86,6 +89,7 @@ const snled27351_led_t g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
{1, A_5, C_5, B_5}, {1, A_5, C_5, B_5},
{1, A_4, C_4, B_4}, {1, A_4, C_4, B_4},
{1, A_3, C_3, B_3}, {1, A_3, C_3, B_3},
{1, D_11, F_11, E_11}, {1, D_11, F_11, E_11},
{1, G_16, I_16, H_16}, {1, G_16, I_16, H_16},
{1, G_14, I_14, H_14}, {1, G_14, I_14, H_14},
@@ -100,6 +104,7 @@ const snled27351_led_t g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
{1, G_5, I_5, H_5}, {1, G_5, I_5, H_5},
{1, G_3, I_3, H_3}, {1, G_3, I_3, H_3},
{1, G_2, I_2, H_2}, {1, G_2, I_2, H_2},
{1, D_9, F_9, E_9}, {1, D_9, F_9, E_9},
{1, D_16, F_16, E_16}, {1, D_16, F_16, E_16},
{1, D_15, F_15, E_15}, {1, D_15, F_15, E_15},
@@ -140,7 +145,7 @@ led_config_t g_led_config = {
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
} }
}; };
+45
View File
@@ -0,0 +1,45 @@
/* Copyright 2024 @ Lemokey (https://www.lemokey.com)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#ifdef RGB_MATRIX_ENABLE
/* RGB Matrix driver configuration */
# define DRIVER_COUNT 2
# define RGB_MATRIX_LED_COUNT 87
/* Scan phase of led driver set as MSKPHASE_9CHANNEL(defined as 0x03 in snled27351.h) */
# define SNLED27351_PHASE_CHANNEL MSKPHASE_9CHANNEL
/* Set LED driver current */
# define SNLED27351_CURRENT_TUNE \
{ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 }
/* Set to infinit, which is use in USB mode by default */
# define RGB_MATRIX_TIMEOUT RGB_MATRIX_TIMEOUT_INFINITE
/* Allow shutdown of led driver to save power */
# define RGB_MATRIX_DRIVER_SHUTDOWN_ENABLE
/* Turn off backlight on low brightness to save power */
# define RGB_MATRIX_BRIGHTNESS_TURN_OFF_VAL 32
/* Indications */
# define CAPS_LOCK_INDEX 47
# define SPACE_KEY_LOW_BAT_IND \
{ 80 }
# define RGB_MATRIX_KEYPRESSES
# define RGB_MATRIX_FRAMEBUFFER_EFFECTS
#endif
+104
View File
@@ -0,0 +1,104 @@
{
"usb": {
"pid": "0x0111",
"device_version": "1.0.1"
},
"layouts": {
"LAYOUT_iso_87": {
"layout": [
{"matrix": [0, 1], "x": 0, "y": 0},
{"matrix": [0, 2], "x": 1.25, "y": 0},
{"matrix": [0, 3], "x": 2.25, "y": 0},
{"matrix": [0, 4], "x": 3.25, "y": 0},
{"matrix": [0, 5], "x": 4.25, "y": 0},
{"matrix": [0, 6], "x": 5.5, "y": 0},
{"matrix": [0, 7], "x": 6.5, "y": 0},
{"matrix": [0, 8], "x": 7.5, "y": 0},
{"matrix": [0, 9], "x": 8.5, "y": 0},
{"matrix": [0, 10], "x": 9.75, "y": 0},
{"matrix": [0, 11], "x": 10.75, "y": 0},
{"matrix": [0, 12], "x": 11.75, "y": 0},
{"matrix": [0, 13], "x": 12.75, "y": 0},
{"matrix": [0, 14], "x": 14, "y": 0},
{"matrix": [0, 15], "x": 15.25, "y": 0},
{"matrix": [1, 1], "x": 0, "y": 1.25},
{"matrix": [1, 2], "x": 1, "y": 1.25},
{"matrix": [1, 3], "x": 2, "y": 1.25},
{"matrix": [1, 4], "x": 3, "y": 1.25},
{"matrix": [1, 5], "x": 4, "y": 1.25},
{"matrix": [1, 6], "x": 5, "y": 1.25},
{"matrix": [1, 7], "x": 6, "y": 1.25},
{"matrix": [1, 8], "x": 7, "y": 1.25},
{"matrix": [1, 9], "x": 8, "y": 1.25},
{"matrix": [1, 10], "x": 9, "y": 1.25},
{"matrix": [1, 11], "x": 10, "y": 1.25},
{"matrix": [1, 12], "x": 11, "y": 1.25},
{"matrix": [1, 13], "x": 12, "y": 1.25},
{"matrix": [1, 14], "x": 13, "y": 1.25, "w": 2},
{"matrix": [1, 15], "x": 15.25, "y": 1.25},
{"matrix": [2, 0], "x": -1.75, "y": 1.75},
{"matrix": [2, 1], "x": 0, "y": 2.25, "w": 1.5},
{"matrix": [2, 2], "x": 1.5, "y": 2.25},
{"matrix": [2, 3], "x": 2.5, "y": 2.25},
{"matrix": [2, 4], "x": 3.5, "y": 2.25},
{"matrix": [2, 5], "x": 4.5, "y": 2.25},
{"matrix": [2, 6], "x": 5.5, "y": 2.25},
{"matrix": [2, 7], "x": 6.5, "y": 2.25},
{"matrix": [2, 8], "x": 7.5, "y": 2.25},
{"matrix": [2, 9], "x": 8.5, "y": 2.25},
{"matrix": [2, 10], "x": 9.5, "y": 2.25},
{"matrix": [2, 11], "x": 10.5, "y": 2.25},
{"matrix": [2, 12], "x": 11.5, "y": 2.25},
{"matrix": [2, 13], "x": 12.5, "y": 2.25},
{"matrix": [2, 15], "x": 15.25, "y": 2.25},
{"matrix": [3, 0], "x": -1.75, "y": 3},
{"matrix": [3, 1], "x": 0, "y": 3.25, "w": 1.75},
{"matrix": [3, 2], "x": 1.75, "y": 3.25},
{"matrix": [3, 3], "x": 2.75, "y": 3.25},
{"matrix": [3, 4], "x": 3.75, "y": 3.25},
{"matrix": [3, 5], "x": 4.75, "y": 3.25},
{"matrix": [3, 6], "x": 5.75, "y": 3.25},
{"matrix": [3, 7], "x": 6.75, "y": 3.25},
{"matrix": [3, 8], "x": 7.75, "y": 3.25},
{"matrix": [3, 9], "x": 8.75, "y": 3.25},
{"matrix": [3, 10], "x": 9.75, "y": 3.25},
{"matrix": [3, 11], "x": 10.75, "y": 3.25},
{"matrix": [3, 12], "x": 11.75, "y": 3.25},
{"matrix": [3, 13], "x": 12.75, "y": 3.25},
{"matrix": [2, 14], "x": 13.75, "y": 2.25, "w": 1.25, "h":2},
{"matrix": [3, 14], "x": 15.25, "y": 3.25},
{"matrix": [4, 0], "x": -1.75, "y": 4},
{"matrix": [4, 1], "x": 0, "y": 4.25, "w": 1.25},
{"matrix": [4, 2], "x": 1.25, "y": 4.25},
{"matrix": [4, 3], "x": 2.25, "y": 4.25},
{"matrix": [4, 4], "x": 3.25, "y": 4.25},
{"matrix": [4, 5], "x": 4.25, "y": 4.25},
{"matrix": [4, 6], "x": 5.25, "y": 4.25},
{"matrix": [4, 7], "x": 6.25, "y": 4.25},
{"matrix": [4, 8], "x": 7.25, "y": 4.25},
{"matrix": [4, 9], "x": 8.25, "y": 4.25},
{"matrix": [4, 10], "x": 9.25, "y": 4.25},
{"matrix": [4, 11], "x": 10.25, "y": 4.25},
{"matrix": [4, 12], "x": 11.25, "y": 4.25},
{"matrix": [4, 14], "x": 12.25, "y": 4.25, "w": 1.75},
{"matrix": [4, 15], "x": 14.25, "y": 4.5},
{"matrix": [5, 0], "x": -1.75, "y": 5},
{"matrix": [5, 1], "x": 0, "y": 5.25, "w": 1.25},
{"matrix": [5, 2], "x": 1.25, "y": 5.25, "w": 1.25},
{"matrix": [5, 3], "x": 2.5, "y": 5.25, "w": 1.25},
{"matrix": [5, 7], "x": 3.75, "y": 5.25, "w": 6.25},
{"matrix": [5, 10], "x": 10, "y": 5.25},
{"matrix": [5, 11], "x": 11, "y": 5.25},
{"matrix": [5, 12], "x": 12, "y": 5.25},
{"matrix": [5, 13], "x": 13.25, "y": 5.5},
{"matrix": [5, 14], "x": 14.25, "y": 5.5},
{"matrix": [5, 15], "x": 15.25, "y": 5.5}
]
}
}
}
+153
View File
@@ -0,0 +1,153 @@
/* Copyright 2024 @ Lemokey (https://www.lemokey.com)
*
* This program is free software : you can redistribute it and /or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program.If not, see < http://www.gnu.org/licenses/>.
*/
#include "quantum.h"
// clang-format off
#ifdef RGB_MATRIX_ENABLE
const snled27351_led_t g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
* | | | B location
* | | | | */
{0, G_1, I_1, H_1},
{0, G_2, I_2, H_2},
{0, G_3, I_3, H_3},
{0, G_4, I_4, H_4},
{0, G_5, I_5, H_5},
{0, G_6, I_6, H_6},
{0, G_7, I_7, H_7},
{0, G_8, I_8, H_8},
{0, G_9, I_9, H_9},
{0, G_10, I_10, H_10},
{0, G_11, I_11, H_11},
{0, G_12, I_12, H_12},
{0, G_13, I_13, H_13},
{0, G_14, I_14, H_14},
{0, G_15, I_15, H_15},
{0, A_1, C_1, B_1},
{0, A_2, C_2, B_2},
{0, A_3, C_3, B_3},
{0, A_4, C_4, B_4},
{0, A_5, C_5, B_5},
{0, A_6, C_6, B_6},
{0, A_7, C_7, B_7},
{0, A_8, C_8, B_8},
{0, A_9, C_9, B_9},
{0, A_10, C_10, B_10},
{0, A_11, C_11, B_11},
{0, A_12, C_12, B_12},
{0, A_13, C_13, B_13},
{0, A_14, C_14, B_14},
{0, A_15, C_15, B_15},
{1, D_13, F_13, E_13},
{0, D_1, F_1, E_1},
{0, D_2, F_2, E_2},
{0, D_3, F_3, E_3},
{0, D_4, F_4, E_4},
{0, D_5, F_5, E_5},
{0, D_6, F_6, E_6},
{0, D_7, F_7, E_7},
{0, D_8, F_8, E_8},
{0, D_9, F_9, E_9},
{0, D_10, F_10, E_10},
{0, D_11, F_11, E_11},
{0, D_12, F_12, E_12},
{0, D_13, F_13, E_13},
{0, D_14, F_14, E_14},
{0, D_15, F_15, E_15},
{1, D_12, F_12, E_12},
{1, A_16, C_16, B_16},
{1, A_15, C_15, B_15},
{1, A_14, C_14, B_14},
{1, A_13, C_13, B_13},
{1, A_12, C_12, B_12},
{1, A_11, C_11, B_11},
{1, A_10, C_10, B_10},
{1, A_9, C_9, B_9},
{1, A_8, C_8, B_8},
{1, A_7, C_7, B_7},
{1, A_6, C_6, B_6},
{1, A_5, C_5, B_5},
{1, A_4, C_4, B_4},
{1, A_3, C_3, B_3},
{1, D_11, F_11, E_11},
{1, G_16, I_16, H_16},
{1, G_15, I_15, H_15},
{1, G_14, I_14, H_14},
{1, G_13, I_13, H_13},
{1, G_12, I_12, H_12},
{1, G_11, I_11, H_11},
{1, G_10, I_10, H_10},
{1, G_9, I_9, H_9},
{1, G_8, I_8, H_8},
{1, G_7, I_7, H_7},
{1, G_6, I_6, H_6},
{1, G_5, I_5, H_5},
{1, G_3, I_3, H_3},
{1, G_2, I_2, H_2},
{1, D_9, F_9, E_9},
{1, D_16, F_16, E_16},
{1, D_15, F_15, E_15},
{1, D_14, F_14, E_14},
{1, D_10, F_10, E_10},
{1, D_7, F_7, E_7},
{1, D_6, F_6, E_6},
{1, D_5, F_5, E_5},
{1, D_4, F_4, E_4},
{1, D_3, F_3, E_3},
{1, D_2, F_2, E_2},
};
#define __ NO_LED
led_config_t g_led_config = {
{
// Key Matrix to LED Index
{ __, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 },
{ __, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 },
{ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45 },
{ 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, __ },
{ 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, __, 74, 75 },
{ 76, 77, 78, 79, __, __, __, 80, __, __, 81, 82, 83, 84, 85, 86 },
},
{
// LED Index to Physical Position
{24, 0}, {40, 0}, {53, 0}, {67, 0}, {80, 0}, {96, 0}, {109, 0}, {122, 0}, {135, 0}, {152, 0}, {165, 0}, {178, 0}, {191, 0}, {207, 0}, {224, 0},
{24,15}, {37,15}, {50,15}, {63,15}, {76,15}, {90,15}, {103,15}, {116,15}, {129,15}, {142,15}, {155,15}, {168,15}, {181,15}, {203,15}, {224,15},
{0,21}, {27,26}, {44,26}, {57,26}, {70,26}, {83,26}, {96,26}, {109,26}, {122,26}, {135,26}, {148,26}, {162,26}, {175,26}, {188,26}, {204,26}, {224,26},
{0,34}, {29,38}, {47,38}, {60,38}, {73,38}, {86,38}, {99,38}, {112,38}, {126,38}, {139,38}, {152,38}, {165,38}, {178,38}, {199,38}, {224,38},
{0,46}, {26,49}, {40,49}, {53,49}, {67,49}, {80,49}, {93,49}, {106,49}, {119,49}, {132,49}, {145,49}, {158,49}, {171,49}, {189,49}, {211,52},
{0,58}, {26,61}, {42,61}, {58,61}, {107,61}, {155,61}, {168,61}, {181,61}, {197,64}, {211,64}, {224,64}
},
{
// RGB LED Index to Flag
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
}
};
#endif
@@ -0,0 +1,58 @@
/* Copyright 2024 @ Lemokey (https://www.lemokey.com)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
#include "lemokey_common.h"
enum layer_names {
BASE = 0,
FN,
};
// clang-format off
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[BASE] = LAYOUT_iso_87(
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_INS,
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP,
MC_0, 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_PGDN,
MC_1, 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_HOME,
MC_2, 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,
MC_3, KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
[FN] = LAYOUT_iso_87(
_______, KC_BRID, KC_BRIU, KC_TASK, KC_FILE, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______,
_______, BT_HST1, BT_HST2, BT_HST3, P2P4G, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, KC_END,
_______, _______, _______, _______, _______, _______, _______, BAT_LVL, NK_TOGG, _______, _______, _______, _______, _______, _______,
_______, _______, GUI_TOG, _______, _______, _______, _______, _______, _______, _______, _______),
};
// clang-format on
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][1][2] = {
[BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)},
[FN] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI)},
};
#endif // ENCODER_MAP_ENABLE
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
if (!process_record_lemokey_common(keycode, record)) {
return false;
}
return true;
}
@@ -0,0 +1,58 @@
/* Copyright 2024 @ Lemokey (https://www.lemokey.com)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
#include "lemokey_common.h"
enum layer_names {
BASE = 0,
FN,
};
// clang-format off
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[BASE] = LAYOUT_iso_87(
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_INS,
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP,
MC_0, 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_PGDN,
MC_1, 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_HOME,
MC_2, 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,
MC_3, KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
[FN] = LAYOUT_iso_87(
_______, KC_BRID, KC_BRIU, KC_TASK, KC_FILE, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______,
_______, BT_HST1, BT_HST2, BT_HST3, P2P4G, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, KC_END,
_______, _______, _______, _______, _______, _______, _______, BAT_LVL, NK_TOGG, _______, _______, _______, _______, _______, _______,
_______, _______, GUI_TOG, _______, _______, _______, _______, _______, _______, _______, _______),
};
// clang-format on
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][1][2] = {
[BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)},
[FN] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI)},
};
#endif // ENCODER_MAP_ENABLE
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
if (!process_record_lemokey_common(keycode, record)) {
return false;
}
return true;
}
@@ -0,0 +1 @@
VIA_ENABLE = yes
+1
View File
@@ -0,0 +1 @@
# This file intentionally left blank
+6 -4
View File
@@ -1,6 +1,6 @@
# Lemokey L1 # Lemokey L1
![Lemokey L1 QMK/VIA Wireless Mechanical Keyboard](https://cdn.shopify.com/s/files/1/0680/1778/3083/files/Lemokey-L1-3_0b726823-a814-4b8e-b871-27980d10b340.jpg?v=1704791152) ![Lemokey L1 QMK/VIA Wireless Mechanical Keyboard](https://cdn.shopify.com/s/files/1/0680/1778/3083/files/Lemokey-L1-3_0b726823-a814-4b8e-b871-27980d10b340.jpg)
A 75% customizable wireless TKL keyboard. A 75% customizable wireless TKL keyboard.
@@ -10,12 +10,14 @@ A 75% customizable wireless TKL keyboard.
Make example for this keyboard (after setting up your build environment): Make example for this keyboard (after setting up your build environment):
make lemokey/l1/ansi:default make lemokey/l1/ansi:via
make lemokey/l1/iso:via
Flashing example for this keyboard: Flashing example for this keyboard:
``` ```
make lemokey/l1/ansi:default:flash make lemokey/l1/ansi:via:flash
make lemokey/l1/iso:via:flash
``` ```
**Reset Key**: Toggle mode switch to "Cable", hold down the *Esc* key or reset button underneath space bar while connecting the USB cable, **Reset Key**: Toggle mode switch to "Cable", hold down the *Esc* key or reset button underneath space bar while connecting the USB cable,
+325
View File
@@ -0,0 +1,325 @@
{
"name": "Lemokey L1 ISO",
"vendorId": "0x362D",
"productId": "0x0111",
"keycodes": ["qmk_lighting"],
"menus": [
{
"label": "Lighting",
"content": [
{
"label": "Backlight",
"content": [
{
"label": "Brightness",
"type": "range",
"options": [0, 255],
"content": ["id_qmk_rgb_matrix_brightness", 3, 1]
},
{
"label": "Effect",
"type": "dropdown",
"content": ["id_qmk_rgb_matrix_effect", 3, 2],
"options": [
["None", 0],
["Solid Color", 1],
["Breathing", 2],
["Band Spiral Val", 3],
["Cycle All", 4],
["Cycle Left Right", 5],
["Cycle Up Down", 6],
["Rainbow Moving Chevron", 7],
["Cycle Out In", 8],
["Cycle Out In Dual", 9],
["Cycle Pinwheel", 10],
["Cycle Spiral", 11],
["Dual Beacon", 12],
["Rainbow Beacon", 13],
["Jellybean Raindrops", 14],
["Pixel Rain", 15],
["Typing Heatmap", 16],
["Digital Rain", 17],
["Reactive Simple", 18],
["Reactive Multiwide", 19],
["Reactive Multinexus", 20],
["Splash", 21],
["Solid Splash", 22]
]
},
{
"showIf": "{id_qmk_rgb_matrix_effect} > 1",
"label": "Effect Speed",
"type": "range",
"options": [0, 255],
"content": ["id_qmk_rgb_matrix_effect_speed", 3, 3]
},
{
"showIf": "{id_qmk_rgb_matrix_effect} != 0 && ( {id_qmk_rgb_matrix_effect} < 4 || {id_qmk_rgb_matrix_effect} == 18 || ({id_qmk_rgb_matrix_effect} > 17 && {id_qmk_rgb_matrix_effect} != 21) ) ",
"label": "Color",
"type": "color",
"content": ["id_qmk_rgb_matrix_color", 3, 4]
}
]
}
]
}
],
"customKeycodes": [
{"name": "Task View", "title": "Task View in Windows", "shortName": "Task"},
{"name": "File Explorer", "title": "File Explorer in Windows", "shortName": "File"},
{"name": "Lock Sreen", "title": "Lock Screen Windows", "shortName": "Lock"},
{"name": "Misson Control", "title": "Misson Control in MacOS", "shortName": "MCtl"},
{"name": "Launch Pad", "title": "Launch Pad in MacOS", "shortName": "LPad"},
{"name": "Left Option", "title": "Left Option", "shortName": "LOpt"},
{"name": "Right Option", "title": "Right Option", "shortName": "ROpt"},
{"name": "Left Cmd", "title": "Left Command", "shortName": "LCmd"},
{"name": "Right Cmd", "title": "Right Command", "shortName": "RCmd"},
{"name": "Bluetooth Host 1", "title": "Bluetooth Host 1", "shortName": "BTH1"},
{"name": "Bluetooth Host 2", "title": "Bluetooth Host 2", "shortName": "BTH2"},
{"name": "Bluetooth Host 3", "title": "Bluetooth Host 3", "shortName": "BTH3"},
{"name": "2.4G Host", "title": "2.4G Host", "shortName": "2.4G"},
{"name": "Battery Level", "title": "Show battery level", "shortName": "Batt"}
],
"matrix": {"rows": 6, "cols" : 16},
"layouts": {
"keymap": [
[
{
"w": 1.05,
"h": 1.05,
"c": "#aaaaaa"
},
"0, 0\n\n\n\n\n\n\n\n\ne0",
{
"x": 0.75,
"c": "#777777"
},
"0, 1",
{
"x": 0.25,
"c": "#cccccc"
},
"0, 2",
"0, 3",
"0, 4",
"0, 5",
{
"x": 0.25,
"c": "#aaaaaa"
},
"0, 6",
"0, 7",
"0, 8",
"0, 9",
{
"x": 0.25,
"c": "#cccccc"
},
"0, 10",
"0, 11",
"0, 12",
"0, 13",
{
"x": 0.25,
"c": "#aaaaaa"
},
"0, 14",
{
"x": 0.25
},
"0, 15"
],
[
{
"x": 1.8,
"y": 0.25,
"c": "#aaaaaa"
},
"1, 1",
{
"c": "#cccccc"
},
"1, 2",
"1, 3",
"1, 4",
"1, 5",
"1, 6",
"1, 7",
"1, 8",
"1, 9",
"1, 10",
"1, 11",
"1, 12",
"1, 13",
{
"w": 2,
"c": "#aaaaaa"
},
"1, 14",
{
"x": 0.25
},
"1, 15"
],
[
{
"y": -0.5,
"w": 1.05,
"h": 1.05
},
"2, 0",
{
"x": 0.75,
"y": 0.5,
"w": 1.5,
"c": "#aaaaaa"
},
"2, 1",
{
"c": "#cccccc"
},
"2, 2",
"2, 3",
"2, 4",
"2, 5",
"2, 6",
"2, 7",
"2, 8",
"2, 9",
"2, 10",
"2, 11",
"2, 12",
"2, 13",
{
"x": 0.25,
"w": 1.25,
"h": 2,
"c": "#777777",
"w2": 1.5,
"h2": 1,
"x2": -0.25
},
"2, 14",
{
"c": "#aaaaaa",
"x": 0.25
},
"2, 15"
],
[
{
"y": -0.45,
"w": 1.05,
"h": 1.05
},
"3, 0",
{
"x": 0.75,
"y": 0.45,
"w": 1.75
},
"3, 1",
{
"c": "#cccccc"
},
"3, 2",
"3, 3",
"3, 4",
"3, 5",
"3, 6",
"3, 7",
"3, 8",
"3, 9",
"3, 10",
"3, 11",
"3, 12",
"3, 13",
{
"x": 1.5,
"c": "#aaaaaa"
},
"3, 14"
],
[
{
"y": -0.4,
"w": 1.05,
"h": 1.05
},
"4, 0",
{
"x": 0.75,
"y": 0.4,
"w": 1.25,
"c": "#aaaaaa"
},
"4, 1",
{
"c": "#cccccc"
},
"4, 2",
"4, 3",
"4, 4",
"4, 5",
"4, 6",
"4, 7",
"4, 8",
"4, 9",
"4, 10",
"4, 11",
"4, 12",
{
"w": 1.75,
"c": "#aaaaaa"
},
"4, 14",
{
"x": 0.25,
"y": 0.25
},
"4, 15"
],
[
{
"y": -0.6,
"w": 1.05,
"h": 1.05
},
"5, 0",
{
"x": 0.75,
"y": 0.35,
"w": 1.25,
"c": "#aaaaaa"
},
"5, 1",
{
"w": 1.25
},
"5, 2",
{
"w": 1.25
},
"5, 3",
{
"w": 6.25,
"c": "#cccccc"
},
"5, 7",
{
"c": "#aaaaaa"
},
"5, 10",
"5, 11",
"5, 12",
{
"x": 0.25,
"y": 0.25
},
"5, 13",
"5, 14",
"5, 15"
]
]
}
}