From 1836a6f5d22faca8a8db828d64d47bbfb7d8e45e Mon Sep 17 00:00:00 2001 From: fauxpark Date: Sat, 2 Nov 2019 13:06:03 +1100 Subject: Template updates (#7221) * Template updates * Flesh out info.json & keymap.c, and turn double spaces section into a list * Add enum to demonstrate layer naming * Semicolon --- quantum/template/base/info.json | 18 ++++++++++ quantum/template/base/keyboard.c | 50 ++++++++++++++++++++++++++ quantum/template/base/keyboard.h | 36 +++++++++++++++++++ quantum/template/base/keymaps/default/keymap.c | 18 ++++++++-- 4 files changed, 120 insertions(+), 2 deletions(-) create mode 100644 quantum/template/base/keyboard.c create mode 100644 quantum/template/base/keyboard.h (limited to 'quantum/template/base') diff --git a/quantum/template/base/info.json b/quantum/template/base/info.json index e69de29bb2..b8e8f1f2db 100644 --- a/quantum/template/base/info.json +++ b/quantum/template/base/info.json @@ -0,0 +1,18 @@ +{ + "keyboard_name": "%KEYBOARD%", + "url": "", + "maintainer": "%YOUR_NAME%", + "width": 3, + "height": 2, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"k00", "x":0, "y":0}, + {"label":"k01", "x":1, "y":0}, + {"label":"k02", "x":2, "y":0}, + {"label":"k10", "x":0, "y":1, "w":1.5}, + {"label":"k12", "x":1.5, "y":1, "w":1.5} + ] + } + } +} diff --git a/quantum/template/base/keyboard.c b/quantum/template/base/keyboard.c new file mode 100644 index 0000000000..55e4fffd3a --- /dev/null +++ b/quantum/template/base/keyboard.c @@ -0,0 +1,50 @@ +/* Copyright %YEAR% %YOUR_NAME% + * + * 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 "%KEYBOARD%.h" + +// Optional override functions below. +// You can leave any or all of these undefined. +// These are only required if you want to perform custom actions. + +/* +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + + matrix_init_user(); +} + +void matrix_scan_kb(void) { + // put your looping keyboard code here + // runs every cycle (a lot) + + matrix_scan_user(); +} + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + // put your per-action keyboard code here + // runs for every action, just before processing by the firmware + + return process_record_user(keycode, record); +} + +void led_set_kb(uint8_t usb_led) { + // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here + + led_set_user(usb_led); +} +*/ diff --git a/quantum/template/base/keyboard.h b/quantum/template/base/keyboard.h new file mode 100644 index 0000000000..8a21d92578 --- /dev/null +++ b/quantum/template/base/keyboard.h @@ -0,0 +1,36 @@ +/* Copyright %YEAR% %YOUR_NAME% + * + * 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 + +#include "quantum.h" + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT( \ + k00, k01, k02, \ + k10, k12 \ +) \ +{ \ + { k00, k01, k02 }, \ + { k10, KC_NO, k12 } \ +} diff --git a/quantum/template/base/keymaps/default/keymap.c b/quantum/template/base/keymaps/default/keymap.c index 308cb92a77..0002d91216 100644 --- a/quantum/template/base/keymaps/default/keymap.c +++ b/quantum/template/base/keymaps/default/keymap.c @@ -15,12 +15,25 @@ */ #include QMK_KEYBOARD_H +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _FN +}; + // Defines the keycodes used by our macros in process_record_user enum custom_keycodes { QMKBEST = SAFE_RANGE, QMKURL }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT(/* Base */ - KC_A, KC_1, KC_H, KC_TAB, KC_SPC), + /* Base */ + [_BASE] = LAYOUT( + KC_A, KC_1, MO(_FN), + KC_TAB, KC_SPC + ), + [_FN] = LAYOUT( + QMKBEST, QMKURL, _______, + RESET, XXXXXXX + ) }; bool process_record_user(uint16_t keycode, keyrecord_t *record) { @@ -45,6 +58,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; } + void matrix_init_user(void) {} void matrix_scan_user(void) {} -- cgit v1.2.3