Banana Split VIA Support (#11944)
* add VIA keymap for bananasplit * refactor code to new standards
This commit is contained in:
		@@ -1,28 +1,17 @@
 | 
			
		||||
/* Copyright 2021 MechMerlin <mechmerlin@gmail.com>
 | 
			
		||||
 *
 | 
			
		||||
 * 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 "bananasplit.h"
 | 
			
		||||
 | 
			
		||||
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);
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -14,8 +14,8 @@ 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/>.
 | 
			
		||||
*/
 | 
			
		||||
#ifndef BANANASPLIT_H
 | 
			
		||||
#define BANANASPLIT_H
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include "quantum.h"
 | 
			
		||||
 | 
			
		||||
@@ -32,7 +32,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
|  K40  |  K41  |  K42  |     K44     |  K45  |     K46     | K48 | K49 | K4A | K4B | K4C |
 | 
			
		||||
-------------------------------------------------------------------------------------------
 | 
			
		||||
*/
 | 
			
		||||
#define LAYOUT_base(                                                                     \
 | 
			
		||||
#define LAYOUT_base(                                                                \
 | 
			
		||||
    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D,           \
 | 
			
		||||
    K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D,           \
 | 
			
		||||
    K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C,                \
 | 
			
		||||
@@ -86,14 +86,14 @@ KEYMAP( \
 | 
			
		||||
#define LAYOUT_60_iso( \
 | 
			
		||||
    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
 | 
			
		||||
    K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
 | 
			
		||||
    K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \
 | 
			
		||||
    K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \
 | 
			
		||||
    K40, K41, K42,           K45,           K48, K49,      K4B, K4C  \
 | 
			
		||||
    K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C,      \
 | 
			
		||||
    K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C,      \
 | 
			
		||||
    K40, K41, K42,           K45,           K48, K49,      K4B, K4C       \
 | 
			
		||||
) { \
 | 
			
		||||
    { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \
 | 
			
		||||
    { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \
 | 
			
		||||
    { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, KC_NO }, \
 | 
			
		||||
    { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO }, \
 | 
			
		||||
    { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D },    \
 | 
			
		||||
    { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D },    \
 | 
			
		||||
    { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, KC_NO },  \
 | 
			
		||||
    { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO },  \
 | 
			
		||||
    { K40, K41, K42, KC_NO,    KC_NO,    K45, KC_NO,    KC_NO,    K48, K49, KC_NO,    K4B, K4C, KC_NO }  \
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -112,10 +112,10 @@ KEYMAP( \
 | 
			
		||||
*/
 | 
			
		||||
#define LAYOUT_all( \
 | 
			
		||||
    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D, \
 | 
			
		||||
    K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
 | 
			
		||||
    K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \
 | 
			
		||||
    K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
 | 
			
		||||
    K40, K41, K42,      K44, K45, K46,      K48, K49, K4A, K4B, K4C  \
 | 
			
		||||
    K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D,      \
 | 
			
		||||
    K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C,           \
 | 
			
		||||
    K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D,      \
 | 
			
		||||
    K40, K41, K42,      K44, K45, K46,      K48, K49, K4A, K4B, K4C            \
 | 
			
		||||
) { \
 | 
			
		||||
    { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \
 | 
			
		||||
    { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \
 | 
			
		||||
@@ -126,17 +126,15 @@ KEYMAP( \
 | 
			
		||||
 | 
			
		||||
#define LAYOUT_hhkb_arrow( \
 | 
			
		||||
    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D, \
 | 
			
		||||
    K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
 | 
			
		||||
    K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \
 | 
			
		||||
    K30,      K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D,\
 | 
			
		||||
    K40, K41, K42,      K44, K45, K46,      K48, K49, K4A, K4B, K4C  \
 | 
			
		||||
    K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D,      \
 | 
			
		||||
    K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C,           \
 | 
			
		||||
    K30,      K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D,      \
 | 
			
		||||
    K40, K41, K42,      K44, K45, K46,      K48, K49, K4A, K4B, K4C            \
 | 
			
		||||
) { \
 | 
			
		||||
    { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \
 | 
			
		||||
    { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \
 | 
			
		||||
    { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \
 | 
			
		||||
    { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D },   \
 | 
			
		||||
    { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D },   \
 | 
			
		||||
    { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D },   \
 | 
			
		||||
    { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \
 | 
			
		||||
    { K40, K41, K42, KC_NO,    K44, K45, K46, KC_NO,    K48, K49, K4A, K4B, K4C, KC_NO }  \
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 
 | 
			
		||||
@@ -15,8 +15,7 @@ You should have received a copy of the GNU General Public License
 | 
			
		||||
along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#ifndef CONFIG_H
 | 
			
		||||
#define CONFIG_H
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include "config_common.h"
 | 
			
		||||
 | 
			
		||||
@@ -55,22 +54,3 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
/* Locking resynchronize hack */
 | 
			
		||||
#define LOCKING_RESYNC_ENABLE
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Feature disable options
 | 
			
		||||
 *  These options are also useful to firmware size reduction.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/* disable debug print */
 | 
			
		||||
//#define NO_DEBUG
 | 
			
		||||
 | 
			
		||||
/* disable print */
 | 
			
		||||
//#define NO_PRINT
 | 
			
		||||
 | 
			
		||||
/* disable action features */
 | 
			
		||||
//#define NO_ACTION_LAYER
 | 
			
		||||
//#define NO_ACTION_TAPPING
 | 
			
		||||
//#define NO_ACTION_ONESHOT
 | 
			
		||||
//#define NO_ACTION_MACRO
 | 
			
		||||
//#define NO_ACTION_FUNCTION
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										53
									
								
								keyboards/thevankeyboards/bananasplit/keymaps/via/keymap.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								keyboards/thevankeyboards/bananasplit/keymaps/via/keymap.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,53 @@
 | 
			
		||||
/* Copyright 2021 MechMerlin <mechmerlin@gmail.com>
 | 
			
		||||
 *
 | 
			
		||||
 * 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
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
    [0] = LAYOUT_60_ansi(
 | 
			
		||||
        KC_GRV,  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_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_LBRC, KC_RBRC, KC_BSLS,
 | 
			
		||||
        KC_CAPS, 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_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH,          KC_RSFT,
 | 
			
		||||
        KC_LCTL, KC_LGUI, KC_LALT,                            KC_SPC,                             KC_RALT, KC_RGUI, KC_APP,  KC_RCTL
 | 
			
		||||
    ),
 | 
			
		||||
 | 
			
		||||
    [1] = LAYOUT_60_ansi(
 | 
			
		||||
      KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
 | 
			
		||||
	    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
 | 
			
		||||
      KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,          \
 | 
			
		||||
      KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,                   \
 | 
			
		||||
      KC_TRNS, KC_TRNS, KC_TRNS,       KC_TRNS,                               KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
 | 
			
		||||
    ),
 | 
			
		||||
 | 
			
		||||
    [2] = LAYOUT_60_ansi(
 | 
			
		||||
      KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
 | 
			
		||||
	    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
 | 
			
		||||
      KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,          \
 | 
			
		||||
      KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,                   \
 | 
			
		||||
      KC_TRNS, KC_TRNS, KC_TRNS,       KC_TRNS,                               KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
 | 
			
		||||
    ),
 | 
			
		||||
 | 
			
		||||
    [3] = LAYOUT_60_ansi(
 | 
			
		||||
      KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
 | 
			
		||||
	    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
 | 
			
		||||
      KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,          \
 | 
			
		||||
      KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,                   \
 | 
			
		||||
      KC_TRNS, KC_TRNS, KC_TRNS,       KC_TRNS,                               KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
 | 
			
		||||
    ),
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
};
 | 
			
		||||
@@ -0,0 +1,2 @@
 | 
			
		||||
VIA_ENABLE = yes
 | 
			
		||||
LTO_ENABLE = yes
 | 
			
		||||
@@ -2,9 +2,9 @@
 | 
			
		||||
 | 
			
		||||
A 60% PCB featuring a split spacebar.
 | 
			
		||||
 | 
			
		||||
Keyboard Maintainer: QMK Community  
 | 
			
		||||
Hardware Supported: BananaSplit60 PCB  
 | 
			
		||||
Hardware Availability: https://thevankeyboards.com/products/gb-bananasplit-60-keyboard-kit?variant=42149104910
 | 
			
		||||
* Keyboard Maintainer: QMK Community  
 | 
			
		||||
* Hardware Supported: BananaSplit60 PCB  
 | 
			
		||||
* Hardware Availability: [TheVan Keyboards](https://thevankeyboards.com/)
 | 
			
		||||
 | 
			
		||||
Make example for this keyboard (after setting up your build environment):
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -14,16 +14,12 @@ BOOTLOADER = atmel-dfu
 | 
			
		||||
# Build Options
 | 
			
		||||
#   comment out to disable the options.
 | 
			
		||||
#
 | 
			
		||||
BOOTMAGIC_ENABLE = yes	# Virtual DIP switch configuration
 | 
			
		||||
MOUSEKEY_ENABLE = yes	# Mouse keys
 | 
			
		||||
EXTRAKEY_ENABLE = yes	# Audio control and System control
 | 
			
		||||
CONSOLE_ENABLE = yes	# Console for debug
 | 
			
		||||
COMMAND_ENABLE = yes    # Commands for debug and configuration
 | 
			
		||||
#SLEEP_LED_ENABLE = yes  # Breathing sleep LED during USB suspend
 | 
			
		||||
NKRO_ENABLE = yes	# USB Nkey Rollover - not yet supported in LUFA
 | 
			
		||||
BOOTMAGIC_ENABLE = lite	   # Virtual DIP switch configuration
 | 
			
		||||
MOUSEKEY_ENABLE = yes	   # Mouse keys
 | 
			
		||||
EXTRAKEY_ENABLE = yes	   # Audio control and System control
 | 
			
		||||
CONSOLE_ENABLE = yes	   # Console for debug
 | 
			
		||||
COMMAND_ENABLE = yes       # Commands for debug and configuration
 | 
			
		||||
NKRO_ENABLE = yes	       # USB Nkey Rollover - not yet supported in LUFA
 | 
			
		||||
BACKLIGHT_ENABLE = yes
 | 
			
		||||
 | 
			
		||||
# Optimize size but this may cause error "relocation truncated to fit"
 | 
			
		||||
#EXTRALDFLAGS = -Wl,--relax
 | 
			
		||||
 | 
			
		||||
LAYOUTS = 60_ansi 60_iso
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user