From e6cc9cc78d40af1386f9a116d5fcc95c20233110 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 | 7 ++-- quantum/template/base/keymaps/default/keymap.c | 19 ++++++++-- 4 files changed, 88 insertions(+), 6 deletions(-) create mode 100644 quantum/template/base/keyboard.c (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 index 2e531b1fd4..8a21d92578 100644 --- a/quantum/template/base/keyboard.h +++ b/quantum/template/base/keyboard.h @@ -13,11 +13,12 @@ * 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 a shortcut to help you visually see your layout. +/* 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. @@ -27,9 +28,9 @@ */ #define LAYOUT( \ k00, k01, k02, \ - k10, k11 \ + k10, k12 \ ) \ { \ { k00, k01, k02 }, \ - { k10, KC_NO, k11 }, \ + { k10, KC_NO, k12 } \ } diff --git a/quantum/template/base/keymaps/default/keymap.c b/quantum/template/base/keymaps/default/keymap.c index 3508055b78..4d5bac7b2f 100644 --- a/quantum/template/base/keymaps/default/keymap.c +++ b/quantum/template/base/keymaps/default/keymap.c @@ -15,6 +15,12 @@ */ #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, @@ -22,10 +28,15 @@ enum custom_keycodes { }; 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) { @@ -50,6 +61,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; } +/* void matrix_init_user(void) { } @@ -61,3 +73,4 @@ void matrix_scan_user(void) { void led_set_user(uint8_t usb_led) { } +*/ -- cgit v1.2.1