mirror of
https://github.com/Keychron/qmk_firmware.git
synced 2024-12-26 19:18:03 +06:00
Updates to mlego m65 (#20220)
Co-authored-by: Drashna Jaelre <drashna@live.com> Co-authored-by: Ryan <fauxpark@gmail.com>
This commit is contained in:
parent
c72d661b93
commit
007c0c1db4
@ -1,21 +0,0 @@
|
||||
/*
|
||||
Copyright 2021-2022 Alin M Elena <alinm.elena@gmail.com>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#define LOCKING_SUPPORT_ENABLE
|
||||
#define LOCKING_RESYNC_ENABLE
|
@ -1,84 +0,0 @@
|
||||
{
|
||||
"keyboard_name": "m65",
|
||||
"manufacturer": "Alin Elena",
|
||||
"url": "https://gitlab.com/m-lego/m65",
|
||||
"maintainer": "alin elena",
|
||||
"usb": {
|
||||
"vid": "0xBABA"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT_ortho_5x13": {
|
||||
"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": [1, 0], "x": 0, "y": 1},
|
||||
{"matrix": [1, 1], "x": 1, "y": 1},
|
||||
{"matrix": [1, 2], "x": 2, "y": 1},
|
||||
{"matrix": [1, 3], "x": 3, "y": 1},
|
||||
{"matrix": [1, 4], "x": 4, "y": 1},
|
||||
{"matrix": [1, 5], "x": 5, "y": 1},
|
||||
{"matrix": [1, 6], "x": 6, "y": 1},
|
||||
{"matrix": [1, 7], "x": 7, "y": 1},
|
||||
{"matrix": [1, 8], "x": 8, "y": 1},
|
||||
{"matrix": [1, 9], "x": 9, "y": 1},
|
||||
{"matrix": [1, 10], "x": 10, "y": 1},
|
||||
{"matrix": [1, 11], "x": 11, "y": 1},
|
||||
{"matrix": [1, 12], "x": 12, "y": 1},
|
||||
|
||||
{"matrix": [2, 0], "x": 0, "y": 2},
|
||||
{"matrix": [2, 1], "x": 1, "y": 2},
|
||||
{"matrix": [2, 2], "x": 2, "y": 2},
|
||||
{"matrix": [2, 3], "x": 3, "y": 2},
|
||||
{"matrix": [2, 4], "x": 4, "y": 2},
|
||||
{"matrix": [2, 5], "x": 5, "y": 2},
|
||||
{"matrix": [2, 6], "x": 6, "y": 2},
|
||||
{"matrix": [2, 7], "x": 7, "y": 2},
|
||||
{"matrix": [2, 8], "x": 8, "y": 2},
|
||||
{"matrix": [2, 9], "x": 9, "y": 2},
|
||||
{"matrix": [2, 10], "x": 10, "y": 2},
|
||||
{"matrix": [2, 11], "x": 11, "y": 2},
|
||||
{"matrix": [2, 12], "x": 12, "y": 2},
|
||||
|
||||
{"matrix": [3, 0], "x": 0, "y": 3},
|
||||
{"matrix": [3, 1], "x": 1, "y": 3},
|
||||
{"matrix": [3, 2], "x": 2, "y": 3},
|
||||
{"matrix": [3, 3], "x": 3, "y": 3},
|
||||
{"matrix": [3, 4], "x": 4, "y": 3},
|
||||
{"matrix": [3, 5], "x": 5, "y": 3},
|
||||
{"matrix": [3, 6], "x": 6, "y": 3},
|
||||
{"matrix": [3, 7], "x": 7, "y": 3},
|
||||
{"matrix": [3, 8], "x": 8, "y": 3},
|
||||
{"matrix": [3, 9], "x": 9, "y": 3},
|
||||
{"matrix": [3, 10], "x": 10, "y": 3},
|
||||
{"matrix": [3, 11], "x": 11, "y": 3},
|
||||
{"matrix": [3, 12], "x": 12, "y": 3},
|
||||
|
||||
{"matrix": [4, 0], "x": 0, "y": 4},
|
||||
{"matrix": [4, 1], "x": 1, "y": 4},
|
||||
{"matrix": [4, 2], "x": 2, "y": 4},
|
||||
{"matrix": [4, 3], "x": 3, "y": 4},
|
||||
{"matrix": [4, 4], "x": 4, "y": 4},
|
||||
{"matrix": [4, 5], "x": 5, "y": 4},
|
||||
{"matrix": [4, 6], "x": 6, "y": 4},
|
||||
{"matrix": [4, 7], "x": 7, "y": 4},
|
||||
{"matrix": [4, 8], "x": 8, "y": 4},
|
||||
{"matrix": [4, 9], "x": 9, "y": 4},
|
||||
{"matrix": [4, 10], "x": 10, "y": 4},
|
||||
{"matrix": [4, 11], "x": 11, "y": 4},
|
||||
{"matrix": [4, 12], "x": 12, "y": 4}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
@ -1,19 +1,5 @@
|
||||
/*
|
||||
Copyright 2021-2022 Alin M Elena <alinm.elena@gmail.com>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
// Copyright 2020-2023 alin m elena (@alinelena)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
|
@ -1,19 +1,5 @@
|
||||
/*
|
||||
Copyright 2021-2022 Alin M Elena <alinm.elena@gmail.com>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
// Copyright 2020-2023 alin m elena (@alinelena)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
@ -51,69 +37,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
bool led_update_user(led_t led_state) {
|
||||
// Disable the default LED update code, so that lock LEDs could be reused to show layer status.
|
||||
return false;
|
||||
}
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
|
||||
toggle_leds();
|
||||
|
||||
}
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t* record) {
|
||||
switch (keycode) {
|
||||
case (TT(_LWR)):
|
||||
if (!record->event.pressed && record->tap.count == TAPPING_TOGGLE) {
|
||||
// This runs before the TT() handler toggles the layer state, so the current layer state is the opposite of the final one after toggle.
|
||||
set_led_toggle(_LWR, !layer_state_is(_LWR));
|
||||
}
|
||||
return true;
|
||||
break;
|
||||
case (TT(_RSE)):
|
||||
if (record->event.pressed && record->tap.count == TAPPING_TOGGLE) {
|
||||
set_led_toggle(_RSE, !layer_state_is(_RSE));
|
||||
}
|
||||
return true;
|
||||
break;
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
|
||||
set_rgb_layers(state);
|
||||
|
||||
#if defined(ENCODER_MAP_ENABLE)
|
||||
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
|
||||
[_QW] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)},
|
||||
#if defined(RGBLIGHT_ENABLE)
|
||||
[_LWR] = {ENCODER_CCW_CW(RGB_HUD, RGB_HUI)},
|
||||
[_RSE] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI)},
|
||||
[_ADJ] = {ENCODER_CCW_CW(RGB_RMOD, RGB_MOD)},
|
||||
# else
|
||||
[_LWR] = {ENCODER_CCW_CW(KC_MNXT, KC_MPRV)},
|
||||
[_RSE] = {ENCODER_CCW_CW(KC_MFFD, KC_MRWD)},
|
||||
[_ADJ] = {ENCODER_CCW_CW(KC_PGDN, KC_PGUP)},
|
||||
#endif
|
||||
|
||||
return update_tri_layer_state(state, _LWR, _RSE, _ADJ);
|
||||
}
|
||||
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
|
||||
layer_state_t default_layer_state_set_user(layer_state_t state) {
|
||||
set_default_rgb_layers(state);
|
||||
return state;
|
||||
}
|
||||
|
||||
};
|
||||
#endif
|
||||
|
||||
void keyboard_post_init_user(void) {
|
||||
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
|
||||
// Enable the LED layers
|
||||
rgblight_layers = my_rgb();
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef OLED_ENABLE
|
||||
|
||||
init_timer();
|
||||
|
||||
#endif
|
||||
}
|
||||
|
1
keyboards/mlego/m65/keymaps/default/rules.mk
Normal file
1
keyboards/mlego/m65/keymaps/default/rules.mk
Normal file
@ -0,0 +1 @@
|
||||
ENCODER_MAP_ENABLE = yes
|
@ -1,20 +0,0 @@
|
||||
/*
|
||||
Copyright 2021-2022 Alin M Elena <alinm.elena@gmail.com>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#define TAPPING_TOGGLE 2
|
@ -1,121 +0,0 @@
|
||||
/*
|
||||
Copyright 2021-2022 Alin M Elena <alinm.elena@gmail.com>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
#include "keymap_danish.h"
|
||||
|
||||
// clang-format off
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[_QW] = LAYOUT_ortho_5x13(
|
||||
KC_ESC, DK_1 , DK_2 , DK_3 , DK_4 , DK_5 , DK_6 , DK_7 , DK_8 , DK_9 , DK_0 , DK_PLUS, KC_BSPC ,
|
||||
KC_TAB, DK_Q , DK_W , DK_E , DK_R , DK_T , DK_Y , DK_U , DK_I , DK_O , DK_P , DK_ARNG, DK_DIAE ,
|
||||
DK_QUOT, DK_A , DK_S , DK_D , DK_F , DK_G , DK_H , DK_J , DK_K , DK_L , DK_AE , DK_OSTR, KC_ENT ,
|
||||
SC_LSPO, DK_LABK, DK_Z , DK_X , DK_C , DK_V , DK_B , DK_N , DK_M , DK_COMM, DK_DOT , KC_UP , DK_MINS ,
|
||||
KC_LCTL, KC_LGUI, TT(_LWR), KC_LALT, TT(_RSE), KC_SPC, KC_SPC, KC_SPC, KC_RALT, SC_RSPC, KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
[_LWR] = LAYOUT_ortho_5x13(
|
||||
DK_HALF, KC_MUTE, KC_VOLU, KC_VOLD, KC_MPRV, KC_MPLY, KC_MNXT, G(KC_P), KC_SLEP, KC_WAKE, KC_PSCR, KC_DEL , DK_ACUT ,
|
||||
KC_BTN3, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ,
|
||||
KC_BTN2, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ,
|
||||
_______, KC_BTN1, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MS_U, _______ ,
|
||||
_______, KC_BTN4, _______, _______, _______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R),
|
||||
|
||||
[_RSE] = LAYOUT_ortho_5x13(
|
||||
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_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_WH_U, _______ ,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_WH_L, KC_WH_D, KC_WH_R),
|
||||
|
||||
[_ADJ] = LAYOUT_ortho_5x13(
|
||||
RGB_MOD,RGB_RMOD, A(KC_F2), _______, _______, _______, _______, _______, _______, _______, _______, RGB_M_T, RGB_M_SW ,
|
||||
RGB_HUI, RGB_HUD, RGB_M_P , _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, RGB_M_SN ,
|
||||
RGB_SAI, RGB_SAD, RGB_M_B , _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_M_K ,
|
||||
RGB_VAI, RGB_VAD, RGB_M_R , _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_M_X ,
|
||||
RGB_TOG, _______, _______ , _______, _______, _______, _______, _______, _______, _______, _______, RGB_M_TW, RGB_M_G),
|
||||
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
bool led_update_user(led_t led_state) {
|
||||
// Disable the default LED update code, so that lock LEDs could be reused to show layer status.
|
||||
return false;
|
||||
}
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
|
||||
toggle_leds();
|
||||
|
||||
}
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t* record) {
|
||||
switch (keycode) {
|
||||
case (TT(_LWR)):
|
||||
if (!record->event.pressed && record->tap.count == TAPPING_TOGGLE) {
|
||||
// This runs before the TT() handler toggles the layer state, so the current layer state is the opposite of the final one after toggle.
|
||||
set_led_toggle(_LWR, !layer_state_is(_LWR));
|
||||
}
|
||||
return true;
|
||||
break;
|
||||
case (TT(_RSE)):
|
||||
if (record->event.pressed && record->tap.count == TAPPING_TOGGLE) {
|
||||
set_led_toggle(_RSE, !layer_state_is(_RSE));
|
||||
}
|
||||
return true;
|
||||
break;
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
|
||||
set_rgb_layers(state);
|
||||
|
||||
#endif
|
||||
|
||||
return update_tri_layer_state(state, _LWR, _RSE, _ADJ);
|
||||
}
|
||||
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
|
||||
layer_state_t default_layer_state_set_user(layer_state_t state) {
|
||||
set_default_rgb_layers(state);
|
||||
return state;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
void keyboard_post_init_user(void) {
|
||||
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
|
||||
// Enable the LED layers
|
||||
rgblight_layers = my_rgb();
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef OLED_ENABLE
|
||||
|
||||
init_timer();
|
||||
|
||||
#endif
|
||||
|
||||
}
|
@ -1,13 +0,0 @@
|
||||
![M65 Layout Image](https://i.imgur.com/RQqsM4gh.png)
|
||||
|
||||
# Default M65 Layout
|
||||
|
||||
This is the Danish keymap for M65. For the most part it's a straightforward and easy to follow layout inspired by ISO with a DK
|
||||
turn. The only unusual key is the key in the upper left, which sends Escape normally, but Grave when in layer 1 aka LWR. Similarly
|
||||
number row in layer 1 give the usual audio KC_GRV, KC_AUDIO_MUTE, KC_AUDIO_VOL_UP, KC_AUDIO_VOL_DOWN, KC_MEDIA_PREV_TRACK,
|
||||
KC_MEDIA_PLAY_PAUSE, KC_MEDIA_NEXT_TRACK, M_EXTDISP, KC_SYSTEM_SLEEP, KC_SYSTEM_WAKE, KC_PRINT_SCREEN, KC_DEL, DK_ACUT in layer 2 aka
|
||||
RSE one gets F1-F12 mouse emulation can be used in layer 1 and 2.
|
||||
|
||||
flashing is done by LWR+RSE+r
|
||||
|
||||
full layout below see in keymap.c
|
@ -1,29 +1,14 @@
|
||||
/*
|
||||
Copyright 2021-2022 Alin M Elena <alinm.elena@gmail.com>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
// Copyright 2020-2023 alin m elena (@alinelena)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#define TAPPING_TOGGLE 2
|
||||
|
||||
#define UNICODE_SELECTED_MODES UNICODE_MODE_LINUX
|
||||
//#define UNICODE_SELECTED_MODES UNICODE_MODE_LINUX, UNICODE_MODE_MACOS, UNICODE_MODE_WINCOMPOSE
|
||||
#define UNICODE_SELECTED_MODES UNICODE_MODE_LINUX, UNICODE_MODE_MACOS, UNICODE_MODE_WINDOWS, UNICODE_MODE_WINCOMPOSE
|
||||
|
||||
#ifdef WPM_ENABLE
|
||||
#define WPM_SAMPLE_SECONDS 10
|
||||
#define WPM_SAMPLE_PERIODS 100
|
||||
#define WPM_ALLOW_COUNT_REGRESSION
|
||||
# define WPM_SAMPLE_SECONDS 10
|
||||
# define WPM_SAMPLE_PERIODS 100
|
||||
# define WPM_ALLOW_COUNT_REGRESSION
|
||||
#endif
|
||||
|
@ -1,106 +1,101 @@
|
||||
/*
|
||||
Copyright 2021-2022 Alin M Elena <alinm.elena@gmail.com>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
// Copyright 2020-2023 alin m elena (@alinelena)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
#include "keymap_uk.h"
|
||||
|
||||
#ifdef CONSOLE_ENABLE
|
||||
|
||||
#include "print.h"
|
||||
|
||||
#endif
|
||||
|
||||
const uint32_t unicode_map[] PROGMEM = {
|
||||
[la] = 0x03B1 , // α
|
||||
[lA] = 0x0391 , // Α
|
||||
[lb] = 0x03B2 , // β
|
||||
[lB] = 0x0392 , // Β
|
||||
[lc] = 0x03C7 , // χ
|
||||
[lC] = 0x0307 , //
|
||||
[ld] = 0x03B4 , // δ
|
||||
[lD] = 0x2202 , // ∂
|
||||
[le] = 0x03B5 , // ε
|
||||
[lE] = 0x2107 , // ℇ
|
||||
[lf] = 0x03C6 , // φ
|
||||
[lF] = 0x03C8 , // ψ
|
||||
[lg] = 0x03B3 , // γ
|
||||
[lG] = 0x0393 , // Γ
|
||||
[lh] = 0x210F , // ℏ
|
||||
[lH] = 0x1D4D7, // 𝓗
|
||||
[li] = 0x222B , // ∫
|
||||
[lI] = 0x222E , // ∮
|
||||
[lj] = 0x2208 , // ∈
|
||||
[lJ] = 0x2209 , // ∉
|
||||
[lk] = 0x03F0 , // ϰ
|
||||
[lK] = 0x2206 , // ∆
|
||||
[ll] = 0x03BB , // λ
|
||||
[lL] = 0x039B , // Λ
|
||||
[lm] = 0x03BC , // μ
|
||||
[lM] = 0x2218 , // ∘
|
||||
[ln] = 0x03B7 , // η
|
||||
[lN] = 0x222A , // ∪
|
||||
[lo] = 0x221E , // ∞
|
||||
[lO] = 0x2297 , // ⊗
|
||||
[lp] = 0x03C0 , // π
|
||||
[lP] = 0x220F , // ∏
|
||||
[lq] = 0x03C3 , // σ
|
||||
[lQ] = 0x03D5 , // ϕ
|
||||
[lr] = 0x03C1 , // ρ
|
||||
[lR] = 0x2207 , // ∇
|
||||
[ls] = 0x2211 , // ∑
|
||||
[lS] = 0x2A0B , // ⨋
|
||||
[lt] = 0x03D1 , // ϑ
|
||||
[lT] = 0x03B8 , // θ
|
||||
[lu] = 0x03C4 , // τ
|
||||
[lU] = 0x2102 , // ℂ
|
||||
[lv] = 0x03BD , // χ
|
||||
[lV] = 0x039D , // Ν
|
||||
[lw] = 0x03C9 , // ω
|
||||
[lW] = 0x03A9 , // Ω
|
||||
[lx] = 0x03BE , // ξ
|
||||
[lX] = 0x039E , // Ξ
|
||||
[ly] = 0x211d , // ℝ
|
||||
[lY] = 0x2124 , // ℤ
|
||||
[lz] = 0x03B6 , // ζ
|
||||
[lZ] = 0x2221 , // ∡
|
||||
[lc1] = 0x224A , // ≊
|
||||
[lC1] = 0x2248 , // ≈
|
||||
[lp1] = 0x00B1 , // ±
|
||||
[lP1] = 0x2213 , // ∓
|
||||
[lq1] = 0x00D7 , // ×
|
||||
[lQ1] = 0x22C5 , // ⋅
|
||||
[ll1] = 0x1D53C, // 𝔼
|
||||
[lL1] = 0x212b , // Å
|
||||
[lk1] = 0x221D , // ∝
|
||||
[lK1] = 0x2112 , // ℒ
|
||||
[ra] = 0x0103 , // ă
|
||||
[rA] = 0x0102 , // Ă
|
||||
[ra1] = 0x00E2 , // â
|
||||
[rA1] = 0x00C2 , // Â
|
||||
[rc] = 0x00E7 , // ç
|
||||
[rC] = 0x00C7 , // Ç
|
||||
[ri] = 0x00EE , // î
|
||||
[rI] = 0x00CE , // Î
|
||||
[rs] = 0x0219 , // ș
|
||||
[rS] = 0x0218 , // Ș
|
||||
[rt] = 0x021B , // ț
|
||||
[rT] = 0x021A , // Ț
|
||||
[la] = 0x03B1, // α
|
||||
[lA] = 0x0307, //
|
||||
[lb] = 0x03B2, // β
|
||||
[lB] = 0x2229, // ∩
|
||||
[lc] = 0x03C7, // χ
|
||||
[lC] = 0x2282, // ⊂
|
||||
[ld] = 0x03B4, // δ
|
||||
[lD] = 0x2202, // ∂
|
||||
[le] = 0x03B5, // ε
|
||||
[lE] = 0x2107, // ℇ
|
||||
[lf] = 0x03C6, // φ
|
||||
[lF] = 0x03C8, // ψ
|
||||
[lg] = 0x03B3, // γ
|
||||
[lG] = 0x0393, // Γ
|
||||
[lh] = 0x210F, // ℏ
|
||||
[lH] = 0x1D4D7, // 𝓗
|
||||
[li] = 0x222B, // ∫
|
||||
[lI] = 0x222E, // ∮
|
||||
[lj] = 0x2208, // ∈
|
||||
[lJ] = 0x2209, // ∉
|
||||
[lk] = 0x03F0, // ϰ
|
||||
[lK] = 0x2206, // ∆
|
||||
[ll] = 0x03BB, // λ
|
||||
[lL] = 0x039B, // Λ
|
||||
[lm] = 0x03BC, // μ
|
||||
[lM] = 0x2218, // ∘
|
||||
[ln] = 0x03B7, // η
|
||||
[lN] = 0x222A, // ∪
|
||||
[lo] = 0x221E, // ∞
|
||||
[lO] = 0x2297, // ⊗
|
||||
[lp] = 0x03C0, // π
|
||||
[lP] = 0x220F, // ∏
|
||||
[lq] = 0x03C3, // σ
|
||||
[lQ] = 0x03D5, // ϕ
|
||||
[lr] = 0x03C1, // ρ
|
||||
[lR] = 0x2207, // ∇
|
||||
[ls] = 0x2211, // ∑
|
||||
[lS] = 0x2A0B, // ⨋
|
||||
[lt] = 0x03D1, // ϑ
|
||||
[lT] = 0x03B8, // θ
|
||||
[lu] = 0x03C4, // τ
|
||||
[lU] = 0x2102, // ℂ
|
||||
[lv] = 0x03BD, // χ
|
||||
[lV] = 0x2283, // ⊃
|
||||
[lw] = 0x03C9, // ω
|
||||
[lW] = 0x03A9, // Ω
|
||||
[lx] = 0x03BE, // ξ
|
||||
[lX] = 0x039E, // Ξ
|
||||
[ly] = 0x211d, // ℝ
|
||||
[lY] = 0x2124, // ℤ
|
||||
[lz] = 0x03B6, // ζ
|
||||
[lZ] = 0x2221, // ∡
|
||||
[lc1] = 0x2248, // ≈
|
||||
[lC1] = 0x2249, // ≉
|
||||
[lp1] = 0x00B1, // ±
|
||||
[lP1] = 0x2213, // ∓
|
||||
[lq1] = 0x00D7, // ×
|
||||
[lQ1] = 0x22C5, // ⋅
|
||||
[ll1] = 0x1D53C, // 𝔼
|
||||
[lL1] = 0x212b, // Å
|
||||
[lk1] = 0x221D, // ∝
|
||||
[lK1] = 0x2112, // ℒ
|
||||
[lbo1] = 0x22DC, // ⋜
|
||||
[lbo2] = 0x2260, // ≠
|
||||
[lbc1] = 0x22DD, // ⋝
|
||||
[lbc2] = 0x2245, // ≅
|
||||
[ls1] = 0x2261, // ≡
|
||||
[ls2] = 0x2262, // ≢
|
||||
[ra] = 0x0103, // ă
|
||||
[rA] = 0x0102, // Ă
|
||||
[ra1] = 0x00E2, // â
|
||||
[rA1] = 0x00C2, // Â
|
||||
[rx] = 0x00E7, // ç
|
||||
[rX] = 0x00C7, // Ç
|
||||
[ri] = 0x00EE, // î
|
||||
[rI] = 0x00CE, // Î
|
||||
[rs] = 0x0219, // ș⊄
|
||||
[rS] = 0x0218, // Ș
|
||||
[rt] = 0x021B, // ț
|
||||
[rT] = 0x021A, // Ț
|
||||
[rc] = 0x2284, // ⊄
|
||||
[rC] = 0x2286, // ⊆
|
||||
[rv] = 0x2285, // ⊅
|
||||
[rV] = 0x2287, // ⊇
|
||||
[rb] = 0x2227, // ∧
|
||||
[rB] = 0x22BC, // ⊼
|
||||
[rn] = 0x2228, // ∨
|
||||
[rN] = 0x22BB, // ⊻
|
||||
};
|
||||
|
||||
|
||||
// clang-format off
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/*
|
||||
@ -161,29 +156,29 @@ altgr shift symbols
|
||||
KC_LCTL, KC_LGUI, TT(_LWR), KC_LALT, TT(_RSE), KC_SPC, KC_SPC, KC_SPC, KC_RALT, SC_RSPC, KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
/*
|
||||
lower layer
|
||||
raise layer
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
|
||||
* │ ` │MUT│Vup│Vdn│prv│ply│nxt│EXT│SLP│WAK│PSC│ ⌫ │ = │
|
||||
* ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
||||
* │ │ σ │ ω │ ε │ ρ │ ϑ │ ℝ │ τ │ ∫ │ ∞ │ π │ [ │ ] │
|
||||
* │ │ σ │ ω │ ε │ ρ │ ϑ │ ℝ │ τ │ ∫ │ ∞ │ π │ ⋜ │ ⋝ │
|
||||
* ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
||||
* │ │ α │ ∑ │ δ │ φ │ γ │ ℏ │ ∈ │ ϰ │ λ │ 𝔼 │ ∝ │ ⏎ │
|
||||
* ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
||||
* │ ⇧(│ │ ζ │ ξ │ χ │ ν │ β │ η │ μ │ ≊ │ ± │ │ × │
|
||||
* │ ⇧(│ ≡ │ ζ │ ξ │ χ │ ν │ β │ η │ μ │ ≈ │ ± │ │ × │
|
||||
* ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
||||
* │ ⎈ │ │lwr│⎇ │rse│ │ │ │⎇ │ ⇧)│ │ │ │
|
||||
* │ │ │lwr│⎇ │rse│ │ │ │⎇ │ ⇧)│ │ │ │
|
||||
* └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘
|
||||
lower layer shifted
|
||||
raise layer shifted
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
|
||||
* │ ¬ │ │ │ │ │ │ │ │ │ │ │ ⌫ │ = │
|
||||
* │ ¬ │ │ │ │ │ │ │ │ │ │ │ ⌫ │ + │
|
||||
* ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
||||
* │MB3│ ϕ │ Ω │ ℇ │ ∇ │ θ │ ℤ │ ℂ │ ∮ │ ⊗ │ ∏ │ { │ } │
|
||||
* │MB3│ ϕ │ Ω │ ℇ │ ∇ │ θ │ ℤ │ ℂ │ ∮ │ ⊗ │ ∏ │ ≠ │ ≅ │
|
||||
* ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
||||
* │MB2│ Α │ ⨋ │ ∂ │ ψ │ Γ │ 𝓗 │ ∉ │ ∆ │ Λ │ Å │ ℒ │ ⏎ │
|
||||
* │MB2│ ̇ │ ⨋ │ ∂ │ ψ │ Γ │ 𝓗 │ ∉ │ ∆ │ Λ │ Å │ ℒ │ ⏎ │
|
||||
* ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
||||
* │ ⇧(│MB1│ ∡ │ Ξ │ ̇ │ Ν │ Β │ ∪ │ ∘ │ ≈ │ ∓ │MSU│ ⋅ │
|
||||
* │ ⇧(│ ≢ │ ∡ │ Ξ │ ⊂ │ ⊃ │ ∩ │ ∪ │ ∘ │ ≉ │ ∓ │MSU│ ⋅ │
|
||||
* ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
||||
* │ ⎈ │MB4│lwr│⎇ │rse│ │ │ │⎇ │ ⇧)│MSL│MSD│MSR│
|
||||
* │MB1│MB4│lwr│⎇ │rse│ │ │ │⎇ │ ⇧)│MSL│MSD│MSR│
|
||||
* └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘
|
||||
MB - mouse buttons
|
||||
MS - mouse directions
|
||||
@ -196,7 +191,7 @@ MS - mouse directions
|
||||
_______, KC_BTN4, _______, _______, _______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R),
|
||||
|
||||
/*
|
||||
raise layer
|
||||
lower layer
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
|
||||
* │ ⎋ │ F1│ F2│ F3│ F4│ F5│ F6│ F7│ F8│ F9│F10│F11│F12│
|
||||
* ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
||||
@ -204,7 +199,7 @@ raise layer
|
||||
* ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
||||
* │ ⇪ │ ă │ ș │ │ │ │ │ │ │ │ │ │ │
|
||||
* ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
||||
* │ │ │ │ │ ç │ │ │ │ │ │ │MWU│ │
|
||||
* │ │ │ │ ç │ ⊄ │ ⊅ │ ∧ │ ∨ │ │ │ │MWU│ │
|
||||
* ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │MWL│MWD│MWR│
|
||||
* └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘
|
||||
@ -217,7 +212,7 @@ raise layer shifted
|
||||
* ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
||||
* │ │ Ă │ Ș │ │ │ │ │ │ │ │ │ │ │
|
||||
* ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
||||
* │ │ │ │ │ Ç │ │ │ │ │ │ │ │ │
|
||||
* │ │ │ │ Ç │ ⊆ │ ⊇ │ ⊼ │ ⊻ │ │ │ │ │ │
|
||||
* ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘
|
||||
@ -245,90 +240,23 @@ adj layer
|
||||
[_ADJ] = LAYOUT_ortho_5x13(
|
||||
RGB_MOD, RGB_RMOD, A(KC_F2), _______, _______, _______, _______, _______, _______, _______, _______, RGB_M_T , RGB_M_SW,
|
||||
RGB_HUI, RGB_HUD , RGB_M_P , _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______ , RGB_M_SN,
|
||||
RGB_SAI, RGB_SAD , RGB_M_B , _______, _______, _______, _______, _______, _______, _______, _______, _______ , RGB_M_K ,
|
||||
RGB_VAI, RGB_VAD , RGB_M_R , _______, _______, _______, _______, _______, _______, _______, _______, _______ , RGB_M_X ,
|
||||
RGB_SAI, RGB_SAD , RGB_M_B , _______, UC_NEXT, _______, _______, _______, _______, _______, _______, _______ , RGB_M_K ,
|
||||
RGB_VAI, RGB_VAD , RGB_M_R , _______, UC_PREV, UC_LINX, UC_WIN, UC_WINC, UC_MAC, UC_EMAC, _______, _______ , RGB_M_X ,
|
||||
RGB_TOG, _______ , _______ , _______, _______, _______, _______, _______, _______, _______, _______, RGB_M_TW, RGB_M_G),
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
bool led_update_user(led_t led_state) {
|
||||
// Disable the default LED update code, so that lock LEDs could be reused to show layer status.
|
||||
return false;
|
||||
}
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
|
||||
toggle_leds();
|
||||
|
||||
}
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t* record) {
|
||||
|
||||
#ifdef CONSOLE_ENABLE
|
||||
|
||||
uprintf("KL: kc: 0x%04X, col: %u, row: %u, pressed: %b, time: %u, interrupt: %b, count: %u\n", keycode, record->event.key.col, record->event.key.row, record->event.pressed, record->event.time, record->tap.interrupted, record->tap.count);
|
||||
|
||||
#if defined(ENCODER_MAP_ENABLE)
|
||||
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
|
||||
[_QW] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)},
|
||||
#if defined(RGBLIGHT_ENABLE)
|
||||
[_LWR] = {ENCODER_CCW_CW(RGB_HUD, RGB_HUI)},
|
||||
[_RSE] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI)},
|
||||
[_ADJ] = {ENCODER_CCW_CW(RGB_RMOD, RGB_MOD)},
|
||||
#else
|
||||
[_LWR] = {ENCODER_CCW_CW(KC_MNXT, KC_MPRV)},
|
||||
[_RSE] = {ENCODER_CCW_CW(KC_MFFD, KC_MRWD)},
|
||||
[_ADJ] = {ENCODER_CCW_CW(KC_PGDN, KC_PGUP)},
|
||||
#endif
|
||||
|
||||
switch (keycode) {
|
||||
case (TT(_LWR)):
|
||||
if (!record->event.pressed && record->tap.count == TAPPING_TOGGLE) {
|
||||
// This runs before the TT() handler toggles the layer state, so the current layer state is the opposite of the final one after toggle.
|
||||
set_led_toggle(_LWR, !layer_state_is(_LWR));
|
||||
}
|
||||
return true;
|
||||
break;
|
||||
case (TT(_RSE)):
|
||||
if (record->event.pressed && record->tap.count == TAPPING_TOGGLE) {
|
||||
set_led_toggle(_RSE, !layer_state_is(_RSE));
|
||||
}
|
||||
return true;
|
||||
break;
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
|
||||
set_rgb_layers(state);
|
||||
|
||||
};
|
||||
#endif
|
||||
|
||||
return update_tri_layer_state(state, _LWR, _RSE, _ADJ);
|
||||
}
|
||||
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
|
||||
layer_state_t default_layer_state_set_user(layer_state_t state) {
|
||||
|
||||
set_default_rgb_layers(state);
|
||||
return state;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
void keyboard_post_init_user(void) {
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
|
||||
// Enable the LED layers
|
||||
rgblight_layers = my_rgb();
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef OLED_ENABLE
|
||||
|
||||
init_timer();
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef CONSOLE_ENABLE
|
||||
|
||||
debug_enable = true;
|
||||
debug_matrix = true;
|
||||
debug_keyboard = true;
|
||||
|
||||
#endif
|
||||
}
|
||||
|
@ -1 +1,2 @@
|
||||
UNICODEMAP_ENABLE = yes
|
||||
ENCODER_MAP_ENABLE = yes
|
||||
|
@ -1,20 +0,0 @@
|
||||
/*
|
||||
Copyright 2021-2022 Alin M Elena <alinm.elena@gmail.com>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#define TAPPING_TOGGLE 2
|
@ -1,118 +0,0 @@
|
||||
/*
|
||||
Copyright 2021-2022 Alin M Elena <alinm.elena@gmail.com>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
// clang-format off
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[_QW] = LAYOUT_ortho_5x13(
|
||||
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_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_NUHS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT ,
|
||||
SC_LSPO, KC_NUBS, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_UP , KC_SLSH ,
|
||||
KC_LCTL, KC_LGUI, TT(_LWR), KC_LALT, TT(_RSE), KC_SPC, KC_SPC, KC_SPC, KC_RALT, SC_RSPC, KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
[_LWR] = LAYOUT_ortho_5x13(
|
||||
KC_GRV , KC_MUTE, KC_VOLU, KC_VOLD, KC_MPRV, KC_MPLY, KC_MNXT, G(KC_P), KC_SLEP, KC_WAKE, KC_PSCR, KC_DEL , KC_EQL ,
|
||||
KC_BTN3, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ,
|
||||
KC_BTN2, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ,
|
||||
_______, KC_BTN1, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MS_U, _______ ,
|
||||
_______, KC_BTN4, _______, _______, _______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R),
|
||||
|
||||
[_RSE] = LAYOUT_ortho_5x13(
|
||||
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_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_WH_U, _______ ,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_WH_L, KC_WH_D, KC_WH_R),
|
||||
|
||||
[_ADJ] = LAYOUT_ortho_5x13(
|
||||
RGB_MOD, RGB_RMOD, A(KC_F2), _______, _______, _______, _______, _______, _______, _______, _______, RGB_M_T , RGB_M_SW,
|
||||
RGB_HUI, RGB_HUD , RGB_M_P , _______, QK_BOOT , _______, _______, _______, _______, _______, _______, _______ , RGB_M_SN,
|
||||
RGB_SAI, RGB_SAD , RGB_M_B , _______, _______, _______, _______, _______, _______, _______, _______, _______ , RGB_M_K ,
|
||||
RGB_VAI, RGB_VAD , RGB_M_R , _______, _______, _______, _______, _______, _______, _______, _______, _______ , RGB_M_X ,
|
||||
RGB_TOG, _______ , _______ , _______, _______, _______, _______, _______, _______, _______, _______, RGB_M_TW, RGB_M_G),
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
bool led_update_user(led_t led_state) {
|
||||
// Disable the default LED update code, so that lock LEDs could be reused to show layer status.
|
||||
return false;
|
||||
}
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
|
||||
toggle_leds();
|
||||
|
||||
}
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t* record) {
|
||||
switch (keycode) {
|
||||
case (TT(_LWR)):
|
||||
if (!record->event.pressed && record->tap.count == TAPPING_TOGGLE) {
|
||||
// This runs before the TT() handler toggles the layer state, so the current layer state is the opposite of the final one after toggle.
|
||||
set_led_toggle(_LWR, !layer_state_is(_LWR));
|
||||
}
|
||||
return true;
|
||||
break;
|
||||
case (TT(_RSE)):
|
||||
if (record->event.pressed && record->tap.count == TAPPING_TOGGLE) {
|
||||
set_led_toggle(_RSE, !layer_state_is(_RSE));
|
||||
}
|
||||
return true;
|
||||
break;
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
|
||||
set_rgb_layers(state);
|
||||
|
||||
#endif
|
||||
|
||||
return update_tri_layer_state(state, _LWR, _RSE, _ADJ);
|
||||
}
|
||||
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
|
||||
layer_state_t default_layer_state_set_user(layer_state_t state) {
|
||||
set_default_rgb_layers(state);
|
||||
return state;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
void keyboard_post_init_user(void) {
|
||||
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
|
||||
// Enable the LED layers
|
||||
rgblight_layers = my_rgb();
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef OLED_ENABLE
|
||||
|
||||
init_timer();
|
||||
|
||||
#endif
|
||||
}
|
@ -1 +0,0 @@
|
||||
VIA_ENABLE = yes
|
@ -4,228 +4,13 @@
|
||||
#include "progmem.h"
|
||||
|
||||
static const unsigned char PROGMEM font[] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00,
|
||||
0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00,
|
||||
0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00,
|
||||
0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00,
|
||||
0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00,
|
||||
0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00,
|
||||
0x00, 0x18, 0x3C, 0x18, 0x00, 0x00,
|
||||
0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00,
|
||||
0x00, 0x18, 0x24, 0x18, 0x00, 0x00,
|
||||
0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00,
|
||||
0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00,
|
||||
0x26, 0x29, 0x79, 0x29, 0x26, 0x00,
|
||||
0x40, 0x7F, 0x05, 0x05, 0x07, 0x00,
|
||||
0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00,
|
||||
0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00,
|
||||
0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00,
|
||||
0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00,
|
||||
0x14, 0x22, 0x7F, 0x22, 0x14, 0x00,
|
||||
0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00,
|
||||
0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00,
|
||||
0x00, 0x66, 0x89, 0x95, 0x6A, 0x00,
|
||||
0x60, 0x60, 0x60, 0x60, 0x60, 0x00,
|
||||
0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00,
|
||||
0x08, 0x04, 0x7E, 0x04, 0x08, 0x00,
|
||||
0x10, 0x20, 0x7E, 0x20, 0x10, 0x00,
|
||||
0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00,
|
||||
0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00,
|
||||
0x1E, 0x10, 0x10, 0x10, 0x10, 0x00,
|
||||
0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00,
|
||||
0x30, 0x38, 0x3E, 0x38, 0x30, 0x00,
|
||||
0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x5F, 0x00, 0x00, 0x00,
|
||||
0x00, 0x07, 0x00, 0x07, 0x00, 0x00,
|
||||
0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00,
|
||||
0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00,
|
||||
0x23, 0x13, 0x08, 0x64, 0x62, 0x00,
|
||||
0x36, 0x49, 0x56, 0x20, 0x50, 0x00,
|
||||
0x00, 0x08, 0x07, 0x03, 0x00, 0x00,
|
||||
0x00, 0x1C, 0x22, 0x41, 0x00, 0x00,
|
||||
0x00, 0x41, 0x22, 0x1C, 0x00, 0x00,
|
||||
0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00,
|
||||
0x08, 0x08, 0x3E, 0x08, 0x08, 0x00,
|
||||
0x00, 0x80, 0x70, 0x30, 0x00, 0x00,
|
||||
0x08, 0x08, 0x08, 0x08, 0x08, 0x00,
|
||||
0x00, 0x00, 0x60, 0x60, 0x00, 0x00,
|
||||
0x20, 0x10, 0x08, 0x04, 0x02, 0x00,
|
||||
0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00,
|
||||
0x00, 0x42, 0x7F, 0x40, 0x00, 0x00,
|
||||
0x72, 0x49, 0x49, 0x49, 0x46, 0x00,
|
||||
0x21, 0x41, 0x49, 0x4D, 0x33, 0x00,
|
||||
0x18, 0x14, 0x12, 0x7F, 0x10, 0x00,
|
||||
0x27, 0x45, 0x45, 0x45, 0x39, 0x00,
|
||||
0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00,
|
||||
0x41, 0x21, 0x11, 0x09, 0x07, 0x00,
|
||||
0x36, 0x49, 0x49, 0x49, 0x36, 0x00,
|
||||
0x46, 0x49, 0x49, 0x29, 0x1E, 0x00,
|
||||
0x00, 0x00, 0x14, 0x00, 0x00, 0x00,
|
||||
0x00, 0x40, 0x34, 0x00, 0x00, 0x00,
|
||||
0x00, 0x08, 0x14, 0x22, 0x41, 0x00,
|
||||
0x14, 0x14, 0x14, 0x14, 0x14, 0x00,
|
||||
0x00, 0x41, 0x22, 0x14, 0x08, 0x00,
|
||||
0x02, 0x01, 0x59, 0x09, 0x06, 0x00,
|
||||
0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00,
|
||||
0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00,
|
||||
0x7F, 0x49, 0x49, 0x49, 0x36, 0x00,
|
||||
0x3E, 0x41, 0x41, 0x41, 0x22, 0x00,
|
||||
0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00,
|
||||
0x7F, 0x49, 0x49, 0x49, 0x41, 0x00,
|
||||
0x7F, 0x09, 0x09, 0x09, 0x01, 0x00,
|
||||
0x3E, 0x41, 0x41, 0x51, 0x73, 0x00,
|
||||
0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00,
|
||||
0x00, 0x41, 0x7F, 0x41, 0x00, 0x00,
|
||||
0x20, 0x40, 0x41, 0x3F, 0x01, 0x00,
|
||||
0x7F, 0x08, 0x14, 0x22, 0x41, 0x00,
|
||||
0x7F, 0x40, 0x40, 0x40, 0x40, 0x00,
|
||||
0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00,
|
||||
0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00,
|
||||
0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00,
|
||||
0x7F, 0x09, 0x09, 0x09, 0x06, 0x00,
|
||||
0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00,
|
||||
0x7F, 0x09, 0x19, 0x29, 0x46, 0x00,
|
||||
0x26, 0x49, 0x49, 0x49, 0x32, 0x00,
|
||||
0x03, 0x01, 0x7F, 0x01, 0x03, 0x00,
|
||||
0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00,
|
||||
0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00,
|
||||
0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00,
|
||||
0x63, 0x14, 0x08, 0x14, 0x63, 0x00,
|
||||
0x03, 0x04, 0x78, 0x04, 0x03, 0x00,
|
||||
0x61, 0x59, 0x49, 0x4D, 0x43, 0x00,
|
||||
0x00, 0x7F, 0x41, 0x41, 0x41, 0x00,
|
||||
0x02, 0x04, 0x08, 0x10, 0x20, 0x00,
|
||||
0x00, 0x41, 0x41, 0x41, 0x7F, 0x00,
|
||||
0x04, 0x02, 0x01, 0x02, 0x04, 0x00,
|
||||
0x40, 0x40, 0x40, 0x40, 0x40, 0x00,
|
||||
0x00, 0x03, 0x07, 0x08, 0x00, 0x00,
|
||||
0x20, 0x54, 0x54, 0x78, 0x40, 0x00,
|
||||
0x7F, 0x28, 0x44, 0x44, 0x38, 0x00,
|
||||
0x38, 0x44, 0x44, 0x44, 0x28, 0x00,
|
||||
0x38, 0x44, 0x44, 0x28, 0x7F, 0x00,
|
||||
0x38, 0x54, 0x54, 0x54, 0x18, 0x00,
|
||||
0x00, 0x08, 0x7E, 0x09, 0x02, 0x00,
|
||||
0x18, 0x24, 0x24, 0x1C, 0x78, 0x00,
|
||||
0x7F, 0x08, 0x04, 0x04, 0x78, 0x00,
|
||||
0x00, 0x44, 0x7D, 0x40, 0x00, 0x00,
|
||||
0x20, 0x40, 0x40, 0x3D, 0x00, 0x00,
|
||||
0x7F, 0x10, 0x28, 0x44, 0x00, 0x00,
|
||||
0x00, 0x41, 0x7F, 0x40, 0x00, 0x00,
|
||||
0x7C, 0x04, 0x78, 0x04, 0x78, 0x00,
|
||||
0x7C, 0x08, 0x04, 0x04, 0x78, 0x00,
|
||||
0x38, 0x44, 0x44, 0x44, 0x38, 0x00,
|
||||
0x7C, 0x18, 0x24, 0x24, 0x18, 0x00,
|
||||
0x18, 0x24, 0x24, 0x18, 0x7C, 0x00,
|
||||
0x7C, 0x08, 0x04, 0x04, 0x08, 0x00,
|
||||
0x48, 0x54, 0x54, 0x54, 0x24, 0x00,
|
||||
0x04, 0x04, 0x3F, 0x44, 0x24, 0x00,
|
||||
0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00,
|
||||
0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00,
|
||||
0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00,
|
||||
0x44, 0x28, 0x10, 0x28, 0x44, 0x00,
|
||||
0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00,
|
||||
0x44, 0x64, 0x54, 0x4C, 0x44, 0x00,
|
||||
0x00, 0x08, 0x36, 0x41, 0x00, 0x00,
|
||||
0x00, 0x00, 0x77, 0x00, 0x00, 0x00,
|
||||
0x00, 0x41, 0x36, 0x08, 0x00, 0x00,
|
||||
0x02, 0x01, 0x02, 0x04, 0x02, 0x00,
|
||||
0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xE0, 0x18, 0x02,
|
||||
0x00, 0x3C, 0x1E, 0x06, 0x0E, 0x0A,
|
||||
0x1A, 0x0E, 0x26, 0xFF, 0xBF, 0x0D,
|
||||
0x00, 0x80, 0x80, 0x81, 0xFF, 0xFE,
|
||||
0xF8, 0x01, 0x01, 0x03, 0x03, 0x03,
|
||||
0x03, 0x05, 0x05, 0x02, 0x02, 0x0A,
|
||||
0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A,
|
||||
0x0C, 0x04, 0x10, 0x18, 0x20, 0xC0,
|
||||
0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xD0, 0x58, 0x78,
|
||||
0x68, 0x2C, 0x24, 0x34, 0xF4, 0xF4,
|
||||
0x3C, 0x3C, 0xFC, 0xF8, 0xF8, 0x70,
|
||||
0xF0, 0xE0, 0xE0, 0xC0, 0xC0, 0x80,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0xC0, 0x7C, 0x07, 0x80, 0xE0,
|
||||
0x60, 0x64, 0xE2, 0x60, 0x10, 0x10,
|
||||
0x20, 0x22, 0x12, 0x17, 0x3F, 0x0B,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
|
||||
0x6F, 0xFC, 0xE0, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x40,
|
||||
0x60, 0x60, 0x70, 0x70, 0xF0, 0xF0,
|
||||
0xD0, 0xD0, 0xD0, 0xD0, 0x50, 0x50,
|
||||
0x50, 0x70, 0x78, 0x78, 0x78, 0x7C,
|
||||
0x7F, 0x7D, 0x7C, 0x5E, 0x4F, 0x44,
|
||||
0x40, 0x40, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x38, 0x30, 0x30, 0x30, 0x30,
|
||||
0x30, 0x30, 0x58, 0x46, 0x47, 0x41,
|
||||
0x41, 0x01, 0x01, 0x03, 0x03, 0x42,
|
||||
0x42, 0x42, 0x46, 0x46, 0x46, 0x46,
|
||||
0x42, 0x43, 0x43, 0x73, 0x77, 0x72,
|
||||
0x70, 0x60, 0x60, 0x60, 0x60, 0x60,
|
||||
0x60, 0x61, 0x67, 0x6F, 0x7E, 0x78,
|
||||
0x78, 0x70, 0x70, 0x70, 0x70, 0x70,
|
||||
0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
|
||||
0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
|
||||
0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
|
||||
0x40, 0x40, 0x40, 0x48, 0x58, 0x58,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00, 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00, 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00, 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00, 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, 0x00, 0x18, 0x24, 0x18, 0x00, 0x00, 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00, 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00, 0x26, 0x29, 0x79, 0x29, 0x26, 0x00, 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00, 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00, 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00, 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00, 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00, 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00, 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00, 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00, 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00, 0x08, 0x04, 0x7E, 0x04, 0x08, 0x00,
|
||||
0x10, 0x20, 0x7E, 0x20, 0x10, 0x00, 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00, 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00, 0x1E, 0x10, 0x10, 0x10, 0x10, 0x00, 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00, 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00, 0x23, 0x13, 0x08, 0x64, 0x62, 0x00, 0x36, 0x49, 0x56, 0x20, 0x50, 0x00, 0x00, 0x08, 0x07, 0x03, 0x00, 0x00, 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, 0x00, 0x80, 0x70, 0x30, 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00,
|
||||
0x72, 0x49, 0x49, 0x49, 0x46, 0x00, 0x21, 0x41, 0x49, 0x4D, 0x33, 0x00, 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00, 0x27, 0x45, 0x45, 0x45, 0x39, 0x00, 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00, 0x41, 0x21, 0x11, 0x09, 0x07, 0x00, 0x36, 0x49, 0x49, 0x49, 0x36, 0x00, 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x40, 0x34, 0x00, 0x00, 0x00, 0x00, 0x08, 0x14, 0x22, 0x41, 0x00, 0x14, 0x14, 0x14, 0x14, 0x14, 0x00, 0x00, 0x41, 0x22, 0x14, 0x08, 0x00, 0x02, 0x01, 0x59, 0x09, 0x06, 0x00, 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00, 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00, 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00, 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00, 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00, 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00, 0x7F, 0x09, 0x09, 0x09, 0x01, 0x00, 0x3E, 0x41, 0x41, 0x51, 0x73, 0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, 0x00, 0x41, 0x7F, 0x41, 0x00, 0x00, 0x20, 0x40, 0x41, 0x3F, 0x01, 0x00,
|
||||
0x7F, 0x08, 0x14, 0x22, 0x41, 0x00, 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00, 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00, 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00, 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00, 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00, 0x26, 0x49, 0x49, 0x49, 0x32, 0x00, 0x03, 0x01, 0x7F, 0x01, 0x03, 0x00, 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00, 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00, 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00, 0x63, 0x14, 0x08, 0x14, 0x63, 0x00, 0x03, 0x04, 0x78, 0x04, 0x03, 0x00, 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00, 0x00, 0x7F, 0x41, 0x41, 0x41, 0x00, 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, 0x00, 0x41, 0x41, 0x41, 0x7F, 0x00, 0x04, 0x02, 0x01, 0x02, 0x04, 0x00, 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, 0x00, 0x03, 0x07, 0x08, 0x00, 0x00, 0x20, 0x54, 0x54, 0x78, 0x40, 0x00, 0x7F, 0x28, 0x44, 0x44, 0x38, 0x00, 0x38, 0x44, 0x44, 0x44, 0x28, 0x00,
|
||||
0x38, 0x44, 0x44, 0x28, 0x7F, 0x00, 0x38, 0x54, 0x54, 0x54, 0x18, 0x00, 0x00, 0x08, 0x7E, 0x09, 0x02, 0x00, 0x18, 0x24, 0x24, 0x1C, 0x78, 0x00, 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00, 0x00, 0x44, 0x7D, 0x40, 0x00, 0x00, 0x20, 0x40, 0x40, 0x3D, 0x00, 0x00, 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00, 0x00, 0x41, 0x7F, 0x40, 0x00, 0x00, 0x7C, 0x04, 0x78, 0x04, 0x78, 0x00, 0x7C, 0x08, 0x04, 0x04, 0x78, 0x00, 0x38, 0x44, 0x44, 0x44, 0x38, 0x00, 0x7C, 0x18, 0x24, 0x24, 0x18, 0x00, 0x18, 0x24, 0x24, 0x18, 0x7C, 0x00, 0x7C, 0x08, 0x04, 0x04, 0x08, 0x00, 0x48, 0x54, 0x54, 0x54, 0x24, 0x00, 0x04, 0x04, 0x3F, 0x44, 0x24, 0x00, 0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00, 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00, 0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00, 0x44, 0x28, 0x10, 0x28, 0x44, 0x00, 0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00, 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, 0x00, 0x08, 0x36, 0x41, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00,
|
||||
0x00, 0x41, 0x36, 0x08, 0x00, 0x00, 0x02, 0x01, 0x02, 0x04, 0x02, 0x00, 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x18, 0x02, 0x00, 0x3C, 0x1E, 0x06, 0x0E, 0x0A, 0x1A, 0x0E, 0x26, 0xFF, 0xBF, 0x0D, 0x00, 0x80, 0x80, 0x81, 0xFF, 0xFE, 0xF8, 0x01, 0x01, 0x03, 0x03, 0x03, 0x03, 0x05, 0x05, 0x02, 0x02, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0C, 0x04, 0x10, 0x18, 0x20, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0, 0x58, 0x78, 0x68, 0x2C, 0x24, 0x34, 0xF4, 0xF4, 0x3C, 0x3C, 0xFC, 0xF8, 0xF8, 0x70, 0xF0, 0xE0, 0xE0, 0xC0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x7C, 0x07, 0x80, 0xE0, 0x60, 0x64, 0xE2, 0x60, 0x10, 0x10, 0x20, 0x22, 0x12, 0x17, 0x3F, 0x0B, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x6F, 0xFC, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x60, 0x60, 0x70, 0x70, 0xF0, 0xF0, 0xD0, 0xD0, 0xD0, 0xD0, 0x50, 0x50, 0x50, 0x70, 0x78, 0x78, 0x78, 0x7C, 0x7F, 0x7D, 0x7C, 0x5E, 0x4F, 0x44, 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x30, 0x30, 0x30, 0x30,
|
||||
0x30, 0x30, 0x58, 0x46, 0x47, 0x41, 0x41, 0x01, 0x01, 0x03, 0x03, 0x42, 0x42, 0x42, 0x46, 0x46, 0x46, 0x46, 0x42, 0x43, 0x43, 0x73, 0x77, 0x72, 0x70, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x61, 0x67, 0x6F, 0x7E, 0x78, 0x78, 0x70, 0x70, 0x70, 0x70, 0x70, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x40, 0x40, 0x40, 0x48, 0x58, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
|
@ -1,139 +1,74 @@
|
||||
/*
|
||||
Copyright 2021-2022 Alin M Elena <alinm.elena@gmail.com>
|
||||
// Copyright 2020-2023 alin m elena (@alinelena)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
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 "m65.h"
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
// let us assume we start with both layers off
|
||||
static bool toggle_lwr = false;
|
||||
static bool toggle_rse = false;
|
||||
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
#if defined(RGBLIGHT_ENABLE)
|
||||
|
||||
const rgblight_segment_t PROGMEM my_qwerty_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, RGBLED_NUM, HSV_PURPLE});
|
||||
const rgblight_segment_t PROGMEM my_lwr_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, RGBLED_NUM, HSV_CYAN});
|
||||
const rgblight_segment_t PROGMEM my_rse_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, RGBLED_NUM, HSV_RED});
|
||||
const rgblight_segment_t PROGMEM my_adj_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, RGBLED_NUM, HSV_GREEN});
|
||||
const rgblight_segment_t PROGMEM my_qwerty_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, RGBLED_NUM, HSV_OFF});
|
||||
const rgblight_segment_t PROGMEM my_lwr_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, RGBLED_NUM, HSV_AZURE});
|
||||
const rgblight_segment_t PROGMEM my_rse_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, RGBLED_NUM, HSV_CORAL});
|
||||
const rgblight_segment_t PROGMEM my_adj_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, RGBLED_NUM, HSV_RED});
|
||||
|
||||
const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST(my_qwerty_layer, my_lwr_layer, my_rse_layer, my_adj_layer);
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef OLED_ENABLE
|
||||
|
||||
static uint32_t oled_logo_timer = 0;
|
||||
static bool clear_logo = true;
|
||||
static const char PROGMEM m65_logo[] = {
|
||||
0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5,
|
||||
0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94,
|
||||
0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4,
|
||||
0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4,
|
||||
0};
|
||||
|
||||
#if defined(OLED_ENABLE)
|
||||
static uint32_t oled_logo_timer = 0;
|
||||
static bool clear_logo = true;
|
||||
static const char PROGMEM m65_logo[] = {0x92, 0x92, 0x93, 0x94, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x92, 0x92, 0x93, 0x94, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB2, 0x92, 0xB3, 0xB4, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0};
|
||||
#endif
|
||||
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
|
||||
void set_rgb_layers(layer_state_t state){
|
||||
#if defined(RGBLIGHT_ENABLE)
|
||||
|
||||
void set_rgb_layers(layer_state_t state) {
|
||||
rgblight_set_layer_state(0, layer_state_cmp(state, _QW));
|
||||
rgblight_set_layer_state(1, layer_state_cmp(state, _LWR));
|
||||
rgblight_set_layer_state(2, layer_state_cmp(state, _RSE));
|
||||
rgblight_set_layer_state(3, layer_state_cmp(state, _ADJ));
|
||||
|
||||
}
|
||||
|
||||
void set_default_rgb_layers(layer_state_t state){
|
||||
void set_default_rgb_layers(layer_state_t state) {
|
||||
rgblight_set_layer_state(0, layer_state_cmp(state, _QW));
|
||||
}
|
||||
|
||||
const rgblight_segment_t * const* my_rgb(void){
|
||||
const rgblight_segment_t* const* my_rgb(void) {
|
||||
return my_rgb_layers;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
void set_led_toggle(const uint8_t layer, const bool state){
|
||||
|
||||
void set_led_toggle(const uint8_t layer, const bool state) {
|
||||
switch (layer) {
|
||||
case _LWR:
|
||||
toggle_lwr = state;
|
||||
break;
|
||||
toggle_lwr = state;
|
||||
break;
|
||||
case _RSE:
|
||||
toggle_rse = state;
|
||||
break;
|
||||
toggle_rse = state;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void toggle_leds(void){
|
||||
|
||||
void toggle_leds(const bool toggle_lwr, const bool toggle_rse) {
|
||||
led_lwr(toggle_lwr);
|
||||
led_rse(toggle_rse);
|
||||
led_t led_state = host_keyboard_led_state();
|
||||
led_caps(led_state.caps_lock);
|
||||
if (layer_state_is(_ADJ)) {
|
||||
led_lwr(true);
|
||||
led_rse(true);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#ifdef ENCODER_ENABLE
|
||||
#if defined(OLED_ENABLE)
|
||||
|
||||
# define MEDIA_KEY_DELAY 10
|
||||
|
||||
void my_encoders(const uint8_t index, const bool clockwise) {
|
||||
if (index == 0) { /* First encoder */
|
||||
if (IS_LAYER_ON(_LWR)) {
|
||||
if (clockwise) {
|
||||
rgblight_decrease_val_noeeprom();
|
||||
} else {
|
||||
rgblight_increase_val_noeeprom();
|
||||
}
|
||||
} else if (IS_LAYER_ON(_RSE)) {
|
||||
if (clockwise) {
|
||||
rgblight_decrease_hue_noeeprom();
|
||||
} else {
|
||||
rgblight_increase_hue_noeeprom();
|
||||
}
|
||||
|
||||
} else {
|
||||
if (clockwise) {
|
||||
tap_code_delay(KC_VOLD, MEDIA_KEY_DELAY);
|
||||
} else {
|
||||
tap_code_delay(KC_VOLU, MEDIA_KEY_DELAY);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool encoder_update_kb(uint8_t index, bool clockwise) {
|
||||
if (!encoder_update_user(index, clockwise)) { return false; }
|
||||
my_encoders(index, clockwise);
|
||||
return false;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef OLED_ENABLE
|
||||
|
||||
void init_timer(void){
|
||||
oled_logo_timer = timer_read32();
|
||||
void init_timer(void) {
|
||||
oled_logo_timer = timer_read32();
|
||||
};
|
||||
|
||||
void user_oled_magic(void) {
|
||||
@ -163,11 +98,38 @@ void user_oled_magic(void) {
|
||||
oled_write_P(led_state.num_lock ? PSTR("Lower ") : PSTR(" "), false);
|
||||
oled_write_P(led_state.scroll_lock ? PSTR("Raise ") : PSTR(" "), false);
|
||||
oled_write_P(led_state.caps_lock ? PSTR("CapsLock ") : PSTR(" "), false);
|
||||
#ifdef WPM_ENABLE
|
||||
|
||||
# if defined(UNICODE_COMMON_ENABLE)
|
||||
oled_write_P(PSTR("\nunicode: "), false);
|
||||
switch (get_unicode_input_mode()) {
|
||||
case UNICODE_MODE_LINUX:
|
||||
oled_write_P(PSTR("Linux"), false);
|
||||
break;
|
||||
case UNICODE_MODE_MACOS:
|
||||
oled_write_P(PSTR("apple"), false);
|
||||
break;
|
||||
case UNICODE_MODE_WINDOWS:
|
||||
oled_write_P(PSTR("windows"), false);
|
||||
break;
|
||||
case UNICODE_MODE_WINCOMPOSE:
|
||||
oled_write_P(PSTR("windows c"), false);
|
||||
break;
|
||||
case UNICODE_MODE_BSD:
|
||||
oled_write_P(PSTR("bsd"), false);
|
||||
break;
|
||||
case UNICODE_MODE_EMACS:
|
||||
oled_write_P(PSTR("emacs"), false);
|
||||
break;
|
||||
default:
|
||||
oled_write_ln_P(PSTR("not supported"), false);
|
||||
}
|
||||
# endif
|
||||
|
||||
# if defined(WPM_ENABLE)
|
||||
oled_write_P(PSTR("\nwpm: "), false);
|
||||
uint8_t wpm = get_current_wpm();
|
||||
oled_write_P(wpm != 0 ? get_u8_str(wpm,' ') : PSTR(" "), false);
|
||||
#endif
|
||||
oled_write_P(wpm != 0 ? get_u8_str(wpm, ' ') : PSTR(" "), false);
|
||||
# endif
|
||||
}
|
||||
|
||||
void render_logo(void) {
|
||||
@ -175,13 +137,13 @@ void render_logo(void) {
|
||||
}
|
||||
|
||||
void clear_screen(void) {
|
||||
if (clear_logo){
|
||||
for (uint8_t i = 0; i < OLED_DISPLAY_HEIGHT; ++i) {
|
||||
for (uint8_t j = 0; j < OLED_DISPLAY_WIDTH; ++j) {
|
||||
oled_write_raw_byte(0x0, i*OLED_DISPLAY_WIDTH + j);
|
||||
if (clear_logo) {
|
||||
for (uint8_t i = 0; i < OLED_DISPLAY_HEIGHT; ++i) {
|
||||
for (uint8_t j = 0; j < OLED_DISPLAY_WIDTH; ++j) {
|
||||
oled_write_raw_byte(0x0, i * OLED_DISPLAY_WIDTH + j);
|
||||
}
|
||||
}
|
||||
}
|
||||
clear_logo = false;
|
||||
clear_logo = false;
|
||||
}
|
||||
}
|
||||
|
||||
@ -191,14 +153,91 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) {
|
||||
|
||||
# define SHOW_LOGO 5000
|
||||
bool oled_task_kb(void) {
|
||||
if (!oled_task_user()) { return false; }
|
||||
if ((timer_elapsed32(oled_logo_timer) < SHOW_LOGO)){
|
||||
if (!oled_task_user()) {
|
||||
return false;
|
||||
}
|
||||
if ((timer_elapsed32(oled_logo_timer) < SHOW_LOGO)) {
|
||||
render_logo();
|
||||
}else{
|
||||
clear_screen();
|
||||
user_oled_magic();
|
||||
} else {
|
||||
clear_screen();
|
||||
user_oled_magic();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
void matrix_scan_kb(void) {
|
||||
matrix_scan_user();
|
||||
toggle_leds(toggle_lwr, toggle_rse);
|
||||
}
|
||||
|
||||
bool process_record_kb(uint16_t keycode, keyrecord_t* record) {
|
||||
#if defined(CONSOLE_ENABLE)
|
||||
uprintf("KL: kc: 0x%04X, col: %2u, row: %2u, pressed: %u, time: %5u, int: %u, count: %u\n", keycode, record->event.key.col, record->event.key.row, record->event.pressed, record->event.time, record->tap.interrupted, record->tap.count);
|
||||
#endif
|
||||
|
||||
switch (keycode) {
|
||||
case (TT(_LWR)):
|
||||
if (!record->event.pressed && record->tap.count == TAPPING_TOGGLE) {
|
||||
// This runs before the TT() handler toggles the layer state, so the current layer state is the opposite of the final one after toggle.
|
||||
set_led_toggle(_LWR, !layer_state_is(_LWR));
|
||||
}
|
||||
return true;
|
||||
break;
|
||||
case (TT(_RSE)):
|
||||
if (record->event.pressed && record->tap.count == TAPPING_TOGGLE) {
|
||||
set_led_toggle(_RSE, !layer_state_is(_RSE));
|
||||
}
|
||||
return true;
|
||||
break;
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
return process_record_user(keycode, record);
|
||||
}
|
||||
|
||||
layer_state_t layer_state_set_kb(layer_state_t state) {
|
||||
state = layer_state_set_user(state);
|
||||
|
||||
#if defined(RGBLIGHT_ENABLE)
|
||||
|
||||
set_rgb_layers(state);
|
||||
|
||||
#endif
|
||||
|
||||
return update_tri_layer_state(state, _LWR, _RSE, _ADJ);
|
||||
}
|
||||
|
||||
#if defined(RGBLIGHT_ENABLE)
|
||||
|
||||
layer_state_t default_layer_state_set_kb(layer_state_t state) {
|
||||
state = default_layer_state_set_user(state);
|
||||
|
||||
set_default_rgb_layers(state);
|
||||
|
||||
return state;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
void keyboard_post_init_kb(void) {
|
||||
init_lwr_rse_led();
|
||||
|
||||
#if defined(RGBLIGHT_ENABLE)
|
||||
// Enable the LED layers
|
||||
rgblight_layers = my_rgb();
|
||||
#endif
|
||||
|
||||
#if defined(OLED_ENABLE)
|
||||
init_timer();
|
||||
#endif
|
||||
|
||||
#if defined(CONSOLE_ENABLE)
|
||||
debug_enable = true;
|
||||
debug_matrix = true;
|
||||
debug_keyboard = true;
|
||||
#endif
|
||||
|
||||
keyboard_post_init_user();
|
||||
}
|
||||
|
@ -1,154 +1,65 @@
|
||||
/*
|
||||
Copyright 2021-2022 Alin M Elena <alinm.elena@gmail.com>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
// Copyright 2020-2023 alin m elena (@alinelena)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
enum unicode_names {
|
||||
la = 0,
|
||||
lA,
|
||||
lb,
|
||||
lB,
|
||||
lc,
|
||||
lC,
|
||||
ld,
|
||||
lD,
|
||||
le,
|
||||
lE,
|
||||
lf,
|
||||
lF,
|
||||
lg,
|
||||
lG,
|
||||
lh,
|
||||
lH,
|
||||
li,
|
||||
lI,
|
||||
lj,
|
||||
lJ,
|
||||
lk,
|
||||
lK,
|
||||
ll,
|
||||
lL,
|
||||
lm,
|
||||
lM,
|
||||
ln,
|
||||
lN,
|
||||
lo,
|
||||
lO,
|
||||
lp,
|
||||
lP,
|
||||
lq,
|
||||
lQ,
|
||||
lr,
|
||||
lR,
|
||||
ls,
|
||||
lS,
|
||||
lt,
|
||||
lT,
|
||||
lu,
|
||||
lU,
|
||||
lv,
|
||||
lV,
|
||||
lw,
|
||||
lW,
|
||||
lx,
|
||||
lX,
|
||||
ly,
|
||||
lY,
|
||||
lz,
|
||||
lZ,
|
||||
lc1,
|
||||
lC1,
|
||||
lp1,
|
||||
lP1,
|
||||
lq1,
|
||||
lQ1,
|
||||
ll1,
|
||||
lL1,
|
||||
lk1,
|
||||
lK1,
|
||||
ra,
|
||||
rA,
|
||||
ra1,
|
||||
rA1,
|
||||
rc,
|
||||
rC,
|
||||
ri,
|
||||
rI,
|
||||
rs,
|
||||
rS,
|
||||
rt,
|
||||
rT,
|
||||
ro,
|
||||
rO,
|
||||
ra2,
|
||||
rA2,
|
||||
ra3,
|
||||
rA3
|
||||
};
|
||||
#if defined(UNICODEMAP_ENABLE)
|
||||
enum unicode_names { la = 0, lA, lb, lB, lc, lC, ld, lD, le, lE, lf, lF, lg, lG, lh, lH, li, lI, lj, lJ, lk, lK, ll, lL, lm, lM, ln, lN, lo, lO, lp, lP, lq, lQ, lr, lR, ls, lS, lt, lT, lu, lU, lv, lV, lw, lW, lx, lX, ly, lY, lz, lZ, lc1, lC1, lp1, lP1, lq1, lQ1, ll1, lL1, lk1, lK1, lbo1, lbo2, lbc1, lbc2, ls1, ls2, ra, rA, ra1, rA1, rc, rC, ri, rI, rs, rS, rt, rT, ro, rO, ra2, rA2, ra3, rA3, rx, rX, rv, rV, rb, rB, rn, rN };
|
||||
#endif
|
||||
|
||||
enum layer_names { _QW = 0, _LWR, _RSE, _ADJ };
|
||||
|
||||
|
||||
enum layer_names {
|
||||
_QW = 0,
|
||||
_LWR,
|
||||
_RSE,
|
||||
_ADJ
|
||||
};
|
||||
|
||||
#ifdef OLED_ENABLE
|
||||
#if defined(OLED_ENABLE)
|
||||
void user_oled_magic(void);
|
||||
void render_logo(void);
|
||||
void clear_screen(void);
|
||||
void init_timer(void);
|
||||
#endif
|
||||
|
||||
#ifdef ENCODER_ENABLE
|
||||
void my_encoders(const uint8_t, const bool);
|
||||
bool encoder_update_user(uint8_t, bool);
|
||||
#if defined(RGBLIGHT_ENABLE)
|
||||
void set_rgb_layers(layer_state_t);
|
||||
const rgblight_segment_t* const* my_rgb(void);
|
||||
void set_default_rgb_layers(layer_state_t);
|
||||
#endif
|
||||
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
void set_rgb_layers(layer_state_t);
|
||||
const rgblight_segment_t * const* my_rgb(void);
|
||||
void set_default_rgb_layers(layer_state_t);
|
||||
#endif
|
||||
|
||||
|
||||
void toggle_leds(void);
|
||||
void toggle_leds(const bool, const bool);
|
||||
void set_led_toggle(const uint8_t, const bool);
|
||||
|
||||
static inline void init_lwr_rse_led(void) {
|
||||
#if defined(LED_LWR_PIN)
|
||||
setPinOutput(LED_LWR_PIN);
|
||||
writePin(LED_LWR_PIN, false);
|
||||
wait_ms(30);
|
||||
#endif
|
||||
|
||||
#if defined(LED_RSE_PIN)
|
||||
setPinOutput(LED_RSE_PIN);
|
||||
writePin(LED_RSE_PIN, false);
|
||||
wait_ms(30);
|
||||
#endif
|
||||
}
|
||||
|
||||
static inline void led_lwr(const bool on) {
|
||||
#ifdef LED_NUM_LOCK_PIN
|
||||
writePin(LED_NUM_LOCK_PIN, on);
|
||||
#if defined(LED_LWR_PIN)
|
||||
if ((PRODUCT_ID == 0x6064) || (PRODUCT_ID == 0x6065) ||
|
||||
(PRODUCT_ID == 0x6066) || (PRODUCT_ID == 0x6067)) {
|
||||
writePin(LED_LWR_PIN, !on);
|
||||
}else{
|
||||
writePin(LED_LWR_PIN, on);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
static inline void led_rse(const bool on) {
|
||||
#ifdef LED_SCROLL_LOCK_PIN
|
||||
writePin(LED_SCROLL_LOCK_PIN, on);
|
||||
#endif
|
||||
}
|
||||
static inline void led_caps(const bool on) {
|
||||
#ifdef LED_CAPS_LOCK_PIN
|
||||
if ((PRODUCT_ID == 0x6061) && (DEVICE_VER == 0x0002)) {
|
||||
writePin(LED_CAPS_LOCK_PIN, on);
|
||||
} else {
|
||||
writePin(LED_CAPS_LOCK_PIN, !on);
|
||||
#if defined(LED_RSE_PIN)
|
||||
if ((PRODUCT_ID == 0x6064) || (PRODUCT_ID == 0x6065) ||
|
||||
(PRODUCT_ID == 0x6066) || (PRODUCT_ID == 0x6067)) {
|
||||
writePin(LED_RSE_PIN, !on);
|
||||
}else{
|
||||
writePin(LED_RSE_PIN, on);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
@ -7,7 +7,7 @@ A (13x5) ortholinear keyboard that can be hand wired or using a pcb.
|
||||
* Keyboard Maintainer: [Alin Elena](https://github.com/alinelena) ([@drFaustroll on GitLab](https://gitlab.com/drFaustroll))
|
||||
* Hardware Supported: custom pcb [see](https://gitlab.com/m-lego/m65) STM/APM32F103C8T6, aka Black Pill (rev1),
|
||||
GD32F303CCT6 from we act aka Blue Pill Plus (rev2), STM32F401 from we act (rev3,rev4) STM32F411 can also be used just ask
|
||||
* Hardware Availability: [custom how to](https://alin.elena.space/blog/keeblego/)
|
||||
* Hardware Availability: [custom how to](https://mlego.elena.space/m65)
|
||||
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
@ -1,20 +1,7 @@
|
||||
/*
|
||||
Copyright 2021-2022 Alin M Elena <alinm.elena@gmail.com>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
// Copyright 2020-2023 alin m elena (@alinelena)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#define RGBLIGHT_LAYERS
|
||||
#define LED_RSE_PIN B13
|
||||
#define LED_LWR_PIN B12
|
||||
|
@ -1,42 +1,134 @@
|
||||
{
|
||||
"usb": {
|
||||
"pid": "0x6061",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["A10", "A15", "B3", "B4", "B5", "B9", "B8", "B7", "B6", "C15", "A0", "A7", "B10"],
|
||||
"rows": ["B11", "B0", "B1", "A2", "A3"]
|
||||
},
|
||||
"manufacturer": "Alin Elena",
|
||||
"keyboard_name": "mlego/m65 rev1",
|
||||
"maintainer": "alin elena",
|
||||
"bootloader": "stm32duino",
|
||||
"debounce": 5,
|
||||
"diode_direction": "COL2ROW",
|
||||
"encoder": {
|
||||
"rotary": [
|
||||
{"pin_a": "A8", "pin_b": "A9"}
|
||||
]
|
||||
},
|
||||
"features": {
|
||||
"audio": false,
|
||||
"backlight": false,
|
||||
"bootmagic": true,
|
||||
"command": false,
|
||||
"console": false,
|
||||
"encoder": true,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true,
|
||||
"rgblight": true
|
||||
},
|
||||
"indicators": {
|
||||
"caps_lock": "C13",
|
||||
"num_lock": "B12",
|
||||
"scroll_lock": "B13"
|
||||
"on_state": 0
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["A10", "A15", "B3", "B4", "B5", "B9", "B8", "B7", "B6", "C15", "A0", "A7", "B10"],
|
||||
"rows": ["B11", "B0", "B1", "A2", "A3"]
|
||||
},
|
||||
"processor": "STM32F103",
|
||||
"rgblight": {
|
||||
"saturation_steps": 8,
|
||||
"led_count": 20,
|
||||
"animations": {
|
||||
"alternating": true,
|
||||
"breathing": true,
|
||||
"christmas": true,
|
||||
"knight": true,
|
||||
"rainbow_mood": true,
|
||||
"rainbow_swirl": true,
|
||||
"snake": true,
|
||||
"knight": true,
|
||||
"christmas": true,
|
||||
"static_gradient": true,
|
||||
"rgb_test": true,
|
||||
"alternating": true,
|
||||
"snake": true,
|
||||
"static_gradient": true,
|
||||
"twinkle": true
|
||||
}
|
||||
},
|
||||
"hue_steps": 8,
|
||||
"layers": {
|
||||
"enabled": true
|
||||
},
|
||||
"led_count": 20,
|
||||
"saturation_steps": 8
|
||||
},
|
||||
"url": "https://gitlab.com/m-lego/m65",
|
||||
"usb": {
|
||||
"device_version": "0.0.1",
|
||||
"pid": "0x6061",
|
||||
"vid": "0xBABA"
|
||||
},
|
||||
"ws2812": {
|
||||
"pin": "B15"
|
||||
},
|
||||
"processor": "STM32F103",
|
||||
"bootloader": "stm32duino"
|
||||
"layouts": {
|
||||
"LAYOUT_ortho_5x13": {
|
||||
"layout": [
|
||||
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"label": "1", "matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"label": "2", "matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"label": "3", "matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"label": "4", "matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"label": "5", "matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"label": "6", "matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"label": "7", "matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"label": "8", "matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"label": "9", "matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"label": "0", "matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"label": "-", "matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"label": "Backspace", "matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1},
|
||||
{"label": "q", "matrix": [1, 1], "x": 1, "y": 1},
|
||||
{"label": "w", "matrix": [1, 2], "x": 2, "y": 1},
|
||||
{"label": "e", "matrix": [1, 3], "x": 3, "y": 1},
|
||||
{"label": "r", "matrix": [1, 4], "x": 4, "y": 1},
|
||||
{"label": "t", "matrix": [1, 5], "x": 5, "y": 1},
|
||||
{"label": "y", "matrix": [1, 6], "x": 6, "y": 1},
|
||||
{"label": "u", "matrix": [1, 7], "x": 7, "y": 1},
|
||||
{"label": "i", "matrix": [1, 8], "x": 8, "y": 1},
|
||||
{"label": "o", "matrix": [1, 9], "x": 9, "y": 1},
|
||||
{"label": "p", "matrix": [1, 10], "x": 10, "y": 1},
|
||||
{"label": "[", "matrix": [1, 11], "x": 11, "y": 1},
|
||||
{"label": "]", "matrix": [1, 12], "x": 12, "y": 1},
|
||||
{"label": "#", "matrix": [2, 0], "x": 0, "y": 2},
|
||||
{"label": "a", "matrix": [2, 1], "x": 1, "y": 2},
|
||||
{"label": "s", "matrix": [2, 2], "x": 2, "y": 2},
|
||||
{"label": "d", "matrix": [2, 3], "x": 3, "y": 2},
|
||||
{"label": "f", "matrix": [2, 4], "x": 4, "y": 2},
|
||||
{"label": "g", "matrix": [2, 5], "x": 5, "y": 2},
|
||||
{"label": "h", "matrix": [2, 6], "x": 6, "y": 2},
|
||||
{"label": "j", "matrix": [2, 7], "x": 7, "y": 2},
|
||||
{"label": "k", "matrix": [2, 8], "x": 8, "y": 2},
|
||||
{"label": "l", "matrix": [2, 9], "x": 9, "y": 2},
|
||||
{"label": ";", "matrix": [2, 10], "x": 10, "y": 2},
|
||||
{"label": "'", "matrix": [2, 11], "x": 11, "y": 2},
|
||||
{"label": "Enter", "matrix": [2, 12], "x": 12, "y": 2},
|
||||
{"label": "Left Shift", "matrix": [3, 0], "x": 0, "y": 3},
|
||||
{"label": "\\", "matrix": [3, 1], "x": 1, "y": 3},
|
||||
{"label": "z", "matrix": [3, 2], "x": 2, "y": 3},
|
||||
{"label": "x", "matrix": [3, 3], "x": 3, "y": 3},
|
||||
{"label": "c", "matrix": [3, 4], "x": 4, "y": 3},
|
||||
{"label": "v", "matrix": [3, 5], "x": 5, "y": 3},
|
||||
{"label": "b", "matrix": [3, 6], "x": 6, "y": 3},
|
||||
{"label": "n", "matrix": [3, 7], "x": 7, "y": 3},
|
||||
{"label": "m", "matrix": [3, 8], "x": 8, "y": 3},
|
||||
{"label": ",", "matrix": [3, 9], "x": 9, "y": 3},
|
||||
{"label": ".", "matrix": [3, 10], "x": 10, "y": 3},
|
||||
{"label": "Up", "matrix": [3, 11], "x": 11, "y": 3},
|
||||
{"label": "/", "matrix": [3, 12], "x": 12, "y": 3},
|
||||
{"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4},
|
||||
{"label": "Menu", "matrix": [4, 1], "x": 1, "y": 4},
|
||||
{"label": "Lower", "matrix": [4, 2], "x": 2, "y": 4},
|
||||
{"label": "Alt", "matrix": [4, 3], "x": 3, "y": 4},
|
||||
{"label": "Raise", "matrix": [4, 4], "x": 4, "y": 4},
|
||||
{"label": "Space", "matrix": [4, 5], "x": 5, "y": 4},
|
||||
{"label": "Space", "matrix": [4, 6], "x": 6, "y": 4},
|
||||
{"label": "Space", "matrix": [4, 7], "x": 7, "y": 4},
|
||||
{"label": "Alt Gr", "matrix": [4, 8], "x": 8, "y": 4},
|
||||
{"label": "Right Shift", "matrix": [4, 9], "x": 9, "y": 4},
|
||||
{"label": "Left", "matrix": [4, 10], "x": 10, "y": 4},
|
||||
{"label": "Down", "matrix": [4, 11], "x": 11, "y": 4},
|
||||
{"label": "Right", "matrix": [4, 12], "x": 12, "y": 4}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,23 +1,5 @@
|
||||
/* Copyright 2021-2022 QMK
|
||||
*
|
||||
* 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/>.
|
||||
*/
|
||||
|
||||
/*
|
||||
* This file was auto-generated by:
|
||||
* `qmk chibios-confmigrate -i keyboards/m65/rev1/mcuconf.h -r platforms/chibios/STM32_F103_STM32DUINO/configs/mcuconf.h`
|
||||
*/
|
||||
// Copyright 2020-2022 alin m elena (@alinelena)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
|
@ -1,13 +1 @@
|
||||
# Build Options
|
||||
# change yes to no to disable
|
||||
#
|
||||
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||
CONSOLE_ENABLE = no # Console for debug
|
||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
NKRO_ENABLE = yes # Enable N-Key Rollover
|
||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
|
||||
AUDIO_ENABLE = no # Audio output
|
||||
ENCODER_ENABLE = yes # Enable encoder
|
||||
#intentionally blanck
|
||||
|
@ -1,18 +1,5 @@
|
||||
/* Copyright 2021-2022 Alin M Elena <alinm.elena@gmail.com>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
// Copyright 2020-2022 alin m elena (@alinelena)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
#include_next <board.h>
|
||||
|
@ -1,23 +1,10 @@
|
||||
/*
|
||||
Copyright 2021-2022 Alin M Elena <alinm.elena@gmail.com>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
// Copyright 2020-2023 alin m elena (@alinelena)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#define RGBLIGHT_LAYERS
|
||||
#define LED_RSE_PIN B13
|
||||
#define LED_LWR_PIN B12
|
||||
|
||||
#define EEPROM_PAGE_SIZE
|
||||
#define FEE_PAGE_SIZE 0x800
|
||||
|
@ -1,42 +1,133 @@
|
||||
{
|
||||
"usb": {
|
||||
"pid": "0x6061",
|
||||
"device_version": "0.0.2"
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["A10", "A15", "B3", "B4", "B5", "B9", "B8", "B7", "B6", "C15", "A0", "A7", "B10"],
|
||||
"rows": ["B11", "B0", "B1", "A2", "A3"]
|
||||
},
|
||||
"manufacturer": "Alin Elena",
|
||||
"keyboard_name": "mlego/m65 rev2",
|
||||
"maintainer": "alin elena",
|
||||
"bootloader": "stm32duino",
|
||||
"diode_direction": "COL2ROW",
|
||||
"encoder": {
|
||||
"rotary": [
|
||||
{"pin_a": "A8", "pin_b": "A9"}
|
||||
]
|
||||
},
|
||||
"features": {
|
||||
"audio": false,
|
||||
"backlight": false,
|
||||
"bootmagic": true,
|
||||
"command": true,
|
||||
"console": false,
|
||||
"encoder": true,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true,
|
||||
"rgblight": true
|
||||
},
|
||||
"indicators": {
|
||||
"caps_lock": "B2",
|
||||
"num_lock": "B12",
|
||||
"scroll_lock": "B13"
|
||||
"on_state": 0
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["A10", "A15", "B3", "B4", "B5", "B9", "B8", "B7", "B6", "C15", "A0", "A7", "B10"],
|
||||
"rows": ["B11", "B0", "B1", "A2", "A3"]
|
||||
},
|
||||
"processor": "STM32F103",
|
||||
"rgblight": {
|
||||
"saturation_steps": 8,
|
||||
"led_count": 20,
|
||||
"animations": {
|
||||
"alternating": true,
|
||||
"breathing": true,
|
||||
"christmas": true,
|
||||
"knight": true,
|
||||
"rainbow_mood": true,
|
||||
"rainbow_swirl": true,
|
||||
"snake": true,
|
||||
"knight": true,
|
||||
"christmas": true,
|
||||
"static_gradient": true,
|
||||
"rgb_test": true,
|
||||
"alternating": true,
|
||||
"snake": true,
|
||||
"static_gradient": true,
|
||||
"twinkle": true
|
||||
}
|
||||
},
|
||||
"hue_steps": 8,
|
||||
"layers": {
|
||||
"enabled": true
|
||||
},
|
||||
"led_count": 20,
|
||||
"saturation_steps": 8
|
||||
},
|
||||
"url": "https://gitlab.com/m-lego/m65",
|
||||
"usb": {
|
||||
"device_version": "0.0.2",
|
||||
"pid": "0x6061",
|
||||
"vid": "0xBABA"
|
||||
},
|
||||
"ws2812": {
|
||||
"pin": "B15"
|
||||
},
|
||||
"processor": "STM32F103", // GD32F303CCT6
|
||||
"bootloader": "stm32duino"
|
||||
"layouts": {
|
||||
"LAYOUT_ortho_5x13": {
|
||||
"layout": [
|
||||
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"label": "1", "matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"label": "2", "matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"label": "3", "matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"label": "4", "matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"label": "5", "matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"label": "6", "matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"label": "7", "matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"label": "8", "matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"label": "9", "matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"label": "0", "matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"label": "-", "matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"label": "Backspace", "matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1},
|
||||
{"label": "q", "matrix": [1, 1], "x": 1, "y": 1},
|
||||
{"label": "w", "matrix": [1, 2], "x": 2, "y": 1},
|
||||
{"label": "e", "matrix": [1, 3], "x": 3, "y": 1},
|
||||
{"label": "r", "matrix": [1, 4], "x": 4, "y": 1},
|
||||
{"label": "t", "matrix": [1, 5], "x": 5, "y": 1},
|
||||
{"label": "y", "matrix": [1, 6], "x": 6, "y": 1},
|
||||
{"label": "u", "matrix": [1, 7], "x": 7, "y": 1},
|
||||
{"label": "i", "matrix": [1, 8], "x": 8, "y": 1},
|
||||
{"label": "o", "matrix": [1, 9], "x": 9, "y": 1},
|
||||
{"label": "p", "matrix": [1, 10], "x": 10, "y": 1},
|
||||
{"label": "[", "matrix": [1, 11], "x": 11, "y": 1},
|
||||
{"label": "]", "matrix": [1, 12], "x": 12, "y": 1},
|
||||
{"label": "#", "matrix": [2, 0], "x": 0, "y": 2},
|
||||
{"label": "a", "matrix": [2, 1], "x": 1, "y": 2},
|
||||
{"label": "s", "matrix": [2, 2], "x": 2, "y": 2},
|
||||
{"label": "d", "matrix": [2, 3], "x": 3, "y": 2},
|
||||
{"label": "f", "matrix": [2, 4], "x": 4, "y": 2},
|
||||
{"label": "g", "matrix": [2, 5], "x": 5, "y": 2},
|
||||
{"label": "h", "matrix": [2, 6], "x": 6, "y": 2},
|
||||
{"label": "j", "matrix": [2, 7], "x": 7, "y": 2},
|
||||
{"label": "k", "matrix": [2, 8], "x": 8, "y": 2},
|
||||
{"label": "l", "matrix": [2, 9], "x": 9, "y": 2},
|
||||
{"label": ";", "matrix": [2, 10], "x": 10, "y": 2},
|
||||
{"label": "'", "matrix": [2, 11], "x": 11, "y": 2},
|
||||
{"label": "Enter", "matrix": [2, 12], "x": 12, "y": 2},
|
||||
{"label": "Left Shift", "matrix": [3, 0], "x": 0, "y": 3},
|
||||
{"label": "\\", "matrix": [3, 1], "x": 1, "y": 3},
|
||||
{"label": "z", "matrix": [3, 2], "x": 2, "y": 3},
|
||||
{"label": "x", "matrix": [3, 3], "x": 3, "y": 3},
|
||||
{"label": "c", "matrix": [3, 4], "x": 4, "y": 3},
|
||||
{"label": "v", "matrix": [3, 5], "x": 5, "y": 3},
|
||||
{"label": "b", "matrix": [3, 6], "x": 6, "y": 3},
|
||||
{"label": "n", "matrix": [3, 7], "x": 7, "y": 3},
|
||||
{"label": "m", "matrix": [3, 8], "x": 8, "y": 3},
|
||||
{"label": ",", "matrix": [3, 9], "x": 9, "y": 3},
|
||||
{"label": ".", "matrix": [3, 10], "x": 10, "y": 3},
|
||||
{"label": "Up", "matrix": [3, 11], "x": 11, "y": 3},
|
||||
{"label": "/", "matrix": [3, 12], "x": 12, "y": 3},
|
||||
{"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4},
|
||||
{"label": "Menu", "matrix": [4, 1], "x": 1, "y": 4},
|
||||
{"label": "Lower", "matrix": [4, 2], "x": 2, "y": 4},
|
||||
{"label": "Alt", "matrix": [4, 3], "x": 3, "y": 4},
|
||||
{"label": "Raise", "matrix": [4, 4], "x": 4, "y": 4},
|
||||
{"label": "Space", "matrix": [4, 5], "x": 5, "y": 4},
|
||||
{"label": "Space", "matrix": [4, 6], "x": 6, "y": 4},
|
||||
{"label": "Space", "matrix": [4, 7], "x": 7, "y": 4},
|
||||
{"label": "Alt Gr", "matrix": [4, 8], "x": 8, "y": 4},
|
||||
{"label": "Right Shift", "matrix": [4, 9], "x": 9, "y": 4},
|
||||
{"label": "Left", "matrix": [4, 10], "x": 10, "y": 4},
|
||||
{"label": "Down", "matrix": [4, 11], "x": 11, "y": 4},
|
||||
{"label": "Right", "matrix": [4, 12], "x": 12, "y": 4}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,23 +1,5 @@
|
||||
/* Copyright 2021-2022 QMK
|
||||
*
|
||||
* 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/>.
|
||||
*/
|
||||
|
||||
/*
|
||||
* This file was auto-generated by:
|
||||
* `qmk chibios-confmigrate -i keyboards/m65/rev1/mcuconf.h -r platforms/chibios/STM32_F103_STM32DUINO/configs/mcuconf.h`
|
||||
*/
|
||||
// Copyright 2020-2022 alin m elena (@alinelena)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
|
@ -1,13 +1 @@
|
||||
# Build Options
|
||||
# change yes to no to disable
|
||||
#
|
||||
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||
CONSOLE_ENABLE = yes # Console for debug
|
||||
COMMAND_ENABLE = yes # Commands for debug and configuration
|
||||
NKRO_ENABLE = yes # Enable N-Key Rollover
|
||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
|
||||
AUDIO_ENABLE = no # Audio output
|
||||
ENCODER_ENABLE = yes # Enable encoder
|
||||
#blank purpose
|
||||
|
@ -1,20 +1,7 @@
|
||||
/*
|
||||
Copyright 2021-2022 Alin M Elena <alinm.elena@gmail.com>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
// Copyright 2021-2023 alin m elena (@alinelena)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#define RGBLIGHT_LAYERS
|
||||
#define LED_RSE_PIN B13
|
||||
#define LED_LWR_PIN B12
|
||||
|
@ -1,23 +1,5 @@
|
||||
/* Copyright 2020 QMK
|
||||
*
|
||||
* 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/>.
|
||||
*/
|
||||
|
||||
/*
|
||||
* This file was auto-generated by:
|
||||
* `qmk chibios-confmigrate -i keyboards/zvecr/zv48/f401/halconf.h -r platforms/chibios/common/configs/halconf.h`
|
||||
*/
|
||||
// Copyright 2020-2022 alin m elena (@alinelena)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
|
@ -1,43 +1,134 @@
|
||||
{
|
||||
"usb": {
|
||||
"pid": "0x6062",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["A10", "A15", "B3", "B4", "B5", "B9", "B8", "B7", "A1", "A2", "A3", "A4", "B1"],
|
||||
"rows": ["B10", "A5", "A6", "A7", "B0"]
|
||||
},
|
||||
"manufacturer": "Alin Elena",
|
||||
"keyboard_name": "mlego/m65 rev3",
|
||||
"maintainer": "alin elena",
|
||||
"board": "BLACKPILL_STM32_F401",
|
||||
"bootloader": "tinyuf2",
|
||||
"diode_direction": "COL2ROW",
|
||||
"encoder": {
|
||||
"rotary": [
|
||||
{"pin_a": "A0", "pin_b": "B6"}
|
||||
]
|
||||
},
|
||||
"features": {
|
||||
"audio": false,
|
||||
"backlight": false,
|
||||
"bootmagic": true,
|
||||
"command": false,
|
||||
"console": false,
|
||||
"encoder": true,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true,
|
||||
"rgblight": true
|
||||
},
|
||||
"indicators": {
|
||||
"caps_lock": "C13",
|
||||
"num_lock": "B12",
|
||||
"scroll_lock": "B13"
|
||||
"on_state": 0
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["A10", "A15", "B3", "B4", "B5", "B9", "B8", "B7", "A1", "A2", "A3", "A4", "B1"],
|
||||
"rows": ["B10", "A5", "A6", "A7", "B0"]
|
||||
},
|
||||
"processor": "STM32F401",
|
||||
"rgblight": {
|
||||
"saturation_steps": 8,
|
||||
"led_count": 20,
|
||||
"animations": {
|
||||
"alternating": true,
|
||||
"breathing": true,
|
||||
"christmas": true,
|
||||
"knight": true,
|
||||
"rainbow_mood": true,
|
||||
"rainbow_swirl": true,
|
||||
"snake": true,
|
||||
"knight": true,
|
||||
"christmas": true,
|
||||
"static_gradient": true,
|
||||
"rgb_test": true,
|
||||
"alternating": true,
|
||||
"snake": true,
|
||||
"static_gradient": true,
|
||||
"twinkle": true
|
||||
}
|
||||
},
|
||||
"hue_steps": 8,
|
||||
"layers": {
|
||||
"enabled": true
|
||||
},
|
||||
"led_count": 20,
|
||||
"saturation_steps": 8
|
||||
},
|
||||
"url": "https://gitlab.com/m-lego/m65",
|
||||
"usb": {
|
||||
"device_version": "0.0.1",
|
||||
"pid": "0x6062",
|
||||
"vid": "0xBABA"
|
||||
},
|
||||
"ws2812": {
|
||||
"pin": "B15"
|
||||
},
|
||||
"processor": "STM32F401",
|
||||
"bootloader": "tinyuf2",
|
||||
"board": "BLACKPILL_STM32_F401"
|
||||
"layouts": {
|
||||
"LAYOUT_ortho_5x13": {
|
||||
"layout": [
|
||||
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"label": "1", "matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"label": "2", "matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"label": "3", "matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"label": "4", "matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"label": "5", "matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"label": "6", "matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"label": "7", "matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"label": "8", "matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"label": "9", "matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"label": "0", "matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"label": "-", "matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"label": "Backspace", "matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1},
|
||||
{"label": "q", "matrix": [1, 1], "x": 1, "y": 1},
|
||||
{"label": "w", "matrix": [1, 2], "x": 2, "y": 1},
|
||||
{"label": "e", "matrix": [1, 3], "x": 3, "y": 1},
|
||||
{"label": "r", "matrix": [1, 4], "x": 4, "y": 1},
|
||||
{"label": "t", "matrix": [1, 5], "x": 5, "y": 1},
|
||||
{"label": "y", "matrix": [1, 6], "x": 6, "y": 1},
|
||||
{"label": "u", "matrix": [1, 7], "x": 7, "y": 1},
|
||||
{"label": "i", "matrix": [1, 8], "x": 8, "y": 1},
|
||||
{"label": "o", "matrix": [1, 9], "x": 9, "y": 1},
|
||||
{"label": "p", "matrix": [1, 10], "x": 10, "y": 1},
|
||||
{"label": "[", "matrix": [1, 11], "x": 11, "y": 1},
|
||||
{"label": "]", "matrix": [1, 12], "x": 12, "y": 1},
|
||||
{"label": "#", "matrix": [2, 0], "x": 0, "y": 2},
|
||||
{"label": "a", "matrix": [2, 1], "x": 1, "y": 2},
|
||||
{"label": "s", "matrix": [2, 2], "x": 2, "y": 2},
|
||||
{"label": "d", "matrix": [2, 3], "x": 3, "y": 2},
|
||||
{"label": "f", "matrix": [2, 4], "x": 4, "y": 2},
|
||||
{"label": "g", "matrix": [2, 5], "x": 5, "y": 2},
|
||||
{"label": "h", "matrix": [2, 6], "x": 6, "y": 2},
|
||||
{"label": "j", "matrix": [2, 7], "x": 7, "y": 2},
|
||||
{"label": "k", "matrix": [2, 8], "x": 8, "y": 2},
|
||||
{"label": "l", "matrix": [2, 9], "x": 9, "y": 2},
|
||||
{"label": ";", "matrix": [2, 10], "x": 10, "y": 2},
|
||||
{"label": "'", "matrix": [2, 11], "x": 11, "y": 2},
|
||||
{"label": "Enter", "matrix": [2, 12], "x": 12, "y": 2},
|
||||
{"label": "Left Shift", "matrix": [3, 0], "x": 0, "y": 3},
|
||||
{"label": "\\", "matrix": [3, 1], "x": 1, "y": 3},
|
||||
{"label": "z", "matrix": [3, 2], "x": 2, "y": 3},
|
||||
{"label": "x", "matrix": [3, 3], "x": 3, "y": 3},
|
||||
{"label": "c", "matrix": [3, 4], "x": 4, "y": 3},
|
||||
{"label": "v", "matrix": [3, 5], "x": 5, "y": 3},
|
||||
{"label": "b", "matrix": [3, 6], "x": 6, "y": 3},
|
||||
{"label": "n", "matrix": [3, 7], "x": 7, "y": 3},
|
||||
{"label": "m", "matrix": [3, 8], "x": 8, "y": 3},
|
||||
{"label": ",", "matrix": [3, 9], "x": 9, "y": 3},
|
||||
{"label": ".", "matrix": [3, 10], "x": 10, "y": 3},
|
||||
{"label": "Up", "matrix": [3, 11], "x": 11, "y": 3},
|
||||
{"label": "/", "matrix": [3, 12], "x": 12, "y": 3},
|
||||
{"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4},
|
||||
{"label": "Menu", "matrix": [4, 1], "x": 1, "y": 4},
|
||||
{"label": "Lower", "matrix": [4, 2], "x": 2, "y": 4},
|
||||
{"label": "Alt", "matrix": [4, 3], "x": 3, "y": 4},
|
||||
{"label": "Raise", "matrix": [4, 4], "x": 4, "y": 4},
|
||||
{"label": "Space", "matrix": [4, 5], "x": 5, "y": 4},
|
||||
{"label": "Space", "matrix": [4, 6], "x": 6, "y": 4},
|
||||
{"label": "Space", "matrix": [4, 7], "x": 7, "y": 4},
|
||||
{"label": "Alt Gr", "matrix": [4, 8], "x": 8, "y": 4},
|
||||
{"label": "Right Shift", "matrix": [4, 9], "x": 9, "y": 4},
|
||||
{"label": "Left", "matrix": [4, 10], "x": 10, "y": 4},
|
||||
{"label": "Down", "matrix": [4, 11], "x": 11, "y": 4},
|
||||
{"label": "Right", "matrix": [4, 12], "x": 12, "y": 4}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,23 +1,5 @@
|
||||
/* Copyright 2020 QMK
|
||||
*
|
||||
* 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/>.
|
||||
*/
|
||||
|
||||
/*
|
||||
* This file was auto-generated by:
|
||||
* `qmk chibios-confmigrate -i keyboards/zvecr/zv48/f401/mcuconf.h -r platforms/chibios/BLACKPILL_STM32_F401/configs/mcuconf.h`
|
||||
*/
|
||||
// Copyright 2020-2022 alin m elena (@alinelena)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
|
@ -1,13 +1 @@
|
||||
# Build Options
|
||||
# change yes to no to disable
|
||||
#
|
||||
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||
CONSOLE_ENABLE = no # Console for debug
|
||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
NKRO_ENABLE = yes # Enable N-Key Rollover
|
||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
|
||||
AUDIO_ENABLE = no # Audio output
|
||||
ENCODER_ENABLE = yes # Enable encoder
|
||||
#blank on purpose
|
||||
|
@ -1,28 +1,14 @@
|
||||
/*
|
||||
Copyright 2021-2022 Alin M Elena <alinm.elena@gmail.com>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
// Copyright 2021-2023 alin m elena (@alinelena)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#define RGBLIGHT_LAYERS
|
||||
#define LED_RSE_PIN B13
|
||||
#define LED_LWR_PIN B12
|
||||
|
||||
#ifdef OLED_ENABLE
|
||||
# define OLED_DISPLAY_128X32
|
||||
#define I2C1_SCL_PIN B9
|
||||
#define I2C1_SDA_PIN B8
|
||||
#define OLED_BRIGHTNESS 128
|
||||
#define OLED_FONT_H "keyboards/mlego/m65/lib/glcdfont.c"
|
||||
# define I2C1_SCL_PIN B9
|
||||
# define I2C1_SDA_PIN B8
|
||||
# define OLED_BRIGHTNESS 128
|
||||
# define OLED_FONT_H "keyboards/mlego/m65/lib/glcdfont.c"
|
||||
#endif
|
||||
|
@ -1,23 +1,5 @@
|
||||
/* Copyright 2020 QMK
|
||||
*
|
||||
* 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/>.
|
||||
*/
|
||||
|
||||
/*
|
||||
* This file was auto-generated by:
|
||||
* `qmk chibios-confmigrate -i keyboards/zvecr/zv48/f401/halconf.h -r platforms/chibios/common/configs/halconf.h`
|
||||
*/
|
||||
// Copyright 2021-2022 alin m elena (@alinelena)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
|
@ -1,43 +1,136 @@
|
||||
{
|
||||
"usb": {
|
||||
"pid": "0x6062",
|
||||
"device_version": "0.0.2"
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["B14", "A8", "A10", "A15", "B3", "B4", "B5", "B7", "A1", "A2", "A3", "A4", "B1"],
|
||||
"rows": ["B10", "A5", "A6", "A7", "B0"]
|
||||
},
|
||||
"manufacturer": "Alin Elena",
|
||||
"keyboard_name": "mlego/m65 rev4",
|
||||
"maintainer": "alin elena",
|
||||
"board": "BLACKPILL_STM32_F401",
|
||||
"bootloader": "tinyuf2",
|
||||
"diode_direction": "COL2ROW",
|
||||
"encoder": {
|
||||
"rotary": [
|
||||
{"pin_a": "A0", "pin_b": "B6"}
|
||||
]
|
||||
},
|
||||
"features": {
|
||||
"audio": false,
|
||||
"backlight": false,
|
||||
"bootmagic": true,
|
||||
"command": false,
|
||||
"console": true,
|
||||
"encoder": true,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true,
|
||||
"oled": true,
|
||||
"rgblight": true,
|
||||
"wpm": true
|
||||
},
|
||||
"indicators": {
|
||||
"caps_lock": "C13",
|
||||
"num_lock": "B12",
|
||||
"scroll_lock": "B13"
|
||||
"on_state": 0
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["B14", "A8", "A10", "A15", "B3", "B4", "B5", "B7", "A1", "A2", "A3", "A4", "B1"],
|
||||
"rows": ["B10", "A5", "A6", "A7", "B0"]
|
||||
},
|
||||
"processor": "STM32F401",
|
||||
"rgblight": {
|
||||
"saturation_steps": 8,
|
||||
"led_count": 20,
|
||||
"animations": {
|
||||
"alternating": true,
|
||||
"breathing": true,
|
||||
"christmas": true,
|
||||
"knight": true,
|
||||
"rainbow_mood": true,
|
||||
"rainbow_swirl": true,
|
||||
"snake": true,
|
||||
"knight": true,
|
||||
"christmas": true,
|
||||
"static_gradient": true,
|
||||
"rgb_test": true,
|
||||
"alternating": true,
|
||||
"snake": true,
|
||||
"static_gradient": true,
|
||||
"twinkle": true
|
||||
}
|
||||
},
|
||||
"hue_steps": 8,
|
||||
"layers": {
|
||||
"enabled": true
|
||||
},
|
||||
"led_count": 20,
|
||||
"saturation_steps": 8
|
||||
},
|
||||
"url": "https://gitlab.com/m-lego/m65",
|
||||
"usb": {
|
||||
"device_version": "0.0.2",
|
||||
"pid": "0x6062",
|
||||
"vid": "0xBABA"
|
||||
},
|
||||
"ws2812": {
|
||||
"pin": "B15"
|
||||
},
|
||||
"processor": "STM32F401",
|
||||
"bootloader": "tinyuf2",
|
||||
"board": "BLACKPILL_STM32_F401"
|
||||
"layouts": {
|
||||
"LAYOUT_ortho_5x13": {
|
||||
"layout": [
|
||||
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"label": "1", "matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"label": "2", "matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"label": "3", "matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"label": "4", "matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"label": "5", "matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"label": "6", "matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"label": "7", "matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"label": "8", "matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"label": "9", "matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"label": "0", "matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"label": "-", "matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"label": "Backspace", "matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1},
|
||||
{"label": "q", "matrix": [1, 1], "x": 1, "y": 1},
|
||||
{"label": "w", "matrix": [1, 2], "x": 2, "y": 1},
|
||||
{"label": "e", "matrix": [1, 3], "x": 3, "y": 1},
|
||||
{"label": "r", "matrix": [1, 4], "x": 4, "y": 1},
|
||||
{"label": "t", "matrix": [1, 5], "x": 5, "y": 1},
|
||||
{"label": "y", "matrix": [1, 6], "x": 6, "y": 1},
|
||||
{"label": "u", "matrix": [1, 7], "x": 7, "y": 1},
|
||||
{"label": "i", "matrix": [1, 8], "x": 8, "y": 1},
|
||||
{"label": "o", "matrix": [1, 9], "x": 9, "y": 1},
|
||||
{"label": "p", "matrix": [1, 10], "x": 10, "y": 1},
|
||||
{"label": "[", "matrix": [1, 11], "x": 11, "y": 1},
|
||||
{"label": "]", "matrix": [1, 12], "x": 12, "y": 1},
|
||||
{"label": "#", "matrix": [2, 0], "x": 0, "y": 2},
|
||||
{"label": "a", "matrix": [2, 1], "x": 1, "y": 2},
|
||||
{"label": "s", "matrix": [2, 2], "x": 2, "y": 2},
|
||||
{"label": "d", "matrix": [2, 3], "x": 3, "y": 2},
|
||||
{"label": "f", "matrix": [2, 4], "x": 4, "y": 2},
|
||||
{"label": "g", "matrix": [2, 5], "x": 5, "y": 2},
|
||||
{"label": "h", "matrix": [2, 6], "x": 6, "y": 2},
|
||||
{"label": "j", "matrix": [2, 7], "x": 7, "y": 2},
|
||||
{"label": "k", "matrix": [2, 8], "x": 8, "y": 2},
|
||||
{"label": "l", "matrix": [2, 9], "x": 9, "y": 2},
|
||||
{"label": ";", "matrix": [2, 10], "x": 10, "y": 2},
|
||||
{"label": "'", "matrix": [2, 11], "x": 11, "y": 2},
|
||||
{"label": "Enter", "matrix": [2, 12], "x": 12, "y": 2},
|
||||
{"label": "Left Shift", "matrix": [3, 0], "x": 0, "y": 3},
|
||||
{"label": "\\", "matrix": [3, 1], "x": 1, "y": 3},
|
||||
{"label": "z", "matrix": [3, 2], "x": 2, "y": 3},
|
||||
{"label": "x", "matrix": [3, 3], "x": 3, "y": 3},
|
||||
{"label": "c", "matrix": [3, 4], "x": 4, "y": 3},
|
||||
{"label": "v", "matrix": [3, 5], "x": 5, "y": 3},
|
||||
{"label": "b", "matrix": [3, 6], "x": 6, "y": 3},
|
||||
{"label": "n", "matrix": [3, 7], "x": 7, "y": 3},
|
||||
{"label": "m", "matrix": [3, 8], "x": 8, "y": 3},
|
||||
{"label": ",", "matrix": [3, 9], "x": 9, "y": 3},
|
||||
{"label": ".", "matrix": [3, 10], "x": 10, "y": 3},
|
||||
{"label": "Up", "matrix": [3, 11], "x": 11, "y": 3},
|
||||
{"label": "/", "matrix": [3, 12], "x": 12, "y": 3},
|
||||
{"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4},
|
||||
{"label": "Menu", "matrix": [4, 1], "x": 1, "y": 4},
|
||||
{"label": "Lower", "matrix": [4, 2], "x": 2, "y": 4},
|
||||
{"label": "Alt", "matrix": [4, 3], "x": 3, "y": 4},
|
||||
{"label": "Raise", "matrix": [4, 4], "x": 4, "y": 4},
|
||||
{"label": "Space", "matrix": [4, 5], "x": 5, "y": 4},
|
||||
{"label": "Space", "matrix": [4, 6], "x": 6, "y": 4},
|
||||
{"label": "Space", "matrix": [4, 7], "x": 7, "y": 4},
|
||||
{"label": "Alt Gr", "matrix": [4, 8], "x": 8, "y": 4},
|
||||
{"label": "Right Shift", "matrix": [4, 9], "x": 9, "y": 4},
|
||||
{"label": "Left", "matrix": [4, 10], "x": 10, "y": 4},
|
||||
{"label": "Down", "matrix": [4, 11], "x": 11, "y": 4},
|
||||
{"label": "Right", "matrix": [4, 12], "x": 12, "y": 4}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,23 +1,5 @@
|
||||
/* Copyright 2020 QMK
|
||||
*
|
||||
* 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/>.
|
||||
*/
|
||||
|
||||
/*
|
||||
* This file was auto-generated by:
|
||||
* `qmk chibios-confmigrate -i keyboards/zvecr/zv48/f401/mcuconf.h -r platforms/chibios/BLACKPILL_STM32_F401/configs/mcuconf.h`
|
||||
*/
|
||||
// Copyright 2021-2022 alin m elena (@alinelena)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
|
@ -1,15 +0,0 @@
|
||||
# Build Options
|
||||
# change yes to no to disable
|
||||
#
|
||||
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||
CONSOLE_ENABLE = no # Console for debug
|
||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
NKRO_ENABLE = yes # Enable N-Key Rollover
|
||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
|
||||
AUDIO_ENABLE = no # Audio output
|
||||
ENCODER_ENABLE = yes # Enable encoder
|
||||
OLED_ENABLE = yes # Enable OLED
|
||||
WPM_ENABLE = yes # Enable WPM Counter
|
Loading…
Reference in New Issue
Block a user