Browse Source

[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
Jonathan Rascher 5 years ago
parent
commit
c1c579c554

+ 96 - 4
keyboards/crkbd/keymaps/bcat/readme.md

@@ -1,9 +1,24 @@
 # bcat's Corne layout
 
-This split ergo layout mirrors
-[my Lily58 layout](https://github.com/qmk/qmk_firmware/tree/master/keyboards/lily58/keymaps/bcat)
-with the number row removed and RGB controls added. See that layout's docs for
-more details on the principles that went into the layout.
+This is my favorite split ergo layout for typing, featuring the traditional
+four ortho/ergo layers (Default, Lower, Raise, Adjust). It is loosely inspired
+by the default Planck (numbers on Lower, symbols on Raise) and Crkbd (Space on
+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
 
@@ -11,20 +26,97 @@ more details on the principles that went into the layout.
 
 ([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 layout](https://i.imgur.com/rDlSmrA.png)
 
 ([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 layout](https://i.imgur.com/cVoKygg.png)
 
 ([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 F1–F10 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 (F1–F5) 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 layout](https://i.imgur.com/LEHM4DU.png)
 
 ([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.

+ 3 - 0
keyboards/lily58/keymaps/bcat/config.h

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

+ 10 - 41
keyboards/lily58/keymaps/bcat/readme.md

@@ -1,49 +1,18 @@
 # bcat's Lily58 layout
 
-This split ergo layout is standard QWERTY on the default layer, with symbols on
-the lower layer, numbers/navigation on the raise layer, and media keys centered
-around the ESDF cluster in the adjust (raise + lower) layer. A few general
-principles went into this layout:
+This split ergo layout follows my preferred [Crkbd
+layout](https://github.com/qmk/qmk_firmware/tree/master/keyboards/crkbd/keymaps/bcat)
+with the following changes:
 
-* The number row is optional, as are the outermost bottom row keys and the
-"extra" keys on the innnermost columns below the controllers. This allows me to
-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.
+* There's an optional number row at the top of the keyboard. I am quite used to
+using layers for numbers and symbols, so in practice this goes unused.
 
-* 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
-because I don't have any better ideas for what to put there.
-
-* 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).
+* The extra thumb keys are used for dedicated Ctrl/Menu keys (not super useful)
+and browser back/forward navigation keys (actually more useful than expected).
 
 ## Default layer
 

+ 2 - 2
users/bcat/bcat.c

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

+ 31 - 51
users/bcat/config.h

@@ -26,65 +26,45 @@
 #define TAPPING_FORCE_HOLD
 
 #if defined(RGB_MATRIX_ENABLE)
-    /* Turn off per-key RGB when the host goes to sleep. */
-    #define RGB_DISABLE_WHEN_USB_SUSPENDED true
-
-    /* Keep per-key RGB increments consistent across keyboards. */
-    #undef RGB_MATRIX_HUE_STEP
-    #undef RGB_MATRIX_SAT_STEP
-    #undef RGB_MATRIX_VAL_STEP
-    #undef RGB_MATRIX_SPD_STEP
-
-    #define RGB_MATRIX_HUE_STEP 8
-    #define RGB_MATRIX_SAT_STEP 17
-    #define RGB_MATRIX_VAL_STEP 17
-    #define RGB_MATRIX_SPD_STEP 17
-
-    /* Turn on additional RGB animations. */
-    #define RGB_MATRIX_FRAMEBUFFER_EFFECTS
-    #define RGB_MATRIX_KEYPRESSES
+/* Turn off per-key RGB when the host goes to sleep. */
+#    define RGB_DISABLE_WHEN_USB_SUSPENDED true
+
+/* Keep per-key RGB increments consistent across keyboards. */
+#    undef RGB_MATRIX_HUE_STEP
+#    undef RGB_MATRIX_SAT_STEP
+#    undef RGB_MATRIX_VAL_STEP
+#    undef RGB_MATRIX_SPD_STEP
+
+#    define RGB_MATRIX_HUE_STEP 8
+#    define RGB_MATRIX_SAT_STEP 17
+#    define RGB_MATRIX_VAL_STEP 17
+#    define RGB_MATRIX_SPD_STEP 17
+
+/* Turn on additional RGB animations. */
+#    define RGB_MATRIX_FRAMEBUFFER_EFFECTS
+#    define RGB_MATRIX_KEYPRESSES
 #endif
 
 #if defined(RGBLIGHT_ENABLE)
-    /* Turn off RGB underglow when the host goes to sleep. */
-    #define RGBLIGHT_SLEEP
+/* Turn off RGB underglow when the host goes to sleep. */
+#    define RGBLIGHT_SLEEP
 
-    /* Keep RGB underglow level increments consistent across keyboards. */
-    #undef RGBLIGHT_HUE_STEP
-    #undef RGBLIGHT_SAT_STEP
-    #undef RGBLIGHT_VAL_STEP
+/* Keep RGB underglow level increments consistent across keyboards. */
+#    undef RGBLIGHT_HUE_STEP
+#    undef RGBLIGHT_SAT_STEP
+#    undef RGBLIGHT_VAL_STEP
 
-    #define RGBLIGHT_HUE_STEP 8
-    #define RGBLIGHT_SAT_STEP 17
-    #define RGBLIGHT_VAL_STEP 17
+#    define RGBLIGHT_HUE_STEP 8
+#    define RGBLIGHT_SAT_STEP 17
+#    define RGBLIGHT_VAL_STEP 17
 #endif
 
 #if defined(BACKLIGHT_ENABLE)
-    /* Enable backlight breathing across the board. */
-    #define BACKLIGHT_BREATHING
-
-    /* Keep backlight level increments consistent across keyboards. */
-    #undef BACKLIGHT_LEVELS
-
-    #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
+/* Enable backlight breathing across the board. */
+#    define BACKLIGHT_BREATHING
 
-    /* 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
+/* Keep backlight level increments consistent across keyboards. */
+#    undef BACKLIGHT_LEVELS
 
-    #define MOUSEKEY_MAX_SPEED 7
-    #define MOUSEKEY_TIME_TO_MAX 150
-    #define MOUSEKEY_WHEEL_MAX_SPEED 3
-    #define MOUSEKEY_WHEEL_TIME_TO_MAX 150
+#    define BACKLIGHT_LEVELS 7
 #endif

+ 13 - 0
users/bcat/readme.md

@@ -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.

+ 20 - 8
users/bcat/rules.mk

@@ -6,18 +6,30 @@ BOOTMAGIC_ENABLE = lite
 # Enable media keys on all keyboards.
 EXTRAKEY_ENABLE = yes
 
-# Disable some unwanted features on all keyboards.
-API_SYSEX_ENABLE = no
+# Enable link-time optimization to reduce binary size.
+LINK_TIME_OPTIMIZATION_ENABLE = yes
+
+# Disable unused build options on all keyboards.
 COMMAND_ENABLE = no
 CONSOLE_ENABLE = no
-FAUXCLICKY_ENABLE = no
-MIDI_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
-UNICODE_ENABLE = no
 UNICODEMAP_ENABLE = no
-
-# Enable link-time optimization to reduce binary size.
-LINK_TIME_OPTIMIZATION_ENABLE = yes
+UNICODE_ENABLE = no