[Keymap] Clean up my ergo keymaps and userspace (#8857)

* Remove more mouse keys settings missed in #8836

* Turn off more unwanted make options

* clang-format my userspace

* Reword ergo layout docs so Crkbd is canonical

* Add a basic readme to my userspace

* Tweak Crkbd readme wording and fix typos

* Enable SPLIT_USB_DETECT for Lily58 w/ Elite-C bug
This commit is contained in:
Jonathan Rascher 2020-04-22 15:26:51 -05:00 committed by GitHub
parent 19bd8aa942
commit c1c579c554
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 177 additions and 108 deletions

View file

@ -1,9 +1,24 @@
# bcat's Corne layout # bcat's Corne layout
This split ergo layout mirrors This is my favorite split ergo layout for typing, featuring the traditional
[my Lily58 layout](https://github.com/qmk/qmk_firmware/tree/master/keyboards/lily58/keymaps/bcat) four ortho/ergo layers (Default, Lower, Raise, Adjust). It is loosely inspired
with the number row removed and RGB controls added. See that layout's docs for by the default Planck (numbers on Lower, symbols on Raise) and Crkbd (Space on
more details on the principles that went into the layout. left, Enter on right) layouts, but has since been redesigned heavily according
to the principles described below:
* Since most of the modifiers are on the left half, keys frequently pressed
together with mods (e.g., numbers, function keys, etc.) are on the Raise layer
activated by the right thumb.
* Navigation can be done on the right half alone, to enable simultaneous
left-handed mousing. Additionally, Web pages can be scrolled with Space or
Shift+Space on the left half alone, to enable taking notes with the right hand
at the same time.
* Other than Right Shift (which I seldom use), mods aren't rebound on layers.
* Likewise, Backspace is not rebound on layers to avoid having to let go of
layer-switch keys to correct mistakes.
## Default layer ## Default layer
@ -11,20 +26,97 @@ more details on the principles that went into the layout.
([KLE](http://www.keyboard-layout-editor.com/#/gists/08d9827d916662a9414f48805aa895a5)) ([KLE](http://www.keyboard-layout-editor.com/#/gists/08d9827d916662a9414f48805aa895a5))
* The alpha keys are a standard QWERTY layout, no funny business there.
* Tab and Backspace are in familiar locations from my row-staggered boards
(almost all of which use HHKB-style split backspace).
* Likewise, the Ctrl key is in the same place as on my row-staggered boards
(where I've been remapping Caps Lock as Ctrl since before even using QMK).
* There are two Shift keys, because I do use Right Shift on occasion (even
though I'm predominately a Left Shift-er).
* Lower and Raise layer-switch keys are below the left and right thumb,
respectively, when resting my fingers on the home row.
* Space and Enter are on the big thumb keys so they're easy to press.
* Alt is on the left so I can navigate back (Alt+Raise+H) and forward
(Alt+Raise+L) without having to uncomfortably hit two thumb keys on the same
half. This puts Super on the right by the process of elimination.
* Escape shares a mod-tap key with Ctrl, which is convenient for Vim, but not
something I'm totally in love with, as even after tweaking `TAPPING_TERM` I
still get occasional spurious Esc taps. (I might move Esc up a key and put Tab
on a layer, but that'd take some getting used to....)
## Lower layer ## Lower layer
![Lower layer layout](https://i.imgur.com/rDlSmrA.png) ![Lower layer layout](https://i.imgur.com/rDlSmrA.png)
([KLE](http://www.keyboard-layout-editor.com/#/gists/c3fba5eaa2cd70fdfbdbc0f9e34d3bc0)) ([KLE](http://www.keyboard-layout-editor.com/#/gists/c3fba5eaa2cd70fdfbdbc0f9e34d3bc0))
* This could also be called the "symbol layer".
* Shifted numbers are bound in their usual positions on the top row.
* Hyphen/Underscore and Equals/Plus are in the right index- and middle-finger
columns for easy reach. They share the same relative position as on a
row-staggered keyboard, and the shifted versions are physically above the
unshifted versions as a mnemonic device.
* Brackets and braces are placed below the parens for easy recall. Once again,
the shifted versions are on the home row and the unshifted versions are on the
bottom row.
* Forward Slash/Pipe and Backtick/Tilde fill out the remaining positions on the
right half, with the same relative positions as on a row-staggered HHKB layout.
And yup, the shifted versions are above the unshifted versions.
* Caps Lock is bound in the same position as on an HHKB, for lack of an obvious
better location.
* Some extra keys are placed on the bottom row of the left half, ensuring every
key on a TKL has a binding.
* The left-half home row is reversed for future use. (It's free real estate.)
## Raise layer ## Raise layer
![Raise layer layout](https://i.imgur.com/cVoKygg.png) ![Raise layer layout](https://i.imgur.com/cVoKygg.png)
([KLE](http://www.keyboard-layout-editor.com/#/gists/08b44355d4ca85d294bad9e2821f91d7)) ([KLE](http://www.keyboard-layout-editor.com/#/gists/08b44355d4ca85d294bad9e2821f91d7))
* This could also be called the "number layer".
* Unshifted numbers are bound in their usual positions on the top row.
* Arrow keys are on VIM-style HJKL keys.
* Home/End and Page Up/Page Down are in the same column as the arrow keys, but
translated down one row. (This means that the comma and period keys are not
bound on the number layer, which makes data entry a bit funky. I might add a
dedicated numpad layer to compensate.)
* Function keys F1F10 take up most of remaining space on the left half, with
F11 and F12 spilling over to the right half. (This puts the most used function
keys (F1F5) on the home row.)
* Insert and Delete are on the rightmost column, because there didn't seem to
be a better place to put them.
## Adjust layer ## Adjust layer
![Adjust layer layout](https://i.imgur.com/LEHM4DU.png) ![Adjust layer layout](https://i.imgur.com/LEHM4DU.png)
([KLE](http://www.keyboard-layout-editor.com/#/gists/77e7572e077b36a23eb2086017e16fee)) ([KLE](http://www.keyboard-layout-editor.com/#/gists/77e7572e077b36a23eb2086017e16fee))
* Media keys are centered around the ESDF cluster, just like I arrange them on
row-staggered keyboards. (It's even more sensible with columnar stagger.)
* The navigation keys are replaced by RGB controls. Again, this mirrors the
positioning I use on my row-staggered keyboards.
* Finally, reset keys live at the top-left corner of the right half where it's
reasonably hard to press them by accident.

View file

@ -1,3 +1,6 @@
#pragma once #pragma once
#define EE_HANDS #define EE_HANDS
/* Work around Elite-C v3 with broken VBUS detection. */
#define SPLIT_USB_DETECT

View file

@ -1,49 +1,18 @@
# bcat's Lily58 layout # bcat's Lily58 layout
This split ergo layout is standard QWERTY on the default layer, with symbols on This split ergo layout follows my preferred [Crkbd
the lower layer, numbers/navigation on the raise layer, and media keys centered layout](https://github.com/qmk/qmk_firmware/tree/master/keyboards/crkbd/keymaps/bcat)
around the ESDF cluster in the adjust (raise + lower) layer. A few general with the following changes:
principles went into this layout:
* The number row is optional, as are the outermost bottom row keys and the * There's an optional number row at the top of the keyboard. I am quite used to
"extra" keys on the innnermost columns below the controllers. This allows me to using layers for numbers and symbols, so in practice this goes unused.
switch between this keyboard and a 40% like the
[Crkbd](https://github.com/qmk/qmk_firmware/tree/master/keyboards/lily58/keymaps/bcat)
without breaking muscle memory.
* Space and Enter are on the big thumb keys so they're easy to press. * The dedicated Hyphen/Underscore and Equals/Plus keys on the number row are
placed in the same positions as on the ErgoDox EZ. (There's no real reason for
this; I just had to do _something_ with those keys.)
* There are two shift keys because Right Shift is all that important, but just * The extra thumb keys are used for dedicated Ctrl/Menu keys (not super useful)
because I don't have any better ideas for what to put there. and browser back/forward navigation keys (actually more useful than expected).
* Arrow keys are on VIM-style HJKL keys.
* Home/End and Page Up/Page Down are equivalent to the arrow keys, but
translated down one row.
* Navigation is usable with just the right hand, to enable left-handed mousing
at the same time. Additionally, Web page scrolling (Space, Shift+Space) is
possible with just the left hand, for writing at the same time as scrolling.
* Escape is easy to reach because Vim is life.
* Since most of the modifiers are on the left half, keys frequently pressed
together with mods (e.g., numbers, function keys, etc.) are on the Raise layer
activated by the right thumb.
* Every key on a TKL has a binding.
* Backspace is bound in the same place on every layer to avoid having to let go
of layer-shift keys to fix a mistake.
* Likewise, the comma and period keys are not rebound on the raise layer to
allow typing numbers with thousand separators and decimal points without
releasing the layer key.
* Brackets and braces are on or near the home row for quick access when coding.
They're positioned below the parens on the Raise layer for easy recall.
* For consistency, mods aren't rebound on layers (except for the Tab key).
## Default layer ## Default layer

View file

@ -1,6 +1,6 @@
#include "quantum.h" #include "quantum.h"
#if defined(RGBLIGHT_ENABLE) #if defined(RGBLIGHT_ENABLE)
/* Adjust RGB static hue ranges for shorter gradients than default. */ /* Adjust RGB static hue ranges for shorter gradients than default. */
const uint8_t RGBLED_GRADIENT_RANGES[] PROGMEM = {255, 127, 63, 31, 15}; const uint8_t RGBLED_GRADIENT_RANGES[] PROGMEM = {255, 127, 63, 31, 15};
#endif #endif

View file

@ -26,65 +26,45 @@
#define TAPPING_FORCE_HOLD #define TAPPING_FORCE_HOLD
#if defined(RGB_MATRIX_ENABLE) #if defined(RGB_MATRIX_ENABLE)
/* Turn off per-key RGB when the host goes to sleep. */ /* Turn off per-key RGB when the host goes to sleep. */
#define RGB_DISABLE_WHEN_USB_SUSPENDED true # define RGB_DISABLE_WHEN_USB_SUSPENDED true
/* Keep per-key RGB increments consistent across keyboards. */ /* Keep per-key RGB increments consistent across keyboards. */
#undef RGB_MATRIX_HUE_STEP # undef RGB_MATRIX_HUE_STEP
#undef RGB_MATRIX_SAT_STEP # undef RGB_MATRIX_SAT_STEP
#undef RGB_MATRIX_VAL_STEP # undef RGB_MATRIX_VAL_STEP
#undef RGB_MATRIX_SPD_STEP # undef RGB_MATRIX_SPD_STEP
#define RGB_MATRIX_HUE_STEP 8 # define RGB_MATRIX_HUE_STEP 8
#define RGB_MATRIX_SAT_STEP 17 # define RGB_MATRIX_SAT_STEP 17
#define RGB_MATRIX_VAL_STEP 17 # define RGB_MATRIX_VAL_STEP 17
#define RGB_MATRIX_SPD_STEP 17 # define RGB_MATRIX_SPD_STEP 17
/* Turn on additional RGB animations. */ /* Turn on additional RGB animations. */
#define RGB_MATRIX_FRAMEBUFFER_EFFECTS # define RGB_MATRIX_FRAMEBUFFER_EFFECTS
#define RGB_MATRIX_KEYPRESSES # define RGB_MATRIX_KEYPRESSES
#endif #endif
#if defined(RGBLIGHT_ENABLE) #if defined(RGBLIGHT_ENABLE)
/* Turn off RGB underglow when the host goes to sleep. */ /* Turn off RGB underglow when the host goes to sleep. */
#define RGBLIGHT_SLEEP # define RGBLIGHT_SLEEP
/* Keep RGB underglow level increments consistent across keyboards. */ /* Keep RGB underglow level increments consistent across keyboards. */
#undef RGBLIGHT_HUE_STEP # undef RGBLIGHT_HUE_STEP
#undef RGBLIGHT_SAT_STEP # undef RGBLIGHT_SAT_STEP
#undef RGBLIGHT_VAL_STEP # undef RGBLIGHT_VAL_STEP
#define RGBLIGHT_HUE_STEP 8 # define RGBLIGHT_HUE_STEP 8
#define RGBLIGHT_SAT_STEP 17 # define RGBLIGHT_SAT_STEP 17
#define RGBLIGHT_VAL_STEP 17 # define RGBLIGHT_VAL_STEP 17
#endif #endif
#if defined(BACKLIGHT_ENABLE) #if defined(BACKLIGHT_ENABLE)
/* Enable backlight breathing across the board. */ /* Enable backlight breathing across the board. */
#define BACKLIGHT_BREATHING # define BACKLIGHT_BREATHING
/* Keep backlight level increments consistent across keyboards. */ /* Keep backlight level increments consistent across keyboards. */
#undef BACKLIGHT_LEVELS # undef BACKLIGHT_LEVELS
#define BACKLIGHT_LEVELS 7 # define BACKLIGHT_LEVELS 7
#endif
#if defined(MOUSEKEY_ENABLE)
/* Make mouse operation smoother. */
#undef MOUSEKEY_DELAY
#undef MOUSEKEY_INTERVAL
#define MOUSEKEY_DELAY 0
#define MOUSEKEY_INTERVAL 16
/* Lower mouse speed to adjust for reduced MOUSEKEY_INTERVAL. */
#undef MOUSEKEY_MAX_SPEED
#undef MOUSEKEY_TIME_TO_MAX
#undef MOUSEKEY_WHEEL_MAX_SPEED
#undef MOUSEKEY_WHEEL_TIME_TO_MAX
#define MOUSEKEY_MAX_SPEED 7
#define MOUSEKEY_TIME_TO_MAX 150
#define MOUSEKEY_WHEEL_MAX_SPEED 3
#define MOUSEKEY_WHEEL_TIME_TO_MAX 150
#endif #endif

13
users/bcat/readme.md Normal file
View file

@ -0,0 +1,13 @@
# bcat's userspace
This is some code and config shared by all of [my](https://github.com/bcat)
keyboards. I have a few different keymaps spread throughout the repo; however,
they are all derived from two "canonical" keymaps for my preferred layouts:
* For typing, my canonical layout is my
[Crkbd](https://github.com/qmk/qmk_firmware/tree/master/keyboards/crkbd/keymaps/bcat)
(split ergo, columnar-staggered) layout.
* For gaming, my canonical layout is my
[Tsangan](https://github.com/qmk/qmk_firmware/tree/master/layouts/community/60_tsangan_hhkb/bcat)
(row-staggered) layout.

View file

@ -6,18 +6,30 @@ BOOTMAGIC_ENABLE = lite
# Enable media keys on all keyboards. # Enable media keys on all keyboards.
EXTRAKEY_ENABLE = yes EXTRAKEY_ENABLE = yes
# Disable some unwanted features on all keyboards.
API_SYSEX_ENABLE = no
COMMAND_ENABLE = no
CONSOLE_ENABLE = no
FAUXCLICKY_ENABLE = no
MIDI_ENABLE = no
MOUSEKEY_ENABLE = no
NKRO_ENABLE = no
SLEEP_LED_ENABLE = no
UCIS_ENABLE = no
UNICODE_ENABLE = no
UNICODEMAP_ENABLE = no
# Enable link-time optimization to reduce binary size. # Enable link-time optimization to reduce binary size.
LINK_TIME_OPTIMIZATION_ENABLE = yes LINK_TIME_OPTIMIZATION_ENABLE = yes
# Disable unused build options on all keyboards.
COMMAND_ENABLE = no
CONSOLE_ENABLE = no
MOUSEKEY_ENABLE = no
NKRO_ENABLE = no
TERMINAL_ENABLE = no
# Disable unused hardware options on all keyboards.
FAUXCLICKY_ENABLE = no
MIDI_ENABLE = no
SLEEP_LED_ENABLE = no
# Disable unused other options.
API_SYSEX_ENABLE = no
AUTO_SHIFT_ENABLE = no
COMBO_ENABLE = no
KEYBOARD_LOCK_ENABLE = no
KEY_LOCK_ENABLE = no
LEADER_ENABLE = no
SWAP_HANDS_ENABLE = no
TAP_DANCE_ENABLE = no
UCIS_ENABLE = no
UNICODEMAP_ENABLE = no
UNICODE_ENABLE = no