diff options
Diffstat (limited to 'keyboards/sofle/keymaps')
25 files changed, 1244 insertions, 112 deletions
diff --git a/keyboards/sofle/keymaps/default/keymap.c b/keyboards/sofle/keymaps/default/keymap.c index a64d274b55..94e7d8b3a6 100644 --- a/keyboards/sofle/keymaps/default/keymap.c +++ b/keyboards/sofle/keymaps/default/keymap.c @@ -40,12 +40,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `----------------------------------' '------''---------------------------' */ -[_QWERTY] = LAYOUT( \ - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_GRV, \ - KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ - KC_TAB, 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_MUTE, XXXXXXX,KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \ - KC_LGUI,KC_LALT,KC_LCTRL, KC_LOWER, KC_ENT, KC_SPC, KC_RAISE, KC_RCTRL, KC_RALT, KC_RGUI \ +[_QWERTY] = LAYOUT( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_GRV, + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_TAB, 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_MUTE, XXXXXXX,KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LGUI,KC_LALT,KC_LCTRL, KC_LOWER, KC_ENT, KC_SPC, KC_RAISE, KC_RCTRL, KC_RALT, KC_RGUI ), /* * COLEMAK @@ -63,12 +63,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `----------------------------------' '------''---------------------------' */ -[_COLEMAK] = LAYOUT( \ - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_GRV, \ - KC_ESC, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, \ - KC_TAB, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, \ - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MUTE, XXXXXXX,KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \ - KC_LGUI,KC_LALT,KC_LCTRL,KC_LOWER, KC_ENT, KC_SPC, KC_RAISE, KC_RCTRL, KC_RALT, KC_RGUI \ +[_COLEMAK] = LAYOUT( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_GRV, + KC_ESC, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, + KC_TAB, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MUTE, XXXXXXX,KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LGUI,KC_LALT,KC_LCTRL,KC_LOWER, KC_ENT, KC_SPC, KC_RAISE, KC_RCTRL, KC_RALT, KC_RGUI ), /* LOWER * ,-----------------------------------------. ,-----------------------------------------. @@ -84,12 +84,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | |/ / \ \ | | | | | * `----------------------------------' '------''---------------------------' */ -[_LOWER] = LAYOUT( \ - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,\ - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_F12, \ - _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PIPE, \ - _______, KC_EQL, KC_MINS, KC_PLUS, KC_LCBR, KC_RCBR, _______, _______, KC_LBRC, KC_RBRC, KC_SCLN, KC_COLN, KC_BSLS, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______\ +[_LOWER] = LAYOUT( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_F12, + _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PIPE, + _______, KC_EQL, KC_MINS, KC_PLUS, KC_LCBR, KC_RCBR, _______, _______, KC_LBRC, KC_RBRC, KC_SCLN, KC_COLN, KC_BSLS, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), /* RAISE * ,----------------------------------------. ,-----------------------------------------. @@ -105,18 +105,18 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | |/ / \ \ | | | | | * `----------------------------------' '------''---------------------------' */ -[_RAISE] = LAYOUT( \ - _______, _______ , _______ , _______ , _______ , _______, _______, _______ , _______, _______ , _______ ,_______, \ - _______, KC_INS, KC_PSCR, KC_APP, XXXXXXX, XXXXXXX, KC_PGUP, KC_PRVWD, KC_UP, KC_NXTWD,KC_DLINE, KC_BSPC, \ - _______, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, KC_CAPS, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL, KC_BSPC, \ - _______,KC_UNDO, KC_CUT, KC_COPY, KC_PASTE, XXXXXXX, _______, _______, XXXXXXX, KC_LSTRT, XXXXXXX, KC_LEND, XXXXXXX, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ +[_RAISE] = LAYOUT( + _______, _______ , _______ , _______ , _______ , _______, _______, _______ , _______, _______ , _______ ,_______, + _______, KC_INS, KC_PSCR, KC_APP, XXXXXXX, XXXXXXX, KC_PGUP, KC_PRVWD, KC_UP, KC_NXTWD,KC_DLINE, KC_BSPC, + _______, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, KC_CAPS, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL, KC_BSPC, + _______,KC_UNDO, KC_CUT, KC_COPY, KC_PASTE, XXXXXXX, _______, _______, XXXXXXX, KC_LSTRT, XXXXXXX, KC_LEND, XXXXXXX, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), /* ADJUST * ,-----------------------------------------. ,-----------------------------------------. * | | | | | | | | | | | | | | * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | RESET| |QWERTY|COLEMAK| | | | | | | | | | + * | QK_BOOT| |QWERTY|COLEMAK| | | | | | | | | | * |------+------+------+------+------+------| |------+------+------+------+------+------| * | | |MACWIN| | | |-------. ,-------| | VOLDO| MUTE | VOLUP| | | * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| @@ -126,12 +126,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | |/ / \ \ | | | | | * `----------------------------------' '------''---------------------------' */ - [_ADJUST] = LAYOUT( \ - XXXXXXX , XXXXXXX, XXXXXXX , XXXXXXX , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ - RESET , XXXXXXX,KC_QWERTY,KC_COLEMAK,CG_TOGG,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ - XXXXXXX , XXXXXXX,CG_TOGG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLD, KC_MUTE, KC_VOLU, XXXXXXX, XXXXXXX, \ - XXXXXXX , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ + [_ADJUST] = LAYOUT( + XXXXXXX , XXXXXXX, XXXXXXX , XXXXXXX , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + QK_BOOT , XXXXXXX,KC_QWERTY,KC_COLEMAK,CG_TOGG,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX , XXXXXXX,CG_TOGG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLD, KC_MUTE, KC_VOLU, XXXXXXX, XXXXXXX, + XXXXXXX , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) }; @@ -200,12 +200,13 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) { return rotation; } -void oled_task_user(void) { +bool oled_task_user(void) { if (is_keyboard_master()) { print_status_narrow(); } else { render_logo(); } + return false; } #endif diff --git a/keyboards/sofle/keymaps/default/rules.mk b/keyboards/sofle/keymaps/default/rules.mk index e87a55ede4..c21a769a2e 100644 --- a/keyboards/sofle/keymaps/default/rules.mk +++ b/keyboards/sofle/keymaps/default/rules.mk @@ -2,5 +2,5 @@ OLED_ENABLE = yes OLED_DRIVER = SSD1306 ENCODER_ENABLE = yes -CONSOLE_ENABLE = yes +CONSOLE_ENABLE = no EXTRAKEY_ENABLE = yes diff --git a/keyboards/sofle/keymaps/devdev/config.h b/keyboards/sofle/keymaps/devdev/config.h index 32d0717352..c34da8382b 100644 --- a/keyboards/sofle/keymaps/devdev/config.h +++ b/keyboards/sofle/keymaps/devdev/config.h @@ -99,32 +99,32 @@ /* Disable the animations you don't want/need. You will need to disable a good number of these * * because they take up a lot of space. Disable until you can successfully compile your firmware. */ -// # define DISABLE_RGB_MATRIX_ALPHAS_MODS -// # define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN -// # define DISABLE_RGB_MATRIX_BREATHING -// # define DISABLE_RGB_MATRIX_CYCLE_ALL -// # define DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT -// # define DISABLE_RGB_MATRIX_CYCLE_UP_DOWN -// # define DISABLE_RGB_MATRIX_CYCLE_OUT_IN -// # define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL -// # define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON -// # define DISABLE_RGB_MATRIX_DUAL_BEACON -// # define DISABLE_RGB_MATRIX_RAINBOW_BEACON -// # define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS -// # define DISABLE_RGB_MATRIX_RAINDROPS -// # define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS -// # define DISABLE_RGB_MATRIX_TYPING_HEATMAP -// # define DISABLE_RGB_MATRIX_DIGITAL_RAIN -// # define DISABLE_RGB_MATRIX_SOLID_REACTIVE -// # define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE -// # define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE -// # define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE -// # define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS -// # define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS -// # define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS -// # define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS -// # define DISABLE_RGB_MATRIX_SPLASH -// # define DISABLE_RGB_MATRIX_MULTISPLASH -// # define DISABLE_RGB_MATRIX_SOLID_SPLASH -// # define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH + // # undef ENABLE_RGB_MATRIX_ALPHAS_MODS + // # undef ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN + // # undef ENABLE_RGB_MATRIX_BREATHING + // # undef ENABLE_RGB_MATRIX_CYCLE_ALL + // # undef ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT + // # undef ENABLE_RGB_MATRIX_CYCLE_UP_DOWN + // # undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN + // # undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL + // # undef ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON + // # undef ENABLE_RGB_MATRIX_DUAL_BEACON + // # undef ENABLE_RGB_MATRIX_RAINBOW_BEACON + // # undef ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS + // # undef ENABLE_RGB_MATRIX_RAINDROPS + // # undef ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS + // # undef ENABLE_RGB_MATRIX_TYPING_HEATMAP + // # undef ENABLE_RGB_MATRIX_DIGITAL_RAIN + // # undef ENABLE_RGB_MATRIX_SOLID_REACTIVE + // # undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE + // # undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE + // # undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE + // # undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS + // # undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS + // # undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS + // # undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS + // # undef ENABLE_RGB_MATRIX_SPLASH + // # undef ENABLE_RGB_MATRIX_MULTISPLASH + // # undef ENABLE_RGB_MATRIX_SOLID_SPLASH + // # undef ENABLE_RGB_MATRIX_SOLID_MULTISPLASH #endif diff --git a/keyboards/sofle/keymaps/devdev/keymap.c b/keyboards/sofle/keymaps/devdev/keymap.c index a0945b28f0..b805f7f176 100644 --- a/keyboards/sofle/keymaps/devdev/keymap.c +++ b/keyboards/sofle/keymaps/devdev/keymap.c @@ -465,12 +465,13 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) { return rotation; } -void oled_task_user(void) { +bool oled_task_user(void) { if (is_keyboard_master()) { print_status_narrow(); } else { render_logo(); } + return false; } #endif diff --git a/keyboards/sofle/keymaps/flare576/config.h b/keyboards/sofle/keymaps/flare576/config.h new file mode 100644 index 0000000000..c0f0a7d563 --- /dev/null +++ b/keyboards/sofle/keymaps/flare576/config.h @@ -0,0 +1,40 @@ +/* Copyright 2021 Flare576 <flare576@gmail.com> + * + * 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/>. + */ +#pragma once +#define MAIN_BOARD +#define MASTER_RIGHT +#define ENCODER_DIRECTION_FLIP +#define OLED_TIMEOUT 10000 + +#define MOUSEKEY_INTERVAL 16 +#define MOUSEKEY_DELAY 0 +#define MOUSEKEY_TIME_TO_MAX 60 +#define MOUSEKEY_MAX_SPEED 7 +#define MOUSEKEY_WHEEL_DELAY 0 +#define TAPPING_TERM_PER_KEY + +#ifdef ENCODER_RESOLUTION + #undef ENCODER_RESOLUTION +#endif +#define ENCODER_RESOLUTION 4 + +#ifdef TAPPING_TERM + #undef TAPPING_TERM +#endif +#define TAPPING_TERM 200 + +#undef MANUFACTURER +#define MANUFACTURER Flare576 diff --git a/keyboards/sofle/keymaps/flare576/enums.h b/keyboards/sofle/keymaps/flare576/enums.h new file mode 100644 index 0000000000..7edcc1110f --- /dev/null +++ b/keyboards/sofle/keymaps/flare576/enums.h @@ -0,0 +1,34 @@ +/* Copyright 2021 Flare576 <flare576@gmail.com> + * + * 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/>. + */ +#pragma once +enum _layers { + /* _M_XYZ = Mac Os, _W_XYZ = Win/Linux */ + _BASE, + _MOUS, + _SYMS, + _FF14, + _ESDF, +}; + +enum custom_keycodes { + _COMP1 = SAFE_RANGE, + _COMP2, +}; + +enum custom_tapdance { + TD_PLAY, + TD_HOME, +}; diff --git a/keyboards/sofle/keymaps/flare576/graphics.c b/keyboards/sofle/keymaps/flare576/graphics.c new file mode 100644 index 0000000000..918334a508 --- /dev/null +++ b/keyboards/sofle/keymaps/flare576/graphics.c @@ -0,0 +1,290 @@ +/* Copyright 2021 Flare576 <flare576@gmail.com> + * + * 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 QMK_KEYBOARD_H +#include "enums.h" +#include "logos.h" +int current_wpm = -1; // Enable screen-on at startup +bool isJumping = false; +bool showedJump = true; + +#ifdef OLED_DRIVER_ENABLE + +#ifdef MAIN_BOARD +static void render_logos(void){} +void luna_jump(bool newJump){ + isJumping = newJump; + if (newJump) { + showedJump = false; + } +} + +// START Luna vars +#define MIN_WALK_SPEED 10 +#define MIN_RUN_SPEED 40 + +#define ANIM_FRAME_DURATION 200 // how long each frame lasts in ms +#define ANIM_SIZE 96 // number of bytes in array, minimize for adequate firmware size, max is 1024 + +uint32_t anim_timer = 0; +uint8_t current_frame = 0; + +bool isSneaking = false; +static void render_luna(int LUNA_X, int LUNA_Y) { + + static const char PROGMEM sit[2][ANIM_SIZE] = { + // 'sit1', 32x22px + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1c, + 0x02, 0x05, 0x02, 0x24, 0x04, 0x04, 0x02, 0xa9, 0x1e, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x10, 0x08, 0x68, 0x10, 0x08, 0x04, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x06, 0x82, 0x7c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x0c, 0x10, 0x10, 0x20, 0x20, 0x20, 0x28, + 0x3e, 0x1c, 0x20, 0x20, 0x3e, 0x0f, 0x11, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }, + + // 'sit2', 32x22px + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1c, + 0x02, 0x05, 0x02, 0x24, 0x04, 0x04, 0x02, 0xa9, 0x1e, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x90, 0x08, 0x18, 0x60, 0x10, 0x08, 0x04, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0e, 0x82, 0x7c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x0c, 0x10, 0x10, 0x20, 0x20, 0x20, 0x28, + 0x3e, 0x1c, 0x20, 0x20, 0x3e, 0x0f, 0x11, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + } + }; + + static const char PROGMEM walk[2][ANIM_SIZE] = { + // 'walk1', 32x22px + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x90, 0x90, 0x90, 0xa0, 0xc0, 0x80, 0x80, + 0x80, 0x70, 0x08, 0x14, 0x08, 0x90, 0x10, 0x10, 0x08, 0xa4, 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x08, 0xfc, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x18, 0xea, 0x10, 0x0f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1c, 0x20, 0x20, 0x3c, 0x0f, 0x11, 0x1f, 0x03, + 0x06, 0x18, 0x20, 0x20, 0x3c, 0x0c, 0x12, 0x1e, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }, + + // 'walk2', 32x22px + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x20, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0x10, 0x28, 0x10, 0x20, 0x20, 0x20, 0x10, 0x48, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x20, 0xf8, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x10, 0x30, 0xd5, 0x20, 0x1f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x20, 0x30, 0x0c, 0x02, 0x05, 0x09, 0x12, 0x1e, + 0x02, 0x1c, 0x14, 0x08, 0x10, 0x20, 0x2c, 0x32, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + } + }; + + static const char PROGMEM run[2][ANIM_SIZE] = { + // 'run1', 32x22px + { + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x10, 0x08, 0x08, 0xc8, 0xb0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x40, 0x40, 0x3c, 0x14, 0x04, 0x08, 0x90, 0x18, 0x04, 0x08, 0xb0, 0x40, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0xc4, 0xa4, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc8, 0x58, 0x28, 0x2a, 0x10, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x09, 0x04, 0x04, 0x04, 0x04, 0x02, 0x03, 0x02, 0x01, 0x01, + 0x02, 0x02, 0x04, 0x08, 0x10, 0x26, 0x2b, 0x32, 0x04, 0x05, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, + }, + + // 'run2', 32x22px + { + 0x00, 0x00, 0x00, 0xe0, 0x10, 0x10, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x80, 0x80, 0x78, 0x28, 0x08, 0x10, 0x20, 0x30, 0x08, 0x10, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x04, 0x08, 0x10, 0x11, 0xf9, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x10, 0xb0, 0x50, 0x55, 0x20, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x0c, 0x10, 0x20, 0x28, 0x37, + 0x02, 0x1e, 0x20, 0x20, 0x18, 0x0c, 0x14, 0x1e, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + } + }; + + static const char PROGMEM sneak[2][ANIM_SIZE] = { + // 'sneak1', 32x22px + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x40, 0x40, 0x80, 0x00, 0x80, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x1e, 0x21, 0xf0, 0x04, 0x02, 0x02, 0x02, 0x02, 0x03, 0x02, 0x02, 0x04, + 0x04, 0x04, 0x03, 0x01, 0x00, 0x00, 0x09, 0x01, 0x80, 0x80, 0xab, 0x04, 0xf8, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1c, 0x20, 0x20, 0x3c, 0x0f, 0x11, 0x1f, 0x02, 0x06, + 0x18, 0x20, 0x20, 0x38, 0x08, 0x10, 0x18, 0x04, 0x04, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, + }, + + // 'sneak2', 32x22px + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xa0, 0x20, 0x40, 0x80, 0xc0, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3e, 0x41, 0xf0, 0x04, 0x02, 0x02, 0x02, 0x03, 0x02, 0x02, 0x02, 0x04, + 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x40, 0x40, 0x55, 0x82, 0x7c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x20, 0x30, 0x0c, 0x02, 0x05, 0x09, 0x12, 0x1e, 0x04, + 0x18, 0x10, 0x08, 0x10, 0x20, 0x28, 0x34, 0x06, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + } + }; + + // animation state + void animation_phase(void) { + + if (isJumping || !showedJump) { + + // clear + oled_set_cursor(LUNA_X,LUNA_Y +2); + oled_write(" ", false); + + oled_set_cursor(LUNA_X,LUNA_Y -1); + + showedJump = true; + } else { + + // clear + oled_set_cursor(LUNA_X,LUNA_Y -1); + oled_write(" ", false); + + oled_set_cursor(LUNA_X,LUNA_Y); + } + + current_frame = (current_frame + 1) % 2; + + if(isSneaking) { + oled_write_raw_P(sneak[abs(1 - current_frame)], ANIM_SIZE); + + } else if(current_wpm <= MIN_WALK_SPEED) { + oled_write_raw_P(sit[abs(1 - current_frame)], ANIM_SIZE); + + } else if(current_wpm <= MIN_RUN_SPEED) { + oled_write_raw_P(walk[abs(1 - current_frame)], ANIM_SIZE); + + } else { + oled_write_raw_P(run[abs(1 - current_frame)], ANIM_SIZE); + } + } + + // animation timer + if(timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) { + anim_timer = timer_read32(); + animation_phase(); + } + +} +// END Luna vars + + +static void main_board(void) { + int layer = get_highest_layer(layer_state); + isSneaking = false; + // Print current mode + oled_write_ln_P(PSTR("Flare"), false); + oled_write_ln_P(PSTR("Sofle"), false); + if (layer == _FF14) { + oled_write_raw_P(ffxiv, 16*8); + } else if (keymap_config.swap_lalt_lgui) { + oled_write_raw_P(windows, 16*8); + } else { + oled_write_raw_P(apple, 16*8); + } + oled_set_cursor(0, 9); + + switch (layer) { + case _BASE: + oled_write_ln_P(PSTR("ALL"), false); + oled_write_P(PSTR(" YOUR"), false); + oled_write_ln_P(PSTR("BASE"), false); + break; + case _MOUS: + isSneaking = true; + oled_write_ln_P(PSTR("Mouse"), false); + break; + case _SYMS: + oled_write_ln_P(PSTR("@$*&#"), false); + break; + case _FF14: + oled_write_ln_P(PSTR("FFXIV"), false); + break; + case _ESDF: + oled_write_ln_P(PSTR("ESDF "), false); + break; + default: + oled_write_ln_P(PSTR("Undef"), false); + } + if (layer != _BASE) { + oled_write_P(PSTR("\n"), false); + } + + // Don't re-write if not in use + if (current_wpm > 0) { + render_luna(0,13); + } +} + +// End "MAIN_BOARD" +#else +static void main_board(void){} +static void luna_jump(bool newJump){} + +#define MARQUEE_FRAME_DURATION 200 // how long each frame lasts in ms +#define LOGO_BYTES 128 +#define LOGO_COUNT 7 +static const char *const secondary_logos[] = { js, apple, docker, python, qmk, brew, windows }; +#define MARQUEE_FRAMES (LOGO_COUNT * 4) +#define MARQUEE_SIZE ( LOGO_COUNT * LOGO_BYTES) +#define MARQUEE_SCROLL_UP true +uint32_t marquee_timer = 0; +uint32_t marquee_frame = 0; + +static void render_logos(void) { + void marquee_phase(void) { + marquee_frame = (marquee_frame + 1) % MARQUEE_FRAMES; + int marquee_start = MARQUEE_SIZE - (marquee_frame * 32); + static char output[MARQUEE_SIZE]; + for (int i = 0; i < LOGO_COUNT; i++) { + for (int j = 0; j < LOGO_BYTES; j++) { + int pos = ( i * LOGO_BYTES + j + marquee_start ) % MARQUEE_SIZE; + output[pos] = pgm_read_byte_near(secondary_logos[i] + j); + } + } + oled_write_raw(output, MARQUEE_SIZE); + } + + // animation timer + if(timer_elapsed32(marquee_timer) > MARQUEE_FRAME_DURATION) { + marquee_timer = timer_read32(); + marquee_phase(); + } +} + +// End "MAIN_BOARD" false +#endif + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + return OLED_ROTATION_270; +} + +void oled_task_user(void) { + // Prevent blank screen on startup + if (current_wpm == -1) { + set_current_wpm(10); + } + current_wpm = get_current_wpm(); + if (is_keyboard_master()) { + // can't gate main_board on wpm; won't get mode changes that don't trigger wpm + main_board(); + } else if (current_wpm > 0) { + render_logos(); + } +} + +// End "OLED_DRIVER_ENABLE" +#else +static void luna_jump(bool newJump){} +// End "OLED_DRIVER_ENABLE" false +#endif diff --git a/keyboards/sofle/keymaps/flare576/graphics.h b/keyboards/sofle/keymaps/flare576/graphics.h new file mode 100644 index 0000000000..3979ee43d9 --- /dev/null +++ b/keyboards/sofle/keymaps/flare576/graphics.h @@ -0,0 +1,16 @@ +/* Copyright 2021 Flare576 <flare576@gmail.com> + * + * 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/>. + */ +void luna_jump(bool newJump); diff --git a/keyboards/sofle/keymaps/flare576/keymap.c b/keyboards/sofle/keymaps/flare576/keymap.c new file mode 100644 index 0000000000..68f611a1b5 --- /dev/null +++ b/keyboards/sofle/keymaps/flare576/keymap.c @@ -0,0 +1,196 @@ +/* Copyright 2021 Flare576 <flare576@gmail.com> + * + * 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 QMK_KEYBOARD_H +#include "print.h" +#include "enums.h" +#include "graphics.h" + +qk_tap_dance_action_t tap_dance_actions[] = { + [TD_PLAY] = ACTION_TAP_DANCE_DOUBLE(KC_MPLY, KC_MNXT), + [TD_HOME] = ACTION_TAP_DANCE_DOUBLE(KC_HOME, KC_END), +}; + +#define KC_TPLY TD(TD_PLAY) +#define KC_THME TD(TD_HOME) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* + * BASE + * ,-----------------------------------------. ,-----------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * |Alt/Tb| Q | W | E | R | T | | Y | U | I | O | P | \ | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * |LShift| A | S | D | F | G |-------. ,-------| H | J | K | L | ; | ' | + * |------+------+------+------+------+------| PLAY | | PAGE |------+------+------+------+------+------| + * |LCtrl | Z | X | C | V | B |-------| |-------| N | M | , | . | / |+/SHFT| + * `-----------------------------------------/ / \Enter \-----------------------------------------' + * | ESDF | LAlt | ESC/ | LGUI | /Space / \ or \ | Bspc | Alt+ |Delete|FFXIV | + * | | |Symbol| |/ / \Mouse \ | |Shift | | | + * `----------------------------------' '------''---------------------------' + * + * Note: Apple's keyboard settings don't seem to discern right- and left-ALT, so swapping keys there breaks TAB & META + */ +[_BASE] = LAYOUT( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + RALT_T(KC_TAB), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LCTRL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_TPLY, KC_THME, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, RSFT_T(KC_PLUS), + TG(_ESDF), KC_LALT, LT(_SYMS,KC_ESC), KC_LGUI, KC_SPC, LT(_MOUS, KC_ENT), KC_BSPC, RSFT(KC_RALT), KC_DEL, TG(_FF14) +), + +/* + * MOUS + * ,-----------------------------------------. ,-----------------------------------------. + * |CTRL+W|ALT+A | | | | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | TRNS |PRNTSC| | M UP | HOME | PGUP | |M Wl U|M Wl D|M Wl L|M Wl R| |COMP1 | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | TRNS |SC LCK|M LFT |M DWN |M RGHT| |-------. ,-------| UP | DOWN | LEFT |RIGHT | |COMP2 | + * |------+------+------+------+------+------| TRNS | | TRNS |------+------+------+------+------+------| + * | TRNS |PAUSE | | | END | PGDN |-------| |-------|MOUS1 |MOUS2 | | | | | + * `-----------------------------------------/ / \ \-----------------------------------------' + * | | TRNS | TRNS |TRNS | / TRNS / \ TRNS \ |MOUS3 |MOUS4 |MOUS5 | | + * | | | | |/ / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ +[_MOUS] = LAYOUT( + LCTL(KC_W), LALT(KC_A), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + _______, KC_PSCR, XXXXXXX, KC_MS_U, KC_HOME, KC_PGUP, KC_WH_U, KC_WH_D, KC_WH_L, KC_WH_R, XXXXXXX, _COMP1, + _______, KC_SLCK, KC_MS_L, KC_MS_D, KC_MS_R, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, XXXXXXX, _COMP2, + _______, KC_PAUS, XXXXXXX, XXXXXXX, KC_END, KC_PGDN, _______, _______, KC_BTN1, KC_BTN2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, _______, _______, _______, _______, _______, KC_BTN3, KC_BTN4, KC_BTN5, XXXXXXX +), + +/* SYMS + * ,-----------------------------------------. ,-----------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | | { | } | | RESET| + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | TRNS | F6 | F7 | F8 | F9 | F10 | | | | ( | ) | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | TRNS | F11 | F12 | F13 | F14 | F15 |-------. ,-------| | | [ | ] | | | + * |------+------+------+------+------+------| TRNS | | TRNS |------+------+------+------+------+------| + | TRNS | UNDO | CUT | COPY |PASTE | F20 |-------| |-------| | | < | > | | | + * `-----------------------------------------/ / \ \-----------------------------------------' + * | TRNS | TRNS | TRNS | TRNS | / TRNS / \ TRNS \ | TRNS | TRNS | TRNS | TRNS | + * | | | | |/ / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ +[_SYMS] = LAYOUT( + XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, XXXXXXX, XXXXXXX, KC_LCBR, KC_RCBR, XXXXXXX, RESET, + _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, XXXXXXX, XXXXXXX, KC_LPRN, KC_RPRN, XXXXXXX, XXXXXXX, + _______, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, XXXXXXX, XXXXXXX, KC_LBRC, KC_RBRC, XXXXXXX, XXXXXXX, + _______, LGUI(KC_Z), LGUI(KC_X), LGUI(KC_C), LGUI(KC_V), KC_F20, _______, _______, XXXXXXX, XXXXXXX, KC_LT, KC_GT, XXXXXXX, XXXXXXX, + XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX +), + +/* FF14 + * ,-----------------------------------------. ,-----------------------------------------. + * | TRNS | TRNS | TRNS | TRNS | TRNS | TRNS | | TRNS | TRNS | TRNS | TRNS | TRNS | TRNS | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | TAB | TRNS | TRNS | TRNS | TRNS | TRNS | | TRNS | TRNS | TRNS | TRNS | TRNS | TRNS | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | TRNS | TRNS | TRNS | TRNS | TRNS | TRNS |-------. ,-------| TRNS | TRNS | TRNS | TRNS | TRNS | TRNS | + * |------+------+------+------+------+------| TRNS | | TRNS |------+------+------+------+------+------| + * | TRNS | TRNS | TRNS | TRNS | TRNS | TRNS |-------| |-------| TRNS | TRNS | TRNS | TRNS | TRNS | TRNS | + * `-----------------------------------------/ / \ \-----------------------------------------' + * | ESDF | | ESC | TRNS | / TRNS / \ TRNS \ | TRNS |PrntSc| TRNS | TRNS | + * | | | | |/ / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ +[_FF14] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_TAB, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + TO(_ESDF), XXXXXXX, KC_ESC, _______, _______, _______, _______, KC_PSCR, _______, _______ +), + +/* ESDF + * ,-----------------------------------------. ,-----------------------------------------. + * | ~ | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | = | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | T | Tab | Q | W | E | R | | Ctl-Y| Ctl-U| Ctl-I| Ctl-O| Ctl-P| PGUP | + * |------|------+------+------+------+------+ |------+------+------+------+------+------| + * | G |LShift| A | S | D | F |-------. ,-------| Ctl-H| Ctl-J| Ctl-K| Ctl-L| Ctl-;| PGDN | + * |------|------+------+------+------+------+ | | |------+------+------+------+------+------| + * | LCtrl| Z | X | C | V | B |-------| |-------| Ctl-N| Ctl-M| Ctl-,| Ctl-.| Ctl-/| M | + * `-----------------------------------------/ / \Enter \-----------------------------------------' + * | TRNS | | ESC | LAlt | /Space / \ \ |PrnScr| | | FF14 | + * | | | | |/ / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ +[_ESDF] = LAYOUT( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL, + KC_T, KC_TAB, KC_Q, KC_W, KC_E, KC_R, RCTL(KC_Y), RCTL(KC_U), RCTL(KC_I), RCTL(KC_O), RCTL(KC_P), KC_PGUP, + KC_G, KC_LSFT, KC_A, KC_S, KC_D, KC_F, RCTL(KC_H), RCTL(KC_J), RCTL(KC_K), RCTL(KC_L), RCTL(KC_SCLN), KC_PGDN, + KC_LCTRL, KC_Z, KC_X, KC_C, KC_V, KC_B, _______, _______, RCTL(KC_N), RCTL(KC_M), RCTL(KC_COMM), RCTL(KC_DOT), RCTL(KC_SLSH), KC_M, + _______, XXXXXXX, _______, _______, _______, _______, _______, KC_PSCR, _______, TO(_FF14) +) +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case _COMP1: + if (record->event.pressed) { + // SEND_STRING(SS_TAP(X_RCTRL) SS_DELAY(100) SS_TAP(X_RCTRL) SS_DELAY(100) "1" SS_TAP(X_ENTER)); + keymap_config.swap_lalt_lgui = false; + } + return false; + case _COMP2: + if (record->event.pressed) { + // SEND_STRING(SS_TAP(X_RCTRL) SS_DELAY(100) SS_TAP(X_RCTRL) SS_DELAY(100) "2" SS_TAP(X_ENTER)); + keymap_config.swap_lalt_lgui = true; + } + return false; + case KC_SPC: + luna_jump(record->event.pressed); + break; + } + return true; +} + +uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KC_THME: + case KC_TPLY: + return TAPPING_TERM + 250; + default: + return TAPPING_TERM; + } +} + +#ifdef ENCODER_ENABLE + +bool encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { + if (clockwise) { + tap_code(KC_VOLD); + } else { + tap_code(KC_VOLU); + } + } else if (index == 1) { + if (clockwise) { + tap_code(KC_PGDOWN); + } else { + tap_code(KC_PGUP); + } + } + return true; +} + +#endif diff --git a/keyboards/sofle/keymaps/flare576/logos.h b/keyboards/sofle/keymaps/flare576/logos.h new file mode 100644 index 0000000000..18de1b3d52 --- /dev/null +++ b/keyboards/sofle/keymaps/flare576/logos.h @@ -0,0 +1,96 @@ +/* Copyright 2021 Flare576 <flare576@gmail.com> + * + * 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/>. + */ +static const char PROGMEM ffxiv[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xf0, 0x00, 0xf0, 0xc0, 0xe0, 0x80, 0x00, 0x02, + 0x0c, 0x2e, 0xfc, 0xfc, 0xfc, 0xfc, 0x78, 0x78, 0xf0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3b, 0x3f, 0x37, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xf8, + 0xf8, 0xf8, 0xf1, 0xff, 0xff, 0xff, 0xf8, 0xf0, 0xf0, 0xb0, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x7b, 0xdf, 0x1f, 0x3f, 0x3f, + 0x1f, 0x1f, 0x3f, 0x5f, 0x9f, 0x8f, 0x07, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x06, 0x06, 0x07, 0x0f, 0x1c, 0x74, + 0x0c, 0x0d, 0x09, 0x09, 0x11, 0x01, 0x03, 0x03, 0x07, 0x05, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00 +}; +static const char PROGMEM windows[] = { + 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0x00, 0xf8, + 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfe, 0xfe, 0xfe, 0x00, + 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, + 0x00, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0x00, 0xfe, + 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0x00, + 0x00, 0x07, 0x07, 0x07, 0x07, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x1f, 0x1f, 0x00, 0x1f, + 0x1f, 0x1f, 0x1f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x00 +}; +static const char PROGMEM apple[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xe0, 0x78, 0x7c, 0x7e, 0x3e, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, + 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3e, 0x0e, 0x0c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x0f, 0x3f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x7f, + 0x7f, 0x7f, 0x7f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x3f, 0x1f, 0x07, 0x01, 0x00, 0x00, 0x00 +}; +const char PROGMEM docker[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, + 0x70, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x80, 0xb0, 0xb0, 0xb0, 0x80, 0xb7, 0xb7, 0xb7, 0x80, 0xb7, 0xb7, 0xb7, 0x80, 0xb7, + 0xb7, 0xb7, 0x80, 0xb0, 0xb0, 0xb0, 0x80, 0x80, 0xfe, 0xfe, 0xfc, 0xf0, 0xf0, 0xf0, 0x70, 0x00, + 0x03, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x3f, 0x1f, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x03, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x03, + 0x03, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +}; +static const char PROGMEM python[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x7e, 0x66, 0x66, 0x67, 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf0, 0xfc, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, + 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x3f, 0x9f, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0xf0, + 0x0f, 0x3f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0x03, 0xf9, 0xfc, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x7f, 0x3f, 0x0f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x3f, 0x7f, 0x7f, 0xff, 0xff, 0xff, 0xff, + 0xfe, 0xfe, 0xfe, 0xe6, 0x66, 0x66, 0x7e, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +}; +static const char PROGMEM js[] = { + 0x00, 0x00, 0x00, 0x80, 0x80, 0xc0, 0xc0, 0xe0, 0xe0, 0xf0, 0xf8, 0x78, 0x7c, 0x3c, 0x1e, 0x9f, + 0x9e, 0x1e, 0x3c, 0x3c, 0x78, 0xf8, 0xf0, 0xe0, 0xe0, 0xc0, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x03, 0x01, 0xf1, 0xf8, 0xfc, 0xfc, 0x06, 0x06, 0xff, 0x0f, + 0x0f, 0x67, 0x67, 0xe6, 0xcc, 0x8c, 0xf8, 0xf9, 0x01, 0x03, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x80, 0x1f, 0x3f, 0x3f, 0x3f, 0x00, 0x80, 0xff, 0xe3, + 0xe2, 0xce, 0xce, 0x4c, 0x64, 0x20, 0x11, 0x9f, 0x80, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x03, 0x07, 0x07, 0x0f, 0x1f, 0x1f, 0x3c, 0x3c, 0x78, 0x79, + 0xf9, 0x78, 0x3c, 0x3c, 0x1e, 0x1f, 0x0f, 0x07, 0x07, 0x03, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, +}; +static const char PROGMEM qmk[] = { + 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf0, 0xf0, 0xf0, 0xf8, 0xf0, 0xf0, 0xf8, 0xf8, 0xf0, 0xf0, 0xf8, + 0xf8, 0xf0, 0xf0, 0xf8, 0xf8, 0xf0, 0xf0, 0xf8, 0xf0, 0xf0, 0xf0, 0xe0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x99, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, + 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x99, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x99, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xf8, 0xf1, 0xf3, 0xe3, 0xe7, 0x00, + 0x00, 0xe7, 0xe3, 0xf3, 0xf1, 0xf8, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0x99, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x07, 0x0f, 0x0f, 0x0f, 0x1f, 0x0f, 0x0f, 0x1f, 0x1f, 0x0f, 0x0f, 0x1f, + 0x1f, 0x0f, 0x0f, 0x1f, 0x1f, 0x0f, 0x0f, 0x1f, 0x0f, 0x0f, 0x0f, 0x07, 0x00, 0x00, 0x00, 0x00, +}; +static const char PROGMEM brew[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xe7, 0xff, 0xfe, 0xfc, 0xf8, 0xfe, + 0xe4, 0xe0, 0xe0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0xe7, 0x43, 0x41, 0x41, 0x4b, 0xcf, 0x87, 0x87, 0x8f, + 0x87, 0x03, 0x03, 0xc3, 0x47, 0xe7, 0xa4, 0xb8, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x02, 0x02, 0x03, 0x00, 0xfe, 0x02, 0x02, 0xfe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x40, 0xc0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0xc0, 0x40, 0x7b, 0x0a, 0x0a, 0x0b, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + diff --git a/keyboards/sofle/keymaps/flare576/readme.md b/keyboards/sofle/keymaps/flare576/readme.md new file mode 100644 index 0000000000..9f8ad5f248 --- /dev/null +++ b/keyboards/sofle/keymaps/flare576/readme.md @@ -0,0 +1,22 @@ +![Flare576 Keycaps](https://raw.githubusercontent.com/Flare576/sofle/main/images/keycaps.png) +![Flare576 Chord Guide](https://raw.githubusercontent.com/Flare576/sofle/main/images/chords.png) + +# Flare576's keymap for Sofle Keyboard + +[Layout](http://www.keyboard-layout-editor.com/#/gists/fb8b42a6156458e20ca421a6f80cec48) and [Chord Mapping](http://www.keyboard-layout-editor.com/#/gists/884e3bc833cdf80fed9337ffee93a500) in Keyboard Layout Manager + + +Features: + +- WASD -> ESDF Gaming layer +- Mouse/Arrow Keys Layer with **amazing** rates +- Tap/Hold keys for `=/+`/`SHIFT`, `TAB`/`ALT` +- Bracket layer with Fn Keys +- Right-hand primary OLED + * Mode logo + * Mode title + * Luna WPM indicator +- Left-hand secondary OLED scrolling logo marquee +- Left encoder controls volume up/down/mute. Right encoder PGUP/PGDOWN/Home. + +See [My Sofle Project](https://github.com/flare576/sofle) for more details diff --git a/keyboards/sofle/keymaps/flare576/rules.mk b/keyboards/sofle/keymaps/flare576/rules.mk new file mode 100644 index 0000000000..a7505f5386 --- /dev/null +++ b/keyboards/sofle/keymaps/flare576/rules.mk @@ -0,0 +1,7 @@ +MOUSEKEY_ENABLE = yes +ENCODER_ENABLE = yes +EXTRAKEY_ENABLE = yes +TAP_DANCE_ENABLE = yes +WPM_ENABLE = yes +OLED_DRIVER_ENABLE = yes +SRC += graphics.c diff --git a/keyboards/sofle/keymaps/helltm/keymap.c b/keyboards/sofle/keymaps/helltm/keymap.c index 3e1bcc82ea..8d6289af42 100644 --- a/keyboards/sofle/keymaps/helltm/keymap.c +++ b/keyboards/sofle/keymaps/helltm/keymap.c @@ -392,7 +392,7 @@ static void print_status_narrow(void) { oled_rotation_t oled_init_user(oled_rotation_t rotation) { return OLED_ROTATION_270; } -void oled_task_user(void) { +bool oled_task_user(void) { /* KEYBOARD PET VARIABLES START */ current_wpm = get_current_wpm(); @@ -405,6 +405,7 @@ void oled_task_user(void) { } else { print_logo_narrow(); } + return false; } #endif diff --git a/keyboards/sofle/keymaps/j4ckofalltrades/oled.c b/keyboards/sofle/keymaps/j4ckofalltrades/oled.c index 46c791b053..de561bd0fa 100644 --- a/keyboards/sofle/keymaps/j4ckofalltrades/oled.c +++ b/keyboards/sofle/keymaps/j4ckofalltrades/oled.c @@ -65,12 +65,13 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) { return rotation; } -void oled_task_user(void) { +bool oled_task_user(void) { if (is_keyboard_master()) { print_status_narrow(); } else { render_logo(); } + return false; } #endif diff --git a/keyboards/sofle/keymaps/keyhive_via/config.h b/keyboards/sofle/keymaps/keyhive_via/config.h new file mode 100644 index 0000000000..0e2cb6d2c4 --- /dev/null +++ b/keyboards/sofle/keymaps/keyhive_via/config.h @@ -0,0 +1,48 @@ + /* Copyright 2020 Josef Adamcik + * Modification for VIA support and RGB underglow by Jens Bonk-Wiltfang + * + * 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/>. + */ + +#pragma once + +/* The way how "handedness" is decided (which half is which), +see https://docs.qmk.fm/#/feature_split_keyboard?id=setting-handedness +for more options. +*/ + +// More lighting options in quantum/rgblight/rgblight.h +#ifdef RGBLIGHT_ENABLE +# define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_SWIRL+2 + +// Disabling some of these is a good way to save flash space. +# define RGBLIGHT_EFFECT_ALTERNATING // 108 +# define RGBLIGHT_EFFECT_RGB_TEST // 158 +# define RGBLIGHT_EFFECT_RAINBOW_MOOD // 160 +# define RGBLIGHT_EFFECT_STATIC_GRADIENT // 168 +# define RGBLIGHT_EFFECT_RAINBOW_SWIRL // 192 +# define RGBLIGHT_EFFECT_BREATHING // 348 +# define RGBLIGHT_EFFECT_KNIGHT // 336 +# define RGBLIGHT_EFFECT_SNAKE // 406 +# define RGBLIGHT_EFFECT_CHRISTMAS // 508 +/* +#define RGBLIGHT_EFFECT_TWINKLE // 1156 +*/ +#endif + +// Disabled to save space +#define NO_ACTION_ONESHOT // 332 +#define NO_ACTION_MACRO // 0 +#define NO_ACTION_FUNCTION // 0 +#define DISABLE_LEADER // 0 diff --git a/keyboards/sofle/keymaps/keyhive_via/encoder.c b/keyboards/sofle/keymaps/keyhive_via/encoder.c new file mode 100644 index 0000000000..0883c4a48a --- /dev/null +++ b/keyboards/sofle/keymaps/keyhive_via/encoder.c @@ -0,0 +1,49 @@ + /* Copyright 2020 Josef Adamcik + * Modification for VIA support and RGB underglow by Jens Bonk-Wiltfang + * + * 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/>. + */ + +//Setting up what encoder rotation does. If your encoder can be pressed as a button, that function can be set in Via. + +#ifdef ENCODER_ENABLE + static uint8_t encoder_state[2] = {0}; + //Use these keymap positions to specify the encoder functions on rotate. + static keypos_t encoder_ccw[2] = {{6, 3}, {6, 8}}; + static keypos_t encoder_cw[2] = {{6, 1}, {6, 6}}; + + void encoder_action_unregister(void) { + for (int index = 0; index < 2; ++index) { + if (encoder_state[index]) { + keyevent_t encoder_event = (keyevent_t){.key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index], .pressed = false, .time = (timer_read() | 1)}; + encoder_state[index] = 0; + action_exec(encoder_event); + } + } + } + + void encoder_action_register(uint8_t index, bool clockwise) { + keyevent_t encoder_event = (keyevent_t){.key = clockwise ? encoder_cw[index] : encoder_ccw[index], .pressed = true, .time = (timer_read() | 1)}; + encoder_state[index] = (clockwise ^ 1) | (clockwise << 1); + action_exec(encoder_event); + } + + void matrix_scan_user(void) { encoder_action_unregister(); } + + bool encoder_update_user(uint8_t index, bool clockwise) { + encoder_action_register(index, clockwise); + return false; + }; +#endif + diff --git a/keyboards/sofle/keymaps/keyhive_via/keymap.c b/keyboards/sofle/keymaps/keyhive_via/keymap.c new file mode 100644 index 0000000000..878638e1a2 --- /dev/null +++ b/keyboards/sofle/keymaps/keyhive_via/keymap.c @@ -0,0 +1,191 @@ + /* Copyright 2020 Josef Adamcik + * Modification for VIA support and RGB underglow by Jens Bonk-Wiltfang + * + * 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 QMK_KEYBOARD_H + +#include "oled.c" +#include "encoder.c" + +// Base layer is the number of layers CYCLE selects from. +#define BASE_LAYERS 2 + +enum custom_keycodes { + PLACEHOLDER = SAFE_RANGE, // can always be here (4 bytes) + CYCLE // cycle through first BASE_LAYERS (62 bytes) +}; + +enum custom_layers { + _QWERTY, + _COLEMAK, + _LOWER, + _RAISE +}; + +// Extra keys are added for rotary encoder support in VIA +#define LAYOUT_via( \ + LA1, LA2, LA3, LA4, LA5, LA6, RA6, RA5, RA4, RA3, RA2, RA1, \ + LB1, LB2, LB3, LB4, LB5, LB6, LB7, RB7, RB6, RB5, RB4, RB3, RB2, RB1, \ + LC1, LC2, LC3, LC4, LC5, LC6, LE1, RE6, RC6, RC5, RC4, RC3, RC2, RC1, \ + LD1, LD2, LD3, LD4, LD5, LD6, LD7, RD7, RD6, RD5, RD4, RD3, RD2, RD1, \ + LE2, LE3, LE4, LE5, LE6, RE5, RE4, RE3, RE2, RE1 \ + ) \ + { \ + { LA1, LA2, LA3, LA4, LA5, LA6, KC_NO }, \ + { LB1, LB2, LB3, LB4, LB5, LB6, LB7 }, \ + { LC1, LC2, LC3, LC4, LC5, LC6, KC_NO }, \ + { LD1, LD2, LD3, LD4, LD5, LD6, LD7 }, \ + { LE1, LE2, LE3, LE4, LE5, LE6, KC_NO }, \ + { RA1, RA2, RA3, RA4, RA5, RA6, KC_NO }, \ + { RB1, RB2, RB3, RB4, RB5, RB6, RB7 }, \ + { RC1, RC2, RC3, RC4, RC5, RC6, KC_NO }, \ + { RD1, RD2, RD3, RD4, RD5, RD6, RD7 }, \ + { RE1, RE2, RE3, RE4, RE5, RE6, KC_NO } \ + } + +//Default keymap. This can be changed in Via. Use oled.c to change beavior that Via cannot change. +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* + * QWERTY + * ,-----------------------------------------. ,-----------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 |-------. E ,-------| 6 | 7 | 8 | 9 | 0 | ` | + * |------+------+------+------+------+------| VolUp |< N >| Pg Up |------+------+------+------+------+------| + * | ESC | Q | W | E | R | T |-------. C ,-------| Y | U | I | O | P | Bspc | + * |------+------+------+------+------+------| Mute |< O >| |------+------+------+------+------+------| + * | Tab | A | S | D | F | G |-------. D ,-------| H | J | K | L | ; | ' | + * |------+------+------+------+------+------| VolDn |< E >| Pg Dn |------+------+------+------+------+------| + * |LShift| Z | X | C | V | B |-------| R |-------| N | M | , | . | / |RShift| + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI | + * | | | | |/ / \ \ | | | | | + * `-----------------------------------' '------''---------------------------' + */ + +[_QWERTY] = LAYOUT_via( + KC_GRV, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_GRV , + KC_ESC, KC_Q , KC_W , KC_E , KC_R , KC_T , KC_VOLU, KC_PGUP, KC_Y , KC_U , KC_I , KC_O , KC_P , KC_BSPC, + KC_TAB, KC_A , KC_S , KC_D , KC_F , KC_G , KC_MUTE, KC_NO , 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_VOLD, KC_PGDN, KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, + KC_LGUI,KC_LALT ,KC_LCTRL,MO(_LOWER), KC_ENT , KC_SPC ,MO(_RAISE),KC_RCTRL, KC_RALT, KC_RGUI +), +/* + * COLEMAK - Vanilla + * ,-----------------------------------------. ,-----------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 |-------. E ,-------| 6 | 7 | 8 | 9 | 0 | ` | + * |------+------+------+------+------+------| VolUp |< N >| Pg Up |------+------+------+------+------+------| + * | ESC | Q | W | F | P | G |-------. C ,-------| J | L | U | Y | ; | Bspc | + * |------+------+------+------+------+------| Mute |< O >| |------+------+------+------+------+------| + * | TAB | A | R | S | T | D |-------. D ,-------| H | N | E | I | O | ' | + * |------+------+------+------+------+------| VolDn |< E >| Pg Dn |------+------+------+------+------+------| + * |LShift| Z | X | C | V | B |-------| R |-------| K | M | , | . | / |RShift| + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI | + * | | | | |/ / \ \ | | | | | + * `-----------------------------------' '------''---------------------------' + */ +/* +[_COLEMAK] = LAYOUT_via( + KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_GRV , + KC_ESC , KC_Q , KC_W , KC_F , KC_P , KC_G , KC_VOLU, KC_PGUP, KC_J , KC_L , KC_U , KC_Y , KC_SCLN, KC_BSPC, + KC_TAB , KC_A , KC_R , KC_S , KC_T , KC_D , KC_MUTE, KC_NO , KC_H , KC_N , KC_E , KC_I , KC_O , KC_QUOT, + KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_VOLD, KC_PGDN, KC_N , KC_M , KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LGUI, KC_LALT,KC_LCTRL,MO(_LOWER), KC_ENT , KC_SPC ,MO(_RAISE),KC_RCTRL, KC_RALT, KC_RGUI +), +*/ + +/* + * COLEMAK-DH + * ,-----------------------------------------. ,-----------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 |-------. E ,-------| 6 | 7 | 8 | 9 | 0 | ` | + * |------+------+------+------+------+------| VolUp |< N >| Pg Up |------+------+------+------+------+------| + * | ESC | Q | W | F | P | B |-------. C ,-------| J | L | U | Y | ; | Bspc | + * |------+------+------+------+------+------| Mute |< O >| |------+------+------+------+------+------| + * | TAB | A | R | S | T | G |-------. D ,-------| M | N | E | I | O | ' | + * |------+------+------+------+------+------| VolDn |< E >| Pg Dn |------+------+------+------+------+------| + * |LShift| Z | X | C | D | V |-------| R |-------| K | H | , | . | / |RShift| + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI | + * | | | | |/ / \ \ | | | | | + * `-----------------------------------' '------''---------------------------' + */ +[_COLEMAK] = LAYOUT_via( + KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_GRV , + KC_ESC , KC_Q , KC_W , KC_F , KC_P , KC_B , KC_VOLU, KC_PGUP, KC_J , KC_L , KC_U , KC_Y , KC_SCLN, KC_BSPC, + KC_TAB , KC_A , KC_R , KC_S , KC_T , KC_G , KC_MUTE, KC_NO , KC_M , KC_N , KC_E , KC_I , KC_O , KC_QUOT, + KC_LSFT, KC_Z , KC_X , KC_C , KC_D , KC_V , KC_VOLD, KC_PGDN, KC_K , KC_H , KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LGUI, KC_LALT,KC_LCTRL,MO(_LOWER), KC_ENT , KC_SPC ,MO(_RAISE),KC_RCTRL, KC_RALT, KC_RGUI +), + +/* LOWER + * ,-----------------------------------------. ,-----------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 |-------. E ,-------| F6 | F7 | F8 | F9 | F10 | F11 | + * |------+------+------+------+------+------| |< N >| |------+------+------+------+------+------| + * | ` | 1 | 2 | 3 | 4 | 5 |-------. C ,-------| 6 | 7 | 8 | 9 | 0 | F12 | + * |------+------+------+------+------+------| |< O >| |------+------+------+------+------+------| + * | Tab | ! | @ | # | $ | % |-------. D ,-------| ^ | & | * | ( | ) | | | + * |------+------+------+------+------+------| |< E >| |------+------+------+------+------+------| + * | Shift| = | - | + | { | } |-------| R |-------| [ | ] | ; | : | \ | | + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI | + * | | | | |/ / \ \ | | | | | + * `-----------------------------------' '------''---------------------------' + */ +[_LOWER] = LAYOUT_via( + _______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , + KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , _______, _______, KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_F12 , + _______, KC_EXLM, KC_AT , KC_HASH, KC_DLR , KC_PERC, _______, _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PIPE, + _______, KC_EQL , KC_MINS, KC_PLUS, KC_LCBR, KC_RCBR, _______, _______, KC_LBRC, KC_RBRC, KC_SCLN, KC_COLN, KC_BSLS, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +), +/* RAISE + * ,----------------------------------------. ,-----------------------------------------. + * |Cycle | | | | | |-------. E ,-------| | | | | | | + * |------+------+------+------+------+------| |< N >| |------+------+------+------+------+------| + * | Esc | Ins | Pscr | Menu | | |-------. C ,-------| | | Up | | DLine| Bspc | + * |------+------+------+------+------+------| |< O >| |------+------+------+------+------+------| + * | Tab | LAt | LCtl |LShift| | Caps |-------. D ,-------| | Left | Down | Rigth| Del | Bspc | + * |------+------+------+------+------+------| |< E >| |------+------+------+------+------+------| + * |Shift | Undo | Cut | Copy | Paste| |-------| R |-------| | LStr | | LEnd | | Shift| + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI | + * | | | | |/ / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ +[_RAISE] = LAYOUT_via( + CYCLE, _______, _______, _______, _______ , _______, _______, _______, _______, _______, _______, _______, + _______, KC_INS , KC_PSCR, KC_APP , XXXXXXX , XXXXXXX, _______, _______, KC_PGUP, _______, KC_UP , _______, _______, KC_BSPC, + _______, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX , KC_CAPS, _______, _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL , KC_BSPC, + _______, KC_UNDO, KC_CUT , KC_COPY, KC_PASTE, XXXXXXX, _______, _______, XXXXXXX, _______, XXXXXXX, _______, XXXXXXX, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +) +}; + +// Custom keycode handling. +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + // handling this once instead of in each keycode uses less program memory. + if ((keycode >= SAFE_RANGE) && !(record->event.pressed)) { + return false; + } + + switch (keycode) { + case CYCLE: + set_single_persistent_default_layer((1+get_highest_layer(default_layer_state)) % BASE_LAYERS); + break; + } + + // this uses less memory than returning in each case. + return keycode < SAFE_RANGE; +}; diff --git a/keyboards/sofle/keymaps/keyhive_via/oled.c b/keyboards/sofle/keymaps/keyhive_via/oled.c new file mode 100644 index 0000000000..ef3a189f9d --- /dev/null +++ b/keyboards/sofle/keymaps/keyhive_via/oled.c @@ -0,0 +1,85 @@ + /* Copyright 2020 Josef Adamcik + * Modification for VIA support and RGB underglow by Jens Bonk-Wiltfang + * + * 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/>. + */ + +//Sets up what the OLED screens display. + +#ifdef OLED_ENABLE + +static void render_logo(void) { + static const char PROGMEM qmk_logo[] = { + 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94, + 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4, + 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0 + }; + + oled_write_P(qmk_logo, false); +} + +static void print_status_narrow(void) { + // Print current mode + oled_write_P(PSTR("\n\n"), false); + + switch (get_highest_layer(default_layer_state)) { + case 0: // _QWERTY + oled_write_ln_P(PSTR("Qwrt\n"), false); + break; + case 1: // _COLEMAK + oled_write_ln_P(PSTR("Clmk\n"), false); + break; + default: + oled_write_P(PSTR("Mod"), false); + break; + } + oled_write_P(PSTR("\n\n"), false); + // Print current layer + oled_write_ln_P(PSTR("LAYER"), false); + switch (get_highest_layer(layer_state)) { + case 0: // _QWERTY + case 1: // _COLEMAK + oled_write_P(PSTR("Base\n"), false); + break; + case 2: + oled_write_P(PSTR("Lower"), false); + break; + case 3: + oled_write_P(PSTR("Raise"), false); + break; + default: + oled_write_ln_P(PSTR("Undef"), false); + } + oled_write_P(PSTR("\n\n"), false); + led_t led_usb_state = host_keyboard_led_state(); + oled_write_ln_P(PSTR("CPSLK"), led_usb_state.caps_lock); +} + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + if (is_keyboard_master()) { + return OLED_ROTATION_270; + } + return rotation; +} + +bool oled_task_user(void) { + if (is_keyboard_master()) { + print_status_narrow(); + } else { + render_logo(); + } + return false; +} + +#endif diff --git a/keyboards/sofle/keymaps/keyhive_via/readme.md b/keyboards/sofle/keymaps/keyhive_via/readme.md new file mode 100644 index 0000000000..e7a2beebcf --- /dev/null +++ b/keyboards/sofle/keymaps/keyhive_via/readme.md @@ -0,0 +1,49 @@ +# Only compatible with sofle/keyhive firmware which adds an extra column of keys for encoder mapping. + +![SofleKeyboard version 2.1 RGB Keyhive](https://i.imgur.com/Oa6spvZ.png) + +# Configuring VIA / Vial App + +This firmware will not auto-recognize until [PR #1060](https://github.com/the-via/keyboards/pull/1060) is accepted to the VIA keyboard database. For now you must install the new layout: + +1. Download [keyhive_sofle_rgb.json](https://raw.githubusercontent.com/the-via/keyboards/48372baae5ab451d752988121fa4f1dd47b2c1ce/src/sofle/keyhive_sofle_rgb.json). +2. In the VIA app, select `File > Import Keymap` from the menu. +3. Open the file you just downloaded. + +**You'll have to do this every time you use VIA or Vial until the PR is accepted.** + +# Using with VIA +* The default layouts should be loaded automatically. +* Layouts can be backed up in VIA in the SAVE+LOAD section. +* It is a good idea to Save Current Layout after you decide on your mapping. + +# Custom Features: + +### Rotary Encoder and VIA Features: +* Fully remappable. Left encoder controls volume up/down/mute. Right encoder PGUP/PGDOWN. +* Allows for live remapping of per-layer rotary encoder functions in VIA. +* VIA support with **keyhive_via** keymap. + +# Compiling + +Make example for this keyboard (after setting up your build environment): + + make sofle/keyhive:keyhive_via + +## Flashing + +Flash using the correct command below (or use QMK Toolbox). These commands can be mixed if, for example, you have an Elite C on the left and a pro micro on the right. + +Press reset button on the keyboard when asked. + +Disconnect the first half, connect the second one and repeat the process. + + # for Pro Micro-based builds + make sofle/keyhive:keyhive_via:avrdude-split-left + make sofle/keyhive:keyhive_via:avrdude-split-right + + # for Elite C or DFU bootloader builds + make sofle/keyhive:keyhive_via:dfu-split-left + make sofle/keyhive:keyhive_via:dfu-split-right + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/sofle/keymaps/keyhive_via/rules.mk b/keyboards/sofle/keymaps/keyhive_via/rules.mk new file mode 100644 index 0000000000..2875254096 --- /dev/null +++ b/keyboards/sofle/keymaps/keyhive_via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +RGBLIGHT_ENABLE = yes diff --git a/keyboards/sofle/keymaps/killmaster/keymap.c b/keyboards/sofle/keymaps/killmaster/keymap.c index 34c07f3c45..71db0fc853 100644 --- a/keyboards/sofle/keymaps/killmaster/keymap.c +++ b/keyboards/sofle/keymaps/killmaster/keymap.c @@ -211,12 +211,13 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) { return rotation; } -void oled_task_user(void) { +bool oled_task_user(void) { if (is_keyboard_master()) { print_status_narrow(); } else { render_logo(); } + return false; } diff --git a/keyboards/sofle/keymaps/rgb_default/config.h b/keyboards/sofle/keymaps/rgb_default/config.h index 32d0717352..c34da8382b 100644 --- a/keyboards/sofle/keymaps/rgb_default/config.h +++ b/keyboards/sofle/keymaps/rgb_default/config.h @@ -99,32 +99,32 @@ /* Disable the animations you don't want/need. You will need to disable a good number of these * * because they take up a lot of space. Disable until you can successfully compile your firmware. */ -// # define DISABLE_RGB_MATRIX_ALPHAS_MODS -// # define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN -// # define DISABLE_RGB_MATRIX_BREATHING -// # define DISABLE_RGB_MATRIX_CYCLE_ALL -// # define DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT -// # define DISABLE_RGB_MATRIX_CYCLE_UP_DOWN -// # define DISABLE_RGB_MATRIX_CYCLE_OUT_IN -// # define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL -// # define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON -// # define DISABLE_RGB_MATRIX_DUAL_BEACON -// # define DISABLE_RGB_MATRIX_RAINBOW_BEACON -// # define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS -// # define DISABLE_RGB_MATRIX_RAINDROPS -// # define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS -// # define DISABLE_RGB_MATRIX_TYPING_HEATMAP -// # define DISABLE_RGB_MATRIX_DIGITAL_RAIN -// # define DISABLE_RGB_MATRIX_SOLID_REACTIVE -// # define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE -// # define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE -// # define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE -// # define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS -// # define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS -// # define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS -// # define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS -// # define DISABLE_RGB_MATRIX_SPLASH -// # define DISABLE_RGB_MATRIX_MULTISPLASH -// # define DISABLE_RGB_MATRIX_SOLID_SPLASH -// # define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH + // # undef ENABLE_RGB_MATRIX_ALPHAS_MODS + // # undef ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN + // # undef ENABLE_RGB_MATRIX_BREATHING + // # undef ENABLE_RGB_MATRIX_CYCLE_ALL + // # undef ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT + // # undef ENABLE_RGB_MATRIX_CYCLE_UP_DOWN + // # undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN + // # undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL + // # undef ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON + // # undef ENABLE_RGB_MATRIX_DUAL_BEACON + // # undef ENABLE_RGB_MATRIX_RAINBOW_BEACON + // # undef ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS + // # undef ENABLE_RGB_MATRIX_RAINDROPS + // # undef ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS + // # undef ENABLE_RGB_MATRIX_TYPING_HEATMAP + // # undef ENABLE_RGB_MATRIX_DIGITAL_RAIN + // # undef ENABLE_RGB_MATRIX_SOLID_REACTIVE + // # undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE + // # undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE + // # undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE + // # undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS + // # undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS + // # undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS + // # undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS + // # undef ENABLE_RGB_MATRIX_SPLASH + // # undef ENABLE_RGB_MATRIX_MULTISPLASH + // # undef ENABLE_RGB_MATRIX_SOLID_SPLASH + // # undef ENABLE_RGB_MATRIX_SOLID_MULTISPLASH #endif diff --git a/keyboards/sofle/keymaps/rgb_default/keymap.c b/keyboards/sofle/keymaps/rgb_default/keymap.c index 13edbc5207..30f374f296 100644 --- a/keyboards/sofle/keymaps/rgb_default/keymap.c +++ b/keyboards/sofle/keymaps/rgb_default/keymap.c @@ -256,9 +256,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), /* NUMPAD * ,-----------------------------------------. ,-----------------------------------------. - * | trans| | | | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * | trans| | | | | | | |NumLck| | | | | * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | ` | | | | | | | | 7 | 8 | 9 | * | F12 | + * | ` | | | | | | | ^ | 7 | 8 | 9 | * | | * |------+------+------+------+------+------| |------+------+------+------+------+------| * | trans| | | | | |-------. ,-------| - | 4 | 5 | 6 | | | | * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| @@ -270,27 +270,27 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_NUMPAD] = LAYOUT( //,------------------------------------------------. ,---------------------------------------------------. - _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,XXXXXXX, XXXXXXX, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, KC_NLCK, XXXXXXX, XXXXXXX,XXXXXXX, XXXXXXX, //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------| - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_CIRC, KC_P7, KC_P8, KC_P9, KC_ASTR, _______, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_CIRC, KC_P7, KC_P8, KC_P9, KC_ASTR, XXXXXXX, //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------| XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, KC_P4, KC_P5, KC_P6, KC_EQL, KC_PIPE, //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------| - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,_______, _______,KC_PLUS, KC_P1, KC_P2, KC_P3, KC_SLSH, _______, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,_______, _______,KC_PLUS, KC_P1, KC_P2, KC_P3, KC_SLSH, _______, //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------| - _______, OSM(MOD_MEH), _______, _______, _______, _______, _______, KC_P0, KC_PDOT, _______ + _______, OSM(MOD_MEH), _______, _______, _______, _______, _______, KC_P0, KC_PDOT, _______ // \--------+--------+--------+---------+-------| |--------+---------+--------+---------+-------/ ), /* SWITCH * ,-----------------------------------------. ,-----------------------------------------. - * | cole | qwer | low |raise | adj |numpd | | | F7 | F8 | F9 | F10 | F11 | + * | | | | | | | | | | | | | | * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | ` | | | | | | | | 7 | 8 | 9 | * | F12 | + * | qwer | cole |col_dh| low | raise| adj | |numpad| | | | |RESET | * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | trans| | | | | |-------. ,-------| - | 4 | 5 | 6 | | | | + * | | | | | | |-------. ,-------| | | | | |EEP_RST| * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| - * | trans| | | | | |-------| |-------| + | 1 | 2 | 3 | \ | Shift| + * | SLEEP| | | | | |-------| |-------| | | | | | | * `-----------------------------------------/ / \ \-----------------------------------------' * | Bspc | WIN |LOWER | Enter| /Space / \Enter \ |SPACE | 0 | . | RAlt | * | | | | |/ / \ \ | | | | | @@ -301,13 +301,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //,------------------------------------------------. ,---------------------------------------------------. _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,XXXXXXX, XXXXXXX, //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------| - TO(0), TO(1), TO(2), TO(3), TO(4), TO(5), KC_NO, TO(7), KC_NO, KC_NO, KC_NO, RESET, + TO(0), TO(1), TO(2), TO(3), TO(4), TO(5), TO(6), KC_NO, KC_NO, KC_NO, KC_NO, RESET, //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------| - KC_NO, KC_NO, KC_BRIU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, EEP_RST, + KC_NO, KC_NO, KC_BRIU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, EEP_RST, //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------| - KC_SYSTEM_SLEEP,KC_NO,KC_BRID,KC_NO,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_SYSTEM_SLEEP,KC_NO,KC_NO,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------| - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO // \--------+--------+--------+---------+-------| |--------+---------+--------+---------+-------/ ), @@ -465,12 +465,13 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) { return rotation; } -void oled_task_user(void) { +bool oled_task_user(void) { if (is_keyboard_master()) { print_status_narrow(); } else { render_logo(); } + return false; } #endif diff --git a/keyboards/sofle/keymaps/via/keymap.c b/keyboards/sofle/keymaps/via/keymap.c index 2f917f42dc..b8bbe195fe 100644 --- a/keyboards/sofle/keymaps/via/keymap.c +++ b/keyboards/sofle/keymaps/via/keymap.c @@ -58,7 +58,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------/ / \ \-----------------------------------------' * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI | * | | | | |/ / \ \ | | | | | - * `----------------------------------' '------''---------------------------' + * `-----------------------------------' '------''---------------------------' */ [1] = LAYOUT( @@ -96,8 +96,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Esc | Ins | Pscr | Menu | | | | | PWrd | Up | NWrd | DLine| Bspc | * |------+------+------+------+------+------| |------+------+------+------+------+------| * | Tab | LAt | LCtl |LShift| | Caps |-------. ,-------| | Left | Down | Rigth| Del | Bspc | - * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| - * |Shift | Undo | Cut | Copy | Paste| |-------| |-------| | LStr | | LEnd | | Shift| + * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| + * |Shift | Undo | Cut | Copy | Paste| |--------| |-------| | LStr | | LEnd | | Shift| * `-----------------------------------------/ / \ \-----------------------------------------' * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI | * | | | | |/ / \ \ | | | | | diff --git a/keyboards/sofle/keymaps/via/oled.c b/keyboards/sofle/keymaps/via/oled.c index 8a230f0001..74f06cedc5 100644 --- a/keyboards/sofle/keymaps/via/oled.c +++ b/keyboards/sofle/keymaps/via/oled.c @@ -73,12 +73,13 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) { return rotation; } -void oled_task_user(void) { +bool oled_task_user(void) { if (is_keyboard_master()) { print_status_narrow(); } else { render_logo(); } + return false; } #endif |