[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:
parent
d7eb09949d
commit
2e19d0d7d1
18 changed files with 999 additions and 0 deletions
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
|
Loading…
Add table
Add a link
Reference in a new issue