Merge remote-tracking branch 'origin/master' into develop
This commit is contained in:
		
						commit
						8e8ec6338c
					
				
					 128 changed files with 5388 additions and 1925 deletions
				
			
		
							
								
								
									
										57
									
								
								keyboards/bastardkb/skeletyl/config.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										57
									
								
								keyboards/bastardkb/skeletyl/config.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,57 @@
 | 
			
		|||
/* 
 | 
			
		||||
 * Copyright 2021 Quentin LEBASTARD <qlebastard@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/>.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
#include "config_common.h"
 | 
			
		||||
#define VENDOR_ID 0xA8F8
 | 
			
		||||
#define PRODUCT_ID 0x1830
 | 
			
		||||
#define DEVICE_VER 0x0001
 | 
			
		||||
#define MANUFACTURER Bastard Keyboards
 | 
			
		||||
#define PRODUCT Skeletyl
 | 
			
		||||
 | 
			
		||||
#define MATRIX_ROWS 8
 | 
			
		||||
#define MATRIX_COLS 5
 | 
			
		||||
#define RGBLIGHT_LIMIT_VAL 180
 | 
			
		||||
#define MATRIX_ROW_PINS { B5, F7, F6, B6 }
 | 
			
		||||
#define MATRIX_COL_PINS { E6, C6, B1, B3, B2 }
 | 
			
		||||
 | 
			
		||||
#define DIODE_DIRECTION ROW2COL
 | 
			
		||||
 | 
			
		||||
#define RGB_DI_PIN D2
 | 
			
		||||
#define RGBLED_NUM 36
 | 
			
		||||
#define RGBLED_SPLIT { 18, 18 }
 | 
			
		||||
#define RGBLIGHT_ANIMATIONS
 | 
			
		||||
 | 
			
		||||
#define DEBOUNCE 5
 | 
			
		||||
 | 
			
		||||
#define SOFT_SERIAL_PIN D0
 | 
			
		||||
 | 
			
		||||
#define USB_POLLING_INTERVAL_MS 1
 | 
			
		||||
#define MASTER_RIGHT
 | 
			
		||||
 | 
			
		||||
// RGB matrix support
 | 
			
		||||
#ifdef RGB_MATRIX_ENABLE
 | 
			
		||||
#    define SPLIT_TRANSPORT_MIRROR
 | 
			
		||||
#    define DRIVER_LED_TOTAL 36 // Number of LEDs
 | 
			
		||||
#    define RGB_MATRIX_SPLIT { 18, 18 }
 | 
			
		||||
#    define RGB_MATRIX_MAXIMUM_BRIGHTNESS 50
 | 
			
		||||
#    define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS
 | 
			
		||||
#    ifndef RGB_DISABLE_WHEN_USB_SUSPENDED
 | 
			
		||||
#        define RGB_DISABLE_WHEN_USB_SUSPENDED true
 | 
			
		||||
#    endif
 | 
			
		||||
#    define RGB_MATRIX_KEYPRESSES
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										49
									
								
								keyboards/bastardkb/skeletyl/info.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								keyboards/bastardkb/skeletyl/info.json
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,49 @@
 | 
			
		|||
{
 | 
			
		||||
    "keyboard_name": "Skeletyl",
 | 
			
		||||
    "url": "https://www.bastardkb.com",
 | 
			
		||||
    "maintainer": "Quentin Lebastard",
 | 
			
		||||
    "width": 17,
 | 
			
		||||
    "height": 4,
 | 
			
		||||
    "layouts": {
 | 
			
		||||
        "LAYOUT_split_3x5_3": {
 | 
			
		||||
            "layout": [
 | 
			
		||||
                {"label":"L00", "x":0, "y":0},
 | 
			
		||||
                {"label":"L01", "x":1, "y":0},
 | 
			
		||||
                {"label":"L02", "x":2, "y":0},
 | 
			
		||||
                {"label":"L03", "x":3, "y":0},
 | 
			
		||||
                {"label":"L04", "x":4, "y":0},
 | 
			
		||||
                {"label":"R00", "x":11, "y":0},
 | 
			
		||||
                {"label":"R01", "x":12, "y":0},
 | 
			
		||||
                {"label":"R02", "x":13, "y":0},
 | 
			
		||||
                {"label":"R03", "x":14, "y":0},
 | 
			
		||||
                {"label":"R04", "x":15, "y":0},
 | 
			
		||||
                {"label":"L10", "x":0, "y":1},
 | 
			
		||||
                {"label":"L11", "x":1, "y":1},
 | 
			
		||||
                {"label":"L12", "x":2, "y":1},
 | 
			
		||||
                {"label":"L13", "x":3, "y":1},
 | 
			
		||||
                {"label":"L14", "x":4, "y":1},
 | 
			
		||||
                {"label":"R10", "x":11, "y":1},
 | 
			
		||||
                {"label":"R11", "x":12, "y":1},
 | 
			
		||||
                {"label":"R12", "x":13, "y":1},
 | 
			
		||||
                {"label":"R13", "x":14, "y":1},
 | 
			
		||||
                {"label":"R14", "x":15, "y":1},
 | 
			
		||||
                {"label":"L20", "x":0, "y":2},
 | 
			
		||||
                {"label":"L21", "x":1, "y":2},
 | 
			
		||||
                {"label":"L22", "x":2, "y":2},
 | 
			
		||||
                {"label":"L23", "x":3, "y":2},
 | 
			
		||||
                {"label":"L24", "x":4, "y":2},
 | 
			
		||||
                {"label":"R20", "x":11, "y":2},
 | 
			
		||||
                {"label":"R21", "x":12, "y":2},
 | 
			
		||||
                {"label":"R22", "x":13, "y":2},
 | 
			
		||||
                {"label":"R23", "x":14, "y":2},
 | 
			
		||||
                {"label":"R24", "x":15, "y":2},
 | 
			
		||||
                {"label":"L33", "x":4, "y":3},
 | 
			
		||||
                {"label":"L34", "x":5, "y":3},
 | 
			
		||||
                {"label":"L31", "x":6, "y":3},
 | 
			
		||||
                {"label":"R33", "x":9, "y":3},
 | 
			
		||||
                {"label":"R34", "x":10, "y":3},
 | 
			
		||||
                {"label":"R31", "x":11, "y":3}
 | 
			
		||||
            ]
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										70
									
								
								keyboards/bastardkb/skeletyl/keymaps/default/keymap.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										70
									
								
								keyboards/bastardkb/skeletyl/keymaps/default/keymap.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,70 @@
 | 
			
		|||
/* 
 | 
			
		||||
 * Copyright 2021 Quentin LEBASTARD <qlebastard@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_split_3x5_3(
 | 
			
		||||
  //,-----------------------------------------------------.                    ,-----------------------------------------------------.
 | 
			
		||||
       KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,                         KC_Y,    KC_U,    KC_I,    KC_O,   KC_P,
 | 
			
		||||
  //|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------|
 | 
			
		||||
      KC_A,    KC_S,    KC_D,    KC_F,    KC_G,                         KC_H,    KC_J,    KC_K,    KC_L, KC_SCLN,
 | 
			
		||||
  //|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------|
 | 
			
		||||
      KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,                         KC_N,    KC_M, KC_COMM,  KC_DOT, KC_SLSH, 
 | 
			
		||||
  //|--------+--------+--------+--------+--------+--------+--------|  |--------+--------+--------+--------+--------+--------+--------|
 | 
			
		||||
                                          KC_LGUI, KC_SPC  ,  MO(1),     MO(2), KC_ENT , KC_RALT
 | 
			
		||||
                                      //`--------------------------'  `--------------------------'
 | 
			
		||||
 | 
			
		||||
  ),
 | 
			
		||||
 | 
			
		||||
  [1] = LAYOUT_split_3x5_3(
 | 
			
		||||
  //,-----------------------------------------------------.                    ,-----------------------------------------------------.
 | 
			
		||||
      KC_1,    KC_2,    KC_3,    KC_4,    KC_5,                         KC_6,    KC_7,    KC_8,    KC_9,    KC_0,
 | 
			
		||||
  //|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------|
 | 
			
		||||
      XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,                      KC_LEFT, KC_DOWN,   KC_UP,KC_RIGHT, XXXXXXX,
 | 
			
		||||
  //|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------|
 | 
			
		||||
      XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,                      XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
 | 
			
		||||
  //|--------+--------+--------+--------+--------+--------+--------|  |--------+--------+--------+--------+--------+--------+--------|
 | 
			
		||||
                                          KC_LGUI, KC_SPC,  _______,     MO(3), KC_ENT, KC_RALT
 | 
			
		||||
                                      //`--------------------------'  `--------------------------'
 | 
			
		||||
  ),
 | 
			
		||||
 | 
			
		||||
  [2] = LAYOUT_split_3x5_3(
 | 
			
		||||
  //,-----------------------------------------------------.                    ,-----------------------------------------------------.
 | 
			
		||||
      KC_EXLM,   KC_AT, KC_HASH,  KC_DLR, KC_PERC,                      KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN,
 | 
			
		||||
  //|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------|
 | 
			
		||||
      XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,                      KC_MINS,  KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
 | 
			
		||||
  //|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------|
 | 
			
		||||
      XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,                      KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
 | 
			
		||||
  //|--------+--------+--------+--------+--------+--------+--------|  |--------+--------+--------+--------+--------+--------+--------|
 | 
			
		||||
                                          KC_LGUI,  KC_SPC,  MO(3),     _______, KC_ENT, KC_RALT
 | 
			
		||||
                                      //`--------------------------'  `--------------------------'
 | 
			
		||||
  ),
 | 
			
		||||
 | 
			
		||||
  [3] = LAYOUT_split_3x5_3(
 | 
			
		||||
  //,-----------------------------------------------------.                    ,-----------------------------------------------------.
 | 
			
		||||
      XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,                      XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
 | 
			
		||||
  //|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------|
 | 
			
		||||
      RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX,                      XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
 | 
			
		||||
  //|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------|
 | 
			
		||||
      RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX,                      XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
 | 
			
		||||
  //|--------+--------+--------+--------+--------+--------+--------|  |--------+--------+--------+--------+--------+--------+--------|
 | 
			
		||||
                                          KC_LGUI,  KC_SPC, _______,     _______, KC_ENT, KC_RALT
 | 
			
		||||
                                      //`--------------------------'  `--------------------------'
 | 
			
		||||
  )
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										17
									
								
								keyboards/bastardkb/skeletyl/readme.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								keyboards/bastardkb/skeletyl/readme.md
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,17 @@
 | 
			
		|||
# Skeletyl
 | 
			
		||||
 | 
			
		||||
A very small keyboard made for ergonomic enthusiasts.
 | 
			
		||||
 | 
			
		||||
* Keyboard Maintainer: [Bastard Keyboards](https://github.com/Bastardkb/)
 | 
			
		||||
* Hardware Supported: elite-C V4
 | 
			
		||||
* Hardware Availability: [Bastardkb.com](https://bastardkb.com/)
 | 
			
		||||
 | 
			
		||||
Make example for this keyboard (after setting up your build environment):
 | 
			
		||||
 | 
			
		||||
    make bastardkb/skeletyl:default
 | 
			
		||||
    
 | 
			
		||||
This keyboard is made to be used with the Miryoku layout, do not use the default keymap.
 | 
			
		||||
 | 
			
		||||
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).
 | 
			
		||||
 | 
			
		||||
See the [keyboard build instructions](http://docs.bastardkb.com/)
 | 
			
		||||
							
								
								
									
										33
									
								
								keyboards/bastardkb/skeletyl/rules.mk
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								keyboards/bastardkb/skeletyl/rules.mk
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,33 @@
 | 
			
		|||
# MCU name
 | 
			
		||||
MCU = atmega32u4
 | 
			
		||||
 | 
			
		||||
# Bootloader selection
 | 
			
		||||
BOOTLOADER = atmel-dfu
 | 
			
		||||
 | 
			
		||||
# Build Options
 | 
			
		||||
#   change yes to no to disable
 | 
			
		||||
#
 | 
			
		||||
BOOTMAGIC_ENABLE = lite     # Virtual DIP switch configuration
 | 
			
		||||
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
 | 
			
		||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
 | 
			
		||||
SLEEP_LED_ENABLE = no       # Breathing sleep LED during USB suspend
 | 
			
		||||
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
 | 
			
		||||
NKRO_ENABLE = yes            # USB Nkey Rollover
 | 
			
		||||
BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
 | 
			
		||||
RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow
 | 
			
		||||
RGB_MATRIX_ENABLE = yes     # Enable keyboard RGB matrix (do not use together with RGBLIGHT_ENABLE)
 | 
			
		||||
RGB_MATRIX_DRIVER = WS2812  # RGB matrix driver support
 | 
			
		||||
BLUETOOTH_ENABLE = no       # Enable Bluetooth
 | 
			
		||||
AUDIO_ENABLE = no           # Audio output
 | 
			
		||||
SPLIT_KEYBOARD = yes
 | 
			
		||||
TAP_DANCE_ENABLE = no
 | 
			
		||||
LTO_ENABLE = yes
 | 
			
		||||
 | 
			
		||||
AUDIO_SUPPORTED = no
 | 
			
		||||
RGB_MATRIX_SUPPORTED = yes
 | 
			
		||||
RGBLIGHT_SUPPORTED = yes
 | 
			
		||||
 | 
			
		||||
LAYOUTS = split_3x5_3
 | 
			
		||||
							
								
								
									
										57
									
								
								keyboards/bastardkb/skeletyl/skeletyl.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										57
									
								
								keyboards/bastardkb/skeletyl/skeletyl.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,57 @@
 | 
			
		|||
/* 
 | 
			
		||||
 * Copyright 2021 Quentin LEBASTARD <qlebastard@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 "skeletyl.h"
 | 
			
		||||
 | 
			
		||||
#ifdef RGB_MATRIX_ENABLE
 | 
			
		||||
led_config_t g_led_config = { {
 | 
			
		||||
    // left
 | 
			
		||||
    {  0,  5,  6, 11, 12 },
 | 
			
		||||
    {  1,  4,  7, 10, 13 },
 | 
			
		||||
    {  2,  3,  8,  9, 14 },
 | 
			
		||||
    { 15, NO_LED, 16, 17, NO_LED },
 | 
			
		||||
    // right
 | 
			
		||||
    { 18, 23, 24, 29, 30 },
 | 
			
		||||
    { 19, 22, 25, 28, 31 },
 | 
			
		||||
    { 20, 21, 26, 27, 32 },
 | 
			
		||||
    { 33, NO_LED, 34, 35, NO_LED }
 | 
			
		||||
}, {
 | 
			
		||||
    // left
 | 
			
		||||
    {   0,   0 }, {   0,  21 }, {   0,  42 }, // col 1
 | 
			
		||||
    {  25,  42 }, {  25,  21 }, {  25,   0 }, // col 2
 | 
			
		||||
    {  50,   0 }, {  50,  21 }, {  50,  42 },
 | 
			
		||||
    {  74,  42 }, {  74,  21 }, {  74,   0 },
 | 
			
		||||
    {  99,   0 }, {  99,  21 }, {  99,  42 },
 | 
			
		||||
    {  50,  64 }, {  74,  64 }, {  99,  64 }, // left thumb cluster
 | 
			
		||||
    // right
 | 
			
		||||
    { 224,   0 }, { 224,  21 }, { 224,  42 }, // col 10
 | 
			
		||||
    { 198,  42 }, { 198,  21 }, { 198,   0 }, // col 9
 | 
			
		||||
    { 174,   0 }, { 174,  21 }, { 174,  42 },
 | 
			
		||||
    { 149,  42 }, { 149,  21 }, { 149,   0 },
 | 
			
		||||
    { 124,   0 }, { 124,  21 }, { 124,  42 },
 | 
			
		||||
    { 174,  64 }, { 149,  64 }, { 124,  64 }  // right thumb cluster
 | 
			
		||||
}, {
 | 
			
		||||
    // left
 | 
			
		||||
    4, 4, 4, 4, 4, 4, 4,
 | 
			
		||||
    4, 4, 4, 4, 4, 4, 4, 4,
 | 
			
		||||
    2, 2, 2,
 | 
			
		||||
    // right
 | 
			
		||||
    4, 4, 4, 4, 4, 4, 4,
 | 
			
		||||
    4, 4, 4, 4, 4, 4, 4, 4,
 | 
			
		||||
    2, 2, 2
 | 
			
		||||
} };
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										37
									
								
								keyboards/bastardkb/skeletyl/skeletyl.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								keyboards/bastardkb/skeletyl/skeletyl.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,37 @@
 | 
			
		|||
/* 
 | 
			
		||||
 * Copyright 2021 Quentin LEBASTARD <qlebastard@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/>.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
#include "quantum.h"
 | 
			
		||||
 | 
			
		||||
#define LAYOUT_split_3x5_3( \
 | 
			
		||||
	k00, k01, k02, k03, k04,     			k44, k43, k42, k41, k40, \
 | 
			
		||||
	k10, k11, k12, k13, k14,	    		k54, k53, k52, k51, k50, \
 | 
			
		||||
	k20, k21, k22, k23, k24,    			k64, k63, k62, k61, k60, \
 | 
			
		||||
		       k33, k34, k31,		        k71, k74, k73  \
 | 
			
		||||
)\
 | 
			
		||||
{\
 | 
			
		||||
	{ k00, k01, k02, k03, k04 }, \
 | 
			
		||||
	{ k10, k11, k12, k13, k14 }, \
 | 
			
		||||
	{ k20, k21, k22, k23, k24 }, \
 | 
			
		||||
	{ k31, KC_NO, k33, k34, KC_NO }, \
 | 
			
		||||
	{ k40, k41, k42, k43, k44 }, \
 | 
			
		||||
	{ k50, k51, k52, k53, k54 }, \
 | 
			
		||||
	{ k60, k61, k62, k63, k64 }, \
 | 
			
		||||
	{ k71, KC_NO, k73, k74, KC_NO }, \
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -18,45 +18,3 @@
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
#include "config_common.h"
 | 
			
		||||
 | 
			
		||||
/* USB Device descriptor parameter */
 | 
			
		||||
#define VENDOR_ID       0xF35B
 | 
			
		||||
#define PRODUCT_ID      0xFAB0
 | 
			
		||||
#define DEVICE_VER      0x0001
 | 
			
		||||
#define MANUFACTURER    customMK
 | 
			
		||||
#define PRODUCT         Genesis
 | 
			
		||||
 | 
			
		||||
/* key matrix size */
 | 
			
		||||
#define MATRIX_ROWS 5
 | 
			
		||||
#define MATRIX_COLS 4
 | 
			
		||||
 | 
			
		||||
/* key matrix pins */
 | 
			
		||||
#define MATRIX_ROW_PINS { F0, C7, C6, B6, B5 }
 | 
			
		||||
#define MATRIX_COL_PINS { F4, F5, D7, B4 }
 | 
			
		||||
#define UNUSED_PINS
 | 
			
		||||
 | 
			
		||||
/* COL2ROW or ROW2COL */
 | 
			
		||||
#define DIODE_DIRECTION COL2ROW
 | 
			
		||||
 | 
			
		||||
/* Set 0 if debouncing isn't needed */
 | 
			
		||||
#define DEBOUNCE 5
 | 
			
		||||
 | 
			
		||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
 | 
			
		||||
#define LOCKING_SUPPORT_ENABLE
 | 
			
		||||
 | 
			
		||||
/* Locking resynchronize hack */
 | 
			
		||||
#define LOCKING_RESYNC_ENABLE
 | 
			
		||||
 | 
			
		||||
#define ENCODERS_PAD_A { F6, D2 }
 | 
			
		||||
#define ENCODERS_PAD_B { F7, D1 }
 | 
			
		||||
#define ENCODER_RESOLUTION 4
 | 
			
		||||
#define TAP_CODE_DELAY 10
 | 
			
		||||
 | 
			
		||||
#define RGB_DI_PIN E6
 | 
			
		||||
#define RGBLIGHT_ANIMATIONS
 | 
			
		||||
#define RGBLED_NUM 13
 | 
			
		||||
#define RGBLIGHT_HUE_STEP 8
 | 
			
		||||
#define RGBLIGHT_SAT_STEP 8
 | 
			
		||||
#define RGBLIGHT_VAL_STEP 8
 | 
			
		||||
#define RGBLIGHT_LIMIT_VAL 128
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,10 +1,10 @@
 | 
			
		|||
# Genesis
 | 
			
		||||
 | 
			
		||||
Genesis is a 5x4 ortholinear macro pad designed and produced by customMK. 
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
Genesis is a 5x4 ortholinear macro pad designed and produced by customMK. 
 | 
			
		||||
 | 
			
		||||
* Keyboard Maintainer: [customMK](https://github.com/customMK)
 | 
			
		||||
* Hardware Supported: Genesis Macro Pad
 | 
			
		||||
* Hardware Availability: [customMK](https://shop.custommk.com/products/genesis_macropad)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										65
									
								
								keyboards/custommk/genesis/rev1/config.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										65
									
								
								keyboards/custommk/genesis/rev1/config.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,65 @@
 | 
			
		|||
/* Copyright 2020 customMK
 | 
			
		||||
 *
 | 
			
		||||
 * 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"
 | 
			
		||||
 | 
			
		||||
/* USB Device descriptor parameter */
 | 
			
		||||
#define VENDOR_ID       0xF35B
 | 
			
		||||
#define PRODUCT_ID      0xFAB0
 | 
			
		||||
#define DEVICE_VER      0x0001
 | 
			
		||||
#define MANUFACTURER    customMK
 | 
			
		||||
#define PRODUCT         GenesisRev1
 | 
			
		||||
 | 
			
		||||
/* key matrix size */
 | 
			
		||||
#define MATRIX_ROWS 5
 | 
			
		||||
#define MATRIX_COLS 4
 | 
			
		||||
 | 
			
		||||
/* key matrix pins */
 | 
			
		||||
#define MATRIX_ROW_PINS { F0, C7, C6, B6, B5 }
 | 
			
		||||
#define MATRIX_COL_PINS { F4, F5, D7, B4 }
 | 
			
		||||
#define UNUSED_PINS
 | 
			
		||||
 | 
			
		||||
/* COL2ROW or ROW2COL */
 | 
			
		||||
#define DIODE_DIRECTION COL2ROW
 | 
			
		||||
 | 
			
		||||
/* Set 0 if debouncing isn't needed */
 | 
			
		||||
#define DEBOUNCE 5
 | 
			
		||||
 | 
			
		||||
#define ENCODERS_PAD_A { F6, D2 }
 | 
			
		||||
#define ENCODERS_PAD_B { F7, D1 }
 | 
			
		||||
#define ENCODER_RESOLUTION 2
 | 
			
		||||
#define TAP_CODE_DELAY 10
 | 
			
		||||
 | 
			
		||||
#define RGB_DI_PIN E6
 | 
			
		||||
#define RGBLIGHT_EFFECT_BREATHING
 | 
			
		||||
#define RGBLIGHT_EFFECT_RAINBOW_MOOD
 | 
			
		||||
#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
 | 
			
		||||
#define RGBLIGHT_EFFECT_SNAKE
 | 
			
		||||
#define RGBLIGHT_EFFECT_KNIGHT
 | 
			
		||||
#define RGBLIGHT_EFFECT_CHRISTMAS
 | 
			
		||||
#define RGBLIGHT_EFFECT_STATIC_GRADIENT
 | 
			
		||||
#define RGBLIGHT_EFFECT_RGB_TEST
 | 
			
		||||
#define RGBLIGHT_EFFECT_ALTERNATING
 | 
			
		||||
#define RGBLIGHT_EFFECT_TWINKLE
 | 
			
		||||
#define RGBLED_NUM 13
 | 
			
		||||
#define RGBLIGHT_HUE_STEP 8
 | 
			
		||||
#define RGBLIGHT_SAT_STEP 8
 | 
			
		||||
#define RGBLIGHT_VAL_STEP 8
 | 
			
		||||
#define RGBLIGHT_LIMIT_VAL 128
 | 
			
		||||
#define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_SWIRL + 4
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1,5 +1,5 @@
 | 
			
		|||
{
 | 
			
		||||
    "keyboard_name": "Genesis", 
 | 
			
		||||
    "keyboard_name": "Genesis Rev1", 
 | 
			
		||||
    "url": "https://www.customMK.com", 
 | 
			
		||||
    "maintainer": "customMK", 
 | 
			
		||||
    "width": 4, 
 | 
			
		||||
| 
						 | 
				
			
			@ -20,8 +20,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
 | 
			
		||||
	[0] = LAYOUT_ortho_5x4(
 | 
			
		||||
			MO(1),   KC_PSLS, KC_PAST, KC_PMNS, 
 | 
			
		||||
			KC_P7,   KC_P8,   KC_P9,   KC_PPLS, 
 | 
			
		||||
			KC_P4,   KC_P5,   KC_P6,   KC_PGUP, 
 | 
			
		||||
			KC_P7,   KC_P8,   KC_P9,   KC_PGUP, 
 | 
			
		||||
			KC_P4,   KC_P5,   KC_P6,   KC_PPLS, 
 | 
			
		||||
			KC_P1,   KC_P2,   KC_P3,   KC_PGDN, 
 | 
			
		||||
			KC_P0,   KC_SPC,  KC_PDOT, KC_PENT),
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										19
									
								
								keyboards/custommk/genesis/rev1/readme.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								keyboards/custommk/genesis/rev1/readme.md
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,19 @@
 | 
			
		|||
# Genesis
 | 
			
		||||
 | 
			
		||||
Genesis is a 5x4 ortholinear macro pad designed and produced by customMK. 
 | 
			
		||||
 | 
			
		||||
* Keyboard Maintainer: [customMK](https://github.com/customMK)
 | 
			
		||||
* Hardware Supported: Genesis Macro Pad
 | 
			
		||||
* Hardware Availability: [customMK](https://shop.custommk.com/products/genesis_macropad)
 | 
			
		||||
 | 
			
		||||
Make example for this keyboard (after setting up your build environment):
 | 
			
		||||
 | 
			
		||||
    make custommk/genesis/rev1:default
 | 
			
		||||
 | 
			
		||||
Flashing example for this keyboard:
 | 
			
		||||
 | 
			
		||||
    make custommk/genesis/rev1:default:flash
 | 
			
		||||
 | 
			
		||||
Genesis Macro Pad has qmk-dfu bootloader preinstalled. To enter the bootloader, run the flashing command above, and then either plug in the USB connection while holding the top-left key, or alternatively, plug in the USB connection and then press the reset button on the PCB
 | 
			
		||||
 | 
			
		||||
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).
 | 
			
		||||
| 
						 | 
				
			
			@ -14,25 +14,25 @@
 | 
			
		|||
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "genesis.h"
 | 
			
		||||
#include "rev1.h"
 | 
			
		||||
 | 
			
		||||
bool encoder_update_kb(uint8_t index, bool clockwise) {
 | 
			
		||||
    if (!encoder_update_user(index, clockwise)) return false;
 | 
			
		||||
	/* top left encoder */
 | 
			
		||||
	if (index == 0) {
 | 
			
		||||
		if (clockwise) {
 | 
			
		||||
			tap_code(KC_VOLU);
 | 
			
		||||
		} else {
 | 
			
		||||
			tap_code(KC_VOLD);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	/* top right encoder */
 | 
			
		||||
	else if (index == 1) {
 | 
			
		||||
		if (clockwise) {
 | 
			
		||||
			tap_code(KC_VOLU);
 | 
			
		||||
		} else {
 | 
			
		||||
			tap_code(KC_VOLD);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
    /* top left encoder */
 | 
			
		||||
    if (index == 0) {
 | 
			
		||||
        if (clockwise) {
 | 
			
		||||
            tap_code(KC_VOLU);
 | 
			
		||||
        } else {
 | 
			
		||||
            tap_code(KC_VOLD);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    /* top right encoder */
 | 
			
		||||
    else if (index == 1) {
 | 
			
		||||
        if (clockwise) {
 | 
			
		||||
            tap_code(KC_VOLU);
 | 
			
		||||
        } else {
 | 
			
		||||
            tap_code(KC_VOLD);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    return true;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -19,30 +19,30 @@
 | 
			
		|||
#include "quantum.h"
 | 
			
		||||
 | 
			
		||||
#define LAYOUT_numpad_5x4( \
 | 
			
		||||
	K00, K01, K02, K03, \
 | 
			
		||||
	K10, K11, K12,      \
 | 
			
		||||
	K20, K21, K22, K23, \
 | 
			
		||||
	K30, K31, K32,      \
 | 
			
		||||
	K40,      K42, K43  \
 | 
			
		||||
    K00, K01, K02, K03, \
 | 
			
		||||
    K10, K11, K12,      \
 | 
			
		||||
    K20, K21, K22, K23, \
 | 
			
		||||
    K30, K31, K32,      \
 | 
			
		||||
    K40,      K42, K43  \
 | 
			
		||||
) { \
 | 
			
		||||
	{ K00,   K01,   K02,   K03 }, \
 | 
			
		||||
	{ K10,   K11,   K12,   KC_NO }, \
 | 
			
		||||
	{ K20,   K21,   K22,   K23 }, \
 | 
			
		||||
	{ K30,   K31,   K32,   KC_NO }, \
 | 
			
		||||
	{ K40,   KC_NO, K42,   K43 }  \
 | 
			
		||||
    { K00,   K01,   K02,   K03 }, \
 | 
			
		||||
    { K10,   K11,   K12,   KC_NO }, \
 | 
			
		||||
    { K20,   K21,   K22,   K23 }, \
 | 
			
		||||
    { K30,   K31,   K32,   KC_NO }, \
 | 
			
		||||
    { K40,   KC_NO, K42,   K43 }  \
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#define LAYOUT_ortho_5x4( \
 | 
			
		||||
	K00, K01, K02, K03, \
 | 
			
		||||
	K10, K11, K12, K13, \
 | 
			
		||||
	K20, K21, K22, K23, \
 | 
			
		||||
	K30, K31, K32, K33, \
 | 
			
		||||
	K40, K41, K42, K43  \
 | 
			
		||||
    K00, K01, K02, K03, \
 | 
			
		||||
    K10, K11, K12, K13, \
 | 
			
		||||
    K20, K21, K22, K23, \
 | 
			
		||||
    K30, K31, K32, K33, \
 | 
			
		||||
    K40, K41, K42, K43  \
 | 
			
		||||
) { \
 | 
			
		||||
	{ K00,   K01,   K02,   K03 }, \
 | 
			
		||||
	{ K10,   K11,   K12,   K13 }, \
 | 
			
		||||
	{ K20,   K21,   K22,   K23 }, \
 | 
			
		||||
	{ K30,   K31,   K32,   K33 }, \
 | 
			
		||||
	{ K40,   K41,   K42,   K43 }  \
 | 
			
		||||
    { K00,   K01,   K02,   K03 }, \
 | 
			
		||||
    { K10,   K11,   K12,   K13 }, \
 | 
			
		||||
    { K20,   K21,   K22,   K23 }, \
 | 
			
		||||
    { K30,   K31,   K32,   K33 }, \
 | 
			
		||||
    { K40,   K41,   K42,   K43 }  \
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										0
									
								
								keyboards/custommk/genesis/rev1/rules.mk
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								keyboards/custommk/genesis/rev1/rules.mk
									
										
									
									
									
										Normal file
									
								
							
							
								
								
									
										66
									
								
								keyboards/custommk/genesis/rev2/config.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										66
									
								
								keyboards/custommk/genesis/rev2/config.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,66 @@
 | 
			
		|||
/* Copyright 2020 customMK
 | 
			
		||||
 *
 | 
			
		||||
 * 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"
 | 
			
		||||
 | 
			
		||||
/* USB Device descriptor parameter */
 | 
			
		||||
#define VENDOR_ID       0xF35B
 | 
			
		||||
#define PRODUCT_ID      0xFAB1
 | 
			
		||||
#define DEVICE_VER      0x0001
 | 
			
		||||
#define MANUFACTURER    customMK
 | 
			
		||||
#define PRODUCT         GenesisRev2
 | 
			
		||||
 | 
			
		||||
/* key matrix size */
 | 
			
		||||
#define MATRIX_ROWS 6
 | 
			
		||||
#define MATRIX_COLS 4
 | 
			
		||||
 | 
			
		||||
/* key matrix pins */
 | 
			
		||||
#define MATRIX_ROW_PINS { F0, C7, C6, B6, B5, B0}
 | 
			
		||||
#define MATRIX_COL_PINS { F4, F5, D7, B4 }
 | 
			
		||||
#define UNUSED_PINS
 | 
			
		||||
 | 
			
		||||
/* COL2ROW or ROW2COL */
 | 
			
		||||
#define DIODE_DIRECTION COL2ROW
 | 
			
		||||
 | 
			
		||||
/* Set 0 if debouncing isn't needed */
 | 
			
		||||
#define DEBOUNCE 5
 | 
			
		||||
 | 
			
		||||
#define ENCODERS_PAD_A { F6, D2 }
 | 
			
		||||
#define ENCODERS_PAD_B { F7, D1 }
 | 
			
		||||
#define ENCODER_RESOLUTION 2
 | 
			
		||||
#define TAP_CODE_DELAY 10
 | 
			
		||||
 | 
			
		||||
#define RGB_DI_PIN E6
 | 
			
		||||
#define RGBLIGHT_EFFECT_BREATHING
 | 
			
		||||
#define RGBLIGHT_EFFECT_RAINBOW_MOOD
 | 
			
		||||
#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
 | 
			
		||||
#define RGBLIGHT_EFFECT_SNAKE
 | 
			
		||||
#define RGBLIGHT_EFFECT_KNIGHT
 | 
			
		||||
#define RGBLIGHT_EFFECT_CHRISTMAS
 | 
			
		||||
#define RGBLIGHT_EFFECT_STATIC_GRADIENT
 | 
			
		||||
#define RGBLIGHT_EFFECT_RGB_TEST
 | 
			
		||||
#define RGBLIGHT_EFFECT_ALTERNATING
 | 
			
		||||
#define RGBLIGHT_EFFECT_TWINKLE
 | 
			
		||||
#define RGBLED_NUM 13
 | 
			
		||||
#define RGBLIGHT_LAYERS
 | 
			
		||||
#define RGBLIGHT_HUE_STEP 8
 | 
			
		||||
#define RGBLIGHT_SAT_STEP 8
 | 
			
		||||
#define RGBLIGHT_VAL_STEP 8
 | 
			
		||||
#define RGBLIGHT_LIMIT_VAL 128
 | 
			
		||||
#define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_SWIRL + 4
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										76
									
								
								keyboards/custommk/genesis/rev2/info.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										76
									
								
								keyboards/custommk/genesis/rev2/info.json
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,76 @@
 | 
			
		|||
{
 | 
			
		||||
    "keyboard_name": "Genesis Rev2", 
 | 
			
		||||
    "url": "https://www.customMK.com", 
 | 
			
		||||
    "maintainer": "customMK", 
 | 
			
		||||
    "width": 4, 
 | 
			
		||||
    "height": 6, 
 | 
			
		||||
    "layouts": {
 | 
			
		||||
        "LAYOUT_ortho_5x4": {
 | 
			
		||||
            "layout": [{"label":"MO(1)", "x":0, "y":0},
 | 
			
		||||
                       {"label":"/", "x":1, "y":0},
 | 
			
		||||
                       {"label":"*", "x":2, "y":0},
 | 
			
		||||
                       {"label":"Mute", "x":3, "y":0},
 | 
			
		||||
                       {"label":"7", "x":0, "y":1},
 | 
			
		||||
                       {"label":"8", "x":1, "y":1},
 | 
			
		||||
                       {"label":"9", "x":2, "y":1},
 | 
			
		||||
                       {"label":"+", "x":3, "y":1},
 | 
			
		||||
                       {"label":"4", "x":0, "y":2},
 | 
			
		||||
                       {"label":"5", "x":1, "y":2},
 | 
			
		||||
                       {"label":"6", "x":2, "y":2},
 | 
			
		||||
                       {"label":"Pg Up", "x":3, "y":2},
 | 
			
		||||
                       {"label":"1", "x":0, "y":3},
 | 
			
		||||
                       {"label":"2", "x":1, "y":3},
 | 
			
		||||
                       {"label":"3", "x":2, "y":3},
 | 
			
		||||
                       {"label":"Pg Dn", "x":3, "y":3},
 | 
			
		||||
                       {"label":"0", "x":0, "y":4},
 | 
			
		||||
                       {"label":"Spc", "x":1, "y":4},
 | 
			
		||||
                       {"label":".", "x":2, "y":4},
 | 
			
		||||
                       {"label":"Enter", "x":3, "y":4}]
 | 
			
		||||
        },
 | 
			
		||||
        "LAYOUT_numpad_5x4": {
 | 
			
		||||
            "layout": [{"label":"MO(1)", "x":0, "y":0},
 | 
			
		||||
                {"label":"/", "x":1, "y":0},
 | 
			
		||||
                {"label":"*", "x":2, "y":0},
 | 
			
		||||
                {"label":"-", "x":3, "y":0},
 | 
			
		||||
                {"label":"7", "x":0, "y":1},
 | 
			
		||||
                {"label":"8", "x":1, "y":1},
 | 
			
		||||
                {"label":"9", "x":2, "y":1}, 
 | 
			
		||||
                {"label":"+", "x":3, "y":1, "h":2},
 | 
			
		||||
                {"label":"4", "x":0, "y":2},
 | 
			
		||||
                {"label":"5", "x":1, "y":2},
 | 
			
		||||
                {"label":"6", "x":2, "y":2},
 | 
			
		||||
                {"label":"1", "x":0, "y":3},
 | 
			
		||||
                {"label":"2", "x":1, "y":3},
 | 
			
		||||
                {"label":"3", "x":2, "y":3},
 | 
			
		||||
                {"label":"Enter", "x":3, "y":3, "h":2},
 | 
			
		||||
                {"label":"0", "x":0, "y":4, "w":2},
 | 
			
		||||
                {"label":".", "x":2, "y":4}]
 | 
			
		||||
        },
 | 
			
		||||
        "LAYOUT_via_6x4": {
 | 
			
		||||
            "layout": [{"label":"Vol-", "x":0, "y":0},
 | 
			
		||||
                       {"label":"Vol+", "x":1, "y":0},
 | 
			
		||||
                       {"label":"Vol-", "x":3, "y":0},
 | 
			
		||||
                       {"label":"Vol+", "x":4, "y":0},
 | 
			
		||||
                       {"label":"MO(1)", "x":0.5, "y":1.1},
 | 
			
		||||
                       {"label":"/", "x":1.5, "y":1.1},
 | 
			
		||||
                       {"label":"*", "x":2.5, "y":1.1}, 
 | 
			
		||||
                       {"label":"Mute", "x":3.5, "y":1.1}, 
 | 
			
		||||
                       {"label":"7", "x":0.5, "y":2.1}, 
 | 
			
		||||
                       {"label":"8", "x":1.5, "y":2.1}, 
 | 
			
		||||
                       {"label":"9", "x":2.5, "y":2.1}, 
 | 
			
		||||
                       {"label":"+", "x":3.5, "y":2.1}, 
 | 
			
		||||
                       {"label":"4", "x":0.5, "y":3.1}, 
 | 
			
		||||
                       {"label":"5", "x":1.5, "y":3.1}, 
 | 
			
		||||
                       {"label":"6", "x":2.5, "y":3.1}, 
 | 
			
		||||
                       {"label":"Pg Up", "x":3.5, "y":3.1}, 
 | 
			
		||||
                       {"label":"1", "x":0.5, "y":4.1}, 
 | 
			
		||||
                       {"label":"2", "x":1.5, "y":4.1}, 
 | 
			
		||||
                       {"label":"3", "x":2.5, "y":4.1}, 
 | 
			
		||||
                       {"label":"Pg Dn", "x":3.5, "y":4.1}, 
 | 
			
		||||
                       {"label":"0", "x":0.5, "y":5.1}, 
 | 
			
		||||
                       {"label":"Spc", "x":1.5, "y":5.1}, 
 | 
			
		||||
                       {"label":".", "x":2.5, "y":5.1}, 
 | 
			
		||||
                       {"label":"Enter", "x":3.5, "y":5.1}]
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										76
									
								
								keyboards/custommk/genesis/rev2/keymaps/default/keymap.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										76
									
								
								keyboards/custommk/genesis/rev2/keymaps/default/keymap.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,76 @@
 | 
			
		|||
/* Copyright 2020 customMK
 | 
			
		||||
 *
 | 
			
		||||
 * 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
 | 
			
		||||
 | 
			
		||||
//#define GENESIS_LAYER_COLORS
 | 
			
		||||
#define GENESIS_LAYER1_COLOR HSV_CYAN
 | 
			
		||||
#define GENESIS_LAYER2_COLOR HSV_GREEN
 | 
			
		||||
#define GENESIS_LAYER3_COLOR HSV_WHITE
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
 | 
			
		||||
	[0] = LAYOUT_ortho_5x4(
 | 
			
		||||
			MO(1),   KC_PSLS, KC_PAST, KC_PMNS, 
 | 
			
		||||
			KC_P7,   KC_P8,   KC_P9,   KC_BSPC, 
 | 
			
		||||
			KC_P4,   KC_P5,   KC_P6,   KC_PPLS, 
 | 
			
		||||
			KC_P1,   KC_P2,   KC_P3,   KC_CAPS,
 | 
			
		||||
			KC_P0,   KC_SPC,  KC_PDOT, KC_ENT),
 | 
			
		||||
 | 
			
		||||
	[1] = LAYOUT_ortho_5x4(
 | 
			
		||||
			KC_TRNS, KC_VOLU, RGB_TOG, RGB_MOD, 
 | 
			
		||||
			KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
 | 
			
		||||
			RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD, 
 | 
			
		||||
			KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
 | 
			
		||||
			RGB_HUI, KC_TRNS, KC_TRNS, RGB_HUD),
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifdef GENESIS_LAYER_COLORS
 | 
			
		||||
const rgblight_segment_t PROGMEM my_layer1_layer[] = RGBLIGHT_LAYER_SEGMENTS(
 | 
			
		||||
		{0,13,GENESIS_LAYER1_COLOR}
 | 
			
		||||
	);
 | 
			
		||||
 | 
			
		||||
const rgblight_segment_t PROGMEM my_layer2_layer[] = RGBLIGHT_LAYER_SEGMENTS(
 | 
			
		||||
		{0,13,GENESIS_LAYER2_COLOR}
 | 
			
		||||
	);
 | 
			
		||||
 | 
			
		||||
const rgblight_segment_t PROGMEM my_layer3_layer[] = RGBLIGHT_LAYER_SEGMENTS(
 | 
			
		||||
		{0,13,GENESIS_LAYER3_COLOR}
 | 
			
		||||
	);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST(
 | 
			
		||||
		my_layer1_layer,
 | 
			
		||||
		my_layer2_layer,
 | 
			
		||||
		my_layer3_layer
 | 
			
		||||
	);
 | 
			
		||||
 | 
			
		||||
//Set the appropriate layer color
 | 
			
		||||
layer_state_t layer_state_set_user(layer_state_t state) {
 | 
			
		||||
    rgblight_set_layer_state(0, layer_state_cmp(state, 1));
 | 
			
		||||
    rgblight_set_layer_state(1, layer_state_cmp(state, 2));
 | 
			
		||||
    rgblight_set_layer_state(2, layer_state_cmp(state, 3));
 | 
			
		||||
    return state;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void keyboard_post_init_user(void) {
 | 
			
		||||
	//Enable the LED layers
 | 
			
		||||
	rgblight_layers = my_rgb_layers;
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,6 @@
 | 
			
		|||
# Default Genesis Macro Pad Layout
 | 
			
		||||
 | 
			
		||||
This is the default layout for the Genesis Macro Pad. It assumes all 1u switches 
 | 
			
		||||
and optional rotary encoder in the top-left or top-right corner for media volume 
 | 
			
		||||
control. The top left switch activates Layer 1 which enables control of the RGB
 | 
			
		||||
underglow.
 | 
			
		||||
							
								
								
									
										89
									
								
								keyboards/custommk/genesis/rev2/keymaps/numpad/keymap.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										89
									
								
								keyboards/custommk/genesis/rev2/keymaps/numpad/keymap.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,89 @@
 | 
			
		|||
/* Copyright 2020 customMK
 | 
			
		||||
 *
 | 
			
		||||
 * 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
 | 
			
		||||
 | 
			
		||||
//#define GENESIS_LAYER_COLORS
 | 
			
		||||
#define GENESIS_LAYER1_COLOR HSV_CYAN
 | 
			
		||||
#define GENESIS_LAYER2_COLOR HSV_GREEN
 | 
			
		||||
#define GENESIS_LAYER3_COLOR HSV_WHITE
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
 | 
			
		||||
	[0] = LAYOUT_numpad_5x4(
 | 
			
		||||
			MO(1),  KC_PSLS,  KC_PAST, KC_PMNS, 
 | 
			
		||||
			KC_P7,  KC_P8,    KC_P9,    
 | 
			
		||||
			KC_P4,  KC_P5,    KC_P6,   KC_PPLS, 
 | 
			
		||||
			KC_P1,  KC_P2,    KC_P3,    
 | 
			
		||||
			KC_P0,            KC_PDOT, KC_ENT),
 | 
			
		||||
 | 
			
		||||
	[1] = LAYOUT_numpad_5x4(
 | 
			
		||||
			KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, 
 | 
			
		||||
			KC_TRNS, KC_TRNS, KC_TRNS,   
 | 
			
		||||
			RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD, 
 | 
			
		||||
			KC_TRNS, KC_TRNS, KC_TRNS, 	 
 | 
			
		||||
			RGB_HUI, 	      KC_TRNS, RGB_HUD),
 | 
			
		||||
 | 
			
		||||
	[2] = LAYOUT_numpad_5x4(
 | 
			
		||||
			KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
 | 
			
		||||
			KC_TRNS, 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_numpad_5x4(
 | 
			
		||||
			KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
 | 
			
		||||
			KC_TRNS, KC_TRNS, KC_TRNS,   
 | 
			
		||||
			KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
 | 
			
		||||
			KC_TRNS, KC_TRNS, KC_TRNS,   
 | 
			
		||||
			KC_TRNS,          KC_TRNS, KC_TRNS),
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifdef GENESIS_LAYER_COLORS
 | 
			
		||||
const rgblight_segment_t PROGMEM my_layer1_layer[] = RGBLIGHT_LAYER_SEGMENTS(
 | 
			
		||||
		{0,13,GENESIS_LAYER1_COLOR}
 | 
			
		||||
	);
 | 
			
		||||
 | 
			
		||||
const rgblight_segment_t PROGMEM my_layer2_layer[] = RGBLIGHT_LAYER_SEGMENTS(
 | 
			
		||||
		{0,13,GENESIS_LAYER2_COLOR}
 | 
			
		||||
	);
 | 
			
		||||
 | 
			
		||||
const rgblight_segment_t PROGMEM my_layer3_layer[] = RGBLIGHT_LAYER_SEGMENTS(
 | 
			
		||||
		{0,13,GENESIS_LAYER3_COLOR}
 | 
			
		||||
	);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST(
 | 
			
		||||
		my_layer1_layer,
 | 
			
		||||
		my_layer2_layer,
 | 
			
		||||
		my_layer3_layer
 | 
			
		||||
	);
 | 
			
		||||
 | 
			
		||||
//Set the appropriate layer color
 | 
			
		||||
layer_state_t layer_state_set_user(layer_state_t state) {
 | 
			
		||||
    rgblight_set_layer_state(0, layer_state_cmp(state, 1));
 | 
			
		||||
    rgblight_set_layer_state(1, layer_state_cmp(state, 2));
 | 
			
		||||
    rgblight_set_layer_state(2, layer_state_cmp(state, 3));
 | 
			
		||||
    return state;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void keyboard_post_init_user(void) {
 | 
			
		||||
	//Enable the LED layers
 | 
			
		||||
	rgblight_layers = my_rgb_layers;
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										3
									
								
								keyboards/custommk/genesis/rev2/keymaps/numpad/readme.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								keyboards/custommk/genesis/rev2/keymaps/numpad/readme.md
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,3 @@
 | 
			
		|||
# Numpad Genesis Macro Pad Layout
 | 
			
		||||
 | 
			
		||||
This is the numpad layout for the Genesis Macro Pad. It assumes the 0, +, and enter keys are all 2u size, with an optional rotary encoder in the top-left or top-right corner for media volume control. The top left switch activates Layer 1 which enables control of the RGB underglow.
 | 
			
		||||
							
								
								
									
										167
									
								
								keyboards/custommk/genesis/rev2/keymaps/via/keymap.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										167
									
								
								keyboards/custommk/genesis/rev2/keymaps/via/keymap.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,167 @@
 | 
			
		|||
/* Copyright 2020 customMK
 | 
			
		||||
 *
 | 
			
		||||
 * 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
 | 
			
		||||
 | 
			
		||||
//#define GENESIS_LAYER_COLORS
 | 
			
		||||
#define GENESIS_LAYER1_COLOR HSV_CYAN
 | 
			
		||||
#define GENESIS_LAYER2_COLOR HSV_GREEN
 | 
			
		||||
#define GENESIS_LAYER3_COLOR HSV_WHITE
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
 | 
			
		||||
	[0] = LAYOUT_via_6x4(
 | 
			
		||||
		    KC_VOLD, KC_VOLU, KC_VOLD, KC_VOLU,
 | 
			
		||||
			MO(1),   KC_PSLS, KC_PAST, KC_PMNS, 
 | 
			
		||||
			KC_P7,   KC_P8,   KC_P9,   KC_PGUP, 
 | 
			
		||||
			KC_P4,   KC_P5,   KC_P6,   KC_PPLS, 
 | 
			
		||||
			KC_P1,   KC_P2,   KC_P3,   KC_PGDN, 
 | 
			
		||||
			KC_P0,   KC_SPC,  KC_PDOT, KC_PENT),
 | 
			
		||||
 | 
			
		||||
	[1] = LAYOUT_via_6x4(
 | 
			
		||||
		    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
 | 
			
		||||
			KC_TRNS, RGB_TOG, RGB_MOD, KC_TRNS, 
 | 
			
		||||
			KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
 | 
			
		||||
			RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD, 
 | 
			
		||||
			KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
 | 
			
		||||
			RGB_HUI, RGB_HUD, KC_TRNS, KC_TRNS),
 | 
			
		||||
 | 
			
		||||
	[2] = LAYOUT_via_6x4(
 | 
			
		||||
		    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
 | 
			
		||||
			KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
 | 
			
		||||
			KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
 | 
			
		||||
			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_via_6x4(
 | 
			
		||||
		    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
 | 
			
		||||
			KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
 | 
			
		||||
			KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
 | 
			
		||||
			KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
 | 
			
		||||
			KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
 | 
			
		||||
			KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#ifdef GENESIS_LAYER_COLORS
 | 
			
		||||
const rgblight_segment_t PROGMEM my_layer1_layer[] = RGBLIGHT_LAYER_SEGMENTS(
 | 
			
		||||
		{0,13,GENESIS_LAYER1_COLOR}
 | 
			
		||||
	);
 | 
			
		||||
 | 
			
		||||
const rgblight_segment_t PROGMEM my_layer2_layer[] = RGBLIGHT_LAYER_SEGMENTS(
 | 
			
		||||
		{0,13,GENESIS_LAYER2_COLOR}
 | 
			
		||||
	);
 | 
			
		||||
 | 
			
		||||
const rgblight_segment_t PROGMEM my_layer3_layer[] = RGBLIGHT_LAYER_SEGMENTS(
 | 
			
		||||
		{0,13,GENESIS_LAYER3_COLOR}
 | 
			
		||||
	);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST(
 | 
			
		||||
		my_layer1_layer,
 | 
			
		||||
		my_layer2_layer,
 | 
			
		||||
		my_layer3_layer
 | 
			
		||||
	);
 | 
			
		||||
 | 
			
		||||
//Set the appropriate layer color
 | 
			
		||||
layer_state_t layer_state_set_user(layer_state_t state) {
 | 
			
		||||
    rgblight_set_layer_state(0, layer_state_cmp(state, 1));
 | 
			
		||||
    rgblight_set_layer_state(1, layer_state_cmp(state, 2));
 | 
			
		||||
    rgblight_set_layer_state(2, layer_state_cmp(state, 3));
 | 
			
		||||
    return state;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void keyboard_post_init_user(void) {
 | 
			
		||||
	//Enable the LED layers
 | 
			
		||||
	rgblight_layers = my_rgb_layers;
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
keyevent_t encoder_left_ccw = {
 | 
			
		||||
    .key = (keypos_t){.row = 5, .col = 0},
 | 
			
		||||
    .pressed = false
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
keyevent_t encoder_left_cw = {
 | 
			
		||||
    .key = (keypos_t){.row = 5, .col = 1},
 | 
			
		||||
    .pressed = false
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
keyevent_t encoder_right_ccw = {
 | 
			
		||||
    .key = (keypos_t){.row = 5, .col = 2},
 | 
			
		||||
    .pressed = false
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
keyevent_t encoder_right_cw = {
 | 
			
		||||
    .key = (keypos_t){.row = 5, .col = 3},
 | 
			
		||||
    .pressed = false
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
void matrix_scan_user(void) {
 | 
			
		||||
    if (IS_PRESSED(encoder_left_ccw)) {
 | 
			
		||||
        encoder_left_ccw.pressed = false;
 | 
			
		||||
        encoder_left_ccw.time = (timer_read() | 1);
 | 
			
		||||
        action_exec(encoder_left_ccw);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (IS_PRESSED(encoder_left_cw)) {
 | 
			
		||||
        encoder_left_cw.pressed = false;
 | 
			
		||||
        encoder_left_cw.time = (timer_read() | 1);
 | 
			
		||||
        action_exec(encoder_left_cw);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (IS_PRESSED(encoder_right_ccw)) {
 | 
			
		||||
        encoder_right_ccw.pressed = false;
 | 
			
		||||
        encoder_right_ccw.time = (timer_read() | 1);
 | 
			
		||||
        action_exec(encoder_right_ccw);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (IS_PRESSED(encoder_right_cw)) {
 | 
			
		||||
        encoder_right_cw.pressed = false;
 | 
			
		||||
        encoder_right_cw.time = (timer_read() | 1);
 | 
			
		||||
        action_exec(encoder_right_cw);
 | 
			
		||||
    }
 | 
			
		||||
	
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
bool encoder_update_user(uint8_t index, bool clockwise) {
 | 
			
		||||
	if (index == 0) {
 | 
			
		||||
		if (clockwise) {
 | 
			
		||||
			encoder_left_cw.pressed = true;
 | 
			
		||||
			encoder_left_cw.time = (timer_read() | 1);
 | 
			
		||||
			action_exec(encoder_left_cw);
 | 
			
		||||
		} else {
 | 
			
		||||
			encoder_left_ccw.pressed = true;
 | 
			
		||||
			encoder_left_ccw.time = (timer_read() | 1);
 | 
			
		||||
			action_exec(encoder_left_ccw);
 | 
			
		||||
		}
 | 
			
		||||
	} else {
 | 
			
		||||
		if (clockwise) {
 | 
			
		||||
			encoder_right_cw.pressed = true;
 | 
			
		||||
			encoder_right_cw.time = (timer_read() | 1);
 | 
			
		||||
			action_exec(encoder_right_cw);
 | 
			
		||||
		} else {
 | 
			
		||||
			encoder_right_ccw.pressed = true;
 | 
			
		||||
			encoder_right_ccw.time = (timer_read() | 1);
 | 
			
		||||
			action_exec(encoder_right_ccw);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
    return false;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										3
									
								
								keyboards/custommk/genesis/rev2/keymaps/via/readme.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								keyboards/custommk/genesis/rev2/keymaps/via/readme.md
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,3 @@
 | 
			
		|||
# Genesis Macro Pad Layout for VIA
 | 
			
		||||
 | 
			
		||||
This is the via layout for the Genesis Macro Pad. It is identical to the default 1u layout which assumes all 1u switches and optional rotary encoder in the top-left or top-right corner for media volume control. The top-left switch activates Layer 1 which enables control of the RGB underglow.
 | 
			
		||||
							
								
								
									
										2
									
								
								keyboards/custommk/genesis/rev2/keymaps/via/rules.mk
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								keyboards/custommk/genesis/rev2/keymaps/via/rules.mk
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,2 @@
 | 
			
		|||
VIA_ENABLE = yes
 | 
			
		||||
LTO_ENABLE = yes
 | 
			
		||||
							
								
								
									
										19
									
								
								keyboards/custommk/genesis/rev2/readme.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								keyboards/custommk/genesis/rev2/readme.md
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,19 @@
 | 
			
		|||
# Genesis
 | 
			
		||||
 | 
			
		||||
Genesis Rev2 is the same as Genesis Rev1 firmware, except Rev2 allows encoder function remapping using VIA.
 | 
			
		||||
 | 
			
		||||
* Keyboard Maintainer: [customMK](https://github.com/customMK)
 | 
			
		||||
* Hardware Supported: Genesis Macro Pad
 | 
			
		||||
* Hardware Availability: [customMK](https://shop.custommk.com/products/genesis_macropad)
 | 
			
		||||
 | 
			
		||||
Make example for this keyboard (after setting up your build environment):
 | 
			
		||||
 | 
			
		||||
    make custommk/genesis/rev2:default
 | 
			
		||||
 | 
			
		||||
Flashing example for this keyboard:
 | 
			
		||||
 | 
			
		||||
    make custommk/genesis/rev2:default:flash
 | 
			
		||||
 | 
			
		||||
Genesis Macro Pad has qmk-dfu bootloader preinstalled. To enter the bootloader, run the flashing command above, and then either plug in the USB connection while holding the top-left key, or alternatively, plug in the USB connection and then press the reset button on the PCB
 | 
			
		||||
 | 
			
		||||
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).
 | 
			
		||||
							
								
								
									
										39
									
								
								keyboards/custommk/genesis/rev2/rev2.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								keyboards/custommk/genesis/rev2/rev2.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,39 @@
 | 
			
		|||
/* Copyright 2020 customMK
 | 
			
		||||
 *
 | 
			
		||||
 * 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 "rev2.h"
 | 
			
		||||
 | 
			
		||||
bool encoder_update_kb(uint8_t index, bool clockwise) {
 | 
			
		||||
    if (!encoder_update_user(index, clockwise)) { return false; }
 | 
			
		||||
    /* top left encoder */
 | 
			
		||||
    if (index == 0) {
 | 
			
		||||
        if (clockwise) {
 | 
			
		||||
            tap_code(KC_VOLU);
 | 
			
		||||
        } else {
 | 
			
		||||
            tap_code(KC_VOLD);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    /* top right encoder */
 | 
			
		||||
    else if (index == 1) {
 | 
			
		||||
        if (clockwise) {
 | 
			
		||||
            tap_code(KC_VOLU);
 | 
			
		||||
        } else {
 | 
			
		||||
            tap_code(KC_VOLD);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    return false;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										66
									
								
								keyboards/custommk/genesis/rev2/rev2.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										66
									
								
								keyboards/custommk/genesis/rev2/rev2.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,66 @@
 | 
			
		|||
/* Copyright 2020 customMK
 | 
			
		||||
 *
 | 
			
		||||
 * 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"
 | 
			
		||||
 | 
			
		||||
#define LAYOUT_numpad_5x4(   \
 | 
			
		||||
    K00,  K01,   K02,  K03,  \
 | 
			
		||||
    K10,  K11,   K12,        \
 | 
			
		||||
    K20,  K21,   K22,  K23,  \
 | 
			
		||||
    K30,  K31,   K32,        \
 | 
			
		||||
    K40,         K42,  K43   \
 | 
			
		||||
) { \
 | 
			
		||||
    { K00,   K01,   K02,   K03 }, \
 | 
			
		||||
    { K10,   K11,   K12,   KC_NO }, \
 | 
			
		||||
    { K20,   K21,   K22,   K23 }, \
 | 
			
		||||
    { K30,   K31,   K32,   KC_NO }, \
 | 
			
		||||
    { K40,   KC_NO, K42,   K43 }, \
 | 
			
		||||
    { KC_NO, KC_NO, KC_NO, KC_NO} \
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#define LAYOUT_ortho_5x4( \
 | 
			
		||||
    K00,  K01,   K02,  K03,  \
 | 
			
		||||
    K10,  K11,   K12,  K13,  \
 | 
			
		||||
    K20,  K21,   K22,  K23,  \
 | 
			
		||||
    K30,  K31,   K32,  K33,  \
 | 
			
		||||
    K40,  K41,   K42,  K43   \
 | 
			
		||||
) { \
 | 
			
		||||
    { K00,   K01,   K02,   K03  }, \
 | 
			
		||||
    { K10,   K11,   K12,   K13  }, \
 | 
			
		||||
    { K20,   K21,   K22,   K23  }, \
 | 
			
		||||
    { K30,   K31,   K32,   K33  }, \
 | 
			
		||||
    { K40,   K41,   K42,   K43  }, \
 | 
			
		||||
    { KC_NO, KC_NO, KC_NO, KC_NO}  \
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#define LAYOUT_via_6x4( \
 | 
			
		||||
    E00A, E00B,  E01A, E01B, \
 | 
			
		||||
    K00,  K01,   K02,  K03,  \
 | 
			
		||||
    K10,  K11,   K12,  K13,  \
 | 
			
		||||
    K20,  K21,   K22,  K23,  \
 | 
			
		||||
    K30,  K31,   K32,  K33,  \
 | 
			
		||||
    K40,  K41,   K42,  K43   \
 | 
			
		||||
) { \
 | 
			
		||||
    { K00,   K01,   K02,   K03  }, \
 | 
			
		||||
    { K10,   K11,   K12,   K13  }, \
 | 
			
		||||
    { K20,   K21,   K22,   K23  }, \
 | 
			
		||||
    { K30,   K31,   K32,   K33  }, \
 | 
			
		||||
    { K40,   K41,   K42,   K43  }, \
 | 
			
		||||
    { E00A,  E00B,  E01A,  E01B }  \
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										23
									
								
								keyboards/custommk/genesis/rev2/rules.mk
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								keyboards/custommk/genesis/rev2/rules.mk
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,23 @@
 | 
			
		|||
# MCU name
 | 
			
		||||
MCU = atmega32u4
 | 
			
		||||
 | 
			
		||||
# Bootloader selection
 | 
			
		||||
BOOTLOADER = qmk-dfu
 | 
			
		||||
 | 
			
		||||
# Build Options
 | 
			
		||||
#   change yes to no to disable
 | 
			
		||||
#
 | 
			
		||||
BOOTMAGIC_ENABLE = lite     # Virtual DIP switch configuration
 | 
			
		||||
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
 | 
			
		||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
 | 
			
		||||
SLEEP_LED_ENABLE = no       # Breathing sleep LED during USB suspend
 | 
			
		||||
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
 | 
			
		||||
NKRO_ENABLE = yes           # USB Nkey Rollover
 | 
			
		||||
BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
 | 
			
		||||
RGBLIGHT_ENABLE = yes        # Enable keyboard RGB underglow
 | 
			
		||||
BLUETOOTH_ENABLE = no       # Enable Bluetooth
 | 
			
		||||
AUDIO_ENABLE = no           # Audio output
 | 
			
		||||
ENCODER_ENABLE = yes
 | 
			
		||||
| 
						 | 
				
			
			@ -20,4 +20,6 @@ BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
 | 
			
		|||
RGBLIGHT_ENABLE = yes        # Enable keyboard RGB underglow
 | 
			
		||||
BLUETOOTH_ENABLE = no       # Enable Bluetooth
 | 
			
		||||
AUDIO_ENABLE = no           # Audio output
 | 
			
		||||
ENCODER_ENABLE = yes
 | 
			
		||||
ENCODER_ENABLE = yes
 | 
			
		||||
 | 
			
		||||
DEFAULT_FOLDER = custommk/genesis/rev2
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -42,7 +42,7 @@
 | 
			
		|||
#define NO_ACTION_FUNCTION
 | 
			
		||||
#ifdef RGB_MATRIX_ENABLE
 | 
			
		||||
#define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
 | 
			
		||||
#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
 | 
			
		||||
#define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended
 | 
			
		||||
#define USB_SUSPEND_WAKEUP_DELAY 5000
 | 
			
		||||
#define RGB_MATRIX_KEYPRESSES
 | 
			
		||||
#define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN	
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										115
									
								
								keyboards/keyprez/rhino/config.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										115
									
								
								keyboards/keyprez/rhino/config.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,115 @@
 | 
			
		|||
/*
 | 
			
		||||
Copyright 2021 Christian Sandven
 | 
			
		||||
 | 
			
		||||
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"
 | 
			
		||||
 | 
			
		||||
/* USB Device descriptor parameter */
 | 
			
		||||
#define VENDOR_ID    0xFEED
 | 
			
		||||
#define PRODUCT_ID   0x0000
 | 
			
		||||
#define DEVICE_VER   0x0001
 | 
			
		||||
#define MANUFACTURER Christian Sandven
 | 
			
		||||
#define PRODUCT      rhino
 | 
			
		||||
 | 
			
		||||
/* key matrix size */
 | 
			
		||||
#define MATRIX_ROWS 8
 | 
			
		||||
#define MATRIX_COLS 7
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Keyboard Matrix Assignments
 | 
			
		||||
 *
 | 
			
		||||
 * Change this to how you wired your keyboard
 | 
			
		||||
 * COLS: AVR pins used for columns, left to right
 | 
			
		||||
 * ROWS: AVR pins used for rows, top to bottom
 | 
			
		||||
 * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
 | 
			
		||||
 *                  ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
#define MATRIX_ROW_PINS { B3, B2, B6, B1, F4, F5, F6, F7 }
 | 
			
		||||
#define MATRIX_COL_PINS { D3, D2, D4, D7, E6, B4, B5 }
 | 
			
		||||
 | 
			
		||||
/* COL2ROW, ROW2COL */
 | 
			
		||||
#define DIODE_DIRECTION COL2ROW
 | 
			
		||||
 | 
			
		||||
#define ENCODERS_PAD_A { D1 }
 | 
			
		||||
#define ENCODERS_PAD_B { D0 }
 | 
			
		||||
#define ENCODER_RESOLUTION 4
 | 
			
		||||
 | 
			
		||||
#define AUDIO_PIN C6
 | 
			
		||||
#define MUSIC_MAP
 | 
			
		||||
 | 
			
		||||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
 | 
			
		||||
#define DEBOUNCE 2
 | 
			
		||||
 | 
			
		||||
/* define if matrix has ghost (lacks anti-ghosting diodes) */
 | 
			
		||||
//#define MATRIX_HAS_GHOST
 | 
			
		||||
 | 
			
		||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
 | 
			
		||||
#define LOCKING_SUPPORT_ENABLE
 | 
			
		||||
/* Locking resynchronize hack */
 | 
			
		||||
#define LOCKING_RESYNC_ENABLE
 | 
			
		||||
 | 
			
		||||
/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
 | 
			
		||||
 * This is useful for the Windows task manager shortcut (ctrl+shift+esc).
 | 
			
		||||
 */
 | 
			
		||||
//#define GRAVE_ESC_CTRL_OVERRIDE
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Force NKRO
 | 
			
		||||
 *
 | 
			
		||||
 * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
 | 
			
		||||
 * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
 | 
			
		||||
 * makefile for this to work.)
 | 
			
		||||
 *
 | 
			
		||||
 * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
 | 
			
		||||
 * until the next keyboard reset.
 | 
			
		||||
 *
 | 
			
		||||
 * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
 | 
			
		||||
 * fully operational during normal computer usage.
 | 
			
		||||
 *
 | 
			
		||||
 * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
 | 
			
		||||
 * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
 | 
			
		||||
 * bootmagic, NKRO mode will always be enabled until it is toggled again during a
 | 
			
		||||
 * power-up.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
//#define FORCE_NKRO
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * 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
 | 
			
		||||
 | 
			
		||||
/* disable these deprecated features by default */
 | 
			
		||||
#define NO_ACTION_MACRO
 | 
			
		||||
#define NO_ACTION_FUNCTION
 | 
			
		||||
 | 
			
		||||
/* Bootmagic Lite key configuration */
 | 
			
		||||
//#define BOOTMAGIC_LITE_ROW 0
 | 
			
		||||
//#define BOOTMAGIC_LITE_COLUMN 0
 | 
			
		||||
							
								
								
									
										179
									
								
								keyboards/keyprez/rhino/info.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										179
									
								
								keyboards/keyprez/rhino/info.json
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,179 @@
 | 
			
		|||
{
 | 
			
		||||
    "keyboard_name": "rhino",
 | 
			
		||||
    "url": "",
 | 
			
		||||
    "maintainer": "Christian Sandven",
 | 
			
		||||
    "width": 14,
 | 
			
		||||
    "height": 4,
 | 
			
		||||
    "layouts": {
 | 
			
		||||
        "LAYOUT_ortho_2x2u": {
 | 
			
		||||
            "layout": [
 | 
			
		||||
                {"x": 0, "y": 0, "w": 1.5},
 | 
			
		||||
                {"x": 1.5, "y": 0},
 | 
			
		||||
                {"x": 2.5, "y": 0},
 | 
			
		||||
                {"x": 3.5, "y": 0},
 | 
			
		||||
                {"x": 4.5, "y": 0},
 | 
			
		||||
                {"x": 5.5, "y": 0},
 | 
			
		||||
                {"x": 6.5, "y": 0},
 | 
			
		||||
                {"x": 7.5, "y": 0},
 | 
			
		||||
                {"x": 8.5, "y": 0},
 | 
			
		||||
                {"x": 9.5, "y": 0},
 | 
			
		||||
                {"x": 10.5, "y": 0},
 | 
			
		||||
                {"x": 11.5, "y": 0},
 | 
			
		||||
                {"x": 12.5, "y": 0},
 | 
			
		||||
                {"x": 13.5, "y": 0, "w": 1.5},
 | 
			
		||||
 | 
			
		||||
                {"x": 0, "y": 1, "w": 1.5},
 | 
			
		||||
                {"x": 1.5, "y": 1},
 | 
			
		||||
                {"x": 2.5, "y": 1},
 | 
			
		||||
                {"x": 3.5, "y": 1},
 | 
			
		||||
                {"x": 4.5, "y": 1},
 | 
			
		||||
                {"x": 5.5, "y": 1},
 | 
			
		||||
                {"x": 6.5, "y": 1},
 | 
			
		||||
                {"x": 7.5, "y": 1},
 | 
			
		||||
                {"x": 8.5, "y": 1},
 | 
			
		||||
                {"x": 9.5, "y": 1},
 | 
			
		||||
                {"x": 10.5, "y": 1},
 | 
			
		||||
                {"x": 11.5, "y": 1},
 | 
			
		||||
                {"x": 12.5, "y": 1},
 | 
			
		||||
                {"x": 13.5, "y": 1, "w": 1.5},
 | 
			
		||||
 | 
			
		||||
                {"x": 0, "y": 2, "w": 1.5},
 | 
			
		||||
                {"x": 1.5, "y": 2},
 | 
			
		||||
                {"x": 2.5, "y": 2},
 | 
			
		||||
                {"x": 3.5, "y": 2},
 | 
			
		||||
                {"x": 4.5, "y": 2},
 | 
			
		||||
                {"x": 5.5, "y": 2},
 | 
			
		||||
                {"x": 6.5, "y": 2},
 | 
			
		||||
                {"x": 7.5, "y": 2},
 | 
			
		||||
                {"x": 8.5, "y": 2},
 | 
			
		||||
                {"x": 9.5, "y": 2},
 | 
			
		||||
                {"x": 10.5, "y": 2},
 | 
			
		||||
                {"x": 11.5, "y": 2},
 | 
			
		||||
                {"x": 12.5, "y": 2},
 | 
			
		||||
                {"x": 13.5, "y": 2, "w": 1.5},
 | 
			
		||||
 | 
			
		||||
                {"x": 1.5, "y": 4},
 | 
			
		||||
                {"x": 2.5, "y": 4},
 | 
			
		||||
                {"x": 3.5, "y": 4},
 | 
			
		||||
                {"x": 4.5, "y": 4},
 | 
			
		||||
                {"x": 5.5, "y": 4, "w": 2},
 | 
			
		||||
                {"x": 7.5, "y": 4, "w": 2},
 | 
			
		||||
                {"x": 9.5, "y": 4},
 | 
			
		||||
                {"x": 10.5, "y": 4},
 | 
			
		||||
                {"x": 11.5, "y": 4},
 | 
			
		||||
                {"x": 12.5, "y": 4}
 | 
			
		||||
            ]
 | 
			
		||||
        },
 | 
			
		||||
 | 
			
		||||
        "LAYOUT_ergo_2x2u": {
 | 
			
		||||
            "layout": [
 | 
			
		||||
                {"x": 0, "y": 0, "w": 1.5},
 | 
			
		||||
                {"x": 1.5, "y": 0},
 | 
			
		||||
                {"x": 2.5, "y": 0},
 | 
			
		||||
                {"x": 3.5, "y": 0},
 | 
			
		||||
                {"x": 4.5, "y": 0},
 | 
			
		||||
                {"x": 5.5, "y": 0},
 | 
			
		||||
                {"x": 6.5, "y": 0, "h": 1.5},
 | 
			
		||||
                {"x": 7.5, "y": 0, "h": 1.5},
 | 
			
		||||
                {"x": 8.5, "y": 0},
 | 
			
		||||
                {"x": 9.5, "y": 0},
 | 
			
		||||
                {"x": 10.5, "y": 0},
 | 
			
		||||
                {"x": 11.5, "y": 0},
 | 
			
		||||
                {"x": 12.5, "y": 0},
 | 
			
		||||
                {"x": 13.5, "y": 0, "w": 1.5},
 | 
			
		||||
 | 
			
		||||
                {"x": 0, "y": 1, "w": 1.5},
 | 
			
		||||
                {"x": 1.5, "y": 1},
 | 
			
		||||
                {"x": 2.5, "y": 1},
 | 
			
		||||
                {"x": 3.5, "y": 1},
 | 
			
		||||
                {"x": 4.5, "y": 1},
 | 
			
		||||
                {"x": 5.5, "y": 1},
 | 
			
		||||
                {"x": 6.5, "y": 1.5, "h": 1.5},
 | 
			
		||||
                {"x": 7.5, "y": 1.5, "h": 1.5},
 | 
			
		||||
                {"x": 8.5, "y": 1},
 | 
			
		||||
                {"x": 9.5, "y": 1},
 | 
			
		||||
                {"x": 10.5, "y": 1},
 | 
			
		||||
                {"x": 11.5, "y": 1},
 | 
			
		||||
                {"x": 12.5, "y": 1},
 | 
			
		||||
                {"x": 13.5, "y": 1, "w": 1.5},
 | 
			
		||||
 | 
			
		||||
                {"x": 0, "y": 2, "w": 1.5},
 | 
			
		||||
                {"x": 1.5, "y": 2},
 | 
			
		||||
                {"x": 2.5, "y": 2},
 | 
			
		||||
                {"x": 3.5, "y": 2},
 | 
			
		||||
                {"x": 4.5, "y": 2},
 | 
			
		||||
                {"x": 5.5, "y": 2},
 | 
			
		||||
                {"x": 8.5, "y": 2},
 | 
			
		||||
                {"x": 9.5, "y": 2},
 | 
			
		||||
                {"x": 10.5, "y": 2},
 | 
			
		||||
                {"x": 11.5, "y": 2},
 | 
			
		||||
                {"x": 12.5, "y": 2},
 | 
			
		||||
                {"x": 13.5, "y": 2, "w": 1.5},
 | 
			
		||||
 | 
			
		||||
                {"x": 1.5, "y": 4},
 | 
			
		||||
                {"x": 2.5, "y": 4},
 | 
			
		||||
                {"x": 3.5, "y": 4},
 | 
			
		||||
                {"x": 4.5, "y": 4},
 | 
			
		||||
                {"x": 5.5, "y": 4, "w": 2},
 | 
			
		||||
                {"x": 7.5, "y": 4, "w": 2},
 | 
			
		||||
                {"x": 9.5, "y": 4},
 | 
			
		||||
                {"x": 10.5, "y": 4},
 | 
			
		||||
                {"x": 11.5, "y": 4},
 | 
			
		||||
                {"x": 12.5, "y": 4}
 | 
			
		||||
            ]
 | 
			
		||||
        },
 | 
			
		||||
 | 
			
		||||
        "LAYOUT_ortho_7u": {
 | 
			
		||||
            "layout": [
 | 
			
		||||
                {"x": 0, "y": 0, "w": 1.5},
 | 
			
		||||
                {"x": 1.5, "y": 0},
 | 
			
		||||
                {"x": 2.5, "y": 0},
 | 
			
		||||
                {"x": 3.5, "y": 0},
 | 
			
		||||
                {"x": 4.5, "y": 0},
 | 
			
		||||
                {"x": 5.5, "y": 0},
 | 
			
		||||
                {"x": 6.5, "y": 0, "h": 1.5},
 | 
			
		||||
                {"x": 7.5, "y": 0, "h": 1.5},
 | 
			
		||||
                {"x": 8.5, "y": 0},
 | 
			
		||||
                {"x": 9.5, "y": 0},
 | 
			
		||||
                {"x": 10.5, "y": 0},
 | 
			
		||||
                {"x": 11.5, "y": 0},
 | 
			
		||||
                {"x": 12.5, "y": 0},
 | 
			
		||||
                {"x": 13.5, "y": 0, "w": 1.5},
 | 
			
		||||
 | 
			
		||||
                {"x": 0, "y": 1, "w": 1.5},
 | 
			
		||||
                {"x": 1.5, "y": 1},
 | 
			
		||||
                {"x": 2.5, "y": 1},
 | 
			
		||||
                {"x": 3.5, "y": 1},
 | 
			
		||||
                {"x": 4.5, "y": 1},
 | 
			
		||||
                {"x": 5.5, "y": 1},
 | 
			
		||||
                {"x": 6.5, "y": 1.5, "h": 1.5},
 | 
			
		||||
                {"x": 7.5, "y": 1.5, "h": 1.5},
 | 
			
		||||
                {"x": 8.5, "y": 1},
 | 
			
		||||
                {"x": 9.5, "y": 1},
 | 
			
		||||
                {"x": 10.5, "y": 1},
 | 
			
		||||
                {"x": 11.5, "y": 1},
 | 
			
		||||
                {"x": 12.5, "y": 1, "w": 1.5},
 | 
			
		||||
                {"x": 14, "y": 1},
 | 
			
		||||
 | 
			
		||||
                {"x": 0, "y": 2, "w": 1.5},
 | 
			
		||||
                {"x": 1.5, "y": 2},
 | 
			
		||||
                {"x": 2.5, "y": 2},
 | 
			
		||||
                {"x": 3.5, "y": 2},
 | 
			
		||||
                {"x": 4.5, "y": 2},
 | 
			
		||||
                {"x": 5.5, "y": 2},
 | 
			
		||||
                {"x": 8.5, "y": 2},
 | 
			
		||||
                {"x": 9.5, "y": 2},
 | 
			
		||||
                {"x": 10.5, "y": 2},
 | 
			
		||||
                {"x": 11.5, "y": 2, "w": 1.5},
 | 
			
		||||
                {"x": 13, "y": 2},
 | 
			
		||||
                {"x": 14, "y": 2},
 | 
			
		||||
 | 
			
		||||
                {"x": 1.5, "y": 4},
 | 
			
		||||
                {"x": 2.5, "y": 4, "w": 1.5},
 | 
			
		||||
                {"x": 4, "y": 4, "w": 7},
 | 
			
		||||
                {"x": 11, "y": 4, "w": 1.5},
 | 
			
		||||
                {"x": 12.5, "y": 4}
 | 
			
		||||
            ]
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										116
									
								
								keyboards/keyprez/rhino/keymaps/default/keymap.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										116
									
								
								keyboards/keyprez/rhino/keymaps/default/keymap.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,116 @@
 | 
			
		|||
/* Copyright 2021 Christian Sandven
 | 
			
		||||
 *
 | 
			
		||||
 * 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
 | 
			
		||||
 | 
			
		||||
// Defines names for use in layer keycodes and the keymap
 | 
			
		||||
enum layer_names {
 | 
			
		||||
    _BASE,
 | 
			
		||||
    _FN,
 | 
			
		||||
    _LOWER,
 | 
			
		||||
    _RAISE
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#define LOWER MO(_LOWER)
 | 
			
		||||
#define FN MO(_FN)
 | 
			
		||||
#define TAB_CTL MT(MOD_LCTL, KC_TAB)
 | 
			
		||||
#define SPC_RAISE LT(_RAISE, KC_SPC)
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
 | 
			
		||||
    /* Base Layer
 | 
			
		||||
     * .-----------------------------------------------------------------------------------------------------------------------------.
 | 
			
		||||
     * |                                                                                                                     KC_MUTE |
 | 
			
		||||
     * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
 | 
			
		||||
     * | GESC   | Q      | W      | E      | R      | T      | [      | ]      | Y      | U      | I      | O      | P      | '      |
 | 
			
		||||
     * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------|
 | 
			
		||||
     * | TAB    | A      | S      | D      | F      | G      | HOME   | PG UP  | H      | J      | K      | L      | ;      | BACKSP |
 | 
			
		||||
     * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
 | 
			
		||||
     * | LSHIFT | Z      | X      | C      | V      | B      | END    | PG DN  | N      | M      | ,      | .      | /      | ENTER  |
 | 
			
		||||
     * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+-----------------+--------+--------|
 | 
			
		||||
     * |        | LGUI   | FN     | LALT   | LOWER  |      SPACE      |      SPACE      | LEFT   | UP     | DOWN   | RIGHT  |        |
 | 
			
		||||
     * '-----------------------------------------------------------------------------------------------------------------------------'
 | 
			
		||||
     */
 | 
			
		||||
    [_BASE] = LAYOUT_ortho_2x2u(
 | 
			
		||||
                                                                                                                             KC_MUTE,
 | 
			
		||||
        KC_GESC, KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_LBRC, KC_RBRC, KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_QUOT,
 | 
			
		||||
        TAB_CTL, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_HOME, KC_PGUP, KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_BSPC,
 | 
			
		||||
        KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_END,  KC_PGDN, KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_ENT,
 | 
			
		||||
                 KC_LGUI, FN,      KC_LALT, LOWER,       KC_SPC,          KC_SPC,     KC_LEFT, KC_UP,   KC_DOWN, KC_RGHT
 | 
			
		||||
    ),
 | 
			
		||||
 | 
			
		||||
    /* FN Layer
 | 
			
		||||
     * .-----------------------------------------------------------------------------------------------------------------------------.
 | 
			
		||||
     * |                                                                                                                     KC_APP |
 | 
			
		||||
     * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
 | 
			
		||||
     * | `      | F1     | F2     | F3     | F4     | F5     | F6     | F7     | F8     | F9     | F10    | F11    | F12    |        |
 | 
			
		||||
     * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------|
 | 
			
		||||
     * |        | F7     | F8     | F9     | F10    | F11    | F12    |        |        |        |        |        | DEL    | PRT SC |
 | 
			
		||||
     * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
 | 
			
		||||
     * |        |        |        |        |        |        |        |        |        |        |        |        |        | RESET  |
 | 
			
		||||
     * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+-----------------+--------+--------|
 | 
			
		||||
     * |        |        |        |        |        |                 |                 | MUTE   | VOL UP |VOL DOWN| PAUSE  |        |
 | 
			
		||||
     * '-----------------------------------------------------------------------------------------------------------------------------'
 | 
			
		||||
     */
 | 
			
		||||
    [_FN] = LAYOUT_ortho_2x2u(
 | 
			
		||||
                                                                                                                             KC_APP,
 | 
			
		||||
        KC_GRV,  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_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  _______, _______, _______, _______, _______, KC_DEL,  KC_PSCR,
 | 
			
		||||
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET,
 | 
			
		||||
                 MU_TOG,  MU_MOD,  _______, _______,     _______,           _______,     KC_MUTE, KC_VOLU, KC_VOLD, KC_MPLY
 | 
			
		||||
    ),
 | 
			
		||||
 | 
			
		||||
    /* LOWER Layer
 | 
			
		||||
     * .-----------------------------------------------------------------------------------------------------------------------------.
 | 
			
		||||
     * |                                                                                                                     KC_APP |
 | 
			
		||||
     * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
 | 
			
		||||
     * | `      | 1      | 2      | 3      | 4      | 5      | 6      | 7      | 8      | 9      | 0      | -      | =      | DEL    |
 | 
			
		||||
     * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------|
 | 
			
		||||
     * |        | F1     | F2     | F3     | F4     | F5     | F6     |        |        |        |        |        |        | INSERT |
 | 
			
		||||
     * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
 | 
			
		||||
     * |        | F7     | F8     | F9     | F10    | F11    | F12    | ISO #  | ISO /  |        |        |        | \      |        |
 | 
			
		||||
     * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+-----------------+--------+--------|
 | 
			
		||||
     * |        |        |        |        |        |                 |                 | HOME   | PG UP  | PG DN  | END    |        |
 | 
			
		||||
     * '-----------------------------------------------------------------------------------------------------------------------------'
 | 
			
		||||
     */
 | 
			
		||||
    [_LOWER] = LAYOUT_ortho_2x2u(
 | 
			
		||||
                                                                                                                            KC_APP,
 | 
			
		||||
        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_DEL,
 | 
			
		||||
        _______, KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,  _______, _______, _______, _______, _______, _______, KC_INS,
 | 
			
		||||
        _______, KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______, KC_BSLS, _______,
 | 
			
		||||
                 _______, _______, _______, _______,     _______,           _______,    KC_HOME, KC_PGUP, KC_PGDOWN, KC_END
 | 
			
		||||
    ),
 | 
			
		||||
 | 
			
		||||
    /* RAISE Layer
 | 
			
		||||
     * .-----------------------------------------------------------------------------------------------------------------------------.
 | 
			
		||||
     * |                                                                                                                     KC_APP |
 | 
			
		||||
     * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
 | 
			
		||||
     * | ~      | !      | @      | #      | $      | %      | ^      | &      | *      | (      | )      | -      | =      | |      |
 | 
			
		||||
     * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------|
 | 
			
		||||
     * |        | F1     | F2     | F3     | F4     | F5     | F6     | -      | =      | {      | }      |        |        | DEL    |
 | 
			
		||||
     * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
 | 
			
		||||
     * |        | F7     | F8     | F9     | F10    | F11    | F12    | ISO ~  | ISO |  |        |        |        |        | INSERT |
 | 
			
		||||
     * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+-----------------+--------+--------|
 | 
			
		||||
     * |        |        |        |        |        |                 |                 |        |        |        |        |        |
 | 
			
		||||
     * '-----------------------------------------------------------------------------------------------------------------------------'
 | 
			
		||||
     */
 | 
			
		||||
    [_RAISE] = LAYOUT_ortho_2x2u(
 | 
			
		||||
                                                                                                                             KC_APP,
 | 
			
		||||
        KC_TILD, KC_EXLM, KC_AT,   KC_HASH, KC_DLR,  KC_PERC, KC_CIRC, KC_AMPR,    KC_ASTR,    KC_LPRN, KC_RPRN, KC_MINS, KC_EQL,  KC_PIPE,
 | 
			
		||||
        _______, KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_UNDS,    KC_PLUS,    KC_LCBR, KC_RCBR, _______, _______, KC_DEL,
 | 
			
		||||
        _______, KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  S(KC_NUHS), S(KC_NUBS), _______, _______, _______, _______, KC_INS,
 | 
			
		||||
                 _______, _______, _______, _______,     _______,           _______,    _______, _______, _______, _______
 | 
			
		||||
    ),
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										1
									
								
								keyboards/keyprez/rhino/keymaps/default/readme.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								keyboards/keyprez/rhino/keymaps/default/readme.md
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
# The default keymap for rhino
 | 
			
		||||
							
								
								
									
										117
									
								
								keyboards/keyprez/rhino/keymaps/default_7u/keymap.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										117
									
								
								keyboards/keyprez/rhino/keymaps/default_7u/keymap.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,117 @@
 | 
			
		|||
/* Copyright 2021 Christian Sandven
 | 
			
		||||
 *
 | 
			
		||||
 * 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
 | 
			
		||||
 | 
			
		||||
// Defines names for use in layer keycodes and the keymap
 | 
			
		||||
enum layer_names {
 | 
			
		||||
    _BASE,
 | 
			
		||||
    _FN,
 | 
			
		||||
    _LOWER,
 | 
			
		||||
    _RAISE
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#define LOWER MO(_LOWER)
 | 
			
		||||
#define RAISE MO(_RAISE)
 | 
			
		||||
#define FN MO(_FN)
 | 
			
		||||
#define ESC_CTL MT(MOD_LCTL, KC_ESC)
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
 | 
			
		||||
    /* Base Layer
 | 
			
		||||
     * .-----------------------------------------------------------------------------------------------------------------------------.
 | 
			
		||||
     * |                                                                                                                     KC_MUTE |
 | 
			
		||||
     * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
 | 
			
		||||
     * | TAB    | Q      | W      | E      | R      | T      | Y      | U      | I      | O      | P      | [      | ]      | \      |
 | 
			
		||||
     * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------|
 | 
			
		||||
     * | ESC    | A      | S      | D      | F      | G      | H      | J      | K      | L      | ;      | '      | BACKSP | PG UP  |
 | 
			
		||||
     * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
 | 
			
		||||
     * | LSHIFT | Z      | X      | C      | V      | B      | N      | M      | ,      | .      | /      | ENTER  | FN     | PG DN  |
 | 
			
		||||
     * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+-----------------+--------+--------|
 | 
			
		||||
     * |        | LGUI   |     LALT   |                             SPACE                             | RALT       | RGUI   |        |
 | 
			
		||||
     * '-----------------------------------------------------------------------------------------------------------------------------'
 | 
			
		||||
     */
 | 
			
		||||
    [_BASE] = LAYOUT_ortho_7u(
 | 
			
		||||
                                                                                                                             KC_MUTE,
 | 
			
		||||
        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,
 | 
			
		||||
        ESC_CTL, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT, KC_BSPC, KC_PGUP,
 | 
			
		||||
        KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_ENT,  FN,      KC_PGDN,
 | 
			
		||||
                 LOWER, KC_LALT,                               KC_SPC,                                     RAISE, KC_RGUI
 | 
			
		||||
    ),
 | 
			
		||||
 | 
			
		||||
    /* FN Layer
 | 
			
		||||
     * .-----------------------------------------------------------------------------------------------------------------------------.
 | 
			
		||||
     * |                                                                                                                     KC_APP |
 | 
			
		||||
     * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
 | 
			
		||||
     * | `      | F1     | F2     | F3     | F4     | F5     | F6     | F7     | F8     | F9     | F10    | F11    | F12    |        |
 | 
			
		||||
     * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------|
 | 
			
		||||
     * |        | F7     | F8     | F9     | F10    | F11    | F12    |        |        |        |        |        | DEL    | PRT SC |
 | 
			
		||||
     * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
 | 
			
		||||
     * |        |        |        |        |        |        |        |        |        |        |        |        |        | RESET  |
 | 
			
		||||
     * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+-----------------+--------+--------|
 | 
			
		||||
     * |        | MU TOG | MU MOD     |                                                               |            |        |        |
 | 
			
		||||
     * '-----------------------------------------------------------------------------------------------------------------------------'
 | 
			
		||||
     */
 | 
			
		||||
    [_FN] = LAYOUT_ortho_7u(
 | 
			
		||||
                                                                                                                             KC_APP,
 | 
			
		||||
        KC_GRV,   KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   _______, _______, _______, KC_UP,   _______, _______, _______,
 | 
			
		||||
        _______,  KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL,  KC_PSCR,
 | 
			
		||||
        _______,  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET,
 | 
			
		||||
                  MU_TOG,  MU_MOD,                             _______,                                   _______, _______
 | 
			
		||||
    ),
 | 
			
		||||
 | 
			
		||||
    /* LOWER Layer
 | 
			
		||||
     * .-----------------------------------------------------------------------------------------------------------------------------.
 | 
			
		||||
     * |                                                                                                                     KC_APP |
 | 
			
		||||
     * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
 | 
			
		||||
     * | `      | 1      | 2      | 3      | 4      | 5      | 6      | 7      | 8      | 9      | 0      | -      | =      | |      |
 | 
			
		||||
     * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------|
 | 
			
		||||
     * |        | F1     | F2     | F3     | F4     | F5     | LEFT   | DOWN   | UP     | RIGHT  |        |        | DEL    | INSERT |
 | 
			
		||||
     * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
 | 
			
		||||
     * |        | F7     | F8     | F9     | F10    | F11    | F12    | ISO #  | ISO /  |        |        |        |        | \      |        |
 | 
			
		||||
     * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+-----------------+--------+--------|
 | 
			
		||||
     * |        |        | F6         |                                                               |            |        |        |
 | 
			
		||||
     * '-----------------------------------------------------------------------------------------------------------------------------'
 | 
			
		||||
     */
 | 
			
		||||
    [_LOWER] = LAYOUT_ortho_7u(
 | 
			
		||||
                                                                                                                            KC_APP,
 | 
			
		||||
        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_PIPE,
 | 
			
		||||
        _______, KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT, _______, _______, KC_DEL,  KC_INS,
 | 
			
		||||
        _______, KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  KC_NUHS, KC_NUBS, _______, _______, _______, _______, KC_BSLS,
 | 
			
		||||
                 _______, KC_F6,                              _______,                                   _______, _______
 | 
			
		||||
    ),
 | 
			
		||||
 | 
			
		||||
    /* RAISE Layer
 | 
			
		||||
     * .-----------------------------------------------------------------------------------------------------------------------------.
 | 
			
		||||
     * |                                                                                                                     KC_APP |
 | 
			
		||||
     * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
 | 
			
		||||
     * | ~      | !      | @      | #      | $      | %      | ^      | &      | *      | (      | )      | -      | =      | |      |
 | 
			
		||||
     * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------|
 | 
			
		||||
     * |        | F1     | F2     | F3     | F4     | F5     | F6     | -      | =      | {      | }      |        | DEL    | INSERT |
 | 
			
		||||
     * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
 | 
			
		||||
     * |        | F7     | F8     | F9     | F10    | F11    | F12    | ISO ~  | ISO |  |        |        |        |        | \      |        |
 | 
			
		||||
     * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+-----------------+--------+--------|
 | 
			
		||||
     * |        |        |            |                                                               |            |        |        |
 | 
			
		||||
     * '-----------------------------------------------------------------------------------------------------------------------------'
 | 
			
		||||
     */
 | 
			
		||||
    [_RAISE] = LAYOUT_ortho_7u(
 | 
			
		||||
                                                                                                                             KC_APP,
 | 
			
		||||
        KC_TILD, KC_EXLM, KC_AT,   KC_HASH, KC_DLR,  KC_PERC, KC_CIRC, KC_AMPR,    KC_ASTR,    KC_LPRN, KC_RPRN, KC_MINS, KC_EQL,  KC_PIPE,
 | 
			
		||||
        _______, KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_UNDS,    KC_PLUS,    KC_LCBR, KC_RCBR, _______, KC_DEL,  KC_INS,
 | 
			
		||||
        _______, KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  S(KC_NUHS), S(KC_NUBS), _______, _______, _______, _______, KC_BSLS,
 | 
			
		||||
                 _______, _______,                              _______,                                   _______, _______
 | 
			
		||||
    ),
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										1
									
								
								keyboards/keyprez/rhino/keymaps/default_7u/readme.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								keyboards/keyprez/rhino/keymaps/default_7u/readme.md
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
# The default 7u keymap for rhino
 | 
			
		||||
							
								
								
									
										124
									
								
								keyboards/keyprez/rhino/keymaps/default_ergo/keymap.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										124
									
								
								keyboards/keyprez/rhino/keymaps/default_ergo/keymap.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,124 @@
 | 
			
		|||
/* Copyright 2021 Christian Sandven
 | 
			
		||||
 *
 | 
			
		||||
 * 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
 | 
			
		||||
 | 
			
		||||
// Defines names for use in layer keycodes and the keymap
 | 
			
		||||
enum layer_names {
 | 
			
		||||
    _BASE,
 | 
			
		||||
    _FN,
 | 
			
		||||
    _LOWER,
 | 
			
		||||
    _RAISE
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#define LOWER MO(_LOWER)
 | 
			
		||||
#define FN MO(_FN)
 | 
			
		||||
#define TAB_CTL MT(MOD_LCTL, KC_TAB)
 | 
			
		||||
#define SPC_RAISE LT(_RAISE, KC_SPC)
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
 | 
			
		||||
    /* Base Layer
 | 
			
		||||
     * .-----------------------------------------------------------------------------------------------------------------------------.
 | 
			
		||||
     * |                                                                                                                     KC_MUTE |
 | 
			
		||||
     * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
 | 
			
		||||
     * | GESC   | Q      | W      | E      | R      | T      |        |        | Y      | U      | I      | O      | P      | '      |
 | 
			
		||||
     * |--------+--------+--------+--------+--------+--------+   [    +    ]   +--------+--------+--------+-----------------+--------|
 | 
			
		||||
     * | TAB    | A      | S      | D      | F      | G      |--------|--------| H      | J      | K      | L      | ;      | BACKSP |
 | 
			
		||||
     * |--------+--------+--------+--------+--------+--------+  HOME  +  END   +--------+--------+--------------------------+--------|
 | 
			
		||||
     * | LSHIFT | Z      | X      | C      | V      | B      |        |        | N      | M      | ,      | .      | /      | ENTER  |
 | 
			
		||||
     * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+-----------------+--------+--------|
 | 
			
		||||
     * |        | LGUI   | FN     | LALT   | LOWER  |      SPACE      |      SPACE      | LEFT   | UP     | DOWN   | RIGHT  |        |
 | 
			
		||||
     * '-----------------------------------------------------------------------------------------------------------------------------'
 | 
			
		||||
     */
 | 
			
		||||
    [_BASE] = LAYOUT_ergo_2x2u(
 | 
			
		||||
                                                                                                                             KC_MUTE,
 | 
			
		||||
        KC_GESC, KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_LBRC, KC_RBRC, KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_QUOT,
 | 
			
		||||
        TAB_CTL, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_HOME, KC_END,  KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_BSPC,
 | 
			
		||||
        KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,                      KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_ENT,
 | 
			
		||||
                 KC_LGUI, FN,      KC_LALT, LOWER,       KC_SPC,          SPC_RAISE,     KC_LEFT, KC_UP,   KC_DOWN, KC_RGHT
 | 
			
		||||
    ),
 | 
			
		||||
 | 
			
		||||
    /* FN Layer
 | 
			
		||||
     * .-----------------------------------------------------------------------------------------------------------------------------.
 | 
			
		||||
     * |                                                                                                                     KC_APP  |
 | 
			
		||||
     * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
 | 
			
		||||
     * | `      | F1     | F2     | F3     | F4     | F5     |        |        | F8     | F9     | F10    | F11    | F12    |        |
 | 
			
		||||
     * |--------+--------+--------+--------+--------+--------+   F6   +   F7  +--------+--------+--------+-----------------+---------|
 | 
			
		||||
     * |        | F7     | F8     | F9     | F10    | F11    |--------|--------|        |        |        |        |        | PRT SC |
 | 
			
		||||
     * |--------+--------+--------+--------+--------+--------+  F12   +        +--------+--------+--------------------------+--------|
 | 
			
		||||
     * |        |        |        |        |        |        |        |        |        |        |        |        |        | RESET  |
 | 
			
		||||
     * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+-----------------+--------+--------|
 | 
			
		||||
     * |        | MU TOG | MU MOD |        |        |                 |                 | MUTE   | VOL UP |VOL DOWN| PAUSE  |        |
 | 
			
		||||
     * '-----------------------------------------------------------------------------------------------------------------------------'
 | 
			
		||||
     */
 | 
			
		||||
    [_FN] = LAYOUT_ergo_2x2u(
 | 
			
		||||
                                                                                                                             KC_APP,
 | 
			
		||||
        KC_GRV,  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_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  _______, _______, _______, _______, _______, _______, KC_PSCR,
 | 
			
		||||
        _______, _______, _______, _______, _______, _______,                   _______, _______, _______, _______, _______, RESET,
 | 
			
		||||
                 MU_TOG,  MU_MOD,  _______, _______,     _______,           _______,     KC_MUTE, KC_VOLU, KC_VOLD, KC_MPLY
 | 
			
		||||
    ),
 | 
			
		||||
 | 
			
		||||
    /* LOWER Layer
 | 
			
		||||
     * .-----------------------------------------------------------------------------------------------------------------------------.
 | 
			
		||||
     * |                                                                                                                     KC_APP  |
 | 
			
		||||
     * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
 | 
			
		||||
     * | `      | 1      | 2      | 3      | 4      | 5      |        |        | 8      | 9      | 0      | -      | =      | |      |
 | 
			
		||||
     * |--------+--------+--------+--------+--------+--------+   6    +    7   +--------+--------+--------+-----------------+--------|
 | 
			
		||||
     * |        | F1     | F2     | F3     | F4     | F5     |--------|--------|        |        |        |        | DEL    | INSERT |
 | 
			
		||||
     * |--------+--------+--------+--------+--------+--------+  F12   +        +--------+--------+--------------------------+--------|
 | 
			
		||||
     * |        | F7     | F8     | F9     | F10    | F11    |        |        |        |        |        |        | \      |        |
 | 
			
		||||
     * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+-----------------+--------+--------|
 | 
			
		||||
     * |        |        |        |        |        |                 |                 | HOME   | PG UP  | PG DN  | END    |        |
 | 
			
		||||
     * '-----------------------------------------------------------------------------------------------------------------------------'
 | 
			
		||||
     */
 | 
			
		||||
    [_LOWER] = LAYOUT_ergo_2x2u(
 | 
			
		||||
                                                                                                                            KC_APP,
 | 
			
		||||
        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_PIPE,
 | 
			
		||||
        _______, KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F12, _______, _______, _______, _______, _______, KC_DEL,  KC_INS,
 | 
			
		||||
        _______, KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,                   _______, _______, _______, _______, KC_BSLS, _______,
 | 
			
		||||
                 _______, _______, _______, _______,     _______,           _______,    KC_HOME, KC_PGUP, KC_PGDOWN, KC_END
 | 
			
		||||
    ),
 | 
			
		||||
 | 
			
		||||
    /* RAISE Layer
 | 
			
		||||
     * .-----------------------------------------------------------------------------------------------------------------------------.
 | 
			
		||||
     * |                                                                                                                     KC_APP |
 | 
			
		||||
     * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
 | 
			
		||||
     * | ~      | !      | @      | #      | $      | %      |        |        | *      | (      | )      | -      | =      | |      |
 | 
			
		||||
     * |--------+--------+--------+--------+--------+--------+   ^    +    &   +--------+--------+--------+-----------------+--------|
 | 
			
		||||
     * |        | F1     | F2     | F3     | F4     | F5     |--------|--------| =      | {      | }      |        | DEL    | INSERT |
 | 
			
		||||
     * |--------+--------+--------+--------+--------+--------+  F12   +   _    +--------+--------+--------------------------+--------|
 | 
			
		||||
     * |        | F7     | F8     | F9     | F10    | F11    |        |        | ISO ~  | ISO |  |        |        | \      |        |
 | 
			
		||||
     * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+-----------------+--------+--------|
 | 
			
		||||
     * |        |        |        |        |        |                 |                 |        |        |        |        |        |
 | 
			
		||||
     * '-----------------------------------------------------------------------------------------------------------------------------'
 | 
			
		||||
     */
 | 
			
		||||
    [_RAISE] = LAYOUT_ergo_2x2u(
 | 
			
		||||
                                                                                                                                      KC_APP,
 | 
			
		||||
        KC_TILD, KC_EXLM, KC_AT,   KC_HASH, KC_DLR,  KC_PERC, KC_CIRC,  KC_AMPR,   KC_ASTR,    KC_LPRN,    KC_RPRN, KC_MINS, KC_EQL,  KC_PIPE,
 | 
			
		||||
        _______, KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F12,   KC_UNDS,   KC_PLUS,    KC_LCBR,    KC_RCBR, _______, KC_DEL,  KC_INS,
 | 
			
		||||
        _______, KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,                       S(KC_NUHS), S(KC_NUBS), _______, _______, _______, KC_BSLS,
 | 
			
		||||
                 _______, _______, _______, _______,     _______,            _______,          _______, _______, _______, _______
 | 
			
		||||
    ),
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const uint8_t music_map[MATRIX_ROWS][MATRIX_COLS] = LAYOUT_ergo_2x2u(
 | 
			
		||||
    0,
 | 
			
		||||
    0, 0, 0, 0, 0, 0, 10, 0, 0,  0,  0,  0,  0,  0,
 | 
			
		||||
    0, 1, 3, 0, 6, 8, 9, 11, 13, 15, 0,  18, 20, 0,
 | 
			
		||||
    0, 0, 2, 4, 5, 7,        12, 14, 16, 17, 19, 0,
 | 
			
		||||
       0, 0, 0, 0,    0,  0,     0,  0,  0,  0
 | 
			
		||||
);
 | 
			
		||||
							
								
								
									
										1
									
								
								keyboards/keyprez/rhino/keymaps/default_ergo/readme.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								keyboards/keyprez/rhino/keymaps/default_ergo/readme.md
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
# The default keymap for rhino
 | 
			
		||||
							
								
								
									
										22
									
								
								keyboards/keyprez/rhino/readme.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								keyboards/keyprez/rhino/readme.md
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,22 @@
 | 
			
		|||
# rhino
 | 
			
		||||
 | 
			
		||||
Rhino is a 50 percent keyboard taking inspiration from the Boardwalk keyboard. It supports some of the layouts the bordwalk does, but in a smaller form factor. The number row is removed and replaced with through hole components.
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
* Keyboard Maintainer: [Christian Sandven](https://github.com/csandven)
 | 
			
		||||
* Hardware Supported: *Pro micro compatible boards*
 | 
			
		||||
* Hardware Availability: *TBA*
 | 
			
		||||
 | 
			
		||||
Make example for this keyboard (after setting up your build environment):
 | 
			
		||||
 | 
			
		||||
    make keyprez/rhino:default
 | 
			
		||||
 | 
			
		||||
Flashing example for this keyboard:
 | 
			
		||||
 | 
			
		||||
    make keyprez/rhino:default:flash
 | 
			
		||||
    
 | 
			
		||||
You can then press the reset button on the top right to flash the keyboard.
 | 
			
		||||
 | 
			
		||||
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).
 | 
			
		||||
							
								
								
									
										32
									
								
								keyboards/keyprez/rhino/rhino.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								keyboards/keyprez/rhino/rhino.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,32 @@
 | 
			
		|||
/* Copyright 2021 Christian Sandven
 | 
			
		||||
 *
 | 
			
		||||
 * 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 "rhino.h"
 | 
			
		||||
 | 
			
		||||
bool encoder_update_kb(uint8_t index, bool clockwise) {
 | 
			
		||||
    if (!encoder_update_user(index, clockwise)) { return false; }
 | 
			
		||||
    tap_code(clockwise ? KC_VOLU : KC_VOLD);
 | 
			
		||||
    return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
__attribute__ ((weak))
 | 
			
		||||
const uint8_t music_map[MATRIX_ROWS][MATRIX_COLS] = LAYOUT_ortho_2x2u(
 | 
			
		||||
    0,
 | 
			
		||||
    0, 0, 0, 0, 0, 0, 0,  0, 0,  0,  0,  0,  0,  0,
 | 
			
		||||
    0, 1, 3, 0, 6, 8, 10, 0, 13, 15, 0,  18, 20, 0,
 | 
			
		||||
    0, 0, 2, 4, 5, 7, 9, 11, 12, 14, 16, 17, 19, 0,
 | 
			
		||||
       0, 0, 0, 0,    0,     0,  0,  0,  0,  0
 | 
			
		||||
);
 | 
			
		||||
							
								
								
									
										80
									
								
								keyboards/keyprez/rhino/rhino.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										80
									
								
								keyboards/keyprez/rhino/rhino.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,80 @@
 | 
			
		|||
/* Copyright 2021 Christian Sandven
 | 
			
		||||
 *
 | 
			
		||||
 * 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"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* 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_ortho_2x2u( \
 | 
			
		||||
                                                                   k70,   \
 | 
			
		||||
    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, \
 | 
			
		||||
    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k30, k31, k32, k33, \
 | 
			
		||||
    k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k50, k51, k52, k53, \
 | 
			
		||||
         k60, k61, k62, k63,    k64,      k65,   k66, k67, k68, k69       \
 | 
			
		||||
) { \
 | 
			
		||||
    { k00,   k01,   k02, k03, k04, k05,   k06 }, \
 | 
			
		||||
    { k20,   k21,   k22, k23, k24, k25,   k26 },  \
 | 
			
		||||
    { k40,   k41,   k42, k43, k44, k45,   k46 },  \
 | 
			
		||||
    { KC_NO, k60,   k61, k62, k63, KC_NO, k64 },  \
 | 
			
		||||
    { k07,   k08,   k09, k10, k11, k12,   k13 },  \
 | 
			
		||||
    { k27,   k28,   k29, k30, k31, k32,   k33 },  \
 | 
			
		||||
    { k47,   k48,   k49, k50, k51, k52,   k53 },  \
 | 
			
		||||
    { k65,   KC_NO, k66, k67, k68, k69,   k70 }  \
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#define LAYOUT_ergo_2x2u( \
 | 
			
		||||
                                                                   k70,   \
 | 
			
		||||
    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, \
 | 
			
		||||
    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k30, k31, k32, k33, \
 | 
			
		||||
    k40, k41, k42, k43, k44, k45,           k48, k49, k50, k51, k52, k53, \
 | 
			
		||||
         k60, k61, k62, k63,   k64,       k65,   k66, k67, k68, k69           \
 | 
			
		||||
) { \
 | 
			
		||||
    { k00,   k01,   k02, k03, k04, k05,   k06   }, \
 | 
			
		||||
    { k20,   k21,   k22, k23, k24, k25,   k26   },  \
 | 
			
		||||
    { k40,   k41,   k42, k43, k44, k45,   KC_NO },  \
 | 
			
		||||
    { KC_NO, k60,   k61, k62, k63, KC_NO, k64   },  \
 | 
			
		||||
    { k07,   k08,   k09, k10, k11, k12,   k13   },  \
 | 
			
		||||
    { k27,   k28,   k29, k30, k31, k32,   k33   },  \
 | 
			
		||||
    { KC_NO, k48,   k49, k50, k51, k52,   k53   },  \
 | 
			
		||||
    { k65,   KC_NO, k66, k67, k68, k69,   k70   }  \
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#define LAYOUT_ortho_7u( \
 | 
			
		||||
                                                                   k65,   \
 | 
			
		||||
    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, \
 | 
			
		||||
    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k30, k31, k32, k33, \
 | 
			
		||||
    k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k50, k51, k52, k53, \
 | 
			
		||||
         k60,    k61,                k62,                k63,   k64       \
 | 
			
		||||
) { \
 | 
			
		||||
    { k00,   k01,   k02,   k03,   k04,   k05,   k06 }, \
 | 
			
		||||
    { k20,   k21,   k22,   k23,   k24,   k25,   k26 },  \
 | 
			
		||||
    { k40,   k41,   k42,   k43,   k44,   k45,   k46 },  \
 | 
			
		||||
    { KC_NO, k60,   k61,   KC_NO, KC_NO, KC_NO, k62 },  \
 | 
			
		||||
    { k07,   k08,   k09,   k10,   k11,   k12,   k13 },  \
 | 
			
		||||
    { k27,   k28,   k29,   k30,   k31,   k32,   k33 },  \
 | 
			
		||||
    { k47,   k48,   k49,   k50,   k51,   k52,   k53 },  \
 | 
			
		||||
    { KC_NO, KC_NO, KC_NO, KC_NO, k63,   k64,   k65 }  \
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										23
									
								
								keyboards/keyprez/rhino/rules.mk
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								keyboards/keyprez/rhino/rules.mk
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,23 @@
 | 
			
		|||
# MCU name
 | 
			
		||||
MCU = atmega32u4
 | 
			
		||||
 | 
			
		||||
# Bootloader selection
 | 
			
		||||
BOOTLOADER = atmel-dfu
 | 
			
		||||
 | 
			
		||||
# Build Options
 | 
			
		||||
#   change yes to no to disable
 | 
			
		||||
#
 | 
			
		||||
BOOTMAGIC_ENABLE = lite     # Virtual DIP switch configuration
 | 
			
		||||
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
 | 
			
		||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
 | 
			
		||||
SLEEP_LED_ENABLE = no       # Breathing sleep LED during USB suspend
 | 
			
		||||
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
 | 
			
		||||
NKRO_ENABLE = no            # USB Nkey Rollover
 | 
			
		||||
BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
 | 
			
		||||
RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow
 | 
			
		||||
BLUETOOTH_ENABLE = no       # Enable Bluetooth
 | 
			
		||||
AUDIO_ENABLE = yes           # Audio output
 | 
			
		||||
ENCODER_ENABLE = yes
 | 
			
		||||
							
								
								
									
										27
									
								
								keyboards/moonlander/keymaps/jjerrell/config.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								keyboards/moonlander/keymaps/jjerrell/config.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,27 @@
 | 
			
		|||
/* Copyright 2020 ZSA Technology Labs, Inc <@zsa>
 | 
			
		||||
 * Copyright 2020 Jack Humbert <jack.humb@gmail.com>
 | 
			
		||||
 * Copyright 2020 Christopher Courtney <drashna@live.com> (@drashna)
 | 
			
		||||
 * Copyright 2021 Jacob Jerrell <@jjerrell>
 | 
			
		||||
 *
 | 
			
		||||
 * 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 ORYX_CONFIGURATOR
 | 
			
		||||
 | 
			
		||||
#undef PRODUCT
 | 
			
		||||
#define PRODUCT         Moonlander Mark I - Modified by <@jjerrell>
 | 
			
		||||
 | 
			
		||||
#define IGNORE_MOD_TAP_INTERRUPT
 | 
			
		||||
							
								
								
									
										117
									
								
								keyboards/moonlander/keymaps/jjerrell/keymap.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										117
									
								
								keyboards/moonlander/keymaps/jjerrell/keymap.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,117 @@
 | 
			
		|||
/**
 | 
			
		||||
 * Copyright (C) 2021 Jerrell, Jacob <@jjerrell>
 | 
			
		||||
 * 
 | 
			
		||||
 * This file is part of qmk_firmware.
 | 
			
		||||
 * 
 | 
			
		||||
 * qmk_firmware 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 3 of the License, or
 | 
			
		||||
 * (at your option) any later version.
 | 
			
		||||
 * 
 | 
			
		||||
 * qmk_firmware 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 qmk_firmware.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "jjerrell.h"
 | 
			
		||||
 | 
			
		||||
enum moonlander_layers {
 | 
			
		||||
    _GAME_LOWER = LAYER_SAFE_RANGE,
 | 
			
		||||
    // _GAME_RAISE,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// clang-format off
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
    [_WORKMAN] = LAYOUT_moonlander_mods(
 | 
			
		||||
        __________________WORKMN_L1__________________, __________________WORKMN_R1__________________,
 | 
			
		||||
        __________________WORKMN_L2__________________, __________________WORKMN_R2__________________,
 | 
			
		||||
        __________________WORKMN_L3__________________, __________________WORKMN_R3__________________,
 | 
			
		||||
        XXXXXXX, XXXXXXX, XXXXXXX, KC_LSFT,                       KC_RSFT, XXXXXXX, XXXXXXX, XXXXXXX
 | 
			
		||||
    ),
 | 
			
		||||
 | 
			
		||||
    [_LOWER] = LAYOUT_moonlander_mods(
 | 
			
		||||
        __________________LOWER_L1___________________, __________________LOWER_R1___________________,
 | 
			
		||||
        __________________LOWER_L2___________________, __________________LOWER_R2___________________,
 | 
			
		||||
        __________________LOWER_L3___________________, __________________LOWER_R3___________________,
 | 
			
		||||
          XXXXXXX, XXXXXXX, XXXXXXX, KC_LSFT,                         KC_0, KC_DOT, KC_COMM, KC_PLUS
 | 
			
		||||
    ),
 | 
			
		||||
 | 
			
		||||
    [_RAISE] = LAYOUT_moonlander_common(
 | 
			
		||||
        __________________RAISE_L1___________________, __________________RAISE_R1___________________,
 | 
			
		||||
        __________________RAISE_L2___________________, __________________RAISE_R2___________________,
 | 
			
		||||
        __________________RAISE_L3___________________, __________________RAISE_R3___________________,
 | 
			
		||||
        XXXXXXX, XXXXXXX, XXXXXXX, KC_LSFT,                       KC_RSFT, XXXXXXX, XXXXXXX, XXXXXXX
 | 
			
		||||
    ),
 | 
			
		||||
 | 
			
		||||
    [_ADJUST] = LAYOUT_moonlander_common(
 | 
			
		||||
        __________________ADJUST_L1__________________, __________________ADJUST_R1__________________,
 | 
			
		||||
        __________________ADJUST_L2__________________, __________________ADJUST_R2__________________,
 | 
			
		||||
        __________________ADJUST_L3__________________, __________________ADJUST_R3__________________,
 | 
			
		||||
        XXXXXXX, XXXXXXX, XXXXXXX, KC_LSFT,                       KC_RSFT, XXXXXXX, XXXXXXX, XXXXXXX
 | 
			
		||||
    ),
 | 
			
		||||
 | 
			
		||||
    [_SPECIAL] = LAYOUT_moonlander_common(
 | 
			
		||||
        XXXXXXX, XXXXXXX, KC_WH_D, XXXXXXX, XXXXXXX,     XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
 | 
			
		||||
        XXXXXXX, KC_WH_L, KC_WH_U, KC_WH_R, XXXXXXX,     XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
 | 
			
		||||
        XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,     XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
 | 
			
		||||
        XXXXXXX, XXXXXXX, XXXXXXX, KC_LALT,                       KC_RALT, XXXXXXX, XXXXXXX, XXXXXXX
 | 
			
		||||
    ),
 | 
			
		||||
 | 
			
		||||
    [_GAME] = LAYOUT_moonlander_gamepad(
 | 
			
		||||
        KC_ESC,  KC_1,     KC_2,      KC_3,     KC_4,     KC_5, KC_6,
 | 
			
		||||
        KC_TAB,  __________________QWERTY_L1__________________, KC_SLSH,
 | 
			
		||||
        KC_LALT, __________________QWERTY_L2__________________, KC_BSLS,
 | 
			
		||||
        KC_LSFT, __________________QWERTY_L3__________________,
 | 
			
		||||
        KC_LGUI, MACRO_1, MACRO_2, MACRO_3, MACRO_4,   KC_LOCK,
 | 
			
		||||
                                    KC_SPC, KC_BTN2, MO(_LOWER)
 | 
			
		||||
    ),
 | 
			
		||||
    [_GAME_LOWER] = LAYOUT_moonlander_gamepad(
 | 
			
		||||
        KC_GRV,  KC_7,     KC_8,      KC_9,     KC_0,  KC_MINS, KC_EQL,
 | 
			
		||||
        KC_TAB,  __________________QWERTY_L1__________________, KC_SLSH,
 | 
			
		||||
        KC_LALT, __________________QWERTY_L2__________________, KC_BSLS,
 | 
			
		||||
        KC_LSFT, __________________QWERTY_L3__________________,
 | 
			
		||||
        KC_LGUI, MACRO_5, MACRO_6, MACRO_7, MACRO_8,   KC_LOCK,
 | 
			
		||||
                                    KC_SPC, KC_BTN2, MO(_LOWER)
 | 
			
		||||
    )
 | 
			
		||||
};
 | 
			
		||||
// clang-format on
 | 
			
		||||
 | 
			
		||||
layer_state_t layer_state_set_keymap(layer_state_t state) {
 | 
			
		||||
    ML_LED_1(0);
 | 
			
		||||
    ML_LED_2(0);
 | 
			
		||||
    ML_LED_3(0);
 | 
			
		||||
    ML_LED_4(0);
 | 
			
		||||
    ML_LED_5(0);
 | 
			
		||||
    ML_LED_6(0);
 | 
			
		||||
    state = update_tri_layer_state(state, _GAME, _LOWER, _GAME_LOWER);
 | 
			
		||||
    switch (get_highest_layer(state)) {
 | 
			
		||||
        case 1:
 | 
			
		||||
            ML_LED_1(1);
 | 
			
		||||
            ML_LED_4(1);
 | 
			
		||||
            break;
 | 
			
		||||
        case 2:
 | 
			
		||||
            ML_LED_2(1);
 | 
			
		||||
            ML_LED_5(1);
 | 
			
		||||
            break;
 | 
			
		||||
        case 3:
 | 
			
		||||
            ML_LED_3(1);
 | 
			
		||||
            break;
 | 
			
		||||
        case 4:
 | 
			
		||||
            ML_LED_4(1);
 | 
			
		||||
            break;
 | 
			
		||||
        case 5:
 | 
			
		||||
            ML_LED_5(1);
 | 
			
		||||
            break;
 | 
			
		||||
        case 6:
 | 
			
		||||
            ML_LED_6(1);
 | 
			
		||||
            break;
 | 
			
		||||
        default:
 | 
			
		||||
            break;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return state;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										3
									
								
								keyboards/moonlander/keymaps/jjerrell/readme.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								keyboards/moonlander/keymaps/jjerrell/readme.md
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,3 @@
 | 
			
		|||
# Jacob Jerrell's Moonlander Keymap
 | 
			
		||||
 | 
			
		||||
Concrete proof and acceptance of a problem. There is some not so custom Moonlander LED control in here but everything else is implemented in [my userspace](../../../../users/jjerrell/).
 | 
			
		||||
							
								
								
									
										1
									
								
								keyboards/moonlander/keymaps/jjerrell/rules.mk
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								keyboards/moonlander/keymaps/jjerrell/rules.mk
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
AUDIO_ENABLE = yes
 | 
			
		||||
							
								
								
									
										38
									
								
								keyboards/peej/tripel/config.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								keyboards/peej/tripel/config.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,38 @@
 | 
			
		|||
/*
 | 
			
		||||
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"
 | 
			
		||||
 | 
			
		||||
/* USB Device descriptor parameter */
 | 
			
		||||
#define VENDOR_ID       0x706A
 | 
			
		||||
#define PRODUCT_ID      0x0001
 | 
			
		||||
#define DEVICE_VER      0x0001
 | 
			
		||||
#define MANUFACTURER    Peej
 | 
			
		||||
#define PRODUCT         Tripel
 | 
			
		||||
 | 
			
		||||
/* key matrix size */
 | 
			
		||||
#define MATRIX_ROWS 9
 | 
			
		||||
#define MATRIX_COLS 8
 | 
			
		||||
#define MATRIX_ROW_PINS { C6, D4, D0, B4, E6, D7, D1, D2, D3 }
 | 
			
		||||
#define MATRIX_COL_PINS { B5, B6, B2, B3, B1, F7, F6, F5 }
 | 
			
		||||
#define UNUSED_PINS { F4 }
 | 
			
		||||
 | 
			
		||||
/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */
 | 
			
		||||
#define DIODE_DIRECTION COL2ROW
 | 
			
		||||
 | 
			
		||||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
 | 
			
		||||
#define DEBOUNCE 5
 | 
			
		||||
							
								
								
									
										82
									
								
								keyboards/peej/tripel/info.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										82
									
								
								keyboards/peej/tripel/info.json
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,82 @@
 | 
			
		|||
{
 | 
			
		||||
    "keyboard_name": "Tripel",
 | 
			
		||||
    "url": "https://github.com/peej/tripel-keyboard",
 | 
			
		||||
    "maintainer": "Peej",
 | 
			
		||||
    "width": 15,
 | 
			
		||||
    "height": 5,
 | 
			
		||||
    "layouts": {
 | 
			
		||||
        "LAYOUT_ortho_7u": {
 | 
			
		||||
            "layout": [
 | 
			
		||||
                { "x":0, "y":0 },
 | 
			
		||||
                { "x":1, "y":0 },
 | 
			
		||||
                { "x":2, "y":0 },
 | 
			
		||||
                { "x":3, "y":0 },
 | 
			
		||||
                { "x":4, "y":0 },
 | 
			
		||||
                { "x":5, "y":0 },
 | 
			
		||||
                { "x":6, "y":0 },
 | 
			
		||||
                { "x":7, "y":0 },
 | 
			
		||||
                { "x":8, "y":0 },
 | 
			
		||||
                { "x":9, "y":0 },
 | 
			
		||||
                { "x":10, "y":0 },
 | 
			
		||||
                { "x":11, "y":0 },
 | 
			
		||||
                { "x":12, "y":0 },
 | 
			
		||||
                { "x":13, "y":0 },
 | 
			
		||||
                { "x":14, "y":0 },
 | 
			
		||||
                { "x":0, "y":1 },
 | 
			
		||||
                { "x":1, "y":1 },
 | 
			
		||||
                { "x":2, "y":1 },
 | 
			
		||||
                { "x":3, "y":1 },
 | 
			
		||||
                { "x":4, "y":1 },
 | 
			
		||||
                { "x":5, "y":1 },
 | 
			
		||||
                { "x":6, "y":1 },
 | 
			
		||||
                { "x":7, "y":1 },
 | 
			
		||||
                { "x":8, "y":1 },
 | 
			
		||||
                { "x":9, "y":1 },
 | 
			
		||||
                { "x":10, "y":1 },
 | 
			
		||||
                { "x":11, "y":1 },
 | 
			
		||||
                { "x":12, "y":1 },
 | 
			
		||||
                { "x":13, "y":1 },
 | 
			
		||||
                { "x":14, "y":1 },
 | 
			
		||||
                { "x":0, "y":2 },
 | 
			
		||||
                { "x":1, "y":2 },
 | 
			
		||||
                { "x":2, "y":2 },
 | 
			
		||||
                { "x":3, "y":2 },
 | 
			
		||||
                { "x":4, "y":2 },
 | 
			
		||||
                { "x":5, "y":2 },
 | 
			
		||||
                { "x":6, "y":2 },
 | 
			
		||||
                { "x":7, "y":2 },
 | 
			
		||||
                { "x":8, "y":2 },
 | 
			
		||||
                { "x":9, "y":2 },
 | 
			
		||||
                { "x":10, "y":2 },
 | 
			
		||||
                { "x":11, "y":2 },
 | 
			
		||||
                { "x":12, "y":2 },
 | 
			
		||||
                { "x":13, "y":2 },
 | 
			
		||||
                { "x":14, "y":2 },
 | 
			
		||||
                { "x":0, "y":3 },
 | 
			
		||||
                { "x":1, "y":3 },
 | 
			
		||||
                { "x":2, "y":3 },
 | 
			
		||||
                { "x":3, "y":3 },
 | 
			
		||||
                { "x":4, "y":3 },
 | 
			
		||||
                { "x":5, "y":3 },
 | 
			
		||||
                { "x":6, "y":3 },
 | 
			
		||||
                { "x":7, "y":3 },
 | 
			
		||||
                { "x":8, "y":3 },
 | 
			
		||||
                { "x":9, "y":3 },
 | 
			
		||||
                { "x":10, "y":3 },
 | 
			
		||||
                { "x":11, "y":3 },
 | 
			
		||||
                { "x":12, "y":3 },
 | 
			
		||||
                { "x":13, "y":3 },
 | 
			
		||||
                { "x":14, "y":3 },
 | 
			
		||||
                { "x":0, "y":4 },
 | 
			
		||||
                { "x":1, "y":4 },
 | 
			
		||||
                { "x":2, "y":4 },
 | 
			
		||||
                { "x":3, "y":4 },
 | 
			
		||||
                { "x":7, "y":4, "w":7 },
 | 
			
		||||
                { "x":11, "y":4 },
 | 
			
		||||
                { "x":12, "y":4 },
 | 
			
		||||
                { "x":13, "y":4 },
 | 
			
		||||
                { "x":14, "y":4 }
 | 
			
		||||
            ]
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										54
									
								
								keyboards/peej/tripel/keymaps/default/keymap.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								keyboards/peej/tripel/keymaps/default/keymap.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,54 @@
 | 
			
		|||
/*
 | 
			
		||||
 * 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
 | 
			
		||||
 | 
			
		||||
// Layer shorthand
 | 
			
		||||
enum layer {
 | 
			
		||||
  _BASE,
 | 
			
		||||
  _FN,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * ,-----------------------------------------------------------------------------------------------------------------------.
 | 
			
		||||
 * | Gesc  |   1   |   2   |   3   |   4   |   5   |   -   |  Num  |   =   |   6   |   7   |   8   |   9   |   0   | Bksp  |
 | 
			
		||||
 * |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------|
 | 
			
		||||
 * |  Tab  |   Q   |   W   |   E   |   R   |   T   |   7   |   8   |   9   |   Y   |   U   |   I   |   O   |   P   |  Del  |
 | 
			
		||||
 * |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------|
 | 
			
		||||
 * | Ctrl  |   A   |   S   |   D   |   F   |   G   |   4   |   5   |   6   |   H   |   J   |   K   |   L   |   ;   |   '   |
 | 
			
		||||
 * |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------|
 | 
			
		||||
 * | Shift |   Z   |   X   |   C   |   V   |   B   |   1   |   2   |   3   |   N   |   M   |   ,   |   .   |   /   | Enter |
 | 
			
		||||
 * |-------+-------+---------------------------------------------------------------------------------------+-------+-------|
 | 
			
		||||
 * | Ctrl  |  Fn   |  Alt  |  Cmd  |                         Space                         | Left  | Down  |  Up   | Right |
 | 
			
		||||
 * `-----------------------------------------------------------------------------------------------------------------------'
 | 
			
		||||
 */
 | 
			
		||||
 [_BASE] = LAYOUT_ortho_7u(
 | 
			
		||||
  KC_GESC, KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_MINS, KC_NLCK, KC_EQL,  KC_6,   KC_7,    KC_8,    KC_9,    KC_0,    KC_BSPC,
 | 
			
		||||
  KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_P7,   KC_P8,   KC_P9,   KC_Y,   KC_U,    KC_I,    KC_O,    KC_P,    KC_DEL,
 | 
			
		||||
  KC_LCTL, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_P4,   KC_P5,   KC_P6,   KC_H,   KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT,
 | 
			
		||||
  KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_P1,   KC_P2,   KC_P3,   KC_N,   KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_ENT,
 | 
			
		||||
  KC_LCTL, MO(_FN), KC_LALT, KC_LGUI,                            KC_SPC,                            KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT
 | 
			
		||||
 ),
 | 
			
		||||
 | 
			
		||||
 [_FN] = LAYOUT_ortho_7u(
 | 
			
		||||
  _______, KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F11,  KC_F12,  KC_F13,  KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_DEL,
 | 
			
		||||
  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, _______,
 | 
			
		||||
  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
 | 
			
		||||
  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
 | 
			
		||||
  _______, _______, _______, _______,                            _______,                            _______, _______, _______, _______
 | 
			
		||||
 )
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										50
									
								
								keyboards/peej/tripel/keymaps/via/keymap.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								keyboards/peej/tripel/keymaps/via/keymap.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,50 @@
 | 
			
		|||
/* Copyright 2021 Paul James
 | 
			
		||||
 *
 | 
			
		||||
 * 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_ortho_7u(
 | 
			
		||||
    KC_GESC, KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_MINS, KC_NLCK, KC_EQL,  KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_BSPC,
 | 
			
		||||
    KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_P7,   KC_P8,   KC_P9,   KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_DEL,
 | 
			
		||||
    KC_ESC,  KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_P4,   KC_P5,   KC_P6,   KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT,
 | 
			
		||||
    KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_P1,   KC_P2,   KC_P3,   KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_ENT,
 | 
			
		||||
    KC_LCTL, MO(1),   KC_LALT, KC_LGUI,                            KC_SPC,                             KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT
 | 
			
		||||
),
 | 
			
		||||
[1] = LAYOUT_ortho_7u(
 | 
			
		||||
    _______, KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F11,  KC_F12,  KC_F13,  KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_DEL,
 | 
			
		||||
    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, _______,
 | 
			
		||||
    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
 | 
			
		||||
    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
 | 
			
		||||
    _______, _______, _______, _______,                            _______,                            _______, _______, _______, _______
 | 
			
		||||
),
 | 
			
		||||
[2] = LAYOUT_ortho_7u(
 | 
			
		||||
    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
 | 
			
		||||
    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
 | 
			
		||||
    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
 | 
			
		||||
    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
 | 
			
		||||
    _______, _______, _______, _______,                            _______,                            _______, _______, _______, _______
 | 
			
		||||
),
 | 
			
		||||
[3] = LAYOUT_ortho_7u(
 | 
			
		||||
    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
 | 
			
		||||
    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
 | 
			
		||||
    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
 | 
			
		||||
    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
 | 
			
		||||
    _______, _______, _______, _______,                            _______,                            _______, _______, _______, _______
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										1
									
								
								keyboards/peej/tripel/keymaps/via/rules.mk
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								keyboards/peej/tripel/keymaps/via/rules.mk
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
VIA_ENABLE = yes
 | 
			
		||||
							
								
								
									
										38
									
								
								keyboards/peej/tripel/left/left.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								keyboards/peej/tripel/left/left.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,38 @@
 | 
			
		|||
/* Copyright 2021 Paul James
 | 
			
		||||
 *
 | 
			
		||||
 * 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"
 | 
			
		||||
 | 
			
		||||
#define LAYOUT_ortho_7u( \
 | 
			
		||||
    l11, l12, l13, l14, l15, m11, m12, m13, m14, m15, r11, r12, r13, r14, r15, \
 | 
			
		||||
    l21, l22, l23, l24, l25, m21, m22, m23, m24, m25, r21, r22, r23, r24, r25, \
 | 
			
		||||
    l31, l32, l33, l34, l35, m31, m32, m33, m34, m35, r31, r32, r33, r34, r35, \
 | 
			
		||||
    l41, l42, l43, l44, l45, m41, m42, m43, m44, m45, r41, r42, r43, r44, r45, \
 | 
			
		||||
    l51, l52, l53, l54,                m53,                r52, r53, r54, r51  \
 | 
			
		||||
) \
 | 
			
		||||
{ \
 | 
			
		||||
    { r11, r12, r13, r14, r15, r25, r35, r45 }, \
 | 
			
		||||
    { r21, r22, r23, r24, r34, r44, r53, r54 }, \
 | 
			
		||||
    { r31, r32, r33, r43, r42, r41, r51, r52 }, \
 | 
			
		||||
    { l11, l12, l13, l14, l15, l25, l35, l45 }, \
 | 
			
		||||
    { l21, l22, l23, l24, l34, l44, l53, l54 }, \
 | 
			
		||||
    { l31, l32, l33, l43, l42, l41, l51, l52 }, \
 | 
			
		||||
    { m11, m12, m13, m14, m15, m25, m35, m45 }, \
 | 
			
		||||
    { m21, m22, m23, m24, m34, m44, m53, KC_NO }, \
 | 
			
		||||
    { m31, m32, m33, m43, m42, m41, KC_NO, KC_NO } \
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										21
									
								
								keyboards/peej/tripel/left/readme.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								keyboards/peej/tripel/left/readme.md
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,21 @@
 | 
			
		|||
# Tripel
 | 
			
		||||
## Sub-100x100mm modula 60% ortholinear 7u PCB
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
15x5 ortholinear PCB for 60% tray mount cases using only prototype sized PCBs.
 | 
			
		||||
 | 
			
		||||
This revision is for when the Pro-Micro is mounted on the left most PCB.
 | 
			
		||||
 | 
			
		||||
* Keyboard Maintainer: [Paul James](https://github.com/peej)
 | 
			
		||||
* Hardware Supported: Pro-Micro [PCB](https://github.com/peej/tripel-keyboard)
 | 
			
		||||
 | 
			
		||||
Make example for this keyboard (after setting up your build environment):
 | 
			
		||||
 | 
			
		||||
    make peej/tripel/left:default
 | 
			
		||||
 | 
			
		||||
Flashing example for this keyboard:
 | 
			
		||||
 | 
			
		||||
    make peej/tripel/left: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).
 | 
			
		||||
							
								
								
									
										1
									
								
								keyboards/peej/tripel/left/rules.mk
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								keyboards/peej/tripel/left/rules.mk
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
# This file intentionally left blank
 | 
			
		||||
							
								
								
									
										38
									
								
								keyboards/peej/tripel/middle/middle.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								keyboards/peej/tripel/middle/middle.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,38 @@
 | 
			
		|||
/* Copyright 2021 Paul James
 | 
			
		||||
 *
 | 
			
		||||
 * 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"
 | 
			
		||||
 | 
			
		||||
#define LAYOUT_ortho_7u( \
 | 
			
		||||
    l11, l12, l13, l14, l15, m11, m12, m13, m14, m15, r11, r12, r13, r14, r15, \
 | 
			
		||||
    l21, l22, l23, l24, l25, m21, m22, m23, m24, m25, r21, r22, r23, r24, r25, \
 | 
			
		||||
    l31, l32, l33, l34, l35, m31, m32, m33, m34, m35, r31, r32, r33, r34, r35, \
 | 
			
		||||
    l41, l42, l43, l44, l45, m41, m42, m43, m44, m45, r41, r42, r43, r44, r45, \
 | 
			
		||||
    l51, l52, l53, l54,                m53,                r52, r53, r54, r51  \
 | 
			
		||||
) \
 | 
			
		||||
{ \
 | 
			
		||||
    { l11, l12, l13, l14, l15, l25, l35, l45 }, \
 | 
			
		||||
    { l21, l22, l23, l24, l34, l44, l53, l54 }, \
 | 
			
		||||
    { l31, l32, l33, l43, l42, l41, l51, l52 }, \
 | 
			
		||||
    { m11, m12, m13, m14, m15, m25, m35, m45 }, \
 | 
			
		||||
    { m21, m22, m23, m24, m34, m44, m53, KC_NO }, \
 | 
			
		||||
    { m31, m32, m33, m43, m42, m41, KC_NO, KC_NO }, \
 | 
			
		||||
    { r11, r12, r13, r14, r15, r25, r35, r45 }, \
 | 
			
		||||
    { r21, r22, r23, r24, r34, r44, r53, r54 }, \
 | 
			
		||||
    { r31, r32, r33, r43, r42, r41, r51, r52 } \
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										21
									
								
								keyboards/peej/tripel/middle/readme.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								keyboards/peej/tripel/middle/readme.md
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,21 @@
 | 
			
		|||
# Tripel
 | 
			
		||||
## Sub-100x100mm modula 60% ortholinear 7u PCB
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
15x5 ortholinear PCB for 60% tray mount cases using only prototype sized PCBs.
 | 
			
		||||
 | 
			
		||||
This revision is for when the Pro-Micro is mounted on the middle PCB.
 | 
			
		||||
 | 
			
		||||
* Keyboard Maintainer: [Paul James](https://github.com/peej)
 | 
			
		||||
* Hardware Supported: Pro-Micro [PCB](https://github.com/peej/tripel-keyboard)
 | 
			
		||||
 | 
			
		||||
Make example for this keyboard (after setting up your build environment):
 | 
			
		||||
 | 
			
		||||
    make peej/tripel/middle:default
 | 
			
		||||
 | 
			
		||||
Flashing example for this keyboard:
 | 
			
		||||
 | 
			
		||||
    make peej/tripel/middle: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).
 | 
			
		||||
							
								
								
									
										1
									
								
								keyboards/peej/tripel/middle/rules.mk
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								keyboards/peej/tripel/middle/rules.mk
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
# This file intentionally left blank
 | 
			
		||||
							
								
								
									
										21
									
								
								keyboards/peej/tripel/right/readme.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								keyboards/peej/tripel/right/readme.md
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,21 @@
 | 
			
		|||
# Tripel
 | 
			
		||||
## Sub-100x100mm modula 60% ortholinear 7u PCB
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
15x5 ortholinear PCB for 60% tray mount cases using only prototype sized PCBs.
 | 
			
		||||
 | 
			
		||||
This revision is for when the Pro-Micro is mounted on the right most PCB.
 | 
			
		||||
 | 
			
		||||
* Keyboard Maintainer: [Paul James](https://github.com/peej)
 | 
			
		||||
* Hardware Supported: Pro-Micro [PCB](https://github.com/peej/tripel-keyboard)
 | 
			
		||||
 | 
			
		||||
Make example for this keyboard (after setting up your build environment):
 | 
			
		||||
 | 
			
		||||
    make peej/tripel/right:default
 | 
			
		||||
 | 
			
		||||
Flashing example for this keyboard:
 | 
			
		||||
 | 
			
		||||
    make peej/tripel/right: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).
 | 
			
		||||
							
								
								
									
										38
									
								
								keyboards/peej/tripel/right/right.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								keyboards/peej/tripel/right/right.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,38 @@
 | 
			
		|||
/* Copyright 2021 Paul James
 | 
			
		||||
 *
 | 
			
		||||
 * 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"
 | 
			
		||||
 | 
			
		||||
#define LAYOUT_ortho_7u( \
 | 
			
		||||
    l11, l12, l13, l14, l15, m11, m12, m13, m14, m15, r11, r12, r13, r14, r15, \
 | 
			
		||||
    l21, l22, l23, l24, l25, m21, m22, m23, m24, m25, r21, r22, r23, r24, r25, \
 | 
			
		||||
    l31, l32, l33, l34, l35, m31, m32, m33, m34, m35, r31, r32, r33, r34, r35, \
 | 
			
		||||
    l41, l42, l43, l44, l45, m41, m42, m43, m44, m45, r41, r42, r43, r44, r45, \
 | 
			
		||||
    l51, l52, l53, l54,                m53,                r52, r53, r54, r51  \
 | 
			
		||||
) \
 | 
			
		||||
{ \
 | 
			
		||||
    { m11, m12, m13, m14, m15, m25, m35, m45 }, \
 | 
			
		||||
    { m21, m22, m23, m24, m34, m44, m53, KC_NO }, \
 | 
			
		||||
    { m31, m32, m33, m43, m42, m41, KC_NO, KC_NO }, \
 | 
			
		||||
    { r11, r12, r13, r14, r15, r25, r35, r45 }, \
 | 
			
		||||
    { r21, r22, r23, r24, r34, r44, r53, r54 }, \
 | 
			
		||||
    { r31, r32, r33, r43, r42, r41, r51, r52 }, \
 | 
			
		||||
    { l11, l12, l13, l14, l15, l25, l35, l45 }, \
 | 
			
		||||
    { l21, l22, l23, l24, l34, l44, l53, l54 }, \
 | 
			
		||||
    { l31, l32, l33, l43, l42, l41, l51, l52 } \
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										1
									
								
								keyboards/peej/tripel/right/rules.mk
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								keyboards/peej/tripel/right/rules.mk
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
# This file intentionally left blank
 | 
			
		||||
							
								
								
									
										24
									
								
								keyboards/peej/tripel/rules.mk
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								keyboards/peej/tripel/rules.mk
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,24 @@
 | 
			
		|||
# MCU name
 | 
			
		||||
MCU = atmega32u4
 | 
			
		||||
 | 
			
		||||
# Bootloader selection
 | 
			
		||||
BOOTLOADER = caterina
 | 
			
		||||
 | 
			
		||||
# Build Options
 | 
			
		||||
#   change yes to no to disable
 | 
			
		||||
#
 | 
			
		||||
BOOTMAGIC_ENABLE = no       # Virtual DIP switch configuration
 | 
			
		||||
MOUSEKEY_ENABLE = no        # Mouse keys
 | 
			
		||||
EXTRAKEY_ENABLE = yes       # Audio control and System control
 | 
			
		||||
CONSOLE_ENABLE = no         # Console for debug
 | 
			
		||||
COMMAND_ENABLE = yes        # Commands for debug and configuration
 | 
			
		||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
 | 
			
		||||
SLEEP_LED_ENABLE = no       # Breathing sleep LED during USB suspend
 | 
			
		||||
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
 | 
			
		||||
NKRO_ENABLE = yes           # USB Nkey Rollover
 | 
			
		||||
BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
 | 
			
		||||
RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow
 | 
			
		||||
BLUETOOTH_ENABLE = no       # Enable Bluetooth
 | 
			
		||||
AUDIO_ENABLE = no           # Audio output
 | 
			
		||||
 | 
			
		||||
DEFAULT_FOLDER = peej/tripel/left
 | 
			
		||||
							
								
								
									
										33
									
								
								keyboards/planck/keymaps/kuatsure/config.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								keyboards/planck/keymaps/kuatsure/config.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,33 @@
 | 
			
		|||
/* Copyright 2020 kuatsure
 | 
			
		||||
  *
 | 
			
		||||
  * 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
 | 
			
		||||
 | 
			
		||||
#ifdef AUDIO_ENABLE
 | 
			
		||||
    #define STARTUP_SONG SONG(PLANCK_SOUND)
 | 
			
		||||
    // #define STARTUP_SONG SONG(NO_SOUND)
 | 
			
		||||
 | 
			
		||||
    #define GAME_SOUND DVORAK_SOUND
 | 
			
		||||
 | 
			
		||||
    #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
 | 
			
		||||
                                  SONG(GAME_SOUND) \
 | 
			
		||||
                                }
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define MIDI_BASIC
 | 
			
		||||
 | 
			
		||||
// Most tactile encoders have detents every 4 stages
 | 
			
		||||
#define ENCODER_RESOLUTION 4
 | 
			
		||||
							
								
								
									
										318
									
								
								keyboards/planck/keymaps/kuatsure/keymap.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										318
									
								
								keyboards/planck/keymaps/kuatsure/keymap.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,318 @@
 | 
			
		|||
/* Copyright 2015-2017 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/>.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include QMK_KEYBOARD_H
 | 
			
		||||
#include "muse.h"
 | 
			
		||||
#include "kuatsure.h"
 | 
			
		||||
 | 
			
		||||
#define LAYOUT_planck_grid_wrapper(...)   LAYOUT_planck_grid(__VA_ARGS__)
 | 
			
		||||
 | 
			
		||||
enum planck_layers {
 | 
			
		||||
  _QWERTY,
 | 
			
		||||
  _GAME,
 | 
			
		||||
  _GAME_LOWER,
 | 
			
		||||
  _GAME_RAISE,
 | 
			
		||||
  _MOUSE,
 | 
			
		||||
  _LOWER,
 | 
			
		||||
  _RAISE,
 | 
			
		||||
  _ADJUST
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
enum planck_keycodes {
 | 
			
		||||
  QWERTY = USER_SAFE_RANGE,
 | 
			
		||||
  GAME,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#define LOWER   MO(_LOWER)
 | 
			
		||||
#define RAISE   MO(_RAISE)
 | 
			
		||||
#define MOUSE   TG(_MOUSE)
 | 
			
		||||
#define G_LOWER MO(_GAME_LOWER)
 | 
			
		||||
#define G_RAISE MO(_GAME_RAISE)
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
 | 
			
		||||
/* Qwerty
 | 
			
		||||
 * ,-----------------------------------------------------------------------------------.
 | 
			
		||||
 * | Tab/M|   Q  |   W  |   E  |   R  |   T  |   Y  |   U  |   I  |   O  |   P  | Bksp |
 | 
			
		||||
 * |------+------+------+------+------+-------------+------+------+------+------+------|
 | 
			
		||||
 * | Esc/C|   A  |   S  |   D  |   F  |   G  |   H  |   J  |   K  |   L  |   ;  |  '   |
 | 
			
		||||
 * |------+------+------+------+------+------|------+------+------+------+------+------|
 | 
			
		||||
 * | Shift|   Z  |   X  |   C  |   V  |   B  |   N  |   M  |   ,  |   .  |   /  | Ent  |
 | 
			
		||||
 * |------+------+------+------+------+------+------+------+------+------+------+------|
 | 
			
		||||
 * | Mute | Ldr  | Alt  | GUI  |Lower |  RSE |     SPC     | Left | Down |  Up  |Right |
 | 
			
		||||
 * `-----------------------------------------------------------------------------------'
 | 
			
		||||
 */
 | 
			
		||||
[_QWERTY] = LAYOUT_planck_grid_wrapper(
 | 
			
		||||
    KT_MTAB, _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, KC_BSPC,
 | 
			
		||||
    KT_CESC, _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, KC_QUOT,
 | 
			
		||||
    KT_LSFT, _________________QWERTY_L3_________________, _________________QWERTY_R3_________________, KC_ENT,
 | 
			
		||||
    KC_MPLY, KC_LEAD, KC_LALT, KC_LGUI, LOWER,     RAISE, KC_SPC, KC_SPC,     KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
 | 
			
		||||
),
 | 
			
		||||
 | 
			
		||||
/* Lower
 | 
			
		||||
 * ,-----------------------------------------------------------------------------------.
 | 
			
		||||
 * |      |   !  |   &  |  Up  |      |   `  |      |   {  |   }  |  _   |      |  |   |
 | 
			
		||||
 * |------+------+------+------+------+-------------+------+------+------+------+------|
 | 
			
		||||
 * |      | Del  | Left | Down | Right|   ~  |   =  |   (  |   )  |  +   |  :   |  "   |
 | 
			
		||||
 * |------+------+------+------+------+------|------+------+------+------+------+------|
 | 
			
		||||
 * |      | VolD | Prev | Play | Next | VolU |   -  |   [  |   ]  |      |  ?   |Mouse |
 | 
			
		||||
 * |------+------+------+------+------+------+------+------+------+------+------+------|
 | 
			
		||||
 * |      |      |      |      |      |      |      |      | Home | PgDn | PgUp | End  |
 | 
			
		||||
 * `-----------------------------------------------------------------------------------'
 | 
			
		||||
 */
 | 
			
		||||
[_LOWER] = LAYOUT_planck_grid_wrapper(
 | 
			
		||||
    _______, KC_EXLM, KC_AMPR, KC_UP,   _______,  KC_GRV,  _______, ____CRBRACES____, KC_UNDS, _______, KC_PIPE,
 | 
			
		||||
    _______, KC_DEL,  KC_LEFT, KC_DOWN, KC_RIGHT, KC_TILD, KC_EQL,  _____PARENS_____, KC_PLUS, KC_COLN, KC_DQT ,
 | 
			
		||||
    _______, KC_VOLD, KC_MPRV, KC_MPLY, KC_MNXT,  KC_VOLU, KC_MINS, ___SQBRACKETS___, _______, KC_QUES, MOUSE  ,
 | 
			
		||||
    _______, _______, _______, _______, _______,  _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
 | 
			
		||||
),
 | 
			
		||||
 | 
			
		||||
/* Raise
 | 
			
		||||
 * ,-----------------------------------------------------------------------------------.
 | 
			
		||||
 * |      |  F9  |  F10 |  F11 |  F12 |      |  *   |  7   |  8   |  9   |  0   |  \   |
 | 
			
		||||
 * |------+------+------+------+------+-------------+------+------+------+------+------|
 | 
			
		||||
 * |      |  F5  |  F6  |  F7  |  F8  |      |  =   |  4   |  5   |  6   |  +   |      |
 | 
			
		||||
 * |------+------+------+------+------+------|------+------+------+------+------+------|
 | 
			
		||||
 * |      |  F1  |  F2  |  F3  |  F4  |      |  -   |  1   |  2   |  3   |  /   |      |
 | 
			
		||||
 * |------+------+------+------+------+------+------+------+------+------+------+------|
 | 
			
		||||
 * |      |      |      |      |      |      |      |      |  0   |  0   |      |      |
 | 
			
		||||
 * `-----------------------------------------------------------------------------------'
 | 
			
		||||
 */
 | 
			
		||||
[_RAISE] = LAYOUT_planck_grid_wrapper(
 | 
			
		||||
    _______, ____________FUNCTION_3____________, _______, KC_ASTR, KC_7,    KC_8,    KC_9,    KC_0,     KC_BSLS,
 | 
			
		||||
    _______, ____________FUNCTION_2____________, _______, KC_EQL,  KC_4,    KC_5,    KC_6,    KC_PLUS,  _______,
 | 
			
		||||
    _______, ____________FUNCTION_1____________, _______, KC_MINS, KC_1,    KC_2,    KC_3,    KC_SLASH, _______,
 | 
			
		||||
    _______, _______, _______, _______, _______, _______, _______, KC_0,    KC_0,    _______, _______,  _______
 | 
			
		||||
),
 | 
			
		||||
 | 
			
		||||
/* Mouse
 | 
			
		||||
 * ,-----------------------------------------------------------------------------------.
 | 
			
		||||
 * |      |      | Btn1 | mUP  | Btn2 |      |      |      |      |      |      |      |
 | 
			
		||||
 * |------+------+------+------+------+------+------+------+------+------+------+------|
 | 
			
		||||
 * |      |      | mLEFT| mDWN | mRGHT|      |      |      |      |      |      |      |
 | 
			
		||||
 * |------+------+------+------+------+------+------+------+------+------+------+------|
 | 
			
		||||
 * |      |      | Btn3 | Btn4 | Btn5 |      |      |      |      |      |      |Mouse |
 | 
			
		||||
 * |------+------+------+------+------+------+------+------+------+------+------+------|
 | 
			
		||||
 * |      |      |      |      |      |      |      |      |      |      |      |      |
 | 
			
		||||
 * `-----------------------------------------------------------------------------------'
 | 
			
		||||
 */
 | 
			
		||||
[_MOUSE] = LAYOUT_planck_grid_wrapper(
 | 
			
		||||
    _______, _______, KC_BTN1, KC_MS_U, KC_BTN2, _______, _______, _______, _______, _______, _______, _______,
 | 
			
		||||
    _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, _______, _______, _______, _______, _______,
 | 
			
		||||
    _______, _______, KC_BTN3, KC_BTN4, KC_BTN5, _______, _______, _______, _______, _______, _______, MOUSE  ,
 | 
			
		||||
    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
 | 
			
		||||
),
 | 
			
		||||
 | 
			
		||||
/* Adjust (Lower + Raise)
 | 
			
		||||
 * ,-----------------------------------------------------------------------------------.
 | 
			
		||||
 * |      | MAKE | FLSH |      |      |      |      |      |      |      |      |  Del |
 | 
			
		||||
 * |------+------+------+------+------+-------------+------+------+------+------+------|
 | 
			
		||||
 * |      | RESET| DEBUG|      |      |Aud on|AudOff| Game |Mouse |      |      |      |
 | 
			
		||||
 * |------+------+------+------+------+------|------+------+------+------+------+------|
 | 
			
		||||
 * |      | VRSN |      |      |MusMod|Mus on|MusOff|      |      |      |      |      |
 | 
			
		||||
 * |------+------+------+------+------+------+------+------+------+------+------+------|
 | 
			
		||||
 * |      |      |      |      |      |      |      |      |      |      |      |      |
 | 
			
		||||
 * `-----------------------------------------------------------------------------------'
 | 
			
		||||
 */
 | 
			
		||||
[_ADJUST] = LAYOUT_planck_grid_wrapper(
 | 
			
		||||
    _______, KB_MAKE, KB_FLSH, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL,
 | 
			
		||||
    _______, RESET,   DEBUG,   _______, _______, AU_ON,   AU_OFF,  GAME,    MOUSE,   _______, _______, _______,
 | 
			
		||||
    _______, KB_VRSN, _______, _______, MU_MOD,  MU_ON,   MU_OFF,  _______, _______, _______, _______, _______,
 | 
			
		||||
    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
 | 
			
		||||
),
 | 
			
		||||
 | 
			
		||||
/* Game
 | 
			
		||||
 *
 | 
			
		||||
 * Mostly transparent, but wanted to disable gui key.
 | 
			
		||||
 * Also give a key to get back to qwerty layout.
 | 
			
		||||
 *
 | 
			
		||||
 * Disabling the `Controlled ESC` key is also plus.
 | 
			
		||||
 * Think BDO / Monster Hunter / D2
 | 
			
		||||
 *
 | 
			
		||||
 * ,-----------------------------------------------------------------------------------.
 | 
			
		||||
 * | Tab  |      |      |      |      |      |      |      |      |      |      |      |
 | 
			
		||||
 * |------+------+------+------+------+-------------+------+------+------+------+------|
 | 
			
		||||
 * | Ctrl |      |      |      |      |      |      |      |      |      |      |      |
 | 
			
		||||
 * |------+------+------+------+------+------|------+------+------+------+------+------|
 | 
			
		||||
 * | Shft |      |      |      |      |      |      |      |      |      |      |      |
 | 
			
		||||
 * |------+------+------+------+------+------+------+------+------+------+------+------|
 | 
			
		||||
 * |      |Qwerty| F14  | Spc  | gLWR | gRSE |     ESC     |      |      |      |      |
 | 
			
		||||
 * `-----------------------------------------------------------------------------------'
 | 
			
		||||
 */
 | 
			
		||||
[_GAME] = LAYOUT_planck_grid_wrapper(
 | 
			
		||||
    KC_TAB,  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
 | 
			
		||||
    KC_LCTL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
 | 
			
		||||
    KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
 | 
			
		||||
    _______, QWERTY,  KC_F14,  KC_SPC,  G_LOWER, G_RAISE, KC_ESC,  KC_ESC,  _______, _______, _______, _______
 | 
			
		||||
),
 | 
			
		||||
 | 
			
		||||
/* Game Lower
 | 
			
		||||
 * ,-----------------------------------------------------------------------------------.
 | 
			
		||||
 * |      |   1  |   2  |   3  |   4  |   `  |      |  F9  |  F10 |  F11 |  F12 |      |
 | 
			
		||||
 * |------+------+------+------+------+-------------+------+------+------+------+------|
 | 
			
		||||
 * |      |   5  |   6  |   7  |   8  |      |      |  F5  |  F6  |  F7  |  F8  |      |
 | 
			
		||||
 * |------+------+------+------+------+------|------+------+------+------+------+------|
 | 
			
		||||
 * |      |   9  |   0  |   -  |   =  |      |      |  F1  |  F2  |  F3  |  F4  |      |
 | 
			
		||||
 * |------+------+------+------+------+------+------+------+------+------+------+------|
 | 
			
		||||
 * |      |      |      |      |      |      |      |      |      |      |      |      |
 | 
			
		||||
 * `-----------------------------------------------------------------------------------'
 | 
			
		||||
 */
 | 
			
		||||
[_GAME_LOWER] = LAYOUT_planck_grid_wrapper(
 | 
			
		||||
    _______, KC_1,    KC_2,    KC_3,    KC_4,    KC_GRV,  _______, ____________FUNCTION_3____________, _______,
 | 
			
		||||
    _______, KC_5,    KC_6,    KC_7,    KC_8,    _______, _______, ____________FUNCTION_2____________, _______,
 | 
			
		||||
    _______, KC_9,    KC_0,    KC_MINS, KC_EQL,  _______, _______, ____________FUNCTION_1____________, _______,
 | 
			
		||||
    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
 | 
			
		||||
),
 | 
			
		||||
 | 
			
		||||
/* Game Raise
 | 
			
		||||
 * ,-----------------------------------------------------------------------------------.
 | 
			
		||||
 * |      |  p7  |  p8  |  p9  |  p0  |   `  |      |  F9  |  F10 |  F11 |  F12 |      |
 | 
			
		||||
 * |------+------+------+------+------+-------------+------+------+------+------+------|
 | 
			
		||||
 * |      |  p4  |  p5  |  p6  |  p+  |      |      |  F5  |  F6  |  F7  |  F8  |      |
 | 
			
		||||
 * |------+------+------+------+------+------|------+------+------+------+------+------|
 | 
			
		||||
 * |      |  p1  |  p2  |  p3  |  pE  |      |      |  F1  |  F2  |  F3  |  F4  |      |
 | 
			
		||||
 * |------+------+------+------+------+------+------+------+------+------+------+------|
 | 
			
		||||
 * |      |      |      |      |      |      |      |      |      |      |      |      |
 | 
			
		||||
 * `-----------------------------------------------------------------------------------'
 | 
			
		||||
 */
 | 
			
		||||
[_GAME_RAISE] = LAYOUT_planck_grid_wrapper(
 | 
			
		||||
    _______, KC_P7,   KC_P8,   KC_P9,   KC_P0,   KC_GRV,  _______, ____________FUNCTION_3____________, _______,
 | 
			
		||||
    _______, KC_P4,   KC_P5,   KC_P6,   KC_PPLS, _______, _______, ____________FUNCTION_2____________, _______,
 | 
			
		||||
    _______, KC_P1,   KC_P2,   KC_P3,   KC_PENT, _______, _______, ____________FUNCTION_1____________, _______,
 | 
			
		||||
    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
 | 
			
		||||
),
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#ifdef AUDIO_ENABLE
 | 
			
		||||
  float plover_song[][2]     = SONG(PLOVER_SOUND);
 | 
			
		||||
  float plover_gb_song[][2]  = SONG(PLOVER_GOODBYE_SOUND);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
layer_state_t layer_state_set_user(layer_state_t state) {
 | 
			
		||||
  return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
 | 
			
		||||
  switch (keycode) {
 | 
			
		||||
    case QWERTY:
 | 
			
		||||
      if (record->event.pressed) {
 | 
			
		||||
        print("mode just switched to qwerty and this is a huge string\n");
 | 
			
		||||
        set_single_persistent_default_layer(_QWERTY);
 | 
			
		||||
      }
 | 
			
		||||
      return false;
 | 
			
		||||
      break;
 | 
			
		||||
 | 
			
		||||
    case GAME:
 | 
			
		||||
      if (record->event.pressed) {
 | 
			
		||||
        set_single_persistent_default_layer(_GAME);
 | 
			
		||||
      }
 | 
			
		||||
      return false;
 | 
			
		||||
      break;
 | 
			
		||||
  }
 | 
			
		||||
  return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool muse_mode = false;
 | 
			
		||||
uint8_t last_muse_note = 0;
 | 
			
		||||
uint16_t muse_counter = 0;
 | 
			
		||||
uint8_t muse_offset = 70;
 | 
			
		||||
uint16_t muse_tempo = 50;
 | 
			
		||||
 | 
			
		||||
void encoder_update(bool clockwise) {
 | 
			
		||||
  if (muse_mode) {
 | 
			
		||||
    if (IS_LAYER_ON(_RAISE)) {
 | 
			
		||||
      if (clockwise) {
 | 
			
		||||
        muse_offset++;
 | 
			
		||||
      } else {
 | 
			
		||||
        muse_offset--;
 | 
			
		||||
      }
 | 
			
		||||
    } else {
 | 
			
		||||
      if (clockwise) {
 | 
			
		||||
        muse_tempo+=1;
 | 
			
		||||
      } else {
 | 
			
		||||
        muse_tempo-=1;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  } else {
 | 
			
		||||
    if (clockwise) {
 | 
			
		||||
      if (IS_LAYER_ON(_MOUSE)) {
 | 
			
		||||
        tap_code(KC_MS_WH_UP);
 | 
			
		||||
      } else {
 | 
			
		||||
        tap_code(KC_VOLU);
 | 
			
		||||
      }
 | 
			
		||||
    } else {
 | 
			
		||||
      if (IS_LAYER_ON(_MOUSE)) {
 | 
			
		||||
        tap_code(KC_MS_WH_DOWN);
 | 
			
		||||
      } else {
 | 
			
		||||
        tap_code(KC_VOLD);
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void dip_update(uint8_t index, bool active) {
 | 
			
		||||
  switch (index) {
 | 
			
		||||
    case 0:
 | 
			
		||||
      if (active) {
 | 
			
		||||
        #ifdef AUDIO_ENABLE
 | 
			
		||||
          PLAY_SONG(plover_song);
 | 
			
		||||
        #endif
 | 
			
		||||
        layer_on(_ADJUST);
 | 
			
		||||
      } else {
 | 
			
		||||
        #ifdef AUDIO_ENABLE
 | 
			
		||||
          PLAY_SONG(plover_gb_song);
 | 
			
		||||
        #endif
 | 
			
		||||
        layer_off(_ADJUST);
 | 
			
		||||
      }
 | 
			
		||||
      break;
 | 
			
		||||
    case 1:
 | 
			
		||||
      if (active) {
 | 
			
		||||
        muse_mode = true;
 | 
			
		||||
      } else {
 | 
			
		||||
        muse_mode = false;
 | 
			
		||||
        #ifdef AUDIO_ENABLE
 | 
			
		||||
          stop_all_notes();
 | 
			
		||||
        #endif
 | 
			
		||||
      }
 | 
			
		||||
   }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void matrix_scan_keymap(void) {
 | 
			
		||||
  #ifdef AUDIO_ENABLE
 | 
			
		||||
    if (muse_mode) {
 | 
			
		||||
      if (muse_counter == 0) {
 | 
			
		||||
        uint8_t muse_note = muse_offset + SCALE[muse_clock_pulse()];
 | 
			
		||||
        if (muse_note != last_muse_note) {
 | 
			
		||||
          stop_note(compute_freq_for_midi_note(last_muse_note));
 | 
			
		||||
          play_note(compute_freq_for_midi_note(muse_note), 0xF);
 | 
			
		||||
          last_muse_note = muse_note;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
      muse_counter = (muse_counter + 1) % muse_tempo;
 | 
			
		||||
    }
 | 
			
		||||
  #endif
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool music_mask_user(uint16_t keycode) {
 | 
			
		||||
  switch (keycode) {
 | 
			
		||||
    case RAISE:
 | 
			
		||||
    case LOWER:
 | 
			
		||||
      return false;
 | 
			
		||||
    default:
 | 
			
		||||
      return true;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										1
									
								
								keyboards/planck/keymaps/kuatsure/readme.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								keyboards/planck/keymaps/kuatsure/readme.md
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
# The kuatsure Planck layout - largely based on the Preonic's & Keyboard Paradise V60's layout
 | 
			
		||||
							
								
								
									
										6
									
								
								keyboards/planck/keymaps/kuatsure/rules.mk
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								keyboards/planck/keymaps/kuatsure/rules.mk
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,6 @@
 | 
			
		|||
SRC += muse.c
 | 
			
		||||
 | 
			
		||||
BACKLIGHT_ENABLE  = no
 | 
			
		||||
LEADER_ENABLE = yes
 | 
			
		||||
ENCODER_ENABLE = yes
 | 
			
		||||
MOUSEKEY_ENABLE = yes
 | 
			
		||||
| 
						 | 
				
			
			@ -17,6 +17,8 @@
 | 
			
		|||
#include QMK_KEYBOARD_H
 | 
			
		||||
#include "kuatsure.h"
 | 
			
		||||
 | 
			
		||||
#define LAYOUT_preonic_grid_wrapper(...)   LAYOUT_preonic_grid(__VA_ARGS__)
 | 
			
		||||
 | 
			
		||||
enum preonic_layers {
 | 
			
		||||
  _QWERTY,
 | 
			
		||||
  _GAME,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										110
									
								
								keyboards/spacey/config.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										110
									
								
								keyboards/spacey/config.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,110 @@
 | 
			
		|||
/*
 | 
			
		||||
Copyright 2021 vanilla
 | 
			
		||||
 | 
			
		||||
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"
 | 
			
		||||
 | 
			
		||||
/* USB Device descriptor parameter */
 | 
			
		||||
#define VENDOR_ID    0xFEED
 | 
			
		||||
#define PRODUCT_ID   0x0000
 | 
			
		||||
#define DEVICE_VER   0x0001
 | 
			
		||||
#define MANUFACTURER vanilla
 | 
			
		||||
#define PRODUCT      spacey
 | 
			
		||||
 | 
			
		||||
/* key matrix size */
 | 
			
		||||
#define MATRIX_ROWS 5
 | 
			
		||||
#define MATRIX_COLS 14
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#define ENCODERS_PAD_A { D0 }
 | 
			
		||||
#define ENCODERS_PAD_B { D1 }
 | 
			
		||||
#define ENCODER_RESOLUTION 4
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Keyboard Matrix Assignments
 | 
			
		||||
 *
 | 
			
		||||
 * Change this to how you wired your keyboard
 | 
			
		||||
 * COLS: AVR pins used for columns, left to right
 | 
			
		||||
 * ROWS: AVR pins used for rows, top to bottom
 | 
			
		||||
 * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
 | 
			
		||||
 *                  ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
 | 
			
		||||
 */
 | 
			
		||||
#define MATRIX_ROW_PINS { D4, C6, F6, F5, F4 }
 | 
			
		||||
#define MATRIX_COL_PINS { D5, B7, B5, B4, E6, D7, C7, B3, B2, B6, F0, F1, B1, F7 }
 | 
			
		||||
 | 
			
		||||
/* COL2ROW, ROW2COL*/
 | 
			
		||||
#define DIODE_DIRECTION COL2ROW
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
 | 
			
		||||
 */
 | 
			
		||||
#define SOFT_SERIAL_PIN D0  // or D1, D2, D3, E6
 | 
			
		||||
 | 
			
		||||
//#define LED_NUM_LOCK_PIN B0
 | 
			
		||||
//#define LED_CAPS_LOCK_PIN B1
 | 
			
		||||
//#define LED_SCROLL_LOCK_PIN B2
 | 
			
		||||
//#define LED_COMPOSE_PIN B3
 | 
			
		||||
//#define LED_KANA_PIN B4
 | 
			
		||||
 | 
			
		||||
//#define BACKLIGHT_PIN B7
 | 
			
		||||
//#define BACKLIGHT_LEVELS 3
 | 
			
		||||
//#define BACKLIGHT_BREATHING
 | 
			
		||||
 | 
			
		||||
//#define RGB_DI_PIN E2
 | 
			
		||||
//#ifdef RGB_DI_PIN
 | 
			
		||||
//#    define RGBLED_NUM 16
 | 
			
		||||
//#    define RGBLIGHT_HUE_STEP 8
 | 
			
		||||
//#    define RGBLIGHT_SAT_STEP 8
 | 
			
		||||
//#    define RGBLIGHT_VAL_STEP 8
 | 
			
		||||
//#    define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
 | 
			
		||||
//#    define RGBLIGHT_SLEEP  /* If defined, the RGB lighting will be switched off when the host goes to sleep */
 | 
			
		||||
/*== all animations enable ==*/
 | 
			
		||||
//#    define RGBLIGHT_ANIMATIONS
 | 
			
		||||
/*== or choose animations ==*/
 | 
			
		||||
//#    define RGBLIGHT_EFFECT_BREATHING
 | 
			
		||||
//#    define RGBLIGHT_EFFECT_RAINBOW_MOOD
 | 
			
		||||
//#    define RGBLIGHT_EFFECT_RAINBOW_SWIRL
 | 
			
		||||
//#    define RGBLIGHT_EFFECT_SNAKE
 | 
			
		||||
//#    define RGBLIGHT_EFFECT_KNIGHT
 | 
			
		||||
//#    define RGBLIGHT_EFFECT_CHRISTMAS
 | 
			
		||||
//#    define RGBLIGHT_EFFECT_STATIC_GRADIENT
 | 
			
		||||
//#    define RGBLIGHT_EFFECT_RGB_TEST
 | 
			
		||||
//#    define RGBLIGHT_EFFECT_ALTERNATING
 | 
			
		||||
/*== customize breathing effect ==*/
 | 
			
		||||
/*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
 | 
			
		||||
//#    define RGBLIGHT_BREATHE_TABLE_SIZE 256      // 256(default) or 128 or 64
 | 
			
		||||
/*==== use exp() and sin() ====*/
 | 
			
		||||
//#    define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85  // 1 to 2.7
 | 
			
		||||
//#    define RGBLIGHT_EFFECT_BREATHE_MAX    255   // 0 to 255
 | 
			
		||||
//#endif
 | 
			
		||||
 | 
			
		||||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
 | 
			
		||||
#define DEBOUNCE 5
 | 
			
		||||
 | 
			
		||||
/* define if matrix has ghost (lacks anti-ghosting diodes) */
 | 
			
		||||
//#define MATRIX_HAS_GHOST
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* disable these deprecated features by default */
 | 
			
		||||
#define NO_ACTION_MACRO
 | 
			
		||||
#define NO_ACTION_FUNCTION
 | 
			
		||||
 | 
			
		||||
/* Bootmagic Lite key configuration */
 | 
			
		||||
//#define BOOTMAGIC_LITE_ROW 0
 | 
			
		||||
//#define BOOTMAGIC_LITE_COLUMN 0
 | 
			
		||||
							
								
								
									
										87
									
								
								keyboards/spacey/info.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										87
									
								
								keyboards/spacey/info.json
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,87 @@
 | 
			
		|||
{
 | 
			
		||||
    "keyboard_name": "spacey",
 | 
			
		||||
    "url": "",
 | 
			
		||||
    "maintainer": "vanilla",
 | 
			
		||||
    "width": 14,
 | 
			
		||||
    "height": 5,
 | 
			
		||||
    "layouts": {
 | 
			
		||||
        "LAYOUT": {
 | 
			
		||||
            "layout": [
 | 
			
		||||
                {"label":"k00", "x":0, "y":0},
 | 
			
		||||
                {"label":"k01", "x":1, "y":0},
 | 
			
		||||
                {"label":"k02", "x":2, "y":0},
 | 
			
		||||
                {"label":"k03", "x":3, "y":0},
 | 
			
		||||
                {"label":"k04", "x":4, "y":0},
 | 
			
		||||
                {"label":"k05", "x":5, "y":0},
 | 
			
		||||
                {"label":"k06", "x":6, "y":0},
 | 
			
		||||
                {"label":"k07", "x":7, "y":0},
 | 
			
		||||
                {"label":"k08", "x":8, "y":0},
 | 
			
		||||
                {"label":"k09", "x":9, "y":0},
 | 
			
		||||
                {"label":"k0A", "x":10, "y":0},
 | 
			
		||||
                {"label":"k0B", "x":11, "y":0},
 | 
			
		||||
                {"label":"k0C", "x":12, "y":0},
 | 
			
		||||
                {"label":"k0D", "x":13, "y":0},
 | 
			
		||||
 | 
			
		||||
                {"label":"k10", "x":0, "y":1},
 | 
			
		||||
                {"label":"k11", "x":1, "y":1},
 | 
			
		||||
                {"label":"k12", "x":2, "y":1},
 | 
			
		||||
                {"label":"k13", "x":3, "y":1},
 | 
			
		||||
                {"label":"k14", "x":4, "y":1},
 | 
			
		||||
                {"label":"k15", "x":5, "y":1},
 | 
			
		||||
                {"label":"k16", "x":6, "y":1},
 | 
			
		||||
                {"label":"k17", "x":7, "y":1},
 | 
			
		||||
                {"label":"k18", "x":8, "y":1},
 | 
			
		||||
                {"label":"k19", "x":9, "y":1},
 | 
			
		||||
                {"label":"k1A", "x":10, "y":1},
 | 
			
		||||
                {"label":"k1B", "x":11, "y":1},
 | 
			
		||||
                {"label":"k1C", "x":12, "y":1},
 | 
			
		||||
                {"label":"k1D", "x":13, "y":1},
 | 
			
		||||
 | 
			
		||||
                {"label":"k20", "x":0, "y":2},
 | 
			
		||||
                {"label":"k21", "x":1, "y":2},
 | 
			
		||||
                {"label":"k22", "x":2, "y":2},
 | 
			
		||||
                {"label":"k23", "x":3, "y":2},
 | 
			
		||||
                {"label":"k24", "x":4, "y":2},
 | 
			
		||||
                {"label":"k25", "x":5, "y":2},
 | 
			
		||||
                {"label":"k26", "x":6, "y":2},
 | 
			
		||||
                {"label":"k27", "x":7, "y":2},
 | 
			
		||||
                {"label":"k28", "x":8, "y":2},
 | 
			
		||||
                {"label":"k29", "x":9, "y":2},
 | 
			
		||||
                {"label":"k2A", "x":10, "y":2},
 | 
			
		||||
                {"label":"k2B", "x":11, "y":2},
 | 
			
		||||
                {"label":"k2C", "x":12, "y":2},
 | 
			
		||||
                {"label":"k2D", "x":13, "y":2},
 | 
			
		||||
 | 
			
		||||
                {"label":"k30", "x":0, "y":3},
 | 
			
		||||
                {"label":"k31", "x":1, "y":3},
 | 
			
		||||
                {"label":"k32", "x":2, "y":3},
 | 
			
		||||
                {"label":"k33", "x":3, "y":3},
 | 
			
		||||
                {"label":"k34", "x":4, "y":3},
 | 
			
		||||
                {"label":"k35", "x":5, "y":3},
 | 
			
		||||
                {"label":"k36", "x":6, "y":3},
 | 
			
		||||
                {"label":"k37", "x":7, "y":3},
 | 
			
		||||
                {"label":"k38", "x":8, "y":3},
 | 
			
		||||
                {"label":"k39", "x":9, "y":3},
 | 
			
		||||
                {"label":"k3A", "x":10, "y":3},
 | 
			
		||||
                {"label":"k3B", "x":11, "y":3},
 | 
			
		||||
                {"label":"k3C", "x":12, "y":3},
 | 
			
		||||
                {"label":"k3D", "x":13, "y":3},
 | 
			
		||||
 | 
			
		||||
                {"label":"k40", "x":0, "y":4},
 | 
			
		||||
                {"label":"k41", "x":1, "y":4},
 | 
			
		||||
                {"label":"k42", "x":2, "y":4},
 | 
			
		||||
                {"label":"k43", "x":3, "y":4},
 | 
			
		||||
                {"label":"k44", "x":4, "y":4},
 | 
			
		||||
                {"label":"k45", "x":5, "y":4},
 | 
			
		||||
               
 | 
			
		||||
                {"label":"k47", "x":7, "y":4},
 | 
			
		||||
                {"label":"k48", "x":8, "y":4},
 | 
			
		||||
                
 | 
			
		||||
                {"label":"k4A", "x":10, "y":4},
 | 
			
		||||
                {"label":"k4B", "x":11, "y":4},
 | 
			
		||||
                {"label":"k4C", "x":12, "y":4},
 | 
			
		||||
                {"label":"k4D", "x":13, "y":4}
 | 
			
		||||
            ]
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										47
									
								
								keyboards/spacey/keymaps/default/keymap.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								keyboards/spacey/keymaps/default/keymap.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,47 @@
 | 
			
		|||
/* Copyright 2021 vanilla
 | 
			
		||||
 *
 | 
			
		||||
 * 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
 | 
			
		||||
#define FN MO(_FN)
 | 
			
		||||
 | 
			
		||||
// Defines names for use in layer keycodes and the keymap
 | 
			
		||||
enum layer_names {
 | 
			
		||||
    _BASE = 0,
 | 
			
		||||
    _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] = {
 | 
			
		||||
    /* Base */
 | 
			
		||||
    [_BASE] = 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_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_CLCK,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_UP,
 | 
			
		||||
        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_LEFT, KC_DOWN,
 | 
			
		||||
        KC_LCTL, KC_LGUI, FN, KC_MUTE, KC_LALT, KC_SPC,  KC_NO, KC_BSPC, KC_DEL, KC_NO,  KC_RALT, KC_RGUI, KC_RCTL, KC_RGHT
 | 
			
		||||
    ),
 | 
			
		||||
    [_FN] = LAYOUT(
 | 
			
		||||
        KC_GRV, 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_BSPC,
 | 
			
		||||
        KC_TAB, 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_DEL,
 | 
			
		||||
        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_ENT, KC_MS_U,
 | 
			
		||||
        KC_LSFT,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_COMM,KC_DOT,KC_SLSH,KC_RSFT, KC_MS_L, KC_MS_D,
 | 
			
		||||
        KC_LCTL, KC_LGUI, KC_NO, KC_ESC, KC_LALT, KC_SPC,  KC_NO,  KC_BSPC,   KC_RALT, KC_NO,     KC_APP, KC_RGUI, KC_RCTL, KC_MS_R
 | 
			
		||||
    )
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										1
									
								
								keyboards/spacey/keymaps/default/readme.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								keyboards/spacey/keymaps/default/readme.md
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
# The default keymap for spacey
 | 
			
		||||
							
								
								
									
										19
									
								
								keyboards/spacey/readme.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								keyboards/spacey/readme.md
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,19 @@
 | 
			
		|||
# spacey
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
Spacey, designed by Vanilla Keyboards is a 45/65% keyboard with a little personality. Hosting ortholinear alphas with traditional modifiers, diamond shaped arrows, rotary encoder, and a couple optional spacebars at the top of the board, it's a balance between functional and unique.
 | 
			
		||||
 | 
			
		||||
* Keyboard Maintainer: [vanilla](https://github.com/vanillakeyboards)
 | 
			
		||||
* Hardware Supported: Elite C, Spacey PCB plates and acrylic drop_in case
 | 
			
		||||
* Hardware Availability: https://p3dstore.com/collections/ended-group-buys/products/spacey?variant=37742593147064 and https://keeb.io/products/elite-c-low-profile-version-usb-c-pro-micro-replacement-atmega32u4
 | 
			
		||||
 | 
			
		||||
Make example for this keyboard (after setting up your build environment):
 | 
			
		||||
 | 
			
		||||
    make spacey:default
 | 
			
		||||
 | 
			
		||||
Flashing example for this keyboard:
 | 
			
		||||
 | 
			
		||||
    make spacey: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).
 | 
			
		||||
							
								
								
									
										23
									
								
								keyboards/spacey/rules.mk
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								keyboards/spacey/rules.mk
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,23 @@
 | 
			
		|||
# MCU name
 | 
			
		||||
MCU = atmega32u4
 | 
			
		||||
 | 
			
		||||
# Bootloader selection
 | 
			
		||||
BOOTLOADER = atmel-dfu
 | 
			
		||||
 | 
			
		||||
# Build Options
 | 
			
		||||
#   change yes to no to disable
 | 
			
		||||
#
 | 
			
		||||
BOOTMAGIC_ENABLE = lite     # Virtual DIP switch configuration
 | 
			
		||||
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
 | 
			
		||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
 | 
			
		||||
SLEEP_LED_ENABLE = no       # Breathing sleep LED during USB suspend
 | 
			
		||||
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
 | 
			
		||||
NKRO_ENABLE = no            # USB Nkey Rollover
 | 
			
		||||
BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
 | 
			
		||||
RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow
 | 
			
		||||
BLUETOOTH_ENABLE = no       # Enable Bluetooth
 | 
			
		||||
AUDIO_ENABLE = no           # Audio output
 | 
			
		||||
ENCODER_ENABLE = yes
 | 
			
		||||
							
								
								
									
										29
									
								
								keyboards/spacey/spacey.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								keyboards/spacey/spacey.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,29 @@
 | 
			
		|||
/* Copyright 2021 vanilla
 | 
			
		||||
 *
 | 
			
		||||
 * 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 "spacey.h"
 | 
			
		||||
 | 
			
		||||
bool encoder_update_kb(uint8_t index, bool clockwise){
 | 
			
		||||
    if (!encoder_update_user(index, clockwise)) { return false; }
 | 
			
		||||
    if (index == 0) {
 | 
			
		||||
        if(clockwise) {
 | 
			
		||||
            tap_code(KC_VOLD);
 | 
			
		||||
        } else {
 | 
			
		||||
            tap_code(KC_VOLU);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    return true;
 | 
			
		||||
} 
 | 
			
		||||
							
								
								
									
										41
									
								
								keyboards/spacey/spacey.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								keyboards/spacey/spacey.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,41 @@
 | 
			
		|||
/* Copyright 2021 vanilla
 | 
			
		||||
 *
 | 
			
		||||
 * 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"
 | 
			
		||||
 | 
			
		||||
/* 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, 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, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, \
 | 
			
		||||
    k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D \
 | 
			
		||||
) { \
 | 
			
		||||
    {     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, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D }, \
 | 
			
		||||
    {     k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D } \
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -18,30 +18,35 @@
 | 
			
		|||
#include "config_common.h"
 | 
			
		||||
 | 
			
		||||
/* USB Device descriptor parameter */
 | 
			
		||||
#define VENDOR_ID       0x5544 // "UD" = Ungodly Design
 | 
			
		||||
#define PRODUCT_ID      0x4C50 // "LP" = Launch Pad
 | 
			
		||||
#define DEVICE_VER      0x9999
 | 
			
		||||
#define MANUFACTURER    Ungodly Design
 | 
			
		||||
#define PRODUCT         Launch Pad
 | 
			
		||||
#define VENDOR_ID 0x5544   // "UD" = Ungodly Design
 | 
			
		||||
#define PRODUCT_ID 0x4C50  // "LP" = Launch Pad
 | 
			
		||||
#define DEVICE_VER 0x9999
 | 
			
		||||
#define MANUFACTURER Ungodly Design
 | 
			
		||||
#define PRODUCT Launch Pad
 | 
			
		||||
 | 
			
		||||
/* key matrix size */
 | 
			
		||||
#define MATRIX_ROWS 5
 | 
			
		||||
#define MATRIX_COLS 4
 | 
			
		||||
 | 
			
		||||
/* Keyboard Matrix Assignments */
 | 
			
		||||
#define MATRIX_ROW_PINS { D4, D6, D7, B4, B5 }
 | 
			
		||||
#define MATRIX_COL_PINS { B0, B1, B2, B3 }
 | 
			
		||||
#define MATRIX_ROW_PINS \
 | 
			
		||||
    { D4, D6, D7, B4, B5 }
 | 
			
		||||
#define MATRIX_COL_PINS \
 | 
			
		||||
    { B0, B1, B2, B3 }
 | 
			
		||||
 | 
			
		||||
/* COL2ROW or ROW2COL */
 | 
			
		||||
#define DIODE_DIRECTION COL2ROW
 | 
			
		||||
 | 
			
		||||
/* Rotary Encoder Assignment */
 | 
			
		||||
#define ENCODERS_PAD_A { C6 }
 | 
			
		||||
#define ENCODERS_PAD_B { B6 }
 | 
			
		||||
#define ENCODERS_PAD_A \
 | 
			
		||||
    { C6 }
 | 
			
		||||
#define ENCODERS_PAD_B \
 | 
			
		||||
    { B6 }
 | 
			
		||||
#define ENCODER_RESOLUTION 2
 | 
			
		||||
 | 
			
		||||
/* Midi Slider */
 | 
			
		||||
#define SLIDER_PIN F6
 | 
			
		||||
#define MIDI_ADVANCED
 | 
			
		||||
 | 
			
		||||
/* RGB Matrix configuration */
 | 
			
		||||
#ifdef RGB_MATRIX_ENABLE
 | 
			
		||||
| 
						 | 
				
			
			@ -61,20 +66,63 @@
 | 
			
		|||
#endif
 | 
			
		||||
 | 
			
		||||
#define RGB_DI_PIN F7
 | 
			
		||||
#ifdef RGB_DI_PIN
 | 
			
		||||
#ifdef RGB_MATRIX_ENABLE
 | 
			
		||||
#    define RGBLED_NUM 22
 | 
			
		||||
#    define RGBLIGHT_HUE_STEP 8
 | 
			
		||||
#    define RGBLIGHT_SAT_STEP 8
 | 
			
		||||
#    define RGBLIGHT_VAL_STEP 8
 | 
			
		||||
#    define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
 | 
			
		||||
#    define RGBLIGHT_SLEEP         /* If defined, the RGB lighting will be switched off when the host goes to sleep */
 | 
			
		||||
/*== all animations enable ==*/
 | 
			
		||||
#    define RGBLIGHT_ANIMATIONS
 | 
			
		||||
#    define DRIVER_LED_TOTAL RGBLED_NUM
 | 
			
		||||
#    define RGB_MATRIX_KEYPRESSES  // reacts to keypresses
 | 
			
		||||
// #    define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses)
 | 
			
		||||
// #    define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
 | 
			
		||||
#    define RGB_DISABLE_WHEN_USB_SUSPENDED true  // turn off effects when suspended
 | 
			
		||||
#    define RGB_MATRIX_FRAMEBUFFER_EFFECTS
 | 
			
		||||
// #    define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness)
 | 
			
		||||
// #    define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness)
 | 
			
		||||
#    define RGB_MATRIX_MAXIMUM_BRIGHTNESS 50  // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash.
 | 
			
		||||
#    define RGB_MATRIX_HUE_STEP 8
 | 
			
		||||
#    define RGB_MATRIX_SAT_STEP 8
 | 
			
		||||
#    define RGB_MATRIX_VAL_STEP 8
 | 
			
		||||
#    define RGB_MATRIX_SPD_STEP 10
 | 
			
		||||
#    define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_PINWHEEL  // default mode
 | 
			
		||||
 | 
			
		||||
/* Reduce the firmware size by only enabling the rgb animations you desire. */
 | 
			
		||||
#    define DISABLE_RGB_MATRIX_ALPHAS_MODS
 | 
			
		||||
#    define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN
 | 
			
		||||
#    define DISABLE_RGB_MATRIX_BREATHING
 | 
			
		||||
#    define DISABLE_RGB_MATRIX_BAND_SAT
 | 
			
		||||
#    define DISABLE_RGB_MATRIX_BAND_VAL
 | 
			
		||||
#    define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
 | 
			
		||||
#    define DISABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
 | 
			
		||||
#    define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT
 | 
			
		||||
#    define DISABLE_RGB_MATRIX_BAND_SPIRAL_VAL
 | 
			
		||||
#    define DISABLE_RGB_MATRIX_CYCLE_ALL
 | 
			
		||||
#    define DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
 | 
			
		||||
#    define DISABLE_RGB_MATRIX_CYCLE_UP_DOWN
 | 
			
		||||
#    define DISABLE_RGB_MATRIX_CYCLE_OUT_IN
 | 
			
		||||
#    define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
 | 
			
		||||
#    define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
 | 
			
		||||
#    define DISABLE_RGB_MATRIX_DUAL_BEACON
 | 
			
		||||
// #    define DISABLE_RGB_MATRIX_CYCLE_PINWHEEL
 | 
			
		||||
#    define DISABLE_RGB_MATRIX_CYCLE_SPIRAL
 | 
			
		||||
#    define DISABLE_RGB_MATRIX_RAINBOW_BEACON
 | 
			
		||||
#    define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS
 | 
			
		||||
#    define DISABLE_RGB_MATRIX_RAINDROPS
 | 
			
		||||
#    define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
 | 
			
		||||
#    define DISABLE_RGB_MATRIX_TYPING_HEATMAP
 | 
			
		||||
#    define DISABLE_RGB_MATRIX_DIGITAL_RAIN
 | 
			
		||||
#    define DISABLE_RGB_MATRIX_SOLID_REACTIVE
 | 
			
		||||
#    define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
 | 
			
		||||
#    define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
 | 
			
		||||
#    define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
 | 
			
		||||
#    define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
 | 
			
		||||
#    define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
 | 
			
		||||
#    define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
 | 
			
		||||
#    define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
 | 
			
		||||
#    define DISABLE_RGB_MATRIX_SPLASH
 | 
			
		||||
#    define DISABLE_RGB_MATRIX_MULTISPLASH
 | 
			
		||||
#    define DISABLE_RGB_MATRIX_SOLID_SPLASH
 | 
			
		||||
#    define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
 | 
			
		||||
#define DEBOUNCE 5
 | 
			
		||||
 | 
			
		||||
#define LOCKING_RESYNC_ENABLE
 | 
			
		||||
 | 
			
		||||
#define MIDI_ADVANCED
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,37 +1,37 @@
 | 
			
		|||
{
 | 
			
		||||
    "keyboard_name": "Launch Pad",
 | 
			
		||||
    "url": "",
 | 
			
		||||
    "maintainer": "luis-godinez",
 | 
			
		||||
    "width": 4,
 | 
			
		||||
    "height": 5,
 | 
			
		||||
    "layouts": {
 | 
			
		||||
        "LAYOUT_ortho_5x4": {
 | 
			
		||||
            "layout": [
 | 
			
		||||
                {"x":0, "y":0},
 | 
			
		||||
                {"x":1, "y":0},
 | 
			
		||||
                {"x":2, "y":0},
 | 
			
		||||
                {"x":3, "y":0},
 | 
			
		||||
  "keyboard_name": "Launch Pad",
 | 
			
		||||
  "url": "https://ungodly.design/products/launch-pad",
 | 
			
		||||
  "maintainer": "Ungodly Design",
 | 
			
		||||
  "width": 4,
 | 
			
		||||
  "height": 5,
 | 
			
		||||
  "layouts": {
 | 
			
		||||
    "LAYOUT_ortho_5x4": {
 | 
			
		||||
        "layout": [
 | 
			
		||||
            {"x":0, "y":0},
 | 
			
		||||
            {"x":1, "y":0},
 | 
			
		||||
            {"x":2, "y":0},
 | 
			
		||||
            {"x":3, "y":0},
 | 
			
		||||
 | 
			
		||||
                {"x":0, "y":1},
 | 
			
		||||
                {"x":1, "y":1},
 | 
			
		||||
                {"x":2, "y":1},
 | 
			
		||||
                {"x":3, "y":1},
 | 
			
		||||
            {"x":0, "y":1},
 | 
			
		||||
            {"x":1, "y":1},
 | 
			
		||||
            {"x":2, "y":1},
 | 
			
		||||
            {"x":3, "y":1},
 | 
			
		||||
 | 
			
		||||
                {"x":0, "y":2},
 | 
			
		||||
                {"x":1, "y":2},
 | 
			
		||||
                {"x":2, "y":2},
 | 
			
		||||
                {"x":3, "y":2},
 | 
			
		||||
            {"x":0, "y":2},
 | 
			
		||||
            {"x":1, "y":2},
 | 
			
		||||
            {"x":2, "y":2},
 | 
			
		||||
            {"x":3, "y":2},
 | 
			
		||||
 | 
			
		||||
                {"x":0, "y":3},
 | 
			
		||||
                {"x":1, "y":3},
 | 
			
		||||
                {"x":2, "y":3},
 | 
			
		||||
                {"x":3, "y":3},
 | 
			
		||||
            {"x":0, "y":3},
 | 
			
		||||
            {"x":1, "y":3},
 | 
			
		||||
            {"x":2, "y":3},
 | 
			
		||||
            {"x":3, "y":3},
 | 
			
		||||
 | 
			
		||||
                {"x":0, "y":4},
 | 
			
		||||
                {"x":1, "y":4},
 | 
			
		||||
                {"x":2, "y":4},
 | 
			
		||||
                {"x":3, "y":4}
 | 
			
		||||
            ]
 | 
			
		||||
        }
 | 
			
		||||
            {"x":0, "y":4},
 | 
			
		||||
            {"x":1, "y":4},
 | 
			
		||||
            {"x":2, "y":4},
 | 
			
		||||
            {"x":3, "y":4}
 | 
			
		||||
        ]
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -17,242 +17,277 @@
 | 
			
		|||
#include "analog.h"
 | 
			
		||||
#include "qmk_midi.h"
 | 
			
		||||
 | 
			
		||||
// Each layer gets a name for readability, which is then used in the keymap matrix below.
 | 
			
		||||
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
 | 
			
		||||
// Layer names don't all need to be of the same length, obviously, and you can also skip them
 | 
			
		||||
// entirely and just use numbers.
 | 
			
		||||
enum layers {
 | 
			
		||||
_BL = 0,
 | 
			
		||||
_NV,
 | 
			
		||||
_FN
 | 
			
		||||
/* Force Numlock on */
 | 
			
		||||
void matrix_init_user (void) {
 | 
			
		||||
  if (!host_keyboard_led_state().num_lock) {
 | 
			
		||||
      tap_code(KC_NUMLOCK);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Custom Layer Up/Down Keystrokes */
 | 
			
		||||
enum custom_keycodes {
 | 
			
		||||
    KC_LUP = SAFE_RANGE, //cycle layers in up direction
 | 
			
		||||
    KC_LDN //cycle layers in down direction
 | 
			
		||||
};
 | 
			
		||||
#define HIGHEST_LAYER 2 //replace X with your highest layer
 | 
			
		||||
static uint8_t current_layer = 0;
 | 
			
		||||
 | 
			
		||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		||||
  switch (keycode) {
 | 
			
		||||
  case KC_LUP:
 | 
			
		||||
    if(record->event.pressed) {
 | 
			
		||||
      if (current_layer == HIGHEST_LAYER){
 | 
			
		||||
        current_layer=0;
 | 
			
		||||
      } else {
 | 
			
		||||
        current_layer++;
 | 
			
		||||
      }
 | 
			
		||||
      layer_clear();
 | 
			
		||||
      layer_on(current_layer);
 | 
			
		||||
    }
 | 
			
		||||
    return false;
 | 
			
		||||
  case KC_LDN:
 | 
			
		||||
    if(record->event.pressed) {
 | 
			
		||||
      if (current_layer == 0){
 | 
			
		||||
        current_layer=HIGHEST_LAYER;
 | 
			
		||||
      } else {
 | 
			
		||||
        current_layer--;
 | 
			
		||||
      }
 | 
			
		||||
      layer_clear();
 | 
			
		||||
      layer_on(current_layer);
 | 
			
		||||
    }
 | 
			
		||||
    return false;
 | 
			
		||||
  default:
 | 
			
		||||
    return true;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
/* Keymap _BL: (Base Layer) Default Numpad Layer
 | 
			
		||||
 * ,-------------------.
 | 
			
		||||
 * | NV | /  | *  |BK/FN|
 | 
			
		||||
 * |LAYR| /  | *  |BACK |
 | 
			
		||||
 * |----|----|----|-----|
 | 
			
		||||
 * | 7  | 8  | 9  |  -  |
 | 
			
		||||
 * |----|----|----|-----|
 | 
			
		||||
 * | 4  | 5  | 6  |  +  |
 | 
			
		||||
 * |----|----|----|-----|
 | 
			
		||||
 * | 1  | 2  | 3  |     |
 | 
			
		||||
 * |----|----|----| En  |
 | 
			
		||||
 * |    0    | .  |     |
 | 
			
		||||
 * | 1  | 2  | 3  | En  |
 | 
			
		||||
 * |----|----|----|-----|
 | 
			
		||||
 * | 0  | 0  | .  | En  |
 | 
			
		||||
 * `--------------------'
 | 
			
		||||
 */
 | 
			
		||||
 [_BL] = LAYOUT_ortho_5x4(
 | 
			
		||||
   TG(_NV),  KC_PSLS,  KC_PAST,   LT(_FN, KC_BSPC),
 | 
			
		||||
   KC_7,    KC_8,    KC_9,     KC_PMNS,
 | 
			
		||||
   KC_4,    KC_5,    KC_6,     KC_PPLS,
 | 
			
		||||
   KC_1,    KC_2,    KC_3,     KC_PENT,
 | 
			
		||||
   KC_0,    KC_0,  KC_DOT,   KC_PENT
 | 
			
		||||
 [0] = LAYOUT_ortho_5x4(
 | 
			
		||||
   KC_LUP,  KC_PSLS,  KC_PAST, LT(2, KC_BSPC),
 | 
			
		||||
   KC_P7,    KC_P8,    KC_P9,        KC_PMNS,
 | 
			
		||||
   KC_P4,    KC_P5,    KC_P6,        KC_PPLS,
 | 
			
		||||
   KC_P1,    KC_P2,    KC_P3,        KC_PENT,
 | 
			
		||||
   KC_P0,    KC_P0,  KC_PDOT,        KC_PENT
 | 
			
		||||
 ),
 | 
			
		||||
 | 
			
		||||
/* Keymap _NV: Navigation layer
 | 
			
		||||
 * ,-------------------.
 | 
			
		||||
 * |INS |HOME|PGUP|    |
 | 
			
		||||
 * |----|----|----|----|
 | 
			
		||||
 * |DEL |END |PGDN|    |
 | 
			
		||||
 * |----|----|----|----|
 | 
			
		||||
 * |    | UP |    |    |
 | 
			
		||||
 * |----|----|----|----|
 | 
			
		||||
 * |LEFT|DOWN|RIGH|    |
 | 
			
		||||
 * |----|----|----|    |
 | 
			
		||||
 * |         |    |    |
 | 
			
		||||
 * `-------------------'
 | 
			
		||||
 */
 | 
			
		||||
  [_NV] = LAYOUT_ortho_5x4(
 | 
			
		||||
    KC_INS,   KC_HOME,  KC_PGUP,   TG(_NV),
 | 
			
		||||
    KC_DEL,   KC_END,   KC_PGDN,   XXXXXXX,
 | 
			
		||||
    XXXXXXX,  KC_UP,    XXXXXXX,   XXXXXXX,
 | 
			
		||||
    KC_LEFT,  KC_DOWN,  KC_RGHT,   XXXXXXX,
 | 
			
		||||
    XXXXXXX,  XXXXXXX,  XXXXXXX,   XXXXXXX
 | 
			
		||||
  ),
 | 
			
		||||
* ,-------------------.
 | 
			
		||||
* |LAYR|    |    |NUM |
 | 
			
		||||
* |----|----|----|----|
 | 
			
		||||
* |HOME| UP |PGUP|    |
 | 
			
		||||
* |----|----|----|----|
 | 
			
		||||
* |LEFT|    |RIGH|    |
 | 
			
		||||
* |----|----|----|----|
 | 
			
		||||
* |END |DOWN|PGDN| En |
 | 
			
		||||
* |----|----|----|----|
 | 
			
		||||
* |INS |INS |DEL | En |
 | 
			
		||||
* `-------------------'
 | 
			
		||||
*/
 | 
			
		||||
[1] = LAYOUT_ortho_5x4(
 | 
			
		||||
  KC_LUP, KC_NUMLOCK, XXXXXXX,    XXXXXXX,
 | 
			
		||||
  KC_HOME,   KC_UP,   KC_PGUP,    XXXXXXX,
 | 
			
		||||
  KC_LEFT, XXXXXXX,   KC_RGHT,    XXXXXXX,
 | 
			
		||||
  KC_END,  KC_DOWN,   KC_PGDN,    KC_PENT,
 | 
			
		||||
  KC_INS,   KC_INS,   KC_DEL,     KC_PENT
 | 
			
		||||
),
 | 
			
		||||
 | 
			
		||||
/* Keymap _FN: RGB Function Layer
 | 
			
		||||
 * ,-------------------.
 | 
			
		||||
 * |RMOD|RGBP|RTOG| FN |
 | 
			
		||||
 * |LAYR|    |    |RTOG|
 | 
			
		||||
 * |----|----|----|----|
 | 
			
		||||
 * |HUD |HUI |    |    |
 | 
			
		||||
 * |HUD |HUI |    |RGBP|
 | 
			
		||||
 * |----|----|----|----|
 | 
			
		||||
 * |SAD |SAI |    |    |
 | 
			
		||||
 * |SAD |SAI |    |RMOD|
 | 
			
		||||
 * |----|----|----|----|
 | 
			
		||||
 * |VAD |VAS |    |    |
 | 
			
		||||
 * |----|----|----|    |
 | 
			
		||||
 * |RST |    |    |    |
 | 
			
		||||
 * |----|----|----|----|
 | 
			
		||||
 * |RST |RST |    |    |
 | 
			
		||||
 * `-------------------'
 | 
			
		||||
 */
 | 
			
		||||
  [_FN] = LAYOUT_ortho_5x4(
 | 
			
		||||
    RGB_MOD,  RGB_M_P,  RGB_TOG,   _______,
 | 
			
		||||
    RGB_HUD,  RGB_HUI,  XXXXXXX,   XXXXXXX,
 | 
			
		||||
    RGB_SAD,  RGB_SAI,  XXXXXXX,   XXXXXXX,
 | 
			
		||||
  [2] = LAYOUT_ortho_5x4(
 | 
			
		||||
    KC_LUP,  XXXXXXX,  XXXXXXX,   RGB_TOG,
 | 
			
		||||
    RGB_HUD,  RGB_HUI,  XXXXXXX,   RGB_M_P,
 | 
			
		||||
    RGB_SAD,  RGB_SAI,  XXXXXXX,   RGB_MOD,
 | 
			
		||||
    RGB_VAD,  RGB_VAI,  XXXXXXX,   XXXXXXX,
 | 
			
		||||
    RESET,    XXXXXXX,  XXXXXXX,   XXXXXXX
 | 
			
		||||
      RESET,    RESET,  XXXXXXX,   XXXXXXX
 | 
			
		||||
  ),
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// (Optional) Rotary Encoder, Volume Control
 | 
			
		||||
bool encoder_update_user(uint8_t index, bool clockwise) {
 | 
			
		||||
  if (clockwise) {
 | 
			
		||||
      tap_code(KC_VOLU);
 | 
			
		||||
  } else {
 | 
			
		||||
      tap_code(KC_VOLD);
 | 
			
		||||
  }
 | 
			
		||||
    return true;
 | 
			
		||||
  return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Potentiometer Slider, MIDI Control
 | 
			
		||||
uint8_t divisor = 0;
 | 
			
		||||
 | 
			
		||||
void slider(void) {
 | 
			
		||||
    if (divisor++) { // only run the slider function 1/256 times it's called
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    midi_send_cc(&midi_device, 2, 0x3E, 0x7F - (analogReadPin(SLIDER_PIN) >> 3));
 | 
			
		||||
void slider(void){
 | 
			
		||||
  if (divisor++) { // only run the slider function 1/256 times it's called
 | 
			
		||||
      return;
 | 
			
		||||
  }
 | 
			
		||||
  midi_send_cc(&midi_device, 2, 0x3E, 0x7F - (analogReadPin(SLIDER_PIN) >> 3));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void matrix_scan_user(void) {
 | 
			
		||||
    slider();
 | 
			
		||||
  slider();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 0.91" OLED, 128x32 resolution
 | 
			
		||||
#ifdef OLED_DRIVER_ENABLE
 | 
			
		||||
 | 
			
		||||
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
 | 
			
		||||
    return OLED_ROTATION_180;  // flips the display 270 degrees
 | 
			
		||||
	return OLED_ROTATION_180;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#define ANIM_SIZE 636 // number of bytes in array, minimize for adequate firmware size, max is 1024
 | 
			
		||||
static void render_rocket_logo(void) {
 | 
			
		||||
  static const char PROGMEM rocket_logo[]={
 | 
			
		||||
    // Rocket Screen
 | 
			
		||||
    // 'home', 128x32px
 | 
			
		||||
    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, 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, 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, 0x80,
 | 
			
		||||
    0x80, 0x80, 0xc0, 0x40, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x20, 0x50, 0x50, 0x90,
 | 
			
		||||
    0x10, 0x10, 0x20, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80,
 | 
			
		||||
    0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x10, 0x10, 0xf0, 0x10, 0x10, 0x08, 0x08, 0x08, 0x04, 0x04,
 | 
			
		||||
    0x04, 0xfc, 0xfc, 0xfc, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0xfc, 0x7c, 0x7e, 0x7e, 0x7f,
 | 
			
		||||
    0x81, 0x81, 0x81, 0x81, 0xff, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xff,
 | 
			
		||||
    0xff, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0x01, 0x01, 0x01, 0xf9, 0x01, 0xf9, 0x01,
 | 
			
		||||
    0xf9, 0x01, 0xf9, 0x01, 0x01, 0x01, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe6,
 | 
			
		||||
    0xe6, 0xe6, 0xe6, 0xe6, 0xff, 0x8c, 0x52, 0x52, 0x52, 0xde, 0x84, 0x08, 0x84, 0x08, 0x00, 0x00,
 | 
			
		||||
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x04,
 | 
			
		||||
    0x05, 0x05, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
    0x00, 0x01, 0x01, 0x01, 0x01, 0x02, 0x04, 0x04, 0x07, 0x04, 0x04, 0x08, 0x08, 0x08, 0x10, 0x10,
 | 
			
		||||
    0x10, 0x1f, 0x1f, 0x1f, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1f, 0x10, 0x20, 0x20, 0x40,
 | 
			
		||||
    0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x7f,
 | 
			
		||||
    0x7f, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x40, 0x40, 0x40, 0x4a, 0x44, 0x4a, 0x40,
 | 
			
		||||
    0x4f, 0x40, 0x4f, 0x40, 0x40, 0x40, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x9c,
 | 
			
		||||
    0x9c, 0x9c, 0x9c, 0x1c, 0xff, 0x31, 0x4a, 0x4a, 0x4a, 0x7b, 0x10, 0x21, 0x10, 0x21, 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, 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, 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, 0x00, 0x00, 0x00,
 | 
			
		||||
    0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
 | 
			
		||||
  };
 | 
			
		||||
  oled_write_raw_P(rocket_logo, sizeof(rocket_logo));
 | 
			
		||||
}
 | 
			
		||||
static void render_nav_logo(void) {
 | 
			
		||||
  static const char PROGMEM nav_logo[]={
 | 
			
		||||
    // Navigation Screen
 | 
			
		||||
    // 'navigation', 128x32px
 | 
			
		||||
    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, 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, 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, 0x20, 0x20, 0x40,
 | 
			
		||||
    0x40, 0x80, 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, 0xd0, 0x20, 0x50, 0x50, 0x90,
 | 
			
		||||
    0x10, 0x10, 0x20, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x10, 0xc8, 0x28, 0x28, 0x28, 0xc8, 0x10,
 | 
			
		||||
    0xb0, 0x10, 0x20, 0x20, 0x20, 0x40, 0x40, 0x40, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x20,
 | 
			
		||||
    0x20, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0xa1, 0x09, 0xe1,
 | 
			
		||||
    0xf3, 0x29, 0x05, 0x85, 0xe5, 0xe5, 0xc5, 0x89, 0x92, 0xe4, 0x08, 0xf0, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x88, 0x44,
 | 
			
		||||
    0x44, 0x22, 0xe2, 0x11, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x04,
 | 
			
		||||
    0x05, 0x05, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x09, 0x0b, 0x0b, 0x0b, 0x09, 0x04,
 | 
			
		||||
    0x06, 0x04, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x02, 0x02,
 | 
			
		||||
    0x02, 0x04, 0x04, 0x04, 0x08, 0x08, 0x08, 0x10, 0x10, 0x10, 0x20, 0x20, 0x20, 0x42, 0x48, 0x43,
 | 
			
		||||
    0x66, 0x4e, 0x53, 0x51, 0x51, 0x53, 0x53, 0x49, 0x24, 0x13, 0x08, 0x07, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x91,
 | 
			
		||||
    0x91, 0x52, 0x53, 0x34, 0x34, 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, 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, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x02,
 | 
			
		||||
    0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
 | 
			
		||||
  };
 | 
			
		||||
  oled_write_raw_P(nav_logo, sizeof(nav_logo));
 | 
			
		||||
}
 | 
			
		||||
static void render_light_logo(void) {
 | 
			
		||||
  static const char PROGMEM light_logo[]={
 | 
			
		||||
    // RGB Screen
 | 
			
		||||
    // 'rgb', 128x32px
 | 
			
		||||
    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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
    0x00, 0x00, 0x00, 0x00, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x9c, 0x80, 0x80,
 | 
			
		||||
    0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 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, 0x00, 0x80, 0x80,
 | 
			
		||||
    0x80, 0x40, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x20, 0x50, 0x50, 0x90,
 | 
			
		||||
    0x10, 0x10, 0x20, 0xc0, 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, 0x80, 0x80, 0x00, 0x00, 0xe0, 0x19, 0x04, 0x62, 0x11, 0x09, 0x04, 0x04, 0x00, 0x00, 0x00,
 | 
			
		||||
    0x00, 0x01, 0x01, 0x02, 0x04, 0x19, 0x10, 0x10, 0xf0, 0x00, 0x00, 0xf0, 0x00, 0xf0, 0xe0, 0xc0,
 | 
			
		||||
    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, 0xc7, 0x24, 0x04,
 | 
			
		||||
    0x07, 0xe4, 0x24, 0x24, 0xc7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x04,
 | 
			
		||||
    0x05, 0x05, 0x02, 0x05, 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, 0x07, 0x88, 0x30, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
    0x80, 0x80, 0x40, 0x60, 0x30, 0x98, 0x08, 0x08, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x0f, 0x07, 0x03,
 | 
			
		||||
    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, 0xc1, 0x22, 0x24,
 | 
			
		||||
    0x24, 0xc4, 0x44, 0x22, 0x21, 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, 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, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1d, 0x01, 0x01,
 | 
			
		||||
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 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, 0x03, 0x02, 0x02,
 | 
			
		||||
    0x02, 0x03, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
 | 
			
		||||
  };
 | 
			
		||||
  oled_write_raw_P(light_logo, sizeof(light_logo));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
layer_state_t layer_state_set_user(layer_state_t state) {
 | 
			
		||||
 | 
			
		||||
    static const char PROGMEM gui_layers[][ANIM_SIZE] = {
 | 
			
		||||
      {
 | 
			
		||||
        // Home Screen
 | 
			
		||||
        // 'layer_bl', 128x32px
 | 
			
		||||
        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, 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, 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, 0x80,
 | 
			
		||||
        0x80, 0x80, 0xc0, 0x40, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x20, 0x50, 0x50, 0x90,
 | 
			
		||||
        0x10, 0x10, 0x20, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80,
 | 
			
		||||
        0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x10, 0x10, 0xf0, 0x10, 0x10, 0x08, 0x08, 0x08, 0x04, 0x04,
 | 
			
		||||
        0x04, 0xfc, 0xfc, 0xfc, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0xfc, 0x7c, 0x7e, 0x7e, 0x7f,
 | 
			
		||||
        0x81, 0x81, 0x81, 0x81, 0xff, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xff,
 | 
			
		||||
        0xff, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0x01, 0x01, 0x01, 0xf9, 0x01, 0xf9, 0x01,
 | 
			
		||||
        0xf9, 0x01, 0xf9, 0x01, 0x01, 0x01, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe6,
 | 
			
		||||
        0xe6, 0xe6, 0xe6, 0xe6, 0xff, 0x8c, 0x52, 0x52, 0x52, 0xde, 0x84, 0x08, 0x84, 0x08, 0x00, 0x00,
 | 
			
		||||
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x04,
 | 
			
		||||
        0x05, 0x05, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
        0x00, 0x01, 0x01, 0x01, 0x01, 0x02, 0x04, 0x04, 0x07, 0x04, 0x04, 0x08, 0x08, 0x08, 0x10, 0x10,
 | 
			
		||||
        0x10, 0x1f, 0x1f, 0x1f, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1f, 0x10, 0x20, 0x20, 0x40,
 | 
			
		||||
        0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x7f,
 | 
			
		||||
        0x7f, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x40, 0x40, 0x40, 0x4a, 0x44, 0x4a, 0x40,
 | 
			
		||||
        0x4f, 0x40, 0x4f, 0x40, 0x40, 0x40, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x9c,
 | 
			
		||||
        0x9c, 0x9c, 0x9c, 0x1c, 0xff, 0x31, 0x4a, 0x4a, 0x4a, 0x7b, 0x10, 0x21, 0x10, 0x21, 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, 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, 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, 0x00, 0x00, 0x00,
 | 
			
		||||
        0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        // Navigation Screen
 | 
			
		||||
        // 'layer_nav', 128x32px
 | 
			
		||||
        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, 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, 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, 0x20, 0x20, 0x40,
 | 
			
		||||
        0x40, 0x80, 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, 0xd0, 0x20, 0x50, 0x50, 0x90,
 | 
			
		||||
        0x10, 0x10, 0x20, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x10, 0xc8, 0x28, 0x28, 0x28, 0xc8, 0x10,
 | 
			
		||||
        0xb0, 0x10, 0x20, 0x20, 0x20, 0x40, 0x40, 0x40, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x20,
 | 
			
		||||
        0x20, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0xa1, 0x09, 0xe1,
 | 
			
		||||
        0xf3, 0x29, 0x05, 0x85, 0xe5, 0xe5, 0xc5, 0x89, 0x92, 0xe4, 0x08, 0xf0, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x88, 0x44,
 | 
			
		||||
        0x44, 0x22, 0xe2, 0x11, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x04,
 | 
			
		||||
        0x05, 0x05, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x09, 0x0b, 0x0b, 0x0b, 0x09, 0x04,
 | 
			
		||||
        0x06, 0x04, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x02, 0x02,
 | 
			
		||||
        0x02, 0x04, 0x04, 0x04, 0x08, 0x08, 0x08, 0x10, 0x10, 0x10, 0x20, 0x20, 0x20, 0x42, 0x48, 0x43,
 | 
			
		||||
        0x66, 0x4e, 0x53, 0x51, 0x51, 0x53, 0x53, 0x49, 0x24, 0x13, 0x08, 0x07, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x91,
 | 
			
		||||
        0x91, 0x52, 0x53, 0x34, 0x34, 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, 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, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x02,
 | 
			
		||||
        0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        // RGB Screen
 | 
			
		||||
        // 'layer_rgb', 128x32px
 | 
			
		||||
        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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
        0x00, 0x00, 0x00, 0x00, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x9c, 0x80, 0x80,
 | 
			
		||||
        0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 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, 0x00, 0x80, 0x80,
 | 
			
		||||
        0x80, 0x40, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x20, 0x50, 0x50, 0x90,
 | 
			
		||||
        0x10, 0x10, 0x20, 0xc0, 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, 0x80, 0x80, 0x00, 0x00, 0xe0, 0x19, 0x04, 0x62, 0x11, 0x09, 0x04, 0x04, 0x00, 0x00, 0x00,
 | 
			
		||||
        0x00, 0x01, 0x01, 0x02, 0x04, 0x19, 0x10, 0x10, 0xf0, 0x00, 0x00, 0xf0, 0x00, 0xf0, 0xe0, 0xc0,
 | 
			
		||||
        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, 0xc7, 0x24, 0x04,
 | 
			
		||||
        0x07, 0xe4, 0x24, 0x24, 0xc7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x04,
 | 
			
		||||
        0x05, 0x05, 0x02, 0x05, 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, 0x07, 0x88, 0x30, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
        0x80, 0x80, 0x40, 0x60, 0x30, 0x98, 0x08, 0x08, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x0f, 0x07, 0x03,
 | 
			
		||||
        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, 0xc1, 0x22, 0x24,
 | 
			
		||||
        0x24, 0xc4, 0x44, 0x22, 0x21, 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, 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, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1d, 0x01, 0x01,
 | 
			
		||||
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 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, 0x03, 0x02, 0x02,
 | 
			
		||||
        0x02, 0x03, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
 | 
			
		||||
      }
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    switch (get_highest_layer(state)) {
 | 
			
		||||
    case _BL:
 | 
			
		||||
      oled_write_raw_P(gui_layers[0], sizeof(gui_layers[0]) );
 | 
			
		||||
void oled_task_user(void) {
 | 
			
		||||
  switch (get_highest_layer(layer_state)) {
 | 
			
		||||
    case 0:
 | 
			
		||||
      render_rocket_logo();
 | 
			
		||||
      break;
 | 
			
		||||
    case _NV:
 | 
			
		||||
      oled_write_raw_P(gui_layers[1], sizeof(gui_layers[1]) );
 | 
			
		||||
    case 1:
 | 
			
		||||
      render_nav_logo();
 | 
			
		||||
      break;
 | 
			
		||||
    case _FN:
 | 
			
		||||
      oled_write_raw_P(gui_layers[2], sizeof(gui_layers[2]) );
 | 
			
		||||
    case 2:
 | 
			
		||||
      render_light_logo();
 | 
			
		||||
      break;
 | 
			
		||||
    default:
 | 
			
		||||
      // Or use the write_ln shortcut over adding '\n' to the end of your string
 | 
			
		||||
      oled_write_ln_P(PSTR(" UND"), false);
 | 
			
		||||
      break;
 | 
			
		||||
    }
 | 
			
		||||
  return state;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										293
									
								
								keyboards/ungodly/launch_pad/keymaps/via/keymap.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										293
									
								
								keyboards/ungodly/launch_pad/keymaps/via/keymap.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,293 @@
 | 
			
		|||
/* Copyright 2020 Ungodly Design <hello@ungodly.design>
 | 
			
		||||
 *
 | 
			
		||||
 * 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 "analog.h"
 | 
			
		||||
#include "qmk_midi.h"
 | 
			
		||||
 | 
			
		||||
/* Force Numlock on */
 | 
			
		||||
void matrix_init_user (void) {
 | 
			
		||||
  if (!host_keyboard_led_state().num_lock) {
 | 
			
		||||
      tap_code(KC_NUMLOCK);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Custom Layer Up/Down Keystrokes */
 | 
			
		||||
enum custom_keycodes {
 | 
			
		||||
    KC_LUP = SAFE_RANGE, //cycle layers in up direction
 | 
			
		||||
    KC_LDN //cycle layers in down direction
 | 
			
		||||
};
 | 
			
		||||
#define HIGHEST_LAYER 2 //replace X with your highest layer
 | 
			
		||||
static uint8_t current_layer = 0;
 | 
			
		||||
 | 
			
		||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		||||
  switch (keycode) {
 | 
			
		||||
  case KC_LUP:
 | 
			
		||||
    if(record->event.pressed) {
 | 
			
		||||
      if (current_layer == HIGHEST_LAYER){
 | 
			
		||||
        current_layer=0;
 | 
			
		||||
      } else {
 | 
			
		||||
        current_layer++;
 | 
			
		||||
      }
 | 
			
		||||
      layer_clear();
 | 
			
		||||
      layer_on(current_layer);
 | 
			
		||||
    }
 | 
			
		||||
    return false;
 | 
			
		||||
  case KC_LDN:
 | 
			
		||||
    if(record->event.pressed) {
 | 
			
		||||
      if (current_layer == 0){
 | 
			
		||||
        current_layer=HIGHEST_LAYER;
 | 
			
		||||
      } else {
 | 
			
		||||
        current_layer--;
 | 
			
		||||
      }
 | 
			
		||||
      layer_clear();
 | 
			
		||||
      layer_on(current_layer);
 | 
			
		||||
    }
 | 
			
		||||
    return false;
 | 
			
		||||
  default:
 | 
			
		||||
    return true;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
/* Keymap _BL: (Base Layer) Default Numpad Layer
 | 
			
		||||
 * ,-------------------.
 | 
			
		||||
 * |LAYR| /  | *  |BACK |
 | 
			
		||||
 * |----|----|----|-----|
 | 
			
		||||
 * | 7  | 8  | 9  |  -  |
 | 
			
		||||
 * |----|----|----|-----|
 | 
			
		||||
 * | 4  | 5  | 6  |  +  |
 | 
			
		||||
 * |----|----|----|-----|
 | 
			
		||||
 * | 1  | 2  | 3  | En  |
 | 
			
		||||
 * |----|----|----|-----|
 | 
			
		||||
 * | 0  | 0  | .  | En  |
 | 
			
		||||
 * `--------------------'
 | 
			
		||||
 */
 | 
			
		||||
 [0] = LAYOUT_ortho_5x4(
 | 
			
		||||
   KC_LUP,  KC_PSLS,  KC_PAST, LT(2, KC_BSPC),
 | 
			
		||||
   KC_P7,    KC_P8,    KC_P9,        KC_PMNS,
 | 
			
		||||
   KC_P4,    KC_P5,    KC_P6,        KC_PPLS,
 | 
			
		||||
   KC_P1,    KC_P2,    KC_P3,        KC_PENT,
 | 
			
		||||
   KC_P0,    KC_P0,  KC_PDOT,        KC_PENT
 | 
			
		||||
 ),
 | 
			
		||||
 | 
			
		||||
/* Keymap _NV: Navigation layer
 | 
			
		||||
* ,-------------------.
 | 
			
		||||
* |LAYR|    |    |NUM |
 | 
			
		||||
* |----|----|----|----|
 | 
			
		||||
* |HOME| UP |PGUP|    |
 | 
			
		||||
* |----|----|----|----|
 | 
			
		||||
* |LEFT|    |RIGH|    |
 | 
			
		||||
* |----|----|----|----|
 | 
			
		||||
* |END |DOWN|PGDN| En |
 | 
			
		||||
* |----|----|----|----|
 | 
			
		||||
* |INS |INS |DEL | En |
 | 
			
		||||
* `-------------------'
 | 
			
		||||
*/
 | 
			
		||||
[1] = LAYOUT_ortho_5x4(
 | 
			
		||||
  KC_LUP, KC_NUMLOCK, XXXXXXX,    XXXXXXX,
 | 
			
		||||
  KC_HOME,   KC_UP,   KC_PGUP,    XXXXXXX,
 | 
			
		||||
  KC_LEFT, XXXXXXX,   KC_RGHT,    XXXXXXX,
 | 
			
		||||
  KC_END,  KC_DOWN,   KC_PGDN,    KC_PENT,
 | 
			
		||||
  KC_INS,   KC_INS,   KC_DEL,     KC_PENT
 | 
			
		||||
),
 | 
			
		||||
 | 
			
		||||
/* Keymap _FN: RGB Function Layer
 | 
			
		||||
 * ,-------------------.
 | 
			
		||||
 * |LAYR|    |    |RTOG|
 | 
			
		||||
 * |----|----|----|----|
 | 
			
		||||
 * |HUD |HUI |    |RGBP|
 | 
			
		||||
 * |----|----|----|----|
 | 
			
		||||
 * |SAD |SAI |    |RMOD|
 | 
			
		||||
 * |----|----|----|----|
 | 
			
		||||
 * |VAD |VAS |    |    |
 | 
			
		||||
 * |----|----|----|----|
 | 
			
		||||
 * |RST |RST |    |    |
 | 
			
		||||
 * `-------------------'
 | 
			
		||||
 */
 | 
			
		||||
  [2] = LAYOUT_ortho_5x4(
 | 
			
		||||
    KC_LUP,  XXXXXXX,  XXXXXXX,   RGB_TOG,
 | 
			
		||||
    RGB_HUD,  RGB_HUI,  XXXXXXX,   RGB_M_P,
 | 
			
		||||
    RGB_SAD,  RGB_SAI,  XXXXXXX,   RGB_MOD,
 | 
			
		||||
    RGB_VAD,  RGB_VAI,  XXXXXXX,   XXXXXXX,
 | 
			
		||||
      RESET,    RESET,  XXXXXXX,   XXXXXXX
 | 
			
		||||
  ),
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// (Optional) Rotary Encoder, Volume Control
 | 
			
		||||
bool encoder_update_user(uint8_t index, bool clockwise) {
 | 
			
		||||
  if (clockwise) {
 | 
			
		||||
      tap_code(KC_VOLU);
 | 
			
		||||
  } else {
 | 
			
		||||
      tap_code(KC_VOLD);
 | 
			
		||||
  }
 | 
			
		||||
  return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Potentiometer Slider, MIDI Control
 | 
			
		||||
uint8_t divisor = 0;
 | 
			
		||||
void slider(void){
 | 
			
		||||
  if (divisor++) { // only run the slider function 1/256 times it's called
 | 
			
		||||
      return;
 | 
			
		||||
  }
 | 
			
		||||
  midi_send_cc(&midi_device, 2, 0x3E, 0x7F - (analogReadPin(SLIDER_PIN) >> 3));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void matrix_scan_user(void) {
 | 
			
		||||
  slider();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 0.91" OLED, 128x32 resolution
 | 
			
		||||
#ifdef OLED_DRIVER_ENABLE
 | 
			
		||||
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
 | 
			
		||||
	return OLED_ROTATION_180;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void render_rocket_logo(void) {
 | 
			
		||||
  static const char PROGMEM rocket_logo[]={
 | 
			
		||||
    // Rocket Screen
 | 
			
		||||
    // 'home', 128x32px
 | 
			
		||||
    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, 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, 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, 0x80,
 | 
			
		||||
    0x80, 0x80, 0xc0, 0x40, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x20, 0x50, 0x50, 0x90,
 | 
			
		||||
    0x10, 0x10, 0x20, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80,
 | 
			
		||||
    0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x10, 0x10, 0xf0, 0x10, 0x10, 0x08, 0x08, 0x08, 0x04, 0x04,
 | 
			
		||||
    0x04, 0xfc, 0xfc, 0xfc, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0xfc, 0x7c, 0x7e, 0x7e, 0x7f,
 | 
			
		||||
    0x81, 0x81, 0x81, 0x81, 0xff, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xff,
 | 
			
		||||
    0xff, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0x01, 0x01, 0x01, 0xf9, 0x01, 0xf9, 0x01,
 | 
			
		||||
    0xf9, 0x01, 0xf9, 0x01, 0x01, 0x01, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe6,
 | 
			
		||||
    0xe6, 0xe6, 0xe6, 0xe6, 0xff, 0x8c, 0x52, 0x52, 0x52, 0xde, 0x84, 0x08, 0x84, 0x08, 0x00, 0x00,
 | 
			
		||||
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x04,
 | 
			
		||||
    0x05, 0x05, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
    0x00, 0x01, 0x01, 0x01, 0x01, 0x02, 0x04, 0x04, 0x07, 0x04, 0x04, 0x08, 0x08, 0x08, 0x10, 0x10,
 | 
			
		||||
    0x10, 0x1f, 0x1f, 0x1f, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1f, 0x10, 0x20, 0x20, 0x40,
 | 
			
		||||
    0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x7f,
 | 
			
		||||
    0x7f, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x40, 0x40, 0x40, 0x4a, 0x44, 0x4a, 0x40,
 | 
			
		||||
    0x4f, 0x40, 0x4f, 0x40, 0x40, 0x40, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x9c,
 | 
			
		||||
    0x9c, 0x9c, 0x9c, 0x1c, 0xff, 0x31, 0x4a, 0x4a, 0x4a, 0x7b, 0x10, 0x21, 0x10, 0x21, 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, 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, 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, 0x00, 0x00, 0x00,
 | 
			
		||||
    0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
 | 
			
		||||
  };
 | 
			
		||||
  oled_write_raw_P(rocket_logo, sizeof(rocket_logo));
 | 
			
		||||
}
 | 
			
		||||
static void render_nav_logo(void) {
 | 
			
		||||
  static const char PROGMEM nav_logo[]={
 | 
			
		||||
    // Navigation Screen
 | 
			
		||||
    // 'navigation', 128x32px
 | 
			
		||||
    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, 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, 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, 0x20, 0x20, 0x40,
 | 
			
		||||
    0x40, 0x80, 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, 0xd0, 0x20, 0x50, 0x50, 0x90,
 | 
			
		||||
    0x10, 0x10, 0x20, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x10, 0xc8, 0x28, 0x28, 0x28, 0xc8, 0x10,
 | 
			
		||||
    0xb0, 0x10, 0x20, 0x20, 0x20, 0x40, 0x40, 0x40, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x20,
 | 
			
		||||
    0x20, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0xa1, 0x09, 0xe1,
 | 
			
		||||
    0xf3, 0x29, 0x05, 0x85, 0xe5, 0xe5, 0xc5, 0x89, 0x92, 0xe4, 0x08, 0xf0, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x88, 0x44,
 | 
			
		||||
    0x44, 0x22, 0xe2, 0x11, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x04,
 | 
			
		||||
    0x05, 0x05, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x09, 0x0b, 0x0b, 0x0b, 0x09, 0x04,
 | 
			
		||||
    0x06, 0x04, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x02, 0x02,
 | 
			
		||||
    0x02, 0x04, 0x04, 0x04, 0x08, 0x08, 0x08, 0x10, 0x10, 0x10, 0x20, 0x20, 0x20, 0x42, 0x48, 0x43,
 | 
			
		||||
    0x66, 0x4e, 0x53, 0x51, 0x51, 0x53, 0x53, 0x49, 0x24, 0x13, 0x08, 0x07, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x91,
 | 
			
		||||
    0x91, 0x52, 0x53, 0x34, 0x34, 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, 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, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x02,
 | 
			
		||||
    0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
 | 
			
		||||
  };
 | 
			
		||||
  oled_write_raw_P(nav_logo, sizeof(nav_logo));
 | 
			
		||||
}
 | 
			
		||||
static void render_light_logo(void) {
 | 
			
		||||
  static const char PROGMEM light_logo[]={
 | 
			
		||||
    // RGB Screen
 | 
			
		||||
    // 'rgb', 128x32px
 | 
			
		||||
    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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
    0x00, 0x00, 0x00, 0x00, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x9c, 0x80, 0x80,
 | 
			
		||||
    0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 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, 0x00, 0x80, 0x80,
 | 
			
		||||
    0x80, 0x40, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x20, 0x50, 0x50, 0x90,
 | 
			
		||||
    0x10, 0x10, 0x20, 0xc0, 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, 0x80, 0x80, 0x00, 0x00, 0xe0, 0x19, 0x04, 0x62, 0x11, 0x09, 0x04, 0x04, 0x00, 0x00, 0x00,
 | 
			
		||||
    0x00, 0x01, 0x01, 0x02, 0x04, 0x19, 0x10, 0x10, 0xf0, 0x00, 0x00, 0xf0, 0x00, 0xf0, 0xe0, 0xc0,
 | 
			
		||||
    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, 0xc7, 0x24, 0x04,
 | 
			
		||||
    0x07, 0xe4, 0x24, 0x24, 0xc7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x04,
 | 
			
		||||
    0x05, 0x05, 0x02, 0x05, 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, 0x07, 0x88, 0x30, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
    0x80, 0x80, 0x40, 0x60, 0x30, 0x98, 0x08, 0x08, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x0f, 0x07, 0x03,
 | 
			
		||||
    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, 0xc1, 0x22, 0x24,
 | 
			
		||||
    0x24, 0xc4, 0x44, 0x22, 0x21, 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, 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, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1d, 0x01, 0x01,
 | 
			
		||||
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 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, 0x03, 0x02, 0x02,
 | 
			
		||||
    0x02, 0x03, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
 | 
			
		||||
  };
 | 
			
		||||
  oled_write_raw_P(light_logo, sizeof(light_logo));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void oled_task_user(void) {
 | 
			
		||||
  switch (get_highest_layer(layer_state)) {
 | 
			
		||||
    case 0:
 | 
			
		||||
      render_rocket_logo();
 | 
			
		||||
      break;
 | 
			
		||||
    case 1:
 | 
			
		||||
      render_nav_logo();
 | 
			
		||||
      break;
 | 
			
		||||
    case 2:
 | 
			
		||||
      render_light_logo();
 | 
			
		||||
      break;
 | 
			
		||||
    default:
 | 
			
		||||
      // Or use the write_ln shortcut over adding '\n' to the end of your string
 | 
			
		||||
      oled_write_ln_P(PSTR(" UND"), false);
 | 
			
		||||
      break;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										1
									
								
								keyboards/ungodly/launch_pad/keymaps/via/rules.mk
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								keyboards/ungodly/launch_pad/keymaps/via/rules.mk
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
VIA_ENABLE = yes
 | 
			
		||||
							
								
								
									
										269
									
								
								keyboards/ungodly/launch_pad/keymaps/warzone/keymap.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										269
									
								
								keyboards/ungodly/launch_pad/keymaps/warzone/keymap.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,269 @@
 | 
			
		|||
/* Copyright 2020 Ungodly Design <hello@ungodly.design>
 | 
			
		||||
 *
 | 
			
		||||
 * 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 "analog.h"
 | 
			
		||||
#include "qmk_midi.h"
 | 
			
		||||
 | 
			
		||||
/* Force Numlock on */
 | 
			
		||||
void matrix_init_user (void) {
 | 
			
		||||
  if (!host_keyboard_led_state().num_lock) {
 | 
			
		||||
      tap_code(KC_NUMLOCK);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Tap Dance declarations
 | 
			
		||||
enum {
 | 
			
		||||
    TD_ESC_TAB,
 | 
			
		||||
    TD_NUMLOCK_L1,
 | 
			
		||||
    TD_3_L0
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// Tap Dance definitions
 | 
			
		||||
qk_tap_dance_action_t tap_dance_actions[] = {
 | 
			
		||||
    // Tap once for Escape, twice for Number 4 (armor plates in warzone)
 | 
			
		||||
    [TD_ESC_TAB] = ACTION_TAP_DANCE_DOUBLE(KC_ESC, KC_TAB),
 | 
			
		||||
    [TD_3_L0] = ACTION_TAP_DANCE_LAYER_TOGGLE(KC_3, 1),
 | 
			
		||||
    [TD_NUMLOCK_L1] = ACTION_TAP_DANCE_LAYER_TOGGLE(KC_NUMLOCK, 1),
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
  /* Keymap _BL: (Base Layer) Default Numpad Layer
 | 
			
		||||
  * ,-------------------.
 | 
			
		||||
  * | NV | /  | *  |BK/FN|
 | 
			
		||||
  * |----|----|----|-----|
 | 
			
		||||
  * | 7  | 8  | 9  |  -  |
 | 
			
		||||
  * |----|----|----|-----|
 | 
			
		||||
  * | 4  | 5  | 6  |  +  |
 | 
			
		||||
  * |----|----|----|-----|
 | 
			
		||||
  * | 1  | 2  | 3  | En  |
 | 
			
		||||
  * |----|----|----|-----|
 | 
			
		||||
  * | 0  | 0  | .  | En  |
 | 
			
		||||
  * `--------------------'
 | 
			
		||||
  */
 | 
			
		||||
  [0] = LAYOUT_ortho_5x4(
 | 
			
		||||
   TD(TD_NUMLOCK_L1),  KC_PSLS,  KC_PAST, LT(2, KC_BSPC),
 | 
			
		||||
   KC_P7,    KC_P8,    KC_P9,        KC_PMNS,
 | 
			
		||||
   KC_P4,    KC_P5,    KC_P6,        KC_PPLS,
 | 
			
		||||
   KC_P1,    KC_P2,    KC_P3,        KC_PENT,
 | 
			
		||||
   KC_P0,    KC_P0,  KC_PDOT,        KC_PENT
 | 
			
		||||
  ),
 | 
			
		||||
  /* Keymap _WAR: (Warzone Layer) Default Numpad Layer for COD Warzone N00BS
 | 
			
		||||
  * ,-------------------.
 | 
			
		||||
  * | R  | F  | V  | Spc |
 | 
			
		||||
  * |----|----|----|-----|
 | 
			
		||||
  * | E  | D  | C  | Alt |
 | 
			
		||||
  * |----|----|----|-----|
 | 
			
		||||
  * | W  | S  | X  |  4  |
 | 
			
		||||
  * |----|----|----|-----|
 | 
			
		||||
  * | Q  | A  | Z  |  3  |
 | 
			
		||||
  * |----|----|----|-----|
 | 
			
		||||
  * | Esc|Ctrl|Shift| M |
 | 
			
		||||
  * `--------------------'
 | 
			
		||||
  */
 | 
			
		||||
  [1] = LAYOUT_ortho_5x4(
 | 
			
		||||
    KC_R,    KC_F,    KC_V,     KC_SPACE,
 | 
			
		||||
    KC_E,    KC_D,    KC_C,     KC_LALT,
 | 
			
		||||
    KC_W,    KC_S,    KC_X,     KC_4,
 | 
			
		||||
    KC_Q,    KC_A,    KC_Z,     TD(TD_3_L0),
 | 
			
		||||
    TD(TD_ESC_TAB),    KC_LCTRL,  KC_LSHIFT,   KC_M
 | 
			
		||||
  ),
 | 
			
		||||
  /* Keymap _FN: RGB Function Layer
 | 
			
		||||
   * ,-------------------.
 | 
			
		||||
   * |LAYR|    |    |RTOG|
 | 
			
		||||
   * |----|----|----|----|
 | 
			
		||||
   * |HUD |HUI |    |RGBP|
 | 
			
		||||
   * |----|----|----|----|
 | 
			
		||||
   * |SAD |SAI |    |RMOD|
 | 
			
		||||
   * |----|----|----|----|
 | 
			
		||||
   * |VAD |VAS |    |    |
 | 
			
		||||
   * |----|----|----|----|
 | 
			
		||||
   * |RST |RST |    |    |
 | 
			
		||||
   * `-------------------'
 | 
			
		||||
   */
 | 
			
		||||
    [2] = LAYOUT_ortho_5x4(
 | 
			
		||||
      KC_LUP,  XXXXXXX,  XXXXXXX,   RGB_TOG,
 | 
			
		||||
      RGB_HUD,  RGB_HUI,  XXXXXXX,   RGB_M_P,
 | 
			
		||||
      RGB_SAD,  RGB_SAI,  XXXXXXX,   RGB_MOD,
 | 
			
		||||
      RGB_VAD,  RGB_VAI,  XXXXXXX,   XXXXXXX,
 | 
			
		||||
        RESET,    RESET,  XXXXXXX,   XXXXXXX
 | 
			
		||||
  ),
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// (Optional) Rotary Encoder, Volume Control
 | 
			
		||||
bool encoder_update_user(uint8_t index, bool clockwise) {
 | 
			
		||||
  if (clockwise) {
 | 
			
		||||
      tap_code(KC_VOLU);
 | 
			
		||||
  } else {
 | 
			
		||||
      tap_code(KC_VOLD);
 | 
			
		||||
  }
 | 
			
		||||
  return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Potentiometer Slider, MIDI Control
 | 
			
		||||
uint8_t divisor = 0;
 | 
			
		||||
void slider(void){
 | 
			
		||||
  if (divisor++) { // only run the slider function 1/256 times it's called
 | 
			
		||||
      return;
 | 
			
		||||
  }
 | 
			
		||||
  midi_send_cc(&midi_device, 2, 0x3E, 0x7F - (analogReadPin(SLIDER_PIN) >> 3));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void matrix_scan_user(void) {
 | 
			
		||||
  slider();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 0.91" OLED, 128x32 resolution
 | 
			
		||||
#ifdef OLED_DRIVER_ENABLE
 | 
			
		||||
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
 | 
			
		||||
	return OLED_ROTATION_180;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void render_rocket_logo(void) {
 | 
			
		||||
  static const char PROGMEM rocket_logo[]={
 | 
			
		||||
    // Rocket Screen
 | 
			
		||||
    // 'home', 128x32px
 | 
			
		||||
    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, 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, 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, 0x80,
 | 
			
		||||
    0x80, 0x80, 0xc0, 0x40, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x20, 0x50, 0x50, 0x90,
 | 
			
		||||
    0x10, 0x10, 0x20, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80,
 | 
			
		||||
    0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x10, 0x10, 0xf0, 0x10, 0x10, 0x08, 0x08, 0x08, 0x04, 0x04,
 | 
			
		||||
    0x04, 0xfc, 0xfc, 0xfc, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0xfc, 0x7c, 0x7e, 0x7e, 0x7f,
 | 
			
		||||
    0x81, 0x81, 0x81, 0x81, 0xff, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xff,
 | 
			
		||||
    0xff, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0x01, 0x01, 0x01, 0xf9, 0x01, 0xf9, 0x01,
 | 
			
		||||
    0xf9, 0x01, 0xf9, 0x01, 0x01, 0x01, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe6,
 | 
			
		||||
    0xe6, 0xe6, 0xe6, 0xe6, 0xff, 0x8c, 0x52, 0x52, 0x52, 0xde, 0x84, 0x08, 0x84, 0x08, 0x00, 0x00,
 | 
			
		||||
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x04,
 | 
			
		||||
    0x05, 0x05, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
    0x00, 0x01, 0x01, 0x01, 0x01, 0x02, 0x04, 0x04, 0x07, 0x04, 0x04, 0x08, 0x08, 0x08, 0x10, 0x10,
 | 
			
		||||
    0x10, 0x1f, 0x1f, 0x1f, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1f, 0x10, 0x20, 0x20, 0x40,
 | 
			
		||||
    0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x7f,
 | 
			
		||||
    0x7f, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x40, 0x40, 0x40, 0x4a, 0x44, 0x4a, 0x40,
 | 
			
		||||
    0x4f, 0x40, 0x4f, 0x40, 0x40, 0x40, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x9c,
 | 
			
		||||
    0x9c, 0x9c, 0x9c, 0x1c, 0xff, 0x31, 0x4a, 0x4a, 0x4a, 0x7b, 0x10, 0x21, 0x10, 0x21, 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, 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, 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, 0x00, 0x00, 0x00,
 | 
			
		||||
    0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
 | 
			
		||||
  };
 | 
			
		||||
  oled_write_raw_P(rocket_logo, sizeof(rocket_logo));
 | 
			
		||||
}
 | 
			
		||||
static void render_warzone_logo(void) {
 | 
			
		||||
  static const char PROGMEM warzone_logo[]={
 | 
			
		||||
    // Home Screen
 | 
			
		||||
    // 'warzone_bit', 128x32px
 | 
			
		||||
    0x00, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
 | 
			
		||||
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
 | 
			
		||||
    0x00, 0xe0, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfe,
 | 
			
		||||
    0xfc, 0xf0, 0x00, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff,
 | 
			
		||||
    0xff, 0xff, 0x7f, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x80, 0x00, 0x00, 0xff, 0xff,
 | 
			
		||||
    0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xc0, 0xc0, 0xc0,
 | 
			
		||||
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
 | 
			
		||||
    0xf8, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
    0x00, 0x00, 0xe0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
 | 
			
		||||
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
 | 
			
		||||
    0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff,
 | 
			
		||||
    0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xf8, 0xfe, 0xff, 0xff, 0xff, 0x7f, 0x1f,
 | 
			
		||||
    0x07, 0x01, 0x00, 0x00, 0x00, 0x03, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xf0, 0xff, 0xff,
 | 
			
		||||
    0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x1f, 0xff,
 | 
			
		||||
    0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xff,
 | 
			
		||||
    0xff, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00,
 | 
			
		||||
    0x00, 0x00, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
 | 
			
		||||
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
 | 
			
		||||
    0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff,
 | 
			
		||||
    0xff, 0xff, 0x00, 0x80, 0xe0, 0xf8, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x07, 0x01, 0x00, 0x00,
 | 
			
		||||
    0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x03, 0x03, 0xff, 0xff,
 | 
			
		||||
    0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xfe, 0xff,
 | 
			
		||||
    0xff, 0xff, 0xff, 0xff, 0x03, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0xff, 0xff, 0xff,
 | 
			
		||||
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
 | 
			
		||||
    0x00, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x00,
 | 
			
		||||
    0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x00, 0x00, 0x01, 0x0f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
 | 
			
		||||
    0x00, 0x03, 0x1f, 0x3f, 0x3f, 0x7f, 0x7f, 0x7f, 0x7e, 0x7e, 0x7e, 0x7f, 0x7f, 0x7f, 0x3f, 0x3f,
 | 
			
		||||
    0x1f, 0x07, 0x00, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
 | 
			
		||||
    0x7f, 0x7f, 0x7f, 0x00, 0x00, 0x1f, 0x3f, 0x3f, 0x7f, 0x7f, 0x7f, 0x7e, 0x7e, 0x7e, 0x7f, 0x7f,
 | 
			
		||||
    0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x00, 0x00, 0x00, 0x01, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
 | 
			
		||||
    0x7f, 0x7f, 0x7f, 0x00, 0x00, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x00, 0x00, 0x07, 0x7f, 0x7f,
 | 
			
		||||
    0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x00, 0x00, 0x0f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7e, 0x00
 | 
			
		||||
  };
 | 
			
		||||
  oled_write_raw_P(warzone_logo, sizeof(warzone_logo));
 | 
			
		||||
}
 | 
			
		||||
static void render_light_logo(void) {
 | 
			
		||||
  static const char PROGMEM light_logo[]={
 | 
			
		||||
    // RGB Screen
 | 
			
		||||
    // 'rgb', 128x32px
 | 
			
		||||
    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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
    0x00, 0x00, 0x00, 0x00, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x9c, 0x80, 0x80,
 | 
			
		||||
    0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 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, 0x00, 0x80, 0x80,
 | 
			
		||||
    0x80, 0x40, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x20, 0x50, 0x50, 0x90,
 | 
			
		||||
    0x10, 0x10, 0x20, 0xc0, 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, 0x80, 0x80, 0x00, 0x00, 0xe0, 0x19, 0x04, 0x62, 0x11, 0x09, 0x04, 0x04, 0x00, 0x00, 0x00,
 | 
			
		||||
    0x00, 0x01, 0x01, 0x02, 0x04, 0x19, 0x10, 0x10, 0xf0, 0x00, 0x00, 0xf0, 0x00, 0xf0, 0xe0, 0xc0,
 | 
			
		||||
    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, 0xc7, 0x24, 0x04,
 | 
			
		||||
    0x07, 0xe4, 0x24, 0x24, 0xc7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x04,
 | 
			
		||||
    0x05, 0x05, 0x02, 0x05, 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, 0x07, 0x88, 0x30, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
    0x80, 0x80, 0x40, 0x60, 0x30, 0x98, 0x08, 0x08, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x0f, 0x07, 0x03,
 | 
			
		||||
    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, 0xc1, 0x22, 0x24,
 | 
			
		||||
    0x24, 0xc4, 0x44, 0x22, 0x21, 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, 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, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1d, 0x01, 0x01,
 | 
			
		||||
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 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, 0x03, 0x02, 0x02,
 | 
			
		||||
    0x02, 0x03, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
 | 
			
		||||
  };
 | 
			
		||||
  oled_write_raw_P(light_logo, sizeof(light_logo));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void oled_task_user(void) {
 | 
			
		||||
  switch (get_highest_layer(layer_state)) {
 | 
			
		||||
    case 0:
 | 
			
		||||
      render_rocket_logo();
 | 
			
		||||
      break;
 | 
			
		||||
    case 1:
 | 
			
		||||
      render_warzone_logo();
 | 
			
		||||
      break;
 | 
			
		||||
    case 2:
 | 
			
		||||
      render_light_logo();
 | 
			
		||||
      break;
 | 
			
		||||
    default:
 | 
			
		||||
      // Or use the write_ln shortcut over adding '\n' to the end of your string
 | 
			
		||||
      oled_write_ln_P(PSTR(" UND"), false);
 | 
			
		||||
      break;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										2
									
								
								keyboards/ungodly/launch_pad/keymaps/warzone/rules.mk
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								keyboards/ungodly/launch_pad/keymaps/warzone/rules.mk
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,2 @@
 | 
			
		|||
VIA_ENABLE = yes
 | 
			
		||||
TAP_DANCE_ENABLE = yes
 | 
			
		||||
| 
						 | 
				
			
			@ -42,20 +42,3 @@ led_config_t g_led_config = { {
 | 
			
		|||
    2, 2
 | 
			
		||||
} };
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
void eeconfig_init_kb(void) {
 | 
			
		||||
#ifdef RGBLIGHT_ENABLE
 | 
			
		||||
    rgblight_enable();             // Enable RGB by default
 | 
			
		||||
    rgblight_sethsv(0, 255, 255);  // Set default HSV - red hue, full saturation, full brightness
 | 
			
		||||
#    ifdef RGBLIGHT_ANIMATIONS
 | 
			
		||||
    rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 2);  // set to RGB_RAINBOW_SWIRL by default
 | 
			
		||||
#    endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef RGB_MATRIX_ENABLE
 | 
			
		||||
    rgb_matrix_enable();  // Enable RGB by default
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
    eeconfig_update_kb(0);
 | 
			
		||||
    eeconfig_init_user();
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -22,11 +22,9 @@ Numpad Layout             |  5x4 Layout
 | 
			
		|||
  |  
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
|Reset Bootloader|   |
 | 
			
		||||
|---|---|
 | 
			
		||||
|Use tweezers to short the two bottom pins of the J-Link pinout.||
 | 
			
		||||
 | 
			
		||||
* Keyboard Maintainer: [Luis Godinez](https://github.com/luis-Godinez)
 | 
			
		||||
 | 
			
		||||
* Keyboard Maintainer: [Luis Godinez](https://github.com/luis-godinez)
 | 
			
		||||
* Hardware Supported: Launch Pad PCB
 | 
			
		||||
* Hardware Availability: [Ungodly.Design](https://ungodly.design/products/launch-pad-pcb)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -35,3 +33,59 @@ Make example for this keyboard (after setting up your build environment):
 | 
			
		|||
    make ungodly/launch_pad:default
 | 
			
		||||
 | 
			
		||||
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).
 | 
			
		||||
 | 
			
		||||
# Firmware
 | 
			
		||||
- [v1.0](https://github.com/luis-godinez/qmk_firmware/releases/tag/launch_pad)
 | 
			
		||||
 | 
			
		||||
# Reset Bootloader
 | 
			
		||||
 | 
			
		||||
<table>
 | 
			
		||||
	<tr>
 | 
			
		||||
		<td>Use tweezers to short the two bottom pins of the J-Link pinout.</td>
 | 
			
		||||
		<td><img src="https://i.imgur.com/ArSIcK0.pngl" width="300"/></td>
 | 
			
		||||
	</tr>
 | 
			
		||||
</table>
 | 
			
		||||
 | 
			
		||||
# Midi Setup
 | 
			
		||||
 | 
			
		||||
<table>
 | 
			
		||||
    <tr>
 | 
			
		||||
        <th>Windows</th>
 | 
			
		||||
        <th>Mac</th>
 | 
			
		||||
    </tr>
 | 
			
		||||
    <tr>
 | 
			
		||||
    	<td valign="top">
 | 
			
		||||
    	<ul>
 | 
			
		||||
    	    <li>Midi Mixer</li>
 | 
			
		||||
        	<ul>
 | 
			
		||||
            	<li><a href="https://github.com/jpwilliams/midi-mixer-releases/releases">Download the latest version of Midi Mixer</a></li>
 | 
			
		||||
            	<li>Run the exe to install the application.</li><li>Launch the MIDI Mixer application.</li>
 | 
			
		||||
            	<li>Navigate to the "Profiles" tab and select the "Ungodly Design Launch Pad" preset.</li>
 | 
			
		||||
            	<li>Navigate to the "Groups" tab and select the audio source you would like to control.
 | 
			
		||||
            	<br><img src="https://imgur.com/MmdDcTm.pngl" alt="Midi Mixer" width="800"></li>
 | 
			
		||||
            	<li>Optionally, Navigate to the "Settings" tab and enable/disable "Logarithmic volume curve".</li>
 | 
			
		||||
        	</ul>
 | 
			
		||||
    	</ul>
 | 
			
		||||
    	</td>
 | 
			
		||||
    	<td valign="top">
 | 
			
		||||
        	<ul>
 | 
			
		||||
            	<li><a href="https://rsjaffe.github.io/MIDI2LR/">Midi2Lightroom</a></li>
 | 
			
		||||
            	<li><a href="https://www.orderedbytes.com/controllermate/">ControllerMate</a></li>
 | 
			
		||||
        	</ul>
 | 
			
		||||
    	</td>
 | 
			
		||||
    </tr>
 | 
			
		||||
</table>
 | 
			
		||||
 | 
			
		||||
# Custom OLED Displays
 | 
			
		||||
 | 
			
		||||
Layer | Graphic
 | 
			
		||||
:----:|:----:
 | 
			
		||||
home  |  
 | 
			
		||||
nav  |  
 | 
			
		||||
rgb  |  
 | 
			
		||||
 | 
			
		||||
* These instructions require compiling your own firmware. [Ensure that your build environenment is setup](https://beta.docs.qmk.fm/tutorial/newbs_getting_started).
 | 
			
		||||
* Use [QMK Logo Editor](https://joric.github.io/qle/) to create your own LCD graphics.
 | 
			
		||||
* Copy the generated output into your keymap ([sample code](https://github.com/qmk/qmk_firmware/blob/master/keyboards/ungodly/launch_pad/keymaps/default/keymap.c))
 | 
			
		||||
    * Note: By default, the LCD is configured as a vertical display with a 180 degree rotation. You may need to change the `OLED_ROTATION` value in the `keymap.c` to achieve your desired effect.
 | 
			
		||||
* Compile the firmware and flash it to your launch pad.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,4 +0,0 @@
 | 
			
		|||
#pragma once
 | 
			
		||||
 | 
			
		||||
#define LEADER_TIMEOUT 250
 | 
			
		||||
#define LEADER_PER_KEY_TIMING
 | 
			
		||||
| 
						 | 
				
			
			@ -1,175 +0,0 @@
 | 
			
		|||
/*
 | 
			
		||||
Copyright 2020 Jacob Jerrell <jacob.jerrell@gmail.com> @JacobJerrell
 | 
			
		||||
 | 
			
		||||
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 "bocaj.h"
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * The `LAYOUT_ergodox_pretty_base` macro is a template to allow the use of
 | 
			
		||||
 * identical modifiers for the default layouts (eg QWERTY, Colemak, Dvorak,
 | 
			
		||||
 * etc), so that there is no need to set them up for each layout, and modify
 | 
			
		||||
 * all of them if I want to change them.  This helps to keep consistency and
 | 
			
		||||
 * ease of use. K## is a placeholder to pass through the individual keycodes
 | 
			
		||||
 */
 | 
			
		||||
#define LAYOUT_ergodox_bocaj(...)       WRAPPER_ergodox_bocaj(__VA_ARGS__)
 | 
			
		||||
#define LAYOUT_ergodox_bocaj_WIN(...)   WRAPPER_ergodox_bocaj_WIN(__VA_ARGS__)
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
 | 
			
		||||
    [_WORKMAN] = LAYOUT_ergodox_bocaj(
 | 
			
		||||
        KC_ESC, ________________NUMBER_LEFT________________, KC_ARRW,     KC_MINS, ________________NUMBER_RIGHT_______________, KC_EQUAL,
 | 
			
		||||
        KC_DEL, _________________WORKMAN_L1________________, KC_LPRN,     KC_RPRN, _________________WORKMAN_R1________________, KC_BSLS,
 | 
			
		||||
       _______, _________________WORKMAN_L2________________,                       _________________WORKMAN_R2________________, KC_QUOT,
 | 
			
		||||
       KC_LSFT, _________________WORKMAN_L3________________, KC_LBRC,     KC_RBRC, _________________WORKMAN_R3________________, _______,
 | 
			
		||||
        MO_MOD, KC_PGUP, KC_HOME, KC_UP, KC_LEFT,                                          KC_RIGHT, KC_DOWN, KC_END, KC_PGDN, WORKMAN,
 | 
			
		||||
                                              KC_APP,KC_HOME, /* <- LHS/RHS -> */ KC_END,KC_ESC,
 | 
			
		||||
                                                     KC_PGUP, /* <- LHS/RHS -> */ KC_PGDN,
 | 
			
		||||
                                  KC_SPACE,KC_BSPACE,KC_LEAD, /* <- LHS/RHS -> */ KC_LOCK,KC_TAB,KC_ENTER
 | 
			
		||||
    ),
 | 
			
		||||
 | 
			
		||||
    [_WWORKMAN] = LAYOUT_ergodox_bocaj_WIN(
 | 
			
		||||
        KC_ESC, ________________NUMBER_LEFT________________, KC_ARRW,     KC_MINS, ________________NUMBER_RIGHT_______________, KC_EQUAL,
 | 
			
		||||
        KC_DEL, _________________WORKMAN_L1________________, KC_LPRN,     KC_RPRN, _________________WORKMAN_R1________________, KC_BSLS,
 | 
			
		||||
       _______, _________________WORKMAN_L2________________,                       _________________WORKMAN_R2________________, KC_QUOT,
 | 
			
		||||
       KC_LSFT, _________________WORKMAN_L3________________, KC_LBRC,     KC_RBRC, _________________WORKMAN_R3________________, _______,
 | 
			
		||||
        MO_MOD, KC_PGUP, KC_HOME, KC_UP, KC_LEFT,                                          KC_RIGHT, KC_DOWN, KC_END, KC_PGDN, WORKMAN,
 | 
			
		||||
                                              KC_APP,KC_HOME, /* <- LHS/RHS -> */ KC_END,KC_ESC,
 | 
			
		||||
                                                     KC_PGUP, /* <- LHS/RHS -> */ KC_PGDN,
 | 
			
		||||
                                  KC_SPACE,KC_BSPACE,KC_LEAD, /* <- LHS/RHS -> */ KC_LOCK,KC_TAB,KC_ENTER
 | 
			
		||||
    ),
 | 
			
		||||
 | 
			
		||||
    [_LOWER] = LAYOUT_ergodox_bocaj(
 | 
			
		||||
        KC_GRV, _______, _______, _______, _______,  _______, _______,     _______, _______, _______, _______, _______, _______, _______,
 | 
			
		||||
       _______, _______, _______, KC_UP,   _______,  _______, _______,     _______, _______, KC_7,    KC_8,    KC_9,    KC_BSLS, _______,
 | 
			
		||||
       _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______,                       _______, KC_4,    KC_5,    KC_6,    KC_ASTR, _______,
 | 
			
		||||
       _______, _______, _______, _______, _______,  _______, _______,     _______, _______, KC_1,    KC_2,    KC_3,    KC_PLUS, _______,
 | 
			
		||||
       _______, _______, _______, _______,  _______,                                         KC_0,    KC_DOT,  KC_COMM, KC_MINS, _______,
 | 
			
		||||
                                               KC_APP,KC_HOME, /* <- LHS/RHS -> */ KC_END,KC_ESC,
 | 
			
		||||
                                                      KC_PGUP, /* <- LHS/RHS -> */ KC_PGDN,
 | 
			
		||||
                                   KC_SPACE,KC_BSPACE,KC_LEAD, /* <- LHS/RHS -> */ KC_LOCK,KC_TAB,KC_ENTER
 | 
			
		||||
    ),
 | 
			
		||||
 | 
			
		||||
    [_RAISE] = LAYOUT_ergodox_bocaj(
 | 
			
		||||
        KC_TILD, _________________RAISE_L1__________________, _______,         _______, _________________RAISE_R1__________________, _______,
 | 
			
		||||
         KC_F11, _________________RAISE_L2__________________, _______,         _______, _________________RAISE_R2__________________, KC_F12,
 | 
			
		||||
        _______, _________________RAISE_L3__________________,                           _________________RAISE_R3__________________, _______,
 | 
			
		||||
        _______, _______, KC_MRWD, KC_MPLY, KC_MFFD, _______, _______,         _______, ___________________BLANK___________________, _______,
 | 
			
		||||
        ___________________BLANK___________________,                                             ___________________BLANK___________________,
 | 
			
		||||
                                                 KC_APP,KC_HOME, /* <- LHS/RHS -> */ KC_END,KC_ESC,
 | 
			
		||||
                                                        KC_PGUP, /* <- LHS/RHS -> */ KC_PGDN,
 | 
			
		||||
                                     KC_SPACE,KC_BSPACE,KC_LEAD, /* <- LHS/RHS -> */ KC_LOCK,KC_TAB,KC_ENTER
 | 
			
		||||
    ),
 | 
			
		||||
 | 
			
		||||
    [_ADJUST] = LAYOUT_ergodox_pretty(
 | 
			
		||||
        KC_MAKE, _______,  _______,     _______,   _______, _______, _______,       _______, _______, _______, _______, _______, _______, KC_RST,
 | 
			
		||||
        VRSN,    _______,  _______,     _______,   _______, _______, _______,       _______, _______, _______, _______, _______, _______, EEP_RST,
 | 
			
		||||
        _______, KC__MUTE, KC__VOLDOWN, KC__VOLUP, _______, KC_MNXT,                         _______, _______, _______, _______, _______, _______,
 | 
			
		||||
        _______, _______,  _______,     _______,   _______, _______, _______,       _______, _______, _______, _______, _______, _______, _______,
 | 
			
		||||
        _______, _______,  _______,     _______,   _______,                                           _______, _______, _______, _______, _______,
 | 
			
		||||
                                              KC_APP,KC_HOME, /* <- LHS/RHS -> */ KC_END,KC_ESC,
 | 
			
		||||
                                                     KC_PGUP, /* <- LHS/RHS -> */ KC_PGDN,
 | 
			
		||||
                                  KC_SPACE,KC_BSPACE,KC_LEAD, /* <- LHS/RHS -> */ KC_LOCK,KC_TAB,KC_ENTER
 | 
			
		||||
    ),
 | 
			
		||||
 | 
			
		||||
    // Wrapping Mouse-Wheel Keys with `X_T()` style functions seems
 | 
			
		||||
    // to break the mouse button. So we can't use the wrapper here.
 | 
			
		||||
    [_MOD] = LAYOUT_ergodox_pretty(
 | 
			
		||||
        _______, _______, _______, _______, _______, _______, _______,           _______, _______, _______, _______, _______, _______, _______,
 | 
			
		||||
        _______, _______, _______, KC_WH_D, _______, _______, _______,           _______, _______, _______, KC_MS_U, _______, _______, _______,
 | 
			
		||||
        _______, _______, KC_WH_L, KC_WH_U, KC_WH_R, _______,                             _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______, _______, _______, _______,           _______, _______, _______, _______, _______, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______, KC_ACL0,                                               KC_ACL1, KC_ACL2, _______, _______, _______,
 | 
			
		||||
                                                 _______,_______, /* <- LHS/RHS -> */ _______,_______,
 | 
			
		||||
                                                         _______, /* <- LHS/RHS -> */ _______,
 | 
			
		||||
                                         KC_BTN1,KC_BTN2,_______, /* <- LHS/RHS -> */ _______,KC_BTN3,KC_BTN4
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
// clang-format on
 | 
			
		||||
 | 
			
		||||
bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
 | 
			
		||||
    return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void matrix_init_keymap(void) {};
 | 
			
		||||
 | 
			
		||||
// Runs whenever there is a layer state change.
 | 
			
		||||
layer_state_t layer_state_set_keymap(layer_state_t state) {
 | 
			
		||||
    ergodox_board_led_off();
 | 
			
		||||
    ergodox_right_led_1_off();
 | 
			
		||||
    ergodox_right_led_2_off();
 | 
			
		||||
    ergodox_right_led_3_off();
 | 
			
		||||
 | 
			
		||||
    uint8_t layer = get_highest_layer(state);
 | 
			
		||||
    switch (layer) {
 | 
			
		||||
        case _LOWER:
 | 
			
		||||
            ergodox_right_led_3_on();
 | 
			
		||||
            break;
 | 
			
		||||
        case _MOD:
 | 
			
		||||
            ergodox_right_led_2_on();
 | 
			
		||||
            break;
 | 
			
		||||
        case _RAISE:
 | 
			
		||||
            ergodox_right_led_1_on();
 | 
			
		||||
            break;
 | 
			
		||||
        case _ADJUST:
 | 
			
		||||
            ergodox_right_led_1_on();
 | 
			
		||||
            ergodox_right_led_2_on();
 | 
			
		||||
            break;
 | 
			
		||||
        default:
 | 
			
		||||
            break;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    ergodox_right_led_1_set(25);
 | 
			
		||||
    ergodox_right_led_2_set(25);
 | 
			
		||||
    ergodox_right_led_3_set(25);
 | 
			
		||||
 | 
			
		||||
    return state;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
void matrix_scan_keymap(void) {
 | 
			
		||||
    uint8_t modifiers = get_mods();
 | 
			
		||||
    uint8_t led_usb_state = host_keyboard_leds();
 | 
			
		||||
    uint8_t one_shot = get_oneshot_mods();
 | 
			
		||||
    uint8_t layer_is_workman = layer_state_is(_WORKMAN);
 | 
			
		||||
 | 
			
		||||
    if ((modifiers) && (layer_is_workman)) {
 | 
			
		||||
        if (modifiers & MODS_SHIFT_MASK || led_usb_state & (1<<USB_LED_CAPS_LOCK) || one_shot & MODS_SHIFT_MASK) {
 | 
			
		||||
            ergodox_right_led_1_on();
 | 
			
		||||
            ergodox_right_led_1_set( 25 );
 | 
			
		||||
        } else {
 | 
			
		||||
            ergodox_right_led_1_off();
 | 
			
		||||
        }
 | 
			
		||||
        if ((modifiers & MODS_CTRL_MASK || one_shot & MODS_CTRL_MASK) && (modifiers & MODS_GUI_MASK || one_shot & MODS_GUI_MASK)) {
 | 
			
		||||
            ergodox_right_led_2_on();
 | 
			
		||||
            ergodox_right_led_2_set( 50 );
 | 
			
		||||
        } else if ((modifiers & MODS_CTRL_MASK || one_shot & MODS_CTRL_MASK) || (modifiers & MODS_GUI_MASK || one_shot & MODS_GUI_MASK)) {
 | 
			
		||||
            ergodox_right_led_2_on();
 | 
			
		||||
            ergodox_right_led_2_set( 10 );
 | 
			
		||||
        } else {
 | 
			
		||||
            ergodox_right_led_2_off();
 | 
			
		||||
        }
 | 
			
		||||
        if (modifiers & MODS_ALT_MASK || one_shot & MODS_ALT_MASK) {
 | 
			
		||||
            ergodox_right_led_3_on();
 | 
			
		||||
            ergodox_right_led_3_set( 10 );
 | 
			
		||||
        } else {
 | 
			
		||||
            ergodox_right_led_3_off();
 | 
			
		||||
        }
 | 
			
		||||
    } else if (!(modifiers) && (layer_is_workman)) {
 | 
			
		||||
        ergodox_right_led_1_off();
 | 
			
		||||
        ergodox_right_led_2_off();
 | 
			
		||||
        ergodox_right_led_3_off();
 | 
			
		||||
    }
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			@ -1,28 +0,0 @@
 | 
			
		|||
# Overview
 | 
			
		||||
 | 
			
		||||
This is my personal Ergodox EZ configuration, and my daily driver.
 | 
			
		||||
 | 
			
		||||
Most of the code resides in my userspace and is heavily based upon [Drashna's work](https://github.com/qmk/qmk_firmware/tree/master/users/drashna)... although considerably slimmed down.
 | 
			
		||||
 | 
			
		||||
## How to build
 | 
			
		||||
 | 
			
		||||
Put simply:
 | 
			
		||||
`make ergodox_ez:bocaj`
 | 
			
		||||
 | 
			
		||||
On that note, I use a separate workspace when making changes to my layouts or userspace. In that repo, there is a tool that does this for me. See [JacobJerrell/qmk_layouts/tools/](https://github.com/JacobJerrell/qmk_layouts/tree/master/tools)
 | 
			
		||||
 | 
			
		||||
## Layers
 | 
			
		||||
 | 
			
		||||
* WORKMAN: No one uses this board but me and I've never had a reason to switch to QWERTY
 | 
			
		||||
* LOWER:
 | 
			
		||||
  * Left: Grave and navigation arrows
 | 
			
		||||
  * Right: Numpad
 | 
			
		||||
* RAISE:
 | 
			
		||||
  * Symbols across the top, F-Keys on the second row
 | 
			
		||||
* ADJUST
 | 
			
		||||
  * Audio control, make/reset/version macros
 | 
			
		||||
* MOD: mouse navigation
 | 
			
		||||
 | 
			
		||||
## Ergodox Specifics
 | 
			
		||||
 | 
			
		||||
I don't have the underglow or backlit versions so the 3 LEDs on the right board are used for layer indication if not on the base layer. If you're on the base layer, they're used for mod-key indicators.
 | 
			
		||||
| 
						 | 
				
			
			@ -1,14 +0,0 @@
 | 
			
		|||
BOOTMAGIC_ENABLE = lite     # Enable Bootmagic Lite
 | 
			
		||||
TAP_DANCE_ENABLE   = no
 | 
			
		||||
COMMAND_ENABLE     = no  # Commands for debug and configuration
 | 
			
		||||
CONSOLE_ENABLE 	   = yes
 | 
			
		||||
SPACE_CADET_ENABLE = no
 | 
			
		||||
KEY_LOCK_ENABLE    = yes
 | 
			
		||||
MOUSEKEY_ENABLE    = yes
 | 
			
		||||
EXTRAKEY_ENABLE	   = yes
 | 
			
		||||
LEADER_ENABLE	   = yes
 | 
			
		||||
 | 
			
		||||
UNICODE_ENABLE     = no
 | 
			
		||||
UNICODEMAP_ENABLE  = no
 | 
			
		||||
RGB_MATRIX_ENABLE  = no
 | 
			
		||||
RGBLIGHT_ENABLE    = no
 | 
			
		||||
							
								
								
									
										21
									
								
								layouts/community/ergodox/jjerrell/config.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								layouts/community/ergodox/jjerrell/config.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,21 @@
 | 
			
		|||
// Copyright (C) 2021 Jerrell, Jacob <@jjerrell>
 | 
			
		||||
// 
 | 
			
		||||
// This file is part of qmk_firmware.
 | 
			
		||||
// 
 | 
			
		||||
// qmk_firmware 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 3 of the License, or
 | 
			
		||||
// (at your option) any later version.
 | 
			
		||||
// 
 | 
			
		||||
// qmk_firmware 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 qmk_firmware.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 | 
			
		||||
#ifdef KEYBOARD_ergodox_ez
 | 
			
		||||
#undef   PRODUCT
 | 
			
		||||
#define  PRODUCT  ErgoDox EZ - Modified by <@jjerrell>
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										129
									
								
								layouts/community/ergodox/jjerrell/keymap.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										129
									
								
								layouts/community/ergodox/jjerrell/keymap.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,129 @@
 | 
			
		|||
/**
 | 
			
		||||
 * Copyright (C) 2021 Jerrell, Jacob <@jjerrell>
 | 
			
		||||
 * 
 | 
			
		||||
 * This file is part of qmk_firmware.
 | 
			
		||||
 * 
 | 
			
		||||
 * qmk_firmware 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 3 of the License, or
 | 
			
		||||
 * (at your option) any later version.
 | 
			
		||||
 * 
 | 
			
		||||
 * qmk_firmware 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 qmk_firmware.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "jjerrell.h"
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
    // clang-format off
 | 
			
		||||
    [_WORKMAN] = LAYOUT_ergodox_mods(
 | 
			
		||||
        __________________WORKMN_L1__________________, __________________WORKMN_R1__________________,
 | 
			
		||||
        __________________WORKMN_L2__________________, __________________WORKMN_R2__________________,
 | 
			
		||||
        __________________WORKMN_L3__________________, __________________WORKMN_R3__________________,
 | 
			
		||||
        XXXXXXX, XXXXXXX, XXXXXXX, KC_LSFT,                       KC_RSFT, XXXXXXX, XXXXXXX, XXXXXXX
 | 
			
		||||
    ),
 | 
			
		||||
    /* Lower - Nav/Select/Nums */
 | 
			
		||||
    [_LOWER] = LAYOUT_ergodox_mods(
 | 
			
		||||
        __________________LOWER_L1___________________, __________________LOWER_R1___________________,
 | 
			
		||||
        __________________LOWER_L2___________________, __________________LOWER_R2___________________,
 | 
			
		||||
        __________________LOWER_L3___________________, __________________LOWER_R3___________________,
 | 
			
		||||
          XXXXXXX, XXXXXXX, XXXXXXX, KC_LSFT,                         KC_0, KC_DOT, KC_COMM, KC_PLUS
 | 
			
		||||
    ),
 | 
			
		||||
    /* Raise - Symbols */
 | 
			
		||||
    [_RAISE] = LAYOUT_ergodox_common(
 | 
			
		||||
        __________________RAISE_L1___________________, __________________RAISE_R1___________________,
 | 
			
		||||
        __________________RAISE_L2___________________, __________________RAISE_R2___________________,
 | 
			
		||||
        __________________RAISE_L3___________________, __________________RAISE_R3___________________,
 | 
			
		||||
        XXXXXXX, XXXXXXX, XXXXXXX, KC_LSFT,                       KC_RSFT, XXXXXXX, XXXXXXX, XXXXXXX
 | 
			
		||||
    ),
 | 
			
		||||
    /* Adjust (Lower + Raise) */
 | 
			
		||||
    [_ADJUST] = LAYOUT_ergodox_common(
 | 
			
		||||
         __________________ADJUST_L1__________________, __________________ADJUST_R1__________________,
 | 
			
		||||
         __________________ADJUST_L2__________________, __________________ADJUST_R2__________________,
 | 
			
		||||
         __________________ADJUST_L3__________________, __________________ADJUST_R3__________________,
 | 
			
		||||
         XXXXXXX, XXXXXXX, XXXXXXX, KC_LSFT,                       KC_RSFT, XXXXXXX, XXXXXXX, XXXXXXX
 | 
			
		||||
    ),
 | 
			
		||||
    [_SPECIAL] = LAYOUT_ergodox_common(
 | 
			
		||||
        XXXXXXX, XXXXXXX, KC_WH_D, XXXXXXX, XXXXXXX,     XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
 | 
			
		||||
        XXXXXXX, KC_WH_L, KC_WH_U, KC_WH_R, XXXXXXX,     XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
 | 
			
		||||
        XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,     XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
 | 
			
		||||
        XXXXXXX, XXXXXXX, XXXXXXX, KC_LALT,                       KC_RALT, XXXXXXX, XXXXXXX, XXXXXXX
 | 
			
		||||
    )
 | 
			
		||||
// clang-format on
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#ifdef KEYBOARD_ergodox_ez
 | 
			
		||||
// Runs whenever there is a layer state change.
 | 
			
		||||
layer_state_t layer_state_set_keymap(layer_state_t state) {
 | 
			
		||||
    ergodox_board_led_off();
 | 
			
		||||
    ergodox_right_led_1_off();
 | 
			
		||||
    ergodox_right_led_2_off();
 | 
			
		||||
    ergodox_right_led_3_off();
 | 
			
		||||
 | 
			
		||||
    uint8_t layer = get_highest_layer(state);
 | 
			
		||||
    switch (layer) {
 | 
			
		||||
        case _LOWER:
 | 
			
		||||
            ergodox_right_led_3_on();
 | 
			
		||||
            break;
 | 
			
		||||
        case _RAISE:
 | 
			
		||||
            ergodox_right_led_1_on();
 | 
			
		||||
            break;
 | 
			
		||||
        case _ADJUST:
 | 
			
		||||
            ergodox_right_led_1_on();
 | 
			
		||||
            ergodox_right_led_2_on();
 | 
			
		||||
            ergodox_right_led_3_on();
 | 
			
		||||
            break;
 | 
			
		||||
        case _SPECIAL:
 | 
			
		||||
            ergodox_right_led_2_on();
 | 
			
		||||
            break;
 | 
			
		||||
        default:
 | 
			
		||||
            break;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    ergodox_right_led_1_set(25);
 | 
			
		||||
    ergodox_right_led_2_set(25);
 | 
			
		||||
    ergodox_right_led_3_set(25);
 | 
			
		||||
 | 
			
		||||
    return state;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
void matrix_scan_keymap(void) {
 | 
			
		||||
    uint8_t modifiers = get_mods();
 | 
			
		||||
    uint8_t led_usb_state = host_keyboard_leds();
 | 
			
		||||
    uint8_t one_shot = get_oneshot_mods();
 | 
			
		||||
    uint8_t layer_is_workman = layer_state_is(_WORKMAN);
 | 
			
		||||
 | 
			
		||||
    if ((modifiers) && (layer_is_workman)) {
 | 
			
		||||
        if (modifiers & MOD_MASK_SHIFT || led_usb_state & (1<<USB_LED_CAPS_LOCK) || one_shot & MOD_MASK_SHIFT) {
 | 
			
		||||
            ergodox_right_led_1_on();
 | 
			
		||||
            ergodox_right_led_1_set( 25 );
 | 
			
		||||
        } else {
 | 
			
		||||
            ergodox_right_led_1_off();
 | 
			
		||||
        }
 | 
			
		||||
        if ((modifiers & MOD_MASK_CTRL || one_shot & MOD_MASK_CTRL) && (modifiers & MOD_MASK_GUI || one_shot & MOD_MASK_GUI)) {
 | 
			
		||||
            ergodox_right_led_2_on();
 | 
			
		||||
            ergodox_right_led_2_set( 50 );
 | 
			
		||||
        } else if ((modifiers & MOD_MASK_CTRL || one_shot & MOD_MASK_CTRL) || (modifiers & MOD_MASK_GUI || one_shot & MOD_MASK_GUI)) {
 | 
			
		||||
            ergodox_right_led_2_on();
 | 
			
		||||
            ergodox_right_led_2_set( 10 );
 | 
			
		||||
        } else {
 | 
			
		||||
            ergodox_right_led_2_off();
 | 
			
		||||
        }
 | 
			
		||||
        if (modifiers & MOD_MASK_ALT || one_shot & MOD_MASK_ALT) {
 | 
			
		||||
            ergodox_right_led_3_on();
 | 
			
		||||
            ergodox_right_led_3_set( 10 );
 | 
			
		||||
        } else {
 | 
			
		||||
            ergodox_right_led_3_off();
 | 
			
		||||
        }
 | 
			
		||||
    } else if (layer_is_workman) {
 | 
			
		||||
        ergodox_right_led_1_off();
 | 
			
		||||
        ergodox_right_led_2_off();
 | 
			
		||||
        ergodox_right_led_3_off();
 | 
			
		||||
    }
 | 
			
		||||
};
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										5
									
								
								layouts/community/ergodox/jjerrell/readme.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								layouts/community/ergodox/jjerrell/readme.md
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,5 @@
 | 
			
		|||
# Jacob Jerrell's Ergodox Layout
 | 
			
		||||
 | 
			
		||||
This is my original QMK keyboard. There isn't much to see here aside from some control over the 3 ergodox_right LEDs for layer & modifier indication.
 | 
			
		||||
 | 
			
		||||
The bulk of the functionality is implemented in [my userspace](../../../../users/jjerrell) so it can be shared among my other keyboards.
 | 
			
		||||
							
								
								
									
										14
									
								
								layouts/community/ergodox/jjerrell/rules.mk
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								layouts/community/ergodox/jjerrell/rules.mk
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,14 @@
 | 
			
		|||
BOOTMAGIC_ENABLE = lite
 | 
			
		||||
TAP_DANCE_ENABLE = no
 | 
			
		||||
COMMAND_ENABLE = no
 | 
			
		||||
CONSOLE_ENABLE = yes
 | 
			
		||||
SPACE_CADET_ENABLE = no
 | 
			
		||||
KEY_LOCK_ENABLE = no
 | 
			
		||||
MOUSEKEY_ENABLE = yes
 | 
			
		||||
EXTRAKEY_ENABLE = yes
 | 
			
		||||
LEADER_ENABLE = yes
 | 
			
		||||
 | 
			
		||||
UNICODE_ENABLE = no
 | 
			
		||||
UNICODEMAP_ENABLE = no
 | 
			
		||||
RGB_MATRIX_ENABLE = no
 | 
			
		||||
RGBLIGHT_ENABLE = no
 | 
			
		||||
| 
						 | 
				
			
			@ -1,106 +0,0 @@
 | 
			
		|||
#pragma once
 | 
			
		||||
 | 
			
		||||
#define LEADER_TIMEOUT 250
 | 
			
		||||
#define LEADER_PER_KEY_TIMING
 | 
			
		||||
 | 
			
		||||
#if defined(RGBLIGHT_ENABLE) && !defined(RGBLED_NUM)
 | 
			
		||||
#    if defined(KEYBOARD_planck_light)
 | 
			
		||||
#        define RGB_DI_PIN A0
 | 
			
		||||
#        define RGBLED_NUM 13  // Number of LEDs
 | 
			
		||||
#    endif
 | 
			
		||||
#    define RGBLIGHT_HUE_STEP 12
 | 
			
		||||
#    define RGBLIGHT_SAT_STEP 12
 | 
			
		||||
#    define RGBLIGHT_VAL_STEP 12
 | 
			
		||||
#    define RGBLIGHT_EFFECT_KNIGHT_LENGTH 2
 | 
			
		||||
#    define RGBLIGHT_EFFECT_SNAKE_LENGTH 2
 | 
			
		||||
#    ifdef RGB_MATRIX_ENABLE
 | 
			
		||||
#        define RGBLIGHT_DISABLE_KEYCODES
 | 
			
		||||
#    endif
 | 
			
		||||
#endif  // RGBLIGHT_ENABLE
 | 
			
		||||
 | 
			
		||||
#ifdef RGB_MATRIX_ENABLE
 | 
			
		||||
#    define RGB_MATRIX_KEYPRESSES  // reacts to keypresses (will slow down matrix scan by a lot)
 | 
			
		||||
// #define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (not recommened)
 | 
			
		||||
#    define RGB_MATRIX_FRAMEBUFFER_EFFECTS
 | 
			
		||||
// #define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
 | 
			
		||||
// #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255
 | 
			
		||||
#    define RGB_DISABLE_WHEN_USB_SUSPENDED  // turn off effects when suspended
 | 
			
		||||
#    undef RGB_MATRIX_LED_PROCESS_LIMIT
 | 
			
		||||
#    undef RGB_MATRIX_LED_FLUSH_LIMIT
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(KEYBOARD_planck_ez)
 | 
			
		||||
#    undef PRODUCT
 | 
			
		||||
#    define PRODUCT Bocaj Hacked Planck EZ
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define EEPROM_I2C_RM24C512C
 | 
			
		||||
 | 
			
		||||
#define ENCODER_DIRECTION_FLIP
 | 
			
		||||
/*
 | 
			
		||||
 * MIDI options
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/* enable basic MIDI features:
 | 
			
		||||
   - MIDI notes can be sent when in Music mode is on
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
// #define MIDI_BASIC
 | 
			
		||||
 | 
			
		||||
/* enable advanced MIDI features:
 | 
			
		||||
   - MIDI notes can be added to the keymap
 | 
			
		||||
   - Octave shift and transpose
 | 
			
		||||
   - Virtual sustain, portamento, and modulation wheel
 | 
			
		||||
   - etc.
 | 
			
		||||
*/
 | 
			
		||||
//#define MIDI_ADVANCED
 | 
			
		||||
 | 
			
		||||
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
 | 
			
		||||
//#define MIDI_TONE_KEYCODE_OCTAVES 2
 | 
			
		||||
 | 
			
		||||
#define FB_ERM_LRA 1     /* For ERM:0 or LRA:1*/
 | 
			
		||||
#define FB_BRAKEFACTOR 6 /* For 1x:0, 2x:1, 3x:2, 4x:3, 6x:4, 8x:5, 16x:6, Disable Braking:7 */
 | 
			
		||||
#define FB_LOOPGAIN 1    /* For  Low:0, Medium:1, High:2, Very High:3 */
 | 
			
		||||
 | 
			
		||||
/* default 3V ERM vibration motor voltage and library*/
 | 
			
		||||
#if FB_ERM_LRA == 0
 | 
			
		||||
#    define RATED_VOLTAGE 3
 | 
			
		||||
#    define V_RMS 2.3
 | 
			
		||||
#    define V_PEAK 3.30
 | 
			
		||||
/* Library Selection */
 | 
			
		||||
#    define LIB_SELECTION 4 /* For Empty:0' TS2200 library A to D:1-5, LRA Library: 6 */
 | 
			
		||||
 | 
			
		||||
/* default 2V LRA voltage and library */
 | 
			
		||||
#elif FB_ERM_LRA == 1
 | 
			
		||||
#    define RATED_VOLTAGE 2
 | 
			
		||||
#    define V_RMS 2.0
 | 
			
		||||
#    define V_PEAK 2.85
 | 
			
		||||
#    define F_LRA 200
 | 
			
		||||
/* Library Selection */
 | 
			
		||||
#    define LIB_SELECTION 6 /* For Empty:0' TS2200 library A to D:1-5, LRA Library: 6 */
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* Control 1 register settings */
 | 
			
		||||
#define DRIVE_TIME 25
 | 
			
		||||
#define AC_COUPLE 0
 | 
			
		||||
#define STARTUP_BOOST 1
 | 
			
		||||
 | 
			
		||||
/* Control 2 Settings */
 | 
			
		||||
#define BIDIR_INPUT 1
 | 
			
		||||
#define BRAKE_STAB 1 /* Loopgain is reduced when braking is almost complete to improve stability */
 | 
			
		||||
#define SAMPLE_TIME 3
 | 
			
		||||
#define BLANKING_TIME 1
 | 
			
		||||
#define IDISS_TIME 1
 | 
			
		||||
 | 
			
		||||
/* Control 3 settings */
 | 
			
		||||
#define NG_THRESH 2
 | 
			
		||||
#define ERM_OPEN_LOOP 1
 | 
			
		||||
#define SUPPLY_COMP_DIS 0
 | 
			
		||||
#define DATA_FORMAT_RTO 0
 | 
			
		||||
#define LRA_DRIVE_MODE 0
 | 
			
		||||
#define N_PWM_ANALOG 0
 | 
			
		||||
#define LRA_OPEN_LOOP 0
 | 
			
		||||
/* Control 4 settings */
 | 
			
		||||
#define ZC_DET_TIME 0
 | 
			
		||||
#define AUTO_CAL_TIME 3
 | 
			
		||||
| 
						 | 
				
			
			@ -1,287 +0,0 @@
 | 
			
		|||
/*
 | 
			
		||||
Copyright 2020 Jacob Jerrell <jacob.jerrell@gmail.com> @JacobJerrell
 | 
			
		||||
 | 
			
		||||
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 "bocaj.h"
 | 
			
		||||
 | 
			
		||||
#ifdef BACKLIGHT_ENABLE
 | 
			
		||||
enum planck_keycodes {
 | 
			
		||||
    BACKLIT = NEW_SAFE_RANGE,
 | 
			
		||||
    TH_LVL,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#else
 | 
			
		||||
#    define BACKLIT OSM(MOD_LSFT)
 | 
			
		||||
enum planck_keycodes {
 | 
			
		||||
    TH_LVL = NEW_SAFE_RANGE,
 | 
			
		||||
};
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Tap/Hold Wrapper
 | 
			
		||||
 * ,-----------------------------------------------------------------------------------.
 | 
			
		||||
 * |      |      |      |      |      |      |      |      |      |      |      |      |
 | 
			
		||||
 * |------+------+------+------+------+------+------+------+------+------+------+------|
 | 
			
		||||
 * |      |      |Shift | Cmd  | Alt  |      |      | Alt  | Cmd  |Shift |      |      |
 | 
			
		||||
 * |------+------+------+------+------+------+------+------+------+------+------+------|
 | 
			
		||||
 * |      | Ctrl |      |      |      |      |      |      |      |      | Ctrl |      |
 | 
			
		||||
 * |------+------+------+------+------+------+------+------+------+------+------+------|
 | 
			
		||||
 * |      |      |      |      |Lower |             |Raise |      |      |      |      |
 | 
			
		||||
 * `-----------------------------------------------------------------------------------'
 | 
			
		||||
 */
 | 
			
		||||
#define LAYOUT_ortho_4x12_bocaj(...) WRAPPER_planck_bocaj(__VA_ARGS__)
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Base Alphanumeric Wrapper + Tap/Hold Wrapper
 | 
			
		||||
 * ,-----------------------------------------------------------------------------------.
 | 
			
		||||
 * |  Esc |      |      |      |      |      |      |      |      |      |      |  -   |
 | 
			
		||||
 * |------+------+------+------+------+------+------+------+------+------+------+------|
 | 
			
		||||
 * |  Tab |      |      |      |      | HYPR | MEH  |      |      |      |      |  '   |
 | 
			
		||||
 * |------+------+------+------+------+------+------+------+------+------+------+------|
 | 
			
		||||
 * | Shift|      |      |      |      |      |      |      |      |      |      | TTMOD|
 | 
			
		||||
 * |------+------+------+------+------+------+------+------+------+------+------+------|
 | 
			
		||||
 * | MOMOD| Lead |  Up  | Left |BkSpc |    Space    |Enter |Right | Down | XXX  | XXX  |
 | 
			
		||||
 * `-----------------------------------------------------------------------------------'
 | 
			
		||||
 */
 | 
			
		||||
#define LAYOUT_ortho_4x12_bocaj_base(...) WRAPPER_planck_bocaj_base(__VA_ARGS__)
 | 
			
		||||
#define LAYOUT_ortho_4x12_bocaj_base_WIN(...) WRAPPER_planck_bocaj_base_WIN(__VA_ARGS__)
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
 | 
			
		||||
  [_WORKMAN] = LAYOUT_ortho_4x12_bocaj_base(
 | 
			
		||||
    _________________WORKMAN_L1________________, _________________WORKMAN_R1________________,
 | 
			
		||||
    _________________WORKMAN_L2________________, _________________WORKMAN_R2________________,
 | 
			
		||||
    _________________WORKMAN_L3________________, _________________WORKMAN_R3________________
 | 
			
		||||
  ),
 | 
			
		||||
  [_WWORKMAN] = LAYOUT_ortho_4x12_bocaj_base_WIN(
 | 
			
		||||
    _________________WORKMAN_L1________________, _________________WORKMAN_R1________________,
 | 
			
		||||
    _________________WORKMAN_L2________________, _________________WORKMAN_R2________________,
 | 
			
		||||
    _________________WORKMAN_L3________________, _________________WORKMAN_R3________________
 | 
			
		||||
  ),
 | 
			
		||||
 | 
			
		||||
  [_QWERTY] = LAYOUT_ortho_4x12_bocaj_base(
 | 
			
		||||
    _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
 | 
			
		||||
    _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
 | 
			
		||||
    _________________QWERTY_L3_________________, _________________QWERTY_R3_________________
 | 
			
		||||
  ),
 | 
			
		||||
  [_WQWERTY] = LAYOUT_ortho_4x12_bocaj_base_WIN(
 | 
			
		||||
    _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
 | 
			
		||||
    _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
 | 
			
		||||
    _________________QWERTY_L3_________________, _________________QWERTY_R3_________________
 | 
			
		||||
  ),
 | 
			
		||||
 | 
			
		||||
  [_LOWER] = LAYOUT_ortho_4x12_bocaj(
 | 
			
		||||
    ___________________LOWER_L1_EXT____________________, ___________________LOWER_R1_EXT____________________,
 | 
			
		||||
    ___________________LOWER_L2_EXT____________________, ___________________LOWER_R2_EXT____________________,
 | 
			
		||||
    ___________________LOWER_L3_EXT____________________, ___________________LOWER_R3_EXT____________________,
 | 
			
		||||
    _______, _______, _______, _______, _______, _______,  _______, KC_0,  KC_DOT,  KC_COMM, _______, _______
 | 
			
		||||
  ),
 | 
			
		||||
 | 
			
		||||
  [_RAISE] = LAYOUT_ortho_4x12_bocaj(
 | 
			
		||||
    KC_TILD, _________________RAISE_L1__________________, _________________RAISE_R1__________________, KC_EQUAL,
 | 
			
		||||
    KC_F11,  _________________RAISE_L2__________________, _________________RAISE_R2__________________, KC_F12,
 | 
			
		||||
    _______, _________________RAISE_L3__________________, _________________RAISE_R3__________________, _______,
 | 
			
		||||
    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
 | 
			
		||||
  ),
 | 
			
		||||
 | 
			
		||||
  [_ADJUST] = WRAPPER_ortho_4x12(
 | 
			
		||||
    KC_MAKE, _________________ADJUST_L1_________________, _________________ADJUST_R1_________________, KC_RST,
 | 
			
		||||
    VRSN,    _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, EEP_RST,
 | 
			
		||||
    TH_LVL,  _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, RGB_IDL,
 | 
			
		||||
    HPT_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
 | 
			
		||||
  )
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
// clang-format on
 | 
			
		||||
 | 
			
		||||
bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
 | 
			
		||||
    switch (keycode) {
 | 
			
		||||
#ifdef BACKLIGHT_ENABLE
 | 
			
		||||
        case BACKLIT:
 | 
			
		||||
            if (record->event.pressed) {
 | 
			
		||||
                register_code(KC_RSFT);
 | 
			
		||||
#    ifdef BACKLIGHT_ENABLE
 | 
			
		||||
                backlight_step();
 | 
			
		||||
#    endif
 | 
			
		||||
            } else {
 | 
			
		||||
                unregister_code(KC_RSFT);
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef KEYBOARD_planck_ez
 | 
			
		||||
        case TH_LVL:
 | 
			
		||||
            if (record->event.pressed) {
 | 
			
		||||
                keyboard_config.led_level++;
 | 
			
		||||
                if (keyboard_config.led_level > 4) {
 | 
			
		||||
                    keyboard_config.led_level = 0;
 | 
			
		||||
                }
 | 
			
		||||
                planck_ez_right_led_level((uint8_t)keyboard_config.led_level * 255 / 4);
 | 
			
		||||
                planck_ez_left_led_level((uint8_t)keyboard_config.led_level * 255 / 4);
 | 
			
		||||
                eeconfig_update_kb(keyboard_config.raw);
 | 
			
		||||
                layer_state_set_kb(layer_state);
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
#endif
 | 
			
		||||
    }
 | 
			
		||||
    return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool music_mask_user(uint16_t keycode) {
 | 
			
		||||
    switch (keycode) {
 | 
			
		||||
        default:
 | 
			
		||||
            return true;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#ifdef RGB_MATRIX_ENABLE
 | 
			
		||||
 | 
			
		||||
// clang-format off
 | 
			
		||||
void suspend_power_down_keymap(void) {
 | 
			
		||||
    rgb_matrix_set_suspend_state(true);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void suspend_wakeup_init_keymap(void) {
 | 
			
		||||
    rgb_matrix_set_suspend_state(false);
 | 
			
		||||
}
 | 
			
		||||
// clang-format on
 | 
			
		||||
 | 
			
		||||
void rgb_matrix_indicators_user(void) {
 | 
			
		||||
    uint8_t this_mod = get_mods();
 | 
			
		||||
    uint8_t this_led = host_keyboard_leds();
 | 
			
		||||
    uint8_t this_osm = get_oneshot_mods();
 | 
			
		||||
    bool    is_ez;
 | 
			
		||||
#    ifdef KEYBOARD_planck_ez
 | 
			
		||||
    is_ez = true;
 | 
			
		||||
#    endif
 | 
			
		||||
 | 
			
		||||
    if (g_suspend_state || !rgb_matrix_config.enable) return;
 | 
			
		||||
 | 
			
		||||
#    if defined(RGBLIGHT_ENABLE)
 | 
			
		||||
    if (!userspace_config.rgb_layer_change)
 | 
			
		||||
#    else
 | 
			
		||||
    if (userspace_config.rgb_layer_change)
 | 
			
		||||
#    endif
 | 
			
		||||
    {
 | 
			
		||||
        switch (get_highest_layer(layer_state)) {
 | 
			
		||||
            case _MOD:
 | 
			
		||||
                rgb_matrix_layer_helper(HSV_ORANGE, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER);
 | 
			
		||||
                break;
 | 
			
		||||
            case _RAISE:
 | 
			
		||||
                rgb_matrix_layer_helper(HSV_BLUE, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER);
 | 
			
		||||
                break;
 | 
			
		||||
            case _LOWER:
 | 
			
		||||
                rgb_matrix_layer_helper(HSV_GREEN, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER);
 | 
			
		||||
                break;
 | 
			
		||||
            case _ADJUST:
 | 
			
		||||
                rgb_matrix_layer_helper(HSV_RED, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER);
 | 
			
		||||
                break;
 | 
			
		||||
            default: {
 | 
			
		||||
                bool mods_enabled = false;
 | 
			
		||||
                switch (get_highest_layer(default_layer_state)) {
 | 
			
		||||
                    case _QWERTY:
 | 
			
		||||
                        rgb_matrix_layer_helper(HSV_CYAN, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER);
 | 
			
		||||
                        break;
 | 
			
		||||
                    case _WQWERTY:
 | 
			
		||||
                        rgb_matrix_layer_helper(HSV_BLUE, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER);
 | 
			
		||||
                        break;
 | 
			
		||||
                    case _WORKMAN:
 | 
			
		||||
                        rgb_matrix_layer_helper(HSV_SPRINGGREEN, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER);
 | 
			
		||||
                        break;
 | 
			
		||||
                    case _WWORKMAN:
 | 
			
		||||
                        rgb_matrix_layer_helper(HSV_GREEN, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER);
 | 
			
		||||
                        break;
 | 
			
		||||
                }
 | 
			
		||||
                break;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    switch (get_highest_layer(default_layer_state)) {
 | 
			
		||||
        case _QWERTY:
 | 
			
		||||
            rgb_matrix_set_color(is_ez ? 41 : 42, 0x00, 0xFF, 0xFF);
 | 
			
		||||
            break;
 | 
			
		||||
        case _WORKMAN:
 | 
			
		||||
            rgb_matrix_set_color(is_ez ? 41 : 42, 0xD9, 0xA5, 0x21);
 | 
			
		||||
            break;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if ((this_mod | this_osm) & MODS_SHIFT_MASK || this_led & (1 << USB_LED_CAPS_LOCK)) {
 | 
			
		||||
        rgb_matrix_set_color_row(0, 0x00, 0xFF, 0x00);
 | 
			
		||||
    }
 | 
			
		||||
    if ((this_mod | this_osm) & MODS_CTRL_MASK && (this_mod | this_osm) & MODS_GUI_MASK) {
 | 
			
		||||
        rgb_matrix_set_color_row(1, 0xFF, 0xD9, 0xFF);
 | 
			
		||||
    } else if ((this_mod | this_osm) & MODS_CTRL_MASK) {
 | 
			
		||||
        rgb_matrix_set_color_row(1, 0xFF, 0x00, 0x00);
 | 
			
		||||
    } else if ((this_mod | this_osm) & MODS_GUI_MASK) {
 | 
			
		||||
        rgb_matrix_set_color_row(1, 0xFF, 0xD9, 0x00);
 | 
			
		||||
    }
 | 
			
		||||
    if ((this_mod | this_osm) & MODS_ALT_MASK) {
 | 
			
		||||
        rgb_matrix_set_color_row(2, 0x00, 0x00, 0xFF);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
#endif  // RGB_MATRIX_INIT
 | 
			
		||||
 | 
			
		||||
void matrix_init_keymap(void) {}
 | 
			
		||||
 | 
			
		||||
#ifdef ENCODER_ENABLE
 | 
			
		||||
bool encoder_update_user(uint8_t index, bool clockwise) {
 | 
			
		||||
    switch (get_highest_layer(layer_state)) {
 | 
			
		||||
        case _RAISE:
 | 
			
		||||
            clockwise ? tap_code(KC_VOLD) : tap_code(KC_VOLU);
 | 
			
		||||
            break;
 | 
			
		||||
        case _LOWER:
 | 
			
		||||
#    ifdef RGB_MATRIX_ENABLE
 | 
			
		||||
            clockwise ? rgb_matrix_step() : rgb_matrix_step_reverse();
 | 
			
		||||
#    else
 | 
			
		||||
            clockwise ? tap_code(KC_PGDN) : tap_code(KC_PGUP);
 | 
			
		||||
#    endif
 | 
			
		||||
            break;
 | 
			
		||||
        case _ADJUST:
 | 
			
		||||
#    ifdef AUDIO_CLICKY
 | 
			
		||||
            clockwise ? clicky_freq_up() : clicky_freq_down();
 | 
			
		||||
#    endif
 | 
			
		||||
            break;
 | 
			
		||||
        default:
 | 
			
		||||
            clockwise ? tap_code(KC_DOWN) : tap_code(KC_UP);
 | 
			
		||||
    }
 | 
			
		||||
#    ifdef AUDIO_CLICKY
 | 
			
		||||
    clicky_play();
 | 
			
		||||
#    endif
 | 
			
		||||
    return true;
 | 
			
		||||
}
 | 
			
		||||
#endif  // ENCODER_ENABLE
 | 
			
		||||
 | 
			
		||||
#ifdef KEYBOARD_planck_ez
 | 
			
		||||
layer_state_t layer_state_set_keymap(layer_state_t state) {
 | 
			
		||||
    planck_ez_left_led_off();
 | 
			
		||||
    planck_ez_right_led_off();
 | 
			
		||||
    switch (get_highest_layer(state)) {
 | 
			
		||||
        case _LOWER:
 | 
			
		||||
            planck_ez_left_led_on();
 | 
			
		||||
            break;
 | 
			
		||||
        case _RAISE:
 | 
			
		||||
            planck_ez_right_led_on();
 | 
			
		||||
            break;
 | 
			
		||||
        case _ADJUST:
 | 
			
		||||
            planck_ez_right_led_on();
 | 
			
		||||
            planck_ez_left_led_on();
 | 
			
		||||
            break;
 | 
			
		||||
        default:
 | 
			
		||||
            break;
 | 
			
		||||
    }
 | 
			
		||||
    return state;
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
Some files were not shown because too many files have changed in this diff Show more
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue