From b5ebdf1b3a29119e1a414aaf7e2cf7a583853430 Mon Sep 17 00:00:00 2001 From: Jonathan Rascher Date: Fri, 6 Nov 2020 00:41:06 -0600 Subject: [Keymap] bcat keymaps and userspace (#10705) Add Eco keymap, factor Crkbd keymap to community layout, other minor tweaks * Remove outdated Crkbd Ctrl key positioning info * Add Left Alt key to Lily58 keymap * Lily58 no longer overrides default TAPPING_TERM * Refactor Crkbd keymap to use new community layout * Fix underglow animations for Crkbd w/ Split Common * Add initial Eco keymap * Update outdated reference to Crkbd layout * Add keymap links to userspace readme * Add copyright notices to files changed in this PR --- keyboards/crkbd/keymaps/bcat/config.h | 7 -- keyboards/crkbd/keymaps/bcat/keymap.c | 56 ------------ keyboards/crkbd/keymaps/bcat/readme.md | 128 --------------------------- keyboards/crkbd/keymaps/bcat/rules.mk | 3 - keyboards/eco/keymaps/bcat/config.h | 22 +++++ keyboards/eco/keymaps/bcat/keymap.c | 72 +++++++++++++++ keyboards/eco/keymaps/bcat/readme.md | 44 +++++++++ keyboards/eco/keymaps/bcat/rules.mk | 3 + keyboards/lily58/keymaps/bcat/keymap.c | 18 +++- keyboards/lily58/keymaps/bcat/readme.md | 15 ++-- layouts/community/split_3x6_3/bcat/config.h | 34 +++++++ layouts/community/split_3x6_3/bcat/keymap.c | 72 +++++++++++++++ layouts/community/split_3x6_3/bcat/readme.md | 126 ++++++++++++++++++++++++++ layouts/community/split_3x6_3/bcat/rules.mk | 10 +++ users/bcat/config.h | 35 +++++--- users/bcat/readme.md | 51 +++++++++-- 16 files changed, 474 insertions(+), 222 deletions(-) delete mode 100644 keyboards/crkbd/keymaps/bcat/config.h delete mode 100644 keyboards/crkbd/keymaps/bcat/keymap.c delete mode 100644 keyboards/crkbd/keymaps/bcat/readme.md delete mode 100644 keyboards/crkbd/keymaps/bcat/rules.mk create mode 100644 keyboards/eco/keymaps/bcat/config.h create mode 100644 keyboards/eco/keymaps/bcat/keymap.c create mode 100644 keyboards/eco/keymaps/bcat/readme.md create mode 100644 keyboards/eco/keymaps/bcat/rules.mk create mode 100644 layouts/community/split_3x6_3/bcat/config.h create mode 100644 layouts/community/split_3x6_3/bcat/keymap.c create mode 100644 layouts/community/split_3x6_3/bcat/readme.md create mode 100644 layouts/community/split_3x6_3/bcat/rules.mk diff --git a/keyboards/crkbd/keymaps/bcat/config.h b/keyboards/crkbd/keymaps/bcat/config.h deleted file mode 100644 index 65e7a80523..0000000000 --- a/keyboards/crkbd/keymaps/bcat/config.h +++ /dev/null @@ -1,7 +0,0 @@ -#pragma once - -#define EE_HANDS - -/* Limit max RGB LED current to avoid tripping controller fuse. */ -#undef RGB_MATRIX_MAXIMUM_BRIGHTNESS -#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 diff --git a/keyboards/crkbd/keymaps/bcat/keymap.c b/keyboards/crkbd/keymaps/bcat/keymap.c deleted file mode 100644 index 7b8329fea9..0000000000 --- a/keyboards/crkbd/keymaps/bcat/keymap.c +++ /dev/null @@ -1,56 +0,0 @@ -#include QMK_KEYBOARD_H - -#include "bcat.h" - -enum layer { - LAYER_DEFAULT, - LAYER_LOWER, - LAYER_RAISE, - LAYER_ADJUST, -}; - -#define LY_LWR MO(LAYER_LOWER) -#define LY_RSE MO(LAYER_RAISE) - -#define KY_CSPC LCTL(KC_SPC) -#define KY_ZMIN LCTL(KC_EQL) -#define KY_ZMOUT LCTL(KC_MINS) -#define KY_ZMRST LCTL(KC_0) - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Default layer: http://www.keyboard-layout-editor.com/#/gists/08d9827d916662a9414f48805aa895a5 */ - [LAYER_DEFAULT] = LAYOUT( - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, - KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - 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_LCTL, LY_LWR, KC_SPC, KC_ENT, LY_RSE, KC_RALT - ), - - /* Lower layer: http://www.keyboard-layout-editor.com/#/gists/c3fba5eaa2cd70fdfbdbc0f9e34d3bc0 */ - [LAYER_LOWER] = LAYOUT( - MC_ALTT, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, - KY_CSPC, KY_ZMRST, KY_ZMOUT, KY_ZMIN, KC_WBAK, KC_WFWD, KC_PIPE, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_TILD, - _______, KC_APP, KC_PSCR, KC_SLCK, KC_PAUS, KC_LGUI, KC_BSLS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_GRV, - _______, _______, _______, _______, _______, _______ - ), - - /* Raise layer: http://www.keyboard-layout-editor.com/#/gists/08b44355d4ca85d294bad9e2821f91d7 */ - [LAYER_RAISE] = LAYOUT( - KC_CAPS, 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_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_F11, KC_DEL, - _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_F12, KC_INS, - _______, _______, _______, _______, _______, _______ - ), - - /* Adjust layer: http://www.keyboard-layout-editor.com/#/gists/77e7572e077b36a23eb2086017e16fee */ - [LAYER_ADJUST] = LAYOUT( - _______, NK_TOGG, KC_MPLY, KC_VOLU, KC_MSTP, _______, EEP_RST, RESET, _______, _______, _______, _______, - _______, _______, KC_MPRV, KC_VOLD, KC_MNXT, _______, RGB_RMOD, RGB_VAD, RGB_VAI, RGB_MOD, RGB_SPI, _______, - _______, _______, _______, KC_MUTE, _______, _______, RGB_HUI, RGB_SAD, RGB_SAI, RGB_HUD, RGB_SPD, _______, - _______, _______, _______, RGB_TOG, _______, _______ - ), -}; - -layer_state_t layer_state_set_keymap(layer_state_t state) { - return update_tri_layer_state(state, LAYER_LOWER, LAYER_RAISE, LAYER_ADJUST); -} diff --git a/keyboards/crkbd/keymaps/bcat/readme.md b/keyboards/crkbd/keymaps/bcat/readme.md deleted file mode 100644 index 4ffb1562bf..0000000000 --- a/keyboards/crkbd/keymaps/bcat/readme.md +++ /dev/null @@ -1,128 +0,0 @@ -# bcat's Corne 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 my most-frequently-used keyboard shortcuts involve Ctrl, which lives on -the left half of the keyboard, keys frequently used with it (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 layout](https://i.imgur.com/g5N7g8D.png) - -([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). - -* The Esc key is next to the home row for convenience in Vim. - -* 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, although I generally use Left Shift. (I've -considered replacing Right Shift with another key, but haven't chosen one.) - -* Lower and Raise layer-switch keys are in the resting position of my left and -right thumbs, respectively. - -* Space and Enter are on the big thumb keys so they're easy to press. - -* Ctrl is on the left for ease of chording, especially one-handed use of common -shortcuts like Ctrl+T and Ctrl+W. This puts Alt on the right by the process of -elimination. - -## Lower layer - -![Lower layer layout](https://i.imgur.com/vaIc9JY.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. - -* Remaining keys from a TKL are placed out of the way on the bottom row of the -left half. - -* The home row on the left half contains handy shortcuts for zooming and browser -navigation. - -* Lower+Esc is bound to Ctrl+Space because the Ctrl and Space keys are both on -the left thumb, so this key combination (which I use for tmux prefix and editor -autocomplete) is hard to press in its natural location. - -* Lower+Tab is bound to a custom Alt+Tab macro that keeps the Alt modifier held -as long as the Lower key is held down. This means that window switching is on -Lower+Tab immediately next to browser tab switching (Ctrl+Tab). - -## Raise layer - -![Raise layer layout](https://i.imgur.com/VNEiV9A.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. - -* Caps Lock is bound in the same position as on an HHKB, for lack of an obvious -better location. - -## Adjust layer - -![Adjust layer layout](https://i.imgur.com/fZouko5.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/crkbd/keymaps/bcat/rules.mk b/keyboards/crkbd/keymaps/bcat/rules.mk deleted file mode 100644 index cd3418dab8..0000000000 --- a/keyboards/crkbd/keymaps/bcat/rules.mk +++ /dev/null @@ -1,3 +0,0 @@ -BOOTLOADER = atmel-dfu # Elite-C - -RGB_MATRIX_ENABLE = WS2812 # per-key RGB and underglow diff --git a/keyboards/eco/keymaps/bcat/config.h b/keyboards/eco/keymaps/bcat/config.h new file mode 100644 index 0000000000..dffdc7b40a --- /dev/null +++ b/keyboards/eco/keymaps/bcat/config.h @@ -0,0 +1,22 @@ +/* Copyright 2020 Jonathan Rascher + * + * 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 . + */ + +#pragma once + +/* WS2812B RGB LED strip hand wired to Elite-C. */ +#define RGB_DI_PIN B7 +#define RGBLED_NUM 15 +#define RGBLIGHT_ANIMATIONS diff --git a/keyboards/eco/keymaps/bcat/keymap.c b/keyboards/eco/keymaps/bcat/keymap.c new file mode 100644 index 0000000000..066acbe649 --- /dev/null +++ b/keyboards/eco/keymaps/bcat/keymap.c @@ -0,0 +1,72 @@ +/* Copyright 2020 Jonathan Rascher + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +#include "bcat.h" + +enum layer { + LAYER_DEFAULT, + LAYER_LOWER, + LAYER_RAISE, + LAYER_ADJUST, +}; + +#define LY_LWR MO(LAYER_LOWER) +#define LY_RSE MO(LAYER_RAISE) + +#define KY_CSPC LCTL(KC_SPC) +#define KY_ZMIN LCTL(KC_EQL) +#define KY_ZMOUT LCTL(KC_MINS) +#define KY_ZMRST LCTL(KC_0) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Default layer: http://www.keyboard-layout-editor.com/#/gists/2c11371c7a5f7cd08a0132631d3d3281 */ + [LAYER_DEFAULT] = LAYOUT( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_HOME, KC_PGUP, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_END, KC_PGDN, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + XXXXXXX, XXXXXXX, KC_LALT, KC_LCTL, LY_LWR, KC_SPC, XXXXXXX, XXXXXXX, KC_ENT, LY_RSE, KC_RALT, KC_RGUI, XXXXXXX, XXXXXXX + ), + + /* Lower layer: http://www.keyboard-layout-editor.com/#/gists/11256970dc0552886a82382ee02fa415 */ + [LAYER_LOWER] = LAYOUT( + MC_ALTT, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, _______, _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, + KY_CSPC, KY_ZMRST, KY_ZMOUT, KY_ZMIN, KC_WBAK, KC_WFWD, _______, _______, KC_PIPE, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_TILD, + _______, KC_APP, KC_PSCR, KC_SLCK, KC_PAUS, KC_LGUI, _______, _______, KC_BSLS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_GRV, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + /* Raise layer: http://www.keyboard-layout-editor.com/#/gists/308a8be75e0b85902dc18db1b2546862 */ + [LAYER_RAISE] = LAYOUT( + KC_CAPS, 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_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_F11, KC_DEL, + _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_F12, KC_INS, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + /* Adjust layer: http://www.keyboard-layout-editor.com/#/gists/b18aafa0327d7e83eaf485546c067a21 */ + [LAYER_ADJUST] = LAYOUT( + _______, NK_TOGG, KC_MPLY, KC_VOLU, KC_MSTP, _______, _______, _______, EEP_RST, RESET, _______, _______, _______, _______, + _______, _______, KC_MPRV, KC_VOLD, KC_MNXT, _______, _______, _______, RGB_RMOD, RGB_VAD, RGB_VAI, RGB_MOD, RGB_SPI, _______, + _______, _______, _______, KC_MUTE, _______, _______, _______, _______, RGB_HUI, RGB_SAD, RGB_SAI, RGB_HUD, RGB_SPD, _______, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, _______, _______, _______ + ), +}; + +layer_state_t layer_state_set_keymap(layer_state_t state) { + return update_tri_layer_state(state, LAYER_LOWER, LAYER_RAISE, LAYER_ADJUST); +} diff --git a/keyboards/eco/keymaps/bcat/readme.md b/keyboards/eco/keymaps/bcat/readme.md new file mode 100644 index 0000000000..85e2615512 --- /dev/null +++ b/keyboards/eco/keymaps/bcat/readme.md @@ -0,0 +1,44 @@ +# bcat's Eco layout + +This is a cute little 4x14 ortholinear keyboard. I've set it up using an +unsplit, ortho version of my [split 3x6 + 3 thumb +keys](https://github.com/qmk/qmk_firmware/tree/master/layouts/community/split_3x6_3/bcat) +(Crkbd) layout, with the following changes: + +* The alpha keys are separated by an extra two columns in the middle to provide +a little more hand separation, similar to a split keyboard. + +* The top three rows of the extra middle columns feature navigation keys and +brackets/braces. I don't really use dedicated keys for these, but I had the +keycaps, so I figured I may as well put them there. + +* I have a Left Alt and Right Super key on the bottom row just like my +[Lily58](https://github.com/qmk/qmk_firmware/tree/master/keyboards/lily58/keymaps/bcat). + +* The two keys in each bottom corner are unbound, as is the 2U spacebar in the +center of the bottom row. These keys are too inconvenient to reach, and there's +nothing really useful to bind them to anyway. + +## Default layer + +![Default layer layout](https://i.imgur.com/uRUT2cY.png) + +([KLE](http://www.keyboard-layout-editor.com/#/gists/2c11371c7a5f7cd08a0132631d3d3281)) + +## Lower layer + +![Lower layer layout](https://i.imgur.com/8SR0M9x.png) + +([KLE](http://www.keyboard-layout-editor.com/#/gists/11256970dc0552886a82382ee02fa415)) + +## Raise layer + +![Raise layer layout](https://i.imgur.com/U7KERR3.png) + +([KLE](http://www.keyboard-layout-editor.com/#/gists/308a8be75e0b85902dc18db1b2546862)) + +## Adjust layer + +![Adjust layer layout](https://i.imgur.com/J2rOshm.png) + +([KLE](http://www.keyboard-layout-editor.com/#/gists/b18aafa0327d7e83eaf485546c067a21)) diff --git a/keyboards/eco/keymaps/bcat/rules.mk b/keyboards/eco/keymaps/bcat/rules.mk new file mode 100644 index 0000000000..684d8e4e85 --- /dev/null +++ b/keyboards/eco/keymaps/bcat/rules.mk @@ -0,0 +1,3 @@ +BOOTLOADER = atmel-dfu # Elite-C + +RGBLIGHT_ENABLE = yes diff --git a/keyboards/lily58/keymaps/bcat/keymap.c b/keyboards/lily58/keymaps/bcat/keymap.c index 69864cd085..549363d03a 100644 --- a/keyboards/lily58/keymaps/bcat/keymap.c +++ b/keyboards/lily58/keymaps/bcat/keymap.c @@ -1,3 +1,19 @@ +/* Copyright 2020 Jonathan Rascher + * + * 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 . + */ + #include QMK_KEYBOARD_H #include "bcat.h" @@ -24,7 +40,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_WBAK, KC_WFWD, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LGUI, KC_LCTL, LY_LWR, KC_SPC, KC_ENT, LY_RSE, KC_RALT, KC_APP + KC_LALT, KC_LCTL, LY_LWR, KC_SPC, KC_ENT, LY_RSE, KC_RALT, KC_RGUI ), /* Lower layer: http://www.keyboard-layout-editor.com/#/gists/19ad0d3b5d745fbb2818db09740f5a11 */ diff --git a/keyboards/lily58/keymaps/bcat/readme.md b/keyboards/lily58/keymaps/bcat/readme.md index 84c2fc335f..de03526a8b 100644 --- a/keyboards/lily58/keymaps/bcat/readme.md +++ b/keyboards/lily58/keymaps/bcat/readme.md @@ -1,8 +1,8 @@ # bcat's Lily58 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: +This split ergo layout follows my preferred [split 3x6 + 3 thumb +keys](https://github.com/qmk/qmk_firmware/tree/master/layouts/community/split_3x6_3/bcat) +(Crkbd) layout with a few changes: * 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. @@ -11,12 +11,15 @@ using layers for numbers and symbols, so in practice this goes unused. 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.) -* The extra thumb keys are used for dedicated Super/Menu keys, as well as -browser back/forward navigation keys. +* The extra thumb keys on the bottom row are used for a Left Alt key (for easier +Alt+Tab, Alt+F4, etc.) and a dedicated Super key. + +* The harder-to-reach thumb keys below the controllers are bound to browser +back/forward navigation keys. ## Default layer -![Default layer layout](https://i.imgur.com/FNITWJ0.png) +![Default layer layout](https://i.imgur.com/0stG2GT.png) ([KLE](http://www.keyboard-layout-editor.com/#/gists/e0eb3af65961e9fd612dcff3ddd88e4f)) diff --git a/layouts/community/split_3x6_3/bcat/config.h b/layouts/community/split_3x6_3/bcat/config.h new file mode 100644 index 0000000000..e177f0ffcb --- /dev/null +++ b/layouts/community/split_3x6_3/bcat/config.h @@ -0,0 +1,34 @@ +/* Copyright 2020 Jonathan Rascher + * + * 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 . + */ + +#pragma once + +#if defined(KEYBOARD_crkbd_rev1_common) || defined(KEYBOARD_crkbd_rev1_legacy) +# define EE_HANDS + +# if defined(RGBLIGHT_ENABLE) +/* Configure RGB for underglow only (first six LEDs on each side). */ +# undef RGBLED_SPLIT +# define RGBLED_SPLIT \ + { 6, 6 } +# endif + +# if defined(RGB_MATRIX_ENABLE) +/* Limit max RGB LED current to avoid tripping controller fuse. */ +# undef RGB_MATRIX_MAXIMUM_BRIGHTNESS +# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 +# endif +#endif diff --git a/layouts/community/split_3x6_3/bcat/keymap.c b/layouts/community/split_3x6_3/bcat/keymap.c new file mode 100644 index 0000000000..934a8e31f2 --- /dev/null +++ b/layouts/community/split_3x6_3/bcat/keymap.c @@ -0,0 +1,72 @@ +/* Copyright 2020 Jonathan Rascher + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +#include "bcat.h" + +enum layer { + LAYER_DEFAULT, + LAYER_LOWER, + LAYER_RAISE, + LAYER_ADJUST, +}; + +#define LY_LWR MO(LAYER_LOWER) +#define LY_RSE MO(LAYER_RAISE) + +#define KY_CSPC LCTL(KC_SPC) +#define KY_ZMIN LCTL(KC_EQL) +#define KY_ZMOUT LCTL(KC_MINS) +#define KY_ZMRST LCTL(KC_0) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Default layer: http://www.keyboard-layout-editor.com/#/gists/08d9827d916662a9414f48805aa895a5 */ + [LAYER_DEFAULT] = LAYOUT_split_3x6_3( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + 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_LCTL, LY_LWR, KC_SPC, KC_ENT, LY_RSE, KC_RALT + ), + + /* Lower layer: http://www.keyboard-layout-editor.com/#/gists/c3fba5eaa2cd70fdfbdbc0f9e34d3bc0 */ + [LAYER_LOWER] = LAYOUT_split_3x6_3( + MC_ALTT, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, + KY_CSPC, KY_ZMRST, KY_ZMOUT, KY_ZMIN, KC_WBAK, KC_WFWD, KC_PIPE, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_TILD, + _______, KC_APP, KC_PSCR, KC_SLCK, KC_PAUS, KC_LGUI, KC_BSLS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_GRV, + _______, _______, _______, _______, _______, _______ + ), + + /* Raise layer: http://www.keyboard-layout-editor.com/#/gists/08b44355d4ca85d294bad9e2821f91d7 */ + [LAYER_RAISE] = LAYOUT_split_3x6_3( + KC_CAPS, 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_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_F11, KC_DEL, + _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_F12, KC_INS, + _______, _______, _______, _______, _______, _______ + ), + + /* Adjust layer: http://www.keyboard-layout-editor.com/#/gists/77e7572e077b36a23eb2086017e16fee */ + [LAYER_ADJUST] = LAYOUT_split_3x6_3( + _______, NK_TOGG, KC_MPLY, KC_VOLU, KC_MSTP, _______, EEP_RST, RESET, _______, _______, _______, _______, + _______, _______, KC_MPRV, KC_VOLD, KC_MNXT, _______, RGB_RMOD, RGB_VAD, RGB_VAI, RGB_MOD, RGB_SPI, _______, + _______, _______, _______, KC_MUTE, _______, _______, RGB_HUI, RGB_SAD, RGB_SAI, RGB_HUD, RGB_SPD, _______, + _______, _______, _______, RGB_TOG, _______, _______ + ), +}; + +layer_state_t layer_state_set_keymap(layer_state_t state) { + return update_tri_layer_state(state, LAYER_LOWER, LAYER_RAISE, LAYER_ADJUST); +} diff --git a/layouts/community/split_3x6_3/bcat/readme.md b/layouts/community/split_3x6_3/bcat/readme.md new file mode 100644 index 0000000000..ed17b84186 --- /dev/null +++ b/layouts/community/split_3x6_3/bcat/readme.md @@ -0,0 +1,126 @@ +# bcat's split 3x6 + 3 thumb keys 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 my most-frequently-used keyboard shortcuts involve Ctrl, which lives on +the left half of the keyboard, keys frequently used with it (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 layout](https://i.imgur.com/g5N7g8D.png) + +([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). + +* The Esc key is next to the home row for convenience in Vim. + +* There are two Shift keys, although I generally use Left Shift. (I've +considered replacing Right Shift with another key, but haven't chosen one.) + +* Lower and Raise layer-switch keys are in the resting position of my left and +right thumbs, respectively. + +* Space and Enter are on the big thumb keys so they're easy to press. + +* Ctrl is on the left for ease of chording, especially one-handed use of common +shortcuts like Ctrl+T and Ctrl+W. This puts Alt on the right by the process of +elimination. (I would really like one more 1U thumb key on each half to allow +for a redundant Alt key on the left and a dedicated Super key on the right.) + +## Lower layer + +![Lower layer layout](https://i.imgur.com/vaIc9JY.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. + +* Remaining keys from a TKL are placed out of the way on the bottom row of the +left half. + +* The home row on the left half contains handy shortcuts for zooming and browser +navigation. + +* Lower+Esc is bound to Ctrl+Space because the Ctrl and Space keys are both on +the left thumb, so this key combination (which I use for tmux prefix and editor +autocomplete) is hard to press in its natural location. + +* Lower+Tab is bound to a custom Alt+Tab macro that keeps the Alt modifier held +as long as the Lower key is held down. This means that window switching is on +Lower+Tab immediately next to browser tab switching (Ctrl+Tab). + +## Raise layer + +![Raise layer layout](https://i.imgur.com/VNEiV9A.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. + +* Caps Lock is bound in the same position as on an HHKB, for lack of an obvious +better location. + +## Adjust layer + +![Adjust layer layout](https://i.imgur.com/fZouko5.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/layouts/community/split_3x6_3/bcat/rules.mk b/layouts/community/split_3x6_3/bcat/rules.mk new file mode 100644 index 0000000000..3a9796673e --- /dev/null +++ b/layouts/community/split_3x6_3/bcat/rules.mk @@ -0,0 +1,10 @@ +ifeq ($(strip $(KEYBOARD)), crkbd/rev1/common) + BOOTLOADER = atmel-dfu # Elite-C + + # Enable underglow only. (Split Common doesn't support RGB matrix on slave.) + RGBLIGHT_ENABLE = yes +else ifeq ($(strip $(KEYBOARD)), crkbd/rev1/legacy) + BOOTLOADER = atmel-dfu # Elite-C + + RGB_MATRIX_ENABLE = WS2812 # per-key RGB and underglow +endif diff --git a/users/bcat/config.h b/users/bcat/config.h index b0d556186a..16188950e2 100644 --- a/users/bcat/config.h +++ b/users/bcat/config.h @@ -1,26 +1,32 @@ +/* Copyright 2020 Jonathan Rascher + * + * 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 . + */ + /* Wait between tap_code register and unregister to fix flaky media keys. */ #undef TAP_CODE_DELAY #define TAP_CODE_DELAY 20 -/* - * Force the default tapping term since some keyboards make it way too short - * (*cough*Lily58*cough*). - */ -#undef TAPPING_TERM - -#define TAPPING_TERM 200 - -/* - * Treat mod-tap keys as holds even if the mod-tap key and the key being - * modified are both relased within TAPPING_TERM. This assumes the mod-tap key +/* Treat mod-tap keys as holds even if the mod-tap key and the key being + * modified are both released within TAPPING_TERM. This assumes the mod-tap key * isn't usually pressed in quick succession with other tapped keys, which is * good when the tap keycode is something like KC_ESC rather than a letter. */ #define PERMISSIVE_HOLD -/* - * Turn off key repeat support of the tap keycode for tap-hold keys, enabling +/* Turn off key repeat support of the tap keycode for tap-hold keys, enabling * holds to work correctly in quick succession after taps. */ #define TAPPING_FORCE_HOLD @@ -57,6 +63,9 @@ # define RGBLIGHT_HUE_STEP 8 # define RGBLIGHT_SAT_STEP 17 # define RGBLIGHT_VAL_STEP 17 + +/* Turn on additional RGB animations. */ +# define RGBLIGHT_ANIMATIONS #endif #if defined(BACKLIGHT_ENABLE) diff --git a/users/bcat/readme.md b/users/bcat/readme.md index 49fbea1acf..6d097d663d 100644 --- a/users/bcat/readme.md +++ b/users/bcat/readme.md @@ -1,13 +1,48 @@ # 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: +keyboards. I use community layouts wherever possible, only writing +keyboard-specific keymaps for boards without standard layout support. I derive +my keymaps from two canonical ones (preferred for typing and gaming, +respectively). -* 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. +## Canonical keymaps -* 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. +* [Split 3x6 + 3 thumb +keys](https://github.com/qmk/qmk_firmware/tree/master/layouts/community/split_3x6_3/bcat): +Columnar-staggered split ergo layout, preferred for typing. Used on Crkbd. + +* [60% Tsangan +HHKB](https://github.com/qmk/qmk_firmware/tree/master/layouts/community/60_tsangan_hhkb/bcat): +Row-staggered layout, preferred for gaming. Used on ai03 Polaris, CannonKeys +AN-C, CannonKeys Instant60. + +## Other keymaps + +### Ergo + +* [Lily58](https://github.com/qmk/qmk_firmware/tree/master/keyboards/lily58/keymaps/bcat) + +### Ortho + +* [Eco](https://github.com/qmk/qmk_firmware/tree/master/keyboards/eco/keymaps/bcat) + +### Traditional + +* [60% ANSI split +backspace/right-shift](https://github.com/qmk/qmk_firmware/tree/master/layouts/community/60_ansi_split_bs_rshift/bcat). +Used on DZ60. + +* [65% ANSI blocker split +backspace](https://github.com/qmk/qmk_firmware/tree/master/layouts/community/65_ansi_blocker_split_bs/bcat). +Used on KBDfans KBD67 hotswap. + +* [Keebio +Quefrency](https://github.com/qmk/qmk_firmware/tree/master/keyboards/keebio/quefrency/keymaps/bcat) + +### Macropads + +* [9-Key](https://github.com/qmk/qmk_firmware/tree/master/keyboards/9key/keymaps/bcat) + +* [Keebio +BDN9](https://github.com/qmk/qmk_firmware/tree/master/keyboards/keebio/bdn9/keymaps/bcat) -- cgit v1.2.3