Adding BareDev rev1 keyboard (#122)

This commit is contained in:
Fernando Rodrigues 2022-02-15 01:31:19 -03:00 committed by GitHub
parent 96a5714462
commit a977deb2b5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
16 changed files with 1197 additions and 0 deletions

View File

@ -0,0 +1,25 @@
/*
Copyright 2021 Fernando "ManoShu" Rodrigues
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"
/* disable these deprecated features by default */
#define NO_ACTION_MACRO
#define NO_ACTION_FUNCTION

View File

@ -0,0 +1,706 @@
{
"manufacturer": "Fernando \"ManoShu\" Rodrigues",
"keyboard_name": "BareDev (rev1)",
"url": "https://github.com/ManoShu/BareDev",
"maintainer": "ManoShu",
"debounce": 5,
"diode_direction": "COL2ROW",
"tapping": {
"term": 175
},
"matrix_pins": {
"unused": [
"F1",
"F4",
"F5",
"F6",
"F7"
],
"cols": [
"B6",
"B7",
"C6",
"C7",
"D0",
"D1",
"D2",
"D3",
"D4",
"D5",
"D6",
"D7",
"E6",
"F0"
],
"rows": [
"B0",
"B1",
"B2",
"B3",
"B4",
"B5"
]
},
"usb": {
"vid": "0x1209",
"pid": "0x4126",
"device_ver": "0x0001",
"polling_interval": 1,
"shared_endpoint": {
"keyboard": true
}
},
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
"features": {
"audio": false,
"bootmagic": true,
"command": false,
"console": false,
"extrakey": true,
"midi": false,
"mousekey": true,
"nkro": true,
"rgblight": false,
"unicode": false,
"bluetooth": false,
"backlight": false,
"sleep_led": false
},
"layout_aliases": {
"LAYOUT": "LAYOUT_abnt2"
},
"layouts": {
"LAYOUT_abnt2": {
"layout": [
{
"matrix": [
0,
0
],
"x": 0,
"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.5,
"y": 0
},
{
"matrix": [
0,
7
],
"x": 7.5,
"y": 0
},
{
"matrix": [
0,
8
],
"x": 8.5,
"y": 0
},
{
"matrix": [
0,
9
],
"x": 9.5,
"y": 0
},
{
"matrix": [
0,
10
],
"x": 11,
"y": 0
},
{
"matrix": [
0,
11
],
"x": 12,
"y": 0
},
{
"matrix": [
0,
12
],
"x": 13,
"y": 0
},
{
"matrix": [
0,
13
],
"x": 14,
"y": 0
},
{
"matrix": [
1,
0
],
"x": 0,
"y": 1.25
},
{
"matrix": [
1,
1
],
"x": 1,
"y": 1.25
},
{
"matrix": [
1,
2
],
"x": 2,
"y": 1.25
},
{
"matrix": [
1,
3
],
"x": 3,
"y": 1.25
},
{
"matrix": [
1,
4
],
"x": 4,
"y": 1.25
},
{
"matrix": [
1,
5
],
"x": 5,
"y": 1.25
},
{
"matrix": [
1,
6
],
"x": 6,
"y": 1.25
},
{
"matrix": [
1,
7
],
"x": 7,
"y": 1.25
},
{
"matrix": [
1,
8
],
"x": 8,
"y": 1.25
},
{
"matrix": [
1,
9
],
"x": 9,
"y": 1.25
},
{
"matrix": [
1,
10
],
"x": 10,
"y": 1.25
},
{
"matrix": [
1,
11
],
"x": 11,
"y": 1.25
},
{
"matrix": [
1,
12
],
"x": 12,
"y": 1.25
},
{
"matrix": [
1,
13
],
"x": 13,
"y": 1.25,
"w": 2
},
{
"matrix": [
2,
0
],
"x": 0,
"y": 2.25,
"w": 1.5
},
{
"matrix": [
2,
1
],
"x": 1.5,
"y": 2.25
},
{
"matrix": [
2,
2
],
"x": 2.5,
"y": 2.25
},
{
"matrix": [
2,
3
],
"x": 3.5,
"y": 2.25
},
{
"matrix": [
2,
4
],
"x": 4.5,
"y": 2.25
},
{
"matrix": [
2,
5
],
"x": 5.5,
"y": 2.25
},
{
"matrix": [
2,
6
],
"x": 6.5,
"y": 2.25
},
{
"matrix": [
2,
7
],
"x": 7.5,
"y": 2.25
},
{
"matrix": [
2,
8
],
"x": 8.5,
"y": 2.25
},
{
"matrix": [
2,
9
],
"x": 9.5,
"y": 2.25
},
{
"matrix": [
2,
10
],
"x": 10.5,
"y": 2.25
},
{
"matrix": [
2,
11
],
"x": 11.5,
"y": 2.25
},
{
"matrix": [
2,
12
],
"x": 12.5,
"y": 2.25
},
{
"matrix": [
2,
13
],
"x": 13.75,
"y": 2.25,
"w": 1.25,
"h": 2
},
{
"matrix": [
3,
0
],
"x": 0,
"y": 3.25,
"w": 1.75
},
{
"matrix": [
3,
1
],
"x": 1.75,
"y": 3.25
},
{
"matrix": [
3,
2
],
"x": 2.75,
"y": 3.25
},
{
"matrix": [
3,
3
],
"x": 3.75,
"y": 3.25
},
{
"matrix": [
3,
4
],
"x": 4.75,
"y": 3.25
},
{
"matrix": [
3,
5
],
"x": 5.75,
"y": 3.25
},
{
"matrix": [
3,
6
],
"x": 6.75,
"y": 3.25
},
{
"matrix": [
3,
7
],
"x": 7.75,
"y": 3.25
},
{
"matrix": [
3,
8
],
"x": 8.75,
"y": 3.25
},
{
"matrix": [
3,
9
],
"x": 9.75,
"y": 3.25
},
{
"matrix": [
3,
10
],
"x": 10.75,
"y": 3.25
},
{
"matrix": [
3,
11
],
"x": 11.75,
"y": 3.25
},
{
"matrix": [
3,
12
],
"x": 12.75,
"y": 3.25
},
{
"matrix": [
4,
0
],
"x": 0,
"y": 4.25,
"w": 1.25
},
{
"matrix": [
4,
1
],
"x": 1.25,
"y": 4.25
},
{
"matrix": [
4,
2
],
"x": 2.25,
"y": 4.25
},
{
"matrix": [
4,
3
],
"x": 3.25,
"y": 4.25
},
{
"matrix": [
4,
4
],
"x": 4.25,
"y": 4.25
},
{
"matrix": [
4,
5
],
"x": 5.25,
"y": 4.25
},
{
"matrix": [
4,
6
],
"x": 6.25,
"y": 4.25
},
{
"matrix": [
4,
7
],
"x": 7.25,
"y": 4.25
},
{
"matrix": [
4,
8
],
"x": 8.25,
"y": 4.25
},
{
"matrix": [
4,
9
],
"x": 9.25,
"y": 4.25
},
{
"matrix": [
4,
10
],
"x": 10.25,
"y": 4.25
},
{
"matrix": [
4,
11
],
"x": 11.25,
"y": 4.25
},
{
"matrix": [
4,
12
],
"x": 12.25,
"y": 4.25
},
{
"matrix": [
4,
13
],
"x": 13.25,
"y": 4.25
},
{
"matrix": [
5,
0
],
"x": 0,
"y": 5.25,
"w": 1.25
},
{
"matrix": [
5,
1
],
"x": 1.25,
"y": 5.25,
"w": 1.25
},
{
"matrix": [
5,
2
],
"x": 2.5,
"y": 5.25,
"w": 1.25
},
{
"matrix": [
5,
6
],
"x": 3.75,
"y": 5.25,
"w": 6.25
},
{
"matrix": [
5,
9
],
"x": 10,
"y": 5.25,
"w": 1.25
},
{
"matrix": [
5,
10
],
"x": 11.25,
"y": 5.25
},
{
"matrix": [
5,
11
],
"x": 12.25,
"y": 5.25
},
{
"matrix": [
5,
12
],
"x": 13.25,
"y": 5.25
},
{
"matrix": [
5,
13
],
"x": 14.25,
"y": 5.25
}
]
}
}
}

View File

@ -0,0 +1,56 @@
/* Copyright 2021 Fernando "ManoShu" Rodrigues
*
* 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_br_abnt2.h"
enum {
LAYER_BASE,
LAYER_FUNCTIONS
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[LAYER_BASE] = LAYOUT(
/* ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐ */
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,
/* ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┴─────────┤ */
BR_QUOT, BR_1, BR_2, BR_3, BR_4, BR_5, BR_6, BR_7, BR_8, BR_9, BR_0, BR_MINS, BR_EQL, KC_BSPC,
/* ├─────────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬──────────────┤ */
KC_TAB, BR_Q, BR_W, BR_E, BR_R, BR_T, BR_Y, BR_U, BR_I, BR_O, BR_P, BR_ACUT, BR_LBRC, KC_ENT,
/* ├──────────────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬ ┤ */
KC_CAPS, BR_A, BR_S, BR_D, BR_F, BR_G, BR_H, BR_J, BR_K, BR_L, BR_CCED, BR_TILD, BR_RBRC,
/* ├───────────┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴─────────┴─┬─────────┤ */
KC_LSFT, BR_BSLS, BR_Z, BR_X, BR_C, BR_V, BR_B, BR_N, BR_M, BR_COMM, BR_DOT, BR_SCLN, BR_SLSH, KC_UP,
/* ├───────────┼─────────┴─┬───────┴───┬─────┴─────────┴─────────┴─────────┴─────────┴─────────┴───────┬─┴───────┬─┴───────┬─┴───────┬─────────┼─────────┤ */
KC_LCTL, KC_LGUI, KC_LALT, LT(LAYER_FUNCTIONS,KC_SPC), KC_APP, KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT
/* └───────────┴───────────┴───────────┴───────────────────────────────────────────────────────────────┴─────────┴─────────┴─────────┴─────────┴─────────┘ */
),
[LAYER_FUNCTIONS] = LAYOUT(
/* ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐ */
RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS,
/* ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┴─────────┤ */
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
/* ├─────────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬──────────────┤ */
_______, KC_MPLY, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
/* ├──────────────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬ ┤ */
_______, KC_MPRV, KC_MNXT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
/* ├───────────┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴─────────┴─┬─────────┤ */
_______, _______, KC_VOLU, KC_VOLD, KC_CALC, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP,
/* ├───────────┼─────────┴─┬───────┴───┬─────┴─────────┴─────────┴─────────┴─────────┴─────────┴───────┬─┴───────┬─┴───────┬─┴───────┬─────────┼─────────┤ */
_______, _______, _______, _______, _______, KC_INS, KC_HOME, KC_PGDN, KC_END
/* └───────────┴───────────┴───────────┴───────────────────────────────────────────────────────────────┴─────────┴─────────┴─────────┴─────────┴─────────┘ */
)
};

View File

@ -0,0 +1,7 @@
![BareDev Layout Image](https://i.imgur.com/uP8Jzvi.png)
# Default BareDev layout
Has all the functions of a ABNT TKL keyboard, sans right shift.
Basic media functions also included.

View File

@ -0,0 +1,99 @@
/* Copyright 2021 Fernando "ManoShu" Rodrigues
*
* 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_br_abnt2.h"
#include "sendstring_br_abnt2.h"
enum {
LAYER_BASE,
LAYER_FUNCTIONS
};
#define L_FUNCT MO(LAYER_FUNCTIONS)
#define W_CHOLD LGUI_T(KC_CAPS)
//Combination keycodes
#define KC_PSBR C(KC_PAUSE) // Ctrl+Pause/Break
#define KC_SNIP SGUI(BR_S) // Screen Snip (GUI + Shift + S)
#define KC_WRUN G(BR_R) // Run (GUI + R)
#define KC_WLCK G(BR_L) // Lock (GUI + L)
#define KC_WDSK G(BR_D) // Desktop (GUI + D)
#define KC_WEXP G(BR_E) // Explorer (GUI + E)
#define KC_WPSE G(KC_PAUSE) // System Properties (GUI + Pause)
#define KC_WMGP G(BR_EQL) // Magnify (+)
#define KC_WMGM G(BR_MINS) // Magnify (-)
enum custom_keycodes {
KC_WPRN = SAFE_RANGE, // Project (P)
KC_WSPC // Input Select (Space)
};
layer_state_t layer_state_set_user(layer_state_t state) {
if (get_highest_layer(state) == LAYER_BASE) {
unregister_mods(MOD_MASK_GUI);
}
return state;
}
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
if(keycode == KC_WPRN || keycode == KC_WSPC) {
if (record->event.pressed) {
register_code(KC_LGUI);
if(keycode == KC_WPRN) {
tap_code(KC_P);
} else if (keycode == KC_WSPC) {
tap_code(KC_SPACE);
}
}
}
return true;
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[LAYER_BASE] = LAYOUT(
/* ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐ */
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,
/* ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┴─────────┤ */
BR_QUOT, BR_1, BR_2, BR_3, BR_4, BR_5, BR_6, BR_7, BR_8, BR_9, BR_0, BR_MINS, BR_EQL, KC_BSPC,
/* ├─────────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬──────────────┤ */
KC_TAB, BR_Q, BR_W, BR_E, BR_R, BR_T, BR_Y, BR_U, BR_I, BR_O, BR_P, BR_ACUT, BR_LBRC, KC_ENT,
/* ├──────────────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬ ┤ */
W_CHOLD, BR_A, BR_S, BR_D, BR_F, BR_G, BR_H, BR_J, BR_K, BR_L, BR_CCED, BR_TILD, BR_RBRC,
/* ├───────────┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴─────────┴─┬─────────┤ */
KC_LSFT, BR_BSLS, BR_Z, BR_X, BR_C, BR_V, BR_B, BR_N, BR_M, BR_COMM, BR_DOT, BR_SCLN, BR_SLSH, KC_UP,
/* ├───────────┼─────────┴─┬───────┴───┬─────┴─────────┴─────────┴─────────┴─────────┴─────────┴───────┬─┴───────┬─┴───────┬─┴───────┬─────────┼─────────┤ */
KC_LCTL, L_FUNCT, KC_LALT, KC_SPC, KC_APP, KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT
/* └───────────┴───────────┴───────────┴───────────────────────────────────────────────────────────────┴─────────┴─────────┴─────────┴─────────┴─────────┘ */
),
[LAYER_FUNCTIONS] = LAYOUT(
/* ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐ */
RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSBR, KC_SNIP,
/* ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┴─────────┤ */
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_WMGM, KC_WMGP, _______,
/* ├─────────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬──────────────┤ */
_______, KC_MPLY, KC_MUTE, KC_WEXP, KC_WRUN, _______, _______, _______, _______, _______, KC_WPRN, _______, _______, _______,
/* ├──────────────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬ ┤ */
_______, KC_MPRV, KC_MNXT, KC_WDSK, _______, _______, _______, _______, _______, KC_WLCK, _______, _______, _______,
/* ├───────────┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴─────────┴─┬─────────┤ */
_______, _______, KC_VOLU, KC_VOLD, KC_CALC, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP,
/* ├───────────┼─────────┴─┬───────┴───┬─────┴─────────┴─────────┴─────────┴─────────┴─────────┴───────┬─┴───────┬─┴───────┬─┴───────┬─────────┼─────────┤ */
_______, _______, _______, KC_WSPC, _______, KC_INS, KC_HOME, KC_PGDN, KC_END
/* └───────────┴───────────┴───────────┴───────────────────────────────────────────────────────────────┴─────────┴─────────┴─────────┴─────────┴─────────┘ */
)
};

View File

@ -0,0 +1,16 @@
![BareDev Layout Image](https://i.imgur.com/FXye4Hn.png)
# ManoShu's custom layout
Has all the functions of a ABNT TKL keyboard, sans right shift.
Basic media functions also included.
Trying to emulate where notebooks/smaller OEM keyboard put the function key, for this reason the GUI key was moved and it can be used by holding the Caps Lock key.
To not use the new GUI position very often, commonly used GUI + [X] commands are sent using `SEND_STRING()`, `(un)register_code()` and `tap_code()`.
## Why you didn't used `LT(FUNCTIONS, KC_LGUI)` on the GUI/FN key?
Because I don't want rely on the tapping term to determine I will send either KC_HOME or snap the active window to the left.
If there is a better way to solve this, please let me know.

View File

@ -0,0 +1,88 @@
/* Copyright 2021 Fernando "ManoShu" Rodrigues
*
* 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_br_abnt2.h"
enum {
LAYER_BASE,
LAYER_FUNCTIONS,
BLANK_LAYER1,
BLANK_LAYER2
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[LAYER_BASE] = LAYOUT(
/* ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐ */
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,
/* ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┴─────────┤ */
BR_QUOT, BR_1, BR_2, BR_3, BR_4, BR_5, BR_6, BR_7, BR_8, BR_9, BR_0, BR_MINS, BR_EQL, KC_BSPC,
/* ├─────────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬──────────────┤ */
KC_TAB, BR_Q, BR_W, BR_E, BR_R, BR_T, BR_Y, BR_U, BR_I, BR_O, BR_P, BR_ACUT, BR_LBRC, KC_ENT,
/* ├──────────────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬ ┤ */
KC_CAPS, BR_A, BR_S, BR_D, BR_F, BR_G, BR_H, BR_J, BR_K, BR_L, BR_CCED, BR_TILD, BR_RBRC,
/* ├───────────┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴─────────┴─┬─────────┤ */
KC_LSFT, BR_BSLS, BR_Z, BR_X, BR_C, BR_V, BR_B, BR_N, BR_M, BR_COMM, BR_DOT, BR_SCLN, BR_SLSH, KC_UP,
/* ├───────────┼─────────┴─┬───────┴───┬─────┴─────────┴─────────┴─────────┴─────────┴─────────┴───────┬─┴───────┬─┴───────┬─┴───────┬─────────┼─────────┤ */
KC_LCTL, KC_LGUI, KC_LALT, LT(LAYER_FUNCTIONS, KC_SPC), KC_APP, KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT
/* └───────────┴───────────┴───────────┴───────────────────────────────────────────────────────────────┴─────────┴─────────┴─────────┴─────────┴─────────┘ */
),
[LAYER_FUNCTIONS] = LAYOUT(
/* ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐ */
RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS,
/* ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┴─────────┤ */
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
/* ├─────────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬──────────────┤ */
_______, KC_MPLY, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
/* ├──────────────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬ ┤ */
_______, KC_MPRV, KC_MNXT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
/* ├───────────┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴─────────┴─┬─────────┤ */
_______, _______, KC_VOLU, KC_VOLD, KC_CALC, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP,
/* ├───────────┼─────────┴─┬───────┴───┬─────┴─────────┴─────────┴─────────┴─────────┴─────────┴───────┬─┴───────┬─┴───────┬─┴───────┬─────────┼─────────┤ */
_______, _______, _______, _______, _______, KC_INS, KC_HOME, KC_PGDN, KC_END
/* └───────────┴───────────┴───────────┴───────────────────────────────────────────────────────────────┴─────────┴─────────┴─────────┴─────────┴─────────┘ */
),
[BLANK_LAYER1] = LAYOUT(
/* ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐ */
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
/* ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┴─────────┤ */
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
/* ├─────────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬──────────────┤ */
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
/* ├──────────────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬ ┤ */
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
/* ├───────────┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴─────────┴─┬─────────┤ */
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
/* ├───────────┼─────────┴─┬───────┴───┬─────┴─────────┴─────────┴─────────┴─────────┴─────────┴───────┬─┴───────┬─┴───────┬─┴───────┬─────────┼─────────┤ */
_______, _______, _______, _______, _______, _______, _______, _______, _______
/* └───────────┴───────────┴───────────┴───────────────────────────────────────────────────────────────┴─────────┴─────────┴─────────┴─────────┴─────────┘ */
),
[BLANK_LAYER2] = LAYOUT(
/* ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐ */
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
/* ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┴─────────┤ */
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
/* ├─────────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬──────────────┤ */
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
/* ├──────────────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬ ┤ */
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
/* ├───────────┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴─────────┴─┬─────────┤ */
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
/* ├───────────┼─────────┴─┬───────┴───┬─────┴─────────┴─────────┴─────────┴─────────┴─────────┴───────┬─┴───────┬─┴───────┬─┴───────┬─────────┼─────────┤ */
_______, _______, _______, _______, _______, _______, _______, _______, _______
/* └───────────┴───────────┴───────────┴───────────────────────────────────────────────────────────────┴─────────┴─────────┴─────────┴─────────┴─────────┘ */
)
};

View File

@ -0,0 +1,9 @@
VIA_ENABLE = yes
LEADER_ENABLE = no
FAUXCLICKY_ENABLE = no
MIDI_ENABLE = no
BLUETOOTH_ENABLE = no
KEY_LOCK_ENABLE = no
TERMINAL_ENABLE = no
LTO_ENABLE = yes

View File

@ -0,0 +1,8 @@
/* SPDX-License-Identifier: GPL-2.0-or-later */
#pragma once
#define VIAL_KEYBOARD_UID {0x73, 0x8C, 0x58, 0x53, 0xF8, 0x44, 0x5B, 0x0F}
#define VIAL_UNLOCK_COMBO_ROWS { 0, 2 }
#define VIAL_UNLOCK_COMBO_COLS { 0, 13 }

View File

@ -0,0 +1,88 @@
/* Copyright 2021 Fernando "ManoShu" Rodrigues
*
* 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_br_abnt2.h"
enum {
LAYER_BASE,
LAYER_FUNCTIONS,
BLANK_LAYER1,
BLANK_LAYER2
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[LAYER_BASE] = LAYOUT(
/* ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐ */
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,
/* ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┴─────────┤ */
BR_QUOT, BR_1, BR_2, BR_3, BR_4, BR_5, BR_6, BR_7, BR_8, BR_9, BR_0, BR_MINS, BR_EQL, KC_BSPC,
/* ├─────────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬──────────────┤ */
KC_TAB, BR_Q, BR_W, BR_E, BR_R, BR_T, BR_Y, BR_U, BR_I, BR_O, BR_P, BR_ACUT, BR_LBRC, KC_ENT,
/* ├──────────────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬ ┤ */
KC_CAPS, BR_A, BR_S, BR_D, BR_F, BR_G, BR_H, BR_J, BR_K, BR_L, BR_CCED, BR_TILD, BR_RBRC,
/* ├───────────┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴─────────┴─┬─────────┤ */
KC_LSFT, BR_BSLS, BR_Z, BR_X, BR_C, BR_V, BR_B, BR_N, BR_M, BR_COMM, BR_DOT, BR_SCLN, BR_SLSH, KC_UP,
/* ├───────────┼─────────┴─┬───────┴───┬─────┴─────────┴─────────┴─────────┴─────────┴─────────┴───────┬─┴───────┬─┴───────┬─┴───────┬─────────┼─────────┤ */
KC_LCTL, KC_LGUI, KC_LALT, LT(LAYER_FUNCTIONS, KC_SPC), KC_APP, KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT
/* └───────────┴───────────┴───────────┴───────────────────────────────────────────────────────────────┴─────────┴─────────┴─────────┴─────────┴─────────┘ */
),
[LAYER_FUNCTIONS] = LAYOUT(
/* ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐ */
RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS,
/* ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┴─────────┤ */
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
/* ├─────────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬──────────────┤ */
_______, KC_MPLY, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
/* ├──────────────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬ ┤ */
_______, KC_MPRV, KC_MNXT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
/* ├───────────┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴─────────┴─┬─────────┤ */
_______, _______, KC_VOLU, KC_VOLD, KC_CALC, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP,
/* ├───────────┼─────────┴─┬───────┴───┬─────┴─────────┴─────────┴─────────┴─────────┴─────────┴───────┬─┴───────┬─┴───────┬─┴───────┬─────────┼─────────┤ */
_______, _______, _______, _______, _______, KC_INS, KC_HOME, KC_PGDN, KC_END
/* └───────────┴───────────┴───────────┴───────────────────────────────────────────────────────────────┴─────────┴─────────┴─────────┴─────────┴─────────┘ */
),
[BLANK_LAYER1] = LAYOUT(
/* ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐ */
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
/* ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┴─────────┤ */
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
/* ├─────────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬──────────────┤ */
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
/* ├──────────────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬ ┤ */
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
/* ├───────────┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴─────────┴─┬─────────┤ */
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
/* ├───────────┼─────────┴─┬───────┴───┬─────┴─────────┴─────────┴─────────┴─────────┴─────────┴───────┬─┴───────┬─┴───────┬─┴───────┬─────────┼─────────┤ */
_______, _______, _______, _______, _______, _______, _______, _______, _______
/* └───────────┴───────────┴───────────┴───────────────────────────────────────────────────────────────┴─────────┴─────────┴─────────┴─────────┴─────────┘ */
),
[BLANK_LAYER2] = LAYOUT(
/* ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐ */
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
/* ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┴─────────┤ */
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
/* ├─────────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬──────────────┤ */
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
/* ├──────────────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬ ┤ */
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
/* ├───────────┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴─────────┴─┬─────────┤ */
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
/* ├───────────┼─────────┴─┬───────┴───┬─────┴─────────┴─────────┴─────────┴─────────┴─────────┴───────┬─┴───────┬─┴───────┬─┴───────┬─────────┼─────────┤ */
_______, _______, _______, _______, _______, _______, _______, _______, _______
/* └───────────┴───────────┴───────────┴───────────────────────────────────────────────────────────────┴─────────┴─────────┴─────────┴─────────┴─────────┘ */
)
};

View File

@ -0,0 +1,10 @@
VIA_ENABLE = yes
VIAL_ENABLE = yes
LEADER_ENABLE = no
FAUXCLICKY_ENABLE = no
MIDI_ENABLE = no
BLUETOOTH_ENABLE = no
KEY_LOCK_ENABLE = no
TERMINAL_ENABLE = no
LTO_ENABLE = yes

View File

@ -0,0 +1,20 @@
{
"name": "BareDev rev1",
"vendorId": "0xfeed",
"productId": "0x4126",
"lighting": "none",
"matrix": {
"rows": 6,
"cols": 14
},
"layouts": {
"keymap": [
[{"c": "#777777"},"0,0",{"x": 1,"c": "#cccccc"},"0,2","0,3","0,4","0,5",{"x": 0.5},"0,6","0,7","0,8","0,9",{"x": 0.5},"0,10","0,11","0,12","0,13"],
[{"y": 0.25},"1,0","1,1","1,2","1,3","1,4","1,5","1,6","1,7","1,8","1,9","1,10","1,11","1,12",{"c": "#aaaaaa","w": 2},"1,13"],
[{"w": 1.5},"2,0",{"c": "#cccccc"},"2,1","2,2","2,3","2,4","2,5","2,6","2,7","2,8","2,9","2,10","2,11","2,12",{"x": 0.25,"c": "#777777","w": 1.25,"h": 2,"w2": 1.5,"h2": 1,"x2": -0.25},"2,13"],
[{"c": "#aaaaaa","w": 1.75},"3,0",{"c": "#cccccc"},"3,1","3,2","3,3","3,4","3,5","3,6","3,7","3,8","3,9","3,10","3,11","3,12"],
[{"c": "#aaaaaa","w": 1.25},"4,0",{"c": "#cccccc"},"4,1","4,2","4,3","4,4","4,5","4,6","4,7","4,8","4,9","4,10","4,11","4,12",{"c": "#777777"},"4,13"],
[{"c": "#aaaaaa","w": 1.25},"5,0",{"w": 1.25},"5,1",{"w": 1.25},"5,2",{"c": "#cccccc","w": 6.25},"5,6",{"c": "#aaaaaa","w": 1.25},"5,9",{"c": "#cccccc"},"5,10",{"c": "#777777"},"5,11","5,12","5,13"]
]
}
}

View File

@ -0,0 +1,29 @@
# BareDev (rev1)
![PCB](https://i.imgur.com/byquO5u.png)
![Prototype Build](https://i.imgur.com/fkizunN.png)
An open-source, ABNT2-based 70% keyboard, focusing in a smaller footprint while retaining all the functions found on a TKL (Del and arrow keys doubling as the navigational cluster)
* Keyboard Maintainer: [Fernando "ManoShu" Rodrigues](https://github.com/ManoShu)
* Hardware Supported: BareDev rev1 PCB
* Hardware Availability: Files available on [GitHub](https://github.com/ManoShu/BareDev)
Make example for this keyboard (after setting up your build environment):
make handwired/baredev/rev1:default
Flashing example for this keyboard:
make handwired/baredev/rev1:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
## Bootloader
Enter the bootloader in 3 ways:
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
* **Keycode in layout**: Press the key mapped to `RESET` if it is available

View File

@ -0,0 +1,17 @@
/* Copyright 2021 Fernando "ManoShu" Rodrigues
*
* 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"

View File

@ -0,0 +1,19 @@
/* Copyright 2021 Fernando "ManoShu" Rodrigues
*
* 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"