forked from qmk/qmk_firmware
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Bocaj - Third Annual Refactor (Redux) (qmk#10295)
* Reset everything to upstream, reapply Bocaj changes * Bocaj - address PR comments * Just in time changes * Bocaj - Several adjustments after using the layout for a while
- Loading branch information
1 parent
6b1f96d
commit 3076f86
Showing
24 changed files
with
1,403 additions
and
992 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,4 @@ | ||
#pragma once | ||
|
||
#include QMK_KEYBOARD_CONFIG_H | ||
|
||
#define LEADER_TIMEOUT 250 | ||
#define LEADER_PER_KEY_TIMING |
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,37 +1,28 @@ | ||
# Bocaj Layout | ||
# Overview | ||
|
||
While I've put my own spin on most things, much of the credit for these ideas belongs to Drashna and/or the people he derived things from. Please see his [layout](../drashna/) and [userspace](../../../../users/drashna/) for lots of ideas and inspiration. | ||
This is my personal Ergodox EZ configuration, and my daily driver. | ||
|
||
## Layers Overview | ||
Most of the code resides in my userspace and is heavily based upon [Drashna's work](https://github.com/qmk/qmk_firmware/tree/master/users/drashna)... although considerably slimmed down. | ||
|
||
* Default | ||
* Workman | ||
* Qwerty | ||
* Windows Workman (swaps GUI and CTRL buttons) | ||
* Lower | ||
* F1-12 Top Row | ||
* Grave / Layer Switch macro at Caps Lock position | ||
* Navigation at QWERTY 'ESDF' position | ||
* Numpad under right hand | ||
* Adjust | ||
* Volume Control | ||
* Mac Lock Macro | ||
* Make / Reset/ EEPROM keys | ||
* Default Layer changing keys | ||
* Diablo Layer | ||
* Moved shortcuts within left hands reach | ||
* Macros to spam 1-4 every ~1 second | ||
* Shift in thumb cluster to prevent pinky fatique | ||
## How to build | ||
|
||
## LEDs Overview | ||
Put simply: | ||
`make ergodox_ez:bocaj` | ||
|
||
* Used for _LOWER, _ADJUST, and _DIABLO layer indication | ||
* Used for Ctrl/GUI, Shift, and Alt indication when on a default layer | ||
On that note, I use a separate workspace when making changes to my layouts or userspace. In that repo, there is a tool that does this for me. See [JacobJerrell/qmk_layouts/tools/](https://github.com/JacobJerrell/qmk_layouts/tree/master/tools) | ||
|
||
## Wrappers Overview | ||
## Layers | ||
|
||
While it isn't a novel idea, I feel the need to mention it because it really appeals to me as a person that doesn't like repetitive code. | ||
* WORKMAN: No one uses this board but me and I've never had a reason to switch to QWERTY | ||
* LOWER: | ||
* Left: Grave and navigation arrows | ||
* Right: Numpad | ||
* RAISE: | ||
* Symbols across the top, F-Keys on the second row | ||
* ADJUST | ||
* Audio control, make/reset/version macros | ||
* MOD: mouse navigation | ||
|
||
We've all come to know and love the pretty wrapper for Ergodox because it makes for such a beautiful, self-documenting keymap. In this keymap, we are building ontop of the pretty wrapper to wrap our default layers with our keys that aren't unique to the layer. | ||
## Ergodox Specifics | ||
|
||
Now you can wrap your keymap with `LAYOUT_ergodox_pretty_base_wrapper()` and only feed it the alpha keys, having the top, side, bottom, and thumb clusters automatically filled in. If you make a key to any of the top, side, bottom, or thumb cluster keys, it will propegate to all layers that have this wrapper, or have KC_TRNS keycodes in the same location | ||
I don't have the underglow or backlit versions so the 3 LEDs on the right board are used for layer indication if not on the base layer. If you're on the base layer, they're used for mod-key indicators. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,11 +1,14 @@ | ||
AUTO_SHIFT_ENABLE = no | ||
COMMAND_ENABLE = no | ||
SWAP_HANDS_ENABLE = no | ||
TAP_DANCE_ENABLE = yes | ||
EXTRAKEY_ENABLE = no | ||
KEY_LOCK_ENABLE = yes | ||
LEADER_ENABLE = yes | ||
BOOTMAGIC_ENABLE = yes | ||
TAP_DANCE_ENABLE = no | ||
COMMAND_ENABLE = no # Commands for debug and configuration | ||
CONSOLE_ENABLE = yes | ||
SPACE_CADET_ENABLE = no | ||
KEY_LOCK_ENABLE = yes | ||
MOUSEKEY_ENABLE = yes | ||
EXTRAKEY_ENABLE = yes | ||
LEADER_ENABLE = yes | ||
|
||
UNICODE_ENABLE = yes | ||
UNICODEMAP_ENABLE = no | ||
UCIS_ENABLE = no | ||
UNICODE_ENABLE = no | ||
UNICODEMAP_ENABLE = no | ||
RGB_MATRIX_ENABLE = no | ||
RGBLIGHT_ENABLE = no |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,109 @@ | ||
#pragma once | ||
|
||
#define LEADER_TIMEOUT 250 | ||
#define LEADER_PER_KEY_TIMING | ||
|
||
#if defined(RGBLIGHT_ENABLE) && !defined(RGBLED_NUM) | ||
# if defined(KEYBOARD_planck_light) | ||
# define RGB_DI_PIN A0 | ||
# define RGBLED_NUM 13 // Number of LEDs | ||
# endif | ||
# define RGBLIGHT_HUE_STEP 12 | ||
# define RGBLIGHT_SAT_STEP 12 | ||
# define RGBLIGHT_VAL_STEP 12 | ||
# define RGBLIGHT_EFFECT_KNIGHT_LENGTH 2 | ||
# define RGBLIGHT_EFFECT_SNAKE_LENGTH 2 | ||
# ifdef RGB_MATRIX_ENABLE | ||
# define RGBLIGHT_DISABLE_KEYCODES | ||
# endif | ||
#endif // RGBLIGHT_ENABLE | ||
|
||
#ifdef RGB_MATRIX_ENABLE | ||
# define RGB_MATRIX_KEYPRESSES // reacts to keypresses (will slow down matrix scan by a lot) | ||
// #define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (not recommened) | ||
# define RGB_MATRIX_FRAMEBUFFER_EFFECTS | ||
// #define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects | ||
// #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255 | ||
# define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended | ||
# undef RGB_MATRIX_LED_PROCESS_LIMIT | ||
# undef RGB_MATRIX_LED_FLUSH_LIMIT | ||
#endif | ||
|
||
#if defined(KEYBOARD_planck_ez) | ||
# undef PRODUCT | ||
# define PRODUCT Bocaj Hacked Planck EZ | ||
#endif | ||
|
||
#define EEPROM_I2C_RM24C512C | ||
|
||
#define ENCODER_DIRECTION_FLIP | ||
/* | ||
* MIDI options | ||
*/ | ||
|
||
/* Prevent use of disabled MIDI features in the keymap */ | ||
//#define MIDI_ENABLE_STRICT 1 | ||
|
||
/* enable basic MIDI features: | ||
- MIDI notes can be sent when in Music mode is on | ||
*/ | ||
|
||
// #define MIDI_BASIC | ||
|
||
/* enable advanced MIDI features: | ||
- MIDI notes can be added to the keymap | ||
- Octave shift and transpose | ||
- Virtual sustain, portamento, and modulation wheel | ||
- etc. | ||
*/ | ||
//#define MIDI_ADVANCED | ||
|
||
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ | ||
//#define MIDI_TONE_KEYCODE_OCTAVES 2 | ||
|
||
#define FB_ERM_LRA 1 /* For ERM:0 or LRA:1*/ | ||
#define FB_BRAKEFACTOR 6 /* For 1x:0, 2x:1, 3x:2, 4x:3, 6x:4, 8x:5, 16x:6, Disable Braking:7 */ | ||
#define FB_LOOPGAIN 1 /* For Low:0, Medium:1, High:2, Very High:3 */ | ||
|
||
/* default 3V ERM vibration motor voltage and library*/ | ||
#if FB_ERM_LRA == 0 | ||
# define RATED_VOLTAGE 3 | ||
# define V_RMS 2.3 | ||
# define V_PEAK 3.30 | ||
/* Library Selection */ | ||
# define LIB_SELECTION 4 /* For Empty:0' TS2200 library A to D:1-5, LRA Library: 6 */ | ||
|
||
/* default 2V LRA voltage and library */ | ||
#elif FB_ERM_LRA == 1 | ||
# define RATED_VOLTAGE 2 | ||
# define V_RMS 2.0 | ||
# define V_PEAK 2.85 | ||
# define F_LRA 200 | ||
/* Library Selection */ | ||
# define LIB_SELECTION 6 /* For Empty:0' TS2200 library A to D:1-5, LRA Library: 6 */ | ||
|
||
#endif | ||
|
||
/* Control 1 register settings */ | ||
#define DRIVE_TIME 25 | ||
#define AC_COUPLE 0 | ||
#define STARTUP_BOOST 1 | ||
|
||
/* Control 2 Settings */ | ||
#define BIDIR_INPUT 1 | ||
#define BRAKE_STAB 1 /* Loopgain is reduced when braking is almost complete to improve stability */ | ||
#define SAMPLE_TIME 3 | ||
#define BLANKING_TIME 1 | ||
#define IDISS_TIME 1 | ||
|
||
/* Control 3 settings */ | ||
#define NG_THRESH 2 | ||
#define ERM_OPEN_LOOP 1 | ||
#define SUPPLY_COMP_DIS 0 | ||
#define DATA_FORMAT_RTO 0 | ||
#define LRA_DRIVE_MODE 0 | ||
#define N_PWM_ANALOG 0 | ||
#define LRA_OPEN_LOOP 0 | ||
/* Control 4 settings */ | ||
#define ZC_DET_TIME 0 | ||
#define AUTO_CAL_TIME 3 |
Oops, something went wrong.