~ruther/qmk_firmware

0e18f03b79d9bf5274323d7049c25e16d9250a06 — Domanic Calleja 3 years ago 98a8222
Add Superlyra keyboard + group with Lyra under new directory (#14955)

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
A keyboards/malevolti/lyra/config.h => keyboards/malevolti/lyra/config.h +19 -0
@@ 0,0 1,19 @@
 /* Copyright 2021 Domanic Calleja
  * 
  * 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

#include "config_common.h"


A keyboards/malevolti/lyra/keymaps/default/config.h => keyboards/malevolti/lyra/keymaps/default/config.h +30 -0
@@ 0,0 1,30 @@
/*
This is the c configuration file for the keymap

Copyright 2012 Jun Wako <wakojun@gmail.com>
Copyright 2015 Jack Humbert

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

/* Select hand configuration */

#define MASTER_LEFT
// #define MASTER_RIGHT
// #define EE_HANDS

#define TAPPING_FORCE_HOLD
#define TAPPING_TERM 100

A keyboards/malevolti/lyra/keymaps/default/keymap.c => keyboards/malevolti/lyra/keymaps/default/keymap.c +48 -0
@@ 0,0 1,48 @@
 /* Copyright 2021 Domanic Calleja
  * 
  * 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
//
// Keymaps
//
enum lyra_layers {
    /* _M_XYZ = Mac Os, _W_XYZ = Win/Linux */
    _QWERTY,
    _FUNCTION

};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

    // Layer 0
    [_QWERTY] = LAYOUT(
    KC_ESC,		KC_1,		KC_2,		KC_3,				KC_4,		KC_5,		KC_6,				KC_7,		KC_8,		KC_9,		KC_0,		KC_MINS,		KC_EQL,			KC_BSPC,
    KC_TAB,		KC_LBRC,	KC_Q,		KC_W,				KC_E,		KC_R,		KC_T,				KC_Y,		KC_U,       KC_I,		KC_O,		KC_P,			KC_NUHS,		KC_DEL,			
    KC_CLCK,	KC_RBRC,	KC_A,		KC_S,				KC_D,		KC_F,		KC_G,				KC_H,		KC_J,       KC_K,		KC_L,		KC_SCLN,		KC_QUOT,		KC_ENT,
    KC_LSFT,	KC_NUBS,	KC_Z,		KC_X,       		KC_C,       KC_V,       KC_B,            	KC_N,		KC_M,		KC_COMM,	KC_DOT,		KC_SLSH,		KC_UP,			KC_RSFT,
    KC_LCTL,	KC_LGUI,	KC_LALT,	TT(1),				KC_APP,		KC_PGDN,	KC_SPC,				KC_SPC,		KC_PGUP,	KC_RALT,	KC_RCTL,	KC_LEFT,		KC_DOWN,		KC_RGHT					
    ),

    // Layer 1
    [_FUNCTION] = LAYOUT(
    KC_TRNS,		KC_F1,      KC_F2,      KC_F3,      KC_F4,      KC_F5,		KC_F6,				KC_F7,      KC_F8,      KC_F9,		KC_F10,     KC_F11,			KC_F12,			KC_TRNS,
    KC_TRNS,		KC_TRNS,    KC_TRNS,	KC_TRNS,    KC_TRNS,    KC_TRNS,	KC_TRNS,			KC_TRNS,    KC_TRNS,    KC_TRNS,	KC_TRNS,    KC_TRNS,		KC_TRNS,		KC_TRNS,
    KC_TRNS,		KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,	KC_TRNS,			KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,		KC_TRNS,		KC_TRNS,
    KC_TRNS,		KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,			KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,		KC_TRNS,		KC_TRNS,
    KC_TRNS,		KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_VOLD,	KC_TRNS,			KC_TRNS,	KC_VOLU,	KC_TRNS,	KC_TRNS,	KC_TRNS,		KC_TRNS,		KC_TRNS	
    )

};


A keyboards/malevolti/lyra/keymaps/via/config.h => keyboards/malevolti/lyra/keymaps/via/config.h +30 -0
@@ 0,0 1,30 @@
/*
This is the c configuration file for the keymap

Copyright 2012 Jun Wako <wakojun@gmail.com>
Copyright 2015 Jack Humbert

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

/* Select hand configuration */

#define MASTER_LEFT
// #define MASTER_RIGHT
// #define EE_HANDS

#define TAPPING_FORCE_HOLD
#define TAPPING_TERM 100

A keyboards/malevolti/lyra/keymaps/via/keymap.c => keyboards/malevolti/lyra/keymaps/via/keymap.c +56 -0
@@ 0,0 1,56 @@
 /* Copyright 2021 Domanic Calleja
  *
  * 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
//
// Keymaps
//

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

    // Layer 0
    [0] = LAYOUT(
    KC_ESC,   KC_1,     KC_2,    KC_3,    KC_4,    KC_5,    KC_6,        KC_7,    KC_8,     KC_9,     KC_0,    KC_MINS,    KC_EQL,     KC_BSPC,
    KC_TAB,   KC_LBRC,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,        KC_Y,    KC_U,     KC_I,     KC_O,    KC_P,       KC_NUHS,    KC_DEL,
    KC_CLCK,  KC_RBRC,  KC_A,    KC_S,    KC_D,    KC_F,    KC_G,        KC_H,    KC_J,     KC_K,     KC_L,    KC_SCLN,    KC_QUOT,    KC_ENT,
    KC_LSFT,  KC_NUBS,  KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,        KC_N,    KC_M,     KC_COMM,  KC_DOT,  KC_SLSH,    KC_UP,      KC_RSFT,
    KC_LCTL,  KC_LGUI,  KC_LALT,  TT(1),  KC_APP,  KC_PGDN, KC_SPC,      KC_SPC,  KC_PGUP,  KC_RALT,  KC_RCTL, KC_LEFT,    KC_DOWN,    KC_RGHT
    ),

    // Layer 1
    [1] = LAYOUT(
    KC_TRNS,  KC_F1,   KC_F2,    KC_F3,    KC_F4,    KC_F5,    KC_F6,        KC_F7,    KC_F8,    KC_F9,    KC_F10,   KC_F11,     KC_F12,     KC_TRNS,
    KC_TRNS,  KC_TRNS, KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,      KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,    KC_TRNS,    KC_TRNS,
    KC_TRNS,  KC_TRNS, KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,      KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,    KC_TRNS,    KC_TRNS,
    KC_TRNS,  KC_TRNS, KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,      KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,    KC_TRNS,    KC_TRNS,
    KC_TRNS,  KC_TRNS, KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_VOLD,  KC_TRNS,      KC_TRNS,  KC_VOLU,  KC_TRNS,  KC_TRNS,  KC_TRNS,    KC_TRNS,    KC_TRNS
    ),
      // Layer 2
    [2] = LAYOUT(
    KC_TRNS,  KC_TRNS, KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_VOLD,  KC_TRNS,      KC_TRNS,  KC_VOLU,  KC_TRNS,  KC_TRNS,  KC_TRNS,    KC_TRNS,    KC_TRNS,
    KC_TRNS,  KC_TRNS, KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,      KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,    KC_TRNS,    KC_TRNS,
    KC_TRNS,  KC_TRNS, KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,      KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,    KC_TRNS,    KC_TRNS,
    KC_TRNS,  KC_TRNS, KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,      KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,    KC_TRNS,    KC_TRNS,
    KC_TRNS,  KC_TRNS, KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_VOLD,  KC_TRNS,      KC_TRNS,  KC_VOLU,  KC_TRNS,  KC_TRNS,  KC_TRNS,    KC_TRNS,    KC_TRNS
    ),
      // Layer 3
    [3] = LAYOUT(
    KC_TRNS,  KC_TRNS, KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_VOLD,  KC_TRNS,      KC_TRNS,  KC_VOLU,  KC_TRNS,  KC_TRNS,  KC_TRNS,    KC_TRNS,    KC_TRNS,
    KC_TRNS,  KC_TRNS, KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,      KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,    KC_TRNS,    KC_TRNS,
    KC_TRNS,  KC_TRNS, KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,      KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,    KC_TRNS,    KC_TRNS,
    KC_TRNS,  KC_TRNS, KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,      KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,    KC_TRNS,    KC_TRNS,
    KC_TRNS,  KC_TRNS, KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_VOLD,  KC_TRNS,      KC_TRNS,  KC_VOLU,  KC_TRNS,  KC_TRNS,  KC_TRNS,    KC_TRNS,    KC_TRNS
    )
};

A keyboards/malevolti/lyra/keymaps/via/rules.mk => keyboards/malevolti/lyra/keymaps/via/rules.mk +1 -0
@@ 0,0 1,1 @@
VIA_ENABLE = yes
\ No newline at end of file

A keyboards/malevolti/lyra/lyra.c => keyboards/malevolti/lyra/lyra.c +84 -0
@@ 0,0 1,84 @@
 /* Copyright 2021 Domanic Calleja
  * 
  * 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 "lyra.h"

#ifdef OLED_ENABLE

// 'lyralogooled', 32x128px
oled_rotation_t oled_init_kb(oled_rotation_t rotation) {
    if (is_keyboard_master()) {
        return OLED_ROTATION_270;
    }
    return rotation;
}

bool oled_task_kb(void) {
    if (!oled_task_user()) { return false; }
    if (is_keyboard_master()) {
        oled_write_P(PSTR("      "), false);
#    ifdef WPM_ENABLE
        oled_write(get_u8_str(get_current_wpm(), ' '), false);
        oled_write_ln_P(PSTR("   WPM"), false);
#    else
        oled_advance_page(true);
#    endif
        oled_advance_page(true);
        led_t led_usb_state = host_keyboard_led_state();
        oled_write_ln_P(PSTR("CPSLK"), led_usb_state.caps_lock);
        oled_advance_page(true);  oled_advance_page(true);
        oled_write_ln_P(PSTR("Lyra"), false);
        oled_write_ln_P(PSTR("v1.1"), false);
        oled_write_ln_P(PSTR("by"), false);
        oled_write_P(PSTR("Dom C"), false);
    } else {
        static const char PROGMEM QMK_logo[] = {
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0x78, 0x18, 0x0c, 0x04, 0x06, 0x02, 
            0x02, 0x82, 0xc0, 0xf0, 0x38, 0x8c, 0xf2, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
            0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
            0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x40, 0x40, 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, 0x80, 0x40, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x1f, 0x18, 0x30, 0x20, 0xa0, 0xe0, 0xf8, 
            0x3e, 0x1f, 0x13, 0x0c, 0x06, 0xc3, 0xf0, 0x60, 0x00, 0x80, 0xf0, 0xe0, 0x00, 0x38, 0xfe, 0x67, 
            0x7b, 0xa5, 0xf3, 0xf0, 0x70, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0xe0, 0x70, 0x30, 0x20, 0x00, 0x00, 
            0x00, 0x80, 0x00, 0x00, 0x00, 0x7f, 0xc0, 0xdd, 0xdd, 0xdd, 0xe3, 0x7e, 0x3c, 0x3e, 0x61, 0xdf, 
            0xde, 0xde, 0x01, 0xff, 0xfe, 0x00, 0x80, 0x80, 0x80, 0xff, 0xc0, 0xdf, 0xdf, 0xdf, 0xe0, 0xff, 
            0x7f, 0x3c, 0x62, 0xdd, 0xdd, 0xdd, 0xe3, 0x7e, 0x3c, 0xfe, 0xc1, 0xfd, 0x7d, 0xc3, 0xfd, 0x7d, 
            0xc3, 0xfe, 0xfc, 0x30, 0xea, 0xd5, 0xd5, 0xd5, 0xc3, 0xff, 0xfe, 0x7e, 0xc1, 0xfd, 0x7d, 0x7d, 
            0xc3, 0xfe, 0xfc, 0x3f, 0xe1, 0xff, 0xff, 0x3c, 0x62, 0xdd, 0xdd, 0xdd, 0xf7, 0xe6, 0x00, 0x00, 
            0x00, 0x78, 0xc4, 0xc2, 0x82, 0x82, 0x82, 0x82, 0xc2, 0xe4, 0x74, 0x7c, 0x3f, 0x1f, 0x31, 0x60, 
            0xe0, 0xc0, 0x80, 0x9c, 0xbf, 0xe7, 0xf1, 0x78, 0x3e, 0x1f, 0x0b, 0x04, 0x02, 0x01, 0x00, 0x1c, 
            0x3e, 0x2f, 0x13, 0x10, 0x0c, 0x1e, 0x3f, 0x2f, 0x13, 0x09, 0x1c, 0x3e, 0x2f, 0x10, 0x08, 0x06, 
            0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x06, 
            0x06, 0x06, 0x07, 0x03, 0x7f, 0xc1, 0xbe, 0xbe, 0xbe, 0xa6, 0xe7, 0xc7, 0x60, 0xd4, 0xaa, 0xaa, 
            0xaa, 0x86, 0xfe, 0xfc, 0x7f, 0xc0, 0xff, 0xff, 0x7f, 0xc0, 0xff, 0xff, 0xc4, 0xaa, 0xaa, 0xaa, 
            0xa6, 0xfc, 0xf8, 0xff, 0x02, 0xff, 0xff, 0x60, 0xd4, 0xaa, 0xaa, 0xaa, 0x86, 0xfe, 0xfc, 0x00, 
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
            0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x28, 0x24, 
            0x32, 0x1b, 0x1f, 0x0f, 0x0f, 0x1f, 0x1f, 0x3c, 0x38, 0x38, 0x78, 0x70, 0x70, 0x70, 0x30, 0x38, 
            0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 
            0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 
            0x01, 0x01, 0x07, 0x0d, 0x0e, 0x07, 0x03, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 
        };
        oled_write_raw_P(QMK_logo, sizeof(QMK_logo));
    }
}
#endif 

A keyboards/malevolti/lyra/lyra.h => keyboards/malevolti/lyra/lyra.h +23 -0
@@ 0,0 1,23 @@
 /* Copyright 2021 Domanic Calleja
  * 
  * 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

#include "quantum.h"


#ifdef KEYBOARD_malevolti_lyra_rev1
    #include "rev1.h"
#endif

A keyboards/malevolti/lyra/readme.md => keyboards/malevolti/lyra/readme.md +20 -0
@@ 0,0 1,20 @@
# Lyra Keyboard
By Domanic Calleja - https://github.com/Malevolti

Lyra is 7x5 keys column-staggered split keyboard. Based on  Sofle, Lily58, Corne and Helix keyboards.
There is an open source PCB available via https://github.com/Malevolti/Lyra
Instructions for handwiring and hand-wire specific case STLs are available for home 3d printing

Make example for this keyboard (after setting up your build environment):

    make malevolti/lyra:default

Flashing example for this keyboard:

    make malevolti/lyra:default:flash

Press reset button on the keyboard when asked.

Disconnect the first half, connect the second one and repeat the process.

See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).

A keyboards/malevolti/lyra/rev1/config.h => keyboards/malevolti/lyra/rev1/config.h +49 -0
@@ 0,0 1,49 @@
 /* Copyright 2021 Domanic Calleja
  * 
  * 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

/* USB Device descriptor parameter */
#define VENDOR_ID       0x4443  //DC
#define PRODUCT_ID      0x4C43  //LC
#define DEVICE_VER      0x3031  //01
#define MANUFACTURER    Dom
#define PRODUCT         Lyra

/* key matrix size */
// Rows are doubled-up
#define MATRIX_ROWS 10
#define MATRIX_COLS 7

// wiring of each half
#define MATRIX_ROW_PINS { D4, C6, D7, E6, B4 }
#define MATRIX_COL_PINS { B2, B3, B1, F7, F6, F5, F4 }

#define DIODE_DIRECTION COL2ROW

#define TAPPING_TERM 100

/* define if matrix has ghost */
//#define MATRIX_HAS_GHOST

/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5

/* communication between sides */
#define USE_SERIAL
#define SOFT_SERIAL_PIN D2

#define NO_ACTION_MACRO
#define NO_ACTION_FUNCTION

A keyboards/malevolti/lyra/rev1/info.json => keyboards/malevolti/lyra/rev1/info.json +90 -0
@@ 0,0 1,90 @@
{
    "keyboard_name": "lyra",
    "url": "",
    "maintainer": "malevolti",
    "layouts": {
        "LAYOUT": {
            "layout": [
                {"x": 0, "y": 0.3},
                {"x": 1, "y": 0.4},
                {"x": 2, "y": 0.3},
                {"x": 3, "y": 0.1},
                {"x": 4, "y": 0},
                {"x": 5, "y": 0.1},
                {"x": 6, "y": 0.25},

                {"x": 8, "y": 0.25},
                {"x": 9, "y": 0.1},
                {"x": 10, "y": 0},
                {"x": 11, "y": 0.1},
                {"x": 12, "y": 0.3},
                {"x": 13, "y": 0.4},
                {"x": 14, "y": 0.3},

                {"x": 0, "y": 1.3},
                {"x": 1, "y": 1.4},
                {"x": 2, "y": 1.3},
                {"x": 3, "y": 1.1},
                {"x": 4, "y": 1},
                {"x": 5, "y": 1.1},
                {"x": 6, "y": 1.25},

                {"x": 8, "y": 1.25},
                {"x": 9, "y": 1.1},
                {"x": 10, "y": 1},
                {"x": 11, "y": 1.1},
                {"x": 12, "y": 1.3},
                {"x": 13, "y": 1.4},
                {"x": 14, "y": 1.3},

                {"x": 0, "y": 2.3},
                {"x": 1, "y": 2.4},
                {"x": 2, "y": 2.3},
                {"x": 3, "y": 2.1},
                {"x": 4, "y": 2},
                {"x": 5, "y": 2.1},
                {"x": 6, "y": 2.25},

                {"x": 8, "y": 2.25},
                {"x": 9, "y": 2.1},
                {"x": 10, "y": 2},
                {"x": 11, "y": 2.1},
                {"x": 12, "y": 2.3},
                {"x": 13, "y": 2.4},
                {"x": 14, "y": 2.3},

                {"x": 0, "y": 3.3},
                {"x": 1, "y": 3.4},
                {"x": 2, "y": 3.3},
                {"x": 3, "y": 3.1},
                {"x": 4, "y": 3},
                {"x": 5, "y": 3.1},
                {"x": 6, "y": 3.25},

                {"x": 8, "y": 3.25},
                {"x": 9, "y": 3.1},
                {"x": 10, "y": 3},
                {"x": 11, "y": 3.1},
                {"x": 12, "y": 3.3},
                {"x": 13, "y": 3.4},
                {"x": 14, "y": 3.3},

                {"x": 0, "y": 4.3},
                {"x": 1, "y": 4.4},
                {"x": 2, "y": 4.3},
                {"x": 3, "y": 4.1},
                {"x": 4, "y": 4},
                {"x": 5, "y": 4.1},
                {"x": 6.25, "y": 4.5},

                {"x": 7.75, "y": 4.5},
                {"x": 9, "y": 4.1},
                {"x": 10, "y": 4},
                {"x": 11, "y": 4.1},
                {"x": 12, "y": 4.3},
                {"x": 13, "y": 4.4},
                {"x": 14, "y": 4.3}
            ]
        }
    }
}

A keyboards/malevolti/lyra/rev1/rev1.c => keyboards/malevolti/lyra/rev1/rev1.c +19 -0
@@ 0,0 1,19 @@
 /* Copyright 2021 Domanic Calleja
  * 
  * 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 "rev1.h"



A keyboards/malevolti/lyra/rev1/rev1.h => keyboards/malevolti/lyra/rev1/rev1.h +39 -0
@@ 0,0 1,39 @@
/* Copyright 2021 Domanic Calleja
  * 
  * 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
#include "lyra.h"


#define LAYOUT( \
	L00, L01, L02, L03, L04, L05, L06,          R00, R01, R02, R03, R04, R05, R06,	\
	L10, L11, L12, L13, L14, L15, L16,          R10, R11, R12, R13, R14, R15, R16,  \
	L20, L21, L22, L23, L24, L25, L26,          R20, R21, R22, R23, R24, R25, R26,	\
	L30, L31, L32, L33, L34, L35, L36,			R30, R31, R32, R33, R34, R35, R36,	\
	L40, L41, L42, L43, L44, L45, L46,			R40, R41, R42, R43, R44, R45, R46	\
	) \
	{ \
		{ L00, L01, L02, L03, L04, L05, L06 }, \
		{ L10, L11, L12, L13, L14, L15, L16 }, \
		{ L20, L21, L22, L23, L24, L25, L26 }, \
		{ L30, L31, L32, L33, L34, L35, L36 }, \
		{ L40, L41, L42, L43, L44, L45, L46 }, \
		{ R06, R05, R04, R03, R02, R01, R00 }, \
		{ R16, R15, R14, R13, R12, R11, R10 }, \
		{ R26, R25, R24, R23, R22, R21, R20 }, \
		{ R36, R35, R34, R33, R32, R31, R30 }, \
		{ R46, R45, R44, R43, R42, R41, R40 }	\
	}

A keyboards/malevolti/lyra/rev1/rules.mk => keyboards/malevolti/lyra/rev1/rules.mk +21 -0
@@ 0,0 1,21 @@
# MCU name
MCU = atmega32u4

# Bootloader selection
BOOTLOADER = caterina

# 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 = no            # Enable N-Key Rollover
BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow
AUDIO_ENABLE = no           # Audio output

SPLIT_KEYBOARD = yes
LTO_ENABLE = yes 
\ No newline at end of file

A keyboards/malevolti/superlyra/config.h => keyboards/malevolti/superlyra/config.h +19 -0
@@ 0,0 1,19 @@
 /* Copyright 2021 Domanic Calleja
  * 
  * 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

#include "config_common.h"


A keyboards/malevolti/superlyra/keymaps/default/config.h => keyboards/malevolti/superlyra/keymaps/default/config.h +26 -0
@@ 0,0 1,26 @@
/*
This is the c configuration file for the keymap

Copyright 2012 Jun Wako <wakojun@gmail.com>
Copyright 2015 Jack Humbert

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_FORCE_HOLD
#define TAPPING_TERM 100

A keyboards/malevolti/superlyra/keymaps/default/keymap.c => keyboards/malevolti/superlyra/keymaps/default/keymap.c +43 -0
@@ 0,0 1,43 @@
 /* Copyright 2021 Domanic Calleja
  * 
  * 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
//
// Keymaps
//

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

    // Layer 0
    [0] = LAYOUT(
    KC_ESC,		KC_1,		KC_2,		KC_3,	KC_4,		KC_5,		KC_6,			KC_NLCK,	KC_HOME,	KC_END,		KC_PSLS,			KC_7,		KC_8,		KC_9,		KC_0,		KC_MINS,		KC_EQL,			KC_BSPC,
    KC_TAB,		KC_LBRC,	KC_Q,		KC_W,	KC_E,		KC_R,		KC_T,			KC_P7,		KC_P8,		KC_P9,		KC_PAST,			KC_Y,		KC_U,       KC_I,		KC_O,		KC_P,			KC_NUHS,		KC_DEL,			
    KC_CLCK,	KC_RBRC,	KC_A,		KC_S,	KC_D,		KC_F,		KC_G,			KC_P4,		KC_P5,		KC_P6,		KC_PMNS,			KC_H,		KC_J,       KC_K,		KC_L,		KC_SCLN,		KC_QUOT,		KC_ENT,
    KC_LSFT,	KC_NUBS,	KC_Z,		KC_X,	KC_C,       KC_V,       KC_B,			KC_P1,		KC_P2,		KC_P3,		KC_PPLS,			KC_N,		KC_M,		KC_COMM,	KC_DOT,		KC_SLSH,		KC_UP,			KC_RSFT,
    KC_LCTL,	KC_LGUI,	KC_LALT,	TT(1),	KC_APP,		KC_PGDN,	KC_SPC,			KC_DEL,		KC_P0,		KC_PDOT,	KC_ENT,				KC_SPC,		KC_PGUP,	KC_RALT,	KC_RCTL,	KC_LEFT,		KC_DOWN,		KC_RGHT					
    ),

    // Layer 1
    [1] = LAYOUT(
    KC_TRNS,		KC_F1,      KC_F2,      KC_F3,      KC_F4,      KC_F5,		KC_F6,				KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,			KC_F7,      KC_F8,      KC_F9,		KC_F10,     KC_F11,			KC_F12,			KC_TRNS,
    KC_TRNS,		KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,			KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,			KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,		KC_TRNS,		KC_TRNS,
    KC_TRNS,		KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,			KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,			KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,		KC_TRNS,		KC_TRNS,
    KC_TRNS,		KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,			KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,			KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,		KC_TRNS,		KC_TRNS,
    KC_TRNS,		KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_VOLD,	KC_TRNS,			KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,			KC_TRNS,	KC_VOLU,	KC_TRNS,	KC_TRNS,	KC_TRNS,		KC_TRNS,		KC_TRNS	
    )

};


A keyboards/malevolti/superlyra/keymaps/via/config.h => keyboards/malevolti/superlyra/keymaps/via/config.h +26 -0
@@ 0,0 1,26 @@
/*
This is the c configuration file for the keymap

Copyright 2012 Jun Wako <wakojun@gmail.com>
Copyright 2015 Jack Humbert

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_FORCE_HOLD
#define TAPPING_TERM 100

A keyboards/malevolti/superlyra/keymaps/via/keymap.c => keyboards/malevolti/superlyra/keymaps/via/keymap.c +56 -0
@@ 0,0 1,56 @@
 /* Copyright 2021 Domanic Calleja
  *
  * 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
//
// Keymaps
//

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

    // Layer 0
    [0] = LAYOUT(
    KC_ESC,		KC_1,		KC_2,		KC_3,	KC_4,		KC_5,		KC_6,			KC_NLCK,	KC_HOME,	KC_END,		KC_PSLS,			KC_7,		KC_8,		KC_9,		KC_0,		KC_MINS,		KC_EQL,			KC_BSPC,
    KC_TAB,		KC_LBRC,	KC_Q,		KC_W,	KC_E,		KC_R,		KC_T,			KC_P7,		KC_P8,		KC_P9,		KC_PAST,			KC_Y,		KC_U,       KC_I,		KC_O,		KC_P,			KC_NUHS,		KC_DEL,			
    KC_CLCK,	KC_RBRC,	KC_A,		KC_S,	KC_D,		KC_F,		KC_G,			KC_P4,		KC_P5,		KC_P6,		KC_PMNS,			KC_H,		KC_J,       KC_K,		KC_L,		KC_SCLN,		KC_QUOT,		KC_ENT,
    KC_LSFT,	KC_NUBS,	KC_Z,		KC_X,	KC_C,       KC_V,       KC_B,			KC_P1,		KC_P2,		KC_P3,		KC_PPLS,			KC_N,		KC_M,		KC_COMM,	KC_DOT,		KC_SLSH,		KC_UP,			KC_RSFT,
    KC_LCTL,	KC_LGUI,	KC_LALT,	TT(1),	KC_APP,		KC_PGDN,	KC_SPC,			KC_DEL,		KC_P0,		KC_PDOT,	KC_ENT,				KC_SPC,		KC_PGUP,	KC_RALT,	KC_RCTL,	KC_LEFT,		KC_DOWN,		KC_RGHT		
    ),

    // Layer 1
    [1] = LAYOUT(
    KC_TRNS,		KC_F1,      KC_F2,      KC_F3,      KC_F4,      KC_F5,		KC_F6,				KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,			KC_F7,      KC_F8,      KC_F9,		KC_F10,     KC_F11,			KC_F12,			KC_TRNS,
    KC_TRNS,		KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,			KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,			KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,		KC_TRNS,		KC_TRNS,
    KC_TRNS,		KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,			KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,			KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,		KC_TRNS,		KC_TRNS,
    KC_TRNS,		KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,			KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,			KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,		KC_TRNS,		KC_TRNS,
    KC_TRNS,		KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_VOLD,	KC_TRNS,			KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,			KC_TRNS,	KC_VOLU,	KC_TRNS,	KC_TRNS,	KC_TRNS,		KC_TRNS,		KC_TRNS	
    ),
      // Layer 2
    [2] = LAYOUT(
    KC_TRNS,		KC_F1,      KC_F2,      KC_F3,      KC_F4,      KC_F5,		KC_F6,				KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,			KC_F7,      KC_F8,      KC_F9,		KC_F10,     KC_F11,			KC_F12,			KC_TRNS,
    KC_TRNS,		KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,			KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,			KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,		KC_TRNS,		KC_TRNS,
    KC_TRNS,		KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,			KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,			KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,		KC_TRNS,		KC_TRNS,
    KC_TRNS,		KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,			KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,			KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,		KC_TRNS,		KC_TRNS,
    KC_TRNS,		KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_VOLD,	KC_TRNS,			KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,			KC_TRNS,	KC_VOLU,	KC_TRNS,	KC_TRNS,	KC_TRNS,		KC_TRNS,		KC_TRNS	
    ),
      // Layer 3
    [3] = LAYOUT(
    KC_TRNS,		KC_F1,      KC_F2,      KC_F3,      KC_F4,      KC_F5,		KC_F6,				KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,			KC_F7,      KC_F8,      KC_F9,		KC_F10,     KC_F11,			KC_F12,			KC_TRNS,
    KC_TRNS,		KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,			KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,			KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,		KC_TRNS,		KC_TRNS,
    KC_TRNS,		KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,			KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,			KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,		KC_TRNS,		KC_TRNS,
    KC_TRNS,		KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,			KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,			KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,		KC_TRNS,		KC_TRNS,
    KC_TRNS,		KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_VOLD,	KC_TRNS,			KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,			KC_TRNS,	KC_VOLU,	KC_TRNS,	KC_TRNS,	KC_TRNS,		KC_TRNS,		KC_TRNS	
    )
};

A keyboards/malevolti/superlyra/keymaps/via/rules.mk => keyboards/malevolti/superlyra/keymaps/via/rules.mk +1 -0
@@ 0,0 1,1 @@
VIA_ENABLE = yes
\ No newline at end of file

A keyboards/malevolti/superlyra/readme.md => keyboards/malevolti/superlyra/readme.md +20 -0
@@ 0,0 1,20 @@
# SuperLyra Keyboard
By Domanic Calleja - https://github.com/Malevolti

SuperLyra is a 90 key column-staggered ergonomic keyboard. Based on the Lyra split with the addition of a centre numpad for ambidextorous use. 
This version is a single pcb as opposed to a split, with the alphanumeric segments angled at 30 degrees to eachother.
There is an open source PCB available via https://github.com/Malevolti/SuperLyra

Make example for this keyboard (after setting up your build environment):

    make malevolti/superlyra:default

Flashing example for this keyboard:

    make malevolti/superlyra:default:flash

Press reset button on the keyboard when asked.

Disconnect the first half, connect the second one and repeat the process.

See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).

A keyboards/malevolti/superlyra/rev1/config.h => keyboards/malevolti/superlyra/rev1/config.h +44 -0
@@ 0,0 1,44 @@
 /* Copyright 2021 Domanic Calleja
  * 
  * 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

/* USB Device descriptor parameter */
#define VENDOR_ID       0x4443  //DC
#define PRODUCT_ID      0x4C53  //LS
#define DEVICE_VER      0x3031  //01
#define MANUFACTURER    Dom
#define PRODUCT         SuperLyra

/* key matrix size */
#define MATRIX_ROWS 5
#define MATRIX_COLS 18

// wiring of each half
#define MATRIX_ROW_PINS { B7, B3, B2, B1, B0 }
#define MATRIX_COL_PINS { D0, D1, D2, D3, D5, D4, D6, D7, B4, B5, B6, C6, C7, F7, F6, F5, F4, F1 }

#define DIODE_DIRECTION COL2ROW

#define TAPPING_TERM 100

/* define if matrix has ghost */
//#define MATRIX_HAS_GHOST

/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5

#define NO_ACTION_MACRO
#define NO_ACTION_FUNCTION

A keyboards/malevolti/superlyra/rev1/info.json => keyboards/malevolti/superlyra/rev1/info.json +116 -0
@@ 0,0 1,116 @@
{
    "keyboard_name": "superlyra",
    "url": "",
    "maintainer": "malevolti",
    "layouts": {
        "LAYOUT": {
            "layout": [
                { "x": 0, "y": 0.3 },
                { "x": 1, "y": 0.4 },
                { "x": 2, "y": 0.3 },
                { "x": 3, "y": 0.1 },
                { "x": 4, "y": 0 },
                { "x": 5, "y": 0.1 },
                { "x": 6, "y": 0.25 },				

                { "x": 8, "y": 0.25 },
                { "x": 9, "y": 0.25 },
                { "x": 10, "y": 0.25 },
                { "x": 11, "y": 0.25 },

                { "x": 13, "y": 0.25 },
                { "x": 14, "y": 0.1 },
                { "x": 15, "y": 0 },				
                { "x": 16, "y": 0.1 },
                { "x": 17, "y": 0.3 },                
                { "x": 18, "y": 0.4 },
                { "x": 19, "y": 0.3 },

                { "x": 0, "y": 1.3 },                
                { "x": 1, "y": 1.4 },
                { "x": 2, "y": 1.3 },
                { "x": 3, "y": 1.1 },                
                { "x": 4, "y": 1 },
                { "x": 5, "y": 1.1 },
                { "x": 6, "y": 1.25 },

                { "x": 8, "y": 1.25 },
                { "x": 9, "y": 1.25 },
                { "x": 10, "y": 1.25 },
                { "x": 11, "y": 1.25 },

                { "x": 13, "y": 1.25 },
                { "x": 14, "y": 1.1 },
                { "x": 15, "y": 1 },
                { "x": 16, "y": 1.1 },
                { "x": 17, "y": 1.3 },
                { "x": 18, "y": 1.4 },
                { "x": 19, "y": 1.3 },

                { "x": 0, "y": 2.3 },
                { "x": 1, "y": 2.4 },
                { "x": 2, "y": 2.3 },
                { "x": 3, "y": 2.1 },
                { "x": 4, "y": 2 },
                { "x": 5, "y": 2.1 },
                { "x": 6, "y": 2.25 },

                { "x": 8, "y": 2.25 },
                { "x": 9, "y": 2.25 },
                { "x": 10, "y": 2.25 },
                { "x": 11, "y": 2.25 },

                { "x": 13, "y": 2.25 },
                { "x": 14, "y": 2.1 },
                { "x": 15, "y": 2 },
                { "x": 16, "y": 2.1 },
                { "x": 17, "y": 2.3 },
                { "x": 18, "y": 2.4 },
                { "x": 19, "y": 2.3 },

                { "x": 0, "y": 3.3 },
                { "x": 1, "y": 3.4 },
                { "x": 2, "y": 3.3 },
                { "x": 3, "y": 3.1 },
                { "x": 4, "y": 3 },
                { "x": 5, "y": 3.1 },
                { "x": 6, "y": 3.25 },

                { "x": 8, "y": 3.25 },
                { "x": 9, "y": 3.25 },
                { "x": 10, "y": 3.25 },
                { "x": 11, "y": 3.25 },	

                { "x": 13, "y": 3.25 },
                { "x": 14, "y": 3.1 },				
                { "x": 15, "y": 3 },
                { "x": 16, "y": 3.1 },
                { "x": 17, "y": 3.3 },
                { "x": 18, "y": 3.4 },
                { "x": 19, "y": 3.3 },

                { "x": 0, "y": 4.3 },
                { "x": 1, "y": 4.4 },
                { "x": 2, "y": 4.3 },
                { "x": 3, "y": 4.1 },
                { "x": 4, "y": 4 },
                { "x": 5, "y": 4.1 },
                { "x": 6.25, "y": 4.5, "w": 1.5 },

                { "x": 8, "y": 4.25 },
                { "x": 9, "y": 4.25 },
                { "x": 10, "y": 4.25 },
                { "x": 11, "y": 4.25 },
				
                { "x": 12.25, "y": 4.5, "w": 1.5 },
                { "x": 14, "y": 4.1 },                
                { "x": 15, "y": 4 },
                { "x": 16, "y": 4.1 },
                { "x": 17, "y": 4.3 },
                { "x": 18, "y": 4.4 },
                { "x": 19, "y": 4.3 }

            ]
        }
    }
}

A keyboards/malevolti/superlyra/rev1/rev1.c => keyboards/malevolti/superlyra/rev1/rev1.c +17 -0
@@ 0,0 1,17 @@
 /* Copyright 2021 Domanic Calleja
  * 
  * 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 "rev1.h"

A keyboards/malevolti/superlyra/rev1/rev1.h => keyboards/malevolti/superlyra/rev1/rev1.h +34 -0
@@ 0,0 1,34 @@
/* Copyright 2021 Domanic Calleja
  * 
  * 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
#include "superlyra.h"


#define LAYOUT( \
    K00, K01, K02, K03, K04, K05, K06,   K07, K08, K09, K10,   K11, K12, K13, K14, K15, K16, K17,	\
    K18, K19, K20, K21, K22, K23, K24,   K25, K26, K27, K28,   K29, K30, K31, K32, K33, K34, K35,   \
    K36, K37, K38, K39, K40, K41, K42,   K43, K44, K45, K46,   K47, K48, K49, K50, K51, K52, K53,   \
    K54, K55, K56, K57, K58, K59, K60,   K61, K62, K63, K64,   K65, K66, K67, K68, K69, K70, K71,   \
    K72, K73, K74, K75, K76, K77, K78,   K79, K80, K81, K82,   K83, K84, K85, K86, K87, K88, K89   \
	) \
	{ \
        { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, K12, K13, K14, K15, K16, K17 },	\
        { K18, K19, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K30, K31, K32, K33, K34, K35 },   \
        { K36, K37, K38, K39, K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K50, K51, K52, K53 },   \
        { K54, K55, K56, K57, K58, K59, K60, K61, K62, K63, K64, K65, K66, K67, K68, K69, K70, K71 },   \
        { K72, K73, K74, K75, K76, K77, K78, K79, K80, K81, K82, K83, K84, K85, K86, K87, K88, K89 }   \
	}

A keyboards/malevolti/superlyra/rev1/rules.mk => keyboards/malevolti/superlyra/rev1/rules.mk +20 -0
@@ 0,0 1,20 @@
# MCU name
MCU = atmega32u4

# Bootloader selection
BOOTLOADER = caterina

# 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 = no            # Enable N-Key Rollover
BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow
AUDIO_ENABLE = no           # Audio output

LTO_ENABLE = yes 

A keyboards/malevolti/superlyra/superlyra.c => keyboards/malevolti/superlyra/superlyra.c +17 -0
@@ 0,0 1,17 @@
 /* Copyright 2021 Domanic Calleja
  * 
  * 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 "superlyra.h"


A keyboards/malevolti/superlyra/superlyra.h => keyboards/malevolti/superlyra/superlyra.h +23 -0
@@ 0,0 1,23 @@
 /* Copyright 2021 Domanic Calleja
  * 
  * 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

#include "quantum.h"


#ifdef KEYBOARD_malevolti_superlyra_rev1
    #include "rev1.h"
#endif