summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--keyboards/crkbd/keymaps/bcat/readme.md100
-rw-r--r--keyboards/lily58/keymaps/bcat/config.h3
-rw-r--r--keyboards/lily58/keymaps/bcat/readme.md51
-rw-r--r--users/bcat/bcat.c4
-rw-r--r--users/bcat/config.h82
-rw-r--r--users/bcat/readme.md13
-rw-r--r--users/bcat/rules.mk28
7 files changed, 175 insertions, 106 deletions
diff --git a/keyboards/crkbd/keymaps/bcat/readme.md b/keyboards/crkbd/keymaps/bcat/readme.md
index 71a9d93c95..9b2110a479 100644
--- a/keyboards/crkbd/keymaps/bcat/readme.md
+++ b/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.
diff --git a/keyboards/lily58/keymaps/bcat/config.h b/keyboards/lily58/keymaps/bcat/config.h
index 1809262044..f7f08d076a 100644
--- a/keyboards/lily58/keymaps/bcat/config.h
+++ b/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
diff --git a/keyboards/lily58/keymaps/bcat/readme.md b/keyboards/lily58/keymaps/bcat/readme.md
index 389def1432..0ea0d2278e 100644
--- a/keyboards/lily58/keymaps/bcat/readme.md
+++ b/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
diff --git a/users/bcat/bcat.c b/users/bcat/bcat.c
index bea64dbaa9..2b250c10f1 100644
--- a/users/bcat/bcat.c
+++ b/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
diff --git a/users/bcat/config.h b/users/bcat/config.h
index da74cb0a0b..b0d556186a 100644
--- a/users/bcat/config.h
+++ b/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
diff --git a/users/bcat/readme.md b/users/bcat/readme.md
new file mode 100644
index 0000000000..49fbea1acf
--- /dev/null
+++ b/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.
diff --git a/users/bcat/rules.mk b/users/bcat/rules.mk
index 585e8092e2..f3c6f9ab27 100644
--- a/users/bcat/rules.mk
+++ b/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