1
0
Fork 0

[Keymap] add brandonschlack userspace and keymaps (#10411)

This commit is contained in:
Brandon Schlack 2020-11-04 21:55:03 -08:00 committed by GitHub
parent 262a607334
commit f12dcb0659
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
80 changed files with 5712 additions and 0 deletions

View file

@ -0,0 +1,173 @@
/* Copyright 2020 Brandon Schlack
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
#include "brandonschlack.h"
/**
* Layer Names
*
* Layers mostly used for macro keys
*/
#define _REEDER _M1
#define _NAV _M2
#define _MOUSE _M3
/**
* Keycodes & Macros
*/
#define TG_BASE TO(_BASE)
#define TG_REDR TO(_REEDER)
#define TG_NAV TO(_NAV)
#define TG_MOUS TO(_MOUSE)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/**
* Base
*
* EscTab   Q  W  E  R  T  Y  U  I  O  P { [} ]Bck
*
* PgUHyEsc  A  S  D  F  G  H  J  K  L : ;" '│ Enter│
*
* PgDShift    Z  X  C  V  B  N  M < ,> .? /Shft Fn
*
* EndOptCmd                      CmdCtl
*
*/
[_BASE] = LAYOUT_default(
KC_ESC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, \
KC_PGUP, HY_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \
KC_PGDN, KC_LSFT, XXXXXXX, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, PLY_FN1, \
KC_END, KC_LOPT, KC_LCMD, SPC_RAI, SPC_RAI, KC_RCMD, KC_RCTL \
),
/**
* Reeder
*
*  P                                             
*
*  K                                              
*
*  J                                              
*
*  N                                   
*
*/
[_REEDER] = LAYOUT_default( \
KC_P, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
KC_K, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
KC_J, _______, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
KC_N, _______, _______, _______, _______, _______, _______ \
),
/**
* Nav
*
*                                               
*
*                                                
*
*                                                
*
*                                     
*
*/
[_NAV] = LAYOUT_default( \
KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
KC_DOWN, _______, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
KC_LEFT, _______, _______, _______, _______, _______, _______ \
),
/**
* Mouse
*
* WhU                                            
*
*                                                
*
*                                                
*
* WhD                                  
*
*/
[_MOUSE] = LAYOUT_default( \
MC_WH_U, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
KC_DOWN, _______, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
MC_WH_D, _______, _______, _______, _______, _______, _______ \
),
/**
* Lower
*
* NxtDel  BrDBrUMsnLHP                    MutSlD
*
* VlUHyCaps      NxWPvTBckFwdNxT           Play 
*
* VlD                 1PX1Ps                     
*
* Prv                                  
*
*/
[_LOWER] = LAYOUT_default( \
KC_MNXT, KC_DELT, KC_BRMD, KC_BRMU, MC_MSSN, MC_LHPD, _______, _______, _______, _______, _______, _______, KC_UP, KC_MUTE, MC_SLPD, \
KC_VOLU, HY_CAPS, _______, _______, NXT_WIN, PRV_TAB, MC_BACK, MC_FWRD, NXT_TAB, _______, _______, KC_LEFT, KC_RGHT, KC_MPLY, \
KC_VOLD, _______, XXXXXXX, _______, _______, _______, PX_AFLL, OP_AFLL, _______, _______, _______, _______, KC_DOWN, _______, _______, \
KC_MPRV, _______, _______, _______, _______, _______, _______ \
),
/**
* Raise
*
* Hom~ `  ! 1@ 2# 3$ 4% 5^ 6& 7* 8( 9) 0_ -+ =   
*
* PgU       F1 F2 F3 F4 F5 F6_ -+ =               
*
* PgD         F7 F8 F9F10F11F12         | \       
*
* End                                  
*
*/
[_RAISE] = LAYOUT_default( \
KC_HOME, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, _______, \
KC_PGUP, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, _______, _______, _______, _______, \
KC_PGDN, _______, XXXXXXX, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, KC_BSLS, _______, _______, \
KC_END, _______, _______, _______, _______, _______, _______ \
),
/**
* Adjust
*
* BseMake       EEPRST                           
*
* Rdr                                             
*
* Nav                                             
*
* Mse                                  
*
*/
[_ADJUST] = LAYOUT_default( \
TG_BASE, QM_MAKE, _______, _______, EEP_RST, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
TG_REDR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
TG_NAV, _______, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
TG_MOUS, _______, _______, _______, _______, _______, _______ \
),
};
void keyboard_post_init_keymap(void) {
rgblight_disable_noeeprom();
}
layer_state_t layer_state_set_keymap(layer_state_t state) {
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
}

View file

@ -0,0 +1,60 @@
/* Copyright 2019 Brandon Schlack
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
#include "brandonschlack.h"
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Base Layer
*
* Esc! 1@ 2# 3$ 4% 5^ 6& 7* 8( 9) 0_ -+ = BckspcHom
*
* Tab Q W E R T Y U I O P { [} ]| \PgU
*
* HyCaps A S D F G H J K L : ;" '│ Enter│PgD│
*
* Shift Z X C V B N M < ,> .? / Shift UpEnd
*
* Ctrl Opt Cmd Space Cmd FnPlyLefDowRig
*
*/
[_BASE] = LAYOUT_65_ansi_2_right_mods( \
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, \
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, \
HY_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, \
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, \
KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, PLY_FN1, KC_LEFT, KC_DOWN, KC_RGHT \
),
/* Function Layer
*
* ` ~ F1 F2 F3 F4 F5 F6 F7 F8 F9F10F11F12 Del SlD
*
* F13F14F15 LHP VlU
*
* VlD
*
* RST MkePrvNxtPly PgUMut
*
* HomPgDEnd
*
*/
[_FN1] = LAYOUT_65_ansi_2_right_mods( \
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DELT, MC_SLPD, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_F13, KC_F14, KC_F15, MC_LHPD, KC_VOLU, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, \
_______, _______, _______, _______, _______, RESET, _______, QM_MAKE, KC_MPRV, KC_MNXT, KC_MPLY, _______, KC_PGUP, KC_MUTE, \
_______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END \
)
};

View file

@ -0,0 +1,111 @@
/* Copyright 2020 Brandon Schlack
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
#include "brandonschlack.h"
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Base Layer
*
* Tab Q W E R T Y U I O P Bspc
*
* HyEsc A S D F G H J K L Enter
*
* Shift Z X C V B N M < ,> . ?/Sft
*
* CtrlOptCmd Space  CmdOpt Lwr
*
*/
[_BASE] = LAYOUT_ansi_40( \
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \
HY_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, \
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, SF_SLSH, \
KC_LCTL, KC_LOPT, KC_LCMD, SPC_RAI, KC_RCMD, KC_ROPT, LOWER \
),
/* Lower
*
* Del BrDBrUMsnLHP         PgUHomEnd SlpD
*
* HyCapsMutVlUNxWPvTBckFwdNxTPgD   Play
*
* PrvVlDNxt1PX1Ps         
*
*
*
*/
[_LOWER] = LAYOUT_ansi_40( \
KC_DELT, KC_BRMD, KC_BRMU, MC_MSSN, MC_LHPD, _______, _______, _______, KC_PGUP, KC_HOME, KC_END, MC_SLPD, \
HY_CAPS, KC_MUTE, KC_VOLU, NXT_WIN, PRV_TAB, MC_BACK, MC_FWRD, NXT_TAB, KC_PGDN, KC_UP, KC_MPLY, \
_______, KC_MPRV, KC_VOLD, KC_MNXT, PX_AFLL, OP_AFLL, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, \
_______, _______, _______, _______, _______, _______, _______ \
),
/* Raise
*
* ~ `  ! 1@ 2# 3$ 4% 5^ 6& 7* 8( 9) 0
*
*       F1 F2 F3 F4 F5 F6_ -+ =: ; " '│
*
*  F7 F8 F9F10F11F12   { [} ] |\Sft
*
*            
*
*/
[_RAISE] = LAYOUT_ansi_40( \
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, \
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_SCLN, KC_QUOT, \
_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_LBRC, KC_RBRC, SF_BSLS, \
_______, _______, _______, _______, _______, _______, _______ \
),
/* Adjust/Macro Layer
*
* Make       EEPRST     
*
*
*
*
*
*
*
*/
[_ADJUST] = LAYOUT_ansi_40( \
QM_MAKE, _______, _______, EEP_RST, RESET, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______ \
)
/* Blank Layer
*
*
*
*
*
*
*
*
*
*/
/*
[BLANK] = LAYOUT_ansi_40( \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______ \
)
*/
};
layer_state_t layer_state_set_keymap(layer_state_t state) {
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
}

View file

@ -0,0 +1,20 @@
/* Copyright 2019 Brandon Schlack
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#undef RGBLIGHT_ANIMATIONS
#define RGBLIGHT_EFFECT_BREATHING // Only have Breathing Animation

View file

@ -0,0 +1,80 @@
/* Copyright 2019 Brandon Schlack
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
#include "brandonschlack.h"
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Base Layer
*
* Esc! 1@ 2# 3$ 4% 5^ 6& 7* 8( 9) 0_ -+ = BckspcPgU
*
* Tab Q W E R T Y U I O P { [} ]| \PgD
*
* HyCaps A S D F G H J K L : ;" '│ Enter│ │
*
* Shift Z X C V B N M < ,> .? / Shift Up
*
* Ctrl Opt Cmd Space Cmd FnPy LefDowRig
*
*/
[_BASE] = LAYOUT_65_ansi_blocker( \
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, \
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, \
HY_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, XXXXXXX, \
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, XXXXXXX, \
KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, PLY_FN1, KC_LEFT, KC_DOWN, KC_RGHT \
),
/* Function Layer
*
* ` ~ F1 F2 F3 F4 F5 F6 F7 F8 F9F10F11F12 DeleteVlU
*
* RMod RH+RS+RV+ F13F14F15 SlpDVlD
*
* RTgl RH-RS-RV- MNCLHP
*
* LYRThm RST MkePrvNxtPlyMteSftPgU
*
* HomPgDEnd
*
*/
[_FN1] = LAYOUT_65_ansi_blocker( \
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DELT, KC_VOLU, \
RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, KC_F13, KC_F14, KC_F15, MC_SLPD, KC_VOLD, \
RGB_TOG, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, MC_MSSN, MC_LHPD, _______, XXXXXXX, \
_______, RGB_LYR, RGB_THM, _______, _______, RESET, _______, QM_MAKE, KC_MPRV, KC_MNXT, KC_MPLY, MUT_SFT, KC_PGUP, XXXXXXX, \
_______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END \
),
/* Blank Layout
*
*
*
*
*
*
*
*
*
*
*
[X] = LAYOUT_65_ansi_blocker( \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______ \
),
*/
};

View file

@ -0,0 +1,9 @@
# brandonschlack's Think6.5 keymap
My keymap for the Think6.5. Using the `LAYOUT_65_ansi_blocker` LAYOUT and based on my keyboard-agnostic layout, some small changes for the navigation keys not present due to the badge.
## [Base Layer](http://www.keyboard-layout-editor.com/#/gists/b396fee9f49d6e9493876e82a8ee99ac)
![Base Layer](https://i.imgur.com/AZYVuZS.jpg)
## [Function Layer](http://www.keyboard-layout-editor.com/#/gists/06e684133399bb63d8b72ac6982e0e68)
![Function Layer](https://i.imgur.com/GbOOxME.jpg)

View file

@ -0,0 +1,2 @@
# Build Options
MOUSEKEY_ENABLE = no # Don't need mouse keys

View file

@ -0,0 +1,102 @@
/* Copyright 2019 Brandon Schlack
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
#include "brandonschlack.h"
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Base Layer
*
* Esc! 1@ 2# 3$ 4% 5^ 6& 7* 8( 9) 0_ -+ =| \~ `Hom
*
* Tab Q W E R T Y U I O P { [} ] BspcPgU
*
* Caps A S D F G H J K L : ;" '│ Enter│PgD│
*
* Shift Z X C V B N M < ,> .? / Shift UpEnd
*
* Ctrl Opt Cmd Space Cmd FnPy LefDowRig
*
*/
[_BASE] = LAYOUT(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, KC_HOME, \
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, KC_PGUP, \
HY_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, \
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, \
KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, PLY_FN1, KC_LEFT, KC_DOWN, KC_RGHT),
/* Function Layer
*
* MKE F1 F2 F3 F4 F5 F6 F7 F8 F9F10F11F12LHPMSNSLP
*
* RST F13F14F15 DelVlU
*
* KMP Adjust VlD
*
* VRN PrvNxtPly PgUMut
*
* HomPgDEnd
*
*/
[_FN1] = LAYOUT(
QM_MAKE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, MC_LHPD, MC_MSSN, MC_SLPD, \
_______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, KC_F13, KC_F14, KC_F15, KC_DEL, KC_VOLU, \
_______, _______, _______, _______, _______, _______, _______, _______, QM_KYMP, _______, _______, _______, TG_ADJT, KC_VOLD, \
_______, _______, _______, _______, QM_VRSN, _______, _______, _______, KC_MPRV, KC_MNXT, KC_MPLY, _______, KC_PGUP, KC_MUTE, \
_______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END ),
/* Adjust Layer Layer
*
*
*
* EEPRST
*
* Adjust
*
*
*
*
*
*/
[_ADJUST] = LAYOUT(
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, EEP_RST, RESET, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, TG_ADJT, XXXXXXX, \
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, \
_______, _______, _______, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX),
};
/* Blank Template
*
*
*
*
*
*
*
*
*
*
*
*/
/*
[_BLANK] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______),
};
*/

View file

@ -0,0 +1,2 @@
# Build Options
BOOTMAGIC_ENABLE = full # Use full Bootmagic

View file

@ -0,0 +1,102 @@
/* Copyright 2019 Brandon Schlack
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
#include "brandonschlack.h"
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Base Layer
*
* Esc! 1@ 2# 3$ 4% 5^ 6& 7* 8( 9) 0_ -+ =| \~ `Hom
*
* Tab Q W E R T Y U I O P { [} ] BspcPgU
*
* Caps A S D F G H J K L : ;" '│ Enter│PgD│
*
* Shift Z X C V B N M < ,> .? / Shift UpEnd
*
* Ctrl Opt Cmd Space Cmd FnPy LefDowRig
*
*/
[_BASE] = LAYOUT_all(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, KC_HOME, \
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, KC_PGUP, \
HY_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, \
KC_LSFT, XXXXXXX, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, \
KC_LCTL, KC_LOPT, KC_LCMD, XXXXXXX, KC_SPC, XXXXXXX, KC_RCMD, PLY_FN1, XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT),
/* Function Layer
*
* MKE F1 F2 F3 F4 F5 F6 F7 F8 F9F10F11F12LHPMSNSLP
*
* RMod RH+RS+RV+RST F13F14F15 DelVlU
*
* RH-RS-RV- KMP Adjust VlD
*
* RTgRLyRThVRN PrvNxtPly PgUMut
*
* HomPgDEnd
*
*/
[_FN1] = LAYOUT_all(
QM_MAKE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, MC_LHPD, MC_MSSN, MC_SLPD, \
RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RESET, _______, _______, _______, _______, _______, KC_F13, KC_F14, KC_F15, KC_DEL, KC_VOLU, \
_______, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, QM_KYMP, _______, _______, _______, TG_ADJT, KC_VOLD, \
_______, XXXXXXX, RGB_TOG, RGB_LYR, RGB_THM, QM_VRSN, _______, _______, _______, KC_MPRV, KC_MNXT, KC_MPLY, _______, KC_PGUP, KC_MUTE, \
_______, _______, _______, XXXXXXX, _______, XXXXXXX, _______, _______, XXXXXXX, KC_HOME, KC_PGDN, KC_END ),
/* Adjust Layer Layer
*
*
*
* EEPRST
*
* Adjust
*
*
*
*
*
*/
[_ADJUST] = LAYOUT_all(
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, EEP_RST, RESET, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, TG_ADJT, XXXXXXX, \
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, \
_______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX),
};
/* Blank Template
*
*
*
*
*
*
*
*
*
*
*
*/
/*
[_BLANK] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______),
};
*/

View file

@ -0,0 +1,3 @@
# Build Options
MOUSEKEY_ENABLE = no # Don't need mouse keys
BACKLIGHT_ENABLE = no # Backlights not installed

View file

@ -0,0 +1,25 @@
/* Copyright 2020 Brandon Schlack
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#define ENCODER_DIRECTION_FLIP
#undef RGBLIGHT_ANIMATIONS
#define RGBLIGHT_EFFECT_BREATHING // Only have Breathing Animation
/* Mouse Keys Configuration */
#define MK_3_SPEED
#define MK_W_INTERVAL_UNMOD 20

View file

@ -0,0 +1,393 @@
/* Copyright 2020 Brandon Schlack
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
#include "brandonschlack.h"
/**
* Layer Names
*/
enum bdn9_layers {
_REEDER = 0,
_MEDIA,
_NAVI,
_KARABINER,
LR_NAV,
LR_REVIEW,
LR_EDIT
};
#define _AUDIO 13
#define _LIGHT 14
/**
* Keycodes & Macros
*/
#define DF_REDR DF(_REEDER) // Set Default Layer to Reeder shortcuts
#define DF_MEDA DF(_MEDIA) // Set Default Layer to Media controls
#define DF_NAVI DF(_NAVI) // Set Default Layer to Navigation shortcuts
#define DF_KBNR DF(_KARABINER) // Set Default Layer to Basic Macro keys
enum bdn9_keycodes {
TG_LNAV = KEYMAP_SAFE_RANGE,
TG_REVW,
TG_EDIT
};
/**
* Tap Dances
*
* Use tap dance for layer changes
*/
enum bdn9_dances {
TD_DTAP_ADIO = 0,
TD_DTAP_LGHT,
TD_DTAP_ADJT
};
// Tap Dance Definitions
qk_tap_dance_action_t tap_dance_actions[] = {
[TD_DTAP_ADIO] = ACTION_TAP_DANCE_TRIGGER_LAYER(DOUBLE_TAP, _AUDIO),
[TD_DTAP_LGHT] = ACTION_TAP_DANCE_TRIGGER_LAYER(DOUBLE_TAP, _LIGHT),
[TD_DTAP_ADJT] = ACTION_TAP_DANCE_TRIGGER_LAYER(DOUBLE_TAP, _ADJUST),
};
// Tap Dance Aliases
#if defined(RGBLIGHT_ENABLE)
#define DTP_AVC TD(TD_DTAP_LGHT) //
#elif defined(AUDIO_ENABLE)
#define DTP_AVC TD(TD_DTAP_ADIO)
#endif
#define DTP_ADJ TD(TD_DTAP_ADJT)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
Layer: Reeder
   Items         Subs   
  Prv  Nxt     Prv  Nxt 
 VwBrsw   Star    Sync  
 CmdTab  TgRead   Clear 
 VwStard VwUnrd   VwAll 
*/
[_REEDER] = LAYOUT(
KC_H, KC_S, KC_R,
CMD_TAB, KC_M, DTP_AVC,
G(KC_1), G(KC_2), DTP_ADJ
),
/*
Layer: Media
  
    Vol         Track   
  Prv  Nxt     Prv  Nxt 
  Mute   Player   Sync  
 YT<10s  YT Ply  YT>10s 
  Left    Spce    Rght  
*/
[_MEDIA] = LAYOUT(
KC_MUTE, MC_PLYR, KC_MPLY,
KC_J, KC_K, DTP_AVC,
KC_LEFT, KC_SPC, DTP_ADJ
),
/*
Layer: Navigation
  
  Scroll         Tab    
  Up   Dn      Prv  Nxt 
 ReOTab  CmdTab  ClsTab 
  PgDn     Up     PgUp  
  Left    Down    Rght  
*/
[_NAVI] = LAYOUT(
REO_TAB, CMD_TAB, CLS_TAB,
KC_PGDN, KC_UP, DTP_AVC,
KC_LEFT, KC_DOWN, DTP_ADJ
),
/*
Layer: Macro/Karabiner
  
                        
   -    +       .    =  
    1       2       3   
    4       5       6   
    7       8       9   
*/
[_KARABINER] = LAYOUT(
KC_P1, KC_P2, KC_P3,
KC_P4, KC_P5, DTP_AVC,
KC_P7, KC_P8, DTP_ADJ
),
/*
Layer: Lightroom Navigation
  
 Thumbnail    Scrl Grid 
 Dec   Inc    Up     Dn 
 TgRevw CylGrdVw TgEdit 
  Start    Up     End   
  Left    Down    Rght  
*/
[LR_NAV] = LAYOUT(
TG_REVW, KC_J, TG_EDIT,
KC_HOME, KC_UP, DTP_AVC,
KC_LEFT, KC_DOWN, DTP_ADJ
),
/*
Layer: Review/Rate
  
   Stars        Flag    
 Dec   Inc    Dec   Inc 
 TgLNav  Yellow  TgEdit 
 NoStar   Green  UnFlag 
  Left    Blue    Rght  
*/
[LR_REVIEW] = LAYOUT(
TG_LNAV, KC_7, TG_EDIT,
KC_0, KC_8, DTP_AVC,
KC_LEFT, KC_6, DTP_ADJ
),
/*
Layer: Edit/Develop
  
  Sliders       Value   
 Prv   Nxt    Dec   Inc 
 TgRevw  Bf/Aft  TgLNav 
 FlgRjt   Undo   FlgPkd 
  Left    Redo    Rght  
*/
[LR_EDIT] = LAYOUT(
TG_REVW, KC_BSLS, TG_LNAV,
KC_X, MC_UNDO, DTP_AVC,
KC_LEFT, MC_REDO, DTP_ADJ
),
/*
Layer: Light
  
  RGB Hue      RGB Sat  
 Prv   Nxt    Dec   Inc 
 RGBTgl   Val+   TgLNav 
  Mode-   Val-    Mode+ 
 LyrTgl  NxtThm   XXXX  
*/
[_LIGHT] = LAYOUT(
RGB_TOG, RGB_VAI, TG_LGHT,
RGB_RMOD,RGB_VAD, RGB_MOD,
RGB_LYR, RGB_THM, XXXXXXX
),
/*
Layer: ADJUST
  
    XXXX        XXXX    
                        
  MAKE   Reeder   Light 
  Media   Navi    Macro 
 LR Rvw  LR Nav  LR Edt 
*/
[_ADJUST] = LAYOUT(
QM_MAKE, DF_REDR, TG_LGHT,
DF_MEDA, DF_NAVI, DF_KBNR,
TG_REVW, TG_LNAV, TG_EDIT
),
};
void keyboard_post_init_keymap(void){
// Debug to Console by default
debug_enable = true;
}
/**
* Encoder
*/
const uint16_t PROGMEM encoders[][2][2] = {
[_REEDER] = {{ KC_K, KC_J }, { KC_P, KC_N }},
[_MEDIA] = {{ KC_VOLD, KC_VOLU }, { KC_MPRV, KC_MNXT }},
[_NAVI] = {{ MC_WH_U, MC_WH_D }, { PRV_TAB, NXT_TAB }},
[_KARABINER] = {{ KC_PMNS, KC_PPLS }, { KC_PDOT, KC_PEQL }},
[LR_NAV] = {{ KC_MINS, KC_EQL }, { KC_PGDN, KC_PGUP }},
[LR_REVIEW] = {{ KC_LBRC, KC_RBRC }, { G(KC_DOWN), G(KC_UP) }},
[LR_EDIT] = {{ KC_COMM, KC_DOT }, { KC_MINS, KC_EQL }},
};
void encoder_update_user(uint8_t index, bool clockwise) {
uint8_t layer = get_highest_layer(layer_state);
switch (layer) {
case _AUDIO:
#ifdef AUDIO_ENABLE
#endif
break;
case _LIGHT:
#ifdef RGBLIGHT_ENABLE
switch (index) {
case 0:
if (clockwise) {
rgblight_increase_hue();
} else {
rgblight_decrease_hue();
}
break;
case 1:
if (clockwise) {
rgblight_increase_sat();
} else {
rgblight_decrease_sat();
}
break;
}
#endif
break;
default:
tap_code16(pgm_read_word(&encoders[layer][index][clockwise]));
break;
}
}
/**
* Keycodes
*/
bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case TG_LNAV:
if (!record->event.pressed) {
tap_code(KC_G);
layer_move(LR_NAV);
}
break;
case TG_REVW:
if (!record->event.pressed) {
tap_code(KC_E);
layer_move(LR_REVIEW);
}
break;
case TG_EDIT:
if (!record->event.pressed) {
tap_code(KC_D);
layer_move(LR_EDIT);
}
break;
}
return true;
}
/**
* Layer Switch
*/
layer_state_t layer_state_set_keymap (layer_state_t state) {
switch (get_highest_layer(state)) {
case LR_NAV:
#if defined(RGBLIGHT_ENABLE)
rgb_layer_helper(HSV_TEAL);
#endif
break;
case LR_REVIEW:
#if defined(RGBLIGHT_ENABLE)
rgb_layer_helper(HSV_CYAN);
#endif
break;
case LR_EDIT:
#if defined(RGBLIGHT_ENABLE)
rgb_layer_helper(HSV_AZURE);
#endif
break;
default:
break;
}
return state;
}
/**
* Tap Dances
*/
void process_tap_dance_keycode (bool reset, uint8_t toggle_layer) {
uint16_t keycode = 0;
switch (toggle_layer) {
case _LIGHT:
switch (get_highest_layer(layer_state)) {
case _REEDER:
case _MEDIA:
keycode = KC_L;
break;
case _NAVI:
keycode = KC_PGUP;
break;
case _KARABINER:
keycode = KC_P6;
break;
case LR_NAV:
keycode = KC_END;
case LR_REVIEW:
keycode = KC_U;
case LR_EDIT:
keycode = KC_P;
break;
}
break;
case _ADJUST:
switch (get_highest_layer(layer_state)) {
case _REEDER:
keycode = G(KC_3);
break;
case _KARABINER:
keycode = KC_P9;
break;
case _MEDIA:
case _NAVI:
case LR_NAV:
case LR_REVIEW:
case LR_EDIT:
keycode = KC_RGHT;
break;
}
break;
}
if (!reset) {
register_code16(keycode);
} else {
unregister_code16(keycode);
}
}

View file

@ -0,0 +1,107 @@
# brandonschlack's Macropad/Lightroom layout for BDN9
##### 2 encoders required
![brandonschlack BDN9](https://i.imgur.com/pai9M0m.jpg)
I built this pad to match my Lightroom photo editing workflow using
[Lightroom Classic Keyboard shortcuts](https://helpx.adobe.com/lightroom-classic/help/keyboard-shortcuts.html), and added on general macropad layers along the way.
I use macOS, so shortcuts and macros are configured as such. Encoder functionality is in the header of the tables, as clockwise/counterclockwise.
---
## Macropad Layers
### Reeder Layer
This layer is used for browsing [Reeder](https://reederapp.com/), an awesome RSS reader for Mac
| Prev/Next Item | **Knobs** | Prev/Next Subscription |
| --- | --- | --- |
| Open Item in Browser | Star Item/Save for Later | Sync |
| Command+Tab | Toggle Read Status | Clear Read Items |
| Starred Items | Unread Items | All Items |
### Media Layer
This layer is used for media controls. Player button is a hotkey to focus the current media player with [BeardedSpice](https://beardedspice.github.io/)
| Volume Down/Up | **Knobs** | Prev/Next Track |
| --- | --- | --- |
| Mute | Current Player | Play/Pause |
| YouTube Rewind 10s (J) | YouTube Play/Pause (K) | YouTube Forward 10s (L) |
| Left | Space | Right |
### Navigation Layer
This layer is used for general window navigation around macOS
| Scroll Up/Down | **Knobs** | Next/Prev Tab |
| --- | --- | --- |
| Reopen Tab | Cmd+Tab | Close Tab |
| Page Down | Up | Page Up |
| Left | Down | Right |
### Macro Layer
This layer is used to send generic macro keys, meant to be remapped based on current app with [Karabiner](https://pqrs.org/osx/karabiner/)
| +/- | **Knobs** | =/. |
| --- | --- | --- |
| 1 | 2 | 3 |
| 4 | 5 | 6 |
| 7 | 8 | 9 |
## Lightroom Layers
### LR Navigation Layer
This layer is used for navigating Grid View in the Library Module.
| Inc/Dec Thumbnail Size | **Knobs** | Scroll Up/Dn Grid Thumbnails |
| --- | --- | --- |
| Review Layer | Cycle Grid View options | Edit Layer |
| Start of Grid View | Up | End of Grid View |
| Left | Down | Right |
### Lightroom Review Layer
This layer is used for Reviewing, Rating, and Culling images with the Loupe View in the Library Module.
| Inc/Dec Star Rating | **Knobs** | Inc/Dec Flag Status |
| --- | --- | --- |
| LR Navigation Layer | Yellow Label | Edit Layer |
| Remove Star Rating | Green Label | Unflag Photo |
| Left | Blue Label | Right |
### Lightroom Edit Layer
This layer is used for editing photos in the Develop Module
| Next/Prev Basic Panel Settings | **Knobs** | Inc/Dec Selected Slider |
| --- | --- | --- |
| Review Layer | Toggle Before View | LR Navigation Layer |
| Flag Rejected | Undo | Flag Picked |
| Left | Redo | Right |
## Meta Layers
### Light Layer
This layer is used to control lighting for the pad. Currently nothing is saved in EEPROM, so it will reset after power loss. Also currently my userspace layer colors take priority until I build out that feature. This layer is accessed with a double tap of the middle right key via [tap dance](https://docs.qmk.fm/#/feature_tap_dance). A triple tap of the middle right key will also toggle lights on/off.
| Inc/Dec RGB Hue | **Knobs** | Inc/Dec RGB Saturation |
| --- | --- | --- |
| RGB Toggle | RGB Value Increase | Toggle Layer Off |
| RGB Mode Prev | RGB Value Decrease | RGB Mode Next |
| RGB Layer Indication | Cycle RGB Themes | XXX |
### Adjust Layer
This layer is used as a meta layer for the pad. This layer is accessed with a double tap of the bottom right key via [tap dance](https://docs.qmk.fm/#/feature_tap_dance).
| XXX | **Knobs** | XXX |
| --- | --- | --- |
| MAKE | **Reeder** Layer | **Light** Layer |
| **Media** Layer | **Navigation** Layer | **Keypad** Layer |
| **Lightroom Review** Layer | **Lightroom Navigation** Layer | **Lightroom Edit** Layer |

View file

@ -0,0 +1,11 @@
# Use macropad-specific defines, layers, functions. Flash bootloader with QM_MAKE
IS_MACROPAD = yes
# Use dfu bootloader for Elite-C
BOOTLOADER = atmel-dfu
# Build Options
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
COMMAND_ENABLE = no # Disable Command, breaks with Mouse Keys set to constant.
BACKLIGHT_ENABLE = no # No backlights installed
TAP_DANCE_ENABLE = yes # Use tap dance

View file

@ -0,0 +1,67 @@
/* Copyright 2019 Brandon Schlack
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
#include "brandonschlack.h"
enum romac_layers {
NUMPAD = 0,
FN,
NUMLOCK,
KARABINER
};
#define DF_NMPD DF(NUMPAD)
#define DF_NMLK DF(NUMLOCK)
#undef DF_KBNR
#define DF_KBNR DF(KARABINER)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[NUMPAD] = LAYOUT(
KC_P7, KC_P8, KC_P9, \
KC_P4, KC_P5, KC_P6, \
KC_P1, KC_P2, KC_P3, \
OSL(FN), KC_P0, KC_PDOT \
),
[FN] = LAYOUT(
KC_PSLS, KC_PAST, KC_BSPC, \
KC_TRNS, KC_TRNS, KC_PMNS, \
DF_NMLK, DF_KBNR, KC_PPLS, \
KC_TRNS, TG_ADJT, KC_PENT \
),
[NUMLOCK] = LAYOUT(
KC_HOME, KC_UP, KC_PGUP, \
KC_LEFT, CMD_TAB, KC_RGHT, \
KC_END, KC_DOWN, KC_PGDN, \
DF_NMPD, KC_INS, KC_DEL \
),
[KARABINER] = LAYOUT(
KC_F13, KC_F14, KC_F15, \
KC_F16, KC_F17, KC_F18, \
KC_F19, KC_F20, KC_F21, \
LT(_ADJUST,KC_F22), KC_F23, KC_F24 \
),
[_ADJUST] = LAYOUT(
QM_MAKE, EEP_RST, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, \
DF_NMPD, DF_NMLK, DF_KBNR, \
KC_TRNS, XXXXXXX, XXXXXXX \
)
};

View file

@ -0,0 +1,8 @@
# Use macropad-specific defines, layers, functions. Flash bootloader with QM_MAKE
IS_MACROPAD = yes
# Use dfu bootloader for Elite-C
BOOTLOADER = atmel-dfu
# Build Options
# TAP_DANCE_ENABLE = yes # Use tap dance

View file

@ -0,0 +1,32 @@
/* Copyright 2020 Brandon Schlack
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
/* Underlight Configuration */
#ifdef RGB_DI_PIN
#undef RGB_DI_PIN
#define RGB_DI_PIN F4
#undef RGBLED_NUM
#define RGBLED_NUM 2 // Number of LEDs
#endif
#define RGBLIGHT_EFFECT_BREATHING // Only have Breathing Animation
#define RGBLIGHT_HUE_STEP 10
#define RGBLIGHT_SAT_STEP 17
#define RGBLIGHT_VAL_STEP 17
/* Mouse Keys Configuration */
#define MK_3_SPEED
#define MK_W_INTERVAL_UNMOD 20

View file

@ -0,0 +1,213 @@
/* Copyright 2020 Brandon Schlack
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
#include "brandonschlack.h"
/**
* Layer Names
*/
#define _REEDER _BASE
enum bdn9_layers {
_MEDIA = KEYMAP_LAYERS,
_NAVI,
_KARABINER
};
/**
* Keycodes & Macros
*/
#define DF_REDR DF(_REEDER) // Set Default Layer to Reeder shortcuts
#define DF_MEDA DF(_MEDIA) // Set Default Layer to Media controls
#define DF_NAVI DF(_NAVI) // Set Default Layer to Navigation shortcuts
#define DF_KBNR DF(_KARABINER) // Set Default Layer to Basic Macro keys
// Tap Dances
enum launchpad_dances {
TD_SHLD_LGHT = 0,
TD_SHLD_ADJT,
TD_REDR_H
};
//Tap Dance Definitions
qk_tap_dance_action_t tap_dance_actions[] = {
[TD_SHLD_LGHT] = ACTION_TAP_DANCE_TRIGGER_LAYER(SINGLE_HOLD, _LIGHT),
[TD_SHLD_ADJT] = ACTION_TAP_DANCE_TRIGGER_LAYER(SINGLE_HOLD, _ADJUST),
[TD_REDR_H] = ACTION_TAP_DANCE_DOUBLE(KC_H, KC_R)
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Reeder
*
* CmdTab View
*
* PrvSubPrvItm
*
* NxtSubNxtItm
*
* Clr Sync
*
*/
[_REEDER] = LAYOUT( \
CMD_TAB, TD(TD_REDR_H), \
KC_P, KC_K, \
KC_N, KC_J, \
TD(TD_SHLD_LGHT), TD(TD_SHLD_ADJT) \
),
/* Media
*
* Mute Play
*
* Vol+ PrvTrk
*
* Vol- NxtTrk
*
* Spce Plyr
*
*/
[_MEDIA] = LAYOUT( \
KC_MUTE, KC_MPLY, \
KC_VOLU, KC_MNXT, \
KC_VOLD, KC_MPRV, \
TD(TD_SHLD_LGHT), TD(TD_SHLD_ADJT) \
),
/* Navigation
*
* PTab NTab
*
* SclL SclU
*
* SclR SclD
*
* LstTabClsTab
*
*/
[_NAVI] = LAYOUT( \
PRV_TAB, NXT_TAB, \
MC_WH_L, MC_WH_U, \
MC_WH_R, MC_WH_D, \
TD(TD_SHLD_LGHT), TD(TD_SHLD_ADJT) \
),
/* Macro
*
* 1 2
*
* 3 4
*
* 5 6
*
* 7 8
*
*/
[_KARABINER] = LAYOUT( \
KC_P1, KC_P2, \
KC_P3, KC_P4, \
KC_P5, KC_P6, \
TD(TD_SHLD_LGHT), TD(TD_SHLD_ADJT) \
),
/* Lights
*
* THM+ HUE+
*
* SAT- SAT+
*
* VAL- VAL+
*
* XXXX Mde+
*
*/
[_LIGHT] = LAYOUT( \
RGB_THM, RGB_HUI, \
RGB_SAD, RGB_SAI, \
RGB_VAD, RGB_VAI, \
XXXXXXX, RGB_MOD \
),
/* Adjust
*
* Make Rset
*
* Redr Meda
*
* Navi Mcro
*
* Lght XXXX
*
*/
[_ADJUST] = LAYOUT( \
QM_MAKE, RESET, \
DF_REDR, DF_MEDA, \
DF_NAVI, DF_KBNR, \
TG_LGHT, XXXXXXX \
)
};
void matrix_init_keymap(void) {
}
// Runs once after keyboard initializes
void keyboard_post_init_keymap(void) {
};
/**
* Tap Dances
*/
void process_tap_dance_keycode (bool reset, uint8_t toggle_layer) {
uint16_t keycode = 0;
switch (toggle_layer) {
case _LIGHT:
switch (get_highest_layer(layer_state)) {
case _REEDER:
keycode = KC_L;
break;
case _MEDIA:
keycode = KC_SPC;
break;
case _NAVI:
keycode = REO_TAB;
break;
case _KARABINER:
keycode = KC_P7;
break;
}
break;
case _ADJUST:
switch (get_highest_layer(layer_state)) {
case _REEDER:
keycode = KC_R;
break;
case _MEDIA:
keycode = MC_PLYR;
break;
case _NAVI:
keycode = CLS_TAB;
break;
case _KARABINER:
keycode = KC_P8;
break;
}
break;
}
if (!reset) {
register_code16(keycode);
} else {
unregister_code16(keycode);
}
}

View file

@ -0,0 +1,31 @@
# brandonschlack's layout for Launchpad
Fun little macropad build, with an awesome case from [StrataKB](https://stratakb.com/store/cases/launchpad-v2-full-case).
## Media Layer
This layer is used for media controls. Player button is a hotkey to focus the current media player with [BeardedSpice](https://beardedspice.github.io/)
| | |
|:-:|:-:|
| Mute | Play/Pause |
| Vol + | Next Track |
| Vol - | Prev Track |
| | Current Player |
---
## Keypad Layer
This layer is used to send keypad keys, meant to be remapped based on current app with [Karabiner](https://pqrs.org/osx/karabiner/)
| | |
|:-:|:-:|
| 1 | 2 |
| 3 | 4 |
| 5 | 6 |
| 7 | 8 |
---
## Magic Layer
This layer is used as a meta layer for the pad. This layer is accessed by holding key in Row 3, Col 0
| | |
|:-:|:-:|
| MAKE | RESET |
| **Media** Layer | **Keypad** Layer|
| XXX | XXX |
| ___ | XXX |

View file

@ -0,0 +1,13 @@
# Use macropad-specific defines, layers, functions. Flash bootloader with QM_MAKE
IS_MACROPAD = yes
# Use dfu bootloader for Elite-C
BOOTLOADER = atmel-dfu
# Build Options
BOOTMAGIC_ENABLE = lite
RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
CONSOLE_ENABLE = yes # Console for debug(+400)
MOUSEKEY_ENABLE = yes # Use mouse keys for scrolling.
COMMAND_ENABLE = no # Disable Command, breaks with Mouse Keys set to constant.
TAP_DANCE_ENABLE = yes # Use tap dance

View file

@ -0,0 +1,19 @@
/* Copyright 2019 Brandon Schlack
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#define USE_LEDS_FOR_LAYERS
#define STOPLIGHT_LED

View file

@ -0,0 +1,170 @@
/* Copyright 2019 Brandon Schlack
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
#include "brandonschlack.h"
// LEDs
#define TOP_LED B1
#define MIDDLE_LED B2
#define BOTTOM_LED B3
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_BASE] = LAYOUT( \
KC_HOME, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, \
KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, \
KC_PGDN, HY_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, PLY_FN1, \
KC_LOPT, KC_LCMD, SPC_RAI, KC_LCTL, SPC_RAI, KC_RCMD, KC_ROPT \
),
[_FN1] = LAYOUT( \
KC_MUTE, QM_MAKE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, MC_LHPD, MC_SLPD, \
KC_VOLU, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, _______, _______, KC_HOME, KC_UP, KC_END, KC_DELT, \
KC_VOLD, RGB_TOG, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, _______, _______, KC_MPRV, KC_MNXT, KC_PGDN, KC_UP, KC_MPLY, \
_______, RGB_LYR, RGB_THM, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, RGT_SFT, _______, \
_______, _______, _______, _______, _______, _______, _______ \
),
[_FN2] = LAYOUT( \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______ \
),
[_ADJUST] = LAYOUT( \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______ \
)
/*
[_BLANK] = LAYOUT( \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______ \
)
*/
};
#ifdef STOPLIGHT_LED
bool is_led_stoplight_active = false;
uint8_t led_stoplight_index = 0;
uint16_t led_stoplight_timer = 0;
void matrix_scan_led_stoplight(void);
void led_stoplight_start(void) {
writePinHigh(TOP_LED);
writePinHigh(MIDDLE_LED);
writePinHigh(BOTTOM_LED);
is_led_stoplight_active = true;
led_stoplight_timer = timer_read();
};
void led_stoplight_set(pin_t pin) {
writePinLow(pin);
};
void led_stoplight_end(void) {
// Reset timer and status variables
led_stoplight_index = 0;
is_led_stoplight_active = false;
led_stoplight_timer = 0;
led_update_kb(host_keyboard_led_state());
};
void matrix_scan_led_stoplight(void) {
if (is_led_stoplight_active) {
if (timer_elapsed(led_stoplight_timer) > (1000 * (led_stoplight_index + 1))) {
switch (led_stoplight_index){
case 0:
led_stoplight_set(TOP_LED);
led_stoplight_index++;
break;
case 1:
led_stoplight_set(MIDDLE_LED);
led_stoplight_index++;
break;
case 2:
led_stoplight_set(BOTTOM_LED);
led_stoplight_index++;
break;
default:
led_stoplight_index = 0;
is_led_stoplight_active = false;
led_stoplight_timer = 0;
led_update_kb(host_keyboard_led_state());
break;
}
}
}
};
#endif
void keyboard_post_init_keymap(void) {
#ifdef STOPLIGHT_LED
led_stoplight_start();
#endif
};
void matrix_scan_keymap(void) {
#ifdef STOPLIGHT_LED
matrix_scan_led_stoplight();
#endif
};
#ifdef USE_LEDS_FOR_LAYERS
// example of how to use LEDs as layer indicators
static uint8_t top = 0;
static uint8_t middle = 0;
layer_state_t layer_state_set_keymap(layer_state_t state) {
top = middle = 0;
state = update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
switch (get_highest_layer(state)) {
case _FN1:
top = 1;
break;
case _FN2:
middle = 1;
break;
case _ADJUST:
top = 1;
middle = 1;
break;
default: // for any other layers, or the default layer
break;
}
return state;
}
// override kb level function
bool led_update_user(led_t usb_led) {
if (!is_led_stoplight_active) {
writePin(TOP_LED, !top);
writePin(MIDDLE_LED, !middle);
writePin(BOTTOM_LED, !usb_led.caps_lock); // still use bottom for Caps Lock
};
return false; // we are using LEDs for something else override kb
}
#endif

View file

@ -0,0 +1,8 @@
# Build Options
# comment out to disable the options.
#
MOUSEKEY_ENABLE = yes # Mouse keys
CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
VELOCIKEY_ENABLE = no

View file

@ -0,0 +1,30 @@
/* Copyright 2020 Brandon Schlack
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#define USE_LEDS_FOR_LAYERS
#define STOPLIGHT_LED
// LEDs
#define TOP_LED B2
#define MIDDLE_LED C15
#define BOTTOM_LED B9
// #define LED_PIN_FLIP
#ifdef LED_PIN_FLIP
#define LED_ON(flag) !flag
#else
#define LED_ON(flag) flag
#endif

View file

@ -0,0 +1,270 @@
/* Copyright 2020 Brandon Schlack
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
#include "brandonschlack.h"
/**
* Layer Names
*
* Layers mostly used for macro keys
*/
#define _REEDER _M1
#define _MAIL _M2
#define _REEDER_FN _M1_FN1
#define _MAIL_FN _M2_FN1
/**
* Keycodes & Macros
*/
#define TG_BASE TO(_BASE)
#define TG_REDR TO(_REEDER)
#define TG_MAIL TO(_MAIL)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Base
*           
* Ply Esc! 1@ 2# 3$ 4% 5^ 6         & 7* 8( 9) 0_ -+ =| \~ `
*         
* VlU Tab   Q  W  E  R  T           Y  U  I  O  P { [} ] Bspc
*          
* VlD HyCaps A  S  D  F  G           H  J  K  L : ;" '│   Enter│
*       
*       LShift   Z  X  C  V  B       B  N  M < ,> .? /  ShftFn 
*          
*       Opt       Cmd  Spc/LwrCtrl      Spc/Rai  Cmd             Opt
*                          
*/
[_BASE] = LAYOUT_all( \
KC_MPLY, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, \
KC_VOLU, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, \
KC_VOLD, HY_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, LOWER, KC_RSFT, KC_SLSH, \
KC_LOPT, KC_LCMD, SPC_LWR, KC_LCTL, SPC_RAI, KC_RCMD, KC_ROPT \
),
/* Reeder
*           
*  H                                                        
*         
*  K                                                         
*          
*  J                                                          
*       
*                                                              
*          
*                                                                   
*                          
*/
[_REEDER] = LAYOUT_all( \
KC_H, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
KC_K, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
KC_J, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______ \
),
/* Mail
*           
* Del                                                       
*         
* It+                                                        
*          
* It-                                                         
*       
*                                                              
*          
*                                                                   
*                          
*/
[_MAIL] = LAYOUT_all( \
G(KC_BSPC), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
KC_DOWN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______ \
),
/* Lower
*           
* Mut Mke F1 F2 F3 F4 F5 F6          F7 F8 F9F10F11F12LHPSLP
*         
* Nxt RMod RH+RS+RV+Sp+                        PgUHomEnd  Del
*          
* Prv RTgl  RH-RS-RV-Sp-                  PrvNxtPgD     Play 
*       
*               LYRThm                               Shft   
*          
*                                                                   
*                          
*/
[_LOWER] = LAYOUT_all( \
KC_MUTE, QM_MAKE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, MC_LHPD, MC_SLPD, \
KC_MNXT, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, _______, _______, KC_PGUP, KC_HOME, KC_END, KC_DELT, \
KC_MPRV, RGB_TOG, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, _______, _______, KC_MPRV, KC_MNXT, KC_PGDN, KC_UP, KC_MPLY, \
_______, RGB_LYR, RGB_THM, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, _______, RGT_SFT, KC_DOWN, \
_______, _______, _______, _______, _______, _______, _______ \
),
/* Reeder Function
*           
*  L                                                        
*         
*  P                                                         
*          
*  N                                                          
*       
*                                                              
*          
*                                                                   
*                          
*/
[_REEDER_FN] = LAYOUT_all( \
KC_L, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
KC_P, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
KC_N, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______ \
),
/* Mail
*           
* Del                                                       
*         
* It+                                                        
*          
* It-                                                         
*       
*                                                              
*          
*                                                                   
*                          
*/
[_MAIL_FN] = LAYOUT_all( \
KC_BSPC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
A(G(KC_LBRC)), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
A(G(KC_RBRC)), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______ \
),
/* Raise
*           
*                                                           
*         
*                                                            
*          
*                                                             
*       
*                                                              
*          
*                                                                   
*                          
*/
[_RAISE] = LAYOUT_all( \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______ \
),
/* Adjust
*           
* Bse Mke                                                   
*         
* Rdr RMod RH+RS+RV+Sp+                                      
*          
* Mai RTgl  RH-RS-RV-Sp-                                      
*       
*               LYRThm   EEPRst     Rst                        
*          
*                                                                   
*                          
*/
[_ADJUST] = LAYOUT_all( \
TG_BASE, QM_MAKE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
TG_REDR, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
TG_MAIL, RGB_TOG, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, RGB_LYR, RGB_THM, _______, EEP_RST, RESET, RESET, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______ \
)
/* Layout
*           
*                                                           
*         
*                                                            
*          
*                                                             
*       
*                                                              
*          
*                                                                   
*                          
*/
/*
[_BLANK] = LAYOUT( \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______ \
)
*/
};
layer_state_t layer_state_set_keymap(layer_state_t state) {
state = update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
state = update_tri_layer_state(state, _REEDER, _LOWER, _REEDER_FN);
state = update_tri_layer_state(state, _MAIL, _LOWER, _MAIL_FN);
return state;
}
#ifdef USE_LEDS_FOR_LAYERS
bool led_update_keymap(led_t led_state) {
writePin(TOP_LED, LED_ON(IS_LAYER_ON(_REEDER) || IS_LAYER_ON(_MAIL))); // Use for Macro Layer
writePin(MIDDLE_LED, LED_ON(IS_LAYER_ON(_FN1))); // Use for Layer 2
writePin(BOTTOM_LED, LED_ON(led_state.caps_lock)); // Use for Caps Lock
return false; // Override default set by KB
}
#endif
#ifdef ENCODER_ENABLE
void encoder_update_user(uint8_t index, bool clockwise) {
if (index == 0) {
if (clockwise) {
tap_code(KC_VOLU);
} else {
tap_code(KC_VOLD);
}
}
else if (index == 1) {
if (clockwise) {
tap_code(KC_LEFT);
} else {
tap_code(KC_RGHT);
}
}
else if (index == 2) {
if (clockwise) {
tap_code(KC_UP);
} else {
tap_code(KC_DOWN);
}
}
}
#endif

View file

@ -0,0 +1 @@
# The default keymap for adelais

View file

@ -0,0 +1,195 @@
/* Copyright 2019 Brandon Schlack
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
#include "brandonschlack.h"
/**
* Layer Names
*
* Layers mostly used for macro keys
*/
#define _REEDER _M1
#define _NAV _M2
#define _MOUSE _M3
/**
* Keycodes & Macros
*/
#define TG_BASE TO(_BASE)
#define TG_REDR TO(_REEDER)
#define TG_NAV TO(_NAV)
#define TG_MOUS TO(_MOUSE)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/**
* Base
*
* HomEsc Q  W  E  R  T  Y  U  I  O  P { [} ]Bck
*
* PgUTab  A  S  D  F  G  H  J  K  L : ;" '│ Enter│
*
* PgDShift  Z  X  C  V  B  N  M < ,> .? /Shft Fn
*
* EndOptCmd                             CmdCtl
*
*/
[_BASE] = LAYOUT_default( \
KC_HOME, KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, \
KC_PGUP, HY_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \
KC_PGDN, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, PLY_FN1, \
KC_END, KC_LOPT, KC_LCMD, SPC_RAI, KC_RCMD, KC_RCTL \
),
/**
* Reeder
*
*  P                                           
*
*  K                                            
*
*  J                                            
*
*  N                                          
*
*/
[_REEDER] = LAYOUT_default( \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______ \
),
/**
* Nav
*
*                                             
*
*                                              
*
*                                              
*
*                                            
*
*/
[_NAV] = LAYOUT_default( \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______ \
),
/**
* Mouse
*
* WhU                                          
*
*                                              
*
*                                              
*
* WhD                                         
*
*/
[_MOUSE] = LAYOUT_default( \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______ \
),
/**
* Lower
*
* NxtDelBrDBrUMsnLHP                    MutSlD
*
* VlU          NxWPvTBckFwdNxT           Play 
*
* VlDSftCap         1PX1Ps                     
*
* Prv                                         
*
*/
[_LOWER] = LAYOUT_default( \
KC_MNXT, KC_DELT, KC_BRMD, KC_BRMU, MC_MSSN, MC_LHPD, _______, _______, _______, _______, _______, _______, KC_UP, KC_MUTE, MC_SLPD, \
KC_VOLU, _______, _______, _______, NXT_WIN, PRV_TAB, MC_BACK, MC_FWRD, NXT_TAB, _______, _______, KC_LEFT, KC_RGHT, KC_MPLY, \
KC_VOLD, SF_CAPS, _______, _______, _______, PX_AFLL, OP_AFLL, _______, _______, _______, _______, KC_DOWN, _______, _______, \
KC_MPRV, _______, _______, _______, _______, _______ \
),
/**
* Raise
*
* Nxt~ `! 1@ 2# 3$ 4% 5^ 6& 7* 8( 9) 0_ -+ =   
*
* VlU     F1 F2 F3 F4 F5 F6_ -+ =               
*
* VlD       F7 F8 F9F10F11F12         | \       
*
* Prv                                         
*
*/
[_RAISE] = LAYOUT_default( \
KC_MNXT, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, _______, \
KC_VOLU, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, _______, _______, _______, _______, \
KC_VOLD, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, KC_BSLS, _______, _______, \
KC_MPRV, _______, _______, _______, _______, _______ \
),
/**
* Adjust
*
* BseMke      EEPRST                           
*
* Rdr                                           
*
* Nav                                           
*
* Mse                                         
*
*/
[_ADJUST] = LAYOUT_default( \
TG_BASE, QM_MAKE, _______, _______, EEP_RST, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
TG_REDR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
TG_NAV, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
TG_MOUS, _______, _______, _______, _______, _______ \
),
/**
* Blank
*
*                                              
*
*                                               
*
*                                               
*
*                                             
*
*/
/*
[] = LAYOUT_default( \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______ \
),
*/
};
layer_state_t layer_state_set_keymap(layer_state_t state) {
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
}

View file

@ -0,0 +1,20 @@
# brandonschlack's Nightmare Keymap
![Base, Raise, Lower](https://i.imgur.com/08759vK.png)
## Features
- Mod-Taps & Layer-Taps
- Spacebar is used as a Fn button when held to access missing numrow and F-keys on the **RAISE** layer.
- Holding `Tab` acts as `HYPER`, or `Shift+Control+Option+Command`. I use this set global shortcuts, such as `HYPER+w` for my **W**indow manager Moom.
- **Lower** Layer
- `Lower+Esc` for `Delete`
- `Lower+LShift` for `Caps Lock`. Holding `Lower+LShift` still acts as `LShift`
- Arrow keys as `Lower+[`,`;`,`'`,`/` for `Up`,`Left`,`Right`,`Down`.
- Media keys as `Lower+Enter`,`Home`,`End` for `Play/Pause`,`Next Track`,`Prev Track`
- Volume controls as `Lower+]`,`Page Up`,`Page Down` for `Mute`,`Volume Up`,`Volume Down`
- MacOS shortcuts on **Lower** Layer
- Display Brightness as `Lower+Q`,`W` for `Brightness Down`, `Brightness Up`
- Mission Control as `Lower+E`
- Launchpad as `Lower+R`
- Sleep Display as `Lower+Backspace`
- Browser

View file

@ -0,0 +1,30 @@
/* Copyright 2020 Brandon Schlack
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#define USE_LEDS_FOR_LAYERS
#define STOPLIGHT_LED
#define TOP_LED B1
#define MIDDLE_LED B2
#define BOTTOM_LED B3
// #define LED_PIN_FLIP
#ifdef LED_PIN_FLIP
#define LED_ON(flag) !flag
#else
#define LED_ON(flag) flag
#endif

View file

@ -0,0 +1,95 @@
/* Copyright 2020 Brandon Schlack
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
#include "brandonschlack.h"
// Tap Dance declarations
enum {
TD_LR_BRC,
TD_SD_QUOT
};
// Tap Dance definitions
qk_tap_dance_action_t tap_dance_actions[] = {
// Tap once for LBracket, twice for RBracket
[TD_LR_BRC] = ACTION_TAP_DANCE_DOUBLE(KC_LBRC, KC_RBRC),
// Tap once for Single Quote, twice for Double Quote
[TD_SD_QUOT] = ACTION_TAP_DANCE_DOUBLE(KC_QUOT, KC_DQT)
};
#define LWR_B LT(_LOWER, KC_B)
#define LWR_EQL LT(_LOWER, KC_EQL)
#define TD_BRC TD(TD_LR_BRC)
#define TD_QUOT TD(TD_SD_QUOT)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_BASE] = LAYOUT( \
KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, TD_BRC, KC_BSPC, \
HY_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, TD_QUOT, KC_ENT, \
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, LWR_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, LOWER, \
KC_LCTL, KC_LOPT, KC_LCMD, SPC_RAI, SPC_RAI, KC_RCMD, KC_ROPT, KC_RCTL \
),
[_LOWER] = LAYOUT( \
KC_DELT, KC_BRMD, KC_BRMU, MC_MSSN, MC_LHPD, _______, _______, _______, _______, KC_HOME, KC_UP, KC_PGUP, MC_SLPD, \
_______, KC_MUTE, KC_VOLU, NXT_WIN, PRV_TAB, MC_BACK, MC_FWRD, NXT_TAB, _______, KC_LEFT, KC_RGHT, KC_MPLY, \
SF_CAPS, KC_MPRV, KC_VOLD, KC_MNXT, _______, PX_AFLL, OP_AFLL, _______, _______, KC_END, KC_DOWN, KC_PGDN, _______, \
_______, _______, _______, _______, _______, _______, _______, _______ \
),
[_RAISE] = LAYOUT( \
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_LBRC, KC_RBRC, KC_7, KC_8, KC_9, KC_0, KC_RBRC, _______, \
_______, KC_F5, KC_F6, KC_F7, KC_F8, KC_MINS, KC_PLUS, KC_4, KC_5, KC_6, KC_SCLN, _______, \
_______, KC_F9, KC_F10, KC_F11, KC_F12, LWR_EQL, KC_EQL, KC_1, KC_2, KC_3, _______, KC_BSLS, _______, \
_______, _______, _______, _______, _______, _______, _______, _______ \
),
[_ADJUST] = LAYOUT( \
QM_MAKE, _______, _______, EEP_RST, RESET, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______ \
)
/*
[BLANK] = LAYOUT( \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______ \
)
*/
};
void keyboard_pre_init_user(void) {
setPinOutput(TOP_LED);
setPinOutput(MIDDLE_LED);
setPinOutput(BOTTOM_LED);
}
layer_state_t layer_state_set_keymap(layer_state_t state) {
state = update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
return state;
}
#ifdef USE_LEDS_FOR_LAYERS
bool led_update_keymap(led_t led_state) {
writePin(TOP_LED, LED_ON(IS_LAYER_ON(_FN1))); // Use for Layer 1
writePin(MIDDLE_LED, LED_ON(IS_LAYER_ON(_FN2))); // Use for Layer 2
writePin(BOTTOM_LED, LED_ON(led_state.caps_lock)); // Use for Caps Lock
return false; // Override default set by KB
}
#endif

View file

@ -0,0 +1,2 @@
BACKLIGHT_ENABLE = no
TAP_DANCE_ENABLE = yes

View file

@ -0,0 +1,115 @@
/* Copyright 2020 Brandon Schlack
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
#include "brandonschlack.h"
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Base
*
* HomTab   Q  W  E  R  T  Y  U  I  O  P { [ BsPc
*
* PgUHyEsc  A  S  D  F  G  H  J  K  L " '│   Enter│
*
* PgDShift    Z  X  C  V  B  N  M < ,> .? / Shft
*
* EndCtrlOptCmd         Space-Raise        CmdLwOpt
*
*/
[_BASE] = LAYOUT_base_kit_all( \
KC_HOME, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_BSPC, \
KC_PGUP, HY_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, XXXXXXX, KC_ENT, \
KC_PGDN, KC_LSFT, XXXXXXX, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, UP_RSFT, \
KC_END, KC_LCTL, KC_LOPT, KC_LCMD, XXXXXXX, SPC_RAI, XXXXXXX, LFT_CMD, DWN_LWR, RGT_OPT \
),
/* Lower
*
* NxtDel  BrDBrUMsnLHP                 Mut SlpD
*
* VlUHyCaps      NxWPvTBckFwdNxT           Play
*
* VlD                 1PX1Ps                    
*
* Prv                                                 
*
*/
[_LOWER] = LAYOUT_base_kit_all( \
KC_MNXT, KC_DELT, KC_BRMD, KC_BRMU, MC_MSSN, MC_LHPD, _______, _______, _______, _______, _______, KC_UP, KC_MUTE, MC_SLPD, \
KC_VOLU, HY_CAPS, _______, _______, NXT_WIN, PRV_TAB, MC_BACK, MC_FWRD, NXT_TAB, _______, KC_LEFT, KC_RGHT, XXXXXXX, KC_MPLY, \
KC_VOLD, _______, XXXXXXX, _______, _______, _______, PX_AFLL, OP_AFLL, _______, _______, _______, KC_DOWN, _______, _______, \
KC_MPRV, _______, _______, _______, XXXXXXX, _______, XXXXXXX, _______, _______, _______ \
),
/* Raise
*
* Nxt~ `  ! 1@ 2# 3$ 4% 5^ 6& 7* 8( 9) 0} ]     
*
* VlU       F1 F2 F3 F4 F5 F6_ -+ =   : ;        
*
* VlD         F7 F8 F9F10F11F12   { [} ]| \ Shft
*
* Prv                                      CmdFnOpt
*
*/
[_RAISE] = LAYOUT_base_kit_all( \
KC_MNXT, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_RBRC, _______, \
KC_VOLU, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, _______, KC_SCLN, XXXXXXX, _______, \
KC_VOLD, _______, XXXXXXX, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_LBRC, KC_RBRC, KC_BSLS, PGU_SFT, \
KC_MPRV, _______, _______, _______, XXXXXXX, _______, XXXXXXX, HOM_CMD, PGD_LWR, END_OPT \
),
/* Adjust
*
*    Make       EEPRST                          
*
*                                                
*
*                                                
*
*                                                     
*
*/
[_ADJUST] = LAYOUT_base_kit_all( \
_______, QM_MAKE, _______, _______, EEP_RST, RESET, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, _______, \
_______, _______, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, XXXXXXX, _______, XXXXXXX, _______, _______, _______ \
),
/* Blank layer
*
*                                               
*
*                                                
*
*                                                
*
*                                                     
*
*/
/*
[_BLANK] = LAYOUT_base_kit_all( \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, _______, \
_______, _______, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, XXXXXXX, _______, XXXXXXX, _______, _______, _______ \
),
*/
};
layer_state_t layer_state_set_keymap(layer_state_t state) {
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
}

View file

@ -0,0 +1,30 @@
/* Copyright 2020 Brandon Schlack
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#define USE_LEDS_FOR_LAYERS
#define STOPLIGHT_LED
#define TOP_LED C7
#define MIDDLE_LED C6
#define BOTTOM_LED B6
// #define LED_PIN_FLIP
#ifdef LED_PIN_FLIP
#define LED_ON(flag) !flag
#else
#define LED_ON(flag) flag
#endif

View file

@ -0,0 +1,243 @@
/* Copyright 2020 Brandon Schlack
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
#include "brandonschlack.h"
/**
* Layer Names
*
* Layers mostly used for macro keys
*/
#define _REEDER _M1
#define _MAIL _M2
#define _REEDER_FN _M1_FN1
#define _MAIL_FN _M2_FN1
/**
* Keycodes & Macros
*/
#define TG_BASE TO(_BASE)
#define TG_REDR TO(_REEDER)
#define TG_MAIL TO(_MAIL)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Base
*           
* Ply Esc! 1@ 2# 3$ 4% 5^ 6         & 7* 8( 9) 0_ -+ =| \~ `
*         
* VlU Tab   Q  W  E  R  T           Y  U  I  O  P { [} ] Bspc
*          
* VlD HyCaps A  S  D  F  G           H  J  K  L : ;" '│   Enter│
*       
*       LShift   Z  X  C  V  B       B  N  M < ,> .? /  ShftFn 
*          
*       Opt       Cmd  Spc/LwrCtrl      Spc/Rai  Cmd             Opt
*                          
*/
[_BASE] = LAYOUT_all( \
KC_MPLY, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, \
KC_VOLU, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, \
KC_VOLD, HY_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, LOWER, \
KC_LOPT, KC_LCMD, SPC_LWR, KC_LCTL, SPC_RAI, KC_RCMD, KC_ROPT \
),
/* Reeder
*           
*  H                                                        
*         
*  K                                                         
*          
*  J                                                          
*       
*                                                              
*          
*                                                                   
*                          
*/
[_REEDER] = LAYOUT_all( \
KC_H, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
KC_K, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
KC_J, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______ \
),
/* Mail
*           
* Del                                                       
*         
* It+                                                        
*          
* It-                                                         
*       
*                                                              
*          
*                                                                   
*                          
*/
[_MAIL] = LAYOUT_all( \
G(KC_BSPC), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
KC_DOWN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______ \
),
/* Lower
*           
* Mut Mke F1 F2 F3 F4 F5 F6          F7 F8 F9F10F11F12LHPSLP
*         
* Nxt RMod RH+RS+RV+Sp+                        PgUHomEnd  Del
*          
* Prv RTgl  RH-RS-RV-Sp-                  PrvNxtPgD     Play 
*       
*               LYRThm                               Shft   
*          
*                                                                   
*                          
*/
[_LOWER] = LAYOUT_all( \
KC_MUTE, QM_MAKE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, MC_LHPD, MC_SLPD, \
KC_MNXT, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, _______, _______, KC_PGUP, KC_HOME, KC_END, KC_DELT, \
KC_MPRV, RGB_TOG, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, _______, _______, KC_MPRV, KC_MNXT, KC_PGDN, KC_UP, KC_MPLY, \
_______, RGB_LYR, RGB_THM, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, RGT_SFT, _______, \
_______, _______, _______, _______, _______, _______, _______ \
),
/* Reeder Function
*           
*  L                                                        
*         
*  P                                                         
*          
*  N                                                          
*       
*                                                              
*          
*                                                                   
*                          
*/
[_REEDER_FN] = LAYOUT_all( \
KC_L, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
KC_P, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
KC_N, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______ \
),
/* Mail
*           
* Del                                                       
*         
* It+                                                        
*          
* It-                                                         
*       
*                                                              
*          
*                                                                   
*                          
*/
[_MAIL_FN] = LAYOUT_all( \
KC_BSPC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
A(G(KC_LBRC)), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
A(G(KC_RBRC)), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______ \
),
/* Raise
*           
*                                                           
*         
*                                                            
*          
*                                                             
*       
*                                                              
*          
*                                                                   
*                          
*/
[_RAISE] = LAYOUT_all( \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______ \
),
/* Adjust
*           
* Bse Mke                                                   
*         
* Rdr RMod RH+RS+RV+Sp+                                      
*          
* Mai RTgl  RH-RS-RV-Sp-                                      
*       
*               LYRThm   EEPRst     Rst                        
*          
*                                                                   
*                          
*/
[_ADJUST] = LAYOUT_all( \
TG_BASE, QM_MAKE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
TG_REDR, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
TG_MAIL, RGB_TOG, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, RGB_LYR, RGB_THM, _______, EEP_RST, RESET, RESET, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______ \
)
/* Layout
*           
*                                                           
*         
*                                                            
*          
*                                                             
*       
*                                                              
*          
*                                                                   
*                          
*/
/*
[_BLANK] = LAYOUT( \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______ \
)
*/
};
layer_state_t layer_state_set_keymap(layer_state_t state) {
state = update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
state = update_tri_layer_state(state, _REEDER, _LOWER, _REEDER_FN);
state = update_tri_layer_state(state, _MAIL, _LOWER, _MAIL_FN);
return state;
}
#ifdef USE_LEDS_FOR_LAYERS
bool led_update_keymap(led_t led_state) {
writePin(TOP_LED, LED_ON(IS_LAYER_ON(_REEDER) || IS_LAYER_ON(_MAIL))); // Use for Macro Layer
writePin(MIDDLE_LED, LED_ON(IS_LAYER_ON(_FN1))); // Use for Layer 2
writePin(BOTTOM_LED, LED_ON(led_state.caps_lock)); // Use for Caps Lock
return false; // Override default set by KB
}
#endif

View file

@ -0,0 +1,9 @@
# Build Options
# comment out to disable the options.
#
BACKLIGHT_ENABLE = no
MOUSEKEY_ENABLE = yes # Mouse keys
CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
VELOCIKEY_ENABLE = no

View file

@ -0,0 +1,132 @@
/* Copyright 2020 Brandon Schlack
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
#include "brandonschlack.h"
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Base Layer
*
* Esc Q  W  E  R  T  Y  U  I  O  P Bsp
*
* HyTb A  S  D  F  G  H  J  K  L  Enter
*
* Shift  Z  X  C  V  B  N  M < ,> .?/Lw
*
* Opt Cmd          SpcRse         Ctrl
*
*/
[_BASE] = LAYOUT( \
KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \
HY_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, \
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, SLH_LWR, \
KC_LOPT, KC_LCMD, XXXXXXX, SPC_RAI, XXXXXXX, XXXXXXX, KC_LCTL \
),
/* Lower
*
* DelBrDBrUMsnLHP         Hom  PgUSlD
*
*     MutVlUNxWPvTBckFwdNxT      Ply 
*
* SfCapsPrvVlDNxt1PX1Ps   End  PgD    
*
*                                     
*
*/
[_LOWER] = LAYOUT( \
KC_DELT, KC_BRMD, KC_BRMU, MC_MSSN, MC_LHPD, _______, _______, _______, KC_HOME, KC_UP, KC_PGUP, MC_SLPD, \
_______, KC_MUTE, KC_VOLU, NXT_WIN, PRV_TAB, MC_BACK, MC_FWRD, NXT_TAB, KC_LEFT, KC_RGHT, KC_MPLY, \
SF_CAPS, KC_MPRV, KC_VOLD, KC_MNXT, PX_AFLL, OP_AFLL, _______, KC_END, KC_DOWN, KC_PGDN, _______, \
_______, _______, XXXXXXX, _______, XXXXXXX, XXXXXXX, _______ \
),
/* Raise
*
* ~ `! 1@ 2# 3$ 4% 5^ 6& 7* 8( 9) 0   
*
*      F1 F2 F3 F4 F5 F6_ -+ =: ;   " '│
*
*        F7 F8 F9F10F11F12   { [} ]|\Lw
*
*                                     
*
*/
/*
[_RAISE] = LAYOUT( \
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, \
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_SCLN, KC_QUOT, \
_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_LBRC, KC_RBRC, BSL_LWR, \
_______, _______, XXXXXXX, _______, XXXXXXX, XXXXXXX, _______ \
), */
/* Raise
*
* ~ ` F1 F2 F3 F4{ [} ]& 7* 8( 9) 0   
*
*      F5 F6 F7 F8_ - + $ 4% 5^ 6   " '│
*
*        F9F10F11F12+ =! 1@ 2# 3: ;|\Lw
*
*                                     
*
*/
[_RAISE] = LAYOUT( \
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_LBRC, KC_RBRC, KC_7, KC_8, KC_9, KC_0, _______, \
_______, KC_F5, KC_F6, KC_F7, KC_F8, KC_MINS, KC_PLUS, KC_4, KC_5, KC_6, KC_QUOT, \
_______, KC_F9, KC_F10, KC_F11, KC_F12, KC_EQL, KC_1, KC_2, KC_3, KC_SCLN, BSL_LWR, \
_______, _______, XXXXXXX, _______, XXXXXXX, XXXXXXX, _______ \
),
/* Adjust/Macro
*
* Mke      EEPRST                     
*
*                                      
*
*                                      
*
*                                     
*
*/
[_ADJUST] = LAYOUT( \
QM_MAKE, _______, _______, EEP_RST, RESET, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, XXXXXXX, _______, XXXXXXX, XXXXXXX, _______ \
)
/* Blank Layer
*
*                                     
*
*                                      
*
*                                      
*
*                                     
*
*/
/*
[BLANK] = LAYOUT( \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, XXXXXXX, _______, XXXXXXX, XXXXXXX, _______ \
)
*/
};
layer_state_t layer_state_set_keymap(layer_state_t state) {
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
}