diff options
34 files changed, 959 insertions, 134 deletions
diff --git a/keyboards/9key/keymaps/bcat/keymap.c b/keyboards/9key/keymaps/bcat/keymap.c index 5c08a42a56..944a48c0d3 100644 --- a/keyboards/9key/keymaps/bcat/keymap.c +++ b/keyboards/9key/keymaps/bcat/keymap.c @@ -16,22 +16,21 @@ #include QMK_KEYBOARD_H -enum layer { - LAYER_DEFAULT, - LAYER_FUNCTION, -}; +#include "bcat.h" -#define LY_FUNC MO(LAYER_FUNCTION) -#define KY_LOCK LCA(KC_L) /* Cinnamon lock screen */ +#define KY_LOCK LGUI(KC_L) /* Chrome OS: Lock screen */ +#define KY_MICM LSG(KC_1) /* Meet Shortcuts: Mute mic */ +#define KY_MICU LSG(KC_2) /* Meet Shortcuts: Unmute mic */ +#define KY_RHAND LSG(KC_3) /* Meet Shortcuts: Raise/lower hand */ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // clang-format off [LAYER_DEFAULT] = LAYOUT( - KC_MPLY, KC_VOLU, KC_MSTP, - KC_MPRV, KC_VOLD, KC_MNXT, - KY_LOCK, KC_MUTE, LY_FUNC + KC_MPLY, KC_VOLU, KY_RHAND, + KY_LOCK, KC_VOLD, KY_MICU, + LY_FN1, KC_MUTE, KY_MICM ), - [LAYER_FUNCTION] = LAYOUT( + [LAYER_FUNCTION_1] = LAYOUT( EEP_RST, _______, RESET, _______, _______, _______, _______, _______, _______ diff --git a/keyboards/9key/keymaps/bcat/readme.md b/keyboards/9key/keymaps/bcat/readme.md index 2dee51de8b..d38ae5463b 100644 --- a/keyboards/9key/keymaps/bcat/readme.md +++ b/keyboards/9key/keymaps/bcat/readme.md @@ -1,5 +1,5 @@ # bcat's 9-Key layout -This is a super simple PCB-mount macropad with nine keys, used at work for -media keys and quick access to screen lock on Linux (Cinnamon desktop -environment). +This is a super simple PCB-mount macropad with nine keys, used on my +work-from-home Chromebox for media/volume control and to activate some global +shortcuts for Google Meet. diff --git a/keyboards/eco/keymaps/bcat/config.h b/keyboards/eco/keymaps/bcat/config.h index dffdc7b40a..f2d51c324a 100644 --- a/keyboards/eco/keymaps/bcat/config.h +++ b/keyboards/eco/keymaps/bcat/config.h @@ -16,6 +16,8 @@ #pragma once +#define BCAT_ORTHO_LAYERS + /* WS2812B RGB LED strip hand wired to Elite-C. */ #define RGB_DI_PIN B7 #define RGBLED_NUM 15 diff --git a/keyboards/eco/keymaps/bcat/keymap.c b/keyboards/eco/keymaps/bcat/keymap.c index d46a7d416b..8c50a9ed55 100644 --- a/keyboards/eco/keymaps/bcat/keymap.c +++ b/keyboards/eco/keymaps/bcat/keymap.c @@ -18,21 +18,6 @@ #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] = { // clang-format off /* Default layer: http://www.keyboard-layout-editor.com/#/gists/2c11371c7a5f7cd08a0132631d3d3281 */ @@ -58,12 +43,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), /* 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_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, _______, _______, _______, _______, _______ ), // clang-format on }; - -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 index 85e2615512..fd9e1bea73 100644 --- a/keyboards/eco/keymaps/bcat/readme.md +++ b/keyboards/eco/keymaps/bcat/readme.md @@ -39,6 +39,6 @@ nothing really useful to bind them to anyway. ## Adjust layer -![Adjust layer layout](https://i.imgur.com/J2rOshm.png) +![Adjust layer layout](https://i.imgur.com/63vm0ke.png) ([KLE](http://www.keyboard-layout-editor.com/#/gists/b18aafa0327d7e83eaf485546c067a21)) diff --git a/keyboards/keebio/bdn9/keymaps/bcat/keymap.c b/keyboards/keebio/bdn9/keymaps/bcat/keymap.c index c64f702b20..2028deb4f1 100644 --- a/keyboards/keebio/bdn9/keymaps/bcat/keymap.c +++ b/keyboards/keebio/bdn9/keymaps/bcat/keymap.c @@ -16,21 +16,16 @@ #include QMK_KEYBOARD_H -enum layer { - LAYER_FIRST, - LAYER_SECOND, -}; - -#define LY_SECND MO(LAYER_SECOND) +#include "bcat.h" const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // clang-format off - [LAYER_FIRST] = LAYOUT( - KC_MUTE, LY_SECND, BL_BRTG, + [LAYER_DEFAULT] = LAYOUT( + KC_MUTE, LY_FN1, BL_BRTG, KC_F4, KC_F5, KC_F6, KC_F1, KC_F2, KC_F3 ), - [LAYER_SECOND] = LAYOUT( + [LAYER_FUNCTION_1] = LAYOUT( EEP_RST, _______, RESET, KC_F10, KC_F11, KC_F12, KC_F7, KC_F8, KC_F9 diff --git a/keyboards/keebio/quefrency/keymaps/bcat/keymap.c b/keyboards/keebio/quefrency/keymaps/bcat/keymap.c index d28a5083ac..3dd48623fa 100644 --- a/keyboards/keebio/quefrency/keymaps/bcat/keymap.c +++ b/keyboards/keebio/quefrency/keymaps/bcat/keymap.c @@ -16,12 +16,7 @@ #include QMK_KEYBOARD_H -enum layer { - LAYER_DEFAULT, - LAYER_FUNCTION, -}; - -#define LY_FN MO(LAYER_FUNCTION) +#include "bcat.h" const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // clang-format off @@ -31,12 +26,12 @@ 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_LBRC, KC_RBRC, KC_BSPC, KC_PGUP, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, 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_UP, KC_END, - KC_LCTL, KC_LGUI, KC_LALT, LY_FN, KC_SPC, KC_SPC, XXXXXXX, KC_RALT, LY_FN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + KC_LCTL, KC_LGUI, KC_LALT, LY_FN1, KC_SPC, KC_SPC, XXXXXXX, KC_RALT, LY_FN1, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), /* Function layer: http://www.keyboard-layout-editor.com/#/gists/59636898946da51f91fb290f8e078b4d */ - [LAYER_FUNCTION] = LAYOUT_65( + [LAYER_FUNCTION_1] = LAYOUT_65( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, RGB_HUI, - KC_CAPS, NK_TOGG, KC_MPLY, KC_VOLU, KC_MSTP, _______, EEP_RST, RESET, KC_PSCR, KC_SLCK, KC_PAUS, _______, _______, _______, RGB_SAI, + KC_CAPS, _______, KC_MPLY, KC_VOLU, KC_MSTP, _______, EEP_RST, RESET, KC_PSCR, KC_SLCK, KC_PAUS, _______, _______, _______, RGB_SAI, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_SAD, _______, KC_APP, _______, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, RGB_HUD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_VAD, RGB_MOD diff --git a/keyboards/keebio/quefrency/keymaps/bcat/readme.md b/keyboards/keebio/quefrency/keymaps/bcat/readme.md index 914aa84b6b..59a691654d 100644 --- a/keyboards/keebio/quefrency/keymaps/bcat/readme.md +++ b/keyboards/keebio/quefrency/keymaps/bcat/readme.md @@ -12,6 +12,6 @@ ESDF cluster), and RGB controls in the function layer (on the arrow/nav keys). ## Function layer -![Function layer layout](https://i.imgur.com/Fzshl0F.png) +![Function layer layout](https://i.imgur.com/7oCdN86.png) ([KLE](http://www.keyboard-layout-editor.com/#/gists/59636898946da51f91fb290f8e078b4d)) diff --git a/keyboards/lily58/keymaps/bcat/config.h b/keyboards/lily58/keymaps/bcat/config.h index dbe724d56b..2ee0071bda 100644 --- a/keyboards/lily58/keymaps/bcat/config.h +++ b/keyboards/lily58/keymaps/bcat/config.h @@ -16,4 +16,6 @@ #pragma once +#define BCAT_ORTHO_LAYERS + #define EE_HANDS diff --git a/keyboards/lily58/keymaps/bcat/keymap.c b/keyboards/lily58/keymaps/bcat/keymap.c index 69af2ca003..a0856d0fdd 100644 --- a/keyboards/lily58/keymaps/bcat/keymap.c +++ b/keyboards/lily58/keymaps/bcat/keymap.c @@ -18,20 +18,9 @@ #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) +#if defined(OLED_ENABLE) +# include "bcat_oled.h" +#endif const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // clang-format off @@ -62,7 +51,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Adjust layer: http://www.keyboard-layout-editor.com/#/gists/8f6a3f08350a9bbe1d414b22bca4e6c7 */ [LAYER_ADJUST] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, NK_TOGG, KC_MPLY, KC_VOLU, KC_MSTP, _______, EEP_RST, RESET, _______, _______, _______, _______, + _______, _______, KC_MPLY, KC_VOLU, KC_MSTP, _______, EEP_RST, RESET, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ @@ -70,4 +59,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // clang-format on }; -layer_state_t layer_state_set_keymap(layer_state_t state) { return update_tri_layer_state(state, LAYER_LOWER, LAYER_RAISE, LAYER_ADJUST); } +#if defined(OLED_ENABLE) +oled_rotation_t oled_init_user(oled_rotation_t rotation) { return is_keyboard_master() ? OLED_ROTATION_270 : OLED_ROTATION_180; } + +void oled_task_keymap(const oled_keyboard_state_t *keyboard_state) { + render_oled_layers(); + oled_advance_page(/*clearPageRemainder=*/false); + render_oled_indicators(keyboard_state->leds); + oled_advance_page(/*clearPageRemainder=*/false); + oled_advance_page(/*clearPageRemainder=*/false); + render_oled_wpm(keyboard_state->wpm); + render_oled_pet(/*col=*/0, /*line=*/12, keyboard_state); +} +#endif diff --git a/keyboards/lily58/keymaps/bcat/readme.md b/keyboards/lily58/keymaps/bcat/readme.md index de03526a8b..8b0e77e1b7 100644 --- a/keyboards/lily58/keymaps/bcat/readme.md +++ b/keyboards/lily58/keymaps/bcat/readme.md @@ -37,6 +37,6 @@ back/forward navigation keys. ## Adjust layer -![Adjust layer layout](https://i.imgur.com/Q3PGsiK.png) +![Adjust layer layout](https://i.imgur.com/XC2eR2M.png) ([KLE](http://www.keyboard-layout-editor.com/#/gists/8f6a3f08350a9bbe1d414b22bca4e6c7)) diff --git a/keyboards/lily58/keymaps/bcat/rules.mk b/keyboards/lily58/keymaps/bcat/rules.mk index c87b447c1e..62d1007a54 100644 --- a/keyboards/lily58/keymaps/bcat/rules.mk +++ b/keyboards/lily58/keymaps/bcat/rules.mk @@ -1 +1,3 @@ +BCAT_OLED_PET = luna + BOOTLOADER = atmel-dfu # Elite-C diff --git a/layouts/community/60_ansi_split_bs_rshift/bcat/keymap.c b/layouts/community/60_ansi_split_bs_rshift/bcat/keymap.c index 6bfafc3325..b40148e995 100644 --- a/layouts/community/60_ansi_split_bs_rshift/bcat/keymap.c +++ b/layouts/community/60_ansi_split_bs_rshift/bcat/keymap.c @@ -16,14 +16,7 @@ #include QMK_KEYBOARD_H -enum layer { - LAYER_DEFAULT, - LAYER_FUNCTION_1, - LAYER_FUNCTION_2, -}; - -#define LY_FN1 MO(LAYER_FUNCTION_1) -#define LY_FN2 MO(LAYER_FUNCTION_2) +#include "bcat.h" const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // clang-format off @@ -48,7 +41,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Function 2 layer: http://www.keyboard-layout-editor.com/#/gists/6e1068e4f91bbacccaf5ac0acbeec79c */ [LAYER_FUNCTION_2] = LAYOUT_60_ansi_split_bs_rshift( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, - _______, NK_TOGG, KC_MPLY, KC_VOLU, KC_MSTP, BL_BRTG, EEP_RST, RESET, _______, _______, _______, RGB_VAI, _______, _______, + _______, _______, KC_MPLY, KC_VOLU, KC_MSTP, BL_BRTG, EEP_RST, RESET, _______, _______, _______, RGB_VAI, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT, BL_INC, _______, RGB_SPI, RGB_HUI, RGB_SAI, RGB_RMOD, RGB_MOD, RGB_TOG, _______, _______, _______, KC_MUTE, _______, BL_DEC, _______, RGB_SPD, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/layouts/community/60_ansi_split_bs_rshift/bcat/readme.md b/layouts/community/60_ansi_split_bs_rshift/bcat/readme.md index 2d578aa3d3..f6bcda9197 100644 --- a/layouts/community/60_ansi_split_bs_rshift/bcat/readme.md +++ b/layouts/community/60_ansi_split_bs_rshift/bcat/readme.md @@ -19,6 +19,6 @@ layout](https://github.com/qmk/qmk_firmware/tree/master/layouts/community/60_tsa ## Function 2 layer -![Function 2 layer layout](https://i.imgur.com/vJaCzVo.png) +![Function 2 layer layout](https://i.imgur.com/DW03vvJ.png) ([KLE](http://www.keyboard-layout-editor.com/#/gists/6e1068e4f91bbacccaf5ac0acbeec79c)) diff --git a/layouts/community/60_tsangan_hhkb/bcat/keymap.c b/layouts/community/60_tsangan_hhkb/bcat/keymap.c index 05e6462d90..9ec75f3c4d 100644 --- a/layouts/community/60_tsangan_hhkb/bcat/keymap.c +++ b/layouts/community/60_tsangan_hhkb/bcat/keymap.c @@ -16,14 +16,7 @@ #include QMK_KEYBOARD_H -enum layer { - LAYER_DEFAULT, - LAYER_FUNCTION_1, - LAYER_FUNCTION_2, -}; - -#define LY_FN1 MO(LAYER_FUNCTION_1) -#define LY_FN2 MO(LAYER_FUNCTION_2) +#include "bcat.h" const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // clang-format off @@ -46,7 +39,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Function 2 layer: http://www.keyboard-layout-editor.com/#/gists/65ac939caec878401603bc36290852d4 */ [LAYER_FUNCTION_2] = LAYOUT_60_tsangan_hhkb( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, - _______, NK_TOGG, KC_MPLY, KC_VOLU, KC_MSTP, BL_BRTG, EEP_RST, RESET, _______, _______, _______, RGB_VAI, _______, _______, + _______, _______, KC_MPLY, KC_VOLU, KC_MSTP, BL_BRTG, EEP_RST, RESET, _______, _______, _______, RGB_VAI, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT, BL_INC, _______, RGB_SPI, RGB_HUI, RGB_SAI, RGB_RMOD, RGB_MOD, RGB_TOG, _______, _______, _______, KC_MUTE, _______, BL_DEC, _______, RGB_SPD, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/layouts/community/60_tsangan_hhkb/bcat/readme.md b/layouts/community/60_tsangan_hhkb/bcat/readme.md index b7a3cde5d2..c8d0d72dd0 100644 --- a/layouts/community/60_tsangan_hhkb/bcat/readme.md +++ b/layouts/community/60_tsangan_hhkb/bcat/readme.md @@ -39,6 +39,6 @@ and/or blockers, so there aren't switches installed in those positions. ## Function 2 layer -![Function 2 layer layout](https://i.imgur.com/vdNpFae.png) +![Function 2 layer layout](https://i.imgur.com/4Jdw9eL.png) ([KLE](http://www.keyboard-layout-editor.com/#/gists/65ac939caec878401603bc36290852d4)) diff --git a/layouts/community/65_ansi_blocker_split_bs/bcat/keymap.c b/layouts/community/65_ansi_blocker_split_bs/bcat/keymap.c index c91a1b0ead..c099d36e25 100644 --- a/layouts/community/65_ansi_blocker_split_bs/bcat/keymap.c +++ b/layouts/community/65_ansi_blocker_split_bs/bcat/keymap.c @@ -16,12 +16,7 @@ #include QMK_KEYBOARD_H -enum layer { - LAYER_DEFAULT, - LAYER_FUNCTION, -}; - -#define LY_FN MO(LAYER_FUNCTION) +#include "bcat.h" const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // clang-format off @@ -31,13 +26,13 @@ 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_LBRC, KC_RBRC, KC_BSPC, KC_PGUP, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, 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_UP, KC_END, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, LY_FN, KC_LEFT, KC_DOWN, KC_RGHT + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, LY_FN1, KC_LEFT, KC_DOWN, KC_RGHT ), /* Function layer: http://www.keyboard-layout-editor.com/#/gists/f29128427f674c43777f045e363d1b44 */ - [LAYER_FUNCTION] = LAYOUT_65_ansi_blocker_split_bs( + [LAYER_FUNCTION_1] = LAYOUT_65_ansi_blocker_split_bs( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, _______, - KC_CAPS, NK_TOGG, KC_MPLY, KC_VOLU, KC_MSTP, _______, EEP_RST, RESET, KC_PSCR, KC_SLCK, KC_PAUS, _______, _______, _______, _______, + KC_CAPS, _______, KC_MPLY, KC_VOLU, KC_MSTP, _______, EEP_RST, RESET, KC_PSCR, KC_SLCK, KC_PAUS, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_APP, _______, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/layouts/community/65_ansi_blocker_split_bs/bcat/readme.md b/layouts/community/65_ansi_blocker_split_bs/bcat/readme.md index 0726cbecee..5777c7c38f 100644 --- a/layouts/community/65_ansi_blocker_split_bs/bcat/readme.md +++ b/layouts/community/65_ansi_blocker_split_bs/bcat/readme.md @@ -12,6 +12,6 @@ keys, an HHKB-style (split) backspace, and media controls in the function layer ## Function layer -![Function layer layout](https://i.imgur.com/CsxfVfd.png) +![Function layer layout](https://i.imgur.com/s4hS9ZK.png) ([KLE](http://www.keyboard-layout-editor.com/#/gists/f29128427f674c43777f045e363d1b44)) diff --git a/layouts/community/split_3x6_3/bcat/config.h b/layouts/community/split_3x6_3/bcat/config.h index b8743429cf..556fb90d5f 100644 --- a/layouts/community/split_3x6_3/bcat/config.h +++ b/layouts/community/split_3x6_3/bcat/config.h @@ -16,12 +16,13 @@ #pragma once +#define BCAT_ORTHO_LAYERS + #if defined(KEYBOARD_crkbd_rev1) # define EE_HANDS -# 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 +# if defined(OLED_ENABLE) +# undef OLED_FONT_H +# define OLED_FONT_H "lib/glcdfont.c" # endif #endif diff --git a/layouts/community/split_3x6_3/bcat/keymap.c b/layouts/community/split_3x6_3/bcat/keymap.c index 4f68c8f843..cfac93d1e3 100644 --- a/layouts/community/split_3x6_3/bcat/keymap.c +++ b/layouts/community/split_3x6_3/bcat/keymap.c @@ -18,20 +18,9 @@ #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) +#if defined(OLED_ENABLE) +# include "bcat_oled.h" +#endif const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // clang-format off @@ -58,7 +47,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), /* 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_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, _______, _______ @@ -66,4 +55,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // clang-format on }; -layer_state_t layer_state_set_keymap(layer_state_t state) { return update_tri_layer_state(state, LAYER_LOWER, LAYER_RAISE, LAYER_ADJUST); } +#if defined(OLED_ENABLE) +oled_rotation_t oled_init_user(oled_rotation_t rotation) { return is_keyboard_master() ? OLED_ROTATION_270 : OLED_ROTATION_180; } + +void oled_task_keymap(const oled_keyboard_state_t *keyboard_state) { + render_oled_layers(); + oled_advance_page(/*clearPageRemainder=*/false); + render_oled_indicators(keyboard_state->leds); + oled_advance_page(/*clearPageRemainder=*/false); + oled_advance_page(/*clearPageRemainder=*/false); + render_oled_wpm(keyboard_state->wpm); + render_oled_pet(/*col=*/0, /*line=*/12, keyboard_state); +} +#endif diff --git a/layouts/community/split_3x6_3/bcat/readme.md b/layouts/community/split_3x6_3/bcat/readme.md index c4bf891c40..b7b5d3de7d 100644 --- a/layouts/community/split_3x6_3/bcat/readme.md +++ b/layouts/community/split_3x6_3/bcat/readme.md @@ -117,7 +117,7 @@ better location. ## Adjust layer -![Adjust layer layout](https://i.imgur.com/fZouko5.png) +![Adjust layer layout](https://i.imgur.com/Q4rN6cQ.png) ([KLE](http://www.keyboard-layout-editor.com/#/gists/77e7572e077b36a23eb2086017e16fee)) diff --git a/layouts/community/split_3x6_3/bcat/rules.mk b/layouts/community/split_3x6_3/bcat/rules.mk index 5ee614b192..29e52b92db 100644 --- a/layouts/community/split_3x6_3/bcat/rules.mk +++ b/layouts/community/split_3x6_3/bcat/rules.mk @@ -1,5 +1,9 @@ +BCAT_OLED_PET = luna + ifeq ($(strip $(KEYBOARD)), crkbd/rev1) BOOTLOADER = atmel-dfu # Elite-C + OLED_ENABLE = yes # dual 128x32 OLED screens + OLED_DRIVER = SSD1306 RGB_MATRIX_ENABLE = yes # per-key RGB and underglow endif diff --git a/users/bcat/bcat.c b/users/bcat/bcat.c index f21d282e43..3a407cfac0 100644 --- a/users/bcat/bcat.c +++ b/users/bcat/bcat.c @@ -16,16 +16,15 @@ #include "bcat.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}; -#endif +#include "quantum.h" static int8_t alt_tab_layer = -1; +__attribute__((weak)) void process_record_oled(uint16_t keycode, const keyrecord_t *record) {} __attribute__((weak)) bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { return true; } bool process_record_user(uint16_t keycode, keyrecord_t *record) { + process_record_oled(keycode, record); if (!process_record_keymap(keycode, record)) { return false; } @@ -51,6 +50,9 @@ __attribute__((weak)) layer_state_t layer_state_set_keymap(layer_state_t state) layer_state_t layer_state_set_user(layer_state_t state) { state = layer_state_set_keymap(state); +#if defined(BCAT_ORTHO_LAYERS) + state = update_tri_layer_state(state, LAYER_LOWER, LAYER_RAISE, LAYER_ADJUST); +#endif if (alt_tab_layer >= 0 && !layer_state_cmp(state, alt_tab_layer)) { unregister_code(KC_LALT); alt_tab_layer = -1; diff --git a/users/bcat/bcat.h b/users/bcat/bcat.h index 0dae774ec5..4a88acba7d 100644 --- a/users/bcat/bcat.h +++ b/users/bcat/bcat.h @@ -16,9 +16,43 @@ #pragma once -#include "quantum.h" +#include <stdbool.h> +#include "keymap.h" + +/* Layer numbers shared across keymaps. */ +enum user_layer { + /* Base layers: */ + LAYER_DEFAULT, + +#if defined(BCAT_ORTHO_LAYERS) + /* Function layers for ortho (and ergo) boards: */ + LAYER_LOWER, + LAYER_RAISE, + LAYER_ADJUST, +#else + /* Function layers for traditional boards: */ + LAYER_FUNCTION_1, + LAYER_FUNCTION_2, +#endif +}; + +/* Custom keycodes shared across keymaps. */ enum user_keycode { MC_ALTT = SAFE_RANGE, KEYMAP_SAFE_RANGE, }; + +/* Keycode aliases shared across keymaps. */ +#define KY_CSPC LCTL(KC_SPC) +#define KY_ZMIN LCTL(KC_EQL) +#define KY_ZMOUT LCTL(KC_MINS) +#define KY_ZMRST LCTL(KC_0) + +#if defined(BCAT_ORTHO_LAYERS) +# define LY_LWR MO(LAYER_LOWER) +# define LY_RSE MO(LAYER_RAISE) +#else +# define LY_FN1 MO(LAYER_FUNCTION_1) +# define LY_FN2 MO(LAYER_FUNCTION_2) +#endif diff --git a/users/bcat/bcat_oled.c b/users/bcat/bcat_oled.c new file mode 100644 index 0000000000..390c9127b4 --- /dev/null +++ b/users/bcat/bcat_oled.c @@ -0,0 +1,216 @@ +/* Copyright 2021 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 <http://www.gnu.org/licenses/>. + */ + +#include "bcat_oled.h" + +#include "quantum.h" +#include "bcat.h" + +#if defined(BCAT_OLED_PET) +# include "bcat_oled_pet.h" +#endif + +#define TRIANGLE_UP 0x1e +#define TRIANGLE_DOWN 0x1f + +#if defined(BCAT_OLED_PET) +static bool oled_pet_should_jump = false; +#endif + +/* Should be overridden by the keymap to render the OLED contents. For split + * keyboards, this function is only called on the master side. |