[Keyboard] Add Buzzard support (#15493)
* add buzzerd (untested, WIP) * configured linear actuator and fixed keymap * configuration tweaks and added custom keymap * add custom tapping term for home row mod * added readme * remove ionide folder * added scroll function to trackpoint * keymap reworked * using one shot shift and removed dynamic macros * reworked default keymap * adapted to latest qmk changes * remove caps word from default keymap * use provided coding guidelines * use get_highest_layer in favour of biton32 * fixed formatting * remove unnecessary define statement
This commit is contained in:
		
				
					committed by
					
						
						GitHub
					
				
			
			
				
	
			
			
			
						parent
						
							d7eb09949d
						
					
				
				
					commit
					2e19d0d7d1
				
			
							
								
								
									
										3
									
								
								keyboards/buzzard/buzzard.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								keyboards/buzzard/buzzard.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,3 @@
 | 
			
		||||
// Copyright 2021 Christoph Rehmann (crehmann)
 | 
			
		||||
// SPDX-License-Identifier: GPL-2.0-or-later
 | 
			
		||||
#include "buzzard.h"
 | 
			
		||||
							
								
								
									
										9
									
								
								keyboards/buzzard/buzzard.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								keyboards/buzzard/buzzard.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,9 @@
 | 
			
		||||
// Copyright 2021 Christoph Rehmann (crehmann)
 | 
			
		||||
// SPDX-License-Identifier: GPL-2.0-or-later
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include "quantum.h"
 | 
			
		||||
 | 
			
		||||
#if defined(KEYBOARD_buzzard_rev1)
 | 
			
		||||
#   include "rev1.h"
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										6
									
								
								keyboards/buzzard/config.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								keyboards/buzzard/config.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
// Copyright 2021 Christoph Rehmann (crehmann)
 | 
			
		||||
// SPDX-License-Identifier: GPL-2.0-or-later
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include "config_common.h"
 | 
			
		||||
							
								
								
									
										10
									
								
								keyboards/buzzard/info.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								keyboards/buzzard/info.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
			
		||||
{
 | 
			
		||||
    "keyboard_name": "Buzzard",
 | 
			
		||||
    "url": "https://github.com/crehmann/buzzard",
 | 
			
		||||
    "maintainer": "crehmann",
 | 
			
		||||
    "layouts": {
 | 
			
		||||
        "LAYOUT": {
 | 
			
		||||
            "layout": [{"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15, "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":11, "y":1}, {"x":12, "y":1}, {"x":13, "y":1}, {"x":14, "y":1}, {"x":15, "y":1}, {"x":16, "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":11, "y":2}, {"x":12, "y":2}, {"x":13, "y":2}, {"x":14, "y":2}, {"x":15, "y":2}, {"x":16, "y":2}, {"x":5, "y":3}, {"x":6, "y":3}, {"x":7, "y":3}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}]
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										38
									
								
								keyboards/buzzard/keymaps/crehmann/config.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								keyboards/buzzard/keymaps/crehmann/config.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,38 @@
 | 
			
		||||
// Copyright 2021 Christoph Rehmann (crehmann)
 | 
			
		||||
// SPDX-License-Identifier: GPL-2.0-or-later
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
// Configure the global tapping term (default: 200ms)
 | 
			
		||||
#define TAPPING_TERM 200
 | 
			
		||||
 | 
			
		||||
// Prevent normal rollover on alphas from accidentally triggering mods.
 | 
			
		||||
#define IGNORE_MOD_TAP_INTERRUPT
 | 
			
		||||
 | 
			
		||||
// Enable rapid switch from tap to hold, disables double tap hold auto-repeat.
 | 
			
		||||
#define TAPPING_FORCE_HOLD
 | 
			
		||||
 | 
			
		||||
// Apply the modifier on keys that are tapped during a short hold of a modtap
 | 
			
		||||
#define PERMISSIVE_HOLD
 | 
			
		||||
 | 
			
		||||
// Using the right side as master
 | 
			
		||||
#define MASTER_RIGHT
 | 
			
		||||
 | 
			
		||||
#ifdef HAPTIC_ENABLE
 | 
			
		||||
// this configuration has no effect because the haptic exclusion is implemented with
 | 
			
		||||
// __attribute__((weak)) bool get_haptic_enabled_key(uint16_t keycode, keyrecord_t *record)
 | 
			
		||||
// in the default keymap and reacts only to mouse clicks. 
 | 
			
		||||
//#define NO_HAPTIC_MOD
 | 
			
		||||
#define NO_HAPTIC_FN
 | 
			
		||||
#define NO_HAPTIC_ALPHA
 | 
			
		||||
#define NO_HAPTIC_PUNCTUATION
 | 
			
		||||
#define NO_HAPTIC_NAV 
 | 
			
		||||
#define NO_HAPTIC_NUMERIC
 | 
			
		||||
#define DRV_GREETING       alert_750ms
 | 
			
		||||
#define DRV_MODE_DEFAULT   sharp_tick1
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef PS2_MOUSE_ENABLE
 | 
			
		||||
#define PS2_MOUSE_SCROLL_BTN_MASK (1<<PS2_MOUSE_BTN_RIGHT)
 | 
			
		||||
#define PS2_MOUSE_SCROLL_BTN_SEND 500
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										42
									
								
								keyboards/buzzard/keymaps/crehmann/features/haptic_utils.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								keyboards/buzzard/keymaps/crehmann/features/haptic_utils.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,42 @@
 | 
			
		||||
// Copyright 2021 Christoph Rehmann (crehmann)
 | 
			
		||||
// SPDX-License-Identifier: GPL-2.0-or-later
 | 
			
		||||
 | 
			
		||||
#include "haptic_utils.h"
 | 
			
		||||
 | 
			
		||||
#ifdef HAPTIC_ENABLE
 | 
			
		||||
#include "drivers/haptic/DRV2605L.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef HAPTIC_ENABLE
 | 
			
		||||
bool get_haptic_enabled_key(uint16_t keycode, keyrecord_t *record) {
 | 
			
		||||
    switch (keycode) {
 | 
			
		||||
        case KC_BTN1 ... KC_BTN5:
 | 
			
		||||
            return true;
 | 
			
		||||
            break;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return false;
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
void process_layer_pulse(layer_state_t state) {
 | 
			
		||||
#ifdef HAPTIC_ENABLE
 | 
			
		||||
    switch (get_highest_layer(state)) {
 | 
			
		||||
        case 1:
 | 
			
		||||
            DRV_pulse(soft_bump);
 | 
			
		||||
            break;
 | 
			
		||||
        case 2:
 | 
			
		||||
            DRV_pulse(sh_dblsharp_tick);
 | 
			
		||||
            break;
 | 
			
		||||
        case 3:
 | 
			
		||||
            DRV_pulse(lg_dblclick_str);
 | 
			
		||||
            break;
 | 
			
		||||
        case 4:
 | 
			
		||||
            DRV_pulse(soft_bump);
 | 
			
		||||
            break;
 | 
			
		||||
        case 5:
 | 
			
		||||
            DRV_pulse(pulsing_sharp);
 | 
			
		||||
            break;
 | 
			
		||||
    }
 | 
			
		||||
#endif
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										10
									
								
								keyboards/buzzard/keymaps/crehmann/features/haptic_utils.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								keyboards/buzzard/keymaps/crehmann/features/haptic_utils.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
			
		||||
// Copyright 2021 Christoph Rehmann (crehmann)
 | 
			
		||||
// SPDX-License-Identifier: GPL-2.0-or-later
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include QMK_KEYBOARD_H
 | 
			
		||||
 | 
			
		||||
bool get_haptic_enabled_key(uint16_t keycode, keyrecord_t *record);
 | 
			
		||||
 | 
			
		||||
void process_layer_pulse(layer_state_t state);
 | 
			
		||||
							
								
								
									
										256
									
								
								keyboards/buzzard/keymaps/crehmann/keymap.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										256
									
								
								keyboards/buzzard/keymaps/crehmann/keymap.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,256 @@
 | 
			
		||||
// Copyright 2021 Christoph Rehmann (crehmann)
 | 
			
		||||
// SPDX-License-Identifier: GPL-2.0-or-later
 | 
			
		||||
 | 
			
		||||
#include QMK_KEYBOARD_H
 | 
			
		||||
#include "keymap_german_ch.h"
 | 
			
		||||
#include "features/haptic_utils.h"
 | 
			
		||||
 | 
			
		||||
#ifdef PS2_MOUSE_ENABLE
 | 
			
		||||
    #include "ps2_mouse.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
enum layers {
 | 
			
		||||
    _BASE = 0,
 | 
			
		||||
    _NAVR,
 | 
			
		||||
    _SYMB,
 | 
			
		||||
    _NUMR,
 | 
			
		||||
    _FUNL,
 | 
			
		||||
    _MOAJ
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// Aliases for readability
 | 
			
		||||
#define BASE     DF(_BASE)
 | 
			
		||||
#define NAVR     MO(_NAVR)
 | 
			
		||||
#define SYMB     MO(_SYMB)
 | 
			
		||||
#define NUMR     MO(_NUMR)
 | 
			
		||||
#define FUNL     MO(_FUNL)
 | 
			
		||||
#define MOAD     MO(_MOAJ)
 | 
			
		||||
 | 
			
		||||
// Left-hand home row mods
 | 
			
		||||
#define RALT_X  RALT_T(KC_X)
 | 
			
		||||
#define GUI_A   LGUI_T(KC_A)
 | 
			
		||||
#define ALT_S   LALT_T(KC_S)
 | 
			
		||||
#define CTL_D   LCTL_T(KC_D)
 | 
			
		||||
#define SFT_F   LSFT_T(KC_F)
 | 
			
		||||
 | 
			
		||||
// Right-hand home row mods
 | 
			
		||||
#define SFT_J   RSFT_T(KC_J)
 | 
			
		||||
#define CTL_K   RCTL_T(KC_K)
 | 
			
		||||
#define ALT_L   LALT_T(KC_L)
 | 
			
		||||
#define GUI_SCL RGUI_T(KC_SCLN)
 | 
			
		||||
#define RALT_DT RALT_T(KC_DOT)
 | 
			
		||||
 | 
			
		||||
// Left-hand outer column
 | 
			
		||||
#define CTL_ESC  MT(MOD_LCTL, KC_ESC)
 | 
			
		||||
 | 
			
		||||
// Thumbcluster
 | 
			
		||||
#define UC_TL1 CTL_ESC
 | 
			
		||||
#define UC_TL2 LT(NAVR, KC_SPC)
 | 
			
		||||
#define UC_TL3 LT(NUMR, KC_TAB)
 | 
			
		||||
 | 
			
		||||
#define UC_TR3 LT(FUNL, KC_BSPC)
 | 
			
		||||
#define UC_TR2 LT(SYMB, KC_ENT)
 | 
			
		||||
#define UC_TR1 KC_DEL
 | 
			
		||||
 | 
			
		||||
// Shortcuts
 | 
			
		||||
#define UC_COPY LCTL(KC_C)
 | 
			
		||||
#define UC_PSTE LCTL(KC_V)
 | 
			
		||||
#define UC_CUT  LCTL(KC_X)
 | 
			
		||||
#define UC_MUTE SGUI(KC_M)
 | 
			
		||||
#define UC_OSFT OSM(MOD_LSFT)
 | 
			
		||||
 | 
			
		||||
// clang-format off
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
 | 
			
		||||
// /*
 | 
			
		||||
//  * Base Layer
 | 
			
		||||
//  *
 | 
			
		||||
//  *                 ,----------------------------------.                                               ,----------------------------------.
 | 
			
		||||
//  *                 |   Q  |   W  |   E  |   R  |   T  |                                               |   Z  |   U  |   I  |   O  |   P  |      
 | 
			
		||||
//  *                 |      |      |      |      |      |                                               |      |      |      |      |      |      
 | 
			
		||||
//  *          ,------+------+------+------+------+------|                                               |------+------+------+------+------+------.
 | 
			
		||||
//  *          | OSM  |   A  |   S  |   D  |   F  |   G  |                                               |   H  |   J  |   K  |   L  |  ; : | Bksp |
 | 
			
		||||
//  *          | Shift|  GUI | LALT | LCTL | LSFT |      |                                               |      | LSFT | LCTL | LALT |  GUI |      |
 | 
			
		||||
//  *          |------+------+------+------+------+------|                                               |------+------+------+------+------+------|
 | 
			
		||||
//  *          |  ESC |   Y  |   X  |   C  |   F  |   B  |                                               |   N  |   M  |  , < |  . > |  / ? | Mute |
 | 
			
		||||
//  *          |  CTL |      | RALT |      |      |      |                                               |      |      |      | RALT |      |  Mic |
 | 
			
		||||
//  *          `----------------------------------+------+-------------.                   ,-------------+------+----------------------------------'
 | 
			
		||||
//  *                                             |  ESC | Space| TAB  |                   |  Bksp| Enter|  Del |
 | 
			
		||||
//  *                                             |  CTL | NAVR | NUMR |                   |  FUNL| SYML |      |
 | 
			
		||||
//  *                                             `--------------------'                   `--------------------'
 | 
			
		||||
//  */
 | 
			
		||||
    [_BASE] = LAYOUT(
 | 
			
		||||
               KC_Q   , KC_W   , KC_E   , KC_R   , KC_T   ,                                        CH_Z   , KC_U   , KC_I   , KC_O   , KC_P   ,
 | 
			
		||||
      UC_OSFT, GUI_A  , ALT_S  , CTL_D  , SFT_F  , KC_G   ,                                        KC_H   , SFT_J  , CTL_K  , ALT_L  , GUI_SCL, KC_BSPC,
 | 
			
		||||
      CTL_ESC, CH_Y   , RALT_X , KC_C   , KC_V   , KC_B   ,                                        KC_N   , KC_M   , KC_COMM, RALT_DT, KC_SLSH, UC_MUTE,
 | 
			
		||||
                                                   UC_TL1 , UC_TL2 , UC_TL3 ,    UC_TR3 , UC_TR2 , UC_TR1
 | 
			
		||||
    ),
 | 
			
		||||
 | 
			
		||||
// /*
 | 
			
		||||
//  * Symbol Layer
 | 
			
		||||
//  *
 | 
			
		||||
//  *                 ,----------------------------------.                                               ,----------------------------------.
 | 
			
		||||
//  *                 |   `  |   @  |   {  |   }  |   $  |                                               |   ¨  |   ü  |   /  |   \  |   ^  |      
 | 
			
		||||
//  *                 |      |      |      |      |      |                                               |      |      |      |      |      |      
 | 
			
		||||
//  *          ,------+------+------+------+------+------|                                               |------+------+------+------+------+------.
 | 
			
		||||
//  *          |      |   ä  |   &  |   (  |   )  |   |  |                                               |   '  |   "  |   ?  |   !  |   +  |      |
 | 
			
		||||
//  *          |      |      |      |      |      |      |                                               |      |      |      |      |      |      |
 | 
			
		||||
//  *          |------+------+------+------+------+------|                                               |------+------+------+------+------+------|
 | 
			
		||||
//  *          |      |   %  |   #  |   [  |   ]  |   ~  |                                               |   €  |   =  |   *  |   <  |   >  |      |
 | 
			
		||||
//  *          |      |      |      |      |      |      |                                               |      |      |      |      |      |      |
 | 
			
		||||
//  *          `----------------------------------+------+-------------.                   ,-------------+------+----------------------------------'
 | 
			
		||||
//  *                                             |      |      | TAB  |                   |      |      |      |
 | 
			
		||||
//  *                                             |      |      |      |                   |      |      |      |
 | 
			
		||||
//  *                                             `--------------------'                   `--------------------'
 | 
			
		||||
//  */
 | 
			
		||||
    [_SYMB] = LAYOUT(
 | 
			
		||||
               CH_GRV , CH_AT  , CH_LCBR, CH_RCBR, CH_DLR ,                                       CH_DIAE, CH_UDIA, CH_SLSH, CH_BSLS, KC_CIRC,
 | 
			
		||||
      _______, CH_ADIA, CH_AMPR, CH_LPRN, CH_RPRN, CH_PIPE,                                       CH_QUOT, CH_DQUO, CH_QUES, CH_EXLM, CH_PLUS, _______,
 | 
			
		||||
      _______, CH_PERC, CH_HASH, CH_LBRC, CH_RBRC, CH_TILD,                                       CH_EURO, CH_EQL , CH_ASTR, CH_LABK, CH_RABK, _______,
 | 
			
		||||
                                                   _______, _______, KC_TAB,    _______, _______ , _______ 
 | 
			
		||||
    ),
 | 
			
		||||
 | 
			
		||||
// /*
 | 
			
		||||
//  * Navigation Layer (Right)
 | 
			
		||||
//  *
 | 
			
		||||
//  *                 ,----------------------------------.                                               ,----------------------------------.
 | 
			
		||||
//  *                 |      |      |      |      |      |                                               |Insert| Cut  | PgUp | PgDn |      |      
 | 
			
		||||
//  *                 |      |      |      |      |      |                                               |      |      |      |      |      |      
 | 
			
		||||
//  *          ,------+------+------+------+------+------|                                               |------+------+------+------+------+------.
 | 
			
		||||
//  *          |      |      |      |      |      |      |                                               | Copy |   ←  |   ↑  |   ↓  |   →  |      |
 | 
			
		||||
//  *          |      |      |      |      |      |      |                                               |      |      |      |      |      |      |
 | 
			
		||||
//  *          |------+------+------+------+------+------|                                               |------+------+------+------+------+------|
 | 
			
		||||
//  *          |      |      |      |      |      |      |                                               | Paste| Home | WH_U | WH_D | End  |      |
 | 
			
		||||
//  *          |      |      |      |      |      |      |                                               |      |      |      |      |      |      |
 | 
			
		||||
//  *          `----------------------------------+------+-------------.                   ,-------------+------+----------------------------------'
 | 
			
		||||
//  *                                             |      |      |      |                   | Bksp |      |  Del |
 | 
			
		||||
//  *                                             |      |      |      |                   |      |      |      |
 | 
			
		||||
//  *                                             `--------------------'                   `--------------------'
 | 
			
		||||
//  */
 | 
			
		||||
    [_NAVR] = LAYOUT(
 | 
			
		||||
               _______, _______, _______, _______, _______,                                        KC_INS , UC_CUT , KC_PGUP, KC_PGDN, _______,
 | 
			
		||||
      _______, _______, _______, _______, _______, _______,                                        UC_COPY, KC_LEFT, KC_UP  , KC_DOWN, KC_RGHT, _______,
 | 
			
		||||
      _______, _______, _______, _______, _______, _______,                                        UC_PSTE, KC_HOME, KC_WH_U, KC_WH_D, KC_END , _______,
 | 
			
		||||
                                                   _______, _______, _______,    KC_BSPC, _______, _______
 | 
			
		||||
    ),
 | 
			
		||||
// --------------------------------------------------------------------------------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
// /*
 | 
			
		||||
//  * Number Layer (Right)
 | 
			
		||||
//  *
 | 
			
		||||
//  *                 ,----------------------------------.                                               ,----------------------------------.
 | 
			
		||||
//  *                 |      |      |      |      |      |                                               |   /  |   7  |   8  |   9  |  -   |      
 | 
			
		||||
//  *                 |      |      |      |      |      |                                               |      |      |      |      |      |      
 | 
			
		||||
//  *          ,------+------+------+------+------+------|                                               |------+------+------+------+------+------.
 | 
			
		||||
//  *          |      |      |      |      |      |      |                                               |   *  |   4  |   5  |  6   |  +   |      |
 | 
			
		||||
//  *          |      |      |      |      |      |      |                                               |      |      |      |      |      |      |
 | 
			
		||||
//  *          |------+------+------+------+------+------|                                               |------+------+------+------+------+------|
 | 
			
		||||
//  *          |      |      |      |      |      |      |                                               |   0  |   1  |   2  |  3   |  .   |      |
 | 
			
		||||
//  *          |      |      |      |      |      |      |                                               |      |      |      |      |      |      |
 | 
			
		||||
//  *          `----------------------------------+------+-------------.                   ,-------------+------+----------------------------------'
 | 
			
		||||
//  *                                             |      |      |      |                   | Bksp | Enter|      |
 | 
			
		||||
//  *                                             |      |      |      |                   |      |      |      |
 | 
			
		||||
//  *                                             `--------------------'                   `--------------------'
 | 
			
		||||
//  */
 | 
			
		||||
    [_NUMR] = LAYOUT(
 | 
			
		||||
               _______, _______, _______, _______, _______,                                        KC_SLSH, KC_7   , KC_8   , KC_9   , KC_MINS,
 | 
			
		||||
      _______, _______, _______, _______, _______, _______,                                        KC_ASTR, KC_4   , KC_5   , KC_6   , KC_PLUS, _______,
 | 
			
		||||
      _______, _______, _______, _______, _______, _______,                                        KC_0   , KC_1   , KC_2   , KC_3   , KC_DOT , _______,
 | 
			
		||||
                                                   _______, _______, _______,    KC_BSPC, KC_ENT , _______ 
 | 
			
		||||
    ),
 | 
			
		||||
 | 
			
		||||
// /*
 | 
			
		||||
//  * Function Layer (Left)
 | 
			
		||||
//  *
 | 
			
		||||
//  *                 ,----------------------------------.                                               ,----------------------------------.
 | 
			
		||||
//  *                 |  F12 |  F7  |  F8  |  F9  | Pause|                                               |      |      |      |      |      |      
 | 
			
		||||
//  *                 |      |      |      |      |      |                                               |      |      |      |      |      |      
 | 
			
		||||
//  *          ,------+------+------+------+------+------|                                               |------+------+------+------+------+------.
 | 
			
		||||
//  *          |      |  F11 |  F4  |  F5  |  F6  | PrScr|                                               |      |      |      |      |      |      |
 | 
			
		||||
//  *          |      |      |      |      |      |      |                                               |      |      |      |      |      |      |
 | 
			
		||||
//  *          |------+------+------+------+------+------|                                               |------+------+------+------+------+------|
 | 
			
		||||
//  *          |      |  F10 |  F1  |  F2  |  F3  | CapsL|                                               |      |      |      |      |      |      |
 | 
			
		||||
//  *          |      |      |      |      |      |      |                                               |      |      |      |      |      |      |
 | 
			
		||||
//  *          `----------------------------------+------+-------------.                   ,-------------+------+----------------------------------'
 | 
			
		||||
//  *                                             |      | Space|  TAB |                   |      |      |      |
 | 
			
		||||
//  *                                             |      |      |      |                   |      |      |      |
 | 
			
		||||
//  *                                             `--------------------'                   `--------------------'
 | 
			
		||||
//  */
 | 
			
		||||
    [_FUNL] = LAYOUT(
 | 
			
		||||
               KC_F12 , KC_F7  , KC_F8  , KC_F9  , KC_PAUS,                                        _______, _______, _______, _______, _______,
 | 
			
		||||
      _______, KC_F11 , KC_F4  , KC_F5  , KC_F6  , KC_PSCR,                                        _______, _______, _______, _______, _______, _______,
 | 
			
		||||
      _______, KC_F10 , KC_F1  , KC_F2  , KC_F3  , KC_CAPS,                                        _______, _______, _______, _______, _______, _______,
 | 
			
		||||
                                                   _______, KC_SPC , KC_TAB  ,    _______, _______, _______
 | 
			
		||||
    ),
 | 
			
		||||
  
 | 
			
		||||
// /*
 | 
			
		||||
//  * Mouse & Adjustment Layer
 | 
			
		||||
//  *
 | 
			
		||||
//  *                 ,----------------------------------.                                               ,----------------------------------.
 | 
			
		||||
//  *                 |      |      |      |      |      |                                               |      |      |      |      |      |      
 | 
			
		||||
//  *                 |      |      |      |      |      |                                               |      |      |      |      |      |      
 | 
			
		||||
//  *          ,------+------+------+------+------+------|                                               |------+------+------+------+------+------.
 | 
			
		||||
//  *          |      |      | BTN3 | BTN2 | BTN1 |      |                                               |      |      |      |      |      |      |
 | 
			
		||||
//  *          |      |      |      |      |      |      |                                               |      |      |      |      |      |      |
 | 
			
		||||
//  *          |------+------+------+------+------+------|                                               |------+------+------+------+------+------|
 | 
			
		||||
//  *          |      |      |  Cut | Copy | Paste|      |                                               | Play |M Prev| VolDn| VolUp|M Next|      |
 | 
			
		||||
//  *          |      |      |      |      |      |      |                                               |      |      |      |      |      |      |
 | 
			
		||||
//  *          `----------------------------------+------+-------------.                   ,-------------+------+----------------------------------'
 | 
			
		||||
//  *                                             |      |      |      |                   |      |      |      |
 | 
			
		||||
//  *                                             |      |      |      |                   |      |      |      |
 | 
			
		||||
//  *                                             `--------------------'                   `--------------------'
 | 
			
		||||
//  */
 | 
			
		||||
    [_MOAJ] = LAYOUT(
 | 
			
		||||
               _______, _______, _______, _______, _______,                                        _______, _______, _______, _______, _______,
 | 
			
		||||
      _______, _______, KC_BTN3, KC_BTN2, KC_BTN1, _______,                                        _______, _______, _______, _______, _______, _______,
 | 
			
		||||
      _______, _______, UC_CUT , UC_COPY, UC_PSTE, _______,                                        KC_MPLY, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT, _______,
 | 
			
		||||
                                                   _______, _______, _______,    _______, _______, _______
 | 
			
		||||
    ),
 | 
			
		||||
 | 
			
		||||
// -------------------------------------------------------- TEMPLATE -------------------------------------------------------------------------------------
 | 
			
		||||
// /*
 | 
			
		||||
//  * Layer
 | 
			
		||||
//  *
 | 
			
		||||
//  *                 ,----------------------------------.                                               ,----------------------------------.
 | 
			
		||||
//  *                 |      |      |      |      |      |                                               |      |      |      |      |      |      
 | 
			
		||||
//  *                 |      |      |      |      |      |                                               |      |      |      |      |      |      
 | 
			
		||||
//  *          ,------+------+------+------+------+------|                                               |------+------+------+------+------+------.
 | 
			
		||||
//  *          |      |      |      |      |      |      |                                               |      |      |      |      |      |      |
 | 
			
		||||
//  *          |      |      |      |      |      |      |                                               |      |      |      |      |      |      |
 | 
			
		||||
//  *          |------+------+------+------+------+------|                                               |------+------+------+------+------+------|
 | 
			
		||||
//  *          |      |      |      |      |      |      |                                               |      |      |      |      |      |      |
 | 
			
		||||
//  *          |      |      |      |      |      |      |                                               |      |      |      |      |      |      |
 | 
			
		||||
//  *          `----------------------------------+------+-------------.                   ,-------------+------+----------------------------------'
 | 
			
		||||
//  *                                             |      |      |      |                   |      |      |      |
 | 
			
		||||
//  *                                             |      |      |      |                   |      |      |      |
 | 
			
		||||
//  *                                             `--------------------'                   `--------------------'
 | 
			
		||||
//  */
 | 
			
		||||
//     [_LAYERINDEX] = LAYOUT(
 | 
			
		||||
//                _______, _______, _______, _______, _______,                                        _______, _______, _______, _______, _______,
 | 
			
		||||
//       _______, _______, _______, _______, _______, _______,                                        _______, _______, _______, _______, _______, _______,
 | 
			
		||||
//       _______, _______, _______, _______, _______, _______,                                        _______, _______, _______, _______, _______, _______,
 | 
			
		||||
//                                                    _______, _______, _______,    _______, _______, _______
 | 
			
		||||
//     ),
 | 
			
		||||
// --------------------------------------------------------------------------------------------------------------------------------------------------------
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
layer_state_t layer_state_set_user(layer_state_t state) {
 | 
			
		||||
    process_layer_pulse(state);
 | 
			
		||||
    return update_tri_layer_state(state, _NAVR, _SYMB, _MOAJ);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
 | 
			
		||||
    switch (keycode) {
 | 
			
		||||
        case GUI_A:
 | 
			
		||||
            return TAPPING_TERM + 150;
 | 
			
		||||
        case ALT_S:
 | 
			
		||||
            return TAPPING_TERM + 50;
 | 
			
		||||
        case ALT_L:
 | 
			
		||||
            return TAPPING_TERM + 50;
 | 
			
		||||
        case GUI_SCL:
 | 
			
		||||
            return TAPPING_TERM + 150;
 | 
			
		||||
        default:
 | 
			
		||||
            return TAPPING_TERM;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										9
									
								
								keyboards/buzzard/keymaps/crehmann/rules.mk
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								keyboards/buzzard/keymaps/crehmann/rules.mk
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,9 @@
 | 
			
		||||
SRC += features/haptic_utils.c
 | 
			
		||||
 | 
			
		||||
OLED_ENABLE = yes		
 | 
			
		||||
 | 
			
		||||
HAPTIC_ENABLE = yes
 | 
			
		||||
HAPTIC_DRIVER = DRV2605L
 | 
			
		||||
 | 
			
		||||
PS2_MOUSE_ENABLE = yes	
 | 
			
		||||
MOUSEKEY_ENABLE = yes
 | 
			
		||||
							
								
								
									
										39
									
								
								keyboards/buzzard/keymaps/default/config.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								keyboards/buzzard/keymaps/default/config.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,39 @@
 | 
			
		||||
// Copyright 2021 Christoph Rehmann (crehmann)
 | 
			
		||||
// SPDX-License-Identifier: GPL-2.0-or-later
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
// Configure the global tapping term (default: 200ms)
 | 
			
		||||
#define TAPPING_TERM 200
 | 
			
		||||
 | 
			
		||||
// Prevent normal rollover on alphas from accidentally triggering mods.
 | 
			
		||||
#define IGNORE_MOD_TAP_INTERRUPT
 | 
			
		||||
 | 
			
		||||
// Enable rapid switch from tap to hold, disables double tap hold auto-repeat.
 | 
			
		||||
#define TAPPING_FORCE_HOLD
 | 
			
		||||
 | 
			
		||||
// Apply the modifier on keys that are tapped during a short hold of a modtap
 | 
			
		||||
#define PERMISSIVE_HOLD
 | 
			
		||||
 | 
			
		||||
// Using the right side as master
 | 
			
		||||
#define MASTER_RIGHT
 | 
			
		||||
 | 
			
		||||
#ifdef HAPTIC_ENABLE
 | 
			
		||||
// this configuration has no effect because the haptic exclusion is implemented with
 | 
			
		||||
// __attribute__((weak)) bool get_haptic_enabled_key(uint16_t keycode, keyrecord_t *record)
 | 
			
		||||
// in the default keymap and reacts only to mouse clicks. 
 | 
			
		||||
//#define NO_HAPTIC_MOD
 | 
			
		||||
#define NO_HAPTIC_FN
 | 
			
		||||
#define NO_HAPTIC_ALPHA
 | 
			
		||||
#define NO_HAPTIC_PUNCTUATION
 | 
			
		||||
#define NO_HAPTIC_NAV 
 | 
			
		||||
#define NO_HAPTIC_NUMERIC
 | 
			
		||||
#define DRV_GREETING       alert_750ms
 | 
			
		||||
#define DRV_MODE_DEFAULT   sharp_tick1
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifdef PS2_MOUSE_ENABLE
 | 
			
		||||
#define PS2_MOUSE_SCROLL_BTN_MASK (1<<PS2_MOUSE_BTN_RIGHT)   // using the right mouse button for scrolling (other buttons can be configured)
 | 
			
		||||
#define PS2_MOUSE_SCROLL_BTN_SEND 500
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										274
									
								
								keyboards/buzzard/keymaps/default/keymap.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										274
									
								
								keyboards/buzzard/keymaps/default/keymap.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,274 @@
 | 
			
		||||
/* Copyright 2021 Christoph Rehmann (crehmann)
 | 
			
		||||
 *
 | 
			
		||||
 * 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
 | 
			
		||||
 | 
			
		||||
enum layers {
 | 
			
		||||
    _BASE = 0,
 | 
			
		||||
    _NAVR,
 | 
			
		||||
    _SYMB,
 | 
			
		||||
    _NUMR,
 | 
			
		||||
    _FUNL,
 | 
			
		||||
    _ADJL
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// Aliases for readability
 | 
			
		||||
#define BASE     DF(_BASE)
 | 
			
		||||
#define NAVR     MO(_NAVR)
 | 
			
		||||
#define SYMB     MO(_SYMB)
 | 
			
		||||
#define NUMR     MO(_NUMR)
 | 
			
		||||
#define FUNL     MO(_FUNL)
 | 
			
		||||
#define ADJL     MO(_ADJL)
 | 
			
		||||
 | 
			
		||||
// Left-hand home row mods
 | 
			
		||||
#define RALT_X  RALT_T(KC_X)
 | 
			
		||||
#define GUI_A   LGUI_T(KC_A)
 | 
			
		||||
#define ALT_S   LALT_T(KC_S)
 | 
			
		||||
#define CTL_D   LCTL_T(KC_D)
 | 
			
		||||
#define SFT_F   LSFT_T(KC_F)
 | 
			
		||||
 | 
			
		||||
// Right-hand home row mods
 | 
			
		||||
#define SFT_J   RSFT_T(KC_J)
 | 
			
		||||
#define CTL_K   RCTL_T(KC_K)
 | 
			
		||||
#define ALT_L   LALT_T(KC_L)
 | 
			
		||||
#define GUI_SCL RGUI_T(KC_SCLN)
 | 
			
		||||
#define RALT_DT RALT_T(KC_DOT)
 | 
			
		||||
 | 
			
		||||
// Left-hand outer column
 | 
			
		||||
#define CTL_ESC  MT(MOD_LCTL, KC_ESC)
 | 
			
		||||
#define SFT_TAB  MT(MOD_LSFT, KC_TAB)
 | 
			
		||||
 | 
			
		||||
// Thumbcluster
 | 
			
		||||
#define UC_TL1 KC_BTN1
 | 
			
		||||
#define UC_TL2 LT(NAVR, KC_SPC)
 | 
			
		||||
#define UC_TL3 LT(NUMR, KC_TAB)
 | 
			
		||||
 | 
			
		||||
#define UC_TR3 LT(FUNL, KC_BSPC)
 | 
			
		||||
#define UC_TR2 LT(SYMB, KC_ENT)
 | 
			
		||||
#define UC_TR1 KC_BTN2
 | 
			
		||||
 | 
			
		||||
// Shortcuts
 | 
			
		||||
#define UC_COPY LCTL(KC_C)
 | 
			
		||||
#define UC_PSTE LCTL(KC_V)
 | 
			
		||||
#define UC_CUT  LCTL(KC_X)
 | 
			
		||||
#define UC_OSFT OSM(MOD_LSFT)
 | 
			
		||||
 | 
			
		||||
// clang-format off
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
 | 
			
		||||
// /*
 | 
			
		||||
//  * Base Layer
 | 
			
		||||
//  *
 | 
			
		||||
//  *                 ,----------------------------------.                                               ,----------------------------------.
 | 
			
		||||
//  *                 |   Q  |   W  |   E  |   R  |   T  |                                               |   Y  |   U  |   I  |   O  |   P  |      
 | 
			
		||||
//  *                 |      |      |      |      |      |                                               |      |      |      |      |      |      
 | 
			
		||||
//  *          ,------+------+------+------+------+------|                                               |------+------+------+------+------+------.
 | 
			
		||||
//  *          |  OSM |   A  |   S  |   D  |   F  |   G  |                                               |   H  |   J  |   K  |   L  |  ; : | Bksp |
 | 
			
		||||
//  *          | Shift|  GUI | LALT | LCTL | LSFT |      |                                               |      | LSFT | LCTL |  ALT |  GUI |      |
 | 
			
		||||
//  *          |------+------+------+------+------+------|                                               |------+------+------+------+------+------|
 | 
			
		||||
//  *          |  ESC |   Z  |   X  |   C  |   F  |   B  |                                               |   N  |   M  |  , < |  . > |  / ? | ADJL |
 | 
			
		||||
//  *          |  CTL |      | RALT |      |      |      |                                               |      |      |      | RALT |      |      |
 | 
			
		||||
//  *          `----------------------------------+------+-------------.                   ,-------------+------+----------------------------------'
 | 
			
		||||
//  *                                             | BTN1 | Space| TAB  |                   |  Bksp| Enter| BTN2 |
 | 
			
		||||
//  *                                             |      | NAVR | NUMR |                   |  FUNL| SYML |      |
 | 
			
		||||
//  *                                             `--------------------'                   `--------------------'
 | 
			
		||||
//  */
 | 
			
		||||
    [_BASE] = LAYOUT(
 | 
			
		||||
               KC_Q   , KC_W   , KC_E   , KC_R   , KC_T   ,                                        KC_Y   , KC_U   , KC_I   , KC_O   , KC_P   ,
 | 
			
		||||
      UC_OSFT, GUI_A  , ALT_S  , CTL_D  , SFT_F  , KC_G   ,                                        KC_H   , SFT_J  , CTL_K  , ALT_L  , GUI_SCL, KC_DEL,
 | 
			
		||||
      CTL_ESC, KC_Z   , RALT_X , KC_C   , KC_V   , KC_B   ,                                        KC_N   , KC_M   , KC_COMM, RALT_DT, KC_SLSH, ADJL  ,
 | 
			
		||||
                                                   KC_BTN1, UC_TL2 , UC_TL3 ,    UC_TR3 , UC_TR2 , UC_TR1
 | 
			
		||||
    ),
 | 
			
		||||
 | 
			
		||||
// /*
 | 
			
		||||
//  * Navigation Layer (Right)
 | 
			
		||||
//  *
 | 
			
		||||
//  *                 ,----------------------------------.                                               ,----------------------------------.
 | 
			
		||||
//  *                 |      |      |      |      |      |                                               |Insert| Cut  | PgUp | PgDn |      |      
 | 
			
		||||
//  *                 |      |      |      |      |      |                                               |      |      |      |      |      |      
 | 
			
		||||
//  *          ,------+------+------+------+------+------|                                               |------+------+------+------+------+------.
 | 
			
		||||
//  *          |      |      |      |      |      |      |                                               | Copy |   ←  |   ↑  |   ↓  |   →  |      |
 | 
			
		||||
//  *          |      |      |      |      |      |      |                                               |      |      |      |      |      |      |
 | 
			
		||||
//  *          |------+------+------+------+------+------|                                               |------+------+------+------+------+------|
 | 
			
		||||
//  *          |      |      |      |      |      |      |                                               | Paste| Home | WH_U | WH_D | End  |      |
 | 
			
		||||
//  *          |      |      |      |      |      |      |                                               |      |      |      |      |      |      |
 | 
			
		||||
//  *          `----------------------------------+------+-------------.                   ,-------------+------+----------------------------------'
 | 
			
		||||
//  *                                             |      |      |      |                   | Bksp | Enter|      |
 | 
			
		||||
//  *                                             |      |      |      |                   |      |      |      |
 | 
			
		||||
//  *                                             `--------------------'                   `--------------------'
 | 
			
		||||
//  */
 | 
			
		||||
    [_NAVR] = LAYOUT(
 | 
			
		||||
               _______, _______, _______, _______, _______,                                        KC_INS , UC_CUT , KC_PGUP, KC_PGDN, _______,
 | 
			
		||||
      _______, _______, _______, _______, _______, _______,                                        UC_COPY, KC_LEFT, KC_UP  , KC_DOWN, KC_RGHT, _______,
 | 
			
		||||
      _______, _______, _______, _______, _______, _______,                                        UC_PSTE, KC_HOME, KC_WH_U, KC_WH_D, KC_END , _______,
 | 
			
		||||
                                                   _______, _______, _______,    KC_BSPC, KC_ENT , _______
 | 
			
		||||
    ),
 | 
			
		||||
// --------------------------------------------------------------------------------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// /*
 | 
			
		||||
//  * Symbol Layer (Right)
 | 
			
		||||
//  
 | 
			
		||||
//  *                 ,----------------------------------.                                               ,----------------------------------.
 | 
			
		||||
//  *                 |   `  |   ~  |   |  |   \  |      |                                               |      |   /  |   +  |   =  |   ?  |      
 | 
			
		||||
//  *                 |      |      |      |      |      |                                               |      |      |      |      |      |      
 | 
			
		||||
//  *          ,------+------+------+------+------+------|                                               |------+------+------+------+------+------.
 | 
			
		||||
//  *          |      |   !  |   @  |   #  |   $  |   %  |                                               |   ^  |   &  |   *  |   (  |   )  |      |
 | 
			
		||||
//  *          |      |      |      |      |      |      |                                               |      |      |      |      |      |      |
 | 
			
		||||
//  *          |------+------+------+------+------+------|                                               |------+------+------+------+------+------|
 | 
			
		||||
//  *          |      |   :  |   ;  |   -  |   [  |   {  |                                               |   }  |   ]  |   _  |   ,  |   .  |      |
 | 
			
		||||
//  *          |      |      |      |      |      |      |                                               |      |      |      |      |      |      |
 | 
			
		||||
//  *          `----------------------------------+------+-------------.                   ,-------------+------+----------------------------------'
 | 
			
		||||
//  *                                             |      | Space| TAB  |                   | Bksp | Enter|      |
 | 
			
		||||
//  *                                             |      |      |      |                   |      |      |      |
 | 
			
		||||
//  *                                             `--------------------'                   `--------------------'
 | 
			
		||||
//  *
 | 
			
		||||
    [_SYMB] = LAYOUT(
 | 
			
		||||
               KC_GRV , KC_TILD, KC_PIPE, KC_BSLS, _______,                                        _______, KC_SLSH, KC_PLUS, KC_EQL , KC_QUES,
 | 
			
		||||
      _______, KC_EXLM, KC_AT  , KC_HASH, KC_DLR , KC_PERC,                                        KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______,
 | 
			
		||||
      _______, KC_COLN, KC_SCLN, KC_MINS, KC_LBRC, KC_LCBR,                                        KC_RCBR, KC_RBRC, KC_UNDS, KC_COMM, KC_DOT , _______,
 | 
			
		||||
                                                   _______, KC_SPC , KC_TAB  ,   KC_BSPC, KC_ENT , _______ 
 | 
			
		||||
    ),
 | 
			
		||||
 | 
			
		||||
// /*
 | 
			
		||||
//  * Number Layer (Right)
 | 
			
		||||
//  *
 | 
			
		||||
//  *                 ,----------------------------------.                                               ,----------------------------------.
 | 
			
		||||
//  *                 |      |      |      |      |      |                                               |   /  |   7  |   8  |   9  |  -   |      
 | 
			
		||||
//  *                 |      |      |      |      |      |                                               |      |      |      |      |      |      
 | 
			
		||||
//  *          ,------+------+------+------+------+------|                                               |------+------+------+------+------+------.
 | 
			
		||||
//  *          |      |      |      |      |      |      |                                               |   *  |   4  |   5  |  6   |  +   |      |
 | 
			
		||||
//  *          |      |      |      |      |      |      |                                               |      |      |      |      |      |      |
 | 
			
		||||
//  *          |------+------+------+------+------+------|                                               |------+------+------+------+------+------|
 | 
			
		||||
//  *          |      |      |      |      |      |      |                                               |   0  |   1  |   2  |  3   |  .   |      |
 | 
			
		||||
//  *          |      |      |      |      |      |      |                                               |      |      |      |      |      |      |
 | 
			
		||||
//  *          `----------------------------------+------+-------------.                   ,-------------+------+----------------------------------'
 | 
			
		||||
//  *                                             |      |      |      |                   | Bksp | Enter|      |
 | 
			
		||||
//  *                                             |      |      |      |                   |      |      |      |
 | 
			
		||||
//  *                                             `--------------------'                   `--------------------'
 | 
			
		||||
//  */
 | 
			
		||||
    [_NUMR] = LAYOUT(
 | 
			
		||||
               _______, _______, _______, _______, _______,                                        KC_SLSH, KC_7   , KC_8   , KC_9   , KC_MINS,
 | 
			
		||||
      _______, _______, _______, _______, _______, _______,                                        KC_ASTR, KC_4   , KC_5   , KC_6   , KC_PLUS, _______,
 | 
			
		||||
      _______, _______, _______, _______, _______, _______,                                        KC_0   , KC_1   , KC_2   , KC_3   , KC_DOT , _______,
 | 
			
		||||
                                                   _______, _______, _______,    KC_BSPC, KC_ENT , _______ 
 | 
			
		||||
    ),
 | 
			
		||||
 | 
			
		||||
// /*
 | 
			
		||||
//  * Function Layer (Left)
 | 
			
		||||
//  *
 | 
			
		||||
//  *                 ,----------------------------------.                                               ,----------------------------------.
 | 
			
		||||
//  *                 |  F12 |  F7  |  F8  |  F9  | Pause|                                               |      |      |      |      |      |      
 | 
			
		||||
//  *                 |      |      |      |      |      |                                               |      |      |      |      |      |      
 | 
			
		||||
//  *          ,------+------+------+------+------+------|                                               |------+------+------+------+------+------.
 | 
			
		||||
//  *          |      |  F11 |  F4  |  F5  |  F6  | PrScr|                                               |      |      |      |      |      |      |
 | 
			
		||||
//  *          |      |      |      |      |      |      |                                               |      |      |      |      |      |      |
 | 
			
		||||
//  *          |------+------+------+------+------+------|                                               |------+------+------+------+------+------|
 | 
			
		||||
//  *          |      |  F10 |  F1  |  F2  |  F3  | CapsL|                                               |      |      |      |      |      |      |
 | 
			
		||||
//  *          |      |      |      |      |      |      |                                               |      |      |      |      |      |      |
 | 
			
		||||
//  *          `----------------------------------+------+-------------.                   ,-------------+------+----------------------------------'
 | 
			
		||||
//  *                                             |      | Space|  TAB |                   |      |      |      |
 | 
			
		||||
//  *                                             |      |      |      |                   |      |      |      |
 | 
			
		||||
//  *                                             `--------------------'                   `--------------------'
 | 
			
		||||
//  */
 | 
			
		||||
    [_FUNL] = LAYOUT(
 | 
			
		||||
               KC_F12 , KC_F7  , KC_F8  , KC_F9  , KC_PAUS,                                        _______, _______, _______, _______, _______,
 | 
			
		||||
      _______, KC_F11 , KC_F4  , KC_F5  , KC_F6  , KC_PSCR,                                        _______, _______, _______, _______, _______, _______,
 | 
			
		||||
      _______, KC_F10 , KC_F1  , KC_F2  , KC_F3  , KC_CAPS,                                        _______, _______, _______, _______, _______, _______,
 | 
			
		||||
                                                   _______, KC_SPC , KC_TAB  ,    _______, _______, _______
 | 
			
		||||
    ),
 | 
			
		||||
 | 
			
		||||
// /*
 | 
			
		||||
//  * Adjustment Layer (Left)
 | 
			
		||||
//  *
 | 
			
		||||
//  *                 ,----------------------------------.                                               ,----------------------------------.
 | 
			
		||||
//  *                 |      |      |      |      |      |                                               |      |      |      |      |      |      
 | 
			
		||||
//  *                 |      |      |      |      |      |                                               |      |      |      |      |      |      
 | 
			
		||||
//  *          ,------+------+------+------+------+------|                                               |------+------+------+------+------+------.
 | 
			
		||||
//  *          |      |M Prev| VolDn| VolDn|M Next|      |                                               |      |      |      |      |      |      |
 | 
			
		||||
//  *          |      |      |      |      |      |      |                                               |      |      |      |      |      |      |
 | 
			
		||||
//  *          |------+------+------+------+------+------|                                               |------+------+------+------+------+------|
 | 
			
		||||
//  *          |      |      |      | Mute | Play |      |                                               |      |      |      |      |      |      |
 | 
			
		||||
//  *          |      |      |      |      |      |      |                                               |      |      |      |      |      |      |
 | 
			
		||||
//  *          `----------------------------------+------+-------------.                   ,-------------+------+----------------------------------'
 | 
			
		||||
//  *                                             |      | Space| TAB  |                   |      |      |      |
 | 
			
		||||
//  *                                             |      |      |      |                   |      |      |      |
 | 
			
		||||
//  *                                             `--------------------'                   `--------------------'
 | 
			
		||||
//  */
 | 
			
		||||
    [_ADJL] = LAYOUT(
 | 
			
		||||
               _______, _______, _______, _______, _______,                                        _______, _______, _______, _______, _______,
 | 
			
		||||
      _______, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT, _______,                                        _______, _______, _______, _______, _______, _______,
 | 
			
		||||
      _______, _______, _______, KC_MUTE, KC_MPLY, _______,                                        _______, _______, _______, _______, _______, _______,
 | 
			
		||||
                                                   _______, KC_SPC , KC_TAB  ,    _______, _______, _______
 | 
			
		||||
    ),
 | 
			
		||||
 | 
			
		||||
// -------------------------------------------------------- TEMPLATE -------------------------------------------------------------------------------------
 | 
			
		||||
// /*
 | 
			
		||||
//  * Layer
 | 
			
		||||
//  *
 | 
			
		||||
//  *                 ,----------------------------------.                                               ,----------------------------------.
 | 
			
		||||
//  *                 |      |      |      |      |      |                                               |      |      |      |      |      |      
 | 
			
		||||
//  *                 |      |      |      |      |      |                                               |      |      |      |      |      |      
 | 
			
		||||
//  *          ,------+------+------+------+------+------|                                               |------+------+------+------+------+------.
 | 
			
		||||
//  *          |      |      |      |      |      |      |                                               |      |      |      |      |      |      |
 | 
			
		||||
//  *          |      |      |      |      |      |      |                                               |      |      |      |      |      |      |
 | 
			
		||||
//  *          |------+------+------+------+------+------|                                               |------+------+------+------+------+------|
 | 
			
		||||
//  *          |      |      |      |      |      |      |                                               |      |      |      |      |      |      |
 | 
			
		||||
//  *          |      |      |      |      |      |      |                                               |      |      |      |      |      |      |
 | 
			
		||||
//  *          `----------------------------------+------+-------------.                   ,-------------+------+----------------------------------'
 | 
			
		||||
//  *                                             |      |      |      |                   |      |      |      |
 | 
			
		||||
//  *                                             |      |      |      |                   |      |      |      |
 | 
			
		||||
//  *                                             `--------------------'                   `--------------------'
 | 
			
		||||
//  */
 | 
			
		||||
//     [_LAYERINDEX] = LAYOUT(
 | 
			
		||||
//                _______, _______, _______, _______, _______,                                        _______, _______, _______, _______, _______,
 | 
			
		||||
//       _______, _______, _______, _______, _______, _______,                                        _______, _______, _______, _______, _______, _______,
 | 
			
		||||
//       _______, _______, _______, _______, _______, _______,                                        _______, _______, _______, _______, _______, _______,
 | 
			
		||||
//                                                    _______, _______, _______,    _______, _______, _______
 | 
			
		||||
//     ),
 | 
			
		||||
// --------------------------------------------------------------------------------------------------------------------------------------------------------
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// uncommint this and modify the timings if the home row mods are not working for you
 | 
			
		||||
/*
 | 
			
		||||
uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
 | 
			
		||||
    switch (keycode) {
 | 
			
		||||
        case GUI_A:
 | 
			
		||||
            return TAPPING_TERM + 150;
 | 
			
		||||
        case ALT_S:
 | 
			
		||||
            return TAPPING_TERM + 50;
 | 
			
		||||
        case ALT_L:
 | 
			
		||||
            return TAPPING_TERM + 50;
 | 
			
		||||
        case GUI_SCL:
 | 
			
		||||
            return TAPPING_TERM + 150;
 | 
			
		||||
        default:
 | 
			
		||||
            return TAPPING_TERM;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#ifdef HAPTIC_ENABLE
 | 
			
		||||
 | 
			
		||||
bool get_haptic_enabled_key(uint16_t keycode, keyrecord_t *record) {
 | 
			
		||||
    switch (keycode) {
 | 
			
		||||
        case KC_BTN1 ... KC_BTN5:
 | 
			
		||||
            return true;
 | 
			
		||||
            break;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return false;
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										7
									
								
								keyboards/buzzard/keymaps/default/rules.mk
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								keyboards/buzzard/keymaps/default/rules.mk
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
			
		||||
OLED_ENABLE = yes				# uncomment if you are using an OLED display
 | 
			
		||||
 | 
			
		||||
#HAPTIC_ENABLE = yes			# uncomment only on the master side if you are using a Pimoroni haptic buzz
 | 
			
		||||
#HAPTIC_DRIVER = DRV2605L		# uncomment only on the master side if you are using a Pimoroni haptic buzz
 | 
			
		||||
 | 
			
		||||
#PS2_MOUSE_ENABLE = yes			# uncomment only on the master side if you are usin a TrackPoint
 | 
			
		||||
MOUSEKEY_ENABLE = yes
 | 
			
		||||
							
								
								
									
										29
									
								
								keyboards/buzzard/readme.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								keyboards/buzzard/readme.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,29 @@
 | 
			
		||||
# Buzzard
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
Buzzard is a 40 keys ergonomic split keyboard. The layout is inspired by the [Architeuthis dux](https://github.com/tapioki/cephalopoda/tree/main/Architeuthis%20dux) with pinky, ring, index, and inner columns splayed at 15, 5, 0, -5, -5 degrees. However, it as two additional pinky keys and a modified thumb cluster.
 | 
			
		||||
 | 
			
		||||
* Keyboard Maintainer: [crehmann](https://github.com/crehmann)  
 | 
			
		||||
* Hardware Supported: Pro Micro 5V/16MHz and compatible.
 | 
			
		||||
* Hardware Availability: https://github.com/crehmann/Buzzard
 | 
			
		||||
 | 
			
		||||
## Some Features:
 | 
			
		||||
 | 
			
		||||
- Integrated TrackPoint reset circuit and two possible positions to mount a TrackPoint to the bottom of the PCB. Either between the two inner columns or between the index and middle finger columns
 | 
			
		||||
- Mounting option for a linear actuator ([HapticBuzz from pimoroni](https://shop.pimoroni.com/products/drv2605l-linear-actuator-haptic-breakout))
 | 
			
		||||
- I2C interface for an OLED display
 | 
			
		||||
- Wireless Ready (however, without TrackPoint / linear actuator support):
 | 
			
		||||
  - Battery switch / connector
 | 
			
		||||
  - Option to use a battery friendly Sharp memory display instead of an OLED display
 | 
			
		||||
- Choc-spaced
 | 
			
		||||
 | 
			
		||||
## Building the Firmware
 | 
			
		||||
 | 
			
		||||
Make example for this keyboard (after setting up your build environment):
 | 
			
		||||
 | 
			
		||||
    qmk compile -kb buzzard -km  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).
 | 
			
		||||
 | 
			
		||||
A build guide for the Buzzard keyboard can be found at [https://github.com/crehmann/Buzzard](https://github.com/crehmann/Buzzard)
 | 
			
		||||
							
								
								
									
										62
									
								
								keyboards/buzzard/rev1/config.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								keyboards/buzzard/rev1/config.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,62 @@
 | 
			
		||||
// Copyright 2021 Christoph Rehmann (crehmann)
 | 
			
		||||
// SPDX-License-Identifier: GPL-2.0-or-later
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
/* USB Device descriptor parameter */
 | 
			
		||||
#define VENDOR_ID    0xFEED 
 | 
			
		||||
#define PRODUCT_ID   0xB077
 | 
			
		||||
#define DEVICE_VER   0x0001
 | 
			
		||||
#define MANUFACTURER crehmann
 | 
			
		||||
#define PRODUCT      Buzzard
 | 
			
		||||
 | 
			
		||||
/* key matrix size */
 | 
			
		||||
/* Rows are doubled up */
 | 
			
		||||
#define MATRIX_ROWS  8
 | 
			
		||||
#define MATRIX_COLS  6
 | 
			
		||||
 | 
			
		||||
// wiring
 | 
			
		||||
#define MATRIX_ROW_PINS \
 | 
			
		||||
    { F4, F5, F6, F7 }
 | 
			
		||||
#define MATRIX_COL_PINS \
 | 
			
		||||
    { B1, B3, B2, B6, B5, B4}
 | 
			
		||||
#define UNUSED_PINS
 | 
			
		||||
 | 
			
		||||
/* COL2ROW, ROW2COL*/
 | 
			
		||||
#define DIODE_DIRECTION COL2ROW
 | 
			
		||||
 | 
			
		||||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
 | 
			
		||||
#define DEBOUNCE        5
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
 | 
			
		||||
 */
 | 
			
		||||
#define SOFT_SERIAL_PIN D2
 | 
			
		||||
 | 
			
		||||
/* 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
 | 
			
		||||
 | 
			
		||||
#ifdef OLED_ENABLE
 | 
			
		||||
#define OLED_DISPLAY_128X32
 | 
			
		||||
#define SPLIT_OLED_ENABLE
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef PS2_USE_INT
 | 
			
		||||
#define PS2_CLOCK_PIN   E6
 | 
			
		||||
#define PS2_DATA_PIN    D7
 | 
			
		||||
 | 
			
		||||
#define PS2_INT_INIT()  do {    \
 | 
			
		||||
    EICRB |= ((1<<ISC61) |      \
 | 
			
		||||
              (0<<ISC60));      \
 | 
			
		||||
    } while (0)
 | 
			
		||||
#define PS2_INT_ON()  do {      \
 | 
			
		||||
     EIMSK |= (1<<INT6);        \
 | 
			
		||||
} while (0)
 | 
			
		||||
#define PS2_INT_OFF() do {      \
 | 
			
		||||
    EIMSK &= ~(1<<INT6);        \
 | 
			
		||||
} while (0)
 | 
			
		||||
#define PS2_INT_VECT   INT6_vect
 | 
			
		||||
#define PS2_MOUSE_ROTATE 270 /* Compensate for East-facing device orientation. */
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										128
									
								
								keyboards/buzzard/rev1/rev1.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										128
									
								
								keyboards/buzzard/rev1/rev1.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,128 @@
 | 
			
		||||
// Copyright 2021 Christoph Rehmann (crehmann)
 | 
			
		||||
// SPDX-License-Identifier: GPL-2.0-or-later
 | 
			
		||||
#include "rev1.h"
 | 
			
		||||
 | 
			
		||||
#ifdef HAPTIC_ENABLE
 | 
			
		||||
#include "drivers/haptic/DRV2605L.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef SWAP_HANDS_ENABLE
 | 
			
		||||
// clang-format off
 | 
			
		||||
__attribute__ ((weak)) const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
    {{0, 4}, {1, 4}, {2, 4}, {3, 4}, {4, 4}, {5, 4},
 | 
			
		||||
    {{0, 5}, {1, 5}, {2, 5}, {3, 5}, {4, 5}, {5, 5},
 | 
			
		||||
    {{0, 6}, {1, 6}, {2, 6}, {3, 6}, {4, 6}, {5, 6},
 | 
			
		||||
    {{0, 7}, {1, 7}, {2, 7}, {3, 7}, {4, 7}, {5, 7},
 | 
			
		||||
    {{0, 0}, {1, 0}, {2, 0}, {3, 0}, {4, 0}, {5, 0},
 | 
			
		||||
    {{0, 1}, {1, 1}, {2, 1}, {3, 1}, {4, 1}, {5, 1},
 | 
			
		||||
    {{0, 2}, {1, 2}, {2, 2}, {3, 2}, {4, 2}, {5, 2},
 | 
			
		||||
    {{0, 3}, {1, 3}, {2, 3}, {3, 3}, {4, 3}, {5, 3}
 | 
			
		||||
};
 | 
			
		||||
// clang-format on
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef OLED_ENABLE
 | 
			
		||||
oled_rotation_t oled_init_kb(oled_rotation_t rotation) { return OLED_ROTATION_270; }
 | 
			
		||||
 | 
			
		||||
bool oled_task_kb(void) {
 | 
			
		||||
    if (!oled_task_user()) {
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (is_keyboard_master()) {
 | 
			
		||||
        static const char PROGMEM base_logo[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0xc6, 0xc6, 0xee, 0xfe, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x3f, 0x3f, 0x30, 0x30, 0x39, 0x3f, 0x1f, 0x04, 0x00, 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, 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, 0x00, 0x00, 0x80, 0xf8, 0xff, 0x9f, 0x8f, 0xff, 0xfc, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
                                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x0f, 0x0f, 0x03, 0x01, 0x01, 0x01, 0x0f, 0x0f, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0x60, 0x60, 0xe0, 0xc0, 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, 0xc7, 0xcf, 0x8f, 0x1c, 0x1c, 0x98, 0xf9, 0xf1, 0x00, 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, 0x03, 0x03, 0x03, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
                                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xf8, 0xf8, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc3, 0xc3, 0xc3, 0xc3, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
                                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
 | 
			
		||||
        static const char PROGMEM nav_logo[]  = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0x3e, 0xf8, 0xc0, 0x00, 0xfe, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x3f, 0x00, 0x01, 0x0f, 0x3e, 0x3f, 0x3f, 0x00, 0x00, 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, 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, 0x00, 0x00, 0x80, 0xf8, 0xff, 0x9f, 0x8f, 0xff, 0xfc, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
                                                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x0f, 0x0f, 0x03, 0x01, 0x01, 0x01, 0x0f, 0x0f, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xe0, 0xe0, 0x80, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x3f, 0xff, 0xf0, 0xe0, 0xff, 0x7f, 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, 0x03, 0x03, 0x03, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
                                                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
 | 
			
		||||
        static const char PROGMEM sym_logo[]  = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0xfc, 0xfe, 0xc6, 0xc6, 0x8e, 0x9c, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x1c, 0x38, 0x31, 0x31, 0x39, 0x1f, 0x1f, 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, 0x00, 0x00, 0x80, 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, 0x03, 0x0f, 0x7f, 0xf8, 0xf0, 0x7e, 0x1f, 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, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0xe0, 0x60, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x03, 0x0f, 0x0e, 0x07, 0xff, 0xff, 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, 0x00, 0x00, 0x00, 0x00, 0x03, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
                                                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
 | 
			
		||||
        static const char PROGMEM num_logo[]  = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0x3e, 0xf8, 0xc0, 0x00, 0xfe, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x3f, 0x00, 0x01, 0x0f, 0x3e, 0x3f, 0x3f, 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, 0x00, 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, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 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, 0x07, 0x0f, 0x0c, 0x0c, 0x0e, 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, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0xe0, 0x60, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x03, 0x0f, 0x0e, 0x07, 0xff, 0xff, 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, 0x00, 0x00, 0x00, 0x00, 0x03, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
                                                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
 | 
			
		||||
        static const char PROGMEM fun_logo[]  = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0x86, 0x86, 0x86, 0x86, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x3f, 0x3f, 0x01, 0x01, 0x01, 0x01, 0x01, 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, 0x00, 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, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 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, 0x07, 0x0f, 0x0c, 0x0c, 0x0e, 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, 0xe0, 0xe0, 0xe0, 0x80, 0x00, 0x00, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x03, 0x1f, 0xfc, 0xe0, 0xff, 0xff, 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, 0x00, 0x00, 0x00, 0x03, 0x03, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
                                                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
 | 
			
		||||
        static const char PROGMEM adj_logo[]  = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xfe, 0x7e, 0x3e, 0xfe, 0xf0, 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, 0x3e, 0x3f, 0x0f, 0x06, 0x06, 0x07, 0x3f, 0x3e, 0x20, 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, 0x80, 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, 0x00, 0x00, 0xff, 0xff, 0xff, 0x01, 0x01, 0x03, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
                                                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0c, 0x0c, 0x0e, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x60, 0x60, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0xff, 0xff, 0xff, 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, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
                                                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
                                                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
 | 
			
		||||
 | 
			
		||||
        // Host Keyboard LED Status
 | 
			
		||||
        led_t led_usb_state = host_keyboard_led_state();
 | 
			
		||||
        oled_write_P(led_usb_state.num_lock ? PSTR(" NUM ") : PSTR("     "), false);
 | 
			
		||||
        oled_write_P(led_usb_state.caps_lock ? PSTR(" CAP ") : PSTR("     "), false);
 | 
			
		||||
        oled_write_P(led_usb_state.scroll_lock ? PSTR(" SCR \n\n") : PSTR("     \n\n"), false);
 | 
			
		||||
 | 
			
		||||
        // Host Keyboard Layer Status
 | 
			
		||||
        switch (get_highest_layer(layer_state | default_layer_state)) {
 | 
			
		||||
            case 0:
 | 
			
		||||
                oled_write_raw_P(base_logo, sizeof(base_logo));
 | 
			
		||||
                break;
 | 
			
		||||
            case 1:
 | 
			
		||||
                oled_write_raw_P(nav_logo, sizeof(nav_logo));
 | 
			
		||||
                break;
 | 
			
		||||
            case 2:
 | 
			
		||||
                oled_write_raw_P(sym_logo, sizeof(sym_logo));
 | 
			
		||||
                break;
 | 
			
		||||
            case 3:
 | 
			
		||||
                oled_write_raw_P(num_logo, sizeof(num_logo));
 | 
			
		||||
                break;
 | 
			
		||||
            case 4:
 | 
			
		||||
                oled_write_raw_P(fun_logo, sizeof(fun_logo));
 | 
			
		||||
                break;
 | 
			
		||||
            case 5:
 | 
			
		||||
                oled_write_raw_P(adj_logo, sizeof(adj_logo));
 | 
			
		||||
                break;
 | 
			
		||||
            default:
 | 
			
		||||
                oled_write_P(PSTR("---\n"), false);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    } else {
 | 
			
		||||
        static const char PROGMEM buzzard_log[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x38, 0xf0, 0xf0, 0xe0, 0xc0, 0xc0, 0x80, 0x30, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
                                                   0x00, 0x00, 0x00, 0x03, 0x0f, 0x7f, 0xff, 0xff, 0xfc, 0xe3, 0x1f, 0xff, 0xff, 0xfe, 0xfc, 0x80, 0x3f, 0xfe, 0xfc, 0xf0, 0x00, 0x00, 0x80, 0xc0, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x1f, 0x7f, 0xfe, 0xf8, 0xc7, 0x3f, 0x7f, 0x7f, 0x00, 0x7f, 0x7f, 0x0f, 0xd8, 0xdd, 0xed, 0xee, 0xe6, 0x66, 0x63, 0x30, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x60, 0x30, 0x18, 0x88, 0x84, 0x04, 0x62, 0x02, 0x12, 0x11, 0xc1, 0x01, 0x21, 0x81, 0x81, 0x1a, 0x62, 0x02, 0x04, 0x04, 0xc8, 0x10, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x07, 0x00, 0x10, 0x50, 0x40, 0x0c, 0x30, 0x82, 0x98, 0x41, 0x41, 0x04, 0x10, 0x83, 0xc8, 0x08, 0x20, 0x86, 0x18, 0x41, 0x45, 0x04, 0x30, 0x82, 0x88, 0x08, 0x01, 0x0e, 0xf0,
 | 
			
		||||
                                                   0x00, 0x00, 0x0f, 0x30, 0xc0, 0x84, 0x14, 0x10, 0x43, 0x0c, 0x20, 0x22, 0x82, 0x18, 0x61, 0x04, 0x30, 0x30, 0xc3, 0x08, 0x20, 0x24, 0x84, 0x11, 0x41, 0x0c, 0x00, 0x02, 0x82, 0x60, 0x18, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x0c, 0x88, 0xd0, 0xd0, 0xd0, 0x26, 0xa0, 0xa1, 0x21, 0xa0, 0xa0, 0x22, 0xe0, 0xd0, 0xd1, 0xc8, 0xc8, 0x84, 0x86, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xf8, 0xfe, 0xff, 0x3f, 0xc7, 0xf8, 0xff, 0xff, 0x7f, 0x00, 0xff, 0xff, 0xfc, 0x06, 0x2f, 0x6d, 0xdd, 0x99, 0x19, 0x21, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xfc, 0xff, 0xff, 0x7f, 0x0f, 0xf1, 0xfe, 0x7f, 0x3f, 0x1f, 0x0f, 0x00, 0x3f, 0x1f, 0x0f, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
                                                   0x08, 0x07, 0x07, 0x03, 0x01, 0x01, 0x00, 0x00, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
 | 
			
		||||
        oled_write_raw_P(buzzard_log, sizeof(buzzard_log));
 | 
			
		||||
    }
 | 
			
		||||
    return false;
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
__attribute__((weak)) layer_state_t layer_state_set_user(layer_state_t state) {
 | 
			
		||||
    switch (get_highest_layer(state)) {
 | 
			
		||||
        case 1:
 | 
			
		||||
#ifdef HAPTIC_ENABLE
 | 
			
		||||
            DRV_pulse(soft_bump);
 | 
			
		||||
#endif
 | 
			
		||||
            break;
 | 
			
		||||
        case 2:
 | 
			
		||||
#ifdef HAPTIC_ENABLE
 | 
			
		||||
            DRV_pulse(sh_dblsharp_tick);
 | 
			
		||||
#endif
 | 
			
		||||
            break;
 | 
			
		||||
        case 3:
 | 
			
		||||
#ifdef HAPTIC_ENABLE
 | 
			
		||||
            DRV_pulse(lg_dblclick_str);
 | 
			
		||||
#endif
 | 
			
		||||
            break;
 | 
			
		||||
        case 4:
 | 
			
		||||
#ifdef HAPTIC_ENABLE
 | 
			
		||||
            DRV_pulse(soft_bump);
 | 
			
		||||
#endif
 | 
			
		||||
            break;
 | 
			
		||||
        case 5:
 | 
			
		||||
#ifdef HAPTIC_ENABLE
 | 
			
		||||
            DRV_pulse(pulsing_sharp);
 | 
			
		||||
#endif
 | 
			
		||||
            break;
 | 
			
		||||
    }
 | 
			
		||||
    return state;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										52
									
								
								keyboards/buzzard/rev1/rev1.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								keyboards/buzzard/rev1/rev1.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,52 @@
 | 
			
		||||
// Copyright 2021 Christoph Rehmann (crehmann)
 | 
			
		||||
// SPDX-License-Identifier: GPL-2.0-or-later
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include "buzzard.h"
 | 
			
		||||
 | 
			
		||||
/* This 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( \
 | 
			
		||||
         L00, L01, L02, L03, L04,                          R05, R06, R07, R08, R09,      \
 | 
			
		||||
    L10, L11, L12, L13, L14, L15,                          R16, R17, R18, R19, R20, R21, \
 | 
			
		||||
    L22, L23, L24, L25, L26, L27,                          R28, R29, R30, R31, R32, R33, \
 | 
			
		||||
                             L34, L35, L36,      R37, R38, R39 \
 | 
			
		||||
) \
 | 
			
		||||
{ \
 | 
			
		||||
    { L04,   L03,   L02,   L01,   L00,   KC_NO }, \
 | 
			
		||||
    { L15,   L14,   L13,   L12,   L11,   L10   }, \
 | 
			
		||||
    { L27,   L26,   L25,   L24,   L23,   L22   }, \
 | 
			
		||||
    { L36,   L35,   L34,   KC_NO, KC_NO, KC_NO }, \
 | 
			
		||||
    { R05,   R06,   R07,   R08,   R09,   KC_NO }, \
 | 
			
		||||
    { R16,   R17,   R18,   R19,   R20,   R21   }, \
 | 
			
		||||
    { R28,   R29,   R30,   R31,   R32,   R33   }, \
 | 
			
		||||
    { R37,   R38,   R39,   KC_NO, KC_NO, KC_NO }, \
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#define LAYOUT_stack(                               \
 | 
			
		||||
         L00, L01, L02, L03, L04,                   \
 | 
			
		||||
    L10, L11, L12, L13, L14, L15,                   \
 | 
			
		||||
    L22, L23, L24, L25, L26, L27,                   \
 | 
			
		||||
                   L34, L35, L36,                   \
 | 
			
		||||
                                                    \
 | 
			
		||||
                  R05, R06, R07, R08, R09,          \
 | 
			
		||||
                  R16, R17, R18, R19, R20, R21,     \
 | 
			
		||||
                  R28, R29, R30, R31, R32, R33,     \
 | 
			
		||||
                  R37, R38, R39                     \
 | 
			
		||||
)                                                   \
 | 
			
		||||
{                                                   \
 | 
			
		||||
    { L04,   L03,   L02,   L01,   L00,   KC_NO }, \
 | 
			
		||||
    { L15,   L14,   L13,   L12,   L11,   L10   }, \
 | 
			
		||||
    { L27,   L26,   L25,   L24,   L23,   L22   }, \
 | 
			
		||||
    { L36,   L35,   L34,   KC_NO, KC_NO, KC_NO }, \
 | 
			
		||||
    { R05,   R06,   R07,   R08,   R09,   KC_NO }, \
 | 
			
		||||
    { R16,   R17,   R18,   R19,   R20,   R21   }, \
 | 
			
		||||
    { R28,   R29,   R30,   R31,   R32,   R33   }, \
 | 
			
		||||
    { R37,   R38,   R39,   KC_NO, KC_NO, KC_NO }, \
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										3
									
								
								keyboards/buzzard/rev1/rules.mk
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								keyboards/buzzard/rev1/rules.mk
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,3 @@
 | 
			
		||||
OLED_DRIVER = SSD1306
 | 
			
		||||
 | 
			
		||||
PS2_USE_INT = yes
 | 
			
		||||
							
								
								
									
										22
									
								
								keyboards/buzzard/rules.mk
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								keyboards/buzzard/rules.mk
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,22 @@
 | 
			
		||||
# MCU name
 | 
			
		||||
MCU = atmega32u4
 | 
			
		||||
 | 
			
		||||
# Bootloader selection
 | 
			
		||||
BOOTLOADER = atmel-dfu
 | 
			
		||||
 | 
			
		||||
# Build Options
 | 
			
		||||
#   change yes to no to disable
 | 
			
		||||
#
 | 
			
		||||
BOOTMAGIC_ENABLE = no       # Enable Bootmagic Lite
 | 
			
		||||
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
 | 
			
		||||
NKRO_ENABLE = no            # Enable N-Key Rollover
 | 
			
		||||
BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
 | 
			
		||||
RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow
 | 
			
		||||
AUDIO_ENABLE = no           # Audio output
 | 
			
		||||
SPLIT_KEYBOARD = yes
 | 
			
		||||
LTO_ENABLE = yes
 | 
			
		||||
 | 
			
		||||
DEFAULT_FOLDER = buzzard/rev1
 | 
			
		||||
		Reference in New Issue
	
	Block a user