diff --git a/keyboards/mlego/m48/config.h b/keyboards/mlego/m48/config.h deleted file mode 100644 index 70e1beb43e75..000000000000 --- a/keyboards/mlego/m48/config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* Copyright 2021-2022 alin m elena - * - * 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 . - */ -#pragma once - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -#define LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -#define LOCKING_RESYNC_ENABLE diff --git a/keyboards/mlego/m48/info.json b/keyboards/mlego/m48/info.json deleted file mode 100644 index 2411fc1d5ba9..000000000000 --- a/keyboards/mlego/m48/info.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "keyboard_name": "48", - "manufacturer": "alin elena", - "url": "https://gitlab.com/m-lego/m48", - "maintainer": "alin elena", - "usb": { - "vid": "0xBABA" - }, - "community_layouts": ["ortho_4x12"], - "layouts": { - "LAYOUT_ortho_4x12": { - "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": [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": [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": [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} - ] - } - } -} diff --git a/keyboards/mlego/m48/keymaps/default/config.h b/keyboards/mlego/m48/keymaps/default/config.h index d3e949574ff0..13839c711bf9 100644 --- a/keyboards/mlego/m48/keymaps/default/config.h +++ b/keyboards/mlego/m48/keymaps/default/config.h @@ -1,21 +1,6 @@ -/* -Copyright 2021-2022 Alin M Elena - -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 . -*/ +// Copyright 2021-2022 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, UNICODE_MODE_MACOS, UNICODE_MODE_WINCOMPOSE diff --git a/keyboards/mlego/m48/keymaps/default/keymap.c b/keyboards/mlego/m48/keymaps/default/keymap.c index d07f19352660..15dedd99e1cc 100644 --- a/keyboards/mlego/m48/keymaps/default/keymap.c +++ b/keyboards/mlego/m48/keymaps/default/keymap.c @@ -1,29 +1,8 @@ -/* -Copyright 2021-2022 Alin M Elena - -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 . -*/ +// Copyright 2021-2022 alin m elena (@alinelena) +// SPDX-License-Identifier: GPL-2.0-or-later #include QMK_KEYBOARD_H -enum layer_names { - _QW = 0, - _LWR, - _RSE, - _ADJ -}; - #ifdef RGBLIGHT_ENABLE const rgblight_segment_t PROGMEM my_qwerty_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, RGBLED_NUM, HSV_PURPLE}); @@ -31,7 +10,7 @@ const rgblight_segment_t PROGMEM my_lwr_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 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* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST(my_qwerty_layer, my_lwr_layer, my_rse_layer, my_adj_layer); +const rgblight_segment_t* const PROGMEM my_rgb[] = RGBLIGHT_LAYERS_LIST(my_qwerty_layer, my_lwr_layer, my_rse_layer, my_adj_layer); #endif #define LOWER TT(_LWR) @@ -115,24 +94,27 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; // clang-format on +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [_QW] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, +# ifdef 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 +}; +#endif + // let us assume we start with both layers off bool toggle_lwr = false; bool toggle_rse = false; -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) { - 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); - } + toggle_leds(toggle_lwr, toggle_rse); } bool process_record_user(uint16_t keycode, keyrecord_t* record) { @@ -173,44 +155,10 @@ layer_state_t default_layer_state_set_user(layer_state_t state) { rgblight_set_layer_state(0, layer_state_cmp(state, _QW)); return state; } +#endif void keyboard_post_init_user(void) { - // Enable the LED layers - rgblight_layers = my_rgb_layers; -} +#ifdef RGBLIGHT_ENABLE + rgblight_layers = my_rgb; #endif - -#ifdef ENCODER_ENABLE - -# define MEDIA_KEY_DELAY 10 - -static inline 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_user(uint8_t index, bool clockwise) { - my_encoders(index, clockwise); - return true; -} -#endif diff --git a/keyboards/mlego/m48/keymaps/default/rules.mk b/keyboards/mlego/m48/keymaps/default/rules.mk new file mode 100644 index 000000000000..ee325681483f --- /dev/null +++ b/keyboards/mlego/m48/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/mlego/m48/keymaps/via/config.h b/keyboards/mlego/m48/keymaps/via/config.h deleted file mode 100644 index 637c0a8faf01..000000000000 --- a/keyboards/mlego/m48/keymaps/via/config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* -Copyright 2021-2022 Alin M Elena - -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 . -*/ - -#pragma once - -#define TAPPING_TOGGLE 2 diff --git a/keyboards/mlego/m48/keymaps/via/keymap.c b/keyboards/mlego/m48/keymaps/via/keymap.c deleted file mode 100644 index 91649631dc34..000000000000 --- a/keyboards/mlego/m48/keymaps/via/keymap.c +++ /dev/null @@ -1,216 +0,0 @@ -/* -Copyright 2021-2022 Alin M Elena - -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 . -*/ - -#include QMK_KEYBOARD_H - -enum layer_names { - _QW = 0, - _LWR, - _RSE, - _ADJ -}; - -#ifdef 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* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST(my_qwerty_layer, my_lwr_layer, my_rse_layer, my_adj_layer); -#endif - -#define LOWER TT(_LWR) -#define RAISE TT(_RSE) - -// clang-format off -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* Qwerty - * ,-----------------------------------------------------------------------------------. - * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Esc | A | S | D | F | G | H | J | K | L | ; | " | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | - * `-----------------------------------------------------------------------------------' - */ -[_QW] = LAYOUT_ortho_4x12( - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, - KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , - KC_TRNS,KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT -), - -/* Lower - * ,-----------------------------------------------------------------------------------. - * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | Next | Vol- | Vol+ | Play | - * `-----------------------------------------------------------------------------------' - */ -[_LWR] = LAYOUT_ortho_4x12( - KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, - KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, - _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______, - _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY -), - -/* Raise - * ,-----------------------------------------------------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |Pg Up |Pg Dn | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | Next | Vol- | Vol+ | Play | - * `-----------------------------------------------------------------------------------' - */ -[_RSE] = LAYOUT_ortho_4x12( - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, - KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, - _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, - _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY -), - -/* Adjust (Lower + Raise) - * v------------------------RGB CONTROL--------------------v - * ,-----------------------------------------------------------------------------------. - * | | Reset|Debug | RGB |RGBMOD| HUE+ | HUE- | SAT+ | SAT- |BRGTH+|BRGTH-| Del | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | |MUSmod|Aud on|Audoff|AGnorm|AGswap| | | | | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | | | - * `-----------------------------------------------------------------------------------' - */ -[_ADJ] = LAYOUT_ortho_4x12( - _______, QK_BOOT, DB_TOGG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL , - _______, _______, MU_NEXT, AU_ON, AU_OFF, AG_NORM, AG_SWAP, _______, _______, _______, _______, _______, - _______, AU_PREV, AU_NEXT, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ -) - -}; -// clang-format on - -// let us assume we start with both layers off -bool toggle_lwr = false; -bool toggle_rse = false; - -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) { - 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); - } -} - -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. - toggle_lwr = !layer_state_is(_LWR); - } - return true; - break; - case (TT(_RSE)): - if (record->event.pressed && record->tap.count == TAPPING_TOGGLE) { - 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 - - 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)); - -#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) { - rgblight_set_layer_state(0, layer_state_cmp(state, _QW)); - return state; -} - -void keyboard_post_init_user(void) { - // Enable the LED layers - rgblight_layers = my_rgb_layers; -} -#endif - -#ifdef ENCODER_ENABLE - -# define MEDIA_KEY_DELAY 10 - -static inline 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_user(uint8_t index, bool clockwise) { - my_encoders(index, clockwise); - return true; -} -#endif diff --git a/keyboards/mlego/m48/keymaps/via/rules.mk b/keyboards/mlego/m48/keymaps/via/rules.mk deleted file mode 100644 index 1e5b99807cb7..000000000000 --- a/keyboards/mlego/m48/keymaps/via/rules.mk +++ /dev/null @@ -1 +0,0 @@ -VIA_ENABLE = yes diff --git a/keyboards/mlego/m48/m48.c b/keyboards/mlego/m48/m48.c new file mode 100644 index 000000000000..a429834a6e9d --- /dev/null +++ b/keyboards/mlego/m48/m48.c @@ -0,0 +1,18 @@ +// Copyright 2021-2023 alin m elena (@alinelena) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +void toggle_leds(const bool toggle_lwr, const bool toggle_rse) { + led_lwr(toggle_lwr); + led_rse(toggle_rse); + if (layer_state_is(_ADJ)) { + led_lwr(true); + led_rse(true); + } +} +void keyboard_post_init_kb(void) { + init_lwr_rse_led(); + + keyboard_post_init_user(); +} diff --git a/keyboards/mlego/m48/m48.h b/keyboards/mlego/m48/m48.h index 5acc5c4590bb..b3f0c15cb41a 100644 --- a/keyboards/mlego/m48/m48.h +++ b/keyboards/mlego/m48/m48.h @@ -1,38 +1,36 @@ -/* -Copyright 2021-2022 Alin M Elena +// Copyright 2021-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. +#pragma once -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. +#include "quantum.h" -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ +enum layer_names { _QW = 0, _LWR, _RSE, _ADJ }; -#pragma once +void toggle_leds(const bool, const bool); -#include "quantum.h" +static inline void init_lwr_rse_led(void) { +#ifdef LED_LWR_PIN + setPinOutput(LED_LWR_PIN); + writePin(LED_LWR_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); +#ifdef LED_RSE_PIN + setPinOutput(LED_RSE_PIN); + writePin(LED_RSE_PIN, false); + wait_ms(30); #endif } -static inline void led_rse(const bool on) { -#ifdef LED_SCROLL_LOCK_PIN - writePin(LED_SCROLL_LOCK_PIN, on); +static inline void led_lwr(const bool on) { +#ifdef LED_LWR_PIN + writePin(LED_LWR_PIN, on); #endif } -static inline void led_caps(const bool on) { -#ifdef LED_CAPS_LOCK_PIN - writePin(LED_CAPS_LOCK_PIN, !on); + +static inline void led_rse(const bool on) { +#ifdef LED_RSE_PIN + writePin(LED_RSE_PIN, on); #endif } - diff --git a/keyboards/mlego/m48/rev1/config.h b/keyboards/mlego/m48/rev1/config.h index b872354f60e3..854fe378d050 100644 --- a/keyboards/mlego/m48/rev1/config.h +++ b/keyboards/mlego/m48/rev1/config.h @@ -1,34 +1,6 @@ -/* Copyright 2021-2022 alin m elena - * - * 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 . - */ +// Copyright 2021-2022 alin m elena (@alinelena) +// SPDX-License-Identifier: GPL-2.0-or-later #pragma once -#ifdef RGBLIGHT_ENABLE -#define RGBLIGHT_LAYERS -#define RGB_DI_PIN B15 - -#define RGBLED_NUM 20 -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE - -#endif +#define LED_LWR_PIN B12 +#define LED_RSE_PIN B13 diff --git a/keyboards/mlego/m48/rev1/halconf.h b/keyboards/mlego/m48/rev1/halconf.h index 89815e23b7a0..54c9998f8d46 100644 --- a/keyboards/mlego/m48/rev1/halconf.h +++ b/keyboards/mlego/m48/rev1/halconf.h @@ -1,24 +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 . - */ - -/* - * 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 #define HAL_USE_PWM TRUE diff --git a/keyboards/mlego/m48/rev1/info.json b/keyboards/mlego/m48/rev1/info.json index 1e5a70aa92e8..967b987dd606 100644 --- a/keyboards/mlego/m48/rev1/info.json +++ b/keyboards/mlego/m48/rev1/info.json @@ -1,24 +1,113 @@ { - "usb": { - "pid": "0x6261", - "device_version": "0.0.1" - }, - "matrix_pins": { - "cols": ["A10", "A15", "B3", "B4", "B5", "B7", "B6", "A1", "A2", "A3", "A4", "A5"], - "rows": ["A6", "A7", "B0", "B10"] - }, + "manufacturer": "Alin Elena", + "keyboard_name": "mlego/m48 rev1", + "maintainer": "alin elena", "diode_direction": "COL2ROW", "encoder": { "rotary": [ {"pin_a": "A0", "pin_b": "B8"} ] + }, + "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", "B7", "B6", "A1", "A2", "A3", "A4", "A5"], + "rows": ["A6", "A7", "B0", "B10"] }, "processor": "STM32F401", "bootloader": "tinyuf2", - "board": "BLACKPILL_STM32_F401" + "board": "BLACKPILL_STM32_F401", + "rgblight": { + "animations": { + "alternating": true, + "breathing": true, + "christmas": true, + "knight": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "rgb_test": true, + "snake": true, + "static_gradient": true, + "twinkle": true + }, + "layers": { + "enabled": true + }, + "led_count": 20, + "pin": "B15" + }, + "url": "https://mlego.elena.space/m48", + "usb": { + "device_version": "0.0.1", + "pid": "0x6261", + "vid": "0xBABA" + }, + "layouts": { + "LAYOUT_ortho_4x12": { + "layout": [ + { "label": "Tab" , "matrix": [0, 0] , "x": 0, "y": 0 }, + { "label": "q" , "matrix": [0, 1] , "x": 1 , "y": 0 }, + { "label": "w" , "matrix": [0, 2] , "x": 2 , "y": 0 }, + { "label": "e" , "matrix": [0, 3] , "x": 3 , "y": 0 }, + { "label": "r" , "matrix": [0, 4] , "x": 4 , "y": 0 }, + { "label": "t" , "matrix": [0, 5] , "x": 5 , "y": 0 }, + { "label": "y" , "matrix": [0, 6] , "x": 6 , "y": 0 }, + { "label": "u" , "matrix": [0, 7] , "x": 7 , "y": 0 }, + { "label": "i" , "matrix": [0, 8] , "x": 8 , "y": 0 }, + { "label": "o" , "matrix": [0, 9] , "x": 9 , "y": 0 }, + { "label": "p" , "matrix": [0, 10], "x": 10 , "y": 0 }, + { "label": "Backspace", "matrix": [0, 11], "x": 11 , "y": 0 }, + { "label": "Esc" , "matrix": [1, 0] , "x": 0 , "y": 1 }, + { "label": "a" , "matrix": [1, 1] , "x": 1 , "y": 1 }, + { "label": "s" , "matrix": [1, 2] , "x": 2 , "y": 1 }, + { "label": "d" , "matrix": [1, 3] , "x": 3 , "y": 1 }, + { "label": "f" , "matrix": [1, 4] , "x": 4 , "y": 1 }, + { "label": "g" , "matrix": [1, 5] , "x": 5 , "y": 1 }, + { "label": "h" , "matrix": [1, 6] , "x": 6 , "y": 1 }, + { "label": "j" , "matrix": [1, 7] , "x": 7 , "y": 1 }, + { "label": "k" , "matrix": [1, 8] , "x": 8 , "y": 1 }, + { "label": "l" , "matrix": [1, 9] , "x": 9 , "y": 1 }, + { "label": ";" , "matrix": [1, 10], "x": 10 , "y": 1 }, + { "label": "'" , "matrix": [1, 11], "x": 11 , "y": 1 }, + { "label": "Shift" , "matrix": [2, 0] , "x": 0 , "y": 2 }, + { "label": "z" , "matrix": [2, 1] , "x": 1 , "y": 2 }, + { "label": "x" , "matrix": [2, 2] , "x": 2 , "y": 2 }, + { "label": "c" , "matrix": [2, 3] , "x": 3 , "y": 2 }, + { "label": "v" , "matrix": [2, 4] , "x": 4 , "y": 2 }, + { "label": "b" , "matrix": [2, 5] , "x": 5 , "y": 2 }, + { "label": "n" , "matrix": [2, 6] , "x": 6 , "y": 2 }, + { "label": "m" , "matrix": [2, 7] , "x": 7 , "y": 2 }, + { "label": "," , "matrix": [2, 8] , "x": 8 , "y": 2 }, + { "label": "." , "matrix": [2, 9] , "x": 9 , "y": 2 }, + { "label": "/" , "matrix": [2, 10], "x": 10 , "y": 2 }, + { "label": "Enter" , "matrix": [2, 11], "x": 11 , "y": 2 }, + { "label": "Ctrl" , "matrix": [3, 0] , "x": 0 , "y": 3 }, + { "label": "Fn" , "matrix": [3, 1] , "x": 1 , "y": 3 }, + { "label": "Menu" , "matrix": [3, 2] , "x": 2 , "y": 3 }, + { "label": "Alt" , "matrix": [3, 3] , "x": 3 , "y": 3 }, + { "label": "Lower" , "matrix": [3, 4] , "x": 4 , "y": 3 }, + { "label": "Space" , "matrix": [3, 5] , "x": 5 , "y": 3 }, + { "label": "Space" , "matrix": [3, 6] , "x": 6 , "y": 3 }, + { "label": "Raise" , "matrix": [3, 7] , "x": 7 , "y": 3 }, + { "label": "Left" , "matrix": [3, 8] , "x": 8 , "y": 3 }, + { "label": "Down" , "matrix": [3, 9] , "x": 9 , "y": 3 }, + { "label": "Up" , "matrix": [3, 10], "x": 10 , "y": 3 }, + { "label": "Right" , "matrix": [3, 11], "x": 11 , "y": 3 } + ] + } + } } diff --git a/keyboards/mlego/m48/rev1/mcuconf.h b/keyboards/mlego/m48/rev1/mcuconf.h index 4d90ec07eafb..f54db7f089e7 100644 --- a/keyboards/mlego/m48/rev1/mcuconf.h +++ b/keyboards/mlego/m48/rev1/mcuconf.h @@ -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 . - */ - -/* - * 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 diff --git a/keyboards/mlego/m48/rev1/rules.mk b/keyboards/mlego/m48/rev1/rules.mk index 52fd5e68dc55..8b4c9539892c 100644 --- a/keyboards/mlego/m48/rev1/rules.mk +++ b/keyboards/mlego/m48/rev1/rules.mk @@ -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