From f417e42250629848d27743263c77c4d834024d91 Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Sun, 1 Oct 2023 15:44:40 -0700 Subject: [PATCH 01/87] Sofle pico first commit --- keyboards/sofle_v303/info.json | 104 ++++++ keyboards/sofle_v303/keymaps/default/config.h | 38 ++ keyboards/sofle_v303/keymaps/default/keymap.c | 161 +++++++++ .../sofle_v303/keymaps/default/readme.md | 57 +++ keyboards/sofle_v303/keymaps/default/rules.mk | 16 + keyboards/sofle_v303/keymaps/deluxe/config.h | 58 +++ keyboards/sofle_v303/keymaps/deluxe/keymap.c | 329 ++++++++++++++++++ keyboards/sofle_v303/keymaps/deluxe/readme.md | 43 +++ .../keymaps/deluxe/rgb_matrix_user.inc | 48 +++ keyboards/sofle_v303/keymaps/deluxe/rules.mk | 20 ++ .../sofle_v303/keymaps/jellytitan/config.h | 67 ++++ .../sofle_v303/keymaps/jellytitan/keymap.c | 326 +++++++++++++++++ .../sofle_v303/keymaps/jellytitan/readme.md | 28 ++ .../sofle_v303/keymaps/jellytitan/rules.mk | 26 ++ keyboards/sofle_v303/keymaps/via/config.h | 87 +++++ keyboards/sofle_v303/keymaps/via/keymap.c | 161 +++++++++ keyboards/sofle_v303/keymaps/via/rules.mk | 19 + keyboards/sofle_v303/readme.md | 41 +++ keyboards/sofle_v303/rev1/config.h | 37 ++ keyboards/sofle_v303/rev1/halconf.h | 5 + keyboards/sofle_v303/rev1/post_config.h | 15 + keyboards/sofle_v303/rev1/rev1.c | 82 +++++ keyboards/sofle_v303/rev1/rules.mk | 0 keyboards/sofle_v303/rules.mk | 17 + 24 files changed, 1785 insertions(+) create mode 100644 keyboards/sofle_v303/info.json create mode 100644 keyboards/sofle_v303/keymaps/default/config.h create mode 100644 keyboards/sofle_v303/keymaps/default/keymap.c create mode 100644 keyboards/sofle_v303/keymaps/default/readme.md create mode 100644 keyboards/sofle_v303/keymaps/default/rules.mk create mode 100644 keyboards/sofle_v303/keymaps/deluxe/config.h create mode 100644 keyboards/sofle_v303/keymaps/deluxe/keymap.c create mode 100644 keyboards/sofle_v303/keymaps/deluxe/readme.md create mode 100644 keyboards/sofle_v303/keymaps/deluxe/rgb_matrix_user.inc create mode 100644 keyboards/sofle_v303/keymaps/deluxe/rules.mk create mode 100644 keyboards/sofle_v303/keymaps/jellytitan/config.h create mode 100644 keyboards/sofle_v303/keymaps/jellytitan/keymap.c create mode 100644 keyboards/sofle_v303/keymaps/jellytitan/readme.md create mode 100644 keyboards/sofle_v303/keymaps/jellytitan/rules.mk create mode 100644 keyboards/sofle_v303/keymaps/via/config.h create mode 100644 keyboards/sofle_v303/keymaps/via/keymap.c create mode 100644 keyboards/sofle_v303/keymaps/via/rules.mk create mode 100644 keyboards/sofle_v303/readme.md create mode 100644 keyboards/sofle_v303/rev1/config.h create mode 100644 keyboards/sofle_v303/rev1/halconf.h create mode 100644 keyboards/sofle_v303/rev1/post_config.h create mode 100644 keyboards/sofle_v303/rev1/rev1.c create mode 100644 keyboards/sofle_v303/rev1/rules.mk create mode 100644 keyboards/sofle_v303/rules.mk diff --git a/keyboards/sofle_v303/info.json b/keyboards/sofle_v303/info.json new file mode 100644 index 00000000000..2c7557c8a87 --- /dev/null +++ b/keyboards/sofle_v303/info.json @@ -0,0 +1,104 @@ +{ + "manufacturer": "Ryan Neff", + "keyboard_name": "sofle_v303", + "url": "https://github.com/JellyTitan/sofle_v303", + "maintainer": "JellyTitan", + "usb": { + "vid": "0x4413", + "pid": "0x4A13", + "device_version": "1.0.0" + }, + "ws2812": { + "pin": "GP0", + }, + "rgb_matrix": { + "driver": "ws2812" + }, + "diode_direction": "COL2ROW", + "encoder": { + "rotary": [ + {"pin_a": "GP14", "pin_b": "GP15", "resolution": 4} + ] + }, + "split": { + "encoder": { + "right": { + "rotary": [ + {"pin_a": "GP14", "pin_b": "GP15", "resolution": 4} + ] + } + } + }, + "processor": "RP2040", + "bootloader": "rp2040", + "layouts": { + "LAYOUT_split4x6_r1": { + "layout": [ + {"label": "`", "matrix": [0, 0], "x": 0, "y": 0.7}, + {"label": "1", "matrix": [0, 1], "x": 1, "y": 0.7}, + {"label": "2", "matrix": [0, 2], "x": 2, "y": 0.3}, + {"label": "3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "4", "matrix": [0, 4], "x": 4, "y": 0.3}, + {"label": "5", "matrix": [0, 5], "x": 5, "y": 0.45}, + {"label": "6", "matrix": [5, 5], "x": 9, "y": 0.45}, + {"label": "7", "matrix": [5, 4], "x": 10, "y": 0.3}, + {"label": "8", "matrix": [5, 3], "x": 11, "y": 0}, + {"label": "9", "matrix": [5, 2], "x": 12, "y": 0.3}, + {"label": "0", "matrix": [5, 1], "x": 13, "y": 0.7}, + {"label": "-", "matrix": [5, 0], "x": 14, "y": 0.7}, + + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1.7}, + {"label": "Q", "matrix": [1, 1], "x": 1, "y": 1.7}, + {"label": "W", "matrix": [1, 2], "x": 2, "y": 1.3}, + {"label": "E", "matrix": [1, 3], "x": 3, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4, "y": 1.3}, + {"label": "T", "matrix": [1, 5], "x": 5, "y": 1.45}, + {"label": "Y", "matrix": [6, 5], "x": 9, "y": 1.45}, + {"label": "U", "matrix": [6, 4], "x": 10, "y": 1.3}, + {"label": "I", "matrix": [6, 3], "x": 11, "y": 1}, + {"label": "O", "matrix": [6, 2], "x": 12, "y": 1.3}, + {"label": "P", "matrix": [6, 1], "x": 13, "y": 1.7}, + {"label": "Enter", "matrix": [6, 0], "x": 14, "y": 1.7}, + + {"label": "Esc", "matrix": [2, 0], "x": 0, "y": 2.7}, + {"label": "A", "matrix": [2, 1], "x": 1, "y": 2.7}, + {"label": "S", "matrix": [2, 2], "x": 2, "y": 2.3}, + {"label": "D", "matrix": [2, 3], "x": 3, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4, "y": 2.3}, + {"label": "G", "matrix": [2, 5], "x": 5, "y": 2.45}, + {"label": "H", "matrix": [7, 5], "x": 9, "y": 2.45}, + {"label": "J", "matrix": [7, 4], "x": 10, "y": 2.3}, + {"label": "K", "matrix": [7, 3], "x": 11, "y": 2}, + {"label": "L", "matrix": [7, 2], "x": 12, "y": 2.3}, + {"label": ";", "matrix": [7, 1], "x": 13, "y": 2.7}, + {"label": "'", "matrix": [7, 0], "x": 14, "y": 2.7}, + + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3.7}, + {"label": "Z", "matrix": [3, 1], "x": 1, "y": 3.7}, + {"label": "X", "matrix": [3, 2], "x": 2, "y": 3.3}, + {"label": "C", "matrix": [3, 3], "x": 3, "y": 3}, + {"label": "V", "matrix": [3, 4], "x": 4, "y": 3.3}, + {"label": "B", "matrix": [3, 5], "x": 5, "y": 3.45}, + {"label": "Mute", "matrix": [4, 5], "x": 6.2, "y": 3.45}, + {"label": "XXX", "matrix": [9, 5], "x": 7.8, "y": 3.45}, + {"label": "N", "matrix": [8, 5], "x": 9, "y": 3.45}, + {"label": "M", "matrix": [8, 4], "x": 10, "y": 3.3}, + {"label": ",", "matrix": [8, 3], "x": 11, "y": 3}, + {"label": ".", "matrix": [8, 2], "x": 12, "y": 3.3}, + {"label": "/", "matrix": [8, 1], "x": 13, "y": 3.7}, + {"label": "Shift", "matrix": [8, 0], "x": 14, "y": 3.7}, + + {"label": "Ctrl", "matrix": [4, 0], "x": 2, "y": 4.3}, + {"label": "Win", "matrix": [4, 1], "x": 3, "y": 4}, + {"label": "Alt", "matrix": [4, 2], "x": 4, "y": 4.3}, + {"label": "Del", "matrix": [4, 3], "x": 5.1, "y": 4.5, "h": 1.5}, + {"label": "Spc", "matrix": [4, 4], "x": 6.1, "y": 4.5, "h": 1.5}, + {"label": "Shift", "matrix": [9, 3], "x": 7.9, "y": 4.5, "h": 1.5}, + {"label": "Bspc", "matrix": [9, 4], "x": 8.9, "y": 4.5, "h": 1.5}, + {"label": "Alt", "matrix": [9, 2], "x": 10, "y": 4.3}, + {"label": "Win", "matrix": [9, 1], "x": 11, "y": 4}, + {"label": "Ctrl", "matrix": [9, 0], "x": 12, "y": 4.3} + ] + } + } +} diff --git a/keyboards/sofle_v303/keymaps/default/config.h b/keyboards/sofle_v303/keymaps/default/config.h new file mode 100644 index 00000000000..43c47b9122a --- /dev/null +++ b/keyboards/sofle_v303/keymaps/default/config.h @@ -0,0 +1,38 @@ +// Copyright 2022 Dane Skalski (@Daneski13) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +/* - Encoder settings - */ +#ifdef ENCODER_ENABLE +# define ENCODER_RESOLUTION 4 +#endif +#ifdef ENCODER_MAP_ENABLE +// Key delay for encoders (necessary for some keycodes) +# define ENCODER_MAP_KEY_DELAY 10 +#endif + +/* + - RGB Stuff - + All effects can be found in the QMK docs: + https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects +*/ +#ifdef RGB_MATRIX_ENABLE + +// Default effect when EEPROM cleared +# define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_RAINBOW_MOVING_CHEVRON + +// Turns off RGB effects when there is no longer a USB connection +# define RGB_DISABLE_WHEN_USB_SUSPENDED + +// Key press reactive animations +# define SPLIT_TRANSPORT_MIRROR // Necessary setting for key press animations +# define RGB_MATRIX_KEYPRESSES // Enables key press effects +# define ENABLE_RGB_MATRIX_MULTISPLASH + +// Normal effects +# define ENABLE_RGB_MATRIX_CYCLE_SPIRAL +# define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON +# define ENABLE_RGB_MATRIX_PIXEL_RAIN + +#endif diff --git a/keyboards/sofle_v303/keymaps/default/keymap.c b/keyboards/sofle_v303/keymaps/default/keymap.c new file mode 100644 index 00000000000..0774462eccc --- /dev/null +++ b/keyboards/sofle_v303/keymaps/default/keymap.c @@ -0,0 +1,161 @@ +// Copyright 2022 Dane Skalski (@Daneski13) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H +// Layers enum +enum sofle_pico_layers { _QWERTY, _COLEMAK_DH, _SYMB, _EXT, _ADJUST }; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + /* + Traditional QWERTY + ┌───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┐ + │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ + ├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤ + │Tab│ Q │ W │ E │ R │ T │ │ Y │ U │ I │ O │ P │Ent│ + ├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤ + │Esc│ A │ S │ D │ F │ G │ │ H │ J │ K │ L │ ; │ ' │ + ├───┼───┼───┼───┼───┼───┼───┐ ┌───┼───┼───┼───┼───┼───┼───┤ + │Sft│ Z │ X │ C │ V │ B │Mut│ │XXX│ N │ M │ , │ . │ / │Sft│ + └───┴───┴───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┴───┴───┘ + ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ + │Ctr│Win│Alt│Del│Spc│ │Sft│Bsp│Alt│Win│Ctr│ + └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ + For macOS - GUI (cmd) and Alt (opt) swapped + */ + [_QWERTY] = LAYOUT_split4x6_r1( + KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_ENTER, + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SEMICOLON, KC_QUOTE, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MUTE, KC_NO, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, LT(_EXT, KC_DEL), KC_SPC, KC_RSFT, LT(_SYMB, KC_BSPC), KC_RALT, KC_RGUI, KC_RCTL + ), + + /* + Colemak-DH + ┌───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┐ + │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ + ├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤ + │Tab│ Q │ W │ F │ P │ B │ │ J │ L │ U │ Y │ ; │Ent│ + ├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤ + │Esc│ A │ R │ S │ T │ G │ │ M │ N │ E │ I │ O │ ' │ + ├───┼───┼───┼───┼───┼───┼───┐ ┌───┼───┼───┼───┼───┼───┼───┤ + │Sft│ Z │ X │ C │ D │ V │Mut│ │XXX│ K │ H │ , │ . │ / │Sft│ + └───┴───┴───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┴───┴───┘ + ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ + │Ctr│Win│Alt│Del│Spc│ │Sft│Bsp│Alt│Win│Ctr│ + └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ + For macOS - GUI (cmd) and Alt (opt) swapped + */ + [_COLEMAK_DH] = LAYOUT_split4x6_r1( + KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SEMICOLON, KC_ENTER, + KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, KC_QUOTE, + KC_LSFT, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_MUTE, KC_NO, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, LT(_EXT, KC_DEL), KC_SPC, KC_RSFT, LT(_SYMB, KC_BSPC), KC_RALT, KC_RGUI, KC_RCTL + ), + + /* + Symbols/Numpad Layer + ┌───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┐ + │F1 │F2 │F3 │F4 │F5 │F6 │ │F7 │F8 │F9 │F10│F11│F12│ + ├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤ + │Tab│ ! │ @ │ # │ $ │ % │ │ * │ 7 │ 8 │ 9 │ + │Ent│ + ├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤ + │ \ │ _ │ [ │ { │ ( │ ^ │ │ = │ 4 │ 5 │ 6 │ 0 │NUM│ + ├───┼───┼───┼───┼───┼───┼───┐ ┌───┼───┼───┼───┼───┼───┼───┤ + │___│ | │ ] │ } │ ) │ & │___│ │___│ / │ 1 │ 2 │ 3 │ - │___│ + └───┴───┴───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┴───┴───┘ + ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ + │___│___│___│___│___│ │___│___│___│___│___│ + └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ + */ + [_SYMB] = LAYOUT_split4x6_r1( + 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_TAB, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_PAST, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_ENTER, + KC_BSLS, KC_UNDS, KC_LBRC, KC_LCBR, KC_LPRN, KC_CIRC, KC_PEQL, KC_P4, KC_P5, KC_P6, KC_P0, KC_NUM, + _______, KC_PIPE, KC_RBRC, KC_RCBR, KC_RPRN, KC_AMPR, _______, _______, KC_PSLS, KC_P1, KC_P2, KC_P3, KC_PMNS, _______, + _______, _______, _______, MO(_ADJUST), _______, _______, _______, _______, _______, _______ + ), + + /* + Extension/Function Layer + ┌────┬────┬────┬────┬────┬────┐ ┌────┬────┬────┬────┬────┬────┐ + │ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ │ F7 │ F8 │ F9 │ F10│ F11│ F12│ + ├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤ + │ ⇤ │PGUP│End │ ↑ │Home│ │ │BRIU│ F7 │ F8 │ F9 │ F10│____│ + ├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤ + │Cps │PGDN│ ← │ ↓ │ → │ │ │BRID│ F4 │ F5 │ F6 │ F11│____│ + ├────┼────┼────┼────┼────┼────┼────┐ ┌────┼────┼────┼────┼────┼────┼────┤ + │____│ │ │ │ │ │____│ │ ▶⏸ │ │ F1 │ F2 │ F3 │ F12│____│ + └────┴────┴────┴────┴────┴────┴────┘ └────┴────┴────┴────┴────┴────┴────┘ + ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ + │___│___│___│___│___│ │___│___│___│___│___│ + └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ + */ + [_EXT] = LAYOUT_split4x6_r1( + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + S(KC_TAB), KC_PGUP, KC_END, KC_UP, KC_HOME, _______, KC_BRIU, KC_F7, KC_F8, KC_F9, KC_F10, _______, + KC_CAPS, KC_PGDN, KC_LEFT, KC_DOWN, KC_RIGHT, _______, KC_BRID, KC_F4, KC_F5, KC_F6, KC_F11, _______, + _______, _______, _______, _______, _______, _______, _______, KC_MPLY, _______, KC_F1, KC_F2, KC_F3, KC_F12, _______, + _______, _______, _______, _______, _______, _______, MO(_ADJUST), _______, _______, _______ + ), + + /* + Adjust Layer, Keyboard Settings + ┌────┬────┬────┬────┬────┬────┐ ┌────┬────┬────┬────┬────┬────┐ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ + ├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤ + │SpdU│HueU│SatU│ValU│Rnxt│ │ │ │EClr│Rbt │DBUG│BOOT│ │ + ├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤ + │SpdD│HueD│SatD│ValD│Rprv│RTgl│ │ │QWRT│COLE│ │ │ │ + ├────┼────┼────┼────┼────┼────┼────┐ ┌────┼────┼────┼────┼────┼────┼────┤ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + └────┴────┴────┴────┴────┴────┴────┘ └────┴────┴────┴────┴────┴────┴────┘ + ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ + │___│___│___│___│___│ │___│___│___│___│___│ + └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ + */ + [_ADJUST] = LAYOUT_split4x6_r1( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + RGB_SPI, RGB_HUI, RGB_SAI, RGB_VAI, RGB_MOD, KC_NO, KC_NO, EE_CLR, QK_RBT, DB_TOGG, QK_BOOT, KC_NO, + RGB_SPD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_RMOD, RGB_TOG, KC_NO, DF(_QWERTY), DF(_COLEMAK_DH), 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, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) + // clang-format on +}; + +/* + --- Rotary Encoder Mappings --- + + Encoder mappings go from leftmost encoder to rightmost encoder on the physical board. + index 0 is the the optional leftmost encoder on the left half, index 1 is the right encoder + on the left half (by the thumb keys), index 2 is the left encoder on the right half (by the + thumb keys), and index 3 is the optional rightmost encoder on the right half. + + If you are only using the 2 required encoders by the thumb keys, you only need to worry about + index 1 and index 2. + + Note that the keycode for counter-clockwise rotation (CCW) goes first and then the key for + clockwise (CW) within ENCODER_CCW_CW. +*/ +#ifdef ENCODER_MAP_ENABLE +// clang-format off + +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + // Base layer encoder mappings: + // index 0: mouse wheel up (CCW)/down (CW) index 1: volume down/up index 2: mouse wheel up/down index 3: mouse wheel left/right + [_QWERTY] = { ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN), ENCODER_CCW_CW(KC_WH_L, KC_WH_R) }, + [_COLEMAK_DH] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + + // Passes through to base layers + [_SYMB] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + // On the extension layer, the right side's left encoder by the thumb keys (mouse wheel up/down) is traded for media previous/next + [_EXT] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_MPRV, KC_MNXT), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + // Passes through + [_ADJUST] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + // clang-format on +}; + +#endif diff --git a/keyboards/sofle_v303/keymaps/default/readme.md b/keyboards/sofle_v303/keymaps/default/readme.md new file mode 100644 index 00000000000..a57a31642e9 --- /dev/null +++ b/keyboards/sofle_v303/keymaps/default/readme.md @@ -0,0 +1,57 @@ +# Default sofle_v303 Keymap + +This is the default layout for sofle_v303. For the most part it's a normal QWERTY layout. The exceptions being the thumb keys, rotary encoders, and lack of caps lock (which is replaced by escape). + +One of the biggest features of QMK is it brings layers into the mix which can give you access to even more keys. There are 4 layers: the default/base layer (QWERTY), a symbol layer, an extension layer, and an adjust layer. + +Layers are very similar to Shift on a normal keyboard, where "a" becomes "A" when holding down shift. With a custom layer, you can have "j" become "4" for example and make an entire side of the keyboard become a number pad. + +The [symbol layer](#symbol-layer) is accessed by holding down backspace, the [extension layer](#extension-layer) is accessed by holding down delete, and the [adjust layer](#adjust-layer) is accessed by holding down both delete and backspace. + +## Default Base Layer (QWERTY) + +Grey keys are rotary encoders (the ones on far left and far right are optional). Middle legend is pressing down the encoder, bottom left legend is counter-clockwise turn, and bottom right legend is clockwise turn of the encoder. + +Those arrows for the bottom legends on the encoders are mouse scroll directions. + +Red legends are the layer activated by holding down a key. + +![sofle_v303's QWERTY Layout](https://i.imgur.com/fXGt5Jh.png) + +## Symbol Layer + +This layer is accessed by holding down backspace on the base layer, thus that key is blacked out. + +On the symbol layer, the right side is a number pad, and the left side contains all the typical symbols (geared for programming). + +Holding down delete within the symbol layer will take you to the adjust layer. + +![sofle_v303's Symbol Layer](https://i.imgur.com/6F35Z4Wh.png) + +## Extension Layer + +This layer's theme is navigation/extras, its accessed by holding down delete on the base layer, thus that key is blacked out. + +On the extension layer, the right side is the function keys in a number-pad-esque layout with screen brightness up/down, and the left side has navigation keys and caps lock. Also, the rotary on the right side encoder becomes media controls. + +Holding down backspace within the extension layer will take you to the adjust layer. + +![sofle_v303's Extension Layer](https://i.imgur.com/FETcqkCh.png) + +## Adjust Layer + +This layer's theme is adjusting the keyboard's settings, it's accessed by holding down both delete and backspace on the base layer. + +On the adjust layer, the right side is the keyboard's settings: clear data, reboot, toggle debug mode, enter the bootloader, and change the base layer between QWERTY and [Colemak-DH](#colemak-dh). The left side adjusts the RGB lighting. + +![sofle_v303's Adjust Layer](https://i.imgur.com/fRsdlt3h.png) + +## Colemak-DH + +This keymap offers Colemak-DH as an alternative base layer to QWERTY. + +QWERTY is default when flashing your keyboard, but you can change it to Colemak-DH by selecting it's key on the adjust layer. + +If you've never heard of it, Colemak is a keyboard layout that was designed to be a more ergonomic, modern, efficient, and comfortable replacement to QWERTY. Colemak was designed to place the most common letters in english on the home row along with many of the most common bigrams together (two letters typed in a row). Colemak-DH is a variant of Colemak that moves D and H to beneath the index fingers rather than the home row since most people find it easier and faster to reach the keys that way rather than the middle of the home row. + +![sofle_v303's Colemak-DH Layout](https://i.imgur.com/8biZfn2h.png) diff --git a/keyboards/sofle_v303/keymaps/default/rules.mk b/keyboards/sofle_v303/keymaps/default/rules.mk new file mode 100644 index 00000000000..2304032cba5 --- /dev/null +++ b/keyboards/sofle_v303/keymaps/default/rules.mk @@ -0,0 +1,16 @@ +# Change from yes to no to disable features + +# Enables Audio control and System control Keycodes +EXTRAKEY_ENABLE = yes +# Enables Mousekeys +MOUSEKEY_ENABLE = yes +# Encoder Support +ENCODER_ENABLE = yes +# Use Enocoder Mapping +ENCODER_MAP_ENABLE = yes + +# Enables RGB Lighting Effects +RGB_MATRIX_ENABLE = yes + +# Allows use of `qmk console` for debugging +CONSOLE_ENABLE = yes diff --git a/keyboards/sofle_v303/keymaps/deluxe/config.h b/keyboards/sofle_v303/keymaps/deluxe/config.h new file mode 100644 index 00000000000..bec55fbd4c3 --- /dev/null +++ b/keyboards/sofle_v303/keymaps/deluxe/config.h @@ -0,0 +1,58 @@ +// Copyright 2022 Dane Skalski (@Daneski13) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +/* Indicator LEDs */ +// LED index for caps lock key on the extension layer +#define CAPS_LOCK_LED_INDEX 25 +// LED index for num lock key on the symbol layer +#define NUM_LOCK_LED_INDEX 62 +// LED index for key that sticks the adjust layer +#define ADJST_LED_INDEX 19 + +// Number of Layers that can be used by VIA. +// Change this if you want more layers +#define DYNAMIC_KEYMAP_LAYER_COUNT 6 + +/* - Encoder settings - */ +#ifdef ENCODER_ENABLE +# define ENCODER_RESOLUTION 4 +#endif +#ifdef ENCODER_MAP_ENABLE +// Key delay for encoders (necessary for some keycodes) +# define ENCODER_MAP_KEY_DELAY 10 +#endif + +/* + - RGB Stuff - + All effects can be found in the QMK docs: + https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects +*/ +#ifdef RGB_MATRIX_ENABLE + +// Allows the indicator LEDs to work +# define SPLIT_LED_STATE_ENABLE +# define SPLIT_LAYER_STATE_ENABLE + +// Default effect when EEPROM cleared +# define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_RAINBOW_MOVING_CHEVRON + +// Turns off RGB effects when there is no longer a USB connection +# define RGB_DISABLE_WHEN_USB_SUSPENDED + +// Throttling of RGB to increase keyboard responsiveness, set to 1.5x the default limits +# define RGB_MATRIX_LED_PROCESS_LIMIT (RGB_MATRIX_LED_COUNT + 4) / 6 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) +# define RGB_MATRIX_LED_FLUSH_LIMIT 24 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms), the default, is equivalent to limiting to 60fps + +// Key press reactive animations +# define SPLIT_TRANSPORT_MIRROR // Necessary setting for key press animations +# define RGB_MATRIX_KEYPRESSES // Enables key press effects +# define ENABLE_RGB_MATRIX_MULTISPLASH + +// Normal effects +# define ENABLE_RGB_MATRIX_CYCLE_SPIRAL +# define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON +# define ENABLE_RGB_MATRIX_PIXEL_RAIN + +#endif diff --git a/keyboards/sofle_v303/keymaps/deluxe/keymap.c b/keyboards/sofle_v303/keymaps/deluxe/keymap.c new file mode 100644 index 00000000000..7dbda9c0949 --- /dev/null +++ b/keyboards/sofle_v303/keymaps/deluxe/keymap.c @@ -0,0 +1,329 @@ +// Copyright 2022 Dane Skalski (@Daneski13) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +// Layers enum +enum sofle_pico_layers { _QWERTY, _COLEMAK_DH, _SYMB, _EXT, _ADJUST }; + +// Custom keycodes +enum custom_keycodes { + // Keycode for toggling between macOS and Windows key mappings + // Actually just an alias to the GUI and Alt swap Magic keycode + KC_OS = MAGIC_TOGGLE_ALT_GUI, + // Keycode for swapping the base layer between QWERTY and Colemak-DH + KC_TOGGLE_BASE = SAFE_RANGE, + // Keycode for redo action (Ctrl + Y on windows, Ctrl + Shift + Z on macOS) + KC_REDO, + // Keycodes for next/previous word + KC_WNXT, + KC_WPRV, + // Keycode for sticking/unsticking the adjust layer + KC_ADJST +}; + +/* LED indicators */ +bool is_caps_lock_enabled(void) { // Caps lock + return (host_keyboard_led_state().caps_lock); +} +bool is_num_lock_enabled(void) { // Num lock + return (host_keyboard_led_state().num_lock); +} +bool is_adjust_layer_sticky(layer_state_t state) { // Adjust layer sticky + // Checks if the state is equal to just the adjust layer being active. + // Doing it this way can leverage SPLIT_LAYER_STATE_ENABLE + return (state == (1UL << _ADJUST)) ? true : false; +} +// Indicator color based on the RGB Matrix mode +RGB indicator_color(void) { + RGB rgb; + // Normally the indicator color is white to stand out in the RGB rainbow. + // When using the custom RGB mode that already is white, the indicator color + // is green to stand out. + if (rgb_matrix_config.mode == RGB_MATRIX_CUSTOM_WHITE_UNDERGLOW_CYCLE) { + // Green + rgb.r = 0; + rgb.g = 255; + rgb.b = 0; + } else { + // White + rgb.r = 255; + rgb.g = 255; + rgb.b = 255; + } + return rgb; +} + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + /* + Traditional QWERTY + ┌───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┐ + │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ + ├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤ + │Tab│ Q │ W │ E │ R │ T │ │ Y │ U │ I │ O │ P │Ent│ + ├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤ + │Esc│ A │ S │ D │ F │ G │ │ H │ J │ K │ L │ ; │ ' │ + ├───┼───┼───┼───┼───┼───┼───┐ ┌───┼───┼───┼───┼───┼───┼───┤ + │Sft│ Z │ X │ C │ V │ B │Mut│ │▶⏸ │ N │ M │ , │ . │ / │Sft│ + └───┴───┴───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┴───┴───┘ + ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ + │Ctr│Win│Alt│Del│Spc│ │Sft│Bsp│Alt│Win│Ctr│ + └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ + For macOS - GUI (cmd) and Alt (opt) swapped + */ + [_QWERTY] = LAYOUT_split4x6_r1( + KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_ENTER, + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SEMICOLON, KC_QUOTE, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MUTE, KC_MPLY, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, LT(_EXT, KC_DEL), KC_SPC, KC_RSFT, LT(_SYMB, KC_BSPC), KC_RALT, KC_RGUI, KC_RCTL + ), + + /* + Colemak-DH + ┌───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┐ + │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ + ├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤ + │Tab│ Q │ W │ F │ P │ B │ │ J │ L │ U │ Y │ ; │Ent│ + ├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤ + │Esc│ A │ R │ S │ T │ G │ │ M │ N │ E │ I │ O │ ' │ + ├───┼───┼───┼───┼───┼───┼───┐ ┌───┼───┼───┼───┼───┼───┼───┤ + │Sft│ Z │ X │ C │ D │ V │Mut│ │▶⏸ │ K │ H │ , │ . │ / │Sft│ + └───┴───┴───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┴───┴───┘ + ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ + │Ctr│Win│Alt│Del│Spc│ │Sft│Bsp│Alt│Win│Ctr│ + └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ + For macOS - GUI/Win (cmd) and Alt (opt) swapped + */ + [_COLEMAK_DH] = LAYOUT_split4x6_r1( + KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SEMICOLON, KC_ENTER, + KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, KC_QUOTE, + KC_LSFT, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_MUTE, KC_MPLY, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, LT(_EXT, KC_DEL), KC_SPC, KC_RSFT, LT(_SYMB, KC_BSPC), KC_RALT, KC_RGUI, KC_RCTL + ), + + /* + Symbols/Numpad Layer + ┌───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┐ + │F1 │F2 │F3 │F4 │F5 │F6 │ │F7 │F8 │F9 │F10│F11│F12│ + ├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤ + │Tab│ ! │ @ │ # │ $ │ % │ │ * │ 7 │ 8 │ 9 │ + │Ent│ + ├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤ + │ \ │ _ │ [ │ { │ ( │ ^ │ │ = │ 4 │ 5 │ 6 │ 0 │NUM│ + ├───┼───┼───┼───┼───┼───┼───┐ ┌───┼───┼───┼───┼───┼───┼───┤ + │___│ | │ ] │ } │ ) │ & │___│ │___│ / │ 1 │ 2 │ 3 │ - │___│ + └───┴───┴───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┴───┴───┘ + ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ + │___│___│___│___│___│ │___│___│___│___│___│ + └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ + */ + [_SYMB] = LAYOUT_split4x6_r1( + 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_TAB, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_PAST, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_ENTER, + KC_BSLS, KC_UNDS, KC_LBRC, KC_LCBR, KC_LPRN, KC_CIRC, KC_PEQL, KC_P4, KC_P5, KC_P6, KC_P0, KC_NUM, + _______, KC_PIPE, KC_RBRC, KC_RCBR, KC_RPRN, KC_AMPR, _______, _______, KC_PSLS, KC_P1, KC_P2, KC_P3, KC_PMNS, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + /* + Extension/Function Layer + ┌────┬────┬────┬────┬────┬────┐ ┌────┬────┬────┬────┬────┬────┐ + │ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ │ F7 │ F8 │ F9 │ F10│ F11│ F12│ + ├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤ + │ ⇤ │PGUP│End │ ↑ │Home│ │ │BRIU│ F7 │ F8 │ F9 │ F10│____│ + ├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤ + │Cps │PGDN│ ← │ ↓ │ → │ │ │BRID│ F4 │ F5 │ F6 │ F11│____│ + ├────┼────┼────┼────┼────┼────┼────┐ ┌────┼────┼────┼────┼────┼────┼────┤ + │____│ │ │ │ │ │____│ │____│ │ F1 │ F2 │ F3 │ F12│____│ + └────┴────┴────┴────┴────┴────┴────┘ └────┴────┴────┴────┴────┴────┴────┘ + ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ + │___│___│___│___│___│ │___│___│___│___│___│ + └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ + */ + [_EXT] = LAYOUT_split4x6_r1( + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + S(KC_TAB), KC_PGUP, KC_END, KC_UP, KC_HOME, _______, KC_BRIU, KC_F7, KC_F8, KC_F9, KC_F10, _______, + KC_CAPS, KC_PGDN, KC_LEFT, KC_DOWN, KC_RIGHT, _______, KC_BRID, KC_F4, KC_F5, KC_F6, KC_F11, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_F1, KC_F2, KC_F3, KC_F12, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + /* + Adjust Layer, Keyboard Settings + ┌────┬────┬────┬────┬────┬────┐ ┌────┬────┬────┬────┬────┬────┐ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ + ├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤ + │SpdU│HueU│SatU│ValU│Rnxt│Stck│ │ │EClr│Rbt │DBUG│BOOT│ │ + ├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤ + │SpdD│HueD│SatD│ValD│Rprv│RTgl│ │ │LOUT│ OS │ │ │ │ + ├────┼────┼────┼────┼────┼────┼────┐ ┌────┼────┼────┼────┼────┼────┼────┤ + │ │ │ │ │ │ │RTgl│ │ │ │ │ │ │ │ │ + └────┴────┴────┴────┴────┴────┴────┘ └────┴────┴────┴────┴────┴────┴────┘ + ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ + │___│___│___│___│___│ │___│___│___│___│___│ + └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ + */ + [_ADJUST] = LAYOUT_split4x6_r1( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + RGB_SPI, RGB_HUI, RGB_SAI, RGB_VAI, RGB_MOD, KC_ADJST, KC_NO, EE_CLR, QK_RBT, DB_TOGG, QK_BOOT, KC_NO, + RGB_SPD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_RMOD, RGB_TOG, KC_NO, KC_TOGGLE_BASE, KC_OS, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_TOG, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) + // clang-format on +}; + +/* + --- Rotary Encoder Mappings --- + + Encoder mappings go from leftmost encoder to rightmost encoder on the physical board. + index 0 is the the optional leftmost encoder on the left half, index 1 is the right encoder + on the left half (by the thumb keys), index 2 is the left encoder on the right half (by the + thumb keys), and index 3 is the optional rightmost encoder on the right half. + + If you are only using the 2 required encoders by the thumb keys, you only need to worry about + index 1 and index 2. + + Note that the key to be sent for counter-clockwise rotation (CCW) goes first and then the key for + clockwise (CW) within ENCODER_CCW_CW. +*/ +#ifdef ENCODER_MAP_ENABLE +// clang-format off + +// Base layer encoder mappings: +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + // Base layers + // index 0: mouse wheel up (CCW)/down (CW) index 1: volume up/down index 2: media prev/next index 3: mouse wheel left/right + [_QWERTY] = { ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MPRV, KC_MNXT), ENCODER_CCW_CW(KC_WH_L, KC_WH_R) }, + [_COLEMAK_DH] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + + // Passes through to base layer + [_SYMB] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + // undo/redo previous word/next word + [_EXT] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_UNDO, KC_REDO), ENCODER_CCW_CW(KC_WPRV, KC_WNXT) }, + // RGB Speed down/up RGB previous mode/next mode RGB brightness down/up + [_ADJUST] = { ENCODER_CCW_CW(RGB_SPD, RGB_SPI), ENCODER_CCW_CW(RGB_RMOD, RGB_MOD), ENCODER_CCW_CW(RGB_VAD, RGB_VAI), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + // clang-format on +}; + +#endif + +// Called whenever a layer is changed +layer_state_t layer_state_set_user(layer_state_t state) { + // Make sure the adjust layer isn't sticky + if (is_adjust_layer_sticky(state)) return state; + + // When both the symbol and extension layer keys are held, the Adjust layer is active. + return update_tri_layer_state(state, _SYMB, _EXT, _ADJUST); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + // Toggle base layer + case KC_TOGGLE_BASE: + if (record->event.pressed) { + // Toggle swapping base layers between Colemak-DH and QWERTY. + // When base layer is QWERTY, swap to Colemak-DH and vice-versa + if (get_highest_layer(default_layer_state) == _QWERTY) { + default_layer_set(1UL << _COLEMAK_DH); + } else { + default_layer_set(1UL << _QWERTY); + } + } + return false; + + // Override undo in favor of the more modern undo action + case KC_UNDO: + if (record->event.pressed) { + // Use the correct modifier for macOS or Windows + uint16_t mod = keymap_config.swap_lalt_lgui ? KC_LGUI : KC_LCTL; + // Send Ctrl+Z/Cmd+Z + register_code(mod); + tap_code_delay(KC_Z, 10); + unregister_code(mod); + } + return false; + + // Redo action + case KC_REDO: + if (record->event.pressed) { + // Whether or not macOS mapping is enabled + if (keymap_config.swap_lalt_lgui) { + // macOS - Send Cmd+Shift+Z + register_code(KC_LGUI); + register_code(KC_LSFT); + tap_code_delay(KC_Z, 10); + unregister_code(KC_LSFT); + unregister_code(KC_LGUI); + } else { + // Windows - Send Ctrl+Y + register_code(KC_LCTL); + tap_code_delay(KC_Y, 10); + unregister_code(KC_LCTL); + } + } + return false; + + // Next word + case KC_WNXT: + if (record->event.pressed) { + // Use the correct modifier for macOS or Windows + uint16_t mod = keymap_config.swap_lalt_lgui ? KC_LALT : KC_LCTL; + // Send Ctrl+Right/Option+Right + register_code(mod); + tap_code_delay(KC_RGHT, 10); + unregister_code(mod); + } + return false; + + // Previous word + case KC_WPRV: + if (record->event.pressed) { + // Use the correct modifier for macOS or Windows + uint16_t mod = keymap_config.swap_lalt_lgui ? KC_LALT : KC_LCTL; + // Send Ctrl+Left/Option+Left + register_code(mod); + tap_code_delay(KC_LEFT, 10); + unregister_code(mod); + } + return false; + + // Stick / Unstick the adjust layer + case KC_ADJST: + if (record->event.pressed) { + // If currently not sticky, we want only the adjust layer to be active to make it stick. + // Otherwise we want the default layer, un-stick. + is_adjust_layer_sticky(layer_state) ? layer_state_set(default_layer_state) : layer_move(_ADJUST); + dprintf("Adjust layer is now %s\n", is_adjust_layer_sticky(layer_state) ? "stuck" : "un-stuck"); + } + return false; + default: + return true; + } +} + +/* Indicators (Caps Lock / Num Lock / Adjust Layer Sticky) */ +bool rgb_matrix_indicators_user(void) { + layer_state_t curr_layer_state = layer_state; + layer_state_t layer = get_highest_layer(curr_layer_state); + RGB rgb = indicator_color(); + + /* Only show the indicator on their respective layers */ + // Caps Lock is only on the extension layer + if (is_caps_lock_enabled() && layer == _EXT) { + rgb_matrix_set_color(CAPS_LOCK_LED_INDEX, rgb.r, rgb.g, rgb.b); + } + + // Num Lock is only on the symbol layer + if (is_num_lock_enabled() && layer == _SYMB) { + rgb_matrix_set_color(NUM_LOCK_LED_INDEX, rgb.r, rgb.g, rgb.b); + } + + // If the adjust layer is stuck/sticky, light it up. Don't need to care about + // checking the layer since it can only be active on the adjust layer anyway + if (is_adjust_layer_sticky(curr_layer_state)) rgb_matrix_set_color(ADJST_LED_INDEX, rgb.r, rgb.g, rgb.b); + + return false; +} diff --git a/keyboards/sofle_v303/keymaps/deluxe/readme.md b/keyboards/sofle_v303/keymaps/deluxe/readme.md new file mode 100644 index 00000000000..04c6695b7f3 --- /dev/null +++ b/keyboards/sofle_v303/keymaps/deluxe/readme.md @@ -0,0 +1,43 @@ +# Deluxe sofle_pico Keymap + +This is my personal keymap for sofle_pico at time of writing. It departs from the [default layout](../default/README.md) with the encoder mappings and some extra keycodes. This keymap also adds indicators when caps lock and num lock are enabled. When enabled, that key will become a static white (green on the white backlight mode) but only when the layer that respective key is on is active. + +I wanted that classic rainbow barf RGB effect for the underglow even if the per-key lighting is something else, so I added 2 custom RGB matrix animations: white per-key lighting with rainbow underglow and pixel rain with rainbow underglow. + +Here are some gifs of the animations: + +![White + Underglow Animation](https://i.imgur.com/2vCiZz0.gif) + +![Pixel Rain + Underglow Animation](https://i.imgur.com/f6t0OfD.gif) + +## Base Layers + +The base layers are the same as the default layout, except the right side's left encoder (by the thumb keys) is now media controls. Since I am using all 4 encoders it doesn't make sense to have 2 mouse scroll up/down, but for someone with just 2 encoders it may make sense to have media controls on a layer. + +QWERTY: + +![QWERTY Layer](https://i.imgur.com/vkS9Tceh.png) + +Colemak-DH: + +![Colemak-DH Layer](https://i.imgur.com/5YYgaUAh.png) + +## Symbol Layer + +Symbol layer is identical to the default layout. + +![Symbol Layer](https://i.imgur.com/6F35Z4Wh.png) + +## Extension Layer + +Encoders on the right side become undo/redo and scrolling horizontally by word. + +![Extension Layer](https://i.imgur.com/0VCStS8h.png) + +## Adjust Layer + +Pressing "Stick Adj Layer" will "stick" the adjust layer so you can use the rotary encoders for RGB settings rather than holding down both backspace and delete. To go back to the default layer, press that stick key again or press and release either Del or Backspace. When the adjust layer is currently "sticky" the sticky key will become the indicator color mentioned earlier. + +"Toggle Base" will toggle between QWERTY and Colemak-DH and toggle OS will toggle between macOS and Windows key-mappings (swapping WIN/Command with Alt/Option by the thumb keys and properly mapping redo/word scrolling). + +![Adjust layer](https://i.imgur.com/71ftNoNh.png) diff --git a/keyboards/sofle_v303/keymaps/deluxe/rgb_matrix_user.inc b/keyboards/sofle_v303/keymaps/deluxe/rgb_matrix_user.inc new file mode 100644 index 00000000000..3efe5067497 --- /dev/null +++ b/keyboards/sofle_v303/keymaps/deluxe/rgb_matrix_user.inc @@ -0,0 +1,48 @@ +// Copyright 2022 Dane Skalski (@Daneski13) +// SPDX-License-Identifier: GPL-2.0-or-later + +RGB_MATRIX_EFFECT(WHITE_UNDERGLOW_CYCLE) +RGB_MATRIX_EFFECT(PIXEL_RAIN_UNDERGLOW_CYCLE) + +#ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS + +// This is a modified version of the effect_runner_dx_dy_dist function from rgb_matrix +// that only applies the effect to the underglow LEDs of this keyboard +static bool underglow_effect_runner(effect_params_t* params, dx_dy_dist_f underglow_effect_func, bool backlight_white) { + RGB_MATRIX_USE_LIMITS(led_min, led_max); + + HSV hsv = rgb_matrix_config.hsv; + HSV white = {0, 0, hsv.v}; + RGB rgb = rgb_matrix_hsv_to_rgb(white); + uint8_t time = scale16by8(g_rgb_timer, rgb_matrix_config.speed / 2); + for (uint8_t i = led_min; i < led_max; i++) { + // Underglow LEDs are indicies 0 - 7 and 37 - 44 + if ((i <= 7) || (37 <= i && i <= 44)) { + // Apply the maths and colors to the underglow LEDs + RGB_MATRIX_TEST_LED_FLAGS(); + int16_t dx = g_led_config.point[i].x - k_rgb_matrix_center.x; + int16_t dy = g_led_config.point[i].y - k_rgb_matrix_center.y; + uint8_t dist = sqrt16(dx * dx + dy * dy); + RGB rgb = rgb_matrix_hsv_to_rgb(underglow_effect_func(hsv, dx, dy, dist, time)); + rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); + } else { + // Set the backlight to white if needed + if (!backlight_white) continue; + rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); + } + } + return rgb_matrix_check_finished_leds(led_max); +} + +// Solid white but the underglow is a rainbow spiral +static bool WHITE_UNDERGLOW_CYCLE(effect_params_t* params) { + return underglow_effect_runner(params, &CYCLE_SPIRAL_math, true); +} + +// Pixel rain effect but the underglow is a rainbow spiral +static bool PIXEL_RAIN_UNDERGLOW_CYCLE(effect_params_t* params) { + PIXEL_RAIN(params); + return underglow_effect_runner(params, &CYCLE_SPIRAL_math, false); +} + +#endif diff --git a/keyboards/sofle_v303/keymaps/deluxe/rules.mk b/keyboards/sofle_v303/keymaps/deluxe/rules.mk new file mode 100644 index 00000000000..b788c6155b4 --- /dev/null +++ b/keyboards/sofle_v303/keymaps/deluxe/rules.mk @@ -0,0 +1,20 @@ +# Enables Audio control and System control Keycodes +EXTRAKEY_ENABLE = yes +# Enables Mousekeys +MOUSEKEY_ENABLE = yes +# Encoder Support +ENCODER_ENABLE = yes +# Use Enocoder Mapping +ENCODER_MAP_ENABLE = yes + +# Enables RGB Lighting Effects +RGB_MATRIX_ENABLE = yes + +# Allows use of `qmk console` for debugging +CONSOLE_ENABLE = yes + +# Enables VIA +VIA_ENABLE = yes + +# Custom RGB Matrix Effect +RGB_MATRIX_CUSTOM_USER = yes diff --git a/keyboards/sofle_v303/keymaps/jellytitan/config.h b/keyboards/sofle_v303/keymaps/jellytitan/config.h new file mode 100644 index 00000000000..b70d30bd0aa --- /dev/null +++ b/keyboards/sofle_v303/keymaps/jellytitan/config.h @@ -0,0 +1,67 @@ +// Copyright 2023 Ryan Neff (@JellyTitan) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +/* - Encoder settings - */ +#ifdef ENCODER_MAP_ENABLE +// Key delay for encoders (necessary for some keycodes) +# define ENCODER_MAP_KEY_DELAY 10 +#endif + +#define SPLIT_HAPTIC_ENABLE +#define SOLENOID_DEFAULT_DWELL 25 +#define SOLENOID_MAX_DWELL 100 +#define SOLENOID_MIN_DWELL 4 +#define HAPTIC_OFF_IN_LOW_POWER 1 +// Prevents thumper on mods like shift/Ctrl/Alt +#define NO_HAPTIC_MOD +#define SOLENOID_PIN GP21 +/* Set tapdance speed */ +#define TAPPING_TERM 210 + +/* Allows for the setting of constant mouse speed levels. */ +/* Delay between pressing a movement key and cursor movement */ +#define MOUSEKEY_DELAY 10 +/* Time between cursor movements in milliseconds */ +#define MOUSEKEY_INTERVAL 16 +/* Step size */ +#define MOUSEKEY_MOVE_DELTA 8 +/* Maximum cursor speed at which acceleration stops */ +#define MOUSEKEY_MAX_SPEED 2 +/* Time until maximum cursor speed is reached */ +#define MOUSEKEY_TIME_TO_MAX 40 +/* Maximum number of scroll steps per scroll action */ +#define MOUSEKEY_WHEEL_MAX_SPEED 42 +/* Time until maximum scroll speed is reached */ +#define MOUSEKEY_WHEEL_TIME_TO_MAX 15 + +/* + - RGB Stuff - + All effects can be found in the QMK docs: + https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects +*/ +#ifdef RGB_MATRIX_ENABLE + +# define RGB_DISABLE_WHEN_USB_SUSPENDED +// Decrease decay of heatmap rgb effect +# define RGB_MATRIX_TYPING_HEATMAP_DECREASE_DELAY_MS 50 +// If you're setting colors per key, this is required. +# define SPLIT_LAYER_STATE_ENABLE + +// Default effect when EEPROM cleared +# define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_RAINBOW_MOVING_CHEVRON + +// Turns off RGB effects when there is no longer a USB connection +# define RGB_DISABLE_WHEN_USB_SUSPENDED + +// Key press reactive animations +# define SPLIT_TRANSPORT_MIRROR // Necessary setting for key press animations +# define RGB_MATRIX_KEYPRESSES // Enables key press effects +# define ENABLE_RGB_MATRIX_MULTISPLASH + +// Normal effects +# define ENABLE_RGB_MATRIX_CYCLE_SPIRAL +# define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON +# define ENABLE_RGB_MATRIX_PIXEL_RAIN +#endif diff --git a/keyboards/sofle_v303/keymaps/jellytitan/keymap.c b/keyboards/sofle_v303/keymaps/jellytitan/keymap.c new file mode 100644 index 00000000000..b862a2b909e --- /dev/null +++ b/keyboards/sofle_v303/keymaps/jellytitan/keymap.c @@ -0,0 +1,326 @@ + // Copyright 2022 Ryan Neff (@JellyTitan) + // SPDX-License-Identifier: GPL-2.0-or-later + + #include QMK_KEYBOARD_H + + enum custom_layers { _QWERTY, _LOWER, _RAISE }; + + /* Defines macros for use with the configurators "Any" key. (These are non-standard macros using the "Magnet" app on Mac). */ + /* Move active application right half. */ + #define KC_CSGRA LCTL(LSFT(LGUI(KC_RGHT))) + /* Move active application to left half. */ + #define KC_CSGLA LCTL(LSFT(LGUI(KC_LEFT))) + /* Maximize active application. */ + #define KC_MAXIM LCTL(LSFT(LGUI(KC_UP))) + /* Minimize active application. */ + #define KC_MINIM LCTL(LSFT(LGUI(KC_DOWN))) + + enum custom_keycodes { + QWERTY = SAFE_RANGE, + LOWER, + RAISE, + CMD_TAB_CW, + CMD_TAB_CCW, + }; + + /* Rotary encoder variables used to hold down Command (GUI) key while cycling through open programs. */ + bool is_cmd_tab_active = false; + uint16_t cmd_tab_timer = 0; + + /** + * Tap Dance declarations + */ + enum tapdances { + _TD_FIVE_ENTER, + }; + + /* Tapdance */ + #define TD5ENT TD(_TD_FIVE_ENTER) + + /** + * Tap Dance definitions + * + * To use this in the configurator, enter the name 'TD5ENT' in the "Any" key. + */ + tap_dance_action_t tap_dance_actions[] = { + /* Tap once for 5, twice for Enter. */ + [_TD_FIVE_ENTER] = ACTION_TAP_DANCE_DOUBLE(KC_5, KC_ENT), + }; + + /** + * Keymap. + * The rotary encoders are programmed manually below because the configurator does not support them yet. + */ + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + /* + QWERTY + ┌───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┐ + │ = │ 1 │ 2 │ 3 │ 4 │ 5 │ │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ + ├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤ + │Tab│ Q │ W │ E │ R │ T │ │ Y │ U │ I │ O │ P │ \ │ + ├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤ + │Esc│ A │ S │ D │ F │ G │ │ H │ J │ K │ L │ ; │ ' │ + ├───┼───┼───┼───┼───┼───┼───┐ ┌───┼───┼───┼───┼───┼───┼───┤ + │Sft│ Z │ X │ C │ V │ B │Min│ │Max│ N │ M │ , │ . │ / │Sft│ + └───┴───┴───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┴───┴───┘ + ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ + │ ← │ → │Esc│Spc│Bsp│ │Ent│Tab│Del│ ↓ │ ↑ │ + └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ + */ + [_QWERTY] = LAYOUT_split4x6_r1( + KC_EQL, KC_1, KC_2, KC_3, KC_4, TD5ENT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + LT(1,KC_DEL), LT(2,KC_A), LCTL_T(KC_S), KC_D, LGUI_T(KC_F), KC_G, KC_H, RGUI_T(KC_J), KC_K, RCTL_T(KC_L), LT(2,KC_SCLN), LT(1,KC_QUOT), + KC_LSFT, LALT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_MINIM, KC_MAXIM, KC_N, KC_M, KC_COMM, KC_DOT, RALT_T(KC_SLSH), KC_RSFT, + KC_LEFT, KC_RGHT, QK_GESC, KC_SPC, KC_BSPC, KC_ENT, KC_TAB, KC_DEL, KC_UP, KC_DOWN + ), + + /* + Symbols/Numpad Layer + ┌────┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬────┐ + │BOOT│F1 │F2 │F3 │F4 │F5 │ │F6 │F7 │F8 │F9 │F10│F11 │ + ├────┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼────┤ + │____│ ! │ @ │ { │ } │ | │ │QMK│ 7 │ 8 │ 9 │ * │F12 │ + ├────┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼────┤ + │____│ # │ $ │ ( │ ) │ ` │ │QMK│ 4 │ 5 │ 6 │ + │____│ + ├────┼───┼───┼───┼───┼───┼───┐ ┌───┼───┼───┼───┼───┼───┼────┤ + │____│ # │ $ │ [ │ ] │ ~ │___│ │___│QMK│ 1 │ 2 │ 3 │ / │BOOT│ + └────┴───┴───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┴───┴────┘ + ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ + │___│___│___│___│___│ │ 0 │ 0 │ 0 │ 0 │ 0 │ + └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ + */ + + [_LOWER] = LAYOUT_split4x6_r1( + QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, DT_PRNT, KC_7, KC_8, KC_9, KC_ASTR, KC_F12, + KC_TRNS, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRV, DT_UP, KC_4, KC_5, KC_6, KC_PPLS, KC_TRNS, + KC_TRNS, KC_HASH, KC_DLR, KC_LBRC, KC_RBRC, KC_TILD, KC_TRNS, KC_TRNS, DT_DOWN, KC_1, KC_2, KC_3, KC_PSLS, QK_BOOT, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P0, KC_P0, KC_P0, KC_P0, KC_P0 + ), + + /* + Navigation/Function Layer + ┌────┬────┬────┬────┬────┬────┐ ┌────┬────┬────┬────┬────┬────┐ + │RGB │ACL0│ACL1│ACL2│____│____│ │____│____│MOD │RMOD│HUI │HUD │ + ├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤ + │____│____│____│MS_U│____│____│ │____│BTN1│ ↑ │BTN2│SAI │SAD │ + ├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤ + │____│____│MS_L│MS_D│MS_R│____│ │____│ ← │ ↓ │ → │VAI │VAD │ + ├────┼────┼────┼────┼────┼────┼────┐ ┌────┼────┼────┼────┼────┼────┼────┤ + │____│____│____│____│____│____│____│ │____│____│____│____│____│SPI │SPD │ + └────┴────┴────┴────┴────┴────┴────┘ └────┴────┴────┴────┴────┴────┴────┘ + ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ + │___│___│___│___│QMK│ │QMK│___│___│___│___│ + └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ + */ + [_RAISE] = LAYOUT_split4x6_r1( + RGB_TOG, KC_ACL0, KC_ACL1, KC_ACL2, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, RGB_RMOD, RGB_HUI, RGB_HUD, + HF_TOGG, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_UP, KC_BTN2, RGB_SAI, RGB_SAD, + HF_DWLU, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, RGB_VAI, RGB_VAD, + HF_DWLD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPI, RGB_SPD, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_CSGLA, KC_CSGRA, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) + // clang-format on + }; + + bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + case CMD_TAB_CW: + if (record->event.pressed) { + if (!is_cmd_tab_active) { + is_cmd_tab_active = true; + register_code(KC_LGUI); + } + cmd_tab_timer = timer_read(); + register_code(KC_TAB); + } else { + unregister_code(KC_TAB); + } + break; + case CMD_TAB_CCW: + if (record->event.pressed) { + if (!is_cmd_tab_active) { + is_cmd_tab_active = true; + register_code(KC_LGUI); + } + cmd_tab_timer = timer_read(); + tap_code16(S(KC_TAB)); + } else { + unregister_code(KC_TAB); + } + break; + } + return true; + } + + /** + * Helper function for rotary encoder. + * + * If the timer has elapsed, the Command/Gui tab will be released. + * You can adjust the milliseconds to speed up the CMD key release. + */ + void matrix_scan_user(void) { + if (is_cmd_tab_active) { + if (timer_elapsed(cmd_tab_timer) > 900) { + unregister_code(KC_LGUI); + is_cmd_tab_active = false; + } + } + } + + /** + * Rotary Encoder. + * + * This can't be programmed through configurator. You must do it here. + * + * This uses the amazing "Encoder map" feature which replicates the normal keyswitch layer handling functionality, but with encoders. + * https://docs.qmk.fm/#/feature_encoders?id=encoder-map + * + * Uses a variant of the Super-alt-tab macro to switch between open applications on a mac. (Command-tab) + * https://docs.qmk.fm/#/feature_macros?id=super-alt%e2%86%aftab + */ + #ifdef ENCODER_MAP_ENABLE + const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + /* Left Hand */ /* Right Hand */ + /* Switch between tabs. (Control + Tab). */ /* Switch between open apps on Mac. (Command + Tab + timer logic) */ + [_QWERTY] = {ENCODER_CCW_CW(S(C(KC_TAB)), C(KC_TAB)), ENCODER_CCW_CW(CMD_TAB_CW, CMD_TAB_CCW)}, + /* Scrolls left & right. (Shift + Mouse Wheel Up). */ /* Scrolls up and down. (Page Down & Page Up - mouse wheel scroll incraments are too small) */ + [_LOWER] = {ENCODER_CCW_CW(S(KC_MS_WH_UP), S(KC_MS_WH_DOWN)), ENCODER_CCW_CW(KC_PGDN, KC_PGUP)}, + /* Selects adjacent words. (Command + Shift + Right Arrow). */ /* Jumps to end/start of line. Hold shift to select. (Gui + arrow). */ + [_RAISE] = {ENCODER_CCW_CW(C(S(KC_LEFT)), C(S(KC_RGHT))), ENCODER_CCW_CW(G(KC_LEFT), G(KC_RGHT))} + }; + #endif + + #ifdef OLED_ENABLE + + + oled_rotation_t oled_init_user(oled_rotation_t rotation) { + + if (is_keyboard_master()) { + if(is_keyboard_left()){ + return OLED_ROTATION_90; + } + else { + return OLED_ROTATION_270; + } + } else { + return OLED_ROTATION_90; + } + } + static void render_logo(void) { + static const char PROGMEM sofle_pico_logo[] = { + // 'sofle-pico-vector-logo-v3bw', 64x128px +0x00, 0x00, 0xf8, 0xfc, 0xdc, 0x8e, 0x0e, 0x0e, 0x1c, 0x1c, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xfe, 0xfe, 0x87, 0x03, 0x03, +0x9f, 0xfe, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x60, 0xe0, 0xe1, 0x83, 0x03, 0x07, 0x87, 0xce, 0xfe, 0xfc, 0x00, 0x00, 0x38, 0xfe, 0xff, +0x87, 0x03, 0x03, 0x03, 0x83, 0xef, 0xfe, 0xfc, 0x00, 0x00, 0xff, 0xff, 0xff, 0x03, 0x03, 0x03, +0x07, 0xff, 0xff, 0x00, 0x00, 0x30, 0xfe, 0xff, 0xbf, 0x1b, 0x1b, 0x1b, 0x9f, 0xff, 0x9e, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xe1, 0xe3, 0x63, 0x63, 0x63, 0xe3, 0xe3, 0xc1, 0x80, 0x00, 0x40, 0xe0, 0xe0, 0x41, +0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x00, 0x00, 0x00, +0x00, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xff, 0xff, 0x70, 0x70, 0x30, 0x38, 0x3f, 0x1f, 0x0f, 0x00, 0x00, 0xf8, 0xf8, 0x00, +0x00, 0x00, 0xe0, 0xf0, 0x38, 0x1c, 0x1c, 0x1c, 0x1c, 0x38, 0x00, 0x00, 0xe0, 0xf0, 0x78, 0x18, +0x1c, 0x1c, 0x1c, 0x38, 0xf8, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x00, +0x00, 0x00, 0x07, 0x0f, 0x1e, 0x1c, 0x18, 0x18, 0x1c, 0x1c, 0x00, 0x00, 0x07, 0x0f, 0x1e, 0x1c, +0x18, 0x18, 0x18, 0x1c, 0x0f, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0xe0, 0xf0, 0xf0, 0xf0, 0x78, 0x38, 0x38, 0x38, 0x1c, 0x3c, 0x1c, 0x1c, 0x1c, 0x38, 0x38, +0x38, 0x38, 0x78, 0x70, 0xf0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xf0, 0x78, 0x38, 0x3c, 0x1c, 0x1c, 0x1c, +0x1c, 0x0e, 0x0e, 0x0e, 0x1e, 0x0e, 0x1c, 0x1c, 0x1c, 0x38, 0xb8, 0xf8, 0xf8, 0xf0, 0x00, 0x00, +0x00, 0x03, 0x3f, 0x7f, 0xff, 0xf0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x02, 0x04, 0x04, 0x08, 0x18, +0x10, 0x30, 0x60, 0xc0, 0xc0, 0xc1, 0xff, 0x7f, 0x3e, 0x80, 0x80, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, +0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x80, 0x9e, 0xbf, 0x7f, 0xf1, 0xe0, 0xe0, 0x30, 0x10, 0x08, 0x0c, +0x04, 0x02, 0x02, 0x00, 0x01, 0x00, 0x00, 0x80, 0xe0, 0xf8, 0xfe, 0x7f, 0x1f, 0x03, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x07, 0x0e, 0x1e, 0x1c, 0x3c, 0x38, 0x38, 0x38, 0x38, +0x18, 0x9c, 0xce, 0xef, 0xff, 0xfd, 0xfe, 0x1e, 0x0f, 0x07, 0x03, 0x03, 0x01, 0x01, 0x01, 0x01, +0x01, 0x01, 0x01, 0x01, 0x03, 0x03, 0x07, 0x0f, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xce, 0x9c, 0x1c, +0x1c, 0x1c, 0x1c, 0x1c, 0x1e, 0x0f, 0x07, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf8, 0xfc, +0x3f, 0x1f, 0x1f, 0x1f, 0x3f, 0x7f, 0xff, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xf0, 0xfe, 0x3f, 0x1f, 0x0f, 0x0f, 0x1f, 0x3f, +0xfc, 0xf8, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x3f, 0x7d, +0xf0, 0xc0, 0xc0, 0x80, 0x80, 0xc0, 0xfb, 0xff, 0x3f, 0x3f, 0x1f, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, +0x0e, 0x0e, 0x0e, 0x0e, 0x1f, 0x1f, 0x3f, 0x3f, 0x7f, 0xff, 0xc0, 0xc0, 0xc0, 0xc0, 0xe0, 0xf0, +0x7f, 0x3f, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x01, 0x03, 0x03, 0x07, 0x0f, 0x1f, 0x3e, 0x38, 0x70, 0x60, 0xe0, 0xe0, 0xc0, 0xc0, 0xc0, +0xc0, 0xc0, 0xc0, 0xc0, 0xe0, 0xe0, 0x70, 0x78, 0x3c, 0x3f, 0x1f, 0x0f, 0x07, 0x03, 0x01, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0x80, 0x00, +0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x1c, 0x38, 0x0e, 0x00, 0x11, 0x30, 0x26, 0x3f, 0x19, +0x00, 0x20, 0x20, 0x00, 0x1f, 0x30, 0x20, 0x31, 0x1f, 0x10, 0x18, 0x1e, 0x1b, 0x3f, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xd8, 0xfc, 0x6c, 0xfc, 0xd8, 0x00, 0x80, 0x80, 0x18, 0x0c, 0xcc, 0x78, 0x10, 0x00, +0x80, 0xe0, 0xf0, 0xf8, 0x80, 0x80, 0x80, 0x00, 0x18, 0x8c, 0xcc, 0x78, 0x10, 0x00, 0xf8, 0x0c, +0x0c, 0x98, 0xf0, 0x00, 0x18, 0x8c, 0xcc, 0x78, 0x00, 0x00, 0x18, 0x0c, 0x6c, 0xf8, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, +0x00, 0x00, 0x01, 0x03, 0x02, 0xc3, 0xc1, 0x00, 0x00, 0xc0, 0x02, 0x03, 0x03, 0x02, 0x02, 0x00, +0x01, 0xc1, 0x01, 0xc3, 0x01, 0x00, 0x00, 0x00, 0x03, 0x03, 0xc3, 0xc2, 0xc0, 0xc0, 0xc1, 0x83, +0x83, 0x03, 0x80, 0x00, 0x03, 0x03, 0x03, 0x02, 0x00, 0x00, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xfe, 0xa2, 0xb2, 0xfe, 0x00, 0x3f, 0x07, 0x02, +0x3e, 0x00, 0xe0, 0x38, 0x0e, 0x01, 0x00, 0x20, 0x30, 0x1f, 0x00, 0x1c, 0x3e, 0x3a, 0x3e, 0x1c, +0x1f, 0x3f, 0x00, 0x3f, 0x00, 0x82, 0xce, 0x38, 0x0c, 0x06, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, +0x3e, 0x00, 0x3f, 0x02, 0x08, 0x3e, 0x22, 0x32, 0x3e, 0x00, 0x3e, 0x1e, 0x02, 0x3e, 0x00, 0x00 + }; + oled_write_raw_P(sofle_pico_logo, sizeof(sofle_pico_logo)); + } + + static void render_status(void) { + oled_write_P(PSTR("Sofle Pico\nv3.04\n~~~~~~~~~\n"), false); + uint8_t n = get_current_wpm(); + char wpm_counter[4]; + wpm_counter[3] = '\0'; + wpm_counter[2] = '0' + n % 10; + wpm_counter[1] = (n /= 10) % 10 ? '0' + (n) % 10 : (n / 10) % 10 ? '0' : ' '; + wpm_counter[0] = n / 10 ? '0' + n / 10 : ' '; + oled_write_P(PSTR("WPM:"), false); + oled_write(wpm_counter, false); + led_t led_state = host_keyboard_led_state(); + oled_write_P(PSTR("\nCaps: "), false); + oled_write_P(led_state.caps_lock ? PSTR("on ") : PSTR("off"), false); + oled_write_P(PSTR("\n"), false); + switch (get_highest_layer(layer_state)) { + case _QWERTY: + oled_write_P(PSTR("Qwerty Base"), false); + break; + case _LOWER: + oled_write_P(PSTR("Numbers &\nSymbols"), false); + break; + case _RAISE: + oled_write_P(PSTR("Navigation"), false); + break; + default: + oled_write_P(PSTR("Unknown"), false); + break; + } + } + + bool oled_task_user(void) { + if (is_keyboard_master()) { + render_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc) + } else { + render_logo(); + } + return false; + } + + #endif \ No newline at end of file diff --git a/keyboards/sofle_v303/keymaps/jellytitan/readme.md b/keyboards/sofle_v303/keymaps/jellytitan/readme.md new file mode 100644 index 00000000000..ff1d4b3f5fd --- /dev/null +++ b/keyboards/sofle_v303/keymaps/jellytitan/readme.md @@ -0,0 +1,28 @@ +# JellyTitan sofle_v303 Keymap +![jellytitan](https://i.imgur.com/JqGPWCn.png) + +This keymap is derived from Ergodox layouts and is adapted for the [sofle_v303](https://github.com/daneski13/sofle_v303). +It is notable for it's semi-complex programming examples that include the use of rotary encoders. + +Plenty of useful examples: +* Advanced knob programming! (Three-layer usage + clicks) +* Macros! (Fancy key combos tied to the rotary encoders) +* Tap Dance! (Double tap your '5' key for 'Enter') +* Dynamic Tapping term! (Dial in the double tap speed) + +The qwerty key layout is my adaptation of the Ergodox defaults. +If this is your first split keyboard, you probably want a different key layout. + +Flashing example for this keyboard: + +```bash +# For flashing the left half... +make sofle_v303:jellytitan:uf2-split-left +# or the qmk cli equivalent: +qmk flash -kb sofle_v303 --keymap jellytitan -bl uf2-split-left + +# For flashing the right half... +make sofle_v303:jellytitan:uf2-split-right +# or the qmk cli equivalent: +qmk flash -kb sofle_v303 --keymap jellytitan -bl uf2-split-right +``` diff --git a/keyboards/sofle_v303/keymaps/jellytitan/rules.mk b/keyboards/sofle_v303/keymaps/jellytitan/rules.mk new file mode 100644 index 00000000000..beb2af8dfeb --- /dev/null +++ b/keyboards/sofle_v303/keymaps/jellytitan/rules.mk @@ -0,0 +1,26 @@ +# Enables Audio control and System control Keycodes +EXTRAKEY_ENABLE = yes +# Enables Mousekeys +MOUSEKEY_ENABLE = yes +# Encoder Support +ENCODER_ENABLE = yes +# Use Enocoder Mapping +ENCODER_MAP_ENABLE = yes +# Turn on tap dance: +TAP_DANCE_ENABLE = yes +# Enables RGB Lighting Effects +RGB_MATRIX_ENABLE = yes +# Dynamic Tapping Term: +DYNAMIC_TAPPING_TERM_ENABLE = yes + + +BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +AUDIO_ENABLE = no # Audio output + +OLED_ENABLE = yes +# OLED_DRIVER = SSD1306 +WPM_ENABLE = yes + +LTO_ENABLE = yes \ No newline at end of file diff --git a/keyboards/sofle_v303/keymaps/via/config.h b/keyboards/sofle_v303/keymaps/via/config.h new file mode 100644 index 00000000000..c4ce821594d --- /dev/null +++ b/keyboards/sofle_v303/keymaps/via/config.h @@ -0,0 +1,87 @@ +// Copyright 2022 Dane Skalski (@Daneski13) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +// Number of Layers that can be used by VIA. +// Change this if you want more layers +#define DYNAMIC_KEYMAP_LAYER_COUNT 6 + +/* - Encoder settings - */ +#ifdef ENCODER_ENABLE +# define ENCODER_RESOLUTION 4 +#endif +#ifdef ENCODER_MAP_ENABLE +// Key delay for encoders (necessary for some keycodes) +# define ENCODER_MAP_KEY_DELAY 10 +#endif + +/* + - RGB - + Defines all effects so VIA can properly select them via index +*/ +#ifdef RGB_MATRIX_ENABLE + +// Default effect when EEPROM cleared +# define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_RAINBOW_MOVING_CHEVRON + +// Turns off RGB effects when there is no longer a USB connection +# define RGB_DISABLE_WHEN_USB_SUSPENDED + +// Allow keypress reactive animations +# define SPLIT_TRANSPORT_MIRROR // Necessary setting for key press animations on a split +# define RGB_MATRIX_KEYPRESSES // Enables key press effects + +// Allow frame buffer effects +# define RGB_MATRIX_FRAMEBUFFER_EFFECTS // Enables frame buffer effects + +// All effect definitions +# define ENABLE_RGB_MATRIX_ALPHAS_MODS // Enables RGB_MATRIX_ALPHAS_MODS +# define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN // Enables RGB_MATRIX_GRADIENT_UP_DOWN +# define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT // Enables RGB_MATRIX_GRADIENT_LEFT_RIGHT +# define ENABLE_RGB_MATRIX_BREATHING // Enables RGB_MATRIX_BREATHING +# define ENABLE_RGB_MATRIX_BAND_SAT // Enables RGB_MATRIX_BAND_SAT +# define ENABLE_RGB_MATRIX_BAND_VAL // Enables RGB_MATRIX_BAND_VAL +# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT // Enables RGB_MATRIX_BAND_PINWHEEL_SAT +# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL // Enables RGB_MATRIX_BAND_PINWHEEL_VAL +# define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT // Enables RGB_MATRIX_BAND_SPIRAL_SAT +# define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL // Enables RGB_MATRIX_BAND_SPIRAL_VAL +# define ENABLE_RGB_MATRIX_CYCLE_ALL // Enables RGB_MATRIX_CYCLE_ALL +# define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT // Enables RGB_MATRIX_CYCLE_LEFT_RIGHT +# define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN // Enables RGB_MATRIX_CYCLE_UP_DOWN +# define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON // Enables RGB_MATRIX_RAINBOW_MOVING_CHEVRON +# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN // Enables RGB_MATRIX_CYCLE_OUT_IN +# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL // Enables RGB_MATRIX_CYCLE_OUT_IN_DUAL +# define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL // Enables RGB_MATRIX_CYCLE_PINWHEEL +# define ENABLE_RGB_MATRIX_CYCLE_SPIRAL // Enables RGB_MATRIX_CYCLE_SPIRAL +# define ENABLE_RGB_MATRIX_DUAL_BEACON // Enables RGB_MATRIX_DUAL_BEACON +# define ENABLE_RGB_MATRIX_RAINBOW_BEACON // Enables RGB_MATRIX_RAINBOW_BEACON +# define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS // Enables RGB_MATRIX_RAINBOW_PINWHEELS +# define ENABLE_RGB_MATRIX_RAINDROPS // Enables RGB_MATRIX_RAINDROPS +# define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS // Enables RGB_MATRIX_JELLYBEAN_RAINDROPS +# define ENABLE_RGB_MATRIX_HUE_BREATHING // Enables RGB_MATRIX_HUE_BREATHING +# define ENABLE_RGB_MATRIX_HUE_PENDULUM // Enables RGB_MATRIX_HUE_PENDULUM +# define ENABLE_RGB_MATRIX_HUE_WAVE // Enables RGB_MATRIX_HUE_WAVE +# define ENABLE_RGB_MATRIX_PIXEL_FRACTAL // Enables RGB_MATRIX_PIXEL_FRACTAL +# define ENABLE_RGB_MATRIX_PIXEL_FLOW // Enables RGB_MATRIX_PIXEL_FLOW +# define ENABLE_RGB_MATRIX_PIXEL_RAIN // Enables RGB_MATRIX_PIXEL_RAIN + +// Following need RGB_MATRIX_FRAMEBUFFER_EFFECTS +# define ENABLE_RGB_MATRIX_TYPING_HEATMAP // Enables RGB_MATRIX_TYPING_HEATMAP +# define ENABLE_RGB_MATRIX_DIGITAL_RAIN // Enables RGB_MATRIX_DIGITAL_RAIN + +// Following need RGB_MATRIX_KEYPRESSES +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE // Enables RGB_MATRIX_SOLID_REACTIVE_SIMPLE +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE // Enables RGB_MATRIX_SOLID_REACTIVE +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE // Enables RGB_MATRIX_SOLID_REACTIVE_WIDE +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE // Enables RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS // Enables RGB_MATRIX_SOLID_REACTIVE_CROSS +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS // Enables RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS // Enables RGB_MATRIX_SOLID_REACTIVE_NEXUS +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS // Enables RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +# define ENABLE_RGB_MATRIX_SPLASH // Enables RGB_MATRIX_SPLASH +# define ENABLE_RGB_MATRIX_MULTISPLASH // Enables RGB_MATRIX_MULTISPLASH +# define ENABLE_RGB_MATRIX_SOLID_SPLASH // Enables RGB_MATRIX_SOLID_SPLASH +# define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH // Enables RGB_MATRIX_SOLID_MULTISPLASH + +#endif diff --git a/keyboards/sofle_v303/keymaps/via/keymap.c b/keyboards/sofle_v303/keymaps/via/keymap.c new file mode 100644 index 00000000000..95c4f9faf64 --- /dev/null +++ b/keyboards/sofle_v303/keymaps/via/keymap.c @@ -0,0 +1,161 @@ +// Copyright 2022 Dane Skalski (@Daneski13) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H +// Layers enum +enum sofle_pico_layers { _QWERTY, _COLEMAK_DH, _SYMB, _EXT, _ADJUST }; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + /* + Traditional QWERTY + ┌───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┐ + │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ + ├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤ + │Tab│ Q │ W │ E │ R │ T │ │ Y │ U │ I │ O │ P │Ent│ + ├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤ + │Esc│ A │ S │ D │ F │ G │ │ H │ J │ K │ L │ ; │ ' │ + ├───┼───┼───┼───┼───┼───┼───┐ ┌───┼───┼───┼───┼───┼───┼───┤ + │Sft│ Z │ X │ C │ V │ B │Mut│ │XXX│ N │ M │ , │ . │ / │Sft│ + └───┴───┴───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┴───┴───┘ + ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ + │Ctr│Win│Alt│Del│Spc│ │Sft│Bsp│Alt│Win│Ctr│ + └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ + For macOS - GUI (cmd) and Alt (opt) swapped + */ + [_QWERTY] = LAYOUT_split4x6_r1( + KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_ENTER, + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SEMICOLON, KC_QUOTE, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MUTE, KC_NO, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, LT(_EXT, KC_DEL), KC_SPC, KC_RSFT, LT(_SYMB, KC_BSPC), KC_RALT, KC_RGUI, KC_RCTL + ), + + /* + Colemak-DH + ┌───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┐ + │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ + ├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤ + │Tab│ Q │ W │ F │ P │ B │ │ J │ L │ U │ Y │ ; │Ent│ + ├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤ + │Esc│ A │ R │ S │ T │ G │ │ M │ N │ E │ I │ O │ ' │ + ├───┼───┼───┼───┼───┼───┼───┐ ┌───┼───┼───┼───┼───┼───┼───┤ + │Sft│ Z │ X │ C │ D │ V │Mut│ │XXX│ K │ H │ , │ . │ / │Sft│ + └───┴───┴───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┴───┴───┘ + ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ + │Ctr│Win│Alt│Del│Spc│ │Sft│Bsp│Alt│Win│Ctr│ + └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ + For macOS - GUI (cmd) and Alt (opt) swapped + */ + [_COLEMAK_DH] = LAYOUT_split4x6_r1( + KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SEMICOLON, KC_ENTER, + KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, KC_QUOTE, + KC_LSFT, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_MUTE, KC_NO, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, LT(_EXT, KC_DEL), KC_SPC, KC_RSFT, LT(_SYMB, KC_BSPC), KC_RALT, KC_RGUI, KC_RCTL + ), + + /* + Symbols/Numpad Layer + ┌───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┐ + │F1 │F2 │F3 │F4 │F5 │F6 │ │F7 │F8 │F9 │F10│F11│F12│ + ├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤ + │Tab│ ! │ @ │ # │ $ │ % │ │ * │ 7 │ 8 │ 9 │ + │Ent│ + ├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤ + │ \ │ _ │ [ │ { │ ( │ ^ │ │ = │ 4 │ 5 │ 6 │ 0 │NUM│ + ├───┼───┼───┼───┼───┼───┼───┐ ┌───┼───┼───┼───┼───┼───┼───┤ + │___│ | │ ] │ } │ ) │ & │___│ │___│ / │ 1 │ 2 │ 3 │ - │___│ + └───┴───┴───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┴───┴───┘ + ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ + │___│___│___│___│___│ │___│___│___│___│___│ + └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ + */ + [_SYMB] = LAYOUT_split4x6_r1( + 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_TAB, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_PAST, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_ENTER, + KC_BSLS, KC_UNDS, KC_LBRC, KC_LCBR, KC_LPRN, KC_CIRC, KC_PEQL, KC_P4, KC_P5, KC_P6, KC_P0, KC_NUM, + _______, KC_PIPE, KC_RBRC, KC_RCBR, KC_RPRN, KC_AMPR, _______, _______, KC_PSLS, KC_P1, KC_P2, KC_P3, KC_PMNS, _______, + _______, _______, _______, MO(_ADJUST), _______, _______, _______, _______, _______, _______ + ), + + /* + Extension/Function Layer + ┌────┬────┬────┬────┬────┬────┐ ┌────┬────┬────┬────┬────┬────┐ + │ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ │ F7 │ F8 │ F9 │ F10│ F11│ F12│ + ├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤ + │ ⇤ │PGUP│End │ ↑ │Home│ │ │BRIU│ F7 │ F8 │ F9 │ F10│____│ + ├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤ + │Cps │PGDN│ ← │ ↓ │ → │ │ │BRID│ F4 │ F5 │ F6 │ F11│____│ + ├────┼────┼────┼────┼────┼────┼────┐ ┌────┼────┼────┼────┼────┼────┼────┤ + │____│ │ │ │ │ │____│ │ ▶⏸ │ │ F1 │ F2 │ F3 │ F12│____│ + └────┴────┴────┴────┴────┴────┴────┘ └────┴────┴────┴────┴────┴────┴────┘ + ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ + │___│___│___│___│___│ │___│___│___│___│___│ + └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ + */ + [_EXT] = LAYOUT_split4x6_r1( + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + S(KC_TAB), KC_PGUP, KC_END, KC_UP, KC_HOME, _______, KC_BRIU, KC_F7, KC_F8, KC_F9, KC_F10, _______, + KC_CAPS, KC_PGDN, KC_LEFT, KC_DOWN, KC_RIGHT, _______, KC_BRID, KC_F4, KC_F5, KC_F6, KC_F11, _______, + _______, _______, _______, _______, _______, _______, _______, KC_MPLY, _______, KC_F1, KC_F2, KC_F3, KC_F12, _______, + _______, _______, _______, _______, _______, _______, MO(_ADJUST), _______, _______, _______ + ), + + /* + Adjust Layer, Keyboard Settings + ┌────┬────┬────┬────┬────┬────┐ ┌────┬────┬────┬────┬────┬────┐ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ + ├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤ + │SpdU│HueU│SatU│ValU│Rnxt│ │ │ │EClr│Rbt │DBUG│BOOT│ │ + ├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤ + │SpdD│HueD│SatD│ValD│Rprv│RTgl│ │ │QWRT│COLE│ │ │ │ + ├────┼────┼────┼────┼────┼────┼────┐ ┌────┼────┼────┼────┼────┼────┼────┤ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + └────┴────┴────┴────┴────┴────┴────┘ └────┴────┴────┴────┴────┴────┴────┘ + ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ + │___│___│___│___│___│ │___│___│___│___│___│ + └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ + */ + [_ADJUST] = LAYOUT_split4x6_r1( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + RGB_SPI, RGB_HUI, RGB_SAI, RGB_VAI, RGB_MOD, KC_NO, KC_NO, EE_CLR, QK_RBT, DB_TOGG, QK_BOOT, KC_NO, + RGB_SPD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_RMOD, RGB_TOG, KC_NO, DF(_QWERTY), DF(_COLEMAK_DH), 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, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) + // clang-format on +}; + +/* + --- Rotary Encoder Mappings --- + + Encoder mappings go from leftmost encoder to rightmost encoder on the physical board. + index 0 is the the optional leftmost encoder on the left half, index 1 is the right encoder + on the left half (by the thumb keys), index 2 is the left encoder on the right half (by the + thumb keys), and index 3 is the optional rightmost encoder on the right half. + + If you are only using the 2 required encoders by the thumb keys, you only need to worry about + index 1 and index 2. + + Note that the key to be sent for counter-clockwise rotation (CCW) goes first and then the key for + clockwise (CW) within ENCODER_CCW_CW. +*/ +#ifdef ENCODER_MAP_ENABLE +// clang-format off + +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + // Base layer encoder mappings: + // index 0: mouse wheel up (CCW)/down (CW) index 1: volume down/up index 2: mouse wheel up/down index 3: mouse wheel left/right + [_QWERTY] = { ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN), ENCODER_CCW_CW(KC_WH_L, KC_WH_R) }, + [_COLEMAK_DH] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + + // Passes through to base layers + [_SYMB] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + // On the extension layer, the right side's left encoder by the thumb keys (mouse wheel up/down) is traded for media previous/next + [_EXT] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_MPRV, KC_MNXT), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + // Passes through + [_ADJUST] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + // clang-format on +}; + +#endif diff --git a/keyboards/sofle_v303/keymaps/via/rules.mk b/keyboards/sofle_v303/keymaps/via/rules.mk new file mode 100644 index 00000000000..fd9cd98bcb4 --- /dev/null +++ b/keyboards/sofle_v303/keymaps/via/rules.mk @@ -0,0 +1,19 @@ +# Change from yes to no to disable features + +# Enables Audio control and System control Keycodes +EXTRAKEY_ENABLE = yes +# Enables Mousekeys +MOUSEKEY_ENABLE = yes +# Encoder Support +ENCODER_ENABLE = yes +# Use Enocoder Mapping +ENCODER_MAP_ENABLE = yes + +# Enables RGB Matrix +RGB_MATRIX_ENABLE = yes + +# Allows use of `qmk console` for debugging +# CONSOLE_ENABLE = yes + +# Enables VIA +VIA_ENABLE = yes diff --git a/keyboards/sofle_v303/readme.md b/keyboards/sofle_v303/readme.md new file mode 100644 index 00000000000..0081bb849fa --- /dev/null +++ b/keyboards/sofle_v303/readme.md @@ -0,0 +1,41 @@ +# sofle_v303 + +![sofle_v303](https://i.imgur.com/WzZaIgQh.jpg) + +sofle_v303 is a 60% Raspberry Pi Pico powered split keyboard boasting a 4x6 layout with an aggressive columnar stagger. It has 5 "thumb" keys on either side, support for 2-4 rotary encoders, and per-key RGB lighting. + +- Keyboard Maintainer: [Dane Skalski](https://github.com/Daneski13) +- Hardware Supported: sofle_v303 PCB, Raspberry Pi Pico +- Hardware Availability: [PCB, Case, Parts List](https://github.com/Daneski13/sofle_v303) + +Remember you have to flash both halves of the keyboard for it to work! + +Make example for this keyboard (after setting up your build environment): + + make sofle_v303:default + +Flashing example for this keyboard: + +```bash +# For flashing the left half... +make sofle_pico:default:uf2-split-left +# or the qmk cli equivalent: +qmk flash -kb sofle_pico --keymap default -bl uf2-split-left + +# For flashing the right half... +make sofle_pico:default:uf2-split-right +# or the qmk cli equivalent: +qmk flash -kb sofle_pico --keymap default -bl uf2-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). + +## Bootloader + +Enter the bootloader in 3 ways: + +- **Bootmagic reset** (works after you have flashed once): Hold down the top far corner key while plugging in the keyboard (`~` left half, `-` right half). This will also clear the EEPROM. +- **Physical reset button**: Hold the `BOOT` button on the Pico and press the `RST` button on the Pico, release the the `RST` button before the `BOOT` button. +- **Keycode in layout**: In the default layout, the `Bootloader` keycode is above home row pinky on the right side's adjust layer. + +Once you enter the bootloader, the keyboard will show up as a USB device on your computer, you could drag and drop a firmware file to flash it, but I recommend using the flash commands for the respective side. diff --git a/keyboards/sofle_v303/rev1/config.h b/keyboards/sofle_v303/rev1/config.h new file mode 100644 index 00000000000..7313dc80e5b --- /dev/null +++ b/keyboards/sofle_v303/rev1/config.h @@ -0,0 +1,37 @@ +// Copyright 2022 Dane Skalski (@Daneski13) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +// Electrical Wiring Stuff +#define MATRIX_ROW_PINS \ + { GP9, GP10, GP11, GP12, GP13 } +#define MATRIX_COL_PINS \ + { GP1, GP2, GP3, GP4, GP5, GP8 } +// #define DIODE_DIRECTION COL2ROW + +// Split Keyboard Stuff +#define EE_HANDS // Sets the keyboard’s handedness using EEPROM +#define SERIAL_USART_FULL_DUPLEX // Use full duplex communication (TRRS) +#define SERIAL_USART_TX_PIN GP16 // USART TX pin +#define SERIAL_USART_RX_PIN GP17 // USART RX pin +#define SERIAL_USART_PIN_SWAP // Swap TX and RX pins if keyboard is master halve. (Only available on some MCUs) + +/* RGB Stuff */ +#ifdef RGB_MATRIX_ENABLE + +# define RGB_MATRIX_LED_COUNT 58 +# define RGB_MATRIX_SPLIT \ + { 29, 29 } // 29 LEDs on each side + +#endif + +// I2C for OLEDs +#define I2C_DRIVER I2CD1 +#define I2C1_SDA_PIN GP6 +#define I2C1_SCL_PIN GP7 + +#ifdef OLED_ENABLE + #define OLED_DISPLAY_128X64 + #define OLED_TIMEOUT 30000 +#endif \ No newline at end of file diff --git a/keyboards/sofle_v303/rev1/halconf.h b/keyboards/sofle_v303/rev1/halconf.h new file mode 100644 index 00000000000..9b8ab5d0233 --- /dev/null +++ b/keyboards/sofle_v303/rev1/halconf.h @@ -0,0 +1,5 @@ +// Copyright 2022 jack (@waffle87) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once +#define HAL_USE_I2C TRUE +#include_next diff --git a/keyboards/sofle_v303/rev1/post_config.h b/keyboards/sofle_v303/rev1/post_config.h new file mode 100644 index 00000000000..bcc15a941a0 --- /dev/null +++ b/keyboards/sofle_v303/rev1/post_config.h @@ -0,0 +1,15 @@ +// Copyright 2022 Dane Skalski (@Daneski13) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +/* Default Bootmagic lite */ +// Top left for left side is default in core + +// Top right for right side +#ifndef BOOTMAGIC_LITE_ROW_RIGHT +# define BOOTMAGIC_LITE_ROW_RIGHT 5 +#endif +#ifndef BOOTMAGIC_LITE_COLUMN_RIGHT +# define BOOTMAGIC_LITE_COLUMN_RIGHT 0 +#endif diff --git a/keyboards/sofle_v303/rev1/rev1.c b/keyboards/sofle_v303/rev1/rev1.c new file mode 100644 index 00000000000..cf11e03a0f4 --- /dev/null +++ b/keyboards/sofle_v303/rev1/rev1.c @@ -0,0 +1,82 @@ +// Copyright 2022 Dane Skalski (@Daneski13) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" + +// Hand swap +#ifdef SWAP_HANDS_ENABLE +__attribute__ ((weak)) +const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { + // Left + {{0, 5}, {1, 5}, {2, 5}, {3, 5}, {4, 5}, {5, 5}, {6, 5}}, + {{0, 6}, {1, 6}, {2, 6}, {3, 6}, {4, 6}, {5, 6}, {6, 6}}, + {{0, 7}, {1, 7}, {2, 7}, {3, 7}, {4, 7}, {5, 7}, {6, 7}}, + {{0, 8}, {1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8}, {6, 8}}, + {{0, 9}, {1, 9}, {2, 9}, {3, 9}, {4, 9}, {5, 9}, {6, 9}}, + // Right + {{0, 0}, {1, 0}, {2, 0}, {3, 0}, {4, 0}, {5, 0}, {6, 0}}, + {{0, 1}, {1, 1}, {2, 1}, {3, 1}, {4, 1}, {5, 1}, {6, 1}}, + {{0, 2}, {1, 2}, {2, 2}, {3, 2}, {4, 2}, {5, 2}, {6, 2}}, + {{0, 3}, {1, 3}, {2, 3}, {3, 3}, {4, 3}, {5, 3}, {6, 3}}, + {{0, 4}, {1, 4}, {2, 4}, {3, 4}, {4, 4}, {5, 4}, {6, 4}} +}; +#endif + +/* RGB LED matrix */ +#ifdef RGB_MATRIX_ENABLE + +// clang-format off +led_config_t g_led_config = { + { + // Key Matrix to LED Index + // Left + { 28, 21, 20, 11, 10, 0 }, + { 27, 22, 19, 12, 9, 1 }, + { 26, 23, 18, 13, 8, 2 }, + { 25, 24, 17, 14, 7, 3 }, + { 16, 15, 6, 5, 4, NO_LED }, + + // Right + { 57, 50, 49, 40, 39, 29 }, + { 56, 51, 48, 41, 38, 30 }, + { 55, 52, 47, 42, 37, 31 }, + { 54, 53, 46, 43, 36, 32 }, + { 45, 44, 35, 34, 33, NO_LED } + }, { + // LED Index to Physical Position + // Left + { 95, 7 }, { 95, 21 }, { 95, 36 }, { 95, 50 }, { 115, 64 }, + { 95, 64 }, { 76, 62 }, { 76, 48 }, { 76, 33 }, { 76, 19 }, + { 76, 5 }, { 57, 3 }, { 57, 17 }, { 57, 31 }, { 57, 46 }, + { 57, 62 }, { 38, 64 }, { 38, 48 }, { 38, 33 }, { 38, 19 }, + { 38, 5 }, { 19, 7 }, { 19, 21 }, { 19, 36 }, { 19, 50 }, + { 0, 50 }, { 0, 36 }, { 0, 21 }, { 0, 7 }, + + // Right + { 129, 7 }, { 129, 21 }, { 129, 36 }, { 129, 50 }, { 119, 64 }, + { 129, 64 }, { 148, 62 }, { 148, 48 }, { 148, 33 }, { 148, 19 }, + { 148, 5 }, { 167, 3 }, { 167, 17 }, { 167, 31 }, { 167, 46 }, + { 167, 62 }, { 186, 64 }, { 186, 48 }, { 186, 33 }, { 186, 19 }, + { 186, 5 }, { 209, 7 }, { 209, 21 }, { 209, 36 }, { 209, 50 }, + { 224, 50 }, { 224, 36 }, { 224, 21 }, { 224, 7 } + }, { + // LED Index to Flag + // Left + 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, + 1, 1, 1, 1, + + // Right + 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, + 1, 1, 1, 1 + } +}; + +#endif diff --git a/keyboards/sofle_v303/rev1/rules.mk b/keyboards/sofle_v303/rev1/rules.mk new file mode 100644 index 00000000000..e69de29bb2d diff --git a/keyboards/sofle_v303/rules.mk b/keyboards/sofle_v303/rules.mk new file mode 100644 index 00000000000..b2879128543 --- /dev/null +++ b/keyboards/sofle_v303/rules.mk @@ -0,0 +1,17 @@ +# Split Keyboard Stuff +SPLIT_KEYBOARD = yes +SERIAL_DRIVER = vendor + +# Enable Bootmagic Lite +BOOTMAGIC_ENABLE = yes + +# Default Folder +DEFAULT_FOLDER = sofle_v303/rev1 + +# @todo: Move to json +# OLED_DRIVER = SSD1306 +OLED_TRANSPORT = i2c + +# Solenoid +# HAPTIC_ENABLE = yes +# HAPTIC_DRIVER += SOLENOID From 97e6b96808507810a5ee88ba530db6af90c52433 Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Sun, 1 Oct 2023 16:38:57 -0700 Subject: [PATCH 02/87] fixed sofle pico build process --- keyboards/sofle_v303/info.json | 1 + 1 file changed, 1 insertion(+) diff --git a/keyboards/sofle_v303/info.json b/keyboards/sofle_v303/info.json index 2c7557c8a87..39f7932be3c 100644 --- a/keyboards/sofle_v303/info.json +++ b/keyboards/sofle_v303/info.json @@ -10,6 +10,7 @@ }, "ws2812": { "pin": "GP0", + "driver": "vendor" }, "rgb_matrix": { "driver": "ws2812" From 1bc1ecd72103cfeb793ad7aeee2e657f79072957 Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Sun, 1 Oct 2023 16:58:07 -0700 Subject: [PATCH 03/87] Added RH trackball --- keyboards/sofle_v303/info.json | 66 ++++++++++++++++++- .../sofle_v303/keymaps/jellytitan/rules.mk | 3 +- 2 files changed, 66 insertions(+), 3 deletions(-) diff --git a/keyboards/sofle_v303/info.json b/keyboards/sofle_v303/info.json index 39f7932be3c..32aa0e64828 100644 --- a/keyboards/sofle_v303/info.json +++ b/keyboards/sofle_v303/info.json @@ -2,7 +2,7 @@ "manufacturer": "Ryan Neff", "keyboard_name": "sofle_v303", "url": "https://github.com/JellyTitan/sofle_v303", - "maintainer": "JellyTitan", + "maintainer": "Ryan Neff ", "usb": { "vid": "0x4413", "pid": "0x4A13", @@ -13,7 +13,69 @@ "driver": "vendor" }, "rgb_matrix": { - "driver": "ws2812" + "driver": "ws2812", + "split_count": [29, 29], + "layout": [ + { "flags": 4, "matrix": [0, 5], "x": 95, "y": 7 }, + { "flags": 4, "matrix": [1, 5], "x": 95, "y": 21 }, + { "flags": 4, "matrix": [2, 5], "x": 95, "y": 36 }, + { "flags": 4, "matrix": [3, 5], "x": 95, "y": 50 }, + { "flags": 4, "matrix": [4, 4], "x":115, "y": 64 }, + { "flags": 4, "matrix": [4, 3], "x": 95, "y": 64 }, + { "flags": 4, "matrix": [4, 2], "x": 76, "y": 62 }, + { "flags": 4, "matrix": [3, 4], "x": 76, "y": 48 }, + { "flags": 4, "matrix": [2, 4], "x": 76, "y": 33 }, + { "flags": 4, "matrix": [1, 4], "x": 76, "y": 19 }, + { "flags": 4, "matrix": [0, 4], "x": 76, "y": 5 }, + { "flags": 4, "matrix": [0, 3], "x": 57, "y": 3 }, + { "flags": 4, "matrix": [1, 3], "x": 57, "y": 17 }, + { "flags": 4, "matrix": [2, 3], "x": 57, "y": 31 }, + { "flags": 4, "matrix": [3, 3], "x": 57, "y": 46 }, + { "flags": 4, "matrix": [4, 1], "x": 57, "y": 62 }, + { "flags": 4, "matrix": [4, 0], "x": 38, "y": 64 }, + { "flags": 4, "matrix": [3, 2], "x": 38, "y": 48 }, + { "flags": 4, "matrix": [2, 2], "x": 38, "y": 33 }, + { "flags": 4, "matrix": [1, 2], "x": 38, "y": 19 }, + { "flags": 4, "matrix": [0, 2], "x": 38, "y": 5 }, + { "flags": 4, "matrix": [0, 1], "x": 19, "y": 7 }, + { "flags": 4, "matrix": [1, 1], "x": 19, "y": 21 }, + { "flags": 4, "matrix": [2, 1], "x": 19, "y": 36 }, + { "flags": 4, "matrix": [3, 1], "x": 19, "y": 50 }, + { "flags": 4, "matrix": [3, 0], "x": 0, "y": 50 }, + { "flags": 4, "matrix": [2, 0], "x": 0, "y": 36 }, + { "flags": 4, "matrix": [1, 0], "x": 0, "y": 21 }, + { "flags": 4, "matrix": [0, 0], "x": 0, "y": 7 }, + + { "flags": 4, "matrix": [5, 5], "x":129, "y": 7 }, + { "flags": 4, "matrix": [6, 5], "x":129, "y": 21 }, + { "flags": 4, "matrix": [7, 5], "x":129, "y": 36 }, + { "flags": 4, "matrix": [8, 5], "x":129, "y": 50 }, + { "flags": 4, "matrix": [9, 4], "x":119, "y": 64 }, + { "flags": 4, "matrix": [9, 3], "x":129, "y": 64 }, + { "flags": 4, "matrix": [9, 2], "x":148, "y": 62 }, + { "flags": 4, "matrix": [8, 4], "x":148, "y": 48 }, + { "flags": 4, "matrix": [7, 4], "x":148, "y": 33 }, + { "flags": 4, "matrix": [6, 4], "x":148, "y": 19 }, + { "flags": 4, "matrix": [5, 4], "x":148, "y": 5 }, + { "flags": 4, "matrix": [5, 3], "x":167, "y": 3 }, + { "flags": 4, "matrix": [6, 3], "x":167, "y": 17 }, + { "flags": 4, "matrix": [7, 3], "x":167, "y": 31 }, + { "flags": 4, "matrix": [8, 3], "x":167, "y": 46 }, + { "flags": 4, "matrix": [9, 1], "x":167, "y": 62 }, + { "flags": 4, "matrix": [9, 0], "x":186, "y": 64 }, + { "flags": 4, "matrix": [8, 2], "x":186, "y": 48 }, + { "flags": 4, "matrix": [7, 2], "x":186, "y": 33 }, + { "flags": 4, "matrix": [6, 2], "x":186, "y": 19 }, + { "flags": 4, "matrix": [5, 2], "x":186, "y": 5 }, + { "flags": 4, "matrix": [5, 1], "x":209, "y": 7 }, + { "flags": 4, "matrix": [6, 1], "x":209, "y": 21 }, + { "flags": 4, "matrix": [7, 1], "x":209, "y": 36 }, + { "flags": 4, "matrix": [8, 1], "x":209, "y": 50 }, + { "flags": 4, "matrix": [8, 0], "x":224, "y": 50 }, + { "flags": 4, "matrix": [7, 0], "x":224, "y": 36 }, + { "flags": 4, "matrix": [6, 0], "x":224, "y": 21 }, + { "flags": 4, "matrix": [5, 0], "x":224, "y": 7 } + ] }, "diode_direction": "COL2ROW", "encoder": { diff --git a/keyboards/sofle_v303/keymaps/jellytitan/rules.mk b/keyboards/sofle_v303/keymaps/jellytitan/rules.mk index beb2af8dfeb..f716a785edd 100644 --- a/keyboards/sofle_v303/keymaps/jellytitan/rules.mk +++ b/keyboards/sofle_v303/keymaps/jellytitan/rules.mk @@ -23,4 +23,5 @@ OLED_ENABLE = yes # OLED_DRIVER = SSD1306 WPM_ENABLE = yes -LTO_ENABLE = yes \ No newline at end of file +POINTING_DEVICE_ENABLE = yes +POINTING_DEVICE_DRIVER = pimoroni_trackball From 0b1495f2a04687fe1c234e8a8bd1b747e9710914 Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Mon, 2 Oct 2023 16:52:40 -0700 Subject: [PATCH 04/87] Fixed RH pimaroni config bug --- keyboards/sofle_v303/keymaps/jellytitan/config.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/keyboards/sofle_v303/keymaps/jellytitan/config.h b/keyboards/sofle_v303/keymaps/jellytitan/config.h index b70d30bd0aa..9ba447d360b 100644 --- a/keyboards/sofle_v303/keymaps/jellytitan/config.h +++ b/keyboards/sofle_v303/keymaps/jellytitan/config.h @@ -36,6 +36,10 @@ /* Time until maximum scroll speed is reached */ #define MOUSEKEY_WHEEL_TIME_TO_MAX 15 +#define POINTING_DEVICE_ROTATION_90 +#define SPLIT_POINTING_ENABLE +#define POINTING_DEVICE_RIGHT +#define POINTING_DEVICE_TASK_THROTTLE_MS 8 /* - RGB Stuff - All effects can be found in the QMK docs: From edd4f423377a63f4c11c6682dced930baadc498a Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Thu, 19 Oct 2023 11:47:55 -0700 Subject: [PATCH 05/87] Renamed sofle_v303 to sofle_pico Removed Deluxe keymap from Junco --- .../{sofle_v303 => sofle_pico}/info.json | 4 +- .../keymaps/default/config.h | 0 .../keymaps/default/keymap.c | 0 .../keymaps/default/readme.md | 14 +- .../keymaps/default/rules.mk | 0 .../keymaps/jellytitan/config.h | 0 .../keymaps/jellytitan/keymap.c | 0 .../keymaps/jellytitan/readme.md | 12 +- .../keymaps/jellytitan/rules.mk | 0 .../keymaps/via/config.h | 0 .../keymaps/via/keymap.c | 0 .../keymaps/via/rules.mk | 0 .../{sofle_v303 => sofle_pico}/readme.md | 12 +- .../{sofle_v303 => sofle_pico}/rev1/config.h | 0 .../{sofle_v303 => sofle_pico}/rev1/halconf.h | 0 .../rev1/post_config.h | 0 .../{sofle_v303 => sofle_pico}/rev1/rev1.c | 0 .../{sofle_v303 => sofle_pico}/rev1/rules.mk | 0 keyboards/{sofle_v303 => sofle_pico}/rules.mk | 2 +- keyboards/sofle_v303/keymaps/deluxe/config.h | 58 --- keyboards/sofle_v303/keymaps/deluxe/keymap.c | 329 ------------------ keyboards/sofle_v303/keymaps/deluxe/readme.md | 43 --- .../keymaps/deluxe/rgb_matrix_user.inc | 48 --- keyboards/sofle_v303/keymaps/deluxe/rules.mk | 20 -- 24 files changed, 22 insertions(+), 520 deletions(-) rename keyboards/{sofle_v303 => sofle_pico}/info.json (98%) rename keyboards/{sofle_v303 => sofle_pico}/keymaps/default/config.h (100%) rename keyboards/{sofle_v303 => sofle_pico}/keymaps/default/keymap.c (100%) rename keyboards/{sofle_v303 => sofle_pico}/keymaps/default/readme.md (88%) rename keyboards/{sofle_v303 => sofle_pico}/keymaps/default/rules.mk (100%) rename keyboards/{sofle_v303 => sofle_pico}/keymaps/jellytitan/config.h (100%) rename keyboards/{sofle_v303 => sofle_pico}/keymaps/jellytitan/keymap.c (100%) rename keyboards/{sofle_v303 => sofle_pico}/keymaps/jellytitan/readme.md (72%) rename keyboards/{sofle_v303 => sofle_pico}/keymaps/jellytitan/rules.mk (100%) rename keyboards/{sofle_v303 => sofle_pico}/keymaps/via/config.h (100%) rename keyboards/{sofle_v303 => sofle_pico}/keymaps/via/keymap.c (100%) rename keyboards/{sofle_v303 => sofle_pico}/keymaps/via/rules.mk (100%) rename keyboards/{sofle_v303 => sofle_pico}/readme.md (87%) rename keyboards/{sofle_v303 => sofle_pico}/rev1/config.h (100%) rename keyboards/{sofle_v303 => sofle_pico}/rev1/halconf.h (100%) rename keyboards/{sofle_v303 => sofle_pico}/rev1/post_config.h (100%) rename keyboards/{sofle_v303 => sofle_pico}/rev1/rev1.c (100%) rename keyboards/{sofle_v303 => sofle_pico}/rev1/rules.mk (100%) rename keyboards/{sofle_v303 => sofle_pico}/rules.mk (88%) delete mode 100644 keyboards/sofle_v303/keymaps/deluxe/config.h delete mode 100644 keyboards/sofle_v303/keymaps/deluxe/keymap.c delete mode 100644 keyboards/sofle_v303/keymaps/deluxe/readme.md delete mode 100644 keyboards/sofle_v303/keymaps/deluxe/rgb_matrix_user.inc delete mode 100644 keyboards/sofle_v303/keymaps/deluxe/rules.mk diff --git a/keyboards/sofle_v303/info.json b/keyboards/sofle_pico/info.json similarity index 98% rename from keyboards/sofle_v303/info.json rename to keyboards/sofle_pico/info.json index 32aa0e64828..e1782bfa93b 100644 --- a/keyboards/sofle_v303/info.json +++ b/keyboards/sofle_pico/info.json @@ -1,7 +1,7 @@ { "manufacturer": "Ryan Neff", - "keyboard_name": "sofle_v303", - "url": "https://github.com/JellyTitan/sofle_v303", + "keyboard_name": "sofle_pico", + "url": "https://github.com/JellyTitan/sofle_pico", "maintainer": "Ryan Neff ", "usb": { "vid": "0x4413", diff --git a/keyboards/sofle_v303/keymaps/default/config.h b/keyboards/sofle_pico/keymaps/default/config.h similarity index 100% rename from keyboards/sofle_v303/keymaps/default/config.h rename to keyboards/sofle_pico/keymaps/default/config.h diff --git a/keyboards/sofle_v303/keymaps/default/keymap.c b/keyboards/sofle_pico/keymaps/default/keymap.c similarity index 100% rename from keyboards/sofle_v303/keymaps/default/keymap.c rename to keyboards/sofle_pico/keymaps/default/keymap.c diff --git a/keyboards/sofle_v303/keymaps/default/readme.md b/keyboards/sofle_pico/keymaps/default/readme.md similarity index 88% rename from keyboards/sofle_v303/keymaps/default/readme.md rename to keyboards/sofle_pico/keymaps/default/readme.md index a57a31642e9..72a36eda8f2 100644 --- a/keyboards/sofle_v303/keymaps/default/readme.md +++ b/keyboards/sofle_pico/keymaps/default/readme.md @@ -1,6 +1,6 @@ -# Default sofle_v303 Keymap +# Default sofle_pico Keymap -This is the default layout for sofle_v303. For the most part it's a normal QWERTY layout. The exceptions being the thumb keys, rotary encoders, and lack of caps lock (which is replaced by escape). +This is the default layout for sofle_pico. For the most part it's a normal QWERTY layout. The exceptions being the thumb keys, rotary encoders, and lack of caps lock (which is replaced by escape). One of the biggest features of QMK is it brings layers into the mix which can give you access to even more keys. There are 4 layers: the default/base layer (QWERTY), a symbol layer, an extension layer, and an adjust layer. @@ -16,7 +16,7 @@ Those arrows for the bottom legends on the encoders are mouse scroll directions. Red legends are the layer activated by holding down a key. -![sofle_v303's QWERTY Layout](https://i.imgur.com/fXGt5Jh.png) +![sofle_pico's QWERTY Layout](https://i.imgur.com/fXGt5Jh.png) ## Symbol Layer @@ -26,7 +26,7 @@ On the symbol layer, the right side is a number pad, and the left side contains Holding down delete within the symbol layer will take you to the adjust layer. -![sofle_v303's Symbol Layer](https://i.imgur.com/6F35Z4Wh.png) +![sofle_pico's Symbol Layer](https://i.imgur.com/6F35Z4Wh.png) ## Extension Layer @@ -36,7 +36,7 @@ On the extension layer, the right side is the function keys in a number-pad-esqu Holding down backspace within the extension layer will take you to the adjust layer. -![sofle_v303's Extension Layer](https://i.imgur.com/FETcqkCh.png) +![sofle_pico's Extension Layer](https://i.imgur.com/FETcqkCh.png) ## Adjust Layer @@ -44,7 +44,7 @@ This layer's theme is adjusting the keyboard's settings, it's accessed by holdin On the adjust layer, the right side is the keyboard's settings: clear data, reboot, toggle debug mode, enter the bootloader, and change the base layer between QWERTY and [Colemak-DH](#colemak-dh). The left side adjusts the RGB lighting. -![sofle_v303's Adjust Layer](https://i.imgur.com/fRsdlt3h.png) +![sofle_pico's Adjust Layer](https://i.imgur.com/fRsdlt3h.png) ## Colemak-DH @@ -54,4 +54,4 @@ QWERTY is default when flashing your keyboard, but you can change it to Colemak- If you've never heard of it, Colemak is a keyboard layout that was designed to be a more ergonomic, modern, efficient, and comfortable replacement to QWERTY. Colemak was designed to place the most common letters in english on the home row along with many of the most common bigrams together (two letters typed in a row). Colemak-DH is a variant of Colemak that moves D and H to beneath the index fingers rather than the home row since most people find it easier and faster to reach the keys that way rather than the middle of the home row. -![sofle_v303's Colemak-DH Layout](https://i.imgur.com/8biZfn2h.png) +![sofle_pico's Colemak-DH Layout](https://i.imgur.com/8biZfn2h.png) diff --git a/keyboards/sofle_v303/keymaps/default/rules.mk b/keyboards/sofle_pico/keymaps/default/rules.mk similarity index 100% rename from keyboards/sofle_v303/keymaps/default/rules.mk rename to keyboards/sofle_pico/keymaps/default/rules.mk diff --git a/keyboards/sofle_v303/keymaps/jellytitan/config.h b/keyboards/sofle_pico/keymaps/jellytitan/config.h similarity index 100% rename from keyboards/sofle_v303/keymaps/jellytitan/config.h rename to keyboards/sofle_pico/keymaps/jellytitan/config.h diff --git a/keyboards/sofle_v303/keymaps/jellytitan/keymap.c b/keyboards/sofle_pico/keymaps/jellytitan/keymap.c similarity index 100% rename from keyboards/sofle_v303/keymaps/jellytitan/keymap.c rename to keyboards/sofle_pico/keymaps/jellytitan/keymap.c diff --git a/keyboards/sofle_v303/keymaps/jellytitan/readme.md b/keyboards/sofle_pico/keymaps/jellytitan/readme.md similarity index 72% rename from keyboards/sofle_v303/keymaps/jellytitan/readme.md rename to keyboards/sofle_pico/keymaps/jellytitan/readme.md index ff1d4b3f5fd..bbdb7170ecd 100644 --- a/keyboards/sofle_v303/keymaps/jellytitan/readme.md +++ b/keyboards/sofle_pico/keymaps/jellytitan/readme.md @@ -1,7 +1,7 @@ -# JellyTitan sofle_v303 Keymap +# JellyTitan sofle_pico Keymap ![jellytitan](https://i.imgur.com/JqGPWCn.png) -This keymap is derived from Ergodox layouts and is adapted for the [sofle_v303](https://github.com/daneski13/sofle_v303). +This keymap is derived from Ergodox layouts and is adapted for the [sofle_pico](https://github.com/daneski13/sofle_pico). It is notable for it's semi-complex programming examples that include the use of rotary encoders. Plenty of useful examples: @@ -17,12 +17,12 @@ Flashing example for this keyboard: ```bash # For flashing the left half... -make sofle_v303:jellytitan:uf2-split-left +make sofle_pico:jellytitan:uf2-split-left # or the qmk cli equivalent: -qmk flash -kb sofle_v303 --keymap jellytitan -bl uf2-split-left +qmk flash -kb sofle_pico --keymap jellytitan -bl uf2-split-left # For flashing the right half... -make sofle_v303:jellytitan:uf2-split-right +make sofle_pico:jellytitan:uf2-split-right # or the qmk cli equivalent: -qmk flash -kb sofle_v303 --keymap jellytitan -bl uf2-split-right +qmk flash -kb sofle_pico --keymap jellytitan -bl uf2-split-right ``` diff --git a/keyboards/sofle_v303/keymaps/jellytitan/rules.mk b/keyboards/sofle_pico/keymaps/jellytitan/rules.mk similarity index 100% rename from keyboards/sofle_v303/keymaps/jellytitan/rules.mk rename to keyboards/sofle_pico/keymaps/jellytitan/rules.mk diff --git a/keyboards/sofle_v303/keymaps/via/config.h b/keyboards/sofle_pico/keymaps/via/config.h similarity index 100% rename from keyboards/sofle_v303/keymaps/via/config.h rename to keyboards/sofle_pico/keymaps/via/config.h diff --git a/keyboards/sofle_v303/keymaps/via/keymap.c b/keyboards/sofle_pico/keymaps/via/keymap.c similarity index 100% rename from keyboards/sofle_v303/keymaps/via/keymap.c rename to keyboards/sofle_pico/keymaps/via/keymap.c diff --git a/keyboards/sofle_v303/keymaps/via/rules.mk b/keyboards/sofle_pico/keymaps/via/rules.mk similarity index 100% rename from keyboards/sofle_v303/keymaps/via/rules.mk rename to keyboards/sofle_pico/keymaps/via/rules.mk diff --git a/keyboards/sofle_v303/readme.md b/keyboards/sofle_pico/readme.md similarity index 87% rename from keyboards/sofle_v303/readme.md rename to keyboards/sofle_pico/readme.md index 0081bb849fa..3c7ab99dd8f 100644 --- a/keyboards/sofle_v303/readme.md +++ b/keyboards/sofle_pico/readme.md @@ -1,18 +1,18 @@ -# sofle_v303 +# sofle_pico -![sofle_v303](https://i.imgur.com/WzZaIgQh.jpg) +![sofle_pico](https://i.imgur.com/WzZaIgQh.jpg) -sofle_v303 is a 60% Raspberry Pi Pico powered split keyboard boasting a 4x6 layout with an aggressive columnar stagger. It has 5 "thumb" keys on either side, support for 2-4 rotary encoders, and per-key RGB lighting. +sofle_pico is a 60% Raspberry Pi Pico powered split keyboard boasting a 4x6 layout with an aggressive columnar stagger. It has 5 "thumb" keys on either side, support for 2-4 rotary encoders, and per-key RGB lighting. - Keyboard Maintainer: [Dane Skalski](https://github.com/Daneski13) -- Hardware Supported: sofle_v303 PCB, Raspberry Pi Pico -- Hardware Availability: [PCB, Case, Parts List](https://github.com/Daneski13/sofle_v303) +- Hardware Supported: sofle_pico PCB, Raspberry Pi Pico +- Hardware Availability: [PCB, Case, Parts List](https://github.com/Daneski13/sofle_pico) Remember you have to flash both halves of the keyboard for it to work! Make example for this keyboard (after setting up your build environment): - make sofle_v303:default + make sofle_pico:default Flashing example for this keyboard: diff --git a/keyboards/sofle_v303/rev1/config.h b/keyboards/sofle_pico/rev1/config.h similarity index 100% rename from keyboards/sofle_v303/rev1/config.h rename to keyboards/sofle_pico/rev1/config.h diff --git a/keyboards/sofle_v303/rev1/halconf.h b/keyboards/sofle_pico/rev1/halconf.h similarity index 100% rename from keyboards/sofle_v303/rev1/halconf.h rename to keyboards/sofle_pico/rev1/halconf.h diff --git a/keyboards/sofle_v303/rev1/post_config.h b/keyboards/sofle_pico/rev1/post_config.h similarity index 100% rename from keyboards/sofle_v303/rev1/post_config.h rename to keyboards/sofle_pico/rev1/post_config.h diff --git a/keyboards/sofle_v303/rev1/rev1.c b/keyboards/sofle_pico/rev1/rev1.c similarity index 100% rename from keyboards/sofle_v303/rev1/rev1.c rename to keyboards/sofle_pico/rev1/rev1.c diff --git a/keyboards/sofle_v303/rev1/rules.mk b/keyboards/sofle_pico/rev1/rules.mk similarity index 100% rename from keyboards/sofle_v303/rev1/rules.mk rename to keyboards/sofle_pico/rev1/rules.mk diff --git a/keyboards/sofle_v303/rules.mk b/keyboards/sofle_pico/rules.mk similarity index 88% rename from keyboards/sofle_v303/rules.mk rename to keyboards/sofle_pico/rules.mk index b2879128543..af65d89c739 100644 --- a/keyboards/sofle_v303/rules.mk +++ b/keyboards/sofle_pico/rules.mk @@ -6,7 +6,7 @@ SERIAL_DRIVER = vendor BOOTMAGIC_ENABLE = yes # Default Folder -DEFAULT_FOLDER = sofle_v303/rev1 +DEFAULT_FOLDER = sofle_pico/rev1 # @todo: Move to json # OLED_DRIVER = SSD1306 diff --git a/keyboards/sofle_v303/keymaps/deluxe/config.h b/keyboards/sofle_v303/keymaps/deluxe/config.h deleted file mode 100644 index bec55fbd4c3..00000000000 --- a/keyboards/sofle_v303/keymaps/deluxe/config.h +++ /dev/null @@ -1,58 +0,0 @@ -// Copyright 2022 Dane Skalski (@Daneski13) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -/* Indicator LEDs */ -// LED index for caps lock key on the extension layer -#define CAPS_LOCK_LED_INDEX 25 -// LED index for num lock key on the symbol layer -#define NUM_LOCK_LED_INDEX 62 -// LED index for key that sticks the adjust layer -#define ADJST_LED_INDEX 19 - -// Number of Layers that can be used by VIA. -// Change this if you want more layers -#define DYNAMIC_KEYMAP_LAYER_COUNT 6 - -/* - Encoder settings - */ -#ifdef ENCODER_ENABLE -# define ENCODER_RESOLUTION 4 -#endif -#ifdef ENCODER_MAP_ENABLE -// Key delay for encoders (necessary for some keycodes) -# define ENCODER_MAP_KEY_DELAY 10 -#endif - -/* - - RGB Stuff - - All effects can be found in the QMK docs: - https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects -*/ -#ifdef RGB_MATRIX_ENABLE - -// Allows the indicator LEDs to work -# define SPLIT_LED_STATE_ENABLE -# define SPLIT_LAYER_STATE_ENABLE - -// Default effect when EEPROM cleared -# define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_RAINBOW_MOVING_CHEVRON - -// Turns off RGB effects when there is no longer a USB connection -# define RGB_DISABLE_WHEN_USB_SUSPENDED - -// Throttling of RGB to increase keyboard responsiveness, set to 1.5x the default limits -# define RGB_MATRIX_LED_PROCESS_LIMIT (RGB_MATRIX_LED_COUNT + 4) / 6 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) -# define RGB_MATRIX_LED_FLUSH_LIMIT 24 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms), the default, is equivalent to limiting to 60fps - -// Key press reactive animations -# define SPLIT_TRANSPORT_MIRROR // Necessary setting for key press animations -# define RGB_MATRIX_KEYPRESSES // Enables key press effects -# define ENABLE_RGB_MATRIX_MULTISPLASH - -// Normal effects -# define ENABLE_RGB_MATRIX_CYCLE_SPIRAL -# define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON -# define ENABLE_RGB_MATRIX_PIXEL_RAIN - -#endif diff --git a/keyboards/sofle_v303/keymaps/deluxe/keymap.c b/keyboards/sofle_v303/keymaps/deluxe/keymap.c deleted file mode 100644 index 7dbda9c0949..00000000000 --- a/keyboards/sofle_v303/keymaps/deluxe/keymap.c +++ /dev/null @@ -1,329 +0,0 @@ -// Copyright 2022 Dane Skalski (@Daneski13) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -// Layers enum -enum sofle_pico_layers { _QWERTY, _COLEMAK_DH, _SYMB, _EXT, _ADJUST }; - -// Custom keycodes -enum custom_keycodes { - // Keycode for toggling between macOS and Windows key mappings - // Actually just an alias to the GUI and Alt swap Magic keycode - KC_OS = MAGIC_TOGGLE_ALT_GUI, - // Keycode for swapping the base layer between QWERTY and Colemak-DH - KC_TOGGLE_BASE = SAFE_RANGE, - // Keycode for redo action (Ctrl + Y on windows, Ctrl + Shift + Z on macOS) - KC_REDO, - // Keycodes for next/previous word - KC_WNXT, - KC_WPRV, - // Keycode for sticking/unsticking the adjust layer - KC_ADJST -}; - -/* LED indicators */ -bool is_caps_lock_enabled(void) { // Caps lock - return (host_keyboard_led_state().caps_lock); -} -bool is_num_lock_enabled(void) { // Num lock - return (host_keyboard_led_state().num_lock); -} -bool is_adjust_layer_sticky(layer_state_t state) { // Adjust layer sticky - // Checks if the state is equal to just the adjust layer being active. - // Doing it this way can leverage SPLIT_LAYER_STATE_ENABLE - return (state == (1UL << _ADJUST)) ? true : false; -} -// Indicator color based on the RGB Matrix mode -RGB indicator_color(void) { - RGB rgb; - // Normally the indicator color is white to stand out in the RGB rainbow. - // When using the custom RGB mode that already is white, the indicator color - // is green to stand out. - if (rgb_matrix_config.mode == RGB_MATRIX_CUSTOM_WHITE_UNDERGLOW_CYCLE) { - // Green - rgb.r = 0; - rgb.g = 255; - rgb.b = 0; - } else { - // White - rgb.r = 255; - rgb.g = 255; - rgb.b = 255; - } - return rgb; -} - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - // clang-format off - /* - Traditional QWERTY - ┌───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┐ - │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ - ├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤ - │Tab│ Q │ W │ E │ R │ T │ │ Y │ U │ I │ O │ P │Ent│ - ├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤ - │Esc│ A │ S │ D │ F │ G │ │ H │ J │ K │ L │ ; │ ' │ - ├───┼───┼───┼───┼───┼───┼───┐ ┌───┼───┼───┼───┼───┼───┼───┤ - │Sft│ Z │ X │ C │ V │ B │Mut│ │▶⏸ │ N │ M │ , │ . │ / │Sft│ - └───┴───┴───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┴───┴───┘ - ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ - │Ctr│Win│Alt│Del│Spc│ │Sft│Bsp│Alt│Win│Ctr│ - └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ - For macOS - GUI (cmd) and Alt (opt) swapped - */ - [_QWERTY] = LAYOUT_split4x6_r1( - KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_ENTER, - KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SEMICOLON, KC_QUOTE, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MUTE, KC_MPLY, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LCTL, KC_LGUI, KC_LALT, LT(_EXT, KC_DEL), KC_SPC, KC_RSFT, LT(_SYMB, KC_BSPC), KC_RALT, KC_RGUI, KC_RCTL - ), - - /* - Colemak-DH - ┌───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┐ - │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ - ├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤ - │Tab│ Q │ W │ F │ P │ B │ │ J │ L │ U │ Y │ ; │Ent│ - ├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤ - │Esc│ A │ R │ S │ T │ G │ │ M │ N │ E │ I │ O │ ' │ - ├───┼───┼───┼───┼───┼───┼───┐ ┌───┼───┼───┼───┼───┼───┼───┤ - │Sft│ Z │ X │ C │ D │ V │Mut│ │▶⏸ │ K │ H │ , │ . │ / │Sft│ - └───┴───┴───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┴───┴───┘ - ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ - │Ctr│Win│Alt│Del│Spc│ │Sft│Bsp│Alt│Win│Ctr│ - └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ - For macOS - GUI/Win (cmd) and Alt (opt) swapped - */ - [_COLEMAK_DH] = LAYOUT_split4x6_r1( - KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, - KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SEMICOLON, KC_ENTER, - KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, KC_QUOTE, - KC_LSFT, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_MUTE, KC_MPLY, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LCTL, KC_LGUI, KC_LALT, LT(_EXT, KC_DEL), KC_SPC, KC_RSFT, LT(_SYMB, KC_BSPC), KC_RALT, KC_RGUI, KC_RCTL - ), - - /* - Symbols/Numpad Layer - ┌───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┐ - │F1 │F2 │F3 │F4 │F5 │F6 │ │F7 │F8 │F9 │F10│F11│F12│ - ├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤ - │Tab│ ! │ @ │ # │ $ │ % │ │ * │ 7 │ 8 │ 9 │ + │Ent│ - ├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤ - │ \ │ _ │ [ │ { │ ( │ ^ │ │ = │ 4 │ 5 │ 6 │ 0 │NUM│ - ├───┼───┼───┼───┼───┼───┼───┐ ┌───┼───┼───┼───┼───┼───┼───┤ - │___│ | │ ] │ } │ ) │ & │___│ │___│ / │ 1 │ 2 │ 3 │ - │___│ - └───┴───┴───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┴───┴───┘ - ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ - │___│___│___│___│___│ │___│___│___│___│___│ - └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ - */ - [_SYMB] = LAYOUT_split4x6_r1( - 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_TAB, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_PAST, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_ENTER, - KC_BSLS, KC_UNDS, KC_LBRC, KC_LCBR, KC_LPRN, KC_CIRC, KC_PEQL, KC_P4, KC_P5, KC_P6, KC_P0, KC_NUM, - _______, KC_PIPE, KC_RBRC, KC_RCBR, KC_RPRN, KC_AMPR, _______, _______, KC_PSLS, KC_P1, KC_P2, KC_P3, KC_PMNS, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - - /* - Extension/Function Layer - ┌────┬────┬────┬────┬────┬────┐ ┌────┬────┬────┬────┬────┬────┐ - │ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ │ F7 │ F8 │ F9 │ F10│ F11│ F12│ - ├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤ - │ ⇤ │PGUP│End │ ↑ │Home│ │ │BRIU│ F7 │ F8 │ F9 │ F10│____│ - ├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤ - │Cps │PGDN│ ← │ ↓ │ → │ │ │BRID│ F4 │ F5 │ F6 │ F11│____│ - ├────┼────┼────┼────┼────┼────┼────┐ ┌────┼────┼────┼────┼────┼────┼────┤ - │____│ │ │ │ │ │____│ │____│ │ F1 │ F2 │ F3 │ F12│____│ - └────┴────┴────┴────┴────┴────┴────┘ └────┴────┴────┴────┴────┴────┴────┘ - ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ - │___│___│___│___│___│ │___│___│___│___│___│ - └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ - */ - [_EXT] = LAYOUT_split4x6_r1( - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, - S(KC_TAB), KC_PGUP, KC_END, KC_UP, KC_HOME, _______, KC_BRIU, KC_F7, KC_F8, KC_F9, KC_F10, _______, - KC_CAPS, KC_PGDN, KC_LEFT, KC_DOWN, KC_RIGHT, _______, KC_BRID, KC_F4, KC_F5, KC_F6, KC_F11, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_F1, KC_F2, KC_F3, KC_F12, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - - /* - Adjust Layer, Keyboard Settings - ┌────┬────┬────┬────┬────┬────┐ ┌────┬────┬────┬────┬────┬────┐ - │ │ │ │ │ │ │ │ │ │ │ │ │ │ - ├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤ - │SpdU│HueU│SatU│ValU│Rnxt│Stck│ │ │EClr│Rbt │DBUG│BOOT│ │ - ├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤ - │SpdD│HueD│SatD│ValD│Rprv│RTgl│ │ │LOUT│ OS │ │ │ │ - ├────┼────┼────┼────┼────┼────┼────┐ ┌────┼────┼────┼────┼────┼────┼────┤ - │ │ │ │ │ │ │RTgl│ │ │ │ │ │ │ │ │ - └────┴────┴────┴────┴────┴────┴────┘ └────┴────┴────┴────┴────┴────┴────┘ - ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ - │___│___│___│___│___│ │___│___│___│___│___│ - └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ - */ - [_ADJUST] = LAYOUT_split4x6_r1( - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - RGB_SPI, RGB_HUI, RGB_SAI, RGB_VAI, RGB_MOD, KC_ADJST, KC_NO, EE_CLR, QK_RBT, DB_TOGG, QK_BOOT, KC_NO, - RGB_SPD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_RMOD, RGB_TOG, KC_NO, KC_TOGGLE_BASE, KC_OS, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_TOG, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ) - // clang-format on -}; - -/* - --- Rotary Encoder Mappings --- - - Encoder mappings go from leftmost encoder to rightmost encoder on the physical board. - index 0 is the the optional leftmost encoder on the left half, index 1 is the right encoder - on the left half (by the thumb keys), index 2 is the left encoder on the right half (by the - thumb keys), and index 3 is the optional rightmost encoder on the right half. - - If you are only using the 2 required encoders by the thumb keys, you only need to worry about - index 1 and index 2. - - Note that the key to be sent for counter-clockwise rotation (CCW) goes first and then the key for - clockwise (CW) within ENCODER_CCW_CW. -*/ -#ifdef ENCODER_MAP_ENABLE -// clang-format off - -// Base layer encoder mappings: -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - // Base layers - // index 0: mouse wheel up (CCW)/down (CW) index 1: volume up/down index 2: media prev/next index 3: mouse wheel left/right - [_QWERTY] = { ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MPRV, KC_MNXT), ENCODER_CCW_CW(KC_WH_L, KC_WH_R) }, - [_COLEMAK_DH] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, - - // Passes through to base layer - [_SYMB] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, - // undo/redo previous word/next word - [_EXT] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_UNDO, KC_REDO), ENCODER_CCW_CW(KC_WPRV, KC_WNXT) }, - // RGB Speed down/up RGB previous mode/next mode RGB brightness down/up - [_ADJUST] = { ENCODER_CCW_CW(RGB_SPD, RGB_SPI), ENCODER_CCW_CW(RGB_RMOD, RGB_MOD), ENCODER_CCW_CW(RGB_VAD, RGB_VAI), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, - // clang-format on -}; - -#endif - -// Called whenever a layer is changed -layer_state_t layer_state_set_user(layer_state_t state) { - // Make sure the adjust layer isn't sticky - if (is_adjust_layer_sticky(state)) return state; - - // When both the symbol and extension layer keys are held, the Adjust layer is active. - return update_tri_layer_state(state, _SYMB, _EXT, _ADJUST); -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - // Toggle base layer - case KC_TOGGLE_BASE: - if (record->event.pressed) { - // Toggle swapping base layers between Colemak-DH and QWERTY. - // When base layer is QWERTY, swap to Colemak-DH and vice-versa - if (get_highest_layer(default_layer_state) == _QWERTY) { - default_layer_set(1UL << _COLEMAK_DH); - } else { - default_layer_set(1UL << _QWERTY); - } - } - return false; - - // Override undo in favor of the more modern undo action - case KC_UNDO: - if (record->event.pressed) { - // Use the correct modifier for macOS or Windows - uint16_t mod = keymap_config.swap_lalt_lgui ? KC_LGUI : KC_LCTL; - // Send Ctrl+Z/Cmd+Z - register_code(mod); - tap_code_delay(KC_Z, 10); - unregister_code(mod); - } - return false; - - // Redo action - case KC_REDO: - if (record->event.pressed) { - // Whether or not macOS mapping is enabled - if (keymap_config.swap_lalt_lgui) { - // macOS - Send Cmd+Shift+Z - register_code(KC_LGUI); - register_code(KC_LSFT); - tap_code_delay(KC_Z, 10); - unregister_code(KC_LSFT); - unregister_code(KC_LGUI); - } else { - // Windows - Send Ctrl+Y - register_code(KC_LCTL); - tap_code_delay(KC_Y, 10); - unregister_code(KC_LCTL); - } - } - return false; - - // Next word - case KC_WNXT: - if (record->event.pressed) { - // Use the correct modifier for macOS or Windows - uint16_t mod = keymap_config.swap_lalt_lgui ? KC_LALT : KC_LCTL; - // Send Ctrl+Right/Option+Right - register_code(mod); - tap_code_delay(KC_RGHT, 10); - unregister_code(mod); - } - return false; - - // Previous word - case KC_WPRV: - if (record->event.pressed) { - // Use the correct modifier for macOS or Windows - uint16_t mod = keymap_config.swap_lalt_lgui ? KC_LALT : KC_LCTL; - // Send Ctrl+Left/Option+Left - register_code(mod); - tap_code_delay(KC_LEFT, 10); - unregister_code(mod); - } - return false; - - // Stick / Unstick the adjust layer - case KC_ADJST: - if (record->event.pressed) { - // If currently not sticky, we want only the adjust layer to be active to make it stick. - // Otherwise we want the default layer, un-stick. - is_adjust_layer_sticky(layer_state) ? layer_state_set(default_layer_state) : layer_move(_ADJUST); - dprintf("Adjust layer is now %s\n", is_adjust_layer_sticky(layer_state) ? "stuck" : "un-stuck"); - } - return false; - default: - return true; - } -} - -/* Indicators (Caps Lock / Num Lock / Adjust Layer Sticky) */ -bool rgb_matrix_indicators_user(void) { - layer_state_t curr_layer_state = layer_state; - layer_state_t layer = get_highest_layer(curr_layer_state); - RGB rgb = indicator_color(); - - /* Only show the indicator on their respective layers */ - // Caps Lock is only on the extension layer - if (is_caps_lock_enabled() && layer == _EXT) { - rgb_matrix_set_color(CAPS_LOCK_LED_INDEX, rgb.r, rgb.g, rgb.b); - } - - // Num Lock is only on the symbol layer - if (is_num_lock_enabled() && layer == _SYMB) { - rgb_matrix_set_color(NUM_LOCK_LED_INDEX, rgb.r, rgb.g, rgb.b); - } - - // If the adjust layer is stuck/sticky, light it up. Don't need to care about - // checking the layer since it can only be active on the adjust layer anyway - if (is_adjust_layer_sticky(curr_layer_state)) rgb_matrix_set_color(ADJST_LED_INDEX, rgb.r, rgb.g, rgb.b); - - return false; -} diff --git a/keyboards/sofle_v303/keymaps/deluxe/readme.md b/keyboards/sofle_v303/keymaps/deluxe/readme.md deleted file mode 100644 index 04c6695b7f3..00000000000 --- a/keyboards/sofle_v303/keymaps/deluxe/readme.md +++ /dev/null @@ -1,43 +0,0 @@ -# Deluxe sofle_pico Keymap - -This is my personal keymap for sofle_pico at time of writing. It departs from the [default layout](../default/README.md) with the encoder mappings and some extra keycodes. This keymap also adds indicators when caps lock and num lock are enabled. When enabled, that key will become a static white (green on the white backlight mode) but only when the layer that respective key is on is active. - -I wanted that classic rainbow barf RGB effect for the underglow even if the per-key lighting is something else, so I added 2 custom RGB matrix animations: white per-key lighting with rainbow underglow and pixel rain with rainbow underglow. - -Here are some gifs of the animations: - -![White + Underglow Animation](https://i.imgur.com/2vCiZz0.gif) - -![Pixel Rain + Underglow Animation](https://i.imgur.com/f6t0OfD.gif) - -## Base Layers - -The base layers are the same as the default layout, except the right side's left encoder (by the thumb keys) is now media controls. Since I am using all 4 encoders it doesn't make sense to have 2 mouse scroll up/down, but for someone with just 2 encoders it may make sense to have media controls on a layer. - -QWERTY: - -![QWERTY Layer](https://i.imgur.com/vkS9Tceh.png) - -Colemak-DH: - -![Colemak-DH Layer](https://i.imgur.com/5YYgaUAh.png) - -## Symbol Layer - -Symbol layer is identical to the default layout. - -![Symbol Layer](https://i.imgur.com/6F35Z4Wh.png) - -## Extension Layer - -Encoders on the right side become undo/redo and scrolling horizontally by word. - -![Extension Layer](https://i.imgur.com/0VCStS8h.png) - -## Adjust Layer - -Pressing "Stick Adj Layer" will "stick" the adjust layer so you can use the rotary encoders for RGB settings rather than holding down both backspace and delete. To go back to the default layer, press that stick key again or press and release either Del or Backspace. When the adjust layer is currently "sticky" the sticky key will become the indicator color mentioned earlier. - -"Toggle Base" will toggle between QWERTY and Colemak-DH and toggle OS will toggle between macOS and Windows key-mappings (swapping WIN/Command with Alt/Option by the thumb keys and properly mapping redo/word scrolling). - -![Adjust layer](https://i.imgur.com/71ftNoNh.png) diff --git a/keyboards/sofle_v303/keymaps/deluxe/rgb_matrix_user.inc b/keyboards/sofle_v303/keymaps/deluxe/rgb_matrix_user.inc deleted file mode 100644 index 3efe5067497..00000000000 --- a/keyboards/sofle_v303/keymaps/deluxe/rgb_matrix_user.inc +++ /dev/null @@ -1,48 +0,0 @@ -// Copyright 2022 Dane Skalski (@Daneski13) -// SPDX-License-Identifier: GPL-2.0-or-later - -RGB_MATRIX_EFFECT(WHITE_UNDERGLOW_CYCLE) -RGB_MATRIX_EFFECT(PIXEL_RAIN_UNDERGLOW_CYCLE) - -#ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS - -// This is a modified version of the effect_runner_dx_dy_dist function from rgb_matrix -// that only applies the effect to the underglow LEDs of this keyboard -static bool underglow_effect_runner(effect_params_t* params, dx_dy_dist_f underglow_effect_func, bool backlight_white) { - RGB_MATRIX_USE_LIMITS(led_min, led_max); - - HSV hsv = rgb_matrix_config.hsv; - HSV white = {0, 0, hsv.v}; - RGB rgb = rgb_matrix_hsv_to_rgb(white); - uint8_t time = scale16by8(g_rgb_timer, rgb_matrix_config.speed / 2); - for (uint8_t i = led_min; i < led_max; i++) { - // Underglow LEDs are indicies 0 - 7 and 37 - 44 - if ((i <= 7) || (37 <= i && i <= 44)) { - // Apply the maths and colors to the underglow LEDs - RGB_MATRIX_TEST_LED_FLAGS(); - int16_t dx = g_led_config.point[i].x - k_rgb_matrix_center.x; - int16_t dy = g_led_config.point[i].y - k_rgb_matrix_center.y; - uint8_t dist = sqrt16(dx * dx + dy * dy); - RGB rgb = rgb_matrix_hsv_to_rgb(underglow_effect_func(hsv, dx, dy, dist, time)); - rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); - } else { - // Set the backlight to white if needed - if (!backlight_white) continue; - rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); - } - } - return rgb_matrix_check_finished_leds(led_max); -} - -// Solid white but the underglow is a rainbow spiral -static bool WHITE_UNDERGLOW_CYCLE(effect_params_t* params) { - return underglow_effect_runner(params, &CYCLE_SPIRAL_math, true); -} - -// Pixel rain effect but the underglow is a rainbow spiral -static bool PIXEL_RAIN_UNDERGLOW_CYCLE(effect_params_t* params) { - PIXEL_RAIN(params); - return underglow_effect_runner(params, &CYCLE_SPIRAL_math, false); -} - -#endif diff --git a/keyboards/sofle_v303/keymaps/deluxe/rules.mk b/keyboards/sofle_v303/keymaps/deluxe/rules.mk deleted file mode 100644 index b788c6155b4..00000000000 --- a/keyboards/sofle_v303/keymaps/deluxe/rules.mk +++ /dev/null @@ -1,20 +0,0 @@ -# Enables Audio control and System control Keycodes -EXTRAKEY_ENABLE = yes -# Enables Mousekeys -MOUSEKEY_ENABLE = yes -# Encoder Support -ENCODER_ENABLE = yes -# Use Enocoder Mapping -ENCODER_MAP_ENABLE = yes - -# Enables RGB Lighting Effects -RGB_MATRIX_ENABLE = yes - -# Allows use of `qmk console` for debugging -CONSOLE_ENABLE = yes - -# Enables VIA -VIA_ENABLE = yes - -# Custom RGB Matrix Effect -RGB_MATRIX_CUSTOM_USER = yes From 0ca4c65fd90bad666de81d615c692c1c30045e19 Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Thu, 19 Oct 2023 11:59:36 -0700 Subject: [PATCH 06/87] Sofle Pico 'default' keymap created/fixed Based on the sofle_choc Brian Low default --- keyboards/sofle_pico/keymaps/default/config.h | 35 +++- keyboards/sofle_pico/keymaps/default/keymap.c | 177 +++--------------- .../sofle_pico/keymaps/default/readme.md | 57 ------ keyboards/sofle_pico/keymaps/default/rules.mk | 18 +- 4 files changed, 69 insertions(+), 218 deletions(-) delete mode 100644 keyboards/sofle_pico/keymaps/default/readme.md diff --git a/keyboards/sofle_pico/keymaps/default/config.h b/keyboards/sofle_pico/keymaps/default/config.h index 43c47b9122a..03fc25f7498 100644 --- a/keyboards/sofle_pico/keymaps/default/config.h +++ b/keyboards/sofle_pico/keymaps/default/config.h @@ -1,17 +1,37 @@ -// Copyright 2022 Dane Skalski (@Daneski13) +// Copyright 2023 Ryan Neff (@JellyTitan) // SPDX-License-Identifier: GPL-2.0-or-later #pragma once /* - Encoder settings - */ -#ifdef ENCODER_ENABLE -# define ENCODER_RESOLUTION 4 -#endif #ifdef ENCODER_MAP_ENABLE // Key delay for encoders (necessary for some keycodes) # define ENCODER_MAP_KEY_DELAY 10 #endif +/* Set tapdance speed */ +#define TAPPING_TERM 210 + +/* Allows for the setting of constant mouse speed levels. */ +/* Delay between pressing a movement key and cursor movement */ +#define MOUSEKEY_DELAY 10 +/* Time between cursor movements in milliseconds */ +#define MOUSEKEY_INTERVAL 16 +/* Step size */ +#define MOUSEKEY_MOVE_DELTA 8 +/* Maximum cursor speed at which acceleration stops */ +#define MOUSEKEY_MAX_SPEED 2 +/* Time until maximum cursor speed is reached */ +#define MOUSEKEY_TIME_TO_MAX 40 +/* Maximum number of scroll steps per scroll action */ +#define MOUSEKEY_WHEEL_MAX_SPEED 42 +/* Time until maximum scroll speed is reached */ +#define MOUSEKEY_WHEEL_TIME_TO_MAX 15 + +#define POINTING_DEVICE_ROTATION_90 +#define SPLIT_POINTING_ENABLE +#define POINTING_DEVICE_RIGHT +#define POINTING_DEVICE_TASK_THROTTLE_MS 8 /* - RGB Stuff - All effects can be found in the QMK docs: @@ -19,6 +39,12 @@ */ #ifdef RGB_MATRIX_ENABLE +# define RGB_DISABLE_WHEN_USB_SUSPENDED +// Decrease decay of heatmap rgb effect +# define RGB_MATRIX_TYPING_HEATMAP_DECREASE_DELAY_MS 50 +// If you're setting colors per key, this is required. +# define SPLIT_LAYER_STATE_ENABLE + // Default effect when EEPROM cleared # define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_RAINBOW_MOVING_CHEVRON @@ -34,5 +60,4 @@ # define ENABLE_RGB_MATRIX_CYCLE_SPIRAL # define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON # define ENABLE_RGB_MATRIX_PIXEL_RAIN - #endif diff --git a/keyboards/sofle_pico/keymaps/default/keymap.c b/keyboards/sofle_pico/keymaps/default/keymap.c index 0774462eccc..e340e738c9c 100644 --- a/keyboards/sofle_pico/keymaps/default/keymap.c +++ b/keyboards/sofle_pico/keymaps/default/keymap.c @@ -1,161 +1,36 @@ -// Copyright 2022 Dane Skalski (@Daneski13) +// Copyright 2023 Ryan Neff (@JellyTitan) // SPDX-License-Identifier: GPL-2.0-or-later #include QMK_KEYBOARD_H -// Layers enum -enum sofle_pico_layers { _QWERTY, _COLEMAK_DH, _SYMB, _EXT, _ADJUST }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - // clang-format off - /* - Traditional QWERTY - ┌───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┐ - │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ - ├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤ - │Tab│ Q │ W │ E │ R │ T │ │ Y │ U │ I │ O │ P │Ent│ - ├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤ - │Esc│ A │ S │ D │ F │ G │ │ H │ J │ K │ L │ ; │ ' │ - ├───┼───┼───┼───┼───┼───┼───┐ ┌───┼───┼───┼───┼───┼───┼───┤ - │Sft│ Z │ X │ C │ V │ B │Mut│ │XXX│ N │ M │ , │ . │ / │Sft│ - └───┴───┴───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┴───┴───┘ - ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ - │Ctr│Win│Alt│Del│Spc│ │Sft│Bsp│Alt│Win│Ctr│ - └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ - For macOS - GUI (cmd) and Alt (opt) swapped - */ - [_QWERTY] = LAYOUT_split4x6_r1( - KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_ENTER, - KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SEMICOLON, KC_QUOTE, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MUTE, KC_NO, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LCTL, KC_LGUI, KC_LALT, LT(_EXT, KC_DEL), KC_SPC, KC_RSFT, LT(_SYMB, KC_BSPC), KC_RALT, KC_RGUI, KC_RCTL - ), - - /* - Colemak-DH - ┌───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┐ - │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ - ├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤ - │Tab│ Q │ W │ F │ P │ B │ │ J │ L │ U │ Y │ ; │Ent│ - ├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤ - │Esc│ A │ R │ S │ T │ G │ │ M │ N │ E │ I │ O │ ' │ - ├───┼───┼───┼───┼───┼───┼───┐ ┌───┼───┼───┼───┼───┼───┼───┤ - │Sft│ Z │ X │ C │ D │ V │Mut│ │XXX│ K │ H │ , │ . │ / │Sft│ - └───┴───┴───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┴───┴───┘ - ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ - │Ctr│Win│Alt│Del│Spc│ │Sft│Bsp│Alt│Win│Ctr│ - └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ - For macOS - GUI (cmd) and Alt (opt) swapped - */ - [_COLEMAK_DH] = LAYOUT_split4x6_r1( - KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, - KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SEMICOLON, KC_ENTER, - KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, KC_QUOTE, - KC_LSFT, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_MUTE, KC_NO, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LCTL, KC_LGUI, KC_LALT, LT(_EXT, KC_DEL), KC_SPC, KC_RSFT, LT(_SYMB, KC_BSPC), KC_RALT, KC_RGUI, KC_RCTL - ), - - /* - Symbols/Numpad Layer - ┌───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┐ - │F1 │F2 │F3 │F4 │F5 │F6 │ │F7 │F8 │F9 │F10│F11│F12│ - ├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤ - │Tab│ ! │ @ │ # │ $ │ % │ │ * │ 7 │ 8 │ 9 │ + │Ent│ - ├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤ - │ \ │ _ │ [ │ { │ ( │ ^ │ │ = │ 4 │ 5 │ 6 │ 0 │NUM│ - ├───┼───┼───┼───┼───┼───┼───┐ ┌───┼───┼───┼───┼───┼───┼───┤ - │___│ | │ ] │ } │ ) │ & │___│ │___│ / │ 1 │ 2 │ 3 │ - │___│ - └───┴───┴───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┴───┴───┘ - ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ - │___│___│___│___│___│ │___│___│___│___│___│ - └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ - */ - [_SYMB] = LAYOUT_split4x6_r1( - 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_TAB, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_PAST, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_ENTER, - KC_BSLS, KC_UNDS, KC_LBRC, KC_LCBR, KC_LPRN, KC_CIRC, KC_PEQL, KC_P4, KC_P5, KC_P6, KC_P0, KC_NUM, - _______, KC_PIPE, KC_RBRC, KC_RCBR, KC_RPRN, KC_AMPR, _______, _______, KC_PSLS, KC_P1, KC_P2, KC_P3, KC_PMNS, _______, - _______, _______, _______, MO(_ADJUST), _______, _______, _______, _______, _______, _______ - ), - - /* - Extension/Function Layer - ┌────┬────┬────┬────┬────┬────┐ ┌────┬────┬────┬────┬────┬────┐ - │ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ │ F7 │ F8 │ F9 │ F10│ F11│ F12│ - ├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤ - │ ⇤ │PGUP│End │ ↑ │Home│ │ │BRIU│ F7 │ F8 │ F9 │ F10│____│ - ├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤ - │Cps │PGDN│ ← │ ↓ │ → │ │ │BRID│ F4 │ F5 │ F6 │ F11│____│ - ├────┼────┼────┼────┼────┼────┼────┐ ┌────┼────┼────┼────┼────┼────┼────┤ - │____│ │ │ │ │ │____│ │ ▶⏸ │ │ F1 │ F2 │ F3 │ F12│____│ - └────┴────┴────┴────┴────┴────┴────┘ └────┴────┴────┴────┴────┴────┴────┘ - ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ - │___│___│___│___│___│ │___│___│___│___│___│ - └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ - */ - [_EXT] = LAYOUT_split4x6_r1( - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, - S(KC_TAB), KC_PGUP, KC_END, KC_UP, KC_HOME, _______, KC_BRIU, KC_F7, KC_F8, KC_F9, KC_F10, _______, - KC_CAPS, KC_PGDN, KC_LEFT, KC_DOWN, KC_RIGHT, _______, KC_BRID, KC_F4, KC_F5, KC_F6, KC_F11, _______, - _______, _______, _______, _______, _______, _______, _______, KC_MPLY, _______, KC_F1, KC_F2, KC_F3, KC_F12, _______, - _______, _______, _______, _______, _______, _______, MO(_ADJUST), _______, _______, _______ - ), - - /* - Adjust Layer, Keyboard Settings - ┌────┬────┬────┬────┬────┬────┐ ┌────┬────┬────┬────┬────┬────┐ - │ │ │ │ │ │ │ │ │ │ │ │ │ │ - ├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤ - │SpdU│HueU│SatU│ValU│Rnxt│ │ │ │EClr│Rbt │DBUG│BOOT│ │ - ├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤ - │SpdD│HueD│SatD│ValD│Rprv│RTgl│ │ │QWRT│COLE│ │ │ │ - ├────┼────┼────┼────┼────┼────┼────┐ ┌────┼────┼────┼────┼────┼────┼────┤ - │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - └────┴────┴────┴────┴────┴────┴────┘ └────┴────┴────┴────┴────┴────┴────┘ - ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ - │___│___│___│___│___│ │___│___│___│___│___│ - └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ - */ - [_ADJUST] = LAYOUT_split4x6_r1( - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - RGB_SPI, RGB_HUI, RGB_SAI, RGB_VAI, RGB_MOD, KC_NO, KC_NO, EE_CLR, QK_RBT, DB_TOGG, QK_BOOT, KC_NO, - RGB_SPD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_RMOD, RGB_TOG, KC_NO, DF(_QWERTY), DF(_COLEMAK_DH), 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, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ) - // clang-format on -}; - /* - --- Rotary Encoder Mappings --- + * QWERTY + * ,-----------------------------------------. ,-----------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | ESC | Q | W | E | R | T | | Y | U | I | O | P | Bspc | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Tab | A | S | D | F | G |-------. ,-------| H | J | K | L | ; | ' | + * |------+------+------+------+------+------| Mute | | Pause |------+------+------+------+------+------| + * |LShift| Z | X | C | V | B |-------| |-------| N | M | , | . | / |RShift| + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LCTL | LGUI | LCMD | LALT | /Enter / \Space \ | RALT | RCMD | RGUI | RCTL | + * | | | | |/ / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ - Encoder mappings go from leftmost encoder to rightmost encoder on the physical board. - index 0 is the the optional leftmost encoder on the left half, index 1 is the right encoder - on the left half (by the thumb keys), index 2 is the left encoder on the right half (by the - thumb keys), and index 3 is the optional rightmost encoder on the right half. - - If you are only using the 2 required encoders by the thumb keys, you only need to worry about - index 1 and index 2. - - Note that the keycode for counter-clockwise rotation (CCW) goes first and then the key for - clockwise (CW) within ENCODER_CCW_CW. -*/ -#ifdef ENCODER_MAP_ENABLE -// clang-format off - -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - // Base layer encoder mappings: - // index 0: mouse wheel up (CCW)/down (CW) index 1: volume down/up index 2: mouse wheel up/down index 3: mouse wheel left/right - [_QWERTY] = { ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN), ENCODER_CCW_CW(KC_WH_L, KC_WH_R) }, - [_COLEMAK_DH] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, - - // Passes through to base layers - [_SYMB] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, - // On the extension layer, the right side's left encoder by the thumb keys (mouse wheel up/down) is traded for media previous/next - [_EXT] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_MPRV, KC_MNXT), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, - // Passes through - [_ADJUST] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, - // clang-format on +LAYOUT_split4x6_r1( + 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, KC_MPLY,KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LCMD, KC_LALT, KC_ENT, KC_SPC, KC_RALT, KC_RCMD, KC_RGUI, KC_RCTL +) }; +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MPRV, KC_MNXT) }, +}; #endif diff --git a/keyboards/sofle_pico/keymaps/default/readme.md b/keyboards/sofle_pico/keymaps/default/readme.md deleted file mode 100644 index 72a36eda8f2..00000000000 --- a/keyboards/sofle_pico/keymaps/default/readme.md +++ /dev/null @@ -1,57 +0,0 @@ -# Default sofle_pico Keymap - -This is the default layout for sofle_pico. For the most part it's a normal QWERTY layout. The exceptions being the thumb keys, rotary encoders, and lack of caps lock (which is replaced by escape). - -One of the biggest features of QMK is it brings layers into the mix which can give you access to even more keys. There are 4 layers: the default/base layer (QWERTY), a symbol layer, an extension layer, and an adjust layer. - -Layers are very similar to Shift on a normal keyboard, where "a" becomes "A" when holding down shift. With a custom layer, you can have "j" become "4" for example and make an entire side of the keyboard become a number pad. - -The [symbol layer](#symbol-layer) is accessed by holding down backspace, the [extension layer](#extension-layer) is accessed by holding down delete, and the [adjust layer](#adjust-layer) is accessed by holding down both delete and backspace. - -## Default Base Layer (QWERTY) - -Grey keys are rotary encoders (the ones on far left and far right are optional). Middle legend is pressing down the encoder, bottom left legend is counter-clockwise turn, and bottom right legend is clockwise turn of the encoder. - -Those arrows for the bottom legends on the encoders are mouse scroll directions. - -Red legends are the layer activated by holding down a key. - -![sofle_pico's QWERTY Layout](https://i.imgur.com/fXGt5Jh.png) - -## Symbol Layer - -This layer is accessed by holding down backspace on the base layer, thus that key is blacked out. - -On the symbol layer, the right side is a number pad, and the left side contains all the typical symbols (geared for programming). - -Holding down delete within the symbol layer will take you to the adjust layer. - -![sofle_pico's Symbol Layer](https://i.imgur.com/6F35Z4Wh.png) - -## Extension Layer - -This layer's theme is navigation/extras, its accessed by holding down delete on the base layer, thus that key is blacked out. - -On the extension layer, the right side is the function keys in a number-pad-esque layout with screen brightness up/down, and the left side has navigation keys and caps lock. Also, the rotary on the right side encoder becomes media controls. - -Holding down backspace within the extension layer will take you to the adjust layer. - -![sofle_pico's Extension Layer](https://i.imgur.com/FETcqkCh.png) - -## Adjust Layer - -This layer's theme is adjusting the keyboard's settings, it's accessed by holding down both delete and backspace on the base layer. - -On the adjust layer, the right side is the keyboard's settings: clear data, reboot, toggle debug mode, enter the bootloader, and change the base layer between QWERTY and [Colemak-DH](#colemak-dh). The left side adjusts the RGB lighting. - -![sofle_pico's Adjust Layer](https://i.imgur.com/fRsdlt3h.png) - -## Colemak-DH - -This keymap offers Colemak-DH as an alternative base layer to QWERTY. - -QWERTY is default when flashing your keyboard, but you can change it to Colemak-DH by selecting it's key on the adjust layer. - -If you've never heard of it, Colemak is a keyboard layout that was designed to be a more ergonomic, modern, efficient, and comfortable replacement to QWERTY. Colemak was designed to place the most common letters in english on the home row along with many of the most common bigrams together (two letters typed in a row). Colemak-DH is a variant of Colemak that moves D and H to beneath the index fingers rather than the home row since most people find it easier and faster to reach the keys that way rather than the middle of the home row. - -![sofle_pico's Colemak-DH Layout](https://i.imgur.com/8biZfn2h.png) diff --git a/keyboards/sofle_pico/keymaps/default/rules.mk b/keyboards/sofle_pico/keymaps/default/rules.mk index 2304032cba5..0b1e74fbb57 100644 --- a/keyboards/sofle_pico/keymaps/default/rules.mk +++ b/keyboards/sofle_pico/keymaps/default/rules.mk @@ -1,5 +1,3 @@ -# Change from yes to no to disable features - # Enables Audio control and System control Keycodes EXTRAKEY_ENABLE = yes # Enables Mousekeys @@ -8,9 +6,19 @@ MOUSEKEY_ENABLE = yes ENCODER_ENABLE = yes # Use Enocoder Mapping ENCODER_MAP_ENABLE = yes - +# Turn on tap dance: +TAP_DANCE_ENABLE = no # Enables RGB Lighting Effects RGB_MATRIX_ENABLE = yes +# Dynamic Tapping Term: +DYNAMIC_TAPPING_TERM_ENABLE = yes -# Allows use of `qmk console` for debugging -CONSOLE_ENABLE = yes + +BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +AUDIO_ENABLE = no # Audio output + +OLED_ENABLE = yes +# OLED_DRIVER = SSD1306 +WPM_ENABLE = yes \ No newline at end of file From 2f5e18d58714500008b1550560fae7cdb6f0756e Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Thu, 19 Oct 2023 14:34:45 -0700 Subject: [PATCH 07/87] Move matrix_pins into info.json --- keyboards/sofle_pico/info.json | 4 ++++ keyboards/sofle_pico/keymaps/jellytitan/readme.md | 3 ++- keyboards/sofle_pico/rev1/config.h | 7 ------- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/keyboards/sofle_pico/info.json b/keyboards/sofle_pico/info.json index e1782bfa93b..47935454d0d 100644 --- a/keyboards/sofle_pico/info.json +++ b/keyboards/sofle_pico/info.json @@ -77,6 +77,10 @@ { "flags": 4, "matrix": [5, 0], "x":224, "y": 7 } ] }, + "matrix_pins": { + "cols": ["GP9", "GP10", "GP11", "GP12", "GP13"], + "rows": ["GP1", "GP2", "GP3", "GP4", "GP5", "GP8"] + }, "diode_direction": "COL2ROW", "encoder": { "rotary": [ diff --git a/keyboards/sofle_pico/keymaps/jellytitan/readme.md b/keyboards/sofle_pico/keymaps/jellytitan/readme.md index bbdb7170ecd..2bc57d32064 100644 --- a/keyboards/sofle_pico/keymaps/jellytitan/readme.md +++ b/keyboards/sofle_pico/keymaps/jellytitan/readme.md @@ -1,10 +1,11 @@ # JellyTitan sofle_pico Keymap ![jellytitan](https://i.imgur.com/JqGPWCn.png) -This keymap is derived from Ergodox layouts and is adapted for the [sofle_pico](https://github.com/daneski13/sofle_pico). +This keymap is derived from Ergodox layouts and is adapted for the [sofle_pico](https://github.com/JellyTitan/sofle_pico). It is notable for it's semi-complex programming examples that include the use of rotary encoders. Plenty of useful examples: +* Pimaroni enabled * Advanced knob programming! (Three-layer usage + clicks) * Macros! (Fancy key combos tied to the rotary encoders) * Tap Dance! (Double tap your '5' key for 'Enter') diff --git a/keyboards/sofle_pico/rev1/config.h b/keyboards/sofle_pico/rev1/config.h index 7313dc80e5b..b2604818294 100644 --- a/keyboards/sofle_pico/rev1/config.h +++ b/keyboards/sofle_pico/rev1/config.h @@ -3,13 +3,6 @@ #pragma once -// Electrical Wiring Stuff -#define MATRIX_ROW_PINS \ - { GP9, GP10, GP11, GP12, GP13 } -#define MATRIX_COL_PINS \ - { GP1, GP2, GP3, GP4, GP5, GP8 } -// #define DIODE_DIRECTION COL2ROW - // Split Keyboard Stuff #define EE_HANDS // Sets the keyboard’s handedness using EEPROM #define SERIAL_USART_FULL_DUPLEX // Use full duplex communication (TRRS) From 7cb58756ce9a9399878330f1a2e88b0d411786b7 Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Sat, 25 Nov 2023 14:18:51 -0800 Subject: [PATCH 08/87] Fixed switched row/column config --- keyboards/sofle_pico/info.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/sofle_pico/info.json b/keyboards/sofle_pico/info.json index 47935454d0d..f1e2c115e1a 100644 --- a/keyboards/sofle_pico/info.json +++ b/keyboards/sofle_pico/info.json @@ -78,8 +78,8 @@ ] }, "matrix_pins": { - "cols": ["GP9", "GP10", "GP11", "GP12", "GP13"], - "rows": ["GP1", "GP2", "GP3", "GP4", "GP5", "GP8"] + "rows": ["GP9", "GP10", "GP11", "GP12", "GP13"], + "cols": ["GP1", "GP2", "GP3", "GP4", "GP5", "GP8"] }, "diode_direction": "COL2ROW", "encoder": { From 3736ac34d546fb04a120cb03be93f43bd9012407 Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Sat, 25 Nov 2023 14:34:33 -0800 Subject: [PATCH 09/87] Added max_brightness to rgb_matrix bumped version --- keyboards/sofle_pico/info.json | 3 ++- keyboards/sofle_pico/readme.md | 6 +++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/keyboards/sofle_pico/info.json b/keyboards/sofle_pico/info.json index f1e2c115e1a..0bccf640a7d 100644 --- a/keyboards/sofle_pico/info.json +++ b/keyboards/sofle_pico/info.json @@ -6,7 +6,7 @@ "usb": { "vid": "0x4413", "pid": "0x4A13", - "device_version": "1.0.0" + "device_version": "3.5.1" }, "ws2812": { "pin": "GP0", @@ -14,6 +14,7 @@ }, "rgb_matrix": { "driver": "ws2812", + "max_brightness": 128, "split_count": [29, 29], "layout": [ { "flags": 4, "matrix": [0, 5], "x": 95, "y": 7 }, diff --git a/keyboards/sofle_pico/readme.md b/keyboards/sofle_pico/readme.md index 3c7ab99dd8f..61b496760b3 100644 --- a/keyboards/sofle_pico/readme.md +++ b/keyboards/sofle_pico/readme.md @@ -2,11 +2,11 @@ ![sofle_pico](https://i.imgur.com/WzZaIgQh.jpg) -sofle_pico is a 60% Raspberry Pi Pico powered split keyboard boasting a 4x6 layout with an aggressive columnar stagger. It has 5 "thumb" keys on either side, support for 2-4 rotary encoders, and per-key RGB lighting. +Sofle Pico is a 60% Raspberry Pi Pico powered split keyboard boasting a 4x6 layout with an aggressive columnar stagger. It has 5 "thumb" keys on either side, support for 2-4 rotary encoders, and per-key RGB lighting. -- Keyboard Maintainer: [Dane Skalski](https://github.com/Daneski13) +- Keyboard Maintainer: [Ryan Neff](https://github.com/JellyTitan) - Hardware Supported: sofle_pico PCB, Raspberry Pi Pico -- Hardware Availability: [PCB, Case, Parts List](https://github.com/Daneski13/sofle_pico) +- Hardware Availability: [PCB, Case, Parts List](https://github.com/JellyTitan/sofle_pico) Remember you have to flash both halves of the keyboard for it to work! From dfe3646dd785f58407393e84c02b4ad86094453e Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Sat, 25 Nov 2023 14:43:28 -0800 Subject: [PATCH 10/87] Moved mouse config to .json --- keyboards/sofle_pico/info.json | 7 +++++++ keyboards/sofle_pico/keymaps/default/config.h | 10 ++-------- keyboards/sofle_pico/keymaps/jellytitan/config.h | 10 ++-------- keyboards/sofle_pico/keymaps/jellytitan/rules.mk | 2 -- 4 files changed, 11 insertions(+), 18 deletions(-) diff --git a/keyboards/sofle_pico/info.json b/keyboards/sofle_pico/info.json index 0bccf640a7d..d468826d22c 100644 --- a/keyboards/sofle_pico/info.json +++ b/keyboards/sofle_pico/info.json @@ -12,6 +12,13 @@ "pin": "GP0", "driver": "vendor" }, + "mouse_key": { + "enabled": true, + "delay": 10, + "interval": 16, + "max_speed": 2, + "time_to_max": 40 + } "rgb_matrix": { "driver": "ws2812", "max_brightness": 128, diff --git a/keyboards/sofle_pico/keymaps/default/config.h b/keyboards/sofle_pico/keymaps/default/config.h index 03fc25f7498..f9144c6c59b 100644 --- a/keyboards/sofle_pico/keymaps/default/config.h +++ b/keyboards/sofle_pico/keymaps/default/config.h @@ -13,16 +13,10 @@ #define TAPPING_TERM 210 /* Allows for the setting of constant mouse speed levels. */ -/* Delay between pressing a movement key and cursor movement */ -#define MOUSEKEY_DELAY 10 -/* Time between cursor movements in milliseconds */ -#define MOUSEKEY_INTERVAL 16 +/* Not all mouse wheel config settings are currently supported in .json config.*/ +/* https://github.com/qmk/qmk_firmware/blob/master/docs/reference_info_json.md */ /* Step size */ #define MOUSEKEY_MOVE_DELTA 8 -/* Maximum cursor speed at which acceleration stops */ -#define MOUSEKEY_MAX_SPEED 2 -/* Time until maximum cursor speed is reached */ -#define MOUSEKEY_TIME_TO_MAX 40 /* Maximum number of scroll steps per scroll action */ #define MOUSEKEY_WHEEL_MAX_SPEED 42 /* Time until maximum scroll speed is reached */ diff --git a/keyboards/sofle_pico/keymaps/jellytitan/config.h b/keyboards/sofle_pico/keymaps/jellytitan/config.h index 9ba447d360b..c6e92cefcbe 100644 --- a/keyboards/sofle_pico/keymaps/jellytitan/config.h +++ b/keyboards/sofle_pico/keymaps/jellytitan/config.h @@ -21,16 +21,10 @@ #define TAPPING_TERM 210 /* Allows for the setting of constant mouse speed levels. */ -/* Delay between pressing a movement key and cursor movement */ -#define MOUSEKEY_DELAY 10 -/* Time between cursor movements in milliseconds */ -#define MOUSEKEY_INTERVAL 16 +/* Not all mouse wheel config settings are currently supported in .json config.*/ +/* https://github.com/qmk/qmk_firmware/blob/master/docs/reference_info_json.md */ /* Step size */ #define MOUSEKEY_MOVE_DELTA 8 -/* Maximum cursor speed at which acceleration stops */ -#define MOUSEKEY_MAX_SPEED 2 -/* Time until maximum cursor speed is reached */ -#define MOUSEKEY_TIME_TO_MAX 40 /* Maximum number of scroll steps per scroll action */ #define MOUSEKEY_WHEEL_MAX_SPEED 42 /* Time until maximum scroll speed is reached */ diff --git a/keyboards/sofle_pico/keymaps/jellytitan/rules.mk b/keyboards/sofle_pico/keymaps/jellytitan/rules.mk index f716a785edd..b6489e4076d 100644 --- a/keyboards/sofle_pico/keymaps/jellytitan/rules.mk +++ b/keyboards/sofle_pico/keymaps/jellytitan/rules.mk @@ -1,7 +1,5 @@ # Enables Audio control and System control Keycodes EXTRAKEY_ENABLE = yes -# Enables Mousekeys -MOUSEKEY_ENABLE = yes # Encoder Support ENCODER_ENABLE = yes # Use Enocoder Mapping From 371850c8894e2e5155362e7a93d5b75af101010c Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Sat, 25 Nov 2023 14:59:17 -0800 Subject: [PATCH 11/87] Moved tapping term speed to json Added search 'tags' added comma after mouse config in json --- keyboards/sofle_pico/info.json | 6 +++++- keyboards/sofle_pico/keymaps/default/config.h | 3 --- keyboards/sofle_pico/keymaps/jellytitan/config.h | 2 -- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/keyboards/sofle_pico/info.json b/keyboards/sofle_pico/info.json index d468826d22c..178e6b882ba 100644 --- a/keyboards/sofle_pico/info.json +++ b/keyboards/sofle_pico/info.json @@ -3,6 +3,7 @@ "keyboard_name": "sofle_pico", "url": "https://github.com/JellyTitan/sofle_pico", "maintainer": "Ryan Neff ", + "tags": ["ortho", "split", "rgb", "encoder", "OLED"], "usb": { "vid": "0x4413", "pid": "0x4A13", @@ -18,7 +19,10 @@ "interval": 16, "max_speed": 2, "time_to_max": 40 - } + }, + "tapping": { + "term": 210 + }, "rgb_matrix": { "driver": "ws2812", "max_brightness": 128, diff --git a/keyboards/sofle_pico/keymaps/default/config.h b/keyboards/sofle_pico/keymaps/default/config.h index f9144c6c59b..35595a3b767 100644 --- a/keyboards/sofle_pico/keymaps/default/config.h +++ b/keyboards/sofle_pico/keymaps/default/config.h @@ -9,9 +9,6 @@ # define ENCODER_MAP_KEY_DELAY 10 #endif -/* Set tapdance speed */ -#define TAPPING_TERM 210 - /* Allows for the setting of constant mouse speed levels. */ /* Not all mouse wheel config settings are currently supported in .json config.*/ /* https://github.com/qmk/qmk_firmware/blob/master/docs/reference_info_json.md */ diff --git a/keyboards/sofle_pico/keymaps/jellytitan/config.h b/keyboards/sofle_pico/keymaps/jellytitan/config.h index c6e92cefcbe..9ddd99b081b 100644 --- a/keyboards/sofle_pico/keymaps/jellytitan/config.h +++ b/keyboards/sofle_pico/keymaps/jellytitan/config.h @@ -17,8 +17,6 @@ // Prevents thumper on mods like shift/Ctrl/Alt #define NO_HAPTIC_MOD #define SOLENOID_PIN GP21 -/* Set tapdance speed */ -#define TAPPING_TERM 210 /* Allows for the setting of constant mouse speed levels. */ /* Not all mouse wheel config settings are currently supported in .json config.*/ From b741ec91157f048e413e9caaf296e40e59856988 Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Sun, 26 Nov 2023 16:55:43 -0800 Subject: [PATCH 12/87] Changed layout config name from LAYOUT_split4x6_r1 to LAYOUT --- keyboards/sofle_pico/info.json | 2 +- keyboards/sofle_pico/keymaps/default/keymap.c | 2 +- keyboards/sofle_pico/keymaps/jellytitan/keymap.c | 6 +++--- keyboards/sofle_pico/keymaps/via/keymap.c | 10 +++++----- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/keyboards/sofle_pico/info.json b/keyboards/sofle_pico/info.json index 178e6b882ba..830368a467a 100644 --- a/keyboards/sofle_pico/info.json +++ b/keyboards/sofle_pico/info.json @@ -111,7 +111,7 @@ "processor": "RP2040", "bootloader": "rp2040", "layouts": { - "LAYOUT_split4x6_r1": { + "LAYOUT": { "layout": [ {"label": "`", "matrix": [0, 0], "x": 0, "y": 0.7}, {"label": "1", "matrix": [0, 1], "x": 1, "y": 0.7}, diff --git a/keyboards/sofle_pico/keymaps/default/keymap.c b/keyboards/sofle_pico/keymaps/default/keymap.c index e340e738c9c..5153cb86a9a 100644 --- a/keyboards/sofle_pico/keymaps/default/keymap.c +++ b/keyboards/sofle_pico/keymaps/default/keymap.c @@ -20,7 +20,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `----------------------------------' '------''---------------------------' */ -LAYOUT_split4x6_r1( +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, diff --git a/keyboards/sofle_pico/keymaps/jellytitan/keymap.c b/keyboards/sofle_pico/keymaps/jellytitan/keymap.c index b862a2b909e..1bd0f8dd5ce 100644 --- a/keyboards/sofle_pico/keymaps/jellytitan/keymap.c +++ b/keyboards/sofle_pico/keymaps/jellytitan/keymap.c @@ -68,7 +68,7 @@ │ ← │ → │Esc│Spc│Bsp│ │Ent│Tab│Del│ ↓ │ ↑ │ └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ */ - [_QWERTY] = LAYOUT_split4x6_r1( + [_QWERTY] = LAYOUT( KC_EQL, KC_1, KC_2, KC_3, KC_4, TD5ENT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, LT(1,KC_DEL), LT(2,KC_A), LCTL_T(KC_S), KC_D, LGUI_T(KC_F), KC_G, KC_H, RGUI_T(KC_J), KC_K, RCTL_T(KC_L), LT(2,KC_SCLN), LT(1,KC_QUOT), @@ -92,7 +92,7 @@ └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ */ - [_LOWER] = LAYOUT_split4x6_r1( + [_LOWER] = LAYOUT( QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_TRNS, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, DT_PRNT, KC_7, KC_8, KC_9, KC_ASTR, KC_F12, KC_TRNS, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRV, DT_UP, KC_4, KC_5, KC_6, KC_PPLS, KC_TRNS, @@ -115,7 +115,7 @@ │___│___│___│___│QMK│ │QMK│___│___│___│___│ └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ */ - [_RAISE] = LAYOUT_split4x6_r1( + [_RAISE] = LAYOUT( RGB_TOG, KC_ACL0, KC_ACL1, KC_ACL2, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, RGB_RMOD, RGB_HUI, RGB_HUD, HF_TOGG, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_UP, KC_BTN2, RGB_SAI, RGB_SAD, HF_DWLU, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, RGB_VAI, RGB_VAD, diff --git a/keyboards/sofle_pico/keymaps/via/keymap.c b/keyboards/sofle_pico/keymaps/via/keymap.c index 95c4f9faf64..2f0ab2e9f90 100644 --- a/keyboards/sofle_pico/keymaps/via/keymap.c +++ b/keyboards/sofle_pico/keymaps/via/keymap.c @@ -23,7 +23,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ For macOS - GUI (cmd) and Alt (opt) swapped */ - [_QWERTY] = LAYOUT_split4x6_r1( + [_QWERTY] = LAYOUT( KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_ENTER, KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SEMICOLON, KC_QUOTE, @@ -47,7 +47,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ For macOS - GUI (cmd) and Alt (opt) swapped */ - [_COLEMAK_DH] = LAYOUT_split4x6_r1( + [_COLEMAK_DH] = LAYOUT( KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SEMICOLON, KC_ENTER, KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, KC_QUOTE, @@ -70,7 +70,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { │___│___│___│___│___│ │___│___│___│___│___│ └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ */ - [_SYMB] = LAYOUT_split4x6_r1( + [_SYMB] = LAYOUT( 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_TAB, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_PAST, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_ENTER, KC_BSLS, KC_UNDS, KC_LBRC, KC_LCBR, KC_LPRN, KC_CIRC, KC_PEQL, KC_P4, KC_P5, KC_P6, KC_P0, KC_NUM, @@ -93,7 +93,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { │___│___│___│___│___│ │___│___│___│___│___│ └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ */ - [_EXT] = LAYOUT_split4x6_r1( + [_EXT] = LAYOUT( KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_TAB), KC_PGUP, KC_END, KC_UP, KC_HOME, _______, KC_BRIU, KC_F7, KC_F8, KC_F9, KC_F10, _______, KC_CAPS, KC_PGDN, KC_LEFT, KC_DOWN, KC_RIGHT, _______, KC_BRID, KC_F4, KC_F5, KC_F6, KC_F11, _______, @@ -116,7 +116,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { │___│___│___│___│___│ │___│___│___│___│___│ └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ */ - [_ADJUST] = LAYOUT_split4x6_r1( + [_ADJUST] = LAYOUT( KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_SPI, RGB_HUI, RGB_SAI, RGB_VAI, RGB_MOD, KC_NO, KC_NO, EE_CLR, QK_RBT, DB_TOGG, QK_BOOT, KC_NO, RGB_SPD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_RMOD, RGB_TOG, KC_NO, DF(_QWERTY), DF(_COLEMAK_DH), KC_NO, KC_NO, KC_NO, From fbd7c8cb1665651075bceb180746fc1d96ecb261 Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Sun, 26 Nov 2023 17:29:36 -0800 Subject: [PATCH 13/87] Updated hex for vid (JT) and pid (SP) --- keyboards/sofle_pico/info.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/sofle_pico/info.json b/keyboards/sofle_pico/info.json index 830368a467a..7be75855652 100644 --- a/keyboards/sofle_pico/info.json +++ b/keyboards/sofle_pico/info.json @@ -5,8 +5,8 @@ "maintainer": "Ryan Neff ", "tags": ["ortho", "split", "rgb", "encoder", "OLED"], "usb": { - "vid": "0x4413", - "pid": "0x4A13", + "vid": "0x4A54", + "pid": "0x5350", "device_version": "3.5.1" }, "ws2812": { From d19f4fc53130848212788fb184a75c82f804f344 Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Tue, 28 Nov 2023 15:13:03 -0800 Subject: [PATCH 14/87] Removed swap hands --- keyboards/sofle_pico/rev1/rev1.c | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/keyboards/sofle_pico/rev1/rev1.c b/keyboards/sofle_pico/rev1/rev1.c index cf11e03a0f4..2be1f8a530c 100644 --- a/keyboards/sofle_pico/rev1/rev1.c +++ b/keyboards/sofle_pico/rev1/rev1.c @@ -3,25 +3,6 @@ #include "quantum.h" -// Hand swap -#ifdef SWAP_HANDS_ENABLE -__attribute__ ((weak)) -const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { - // Left - {{0, 5}, {1, 5}, {2, 5}, {3, 5}, {4, 5}, {5, 5}, {6, 5}}, - {{0, 6}, {1, 6}, {2, 6}, {3, 6}, {4, 6}, {5, 6}, {6, 6}}, - {{0, 7}, {1, 7}, {2, 7}, {3, 7}, {4, 7}, {5, 7}, {6, 7}}, - {{0, 8}, {1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8}, {6, 8}}, - {{0, 9}, {1, 9}, {2, 9}, {3, 9}, {4, 9}, {5, 9}, {6, 9}}, - // Right - {{0, 0}, {1, 0}, {2, 0}, {3, 0}, {4, 0}, {5, 0}, {6, 0}}, - {{0, 1}, {1, 1}, {2, 1}, {3, 1}, {4, 1}, {5, 1}, {6, 1}}, - {{0, 2}, {1, 2}, {2, 2}, {3, 2}, {4, 2}, {5, 2}, {6, 2}}, - {{0, 3}, {1, 3}, {2, 3}, {3, 3}, {4, 3}, {5, 3}, {6, 3}}, - {{0, 4}, {1, 4}, {2, 4}, {3, 4}, {4, 4}, {5, 4}, {6, 4}} -}; -#endif - /* RGB LED matrix */ #ifdef RGB_MATRIX_ENABLE From 3749d07bd39efd7fce64906a0a93e9718ffb30c6 Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Tue, 28 Nov 2023 15:44:07 -0800 Subject: [PATCH 15/87] Removed rev1 folder and duplicate rules --- .../sofle_pico/{keymaps/default => }/config.h | 28 ++- keyboards/sofle_pico/{rev1 => }/halconf.h | 0 keyboards/sofle_pico/info.json | 8 + keyboards/sofle_pico/keymaps/default/rules.mk | 24 --- .../sofle_pico/keymaps/jellytitan/config.h | 54 ------ .../sofle_pico/keymaps/jellytitan/rules.mk | 24 +-- keyboards/sofle_pico/keymaps/via/config.h | 87 ---------- keyboards/sofle_pico/keymaps/via/keymap.c | 161 ------------------ keyboards/sofle_pico/keymaps/via/rules.mk | 19 --- keyboards/sofle_pico/{rev1 => }/post_config.h | 0 keyboards/sofle_pico/rev1/config.h | 30 ---- keyboards/sofle_pico/rev1/rev1.c | 63 ------- keyboards/sofle_pico/rev1/rules.mk | 0 keyboards/sofle_pico/rules.mk | 23 +-- 14 files changed, 48 insertions(+), 473 deletions(-) rename keyboards/sofle_pico/{keymaps/default => }/config.h (69%) rename keyboards/sofle_pico/{rev1 => }/halconf.h (100%) delete mode 100644 keyboards/sofle_pico/keymaps/default/rules.mk delete mode 100644 keyboards/sofle_pico/keymaps/via/config.h delete mode 100644 keyboards/sofle_pico/keymaps/via/keymap.c delete mode 100644 keyboards/sofle_pico/keymaps/via/rules.mk rename keyboards/sofle_pico/{rev1 => }/post_config.h (100%) delete mode 100644 keyboards/sofle_pico/rev1/config.h delete mode 100644 keyboards/sofle_pico/rev1/rev1.c delete mode 100644 keyboards/sofle_pico/rev1/rules.mk diff --git a/keyboards/sofle_pico/keymaps/default/config.h b/keyboards/sofle_pico/config.h similarity index 69% rename from keyboards/sofle_pico/keymaps/default/config.h rename to keyboards/sofle_pico/config.h index 35595a3b767..09f9cacb85b 100644 --- a/keyboards/sofle_pico/keymaps/default/config.h +++ b/keyboards/sofle_pico/config.h @@ -1,8 +1,32 @@ -// Copyright 2023 Ryan Neff (@JellyTitan) +// Copyright 2022 Dane Skalski (@Daneski13) // SPDX-License-Identifier: GPL-2.0-or-later #pragma once +// Split Keyboard Stuff +#define EE_HANDS // Sets the keyboard’s handedness using EEPROM +#define SERIAL_USART_FULL_DUPLEX // Use full duplex communication (TRRS) +#define SERIAL_USART_TX_PIN GP16 // USART TX pin +#define SERIAL_USART_RX_PIN GP17 // USART RX pin +#define SERIAL_USART_PIN_SWAP // Swap TX and RX pins if keyboard is master halve. (Only available on some MCUs) + +/* RGB Stuff */ +#ifdef RGB_MATRIX_ENABLE +# define RGB_MATRIX_LED_COUNT 58 +# define RGB_MATRIX_SPLIT \ + { 29, 29 } // 29 LEDs on each side +#endif + +// I2C for OLEDs +#define I2C_DRIVER I2CD1 +#define I2C1_SDA_PIN GP6 +#define I2C1_SCL_PIN GP7 + +#ifdef OLED_ENABLE + #define OLED_DISPLAY_128X64 + #define OLED_TIMEOUT 30000 +#endif + /* - Encoder settings - */ #ifdef ENCODER_MAP_ENABLE // Key delay for encoders (necessary for some keycodes) @@ -51,4 +75,4 @@ # define ENABLE_RGB_MATRIX_CYCLE_SPIRAL # define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON # define ENABLE_RGB_MATRIX_PIXEL_RAIN -#endif +#endif \ No newline at end of file diff --git a/keyboards/sofle_pico/rev1/halconf.h b/keyboards/sofle_pico/halconf.h similarity index 100% rename from keyboards/sofle_pico/rev1/halconf.h rename to keyboards/sofle_pico/halconf.h diff --git a/keyboards/sofle_pico/info.json b/keyboards/sofle_pico/info.json index 7be75855652..5bd06551ce2 100644 --- a/keyboards/sofle_pico/info.json +++ b/keyboards/sofle_pico/info.json @@ -9,6 +9,14 @@ "pid": "0x5350", "device_version": "3.5.1" }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, "ws2812": { "pin": "GP0", "driver": "vendor" diff --git a/keyboards/sofle_pico/keymaps/default/rules.mk b/keyboards/sofle_pico/keymaps/default/rules.mk deleted file mode 100644 index 0b1e74fbb57..00000000000 --- a/keyboards/sofle_pico/keymaps/default/rules.mk +++ /dev/null @@ -1,24 +0,0 @@ -# Enables Audio control and System control Keycodes -EXTRAKEY_ENABLE = yes -# Enables Mousekeys -MOUSEKEY_ENABLE = yes -# Encoder Support -ENCODER_ENABLE = yes -# Use Enocoder Mapping -ENCODER_MAP_ENABLE = yes -# Turn on tap dance: -TAP_DANCE_ENABLE = no -# Enables RGB Lighting Effects -RGB_MATRIX_ENABLE = yes -# Dynamic Tapping Term: -DYNAMIC_TAPPING_TERM_ENABLE = yes - - -BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -AUDIO_ENABLE = no # Audio output - -OLED_ENABLE = yes -# OLED_DRIVER = SSD1306 -WPM_ENABLE = yes \ No newline at end of file diff --git a/keyboards/sofle_pico/keymaps/jellytitan/config.h b/keyboards/sofle_pico/keymaps/jellytitan/config.h index 9ddd99b081b..89cda6449de 100644 --- a/keyboards/sofle_pico/keymaps/jellytitan/config.h +++ b/keyboards/sofle_pico/keymaps/jellytitan/config.h @@ -3,61 +3,7 @@ #pragma once -/* - Encoder settings - */ -#ifdef ENCODER_MAP_ENABLE -// Key delay for encoders (necessary for some keycodes) -# define ENCODER_MAP_KEY_DELAY 10 -#endif - -#define SPLIT_HAPTIC_ENABLE -#define SOLENOID_DEFAULT_DWELL 25 -#define SOLENOID_MAX_DWELL 100 -#define SOLENOID_MIN_DWELL 4 -#define HAPTIC_OFF_IN_LOW_POWER 1 -// Prevents thumper on mods like shift/Ctrl/Alt -#define NO_HAPTIC_MOD -#define SOLENOID_PIN GP21 - -/* Allows for the setting of constant mouse speed levels. */ -/* Not all mouse wheel config settings are currently supported in .json config.*/ -/* https://github.com/qmk/qmk_firmware/blob/master/docs/reference_info_json.md */ -/* Step size */ -#define MOUSEKEY_MOVE_DELTA 8 -/* Maximum number of scroll steps per scroll action */ -#define MOUSEKEY_WHEEL_MAX_SPEED 42 -/* Time until maximum scroll speed is reached */ -#define MOUSEKEY_WHEEL_TIME_TO_MAX 15 - #define POINTING_DEVICE_ROTATION_90 #define SPLIT_POINTING_ENABLE #define POINTING_DEVICE_RIGHT #define POINTING_DEVICE_TASK_THROTTLE_MS 8 -/* - - RGB Stuff - - All effects can be found in the QMK docs: - https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects -*/ -#ifdef RGB_MATRIX_ENABLE - -# define RGB_DISABLE_WHEN_USB_SUSPENDED -// Decrease decay of heatmap rgb effect -# define RGB_MATRIX_TYPING_HEATMAP_DECREASE_DELAY_MS 50 -// If you're setting colors per key, this is required. -# define SPLIT_LAYER_STATE_ENABLE - -// Default effect when EEPROM cleared -# define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_RAINBOW_MOVING_CHEVRON - -// Turns off RGB effects when there is no longer a USB connection -# define RGB_DISABLE_WHEN_USB_SUSPENDED - -// Key press reactive animations -# define SPLIT_TRANSPORT_MIRROR // Necessary setting for key press animations -# define RGB_MATRIX_KEYPRESSES // Enables key press effects -# define ENABLE_RGB_MATRIX_MULTISPLASH - -// Normal effects -# define ENABLE_RGB_MATRIX_CYCLE_SPIRAL -# define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON -# define ENABLE_RGB_MATRIX_PIXEL_RAIN -#endif diff --git a/keyboards/sofle_pico/keymaps/jellytitan/rules.mk b/keyboards/sofle_pico/keymaps/jellytitan/rules.mk index b6489e4076d..0debd8cc5e2 100644 --- a/keyboards/sofle_pico/keymaps/jellytitan/rules.mk +++ b/keyboards/sofle_pico/keymaps/jellytitan/rules.mk @@ -1,25 +1,3 @@ -# Enables Audio control and System control Keycodes -EXTRAKEY_ENABLE = yes -# Encoder Support -ENCODER_ENABLE = yes -# Use Enocoder Mapping -ENCODER_MAP_ENABLE = yes -# Turn on tap dance: -TAP_DANCE_ENABLE = yes -# Enables RGB Lighting Effects -RGB_MATRIX_ENABLE = yes -# Dynamic Tapping Term: -DYNAMIC_TAPPING_TERM_ENABLE = yes - - -BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -AUDIO_ENABLE = no # Audio output - -OLED_ENABLE = yes -# OLED_DRIVER = SSD1306 -WPM_ENABLE = yes - +# POINTING_DEVICE_ENABLE = yes POINTING_DEVICE_DRIVER = pimoroni_trackball diff --git a/keyboards/sofle_pico/keymaps/via/config.h b/keyboards/sofle_pico/keymaps/via/config.h deleted file mode 100644 index c4ce821594d..00000000000 --- a/keyboards/sofle_pico/keymaps/via/config.h +++ /dev/null @@ -1,87 +0,0 @@ -// Copyright 2022 Dane Skalski (@Daneski13) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -// Number of Layers that can be used by VIA. -// Change this if you want more layers -#define DYNAMIC_KEYMAP_LAYER_COUNT 6 - -/* - Encoder settings - */ -#ifdef ENCODER_ENABLE -# define ENCODER_RESOLUTION 4 -#endif -#ifdef ENCODER_MAP_ENABLE -// Key delay for encoders (necessary for some keycodes) -# define ENCODER_MAP_KEY_DELAY 10 -#endif - -/* - - RGB - - Defines all effects so VIA can properly select them via index -*/ -#ifdef RGB_MATRIX_ENABLE - -// Default effect when EEPROM cleared -# define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_RAINBOW_MOVING_CHEVRON - -// Turns off RGB effects when there is no longer a USB connection -# define RGB_DISABLE_WHEN_USB_SUSPENDED - -// Allow keypress reactive animations -# define SPLIT_TRANSPORT_MIRROR // Necessary setting for key press animations on a split -# define RGB_MATRIX_KEYPRESSES // Enables key press effects - -// Allow frame buffer effects -# define RGB_MATRIX_FRAMEBUFFER_EFFECTS // Enables frame buffer effects - -// All effect definitions -# define ENABLE_RGB_MATRIX_ALPHAS_MODS // Enables RGB_MATRIX_ALPHAS_MODS -# define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN // Enables RGB_MATRIX_GRADIENT_UP_DOWN -# define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT // Enables RGB_MATRIX_GRADIENT_LEFT_RIGHT -# define ENABLE_RGB_MATRIX_BREATHING // Enables RGB_MATRIX_BREATHING -# define ENABLE_RGB_MATRIX_BAND_SAT // Enables RGB_MATRIX_BAND_SAT -# define ENABLE_RGB_MATRIX_BAND_VAL // Enables RGB_MATRIX_BAND_VAL -# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT // Enables RGB_MATRIX_BAND_PINWHEEL_SAT -# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL // Enables RGB_MATRIX_BAND_PINWHEEL_VAL -# define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT // Enables RGB_MATRIX_BAND_SPIRAL_SAT -# define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL // Enables RGB_MATRIX_BAND_SPIRAL_VAL -# define ENABLE_RGB_MATRIX_CYCLE_ALL // Enables RGB_MATRIX_CYCLE_ALL -# define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT // Enables RGB_MATRIX_CYCLE_LEFT_RIGHT -# define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN // Enables RGB_MATRIX_CYCLE_UP_DOWN -# define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON // Enables RGB_MATRIX_RAINBOW_MOVING_CHEVRON -# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN // Enables RGB_MATRIX_CYCLE_OUT_IN -# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL // Enables RGB_MATRIX_CYCLE_OUT_IN_DUAL -# define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL // Enables RGB_MATRIX_CYCLE_PINWHEEL -# define ENABLE_RGB_MATRIX_CYCLE_SPIRAL // Enables RGB_MATRIX_CYCLE_SPIRAL -# define ENABLE_RGB_MATRIX_DUAL_BEACON // Enables RGB_MATRIX_DUAL_BEACON -# define ENABLE_RGB_MATRIX_RAINBOW_BEACON // Enables RGB_MATRIX_RAINBOW_BEACON -# define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS // Enables RGB_MATRIX_RAINBOW_PINWHEELS -# define ENABLE_RGB_MATRIX_RAINDROPS // Enables RGB_MATRIX_RAINDROPS -# define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS // Enables RGB_MATRIX_JELLYBEAN_RAINDROPS -# define ENABLE_RGB_MATRIX_HUE_BREATHING // Enables RGB_MATRIX_HUE_BREATHING -# define ENABLE_RGB_MATRIX_HUE_PENDULUM // Enables RGB_MATRIX_HUE_PENDULUM -# define ENABLE_RGB_MATRIX_HUE_WAVE // Enables RGB_MATRIX_HUE_WAVE -# define ENABLE_RGB_MATRIX_PIXEL_FRACTAL // Enables RGB_MATRIX_PIXEL_FRACTAL -# define ENABLE_RGB_MATRIX_PIXEL_FLOW // Enables RGB_MATRIX_PIXEL_FLOW -# define ENABLE_RGB_MATRIX_PIXEL_RAIN // Enables RGB_MATRIX_PIXEL_RAIN - -// Following need RGB_MATRIX_FRAMEBUFFER_EFFECTS -# define ENABLE_RGB_MATRIX_TYPING_HEATMAP // Enables RGB_MATRIX_TYPING_HEATMAP -# define ENABLE_RGB_MATRIX_DIGITAL_RAIN // Enables RGB_MATRIX_DIGITAL_RAIN - -// Following need RGB_MATRIX_KEYPRESSES -# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE // Enables RGB_MATRIX_SOLID_REACTIVE_SIMPLE -# define ENABLE_RGB_MATRIX_SOLID_REACTIVE // Enables RGB_MATRIX_SOLID_REACTIVE -# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE // Enables RGB_MATRIX_SOLID_REACTIVE_WIDE -# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE // Enables RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE -# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS // Enables RGB_MATRIX_SOLID_REACTIVE_CROSS -# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS // Enables RGB_MATRIX_SOLID_REACTIVE_MULTICROSS -# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS // Enables RGB_MATRIX_SOLID_REACTIVE_NEXUS -# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS // Enables RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS -# define ENABLE_RGB_MATRIX_SPLASH // Enables RGB_MATRIX_SPLASH -# define ENABLE_RGB_MATRIX_MULTISPLASH // Enables RGB_MATRIX_MULTISPLASH -# define ENABLE_RGB_MATRIX_SOLID_SPLASH // Enables RGB_MATRIX_SOLID_SPLASH -# define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH // Enables RGB_MATRIX_SOLID_MULTISPLASH - -#endif diff --git a/keyboards/sofle_pico/keymaps/via/keymap.c b/keyboards/sofle_pico/keymaps/via/keymap.c deleted file mode 100644 index 2f0ab2e9f90..00000000000 --- a/keyboards/sofle_pico/keymaps/via/keymap.c +++ /dev/null @@ -1,161 +0,0 @@ -// Copyright 2022 Dane Skalski (@Daneski13) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H -// Layers enum -enum sofle_pico_layers { _QWERTY, _COLEMAK_DH, _SYMB, _EXT, _ADJUST }; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - // clang-format off - /* - Traditional QWERTY - ┌───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┐ - │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ - ├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤ - │Tab│ Q │ W │ E │ R │ T │ │ Y │ U │ I │ O │ P │Ent│ - ├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤ - │Esc│ A │ S │ D │ F │ G │ │ H │ J │ K │ L │ ; │ ' │ - ├───┼───┼───┼───┼───┼───┼───┐ ┌───┼───┼───┼───┼───┼───┼───┤ - │Sft│ Z │ X │ C │ V │ B │Mut│ │XXX│ N │ M │ , │ . │ / │Sft│ - └───┴───┴───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┴───┴───┘ - ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ - │Ctr│Win│Alt│Del│Spc│ │Sft│Bsp│Alt│Win│Ctr│ - └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ - For macOS - GUI (cmd) and Alt (opt) swapped - */ - [_QWERTY] = LAYOUT( - KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_ENTER, - KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SEMICOLON, KC_QUOTE, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MUTE, KC_NO, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LCTL, KC_LGUI, KC_LALT, LT(_EXT, KC_DEL), KC_SPC, KC_RSFT, LT(_SYMB, KC_BSPC), KC_RALT, KC_RGUI, KC_RCTL - ), - - /* - Colemak-DH - ┌───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┐ - │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ - ├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤ - │Tab│ Q │ W │ F │ P │ B │ │ J │ L │ U │ Y │ ; │Ent│ - ├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤ - │Esc│ A │ R │ S │ T │ G │ │ M │ N │ E │ I │ O │ ' │ - ├───┼───┼───┼───┼───┼───┼───┐ ┌───┼───┼───┼───┼───┼───┼───┤ - │Sft│ Z │ X │ C │ D │ V │Mut│ │XXX│ K │ H │ , │ . │ / │Sft│ - └───┴───┴───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┴───┴───┘ - ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ - │Ctr│Win│Alt│Del│Spc│ │Sft│Bsp│Alt│Win│Ctr│ - └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ - For macOS - GUI (cmd) and Alt (opt) swapped - */ - [_COLEMAK_DH] = LAYOUT( - KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, - KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SEMICOLON, KC_ENTER, - KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, KC_QUOTE, - KC_LSFT, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_MUTE, KC_NO, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LCTL, KC_LGUI, KC_LALT, LT(_EXT, KC_DEL), KC_SPC, KC_RSFT, LT(_SYMB, KC_BSPC), KC_RALT, KC_RGUI, KC_RCTL - ), - - /* - Symbols/Numpad Layer - ┌───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┐ - │F1 │F2 │F3 │F4 │F5 │F6 │ │F7 │F8 │F9 │F10│F11│F12│ - ├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤ - │Tab│ ! │ @ │ # │ $ │ % │ │ * │ 7 │ 8 │ 9 │ + │Ent│ - ├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤ - │ \ │ _ │ [ │ { │ ( │ ^ │ │ = │ 4 │ 5 │ 6 │ 0 │NUM│ - ├───┼───┼───┼───┼───┼───┼───┐ ┌───┼───┼───┼───┼───┼───┼───┤ - │___│ | │ ] │ } │ ) │ & │___│ │___│ / │ 1 │ 2 │ 3 │ - │___│ - └───┴───┴───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┴───┴───┘ - ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ - │___│___│___│___│___│ │___│___│___│___│___│ - └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ - */ - [_SYMB] = LAYOUT( - 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_TAB, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_PAST, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_ENTER, - KC_BSLS, KC_UNDS, KC_LBRC, KC_LCBR, KC_LPRN, KC_CIRC, KC_PEQL, KC_P4, KC_P5, KC_P6, KC_P0, KC_NUM, - _______, KC_PIPE, KC_RBRC, KC_RCBR, KC_RPRN, KC_AMPR, _______, _______, KC_PSLS, KC_P1, KC_P2, KC_P3, KC_PMNS, _______, - _______, _______, _______, MO(_ADJUST), _______, _______, _______, _______, _______, _______ - ), - - /* - Extension/Function Layer - ┌────┬────┬────┬────┬────┬────┐ ┌────┬────┬────┬────┬────┬────┐ - │ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ │ F7 │ F8 │ F9 │ F10│ F11│ F12│ - ├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤ - │ ⇤ │PGUP│End │ ↑ │Home│ │ │BRIU│ F7 │ F8 │ F9 │ F10│____│ - ├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤ - │Cps │PGDN│ ← │ ↓ │ → │ │ │BRID│ F4 │ F5 │ F6 │ F11│____│ - ├────┼────┼────┼────┼────┼────┼────┐ ┌────┼────┼────┼────┼────┼────┼────┤ - │____│ │ │ │ │ │____│ │ ▶⏸ │ │ F1 │ F2 │ F3 │ F12│____│ - └────┴────┴────┴────┴────┴────┴────┘ └────┴────┴────┴────┴────┴────┴────┘ - ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ - │___│___│___│___│___│ │___│___│___│___│___│ - └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ - */ - [_EXT] = LAYOUT( - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, - S(KC_TAB), KC_PGUP, KC_END, KC_UP, KC_HOME, _______, KC_BRIU, KC_F7, KC_F8, KC_F9, KC_F10, _______, - KC_CAPS, KC_PGDN, KC_LEFT, KC_DOWN, KC_RIGHT, _______, KC_BRID, KC_F4, KC_F5, KC_F6, KC_F11, _______, - _______, _______, _______, _______, _______, _______, _______, KC_MPLY, _______, KC_F1, KC_F2, KC_F3, KC_F12, _______, - _______, _______, _______, _______, _______, _______, MO(_ADJUST), _______, _______, _______ - ), - - /* - Adjust Layer, Keyboard Settings - ┌────┬────┬────┬────┬────┬────┐ ┌────┬────┬────┬────┬────┬────┐ - │ │ │ │ │ │ │ │ │ │ │ │ │ │ - ├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤ - │SpdU│HueU│SatU│ValU│Rnxt│ │ │ │EClr│Rbt │DBUG│BOOT│ │ - ├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤ - │SpdD│HueD│SatD│ValD│Rprv│RTgl│ │ │QWRT│COLE│ │ │ │ - ├────┼────┼────┼────┼────┼────┼────┐ ┌────┼────┼────┼────┼────┼────┼────┤ - │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - └────┴────┴────┴────┴────┴────┴────┘ └────┴────┴────┴────┴────┴────┴────┘ - ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ - │___│___│___│___│___│ │___│___│___│___│___│ - └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ - */ - [_ADJUST] = LAYOUT( - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - RGB_SPI, RGB_HUI, RGB_SAI, RGB_VAI, RGB_MOD, KC_NO, KC_NO, EE_CLR, QK_RBT, DB_TOGG, QK_BOOT, KC_NO, - RGB_SPD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_RMOD, RGB_TOG, KC_NO, DF(_QWERTY), DF(_COLEMAK_DH), 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, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ) - // clang-format on -}; - -/* - --- Rotary Encoder Mappings --- - - Encoder mappings go from leftmost encoder to rightmost encoder on the physical board. - index 0 is the the optional leftmost encoder on the left half, index 1 is the right encoder - on the left half (by the thumb keys), index 2 is the left encoder on the right half (by the - thumb keys), and index 3 is the optional rightmost encoder on the right half. - - If you are only using the 2 required encoders by the thumb keys, you only need to worry about - index 1 and index 2. - - Note that the key to be sent for counter-clockwise rotation (CCW) goes first and then the key for - clockwise (CW) within ENCODER_CCW_CW. -*/ -#ifdef ENCODER_MAP_ENABLE -// clang-format off - -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - // Base layer encoder mappings: - // index 0: mouse wheel up (CCW)/down (CW) index 1: volume down/up index 2: mouse wheel up/down index 3: mouse wheel left/right - [_QWERTY] = { ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN), ENCODER_CCW_CW(KC_WH_L, KC_WH_R) }, - [_COLEMAK_DH] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, - - // Passes through to base layers - [_SYMB] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, - // On the extension layer, the right side's left encoder by the thumb keys (mouse wheel up/down) is traded for media previous/next - [_EXT] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_MPRV, KC_MNXT), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, - // Passes through - [_ADJUST] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, - // clang-format on -}; - -#endif diff --git a/keyboards/sofle_pico/keymaps/via/rules.mk b/keyboards/sofle_pico/keymaps/via/rules.mk deleted file mode 100644 index fd9cd98bcb4..00000000000 --- a/keyboards/sofle_pico/keymaps/via/rules.mk +++ /dev/null @@ -1,19 +0,0 @@ -# Change from yes to no to disable features - -# Enables Audio control and System control Keycodes -EXTRAKEY_ENABLE = yes -# Enables Mousekeys -MOUSEKEY_ENABLE = yes -# Encoder Support -ENCODER_ENABLE = yes -# Use Enocoder Mapping -ENCODER_MAP_ENABLE = yes - -# Enables RGB Matrix -RGB_MATRIX_ENABLE = yes - -# Allows use of `qmk console` for debugging -# CONSOLE_ENABLE = yes - -# Enables VIA -VIA_ENABLE = yes diff --git a/keyboards/sofle_pico/rev1/post_config.h b/keyboards/sofle_pico/post_config.h similarity index 100% rename from keyboards/sofle_pico/rev1/post_config.h rename to keyboards/sofle_pico/post_config.h diff --git a/keyboards/sofle_pico/rev1/config.h b/keyboards/sofle_pico/rev1/config.h deleted file mode 100644 index b2604818294..00000000000 --- a/keyboards/sofle_pico/rev1/config.h +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright 2022 Dane Skalski (@Daneski13) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -// Split Keyboard Stuff -#define EE_HANDS // Sets the keyboard’s handedness using EEPROM -#define SERIAL_USART_FULL_DUPLEX // Use full duplex communication (TRRS) -#define SERIAL_USART_TX_PIN GP16 // USART TX pin -#define SERIAL_USART_RX_PIN GP17 // USART RX pin -#define SERIAL_USART_PIN_SWAP // Swap TX and RX pins if keyboard is master halve. (Only available on some MCUs) - -/* RGB Stuff */ -#ifdef RGB_MATRIX_ENABLE - -# define RGB_MATRIX_LED_COUNT 58 -# define RGB_MATRIX_SPLIT \ - { 29, 29 } // 29 LEDs on each side - -#endif - -// I2C for OLEDs -#define I2C_DRIVER I2CD1 -#define I2C1_SDA_PIN GP6 -#define I2C1_SCL_PIN GP7 - -#ifdef OLED_ENABLE - #define OLED_DISPLAY_128X64 - #define OLED_TIMEOUT 30000 -#endif \ No newline at end of file diff --git a/keyboards/sofle_pico/rev1/rev1.c b/keyboards/sofle_pico/rev1/rev1.c deleted file mode 100644 index 2be1f8a530c..00000000000 --- a/keyboards/sofle_pico/rev1/rev1.c +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Dane Skalski (@Daneski13) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "quantum.h" - -/* RGB LED matrix */ -#ifdef RGB_MATRIX_ENABLE - -// clang-format off -led_config_t g_led_config = { - { - // Key Matrix to LED Index - // Left - { 28, 21, 20, 11, 10, 0 }, - { 27, 22, 19, 12, 9, 1 }, - { 26, 23, 18, 13, 8, 2 }, - { 25, 24, 17, 14, 7, 3 }, - { 16, 15, 6, 5, 4, NO_LED }, - - // Right - { 57, 50, 49, 40, 39, 29 }, - { 56, 51, 48, 41, 38, 30 }, - { 55, 52, 47, 42, 37, 31 }, - { 54, 53, 46, 43, 36, 32 }, - { 45, 44, 35, 34, 33, NO_LED } - }, { - // LED Index to Physical Position - // Left - { 95, 7 }, { 95, 21 }, { 95, 36 }, { 95, 50 }, { 115, 64 }, - { 95, 64 }, { 76, 62 }, { 76, 48 }, { 76, 33 }, { 76, 19 }, - { 76, 5 }, { 57, 3 }, { 57, 17 }, { 57, 31 }, { 57, 46 }, - { 57, 62 }, { 38, 64 }, { 38, 48 }, { 38, 33 }, { 38, 19 }, - { 38, 5 }, { 19, 7 }, { 19, 21 }, { 19, 36 }, { 19, 50 }, - { 0, 50 }, { 0, 36 }, { 0, 21 }, { 0, 7 }, - - // Right - { 129, 7 }, { 129, 21 }, { 129, 36 }, { 129, 50 }, { 119, 64 }, - { 129, 64 }, { 148, 62 }, { 148, 48 }, { 148, 33 }, { 148, 19 }, - { 148, 5 }, { 167, 3 }, { 167, 17 }, { 167, 31 }, { 167, 46 }, - { 167, 62 }, { 186, 64 }, { 186, 48 }, { 186, 33 }, { 186, 19 }, - { 186, 5 }, { 209, 7 }, { 209, 21 }, { 209, 36 }, { 209, 50 }, - { 224, 50 }, { 224, 36 }, { 224, 21 }, { 224, 7 } - }, { - // LED Index to Flag - // Left - 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, - 1, 1, 1, 1, - - // Right - 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, - 1, 1, 1, 1 - } -}; - -#endif diff --git a/keyboards/sofle_pico/rev1/rules.mk b/keyboards/sofle_pico/rev1/rules.mk deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/keyboards/sofle_pico/rules.mk b/keyboards/sofle_pico/rules.mk index af65d89c739..e310b3bbdda 100644 --- a/keyboards/sofle_pico/rules.mk +++ b/keyboards/sofle_pico/rules.mk @@ -1,17 +1,20 @@ # Split Keyboard Stuff SPLIT_KEYBOARD = yes SERIAL_DRIVER = vendor - -# Enable Bootmagic Lite -BOOTMAGIC_ENABLE = yes - -# Default Folder -DEFAULT_FOLDER = sofle_pico/rev1 - # @todo: Move to json # OLED_DRIVER = SSD1306 OLED_TRANSPORT = i2c +# Encoder Support +ENCODER_ENABLE = yes +# Use Enocoder Mapping +ENCODER_MAP_ENABLE = yes +# Turn on tap dance: +TAP_DANCE_ENABLE = no +# Enables RGB Lighting Effects +RGB_MATRIX_ENABLE = yes +# Dynamic Tapping Term: +DYNAMIC_TAPPING_TERM_ENABLE = yes -# Solenoid -# HAPTIC_ENABLE = yes -# HAPTIC_DRIVER += SOLENOID +OLED_ENABLE = yes +# OLED_DRIVER = SSD1306 +WPM_ENABLE = yes \ No newline at end of file From 73b8a65aca028b01a08ae52b41b9836854c16b8d Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Tue, 28 Nov 2023 16:17:04 -0800 Subject: [PATCH 16/87] Moved most of rules.mk to info.json Removed bootmagic --- keyboards/sofle_pico/info.json | 12 ++++++++++-- keyboards/sofle_pico/post_config.h | 15 --------------- keyboards/sofle_pico/rules.mk | 14 -------------- 3 files changed, 10 insertions(+), 31 deletions(-) delete mode 100644 keyboards/sofle_pico/post_config.h diff --git a/keyboards/sofle_pico/info.json b/keyboards/sofle_pico/info.json index 5bd06551ce2..e3f708a1363 100644 --- a/keyboards/sofle_pico/info.json +++ b/keyboards/sofle_pico/info.json @@ -2,6 +2,7 @@ "manufacturer": "Ryan Neff", "keyboard_name": "sofle_pico", "url": "https://github.com/JellyTitan/sofle_pico", + "bootloader_instructions": "Hold the BOOT button while plugging in the usb cable", "maintainer": "Ryan Neff ", "tags": ["ortho", "split", "rgb", "encoder", "OLED"], "usb": { @@ -10,12 +11,19 @@ "device_version": "3.5.1" }, "features": { - "bootmagic": true, + "bootmagic": false, "command": false, + "dynamic_tapping_term": true, + "encoder": true, + "encoder_map": true, "console": false, "extrakey": true, "mousekey": true, - "nkro": true + "tap_dance": true, + "nkro": true, + "rgb_matrix": true, + "oled": true, + "wpm": true }, "ws2812": { "pin": "GP0", diff --git a/keyboards/sofle_pico/post_config.h b/keyboards/sofle_pico/post_config.h deleted file mode 100644 index bcc15a941a0..00000000000 --- a/keyboards/sofle_pico/post_config.h +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright 2022 Dane Skalski (@Daneski13) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -/* Default Bootmagic lite */ -// Top left for left side is default in core - -// Top right for right side -#ifndef BOOTMAGIC_LITE_ROW_RIGHT -# define BOOTMAGIC_LITE_ROW_RIGHT 5 -#endif -#ifndef BOOTMAGIC_LITE_COLUMN_RIGHT -# define BOOTMAGIC_LITE_COLUMN_RIGHT 0 -#endif diff --git a/keyboards/sofle_pico/rules.mk b/keyboards/sofle_pico/rules.mk index e310b3bbdda..d33f6363cb8 100644 --- a/keyboards/sofle_pico/rules.mk +++ b/keyboards/sofle_pico/rules.mk @@ -4,17 +4,3 @@ SERIAL_DRIVER = vendor # @todo: Move to json # OLED_DRIVER = SSD1306 OLED_TRANSPORT = i2c -# Encoder Support -ENCODER_ENABLE = yes -# Use Enocoder Mapping -ENCODER_MAP_ENABLE = yes -# Turn on tap dance: -TAP_DANCE_ENABLE = no -# Enables RGB Lighting Effects -RGB_MATRIX_ENABLE = yes -# Dynamic Tapping Term: -DYNAMIC_TAPPING_TERM_ENABLE = yes - -OLED_ENABLE = yes -# OLED_DRIVER = SSD1306 -WPM_ENABLE = yes \ No newline at end of file From 86e8ae126d974efd9ac6192a0560903c2a6d4a1f Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Tue, 28 Nov 2023 16:22:21 -0800 Subject: [PATCH 17/87] Removed OLED transport config rule It was redundant because it uses default transport I2C --- keyboards/sofle_pico/rules.mk | 2 -- 1 file changed, 2 deletions(-) diff --git a/keyboards/sofle_pico/rules.mk b/keyboards/sofle_pico/rules.mk index d33f6363cb8..95cf4bb8fcd 100644 --- a/keyboards/sofle_pico/rules.mk +++ b/keyboards/sofle_pico/rules.mk @@ -2,5 +2,3 @@ SPLIT_KEYBOARD = yes SERIAL_DRIVER = vendor # @todo: Move to json -# OLED_DRIVER = SSD1306 -OLED_TRANSPORT = i2c From 67753d72e9f738cc1291f75ba09ec462581522aa Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Wed, 29 Nov 2023 13:10:13 -0800 Subject: [PATCH 18/87] Shows logo on startup for 5 seconds --- .../sofle_pico/keymaps/jellytitan/keymap.c | 172 ++++++++++-------- 1 file changed, 94 insertions(+), 78 deletions(-) diff --git a/keyboards/sofle_pico/keymaps/jellytitan/keymap.c b/keyboards/sofle_pico/keymaps/jellytitan/keymap.c index 1bd0f8dd5ce..ca8f6e982ce 100644 --- a/keyboards/sofle_pico/keymaps/jellytitan/keymap.c +++ b/keyboards/sofle_pico/keymaps/jellytitan/keymap.c @@ -197,89 +197,97 @@ }; #endif + // Default timeout for displaying logo on boot. + #ifndef OLED_LOGO_TIMEOUT + #define OLED_LOGO_TIMEOUT 5000 + #endif + #ifdef OLED_ENABLE + uint16_t startup_timer; oled_rotation_t oled_init_user(oled_rotation_t rotation) { + startup_timer = timer_read(); - if (is_keyboard_master()) { - if(is_keyboard_left()){ - return OLED_ROTATION_90; - } - else { - return OLED_ROTATION_270; - } - } else { + if (is_keyboard_master()) { + if(is_keyboard_left()){ return OLED_ROTATION_90; - } + } + else { + return OLED_ROTATION_270; + } + } else { + return OLED_ROTATION_90; + } } static void render_logo(void) { + // @todo - should we split this into a seperate file? kb16 has a good example. static const char PROGMEM sofle_pico_logo[] = { - // 'sofle-pico-vector-logo-v3bw', 64x128px -0x00, 0x00, 0xf8, 0xfc, 0xdc, 0x8e, 0x0e, 0x0e, 0x1c, 0x1c, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xfe, 0xfe, 0x87, 0x03, 0x03, -0x9f, 0xfe, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x60, 0xe0, 0xe1, 0x83, 0x03, 0x07, 0x87, 0xce, 0xfe, 0xfc, 0x00, 0x00, 0x38, 0xfe, 0xff, -0x87, 0x03, 0x03, 0x03, 0x83, 0xef, 0xfe, 0xfc, 0x00, 0x00, 0xff, 0xff, 0xff, 0x03, 0x03, 0x03, -0x07, 0xff, 0xff, 0x00, 0x00, 0x30, 0xfe, 0xff, 0xbf, 0x1b, 0x1b, 0x1b, 0x9f, 0xff, 0x9e, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0xe1, 0xe3, 0x63, 0x63, 0x63, 0xe3, 0xe3, 0xc1, 0x80, 0x00, 0x40, 0xe0, 0xe0, 0x41, -0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x00, 0x00, 0x00, -0x00, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0xff, 0xff, 0x70, 0x70, 0x30, 0x38, 0x3f, 0x1f, 0x0f, 0x00, 0x00, 0xf8, 0xf8, 0x00, -0x00, 0x00, 0xe0, 0xf0, 0x38, 0x1c, 0x1c, 0x1c, 0x1c, 0x38, 0x00, 0x00, 0xe0, 0xf0, 0x78, 0x18, -0x1c, 0x1c, 0x1c, 0x38, 0xf8, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x00, -0x00, 0x00, 0x07, 0x0f, 0x1e, 0x1c, 0x18, 0x18, 0x1c, 0x1c, 0x00, 0x00, 0x07, 0x0f, 0x1e, 0x1c, -0x18, 0x18, 0x18, 0x1c, 0x0f, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0xe0, 0xf0, 0xf0, 0xf0, 0x78, 0x38, 0x38, 0x38, 0x1c, 0x3c, 0x1c, 0x1c, 0x1c, 0x38, 0x38, -0x38, 0x38, 0x78, 0x70, 0xf0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xf0, 0x78, 0x38, 0x3c, 0x1c, 0x1c, 0x1c, -0x1c, 0x0e, 0x0e, 0x0e, 0x1e, 0x0e, 0x1c, 0x1c, 0x1c, 0x38, 0xb8, 0xf8, 0xf8, 0xf0, 0x00, 0x00, -0x00, 0x03, 0x3f, 0x7f, 0xff, 0xf0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x02, 0x04, 0x04, 0x08, 0x18, -0x10, 0x30, 0x60, 0xc0, 0xc0, 0xc1, 0xff, 0x7f, 0x3e, 0x80, 0x80, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, -0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x80, 0x9e, 0xbf, 0x7f, 0xf1, 0xe0, 0xe0, 0x30, 0x10, 0x08, 0x0c, -0x04, 0x02, 0x02, 0x00, 0x01, 0x00, 0x00, 0x80, 0xe0, 0xf8, 0xfe, 0x7f, 0x1f, 0x03, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x07, 0x0e, 0x1e, 0x1c, 0x3c, 0x38, 0x38, 0x38, 0x38, -0x18, 0x9c, 0xce, 0xef, 0xff, 0xfd, 0xfe, 0x1e, 0x0f, 0x07, 0x03, 0x03, 0x01, 0x01, 0x01, 0x01, -0x01, 0x01, 0x01, 0x01, 0x03, 0x03, 0x07, 0x0f, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xce, 0x9c, 0x1c, -0x1c, 0x1c, 0x1c, 0x1c, 0x1e, 0x0f, 0x07, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf8, 0xfc, -0x3f, 0x1f, 0x1f, 0x1f, 0x3f, 0x7f, 0xff, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xf0, 0xfe, 0x3f, 0x1f, 0x0f, 0x0f, 0x1f, 0x3f, -0xfc, 0xf8, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x3f, 0x7d, -0xf0, 0xc0, 0xc0, 0x80, 0x80, 0xc0, 0xfb, 0xff, 0x3f, 0x3f, 0x1f, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, -0x0e, 0x0e, 0x0e, 0x0e, 0x1f, 0x1f, 0x3f, 0x3f, 0x7f, 0xff, 0xc0, 0xc0, 0xc0, 0xc0, 0xe0, 0xf0, -0x7f, 0x3f, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x01, 0x03, 0x03, 0x07, 0x0f, 0x1f, 0x3e, 0x38, 0x70, 0x60, 0xe0, 0xe0, 0xc0, 0xc0, 0xc0, -0xc0, 0xc0, 0xc0, 0xc0, 0xe0, 0xe0, 0x70, 0x78, 0x3c, 0x3f, 0x1f, 0x0f, 0x07, 0x03, 0x01, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0x80, 0x00, -0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x1c, 0x38, 0x0e, 0x00, 0x11, 0x30, 0x26, 0x3f, 0x19, -0x00, 0x20, 0x20, 0x00, 0x1f, 0x30, 0x20, 0x31, 0x1f, 0x10, 0x18, 0x1e, 0x1b, 0x3f, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0xd8, 0xfc, 0x6c, 0xfc, 0xd8, 0x00, 0x80, 0x80, 0x18, 0x0c, 0xcc, 0x78, 0x10, 0x00, -0x80, 0xe0, 0xf0, 0xf8, 0x80, 0x80, 0x80, 0x00, 0x18, 0x8c, 0xcc, 0x78, 0x10, 0x00, 0xf8, 0x0c, -0x0c, 0x98, 0xf0, 0x00, 0x18, 0x8c, 0xcc, 0x78, 0x00, 0x00, 0x18, 0x0c, 0x6c, 0xf8, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, -0x00, 0x00, 0x01, 0x03, 0x02, 0xc3, 0xc1, 0x00, 0x00, 0xc0, 0x02, 0x03, 0x03, 0x02, 0x02, 0x00, -0x01, 0xc1, 0x01, 0xc3, 0x01, 0x00, 0x00, 0x00, 0x03, 0x03, 0xc3, 0xc2, 0xc0, 0xc0, 0xc1, 0x83, -0x83, 0x03, 0x80, 0x00, 0x03, 0x03, 0x03, 0x02, 0x00, 0x00, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xfe, 0xa2, 0xb2, 0xfe, 0x00, 0x3f, 0x07, 0x02, -0x3e, 0x00, 0xe0, 0x38, 0x0e, 0x01, 0x00, 0x20, 0x30, 0x1f, 0x00, 0x1c, 0x3e, 0x3a, 0x3e, 0x1c, -0x1f, 0x3f, 0x00, 0x3f, 0x00, 0x82, 0xce, 0x38, 0x0c, 0x06, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, -0x3e, 0x00, 0x3f, 0x02, 0x08, 0x3e, 0x22, 0x32, 0x3e, 0x00, 0x3e, 0x1e, 0x02, 0x3e, 0x00, 0x00 + // 'sofle-pico-vector-logo-v3bw', 64x128px + 0x00, 0x00, 0xf8, 0xfc, 0xdc, 0x8e, 0x0e, 0x0e, 0x1c, 0x1c, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xfe, 0xfe, 0x87, 0x03, 0x03, + 0x9f, 0xfe, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x60, 0xe0, 0xe1, 0x83, 0x03, 0x07, 0x87, 0xce, 0xfe, 0xfc, 0x00, 0x00, 0x38, 0xfe, 0xff, + 0x87, 0x03, 0x03, 0x03, 0x83, 0xef, 0xfe, 0xfc, 0x00, 0x00, 0xff, 0xff, 0xff, 0x03, 0x03, 0x03, + 0x07, 0xff, 0xff, 0x00, 0x00, 0x30, 0xfe, 0xff, 0xbf, 0x1b, 0x1b, 0x1b, 0x9f, 0xff, 0x9e, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe1, 0xe3, 0x63, 0x63, 0x63, 0xe3, 0xe3, 0xc1, 0x80, 0x00, 0x40, 0xe0, 0xe0, 0x41, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0x70, 0x70, 0x30, 0x38, 0x3f, 0x1f, 0x0f, 0x00, 0x00, 0xf8, 0xf8, 0x00, + 0x00, 0x00, 0xe0, 0xf0, 0x38, 0x1c, 0x1c, 0x1c, 0x1c, 0x38, 0x00, 0x00, 0xe0, 0xf0, 0x78, 0x18, + 0x1c, 0x1c, 0x1c, 0x38, 0xf8, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x00, + 0x00, 0x00, 0x07, 0x0f, 0x1e, 0x1c, 0x18, 0x18, 0x1c, 0x1c, 0x00, 0x00, 0x07, 0x0f, 0x1e, 0x1c, + 0x18, 0x18, 0x18, 0x1c, 0x0f, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0xf0, 0xf0, 0xf0, 0x78, 0x38, 0x38, 0x38, 0x1c, 0x3c, 0x1c, 0x1c, 0x1c, 0x38, 0x38, + 0x38, 0x38, 0x78, 0x70, 0xf0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xf0, 0x78, 0x38, 0x3c, 0x1c, 0x1c, 0x1c, + 0x1c, 0x0e, 0x0e, 0x0e, 0x1e, 0x0e, 0x1c, 0x1c, 0x1c, 0x38, 0xb8, 0xf8, 0xf8, 0xf0, 0x00, 0x00, + 0x00, 0x03, 0x3f, 0x7f, 0xff, 0xf0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x02, 0x04, 0x04, 0x08, 0x18, + 0x10, 0x30, 0x60, 0xc0, 0xc0, 0xc1, 0xff, 0x7f, 0x3e, 0x80, 0x80, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, + 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x80, 0x9e, 0xbf, 0x7f, 0xf1, 0xe0, 0xe0, 0x30, 0x10, 0x08, 0x0c, + 0x04, 0x02, 0x02, 0x00, 0x01, 0x00, 0x00, 0x80, 0xe0, 0xf8, 0xfe, 0x7f, 0x1f, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x07, 0x0e, 0x1e, 0x1c, 0x3c, 0x38, 0x38, 0x38, 0x38, + 0x18, 0x9c, 0xce, 0xef, 0xff, 0xfd, 0xfe, 0x1e, 0x0f, 0x07, 0x03, 0x03, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x03, 0x03, 0x07, 0x0f, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xce, 0x9c, 0x1c, + 0x1c, 0x1c, 0x1c, 0x1c, 0x1e, 0x0f, 0x07, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf8, 0xfc, + 0x3f, 0x1f, 0x1f, 0x1f, 0x3f, 0x7f, 0xff, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xf0, 0xfe, 0x3f, 0x1f, 0x0f, 0x0f, 0x1f, 0x3f, + 0xfc, 0xf8, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x3f, 0x7d, + 0xf0, 0xc0, 0xc0, 0x80, 0x80, 0xc0, 0xfb, 0xff, 0x3f, 0x3f, 0x1f, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, + 0x0e, 0x0e, 0x0e, 0x0e, 0x1f, 0x1f, 0x3f, 0x3f, 0x7f, 0xff, 0xc0, 0xc0, 0xc0, 0xc0, 0xe0, 0xf0, + 0x7f, 0x3f, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x03, 0x03, 0x07, 0x0f, 0x1f, 0x3e, 0x38, 0x70, 0x60, 0xe0, 0xe0, 0xc0, 0xc0, 0xc0, + 0xc0, 0xc0, 0xc0, 0xc0, 0xe0, 0xe0, 0x70, 0x78, 0x3c, 0x3f, 0x1f, 0x0f, 0x07, 0x03, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0x80, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x1c, 0x38, 0x0e, 0x00, 0x11, 0x30, 0x26, 0x3f, 0x19, + 0x00, 0x20, 0x20, 0x00, 0x1f, 0x30, 0x20, 0x31, 0x1f, 0x10, 0x18, 0x1e, 0x1b, 0x3f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xd8, 0xfc, 0x6c, 0xfc, 0xd8, 0x00, 0x80, 0x80, 0x18, 0x0c, 0xcc, 0x78, 0x10, 0x00, + 0x80, 0xe0, 0xf0, 0xf8, 0x80, 0x80, 0x80, 0x00, 0x18, 0x8c, 0xcc, 0x78, 0x10, 0x00, 0xf8, 0x0c, + 0x0c, 0x98, 0xf0, 0x00, 0x18, 0x8c, 0xcc, 0x78, 0x00, 0x00, 0x18, 0x0c, 0x6c, 0xf8, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x03, 0x02, 0xc3, 0xc1, 0x00, 0x00, 0xc0, 0x02, 0x03, 0x03, 0x02, 0x02, 0x00, + 0x01, 0xc1, 0x01, 0xc3, 0x01, 0x00, 0x00, 0x00, 0x03, 0x03, 0xc3, 0xc2, 0xc0, 0xc0, 0xc1, 0x83, + 0x83, 0x03, 0x80, 0x00, 0x03, 0x03, 0x03, 0x02, 0x00, 0x00, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xfe, 0xa2, 0xb2, 0xfe, 0x00, 0x3f, 0x07, 0x02, + 0x3e, 0x00, 0xe0, 0x38, 0x0e, 0x01, 0x00, 0x20, 0x30, 0x1f, 0x00, 0x1c, 0x3e, 0x3a, 0x3e, 0x1c, + 0x1f, 0x3f, 0x00, 0x3f, 0x00, 0x82, 0xce, 0x38, 0x0c, 0x06, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, + 0x3e, 0x00, 0x3f, 0x02, 0x08, 0x3e, 0x22, 0x32, 0x3e, 0x00, 0x3e, 0x1e, 0x02, 0x3e, 0x00, 0x00 }; oled_write_raw_P(sofle_pico_logo, sizeof(sofle_pico_logo)); } @@ -315,12 +323,20 @@ } bool oled_task_user(void) { - if (is_keyboard_master()) { - render_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc) - } else { + static bool finished_logo = false; + if ((timer_elapsed(startup_timer) < OLED_LOGO_TIMEOUT) && !finished_logo) { render_logo(); + } else { + finished_logo = true; + if (is_keyboard_master()) { + render_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc) + } else { + render_logo(); + } + return false; } - return false; + return true; + } #endif \ No newline at end of file From 161b8f5c8d044d965a824ce3275be8995a3ef246 Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Wed, 29 Nov 2023 13:30:30 -0800 Subject: [PATCH 19/87] Wipes OLED after startup logo --- keyboards/sofle_pico/keymaps/jellytitan/keymap.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/keyboards/sofle_pico/keymaps/jellytitan/keymap.c b/keyboards/sofle_pico/keymaps/jellytitan/keymap.c index ca8f6e982ce..35cace83bd3 100644 --- a/keyboards/sofle_pico/keymaps/jellytitan/keymap.c +++ b/keyboards/sofle_pico/keymaps/jellytitan/keymap.c @@ -325,9 +325,16 @@ bool oled_task_user(void) { static bool finished_logo = false; if ((timer_elapsed(startup_timer) < OLED_LOGO_TIMEOUT) && !finished_logo) { + // Display the logo for 5 seconds on boot. render_logo(); } else { - finished_logo = true; + // Display the current keyboard state. + if (!finished_logo) { + // Clears the OLED. + oled_clear(); + } else { + finished_logo = true; + } if (is_keyboard_master()) { render_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc) } else { From e479049283455bf6b5295a529e30da6c189d4856 Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Wed, 29 Nov 2023 16:06:40 -0800 Subject: [PATCH 20/87] Moved SPLIT_KEYBOARD setting from rules to .json --- keyboards/sofle_pico/info.json | 1 + .../sofle_pico/keymaps/jellytitan/keymap.c | 151 ++++++++++-------- keyboards/sofle_pico/post_config.h | 15 ++ keyboards/sofle_pico/rules.mk | 2 - 4 files changed, 98 insertions(+), 71 deletions(-) create mode 100644 keyboards/sofle_pico/post_config.h diff --git a/keyboards/sofle_pico/info.json b/keyboards/sofle_pico/info.json index e3f708a1363..50678b0afa9 100644 --- a/keyboards/sofle_pico/info.json +++ b/keyboards/sofle_pico/info.json @@ -116,6 +116,7 @@ ] }, "split": { + "enabled": true, "encoder": { "right": { "rotary": [ diff --git a/keyboards/sofle_pico/keymaps/jellytitan/keymap.c b/keyboards/sofle_pico/keymaps/jellytitan/keymap.c index 35cace83bd3..3d2d52d0ed3 100644 --- a/keyboards/sofle_pico/keymaps/jellytitan/keymap.c +++ b/keyboards/sofle_pico/keymaps/jellytitan/keymap.c @@ -220,76 +220,85 @@ return OLED_ROTATION_90; } } + static void render_qmk_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 render_logo(void) { // @todo - should we split this into a seperate file? kb16 has a good example. - static const char PROGMEM sofle_pico_logo[] = { - // 'sofle-pico-vector-logo-v3bw', 64x128px - 0x00, 0x00, 0xf8, 0xfc, 0xdc, 0x8e, 0x0e, 0x0e, 0x1c, 0x1c, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xfe, 0xfe, 0x87, 0x03, 0x03, - 0x9f, 0xfe, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x60, 0xe0, 0xe1, 0x83, 0x03, 0x07, 0x87, 0xce, 0xfe, 0xfc, 0x00, 0x00, 0x38, 0xfe, 0xff, - 0x87, 0x03, 0x03, 0x03, 0x83, 0xef, 0xfe, 0xfc, 0x00, 0x00, 0xff, 0xff, 0xff, 0x03, 0x03, 0x03, - 0x07, 0xff, 0xff, 0x00, 0x00, 0x30, 0xfe, 0xff, 0xbf, 0x1b, 0x1b, 0x1b, 0x9f, 0xff, 0x9e, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xe1, 0xe3, 0x63, 0x63, 0x63, 0xe3, 0xe3, 0xc1, 0x80, 0x00, 0x40, 0xe0, 0xe0, 0x41, - 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x00, 0x00, 0x00, - 0x00, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0x70, 0x70, 0x30, 0x38, 0x3f, 0x1f, 0x0f, 0x00, 0x00, 0xf8, 0xf8, 0x00, - 0x00, 0x00, 0xe0, 0xf0, 0x38, 0x1c, 0x1c, 0x1c, 0x1c, 0x38, 0x00, 0x00, 0xe0, 0xf0, 0x78, 0x18, - 0x1c, 0x1c, 0x1c, 0x38, 0xf8, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x00, - 0x00, 0x00, 0x07, 0x0f, 0x1e, 0x1c, 0x18, 0x18, 0x1c, 0x1c, 0x00, 0x00, 0x07, 0x0f, 0x1e, 0x1c, - 0x18, 0x18, 0x18, 0x1c, 0x0f, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xe0, 0xf0, 0xf0, 0xf0, 0x78, 0x38, 0x38, 0x38, 0x1c, 0x3c, 0x1c, 0x1c, 0x1c, 0x38, 0x38, - 0x38, 0x38, 0x78, 0x70, 0xf0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xf0, 0x78, 0x38, 0x3c, 0x1c, 0x1c, 0x1c, - 0x1c, 0x0e, 0x0e, 0x0e, 0x1e, 0x0e, 0x1c, 0x1c, 0x1c, 0x38, 0xb8, 0xf8, 0xf8, 0xf0, 0x00, 0x00, - 0x00, 0x03, 0x3f, 0x7f, 0xff, 0xf0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x02, 0x04, 0x04, 0x08, 0x18, - 0x10, 0x30, 0x60, 0xc0, 0xc0, 0xc1, 0xff, 0x7f, 0x3e, 0x80, 0x80, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, - 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x80, 0x9e, 0xbf, 0x7f, 0xf1, 0xe0, 0xe0, 0x30, 0x10, 0x08, 0x0c, - 0x04, 0x02, 0x02, 0x00, 0x01, 0x00, 0x00, 0x80, 0xe0, 0xf8, 0xfe, 0x7f, 0x1f, 0x03, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x07, 0x0e, 0x1e, 0x1c, 0x3c, 0x38, 0x38, 0x38, 0x38, - 0x18, 0x9c, 0xce, 0xef, 0xff, 0xfd, 0xfe, 0x1e, 0x0f, 0x07, 0x03, 0x03, 0x01, 0x01, 0x01, 0x01, - 0x01, 0x01, 0x01, 0x01, 0x03, 0x03, 0x07, 0x0f, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xce, 0x9c, 0x1c, - 0x1c, 0x1c, 0x1c, 0x1c, 0x1e, 0x0f, 0x07, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf8, 0xfc, - 0x3f, 0x1f, 0x1f, 0x1f, 0x3f, 0x7f, 0xff, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xf0, 0xfe, 0x3f, 0x1f, 0x0f, 0x0f, 0x1f, 0x3f, - 0xfc, 0xf8, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x3f, 0x7d, - 0xf0, 0xc0, 0xc0, 0x80, 0x80, 0xc0, 0xfb, 0xff, 0x3f, 0x3f, 0x1f, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, - 0x0e, 0x0e, 0x0e, 0x0e, 0x1f, 0x1f, 0x3f, 0x3f, 0x7f, 0xff, 0xc0, 0xc0, 0xc0, 0xc0, 0xe0, 0xf0, - 0x7f, 0x3f, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x01, 0x03, 0x03, 0x07, 0x0f, 0x1f, 0x3e, 0x38, 0x70, 0x60, 0xe0, 0xe0, 0xc0, 0xc0, 0xc0, - 0xc0, 0xc0, 0xc0, 0xc0, 0xe0, 0xe0, 0x70, 0x78, 0x3c, 0x3f, 0x1f, 0x0f, 0x07, 0x03, 0x01, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0x80, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x1c, 0x38, 0x0e, 0x00, 0x11, 0x30, 0x26, 0x3f, 0x19, - 0x00, 0x20, 0x20, 0x00, 0x1f, 0x30, 0x20, 0x31, 0x1f, 0x10, 0x18, 0x1e, 0x1b, 0x3f, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xd8, 0xfc, 0x6c, 0xfc, 0xd8, 0x00, 0x80, 0x80, 0x18, 0x0c, 0xcc, 0x78, 0x10, 0x00, - 0x80, 0xe0, 0xf0, 0xf8, 0x80, 0x80, 0x80, 0x00, 0x18, 0x8c, 0xcc, 0x78, 0x10, 0x00, 0xf8, 0x0c, - 0x0c, 0x98, 0xf0, 0x00, 0x18, 0x8c, 0xcc, 0x78, 0x00, 0x00, 0x18, 0x0c, 0x6c, 0xf8, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, - 0x00, 0x00, 0x01, 0x03, 0x02, 0xc3, 0xc1, 0x00, 0x00, 0xc0, 0x02, 0x03, 0x03, 0x02, 0x02, 0x00, - 0x01, 0xc1, 0x01, 0xc3, 0x01, 0x00, 0x00, 0x00, 0x03, 0x03, 0xc3, 0xc2, 0xc0, 0xc0, 0xc1, 0x83, - 0x83, 0x03, 0x80, 0x00, 0x03, 0x03, 0x03, 0x02, 0x00, 0x00, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xfe, 0xa2, 0xb2, 0xfe, 0x00, 0x3f, 0x07, 0x02, - 0x3e, 0x00, 0xe0, 0x38, 0x0e, 0x01, 0x00, 0x20, 0x30, 0x1f, 0x00, 0x1c, 0x3e, 0x3a, 0x3e, 0x1c, - 0x1f, 0x3f, 0x00, 0x3f, 0x00, 0x82, 0xce, 0x38, 0x0c, 0x06, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x3f, 0x02, 0x08, 0x3e, 0x22, 0x32, 0x3e, 0x00, 0x3e, 0x1e, 0x02, 0x3e, 0x00, 0x00 - }; - oled_write_raw_P(sofle_pico_logo, sizeof(sofle_pico_logo)); + static const char PROGMEM sofle_pico_logo[] = { + // 'sofle-pico-vector-logo-v3bw', 64x128px + 0x00, 0x00, 0xf8, 0xfc, 0xdc, 0x8e, 0x0e, 0x0e, 0x1c, 0x1c, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xfe, 0xfe, 0x87, 0x03, 0x03, + 0x9f, 0xfe, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x60, 0xe0, 0xe1, 0x83, 0x03, 0x07, 0x87, 0xce, 0xfe, 0xfc, 0x00, 0x00, 0x38, 0xfe, 0xff, + 0x87, 0x03, 0x03, 0x03, 0x83, 0xef, 0xfe, 0xfc, 0x00, 0x00, 0xff, 0xff, 0xff, 0x03, 0x03, 0x03, + 0x07, 0xff, 0xff, 0x00, 0x00, 0x30, 0xfe, 0xff, 0xbf, 0x1b, 0x1b, 0x1b, 0x9f, 0xff, 0x9e, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe1, 0xe3, 0x63, 0x63, 0x63, 0xe3, 0xe3, 0xc1, 0x80, 0x00, 0x40, 0xe0, 0xe0, 0x41, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0x70, 0x70, 0x30, 0x38, 0x3f, 0x1f, 0x0f, 0x00, 0x00, 0xf8, 0xf8, 0x00, + 0x00, 0x00, 0xe0, 0xf0, 0x38, 0x1c, 0x1c, 0x1c, 0x1c, 0x38, 0x00, 0x00, 0xe0, 0xf0, 0x78, 0x18, + 0x1c, 0x1c, 0x1c, 0x38, 0xf8, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x00, + 0x00, 0x00, 0x07, 0x0f, 0x1e, 0x1c, 0x18, 0x18, 0x1c, 0x1c, 0x00, 0x00, 0x07, 0x0f, 0x1e, 0x1c, + 0x18, 0x18, 0x18, 0x1c, 0x0f, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0xf0, 0xf0, 0xf0, 0x78, 0x38, 0x38, 0x38, 0x1c, 0x3c, 0x1c, 0x1c, 0x1c, 0x38, 0x38, + 0x38, 0x38, 0x78, 0x70, 0xf0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xf0, 0x78, 0x38, 0x3c, 0x1c, 0x1c, 0x1c, + 0x1c, 0x0e, 0x0e, 0x0e, 0x1e, 0x0e, 0x1c, 0x1c, 0x1c, 0x38, 0xb8, 0xf8, 0xf8, 0xf0, 0x00, 0x00, + 0x00, 0x03, 0x3f, 0x7f, 0xff, 0xf0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x02, 0x04, 0x04, 0x08, 0x18, + 0x10, 0x30, 0x60, 0xc0, 0xc0, 0xc1, 0xff, 0x7f, 0x3e, 0x80, 0x80, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, + 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x80, 0x9e, 0xbf, 0x7f, 0xf1, 0xe0, 0xe0, 0x30, 0x10, 0x08, 0x0c, + 0x04, 0x02, 0x02, 0x00, 0x01, 0x00, 0x00, 0x80, 0xe0, 0xf8, 0xfe, 0x7f, 0x1f, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x07, 0x0e, 0x1e, 0x1c, 0x3c, 0x38, 0x38, 0x38, 0x38, + 0x18, 0x9c, 0xce, 0xef, 0xff, 0xfd, 0xfe, 0x1e, 0x0f, 0x07, 0x03, 0x03, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x03, 0x03, 0x07, 0x0f, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xce, 0x9c, 0x1c, + 0x1c, 0x1c, 0x1c, 0x1c, 0x1e, 0x0f, 0x07, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf8, 0xfc, + 0x3f, 0x1f, 0x1f, 0x1f, 0x3f, 0x7f, 0xff, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xf0, 0xfe, 0x3f, 0x1f, 0x0f, 0x0f, 0x1f, 0x3f, + 0xfc, 0xf8, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x3f, 0x7d, + 0xf0, 0xc0, 0xc0, 0x80, 0x80, 0xc0, 0xfb, 0xff, 0x3f, 0x3f, 0x1f, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, + 0x0e, 0x0e, 0x0e, 0x0e, 0x1f, 0x1f, 0x3f, 0x3f, 0x7f, 0xff, 0xc0, 0xc0, 0xc0, 0xc0, 0xe0, 0xf0, + 0x7f, 0x3f, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x03, 0x03, 0x07, 0x0f, 0x1f, 0x3e, 0x38, 0x70, 0x60, 0xe0, 0xe0, 0xc0, 0xc0, 0xc0, + 0xc0, 0xc0, 0xc0, 0xc0, 0xe0, 0xe0, 0x70, 0x78, 0x3c, 0x3f, 0x1f, 0x0f, 0x07, 0x03, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0x80, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x1c, 0x38, 0x0e, 0x00, 0x11, 0x30, 0x26, 0x3f, 0x19, + 0x00, 0x20, 0x20, 0x00, 0x1f, 0x30, 0x20, 0x31, 0x1f, 0x10, 0x18, 0x1e, 0x1b, 0x3f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xd8, 0xfc, 0x6c, 0xfc, 0xd8, 0x00, 0x80, 0x80, 0x18, 0x0c, 0xcc, 0x78, 0x10, 0x00, + 0x80, 0xe0, 0xf0, 0xf8, 0x80, 0x80, 0x80, 0x00, 0x18, 0x8c, 0xcc, 0x78, 0x10, 0x00, 0xf8, 0x0c, + 0x0c, 0x98, 0xf0, 0x00, 0x18, 0x8c, 0xcc, 0x78, 0x00, 0x00, 0x18, 0x0c, 0x6c, 0xf8, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x03, 0x02, 0xc3, 0xc1, 0x00, 0x00, 0xc0, 0x02, 0x03, 0x03, 0x02, 0x02, 0x00, + 0x01, 0xc1, 0x01, 0xc3, 0x01, 0x00, 0x00, 0x00, 0x03, 0x03, 0xc3, 0xc2, 0xc0, 0xc0, 0xc1, 0x83, + 0x83, 0x03, 0x80, 0x00, 0x03, 0x03, 0x03, 0x02, 0x00, 0x00, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xfe, 0xa2, 0xb2, 0xfe, 0x00, 0x3f, 0x07, 0x02, + 0x3e, 0x00, 0xe0, 0x38, 0x0e, 0x01, 0x00, 0x20, 0x30, 0x1f, 0x00, 0x1c, 0x3e, 0x3a, 0x3e, 0x1c, + 0x1f, 0x3f, 0x00, 0x3f, 0x00, 0x82, 0xce, 0x38, 0x0c, 0x06, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, + 0x3e, 0x00, 0x3f, 0x02, 0x08, 0x3e, 0x22, 0x32, 0x3e, 0x00, 0x3e, 0x1e, 0x02, 0x3e, 0x00, 0x00 + }; + oled_write_raw_P(sofle_pico_logo, sizeof(sofle_pico_logo)); } static void render_status(void) { @@ -326,7 +335,11 @@ static bool finished_logo = false; if ((timer_elapsed(startup_timer) < OLED_LOGO_TIMEOUT) && !finished_logo) { // Display the logo for 5 seconds on boot. - render_logo(); + if (is_keyboard_master()) { + render_logo(); + } else { + render_qmk_logo(); + } } else { // Display the current keyboard state. if (!finished_logo) { diff --git a/keyboards/sofle_pico/post_config.h b/keyboards/sofle_pico/post_config.h new file mode 100644 index 00000000000..bcc15a941a0 --- /dev/null +++ b/keyboards/sofle_pico/post_config.h @@ -0,0 +1,15 @@ +// Copyright 2022 Dane Skalski (@Daneski13) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +/* Default Bootmagic lite */ +// Top left for left side is default in core + +// Top right for right side +#ifndef BOOTMAGIC_LITE_ROW_RIGHT +# define BOOTMAGIC_LITE_ROW_RIGHT 5 +#endif +#ifndef BOOTMAGIC_LITE_COLUMN_RIGHT +# define BOOTMAGIC_LITE_COLUMN_RIGHT 0 +#endif diff --git a/keyboards/sofle_pico/rules.mk b/keyboards/sofle_pico/rules.mk index 95cf4bb8fcd..e399873d160 100644 --- a/keyboards/sofle_pico/rules.mk +++ b/keyboards/sofle_pico/rules.mk @@ -1,4 +1,2 @@ -# Split Keyboard Stuff -SPLIT_KEYBOARD = yes SERIAL_DRIVER = vendor # @todo: Move to json From 5479c27175ce57268bd64899a77bc111a48f5ca3 Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Wed, 29 Nov 2023 16:34:35 -0800 Subject: [PATCH 21/87] Removed duplicated rgb_matrix config --- keyboards/sofle_pico/config.h | 7 ------- keyboards/sofle_pico/rules.mk | 4 +++- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/keyboards/sofle_pico/config.h b/keyboards/sofle_pico/config.h index 09f9cacb85b..82de9c41fcf 100644 --- a/keyboards/sofle_pico/config.h +++ b/keyboards/sofle_pico/config.h @@ -10,13 +10,6 @@ #define SERIAL_USART_RX_PIN GP17 // USART RX pin #define SERIAL_USART_PIN_SWAP // Swap TX and RX pins if keyboard is master halve. (Only available on some MCUs) -/* RGB Stuff */ -#ifdef RGB_MATRIX_ENABLE -# define RGB_MATRIX_LED_COUNT 58 -# define RGB_MATRIX_SPLIT \ - { 29, 29 } // 29 LEDs on each side -#endif - // I2C for OLEDs #define I2C_DRIVER I2CD1 #define I2C1_SDA_PIN GP6 diff --git a/keyboards/sofle_pico/rules.mk b/keyboards/sofle_pico/rules.mk index e399873d160..ab1de352049 100644 --- a/keyboards/sofle_pico/rules.mk +++ b/keyboards/sofle_pico/rules.mk @@ -1,2 +1,4 @@ +# Build Options +# Configures the USART FULL DUPLEX driver. This config is unique to the RP2040. +# https://github.com/qmk/qmk_firmware/blob/master/docs/serial_driver.md#pin-configuration-2 SERIAL_DRIVER = vendor -# @todo: Move to json From e3454a39560f81d9356898875b7846bc448fa6c1 Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Wed, 29 Nov 2023 16:48:39 -0800 Subject: [PATCH 22/87] Added rgb_matrix animations and defaults to json config --- keyboards/sofle_pico/config.h | 6 +---- keyboards/sofle_pico/info.json | 48 ++++++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+), 5 deletions(-) diff --git a/keyboards/sofle_pico/config.h b/keyboards/sofle_pico/config.h index 82de9c41fcf..381ac102511 100644 --- a/keyboards/sofle_pico/config.h +++ b/keyboards/sofle_pico/config.h @@ -64,8 +64,4 @@ # define RGB_MATRIX_KEYPRESSES // Enables key press effects # define ENABLE_RGB_MATRIX_MULTISPLASH -// Normal effects -# define ENABLE_RGB_MATRIX_CYCLE_SPIRAL -# define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON -# define ENABLE_RGB_MATRIX_PIXEL_RAIN -#endif \ No newline at end of file +#endif diff --git a/keyboards/sofle_pico/info.json b/keyboards/sofle_pico/info.json index 50678b0afa9..6f7810ae97e 100644 --- a/keyboards/sofle_pico/info.json +++ b/keyboards/sofle_pico/info.json @@ -43,6 +43,54 @@ "driver": "ws2812", "max_brightness": 128, "split_count": [29, 29], + "animations": { + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_sat": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "band_val": true, + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "cycle_up_down": true, + "digital_rain": true, + "dual_beacon": true, + "gradient_left_right": true, + "gradient_up_down": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "jellybean_raindrops": true, + "multisplash": true, + "pixel_flow": true, + "pixel_rain": true, + "rainbow_beacon": true, + "rainbow_moving_chevron": true, + "rainbow_pinwheels": true, + "raindrops": true, + "solid_multisplash": true, + "solid_reactive": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_multinexus": true, + "solid_reactive_multiwide": true, + "solid_reactive_nexus": true, + "solid_reactive_simple": true, + "solid_reactive_wide": true, + "solid_splash": true, + "splash": true, + "typing_heatmap": true + }, + "default": { + "animation": "rainbow_pinwheels", + "on": true, + "speed": 64 + }, "layout": [ { "flags": 4, "matrix": [0, 5], "x": 95, "y": 7 }, { "flags": 4, "matrix": [1, 5], "x": 95, "y": 21 }, From f826eccd73ed5a69b41295b32fc9da3b6fa56334 Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Thu, 30 Nov 2023 09:26:33 -0800 Subject: [PATCH 23/87] Fixed switched RH thumb keys --- keyboards/sofle_pico/info.json | 4 ++-- keyboards/sofle_pico/keymaps/jellytitan/keymap.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/keyboards/sofle_pico/info.json b/keyboards/sofle_pico/info.json index 6f7810ae97e..f0e5c97ed18 100644 --- a/keyboards/sofle_pico/info.json +++ b/keyboards/sofle_pico/info.json @@ -237,8 +237,8 @@ {"label": "Alt", "matrix": [4, 2], "x": 4, "y": 4.3}, {"label": "Del", "matrix": [4, 3], "x": 5.1, "y": 4.5, "h": 1.5}, {"label": "Spc", "matrix": [4, 4], "x": 6.1, "y": 4.5, "h": 1.5}, - {"label": "Shift", "matrix": [9, 3], "x": 7.9, "y": 4.5, "h": 1.5}, - {"label": "Bspc", "matrix": [9, 4], "x": 8.9, "y": 4.5, "h": 1.5}, + {"label": "Shift", "matrix": [9, 4], "x": 7.9, "y": 4.5, "h": 1.5}, + {"label": "Bspc", "matrix": [9, 3], "x": 8.9, "y": 4.5, "h": 1.5}, {"label": "Alt", "matrix": [9, 2], "x": 10, "y": 4.3}, {"label": "Win", "matrix": [9, 1], "x": 11, "y": 4}, {"label": "Ctrl", "matrix": [9, 0], "x": 12, "y": 4.3} diff --git a/keyboards/sofle_pico/keymaps/jellytitan/keymap.c b/keyboards/sofle_pico/keymaps/jellytitan/keymap.c index 3d2d52d0ed3..7ce1fb876f1 100644 --- a/keyboards/sofle_pico/keymaps/jellytitan/keymap.c +++ b/keyboards/sofle_pico/keymaps/jellytitan/keymap.c @@ -73,7 +73,7 @@ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, LT(1,KC_DEL), LT(2,KC_A), LCTL_T(KC_S), KC_D, LGUI_T(KC_F), KC_G, KC_H, RGUI_T(KC_J), KC_K, RCTL_T(KC_L), LT(2,KC_SCLN), LT(1,KC_QUOT), KC_LSFT, LALT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_MINIM, KC_MAXIM, KC_N, KC_M, KC_COMM, KC_DOT, RALT_T(KC_SLSH), KC_RSFT, - KC_LEFT, KC_RGHT, QK_GESC, KC_SPC, KC_BSPC, KC_ENT, KC_TAB, KC_DEL, KC_UP, KC_DOWN + KC_LEFT, KC_RGHT, QK_GESC, KC_SPC, KC_BSPC, KC_TAB, KC_ENT, KC_DEL, KC_UP, KC_DOWN ), /* From cb66ad3da80c339f06198cf83e9ba6c4b490f63b Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Thu, 30 Nov 2023 09:39:02 -0800 Subject: [PATCH 24/87] Updated json layout labels to match legacy sofle defaults --- keyboards/sofle_pico/info.json | 37 ++++++++++++++++++---------------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/keyboards/sofle_pico/info.json b/keyboards/sofle_pico/info.json index f0e5c97ed18..1366005e337 100644 --- a/keyboards/sofle_pico/info.json +++ b/keyboards/sofle_pico/info.json @@ -10,6 +10,9 @@ "pid": "0x5350", "device_version": "3.5.1" }, + "build": { + "lto": false + }, "features": { "bootmagic": false, "command": false, @@ -189,9 +192,9 @@ {"label": "8", "matrix": [5, 3], "x": 11, "y": 0}, {"label": "9", "matrix": [5, 2], "x": 12, "y": 0.3}, {"label": "0", "matrix": [5, 1], "x": 13, "y": 0.7}, - {"label": "-", "matrix": [5, 0], "x": 14, "y": 0.7}, + {"label": "`", "matrix": [5, 0], "x": 14, "y": 0.7}, - {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1.7}, + {"label": "Esc", "matrix": [1, 0], "x": 0, "y": 1.7}, {"label": "Q", "matrix": [1, 1], "x": 1, "y": 1.7}, {"label": "W", "matrix": [1, 2], "x": 2, "y": 1.3}, {"label": "E", "matrix": [1, 3], "x": 3, "y": 1}, @@ -202,9 +205,9 @@ {"label": "I", "matrix": [6, 3], "x": 11, "y": 1}, {"label": "O", "matrix": [6, 2], "x": 12, "y": 1.3}, {"label": "P", "matrix": [6, 1], "x": 13, "y": 1.7}, - {"label": "Enter", "matrix": [6, 0], "x": 14, "y": 1.7}, + {"label": "Bspc", "matrix": [6, 0], "x": 14, "y": 1.7}, - {"label": "Esc", "matrix": [2, 0], "x": 0, "y": 2.7}, + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.7}, {"label": "A", "matrix": [2, 1], "x": 1, "y": 2.7}, {"label": "S", "matrix": [2, 2], "x": 2, "y": 2.3}, {"label": "D", "matrix": [2, 3], "x": 3, "y": 2}, @@ -217,31 +220,31 @@ {"label": ";", "matrix": [7, 1], "x": 13, "y": 2.7}, {"label": "'", "matrix": [7, 0], "x": 14, "y": 2.7}, - {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3.7}, + {"label": "LShift", "matrix": [3, 0], "x": 0, "y": 3.7}, {"label": "Z", "matrix": [3, 1], "x": 1, "y": 3.7}, {"label": "X", "matrix": [3, 2], "x": 2, "y": 3.3}, {"label": "C", "matrix": [3, 3], "x": 3, "y": 3}, {"label": "V", "matrix": [3, 4], "x": 4, "y": 3.3}, {"label": "B", "matrix": [3, 5], "x": 5, "y": 3.45}, {"label": "Mute", "matrix": [4, 5], "x": 6.2, "y": 3.45}, - {"label": "XXX", "matrix": [9, 5], "x": 7.8, "y": 3.45}, + {"label": "Pause", "matrix": [9, 5], "x": 7.8, "y": 3.45}, {"label": "N", "matrix": [8, 5], "x": 9, "y": 3.45}, {"label": "M", "matrix": [8, 4], "x": 10, "y": 3.3}, {"label": ",", "matrix": [8, 3], "x": 11, "y": 3}, {"label": ".", "matrix": [8, 2], "x": 12, "y": 3.3}, {"label": "/", "matrix": [8, 1], "x": 13, "y": 3.7}, - {"label": "Shift", "matrix": [8, 0], "x": 14, "y": 3.7}, + {"label": "RShift", "matrix": [8, 0], "x": 14, "y": 3.7}, - {"label": "Ctrl", "matrix": [4, 0], "x": 2, "y": 4.3}, - {"label": "Win", "matrix": [4, 1], "x": 3, "y": 4}, - {"label": "Alt", "matrix": [4, 2], "x": 4, "y": 4.3}, - {"label": "Del", "matrix": [4, 3], "x": 5.1, "y": 4.5, "h": 1.5}, - {"label": "Spc", "matrix": [4, 4], "x": 6.1, "y": 4.5, "h": 1.5}, - {"label": "Shift", "matrix": [9, 4], "x": 7.9, "y": 4.5, "h": 1.5}, - {"label": "Bspc", "matrix": [9, 3], "x": 8.9, "y": 4.5, "h": 1.5}, - {"label": "Alt", "matrix": [9, 2], "x": 10, "y": 4.3}, - {"label": "Win", "matrix": [9, 1], "x": 11, "y": 4}, - {"label": "Ctrl", "matrix": [9, 0], "x": 12, "y": 4.3} + {"label": "LCtrl", "matrix": [4, 0], "x": 2, "y": 4.3}, + {"label": "LGUI", "matrix": [4, 1], "x": 3, "y": 4}, + {"label": "LCmnd", "matrix": [4, 2], "x": 4, "y": 4.3}, + {"label": "LAlt", "matrix": [4, 3], "x": 5.1, "y": 4.5, "h": 1.5}, + {"label": "Enter", "matrix": [4, 4], "x": 6.1, "y": 4.5, "h": 1.5}, + {"label": "Space", "matrix": [9, 4], "x": 7.9, "y": 4.5, "h": 1.5}, + {"label": "RAlt", "matrix": [9, 3], "x": 8.9, "y": 4.5, "h": 1.5}, + {"label": "RCmnd", "matrix": [9, 2], "x": 10, "y": 4.3}, + {"label": "RGui", "matrix": [9, 1], "x": 11, "y": 4}, + {"label": "RCtrl", "matrix": [9, 0], "x": 12, "y": 4.3} ] } } From 90fedbc5be2e6891a0c76513e3afacc81dc2e9e2 Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Thu, 30 Nov 2023 09:59:15 -0800 Subject: [PATCH 25/87] Adds 'bootmagic' feature Validated this is working as expected --- keyboards/sofle_pico/info.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/sofle_pico/info.json b/keyboards/sofle_pico/info.json index 1366005e337..cb6cc1be4f1 100644 --- a/keyboards/sofle_pico/info.json +++ b/keyboards/sofle_pico/info.json @@ -14,7 +14,7 @@ "lto": false }, "features": { - "bootmagic": false, + "bootmagic": true, "command": false, "dynamic_tapping_term": true, "encoder": true, From 2254ebd3c8f1a4d3032314378f3a5792cd9cb099 Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Thu, 30 Nov 2023 15:36:52 -0800 Subject: [PATCH 26/87] Moved heatmap animations to json config Updated attribution comments --- keyboards/sofle_pico/config.h | 11 +---------- keyboards/sofle_pico/halconf.h | 2 +- keyboards/sofle_pico/info.json | 4 ++-- keyboards/sofle_pico/keymaps/jellytitan/keymap.c | 16 ++++++++-------- 4 files changed, 12 insertions(+), 21 deletions(-) diff --git a/keyboards/sofle_pico/config.h b/keyboards/sofle_pico/config.h index 381ac102511..704f296cf2d 100644 --- a/keyboards/sofle_pico/config.h +++ b/keyboards/sofle_pico/config.h @@ -1,4 +1,4 @@ -// Copyright 2022 Dane Skalski (@Daneski13) +// Copyright 2023 Ryan Neff (@JellyTitan) // SPDX-License-Identifier: GPL-2.0-or-later #pragma once @@ -47,21 +47,12 @@ */ #ifdef RGB_MATRIX_ENABLE -# define RGB_DISABLE_WHEN_USB_SUSPENDED // Decrease decay of heatmap rgb effect # define RGB_MATRIX_TYPING_HEATMAP_DECREASE_DELAY_MS 50 // If you're setting colors per key, this is required. # define SPLIT_LAYER_STATE_ENABLE -// Default effect when EEPROM cleared -# define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_RAINBOW_MOVING_CHEVRON - // Turns off RGB effects when there is no longer a USB connection # define RGB_DISABLE_WHEN_USB_SUSPENDED -// Key press reactive animations -# define SPLIT_TRANSPORT_MIRROR // Necessary setting for key press animations -# define RGB_MATRIX_KEYPRESSES // Enables key press effects -# define ENABLE_RGB_MATRIX_MULTISPLASH - #endif diff --git a/keyboards/sofle_pico/halconf.h b/keyboards/sofle_pico/halconf.h index 9b8ab5d0233..522bbbb1ae5 100644 --- a/keyboards/sofle_pico/halconf.h +++ b/keyboards/sofle_pico/halconf.h @@ -1,4 +1,4 @@ -// Copyright 2022 jack (@waffle87) +// Copyright 2023 Ryan Neff (@JellyTitan) // SPDX-License-Identifier: GPL-2.0-or-later #pragma once #define HAL_USE_I2C TRUE diff --git a/keyboards/sofle_pico/info.json b/keyboards/sofle_pico/info.json index cb6cc1be4f1..1dc45d50699 100644 --- a/keyboards/sofle_pico/info.json +++ b/keyboards/sofle_pico/info.json @@ -90,9 +90,9 @@ "typing_heatmap": true }, "default": { - "animation": "rainbow_pinwheels", + "animation": "typing_heatmap", "on": true, - "speed": 64 + "speed": 14 }, "layout": [ { "flags": 4, "matrix": [0, 5], "x": 95, "y": 7 }, diff --git a/keyboards/sofle_pico/keymaps/jellytitan/keymap.c b/keyboards/sofle_pico/keymaps/jellytitan/keymap.c index 7ce1fb876f1..23e0de213cb 100644 --- a/keyboards/sofle_pico/keymaps/jellytitan/keymap.c +++ b/keyboards/sofle_pico/keymaps/jellytitan/keymap.c @@ -1,4 +1,4 @@ - // Copyright 2022 Ryan Neff (@JellyTitan) + // Copyright 2023 Ryan Neff (@JellyTitan) // SPDX-License-Identifier: GPL-2.0-or-later #include QMK_KEYBOARD_H @@ -65,7 +65,7 @@ │Sft│ Z │ X │ C │ V │ B │Min│ │Max│ N │ M │ , │ . │ / │Sft│ └───┴───┴───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┴───┴───┘ ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ - │ ← │ → │Esc│Spc│Bsp│ │Ent│Tab│Del│ ↓ │ ↑ │ + │ ← │ → │Esc│Spc│Bsp│ │Tab│Ent│Del│ ↓ │ ↑ │ └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ */ [_QWERTY] = LAYOUT( @@ -87,9 +87,9 @@ ├────┼───┼───┼───┼───┼───┼───┐ ┌───┼───┼───┼───┼───┼───┼────┤ │____│ # │ $ │ [ │ ] │ ~ │___│ │___│QMK│ 1 │ 2 │ 3 │ / │BOOT│ └────┴───┴───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┴───┴────┘ - ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ - │___│___│___│___│___│ │ 0 │ 0 │ 0 │ 0 │ 0 │ - └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ + ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ + │___│___│___│___│___│ │ 0 │ 0 │ 0 │ 0 │ 0 │ + └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ */ [_LOWER] = LAYOUT( @@ -111,9 +111,9 @@ ├────┼────┼────┼────┼────┼────┼────┐ ┌────┼────┼────┼────┼────┼────┼────┤ │____│____│____│____│____│____│____│ │____│____│____│____│____│SPI │SPD │ └────┴────┴────┴────┴────┴────┴────┘ └────┴────┴────┴────┴────┴────┴────┘ - ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ - │___│___│___│___│QMK│ │QMK│___│___│___│___│ - └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ + ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ + │___│___│___│___│QMK│ │QMK│___│___│___│___│ + └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ */ [_RAISE] = LAYOUT( RGB_TOG, KC_ACL0, KC_ACL1, KC_ACL2, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, RGB_RMOD, RGB_HUI, RGB_HUD, From b56fb64e6e7c033f2e30d46d09e2c85de69aca44 Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Thu, 30 Nov 2023 17:04:15 -0800 Subject: [PATCH 27/87] Added via files (not yet working) --- .../sofle_pico/keymaps/jellytitan/rules.mk | 1 + keyboards/sofle_pico/keymaps/via/config.h | 9 + keyboards/sofle_pico/keymaps/via/keymap.c | 362 ++++++++++++++++++ keyboards/sofle_pico/keymaps/via/readme.md | 29 ++ keyboards/sofle_pico/keymaps/via/rules.mk | 4 + keyboards/sofle_pico/readme.md | 2 + 6 files changed, 407 insertions(+) create mode 100644 keyboards/sofle_pico/keymaps/via/config.h create mode 100644 keyboards/sofle_pico/keymaps/via/keymap.c create mode 100644 keyboards/sofle_pico/keymaps/via/readme.md create mode 100644 keyboards/sofle_pico/keymaps/via/rules.mk diff --git a/keyboards/sofle_pico/keymaps/jellytitan/rules.mk b/keyboards/sofle_pico/keymaps/jellytitan/rules.mk index 0debd8cc5e2..ee58f6ad32a 100644 --- a/keyboards/sofle_pico/keymaps/jellytitan/rules.mk +++ b/keyboards/sofle_pico/keymaps/jellytitan/rules.mk @@ -1,3 +1,4 @@ # POINTING_DEVICE_ENABLE = yes POINTING_DEVICE_DRIVER = pimoroni_trackball +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/sofle_pico/keymaps/via/config.h b/keyboards/sofle_pico/keymaps/via/config.h new file mode 100644 index 00000000000..89cda6449de --- /dev/null +++ b/keyboards/sofle_pico/keymaps/via/config.h @@ -0,0 +1,9 @@ +// Copyright 2023 Ryan Neff (@JellyTitan) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define POINTING_DEVICE_ROTATION_90 +#define SPLIT_POINTING_ENABLE +#define POINTING_DEVICE_RIGHT +#define POINTING_DEVICE_TASK_THROTTLE_MS 8 diff --git a/keyboards/sofle_pico/keymaps/via/keymap.c b/keyboards/sofle_pico/keymaps/via/keymap.c new file mode 100644 index 00000000000..23e0de213cb --- /dev/null +++ b/keyboards/sofle_pico/keymaps/via/keymap.c @@ -0,0 +1,362 @@ + // Copyright 2023 Ryan Neff (@JellyTitan) + // SPDX-License-Identifier: GPL-2.0-or-later + + #include QMK_KEYBOARD_H + + enum custom_layers { _QWERTY, _LOWER, _RAISE }; + + /* Defines macros for use with the configurators "Any" key. (These are non-standard macros using the "Magnet" app on Mac). */ + /* Move active application right half. */ + #define KC_CSGRA LCTL(LSFT(LGUI(KC_RGHT))) + /* Move active application to left half. */ + #define KC_CSGLA LCTL(LSFT(LGUI(KC_LEFT))) + /* Maximize active application. */ + #define KC_MAXIM LCTL(LSFT(LGUI(KC_UP))) + /* Minimize active application. */ + #define KC_MINIM LCTL(LSFT(LGUI(KC_DOWN))) + + enum custom_keycodes { + QWERTY = SAFE_RANGE, + LOWER, + RAISE, + CMD_TAB_CW, + CMD_TAB_CCW, + }; + + /* Rotary encoder variables used to hold down Command (GUI) key while cycling through open programs. */ + bool is_cmd_tab_active = false; + uint16_t cmd_tab_timer = 0; + + /** + * Tap Dance declarations + */ + enum tapdances { + _TD_FIVE_ENTER, + }; + + /* Tapdance */ + #define TD5ENT TD(_TD_FIVE_ENTER) + + /** + * Tap Dance definitions + * + * To use this in the configurator, enter the name 'TD5ENT' in the "Any" key. + */ + tap_dance_action_t tap_dance_actions[] = { + /* Tap once for 5, twice for Enter. */ + [_TD_FIVE_ENTER] = ACTION_TAP_DANCE_DOUBLE(KC_5, KC_ENT), + }; + + /** + * Keymap. + * The rotary encoders are programmed manually below because the configurator does not support them yet. + */ + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + /* + QWERTY + ┌───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┐ + │ = │ 1 │ 2 │ 3 │ 4 │ 5 │ │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ + ├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤ + │Tab│ Q │ W │ E │ R │ T │ │ Y │ U │ I │ O │ P │ \ │ + ├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤ + │Esc│ A │ S │ D │ F │ G │ │ H │ J │ K │ L │ ; │ ' │ + ├───┼───┼───┼───┼───┼───┼───┐ ┌───┼───┼───┼───┼───┼───┼───┤ + │Sft│ Z │ X │ C │ V │ B │Min│ │Max│ N │ M │ , │ . │ / │Sft│ + └───┴───┴───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┴───┴───┘ + ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ + │ ← │ → │Esc│Spc│Bsp│ │Tab│Ent│Del│ ↓ │ ↑ │ + └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ + */ + [_QWERTY] = LAYOUT( + KC_EQL, KC_1, KC_2, KC_3, KC_4, TD5ENT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + LT(1,KC_DEL), LT(2,KC_A), LCTL_T(KC_S), KC_D, LGUI_T(KC_F), KC_G, KC_H, RGUI_T(KC_J), KC_K, RCTL_T(KC_L), LT(2,KC_SCLN), LT(1,KC_QUOT), + KC_LSFT, LALT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_MINIM, KC_MAXIM, KC_N, KC_M, KC_COMM, KC_DOT, RALT_T(KC_SLSH), KC_RSFT, + KC_LEFT, KC_RGHT, QK_GESC, KC_SPC, KC_BSPC, KC_TAB, KC_ENT, KC_DEL, KC_UP, KC_DOWN + ), + + /* + Symbols/Numpad Layer + ┌────┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬────┐ + │BOOT│F1 │F2 │F3 │F4 │F5 │ │F6 │F7 │F8 │F9 │F10│F11 │ + ├────┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼────┤ + │____│ ! │ @ │ { │ } │ | │ │QMK│ 7 │ 8 │ 9 │ * │F12 │ + ├────┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼────┤ + │____│ # │ $ │ ( │ ) │ ` │ │QMK│ 4 │ 5 │ 6 │ + │____│ + ├────┼───┼───┼───┼───┼───┼───┐ ┌───┼───┼───┼───┼───┼───┼────┤ + │____│ # │ $ │ [ │ ] │ ~ │___│ │___│QMK│ 1 │ 2 │ 3 │ / │BOOT│ + └────┴───┴───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┴───┴────┘ + ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ + │___│___│___│___│___│ │ 0 │ 0 │ 0 │ 0 │ 0 │ + └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ + */ + + [_LOWER] = LAYOUT( + QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, DT_PRNT, KC_7, KC_8, KC_9, KC_ASTR, KC_F12, + KC_TRNS, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRV, DT_UP, KC_4, KC_5, KC_6, KC_PPLS, KC_TRNS, + KC_TRNS, KC_HASH, KC_DLR, KC_LBRC, KC_RBRC, KC_TILD, KC_TRNS, KC_TRNS, DT_DOWN, KC_1, KC_2, KC_3, KC_PSLS, QK_BOOT, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P0, KC_P0, KC_P0, KC_P0, KC_P0 + ), + + /* + Navigation/Function Layer + ┌────┬────┬────┬────┬────┬────┐ ┌────┬────┬────┬────┬────┬────┐ + │RGB │ACL0│ACL1│ACL2│____│____│ │____│____│MOD │RMOD│HUI │HUD │ + ├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤ + │____│____│____│MS_U│____│____│ │____│BTN1│ ↑ │BTN2│SAI │SAD │ + ├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤ + │____│____│MS_L│MS_D│MS_R│____│ │____│ ← │ ↓ │ → │VAI │VAD │ + ├────┼────┼────┼────┼────┼────┼────┐ ┌────┼────┼────┼────┼────┼────┼────┤ + │____│____│____│____│____│____│____│ │____│____│____│____│____│SPI │SPD │ + └────┴────┴────┴────┴────┴────┴────┘ └────┴────┴────┴────┴────┴────┴────┘ + ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ + │___│___│___│___│QMK│ │QMK│___│___│___│___│ + └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ + */ + [_RAISE] = LAYOUT( + RGB_TOG, KC_ACL0, KC_ACL1, KC_ACL2, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, RGB_RMOD, RGB_HUI, RGB_HUD, + HF_TOGG, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_UP, KC_BTN2, RGB_SAI, RGB_SAD, + HF_DWLU, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, RGB_VAI, RGB_VAD, + HF_DWLD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPI, RGB_SPD, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_CSGLA, KC_CSGRA, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) + // clang-format on + }; + + bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + case CMD_TAB_CW: + if (record->event.pressed) { + if (!is_cmd_tab_active) { + is_cmd_tab_active = true; + register_code(KC_LGUI); + } + cmd_tab_timer = timer_read(); + register_code(KC_TAB); + } else { + unregister_code(KC_TAB); + } + break; + case CMD_TAB_CCW: + if (record->event.pressed) { + if (!is_cmd_tab_active) { + is_cmd_tab_active = true; + register_code(KC_LGUI); + } + cmd_tab_timer = timer_read(); + tap_code16(S(KC_TAB)); + } else { + unregister_code(KC_TAB); + } + break; + } + return true; + } + + /** + * Helper function for rotary encoder. + * + * If the timer has elapsed, the Command/Gui tab will be released. + * You can adjust the milliseconds to speed up the CMD key release. + */ + void matrix_scan_user(void) { + if (is_cmd_tab_active) { + if (timer_elapsed(cmd_tab_timer) > 900) { + unregister_code(KC_LGUI); + is_cmd_tab_active = false; + } + } + } + + /** + * Rotary Encoder. + * + * This can't be programmed through configurator. You must do it here. + * + * This uses the amazing "Encoder map" feature which replicates the normal keyswitch layer handling functionality, but with encoders. + * https://docs.qmk.fm/#/feature_encoders?id=encoder-map + * + * Uses a variant of the Super-alt-tab macro to switch between open applications on a mac. (Command-tab) + * https://docs.qmk.fm/#/feature_macros?id=super-alt%e2%86%aftab + */ + #ifdef ENCODER_MAP_ENABLE + const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + /* Left Hand */ /* Right Hand */ + /* Switch between tabs. (Control + Tab). */ /* Switch between open apps on Mac. (Command + Tab + timer logic) */ + [_QWERTY] = {ENCODER_CCW_CW(S(C(KC_TAB)), C(KC_TAB)), ENCODER_CCW_CW(CMD_TAB_CW, CMD_TAB_CCW)}, + /* Scrolls left & right. (Shift + Mouse Wheel Up). */ /* Scrolls up and down. (Page Down & Page Up - mouse wheel scroll incraments are too small) */ + [_LOWER] = {ENCODER_CCW_CW(S(KC_MS_WH_UP), S(KC_MS_WH_DOWN)), ENCODER_CCW_CW(KC_PGDN, KC_PGUP)}, + /* Selects adjacent words. (Command + Shift + Right Arrow). */ /* Jumps to end/start of line. Hold shift to select. (Gui + arrow). */ + [_RAISE] = {ENCODER_CCW_CW(C(S(KC_LEFT)), C(S(KC_RGHT))), ENCODER_CCW_CW(G(KC_LEFT), G(KC_RGHT))} + }; + #endif + + // Default timeout for displaying logo on boot. + #ifndef OLED_LOGO_TIMEOUT + #define OLED_LOGO_TIMEOUT 5000 + #endif + + #ifdef OLED_ENABLE + + uint16_t startup_timer; + + oled_rotation_t oled_init_user(oled_rotation_t rotation) { + startup_timer = timer_read(); + + if (is_keyboard_master()) { + if(is_keyboard_left()){ + return OLED_ROTATION_90; + } + else { + return OLED_ROTATION_270; + } + } else { + return OLED_ROTATION_90; + } + } + static void render_qmk_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 render_logo(void) { + // @todo - should we split this into a seperate file? kb16 has a good example. + static const char PROGMEM sofle_pico_logo[] = { + // 'sofle-pico-vector-logo-v3bw', 64x128px + 0x00, 0x00, 0xf8, 0xfc, 0xdc, 0x8e, 0x0e, 0x0e, 0x1c, 0x1c, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xfe, 0xfe, 0x87, 0x03, 0x03, + 0x9f, 0xfe, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x60, 0xe0, 0xe1, 0x83, 0x03, 0x07, 0x87, 0xce, 0xfe, 0xfc, 0x00, 0x00, 0x38, 0xfe, 0xff, + 0x87, 0x03, 0x03, 0x03, 0x83, 0xef, 0xfe, 0xfc, 0x00, 0x00, 0xff, 0xff, 0xff, 0x03, 0x03, 0x03, + 0x07, 0xff, 0xff, 0x00, 0x00, 0x30, 0xfe, 0xff, 0xbf, 0x1b, 0x1b, 0x1b, 0x9f, 0xff, 0x9e, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe1, 0xe3, 0x63, 0x63, 0x63, 0xe3, 0xe3, 0xc1, 0x80, 0x00, 0x40, 0xe0, 0xe0, 0x41, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0x70, 0x70, 0x30, 0x38, 0x3f, 0x1f, 0x0f, 0x00, 0x00, 0xf8, 0xf8, 0x00, + 0x00, 0x00, 0xe0, 0xf0, 0x38, 0x1c, 0x1c, 0x1c, 0x1c, 0x38, 0x00, 0x00, 0xe0, 0xf0, 0x78, 0x18, + 0x1c, 0x1c, 0x1c, 0x38, 0xf8, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x00, + 0x00, 0x00, 0x07, 0x0f, 0x1e, 0x1c, 0x18, 0x18, 0x1c, 0x1c, 0x00, 0x00, 0x07, 0x0f, 0x1e, 0x1c, + 0x18, 0x18, 0x18, 0x1c, 0x0f, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0xf0, 0xf0, 0xf0, 0x78, 0x38, 0x38, 0x38, 0x1c, 0x3c, 0x1c, 0x1c, 0x1c, 0x38, 0x38, + 0x38, 0x38, 0x78, 0x70, 0xf0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xf0, 0x78, 0x38, 0x3c, 0x1c, 0x1c, 0x1c, + 0x1c, 0x0e, 0x0e, 0x0e, 0x1e, 0x0e, 0x1c, 0x1c, 0x1c, 0x38, 0xb8, 0xf8, 0xf8, 0xf0, 0x00, 0x00, + 0x00, 0x03, 0x3f, 0x7f, 0xff, 0xf0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x02, 0x04, 0x04, 0x08, 0x18, + 0x10, 0x30, 0x60, 0xc0, 0xc0, 0xc1, 0xff, 0x7f, 0x3e, 0x80, 0x80, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, + 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x80, 0x9e, 0xbf, 0x7f, 0xf1, 0xe0, 0xe0, 0x30, 0x10, 0x08, 0x0c, + 0x04, 0x02, 0x02, 0x00, 0x01, 0x00, 0x00, 0x80, 0xe0, 0xf8, 0xfe, 0x7f, 0x1f, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x07, 0x0e, 0x1e, 0x1c, 0x3c, 0x38, 0x38, 0x38, 0x38, + 0x18, 0x9c, 0xce, 0xef, 0xff, 0xfd, 0xfe, 0x1e, 0x0f, 0x07, 0x03, 0x03, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x03, 0x03, 0x07, 0x0f, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xce, 0x9c, 0x1c, + 0x1c, 0x1c, 0x1c, 0x1c, 0x1e, 0x0f, 0x07, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf8, 0xfc, + 0x3f, 0x1f, 0x1f, 0x1f, 0x3f, 0x7f, 0xff, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xf0, 0xfe, 0x3f, 0x1f, 0x0f, 0x0f, 0x1f, 0x3f, + 0xfc, 0xf8, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x3f, 0x7d, + 0xf0, 0xc0, 0xc0, 0x80, 0x80, 0xc0, 0xfb, 0xff, 0x3f, 0x3f, 0x1f, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, + 0x0e, 0x0e, 0x0e, 0x0e, 0x1f, 0x1f, 0x3f, 0x3f, 0x7f, 0xff, 0xc0, 0xc0, 0xc0, 0xc0, 0xe0, 0xf0, + 0x7f, 0x3f, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x03, 0x03, 0x07, 0x0f, 0x1f, 0x3e, 0x38, 0x70, 0x60, 0xe0, 0xe0, 0xc0, 0xc0, 0xc0, + 0xc0, 0xc0, 0xc0, 0xc0, 0xe0, 0xe0, 0x70, 0x78, 0x3c, 0x3f, 0x1f, 0x0f, 0x07, 0x03, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0x80, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x1c, 0x38, 0x0e, 0x00, 0x11, 0x30, 0x26, 0x3f, 0x19, + 0x00, 0x20, 0x20, 0x00, 0x1f, 0x30, 0x20, 0x31, 0x1f, 0x10, 0x18, 0x1e, 0x1b, 0x3f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xd8, 0xfc, 0x6c, 0xfc, 0xd8, 0x00, 0x80, 0x80, 0x18, 0x0c, 0xcc, 0x78, 0x10, 0x00, + 0x80, 0xe0, 0xf0, 0xf8, 0x80, 0x80, 0x80, 0x00, 0x18, 0x8c, 0xcc, 0x78, 0x10, 0x00, 0xf8, 0x0c, + 0x0c, 0x98, 0xf0, 0x00, 0x18, 0x8c, 0xcc, 0x78, 0x00, 0x00, 0x18, 0x0c, 0x6c, 0xf8, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x03, 0x02, 0xc3, 0xc1, 0x00, 0x00, 0xc0, 0x02, 0x03, 0x03, 0x02, 0x02, 0x00, + 0x01, 0xc1, 0x01, 0xc3, 0x01, 0x00, 0x00, 0x00, 0x03, 0x03, 0xc3, 0xc2, 0xc0, 0xc0, 0xc1, 0x83, + 0x83, 0x03, 0x80, 0x00, 0x03, 0x03, 0x03, 0x02, 0x00, 0x00, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xfe, 0xa2, 0xb2, 0xfe, 0x00, 0x3f, 0x07, 0x02, + 0x3e, 0x00, 0xe0, 0x38, 0x0e, 0x01, 0x00, 0x20, 0x30, 0x1f, 0x00, 0x1c, 0x3e, 0x3a, 0x3e, 0x1c, + 0x1f, 0x3f, 0x00, 0x3f, 0x00, 0x82, 0xce, 0x38, 0x0c, 0x06, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, + 0x3e, 0x00, 0x3f, 0x02, 0x08, 0x3e, 0x22, 0x32, 0x3e, 0x00, 0x3e, 0x1e, 0x02, 0x3e, 0x00, 0x00 + }; + oled_write_raw_P(sofle_pico_logo, sizeof(sofle_pico_logo)); + } + + static void render_status(void) { + oled_write_P(PSTR("Sofle Pico\nv3.04\n~~~~~~~~~\n"), false); + uint8_t n = get_current_wpm(); + char wpm_counter[4]; + wpm_counter[3] = '\0'; + wpm_counter[2] = '0' + n % 10; + wpm_counter[1] = (n /= 10) % 10 ? '0' + (n) % 10 : (n / 10) % 10 ? '0' : ' '; + wpm_counter[0] = n / 10 ? '0' + n / 10 : ' '; + oled_write_P(PSTR("WPM:"), false); + oled_write(wpm_counter, false); + led_t led_state = host_keyboard_led_state(); + oled_write_P(PSTR("\nCaps: "), false); + oled_write_P(led_state.caps_lock ? PSTR("on ") : PSTR("off"), false); + oled_write_P(PSTR("\n"), false); + switch (get_highest_layer(layer_state)) { + case _QWERTY: + oled_write_P(PSTR("Qwerty Base"), false); + break; + case _LOWER: + oled_write_P(PSTR("Numbers &\nSymbols"), false); + break; + case _RAISE: + oled_write_P(PSTR("Navigation"), false); + break; + default: + oled_write_P(PSTR("Unknown"), false); + break; + } + } + + bool oled_task_user(void) { + static bool finished_logo = false; + if ((timer_elapsed(startup_timer) < OLED_LOGO_TIMEOUT) && !finished_logo) { + // Display the logo for 5 seconds on boot. + if (is_keyboard_master()) { + render_logo(); + } else { + render_qmk_logo(); + } + } else { + // Display the current keyboard state. + if (!finished_logo) { + // Clears the OLED. + oled_clear(); + } else { + finished_logo = true; + } + if (is_keyboard_master()) { + render_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc) + } else { + render_logo(); + } + return false; + } + return true; + + } + + #endif \ No newline at end of file diff --git a/keyboards/sofle_pico/keymaps/via/readme.md b/keyboards/sofle_pico/keymaps/via/readme.md new file mode 100644 index 00000000000..2bc57d32064 --- /dev/null +++ b/keyboards/sofle_pico/keymaps/via/readme.md @@ -0,0 +1,29 @@ +# JellyTitan sofle_pico Keymap +![jellytitan](https://i.imgur.com/JqGPWCn.png) + +This keymap is derived from Ergodox layouts and is adapted for the [sofle_pico](https://github.com/JellyTitan/sofle_pico). +It is notable for it's semi-complex programming examples that include the use of rotary encoders. + +Plenty of useful examples: +* Pimaroni enabled +* Advanced knob programming! (Three-layer usage + clicks) +* Macros! (Fancy key combos tied to the rotary encoders) +* Tap Dance! (Double tap your '5' key for 'Enter') +* Dynamic Tapping term! (Dial in the double tap speed) + +The qwerty key layout is my adaptation of the Ergodox defaults. +If this is your first split keyboard, you probably want a different key layout. + +Flashing example for this keyboard: + +```bash +# For flashing the left half... +make sofle_pico:jellytitan:uf2-split-left +# or the qmk cli equivalent: +qmk flash -kb sofle_pico --keymap jellytitan -bl uf2-split-left + +# For flashing the right half... +make sofle_pico:jellytitan:uf2-split-right +# or the qmk cli equivalent: +qmk flash -kb sofle_pico --keymap jellytitan -bl uf2-split-right +``` diff --git a/keyboards/sofle_pico/keymaps/via/rules.mk b/keyboards/sofle_pico/keymaps/via/rules.mk new file mode 100644 index 00000000000..ee58f6ad32a --- /dev/null +++ b/keyboards/sofle_pico/keymaps/via/rules.mk @@ -0,0 +1,4 @@ +# +POINTING_DEVICE_ENABLE = yes +POINTING_DEVICE_DRIVER = pimoroni_trackball +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/sofle_pico/readme.md b/keyboards/sofle_pico/readme.md index 61b496760b3..530940bbe59 100644 --- a/keyboards/sofle_pico/readme.md +++ b/keyboards/sofle_pico/readme.md @@ -39,3 +39,5 @@ Enter the bootloader in 3 ways: - **Keycode in layout**: In the default layout, the `Bootloader` keycode is above home row pinky on the right side's adjust layer. Once you enter the bootloader, the keyboard will show up as a USB device on your computer, you could drag and drop a firmware file to flash it, but I recommend using the flash commands for the respective side. + +[Keyboard-layout-editor.com](http://www.keyboard-layout-editor.com/#/gists/2fa0527caf2f6e527e4f46787a74a9d2) From 4f2024ab6ee4ad9de05012f9c87d900efae4bb8f Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Fri, 1 Dec 2023 10:12:37 -0800 Subject: [PATCH 28/87] Maxed out max brightness --- keyboards/sofle_pico/info.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/sofle_pico/info.json b/keyboards/sofle_pico/info.json index 1dc45d50699..baebc5fbf3d 100644 --- a/keyboards/sofle_pico/info.json +++ b/keyboards/sofle_pico/info.json @@ -44,7 +44,7 @@ }, "rgb_matrix": { "driver": "ws2812", - "max_brightness": 128, + "max_brightness": 255, "split_count": [29, 29], "animations": { "band_pinwheel_sat": true, From 63d4abeb8532aec60d3029cc9cce78a5bed9916f Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Tue, 5 Dec 2023 17:51:13 -0800 Subject: [PATCH 29/87] Fixed OLED logo timeout bug Updated Sofle Pico OLED logo Added Sofle Pico OLED attributation and build data --- .../sofle_pico/keymaps/jellytitan/keymap.c | 131 +++++++++--------- 1 file changed, 69 insertions(+), 62 deletions(-) diff --git a/keyboards/sofle_pico/keymaps/jellytitan/keymap.c b/keyboards/sofle_pico/keymaps/jellytitan/keymap.c index 23e0de213cb..eaab74d18fd 100644 --- a/keyboards/sofle_pico/keymaps/jellytitan/keymap.c +++ b/keyboards/sofle_pico/keymaps/jellytitan/keymap.c @@ -199,7 +199,8 @@ // Default timeout for displaying logo on boot. #ifndef OLED_LOGO_TIMEOUT - #define OLED_LOGO_TIMEOUT 5000 + // 10 second timeout. + #define OLED_LOGO_TIMEOUT 10000 #endif #ifdef OLED_ENABLE @@ -232,71 +233,71 @@ static void render_logo(void) { // @todo - should we split this into a seperate file? kb16 has a good example. static const char PROGMEM sofle_pico_logo[] = { - // 'sofle-pico-vector-logo-v3bw', 64x128px - 0x00, 0x00, 0xf8, 0xfc, 0xdc, 0x8e, 0x0e, 0x0e, 0x1c, 0x1c, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xfe, 0xfe, 0x87, 0x03, 0x03, - 0x9f, 0xfe, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, + // 'sofle-pico-vector-logo-v5 OLED chopped', 64x128px + 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xe0, 0xf0, 0xf0, 0xf0, 0x70, 0xf0, 0xf0, 0xe0, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x60, 0xe0, 0xe1, 0x83, 0x03, 0x07, 0x87, 0xce, 0xfe, 0xfc, 0x00, 0x00, 0x38, 0xfe, 0xff, - 0x87, 0x03, 0x03, 0x03, 0x83, 0xef, 0xfe, 0xfc, 0x00, 0x00, 0xff, 0xff, 0xff, 0x03, 0x03, 0x03, - 0x07, 0xff, 0xff, 0x00, 0x00, 0x30, 0xfe, 0xff, 0xbf, 0x1b, 0x1b, 0x1b, 0x9f, 0xff, 0x9e, 0x00, + 0x00, 0xe0, 0xf0, 0xf8, 0xfc, 0x3c, 0x3c, 0x3c, 0x7c, 0xf8, 0xf8, 0xf0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xe1, 0xe3, 0x63, 0x63, 0x63, 0xe3, 0xe3, 0xc1, 0x80, 0x00, 0x40, 0xe0, 0xe0, 0x41, - 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x00, 0x00, 0x00, - 0x00, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0f, 0x1f, 0x3f, 0x3f, 0x3f, 0x7c, 0x78, 0xf8, 0xf8, 0xf0, 0xe0, 0x00, + 0x00, 0xc0, 0xf0, 0xf8, 0xfc, 0x3c, 0x1c, 0x1e, 0x1e, 0x3c, 0xfc, 0xf8, 0xf0, 0xc0, 0x00, 0x1c, + 0x1c, 0xff, 0xff, 0xff, 0xff, 0x1c, 0x1c, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xc0, + 0xf0, 0xf8, 0xfc, 0xfc, 0xce, 0xce, 0xce, 0xdc, 0xfc, 0xfc, 0xf8, 0xe0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x08, 0x1e, 0x1e, 0x1e, 0x3c, 0x3c, 0x3c, 0x3e, 0x1f, 0x1f, 0x0f, 0x07, 0x01, + 0x00, 0x01, 0x07, 0x0f, 0x1f, 0x1e, 0x3c, 0x3c, 0x3c, 0x1e, 0x1f, 0x0f, 0x07, 0x03, 0x00, 0x00, + 0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x01, + 0x07, 0x0f, 0x1f, 0x1f, 0x3c, 0x38, 0x38, 0x3c, 0x1c, 0x1c, 0x0c, 0x04, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0x06, 0x06, 0x06, 0x0e, 0x9e, 0xfc, 0xf8, 0x00, 0x00, 0x8e, + 0x8e, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0x70, 0x70, 0x30, 0x38, 0x3f, 0x1f, 0x0f, 0x00, 0x00, 0xf8, 0xf8, 0x00, - 0x00, 0x00, 0xe0, 0xf0, 0x38, 0x1c, 0x1c, 0x1c, 0x1c, 0x38, 0x00, 0x00, 0xe0, 0xf0, 0x78, 0x18, - 0x1c, 0x1c, 0x1c, 0x38, 0xf8, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x07, 0x07, 0x07, 0x07, 0x03, 0x03, 0x00, 0x00, 0x00, 0xff, + 0xff, 0x00, 0x00, 0x00, 0x7c, 0xfe, 0xff, 0x83, 0x01, 0x01, 0x01, 0x83, 0x83, 0x00, 0x00, 0x7e, + 0xff, 0xc7, 0x83, 0x01, 0x01, 0x01, 0x83, 0xff, 0xff, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x00, - 0x00, 0x00, 0x07, 0x0f, 0x1e, 0x1c, 0x18, 0x18, 0x1c, 0x1c, 0x00, 0x00, 0x07, 0x0f, 0x1e, 0x1c, - 0x18, 0x18, 0x18, 0x1c, 0x0f, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0xc0, 0xc3, 0xe3, 0xe0, 0xe0, 0xe0, 0xf0, 0x70, 0x70, 0x70, 0x70, 0x30, 0x33, + 0x73, 0xe0, 0x60, 0xe0, 0xe0, 0xc0, 0xc1, 0x83, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x80, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x70, + 0x30, 0x70, 0x70, 0x70, 0x70, 0x70, 0xf0, 0xe0, 0xe0, 0xe0, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x03, 0x1f, 0xff, 0xf8, 0xd0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x20, + 0x20, 0x40, 0xc0, 0x80, 0x00, 0x01, 0x87, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0xff, 0xff, 0x03, 0x01, 0x00, 0x80, 0xc0, 0x40, 0x20, + 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf0, 0xf8, 0x7f, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0f, 0x1c, 0x1c, 0x38, 0x78, 0x60, 0x60, 0x60, 0x60, + 0x60, 0x70, 0x38, 0x39, 0xdf, 0xef, 0xf7, 0x7b, 0x39, 0x1c, 0x1c, 0x0e, 0x0e, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x0e, 0x0e, 0x1e, 0x1c, 0x3c, 0x79, 0xfb, 0xf7, 0xef, 0x9f, 0x38, 0x30, 0x70, 0x60, + 0x60, 0x60, 0x60, 0x70, 0x38, 0x3c, 0x1c, 0x0f, 0x0f, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, + 0xf8, 0xfc, 0x7e, 0x7f, 0xff, 0xff, 0xe3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc1, 0xff, 0x7f, 0x7f, 0x3f, 0x7c, 0xf8, 0xf0, + 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, + 0x81, 0x00, 0x00, 0x00, 0x00, 0x01, 0xcf, 0xff, 0xfe, 0x7c, 0x78, 0x78, 0x38, 0x30, 0x30, 0x30, + 0x30, 0x30, 0x38, 0x78, 0x78, 0x7c, 0xfe, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, + 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x03, 0x07, 0x0f, 0x0e, 0x1e, 0x3f, 0x7f, 0xf1, 0xe0, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xc0, 0xe1, 0xf3, 0x7f, 0x3f, 0x1f, 0x0f, 0x07, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xe0, 0xf0, 0xf0, 0xf0, 0x78, 0x38, 0x38, 0x38, 0x1c, 0x3c, 0x1c, 0x1c, 0x1c, 0x38, 0x38, - 0x38, 0x38, 0x78, 0x70, 0xf0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xf0, 0x78, 0x38, 0x3c, 0x1c, 0x1c, 0x1c, - 0x1c, 0x0e, 0x0e, 0x0e, 0x1e, 0x0e, 0x1c, 0x1c, 0x1c, 0x38, 0xb8, 0xf8, 0xf8, 0xf0, 0x00, 0x00, - 0x00, 0x03, 0x3f, 0x7f, 0xff, 0xf0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x02, 0x04, 0x04, 0x08, 0x18, - 0x10, 0x30, 0x60, 0xc0, 0xc0, 0xc1, 0xff, 0x7f, 0x3e, 0x80, 0x80, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, - 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x80, 0x9e, 0xbf, 0x7f, 0xf1, 0xe0, 0xe0, 0x30, 0x10, 0x08, 0x0c, - 0x04, 0x02, 0x02, 0x00, 0x01, 0x00, 0x00, 0x80, 0xe0, 0xf8, 0xfe, 0x7f, 0x1f, 0x03, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x07, 0x0e, 0x1e, 0x1c, 0x3c, 0x38, 0x38, 0x38, 0x38, - 0x18, 0x9c, 0xce, 0xef, 0xff, 0xfd, 0xfe, 0x1e, 0x0f, 0x07, 0x03, 0x03, 0x01, 0x01, 0x01, 0x01, - 0x01, 0x01, 0x01, 0x01, 0x03, 0x03, 0x07, 0x0f, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xce, 0x9c, 0x1c, - 0x1c, 0x1c, 0x1c, 0x1c, 0x1e, 0x0f, 0x07, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf8, 0xfc, - 0x3f, 0x1f, 0x1f, 0x1f, 0x3f, 0x7f, 0xff, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xf0, 0xfe, 0x3f, 0x1f, 0x0f, 0x0f, 0x1f, 0x3f, - 0xfc, 0xf8, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x3f, 0x7d, - 0xf0, 0xc0, 0xc0, 0x80, 0x80, 0xc0, 0xfb, 0xff, 0x3f, 0x3f, 0x1f, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, - 0x0e, 0x0e, 0x0e, 0x0e, 0x1f, 0x1f, 0x3f, 0x3f, 0x7f, 0xff, 0xc0, 0xc0, 0xc0, 0xc0, 0xe0, 0xf0, - 0x7f, 0x3f, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x01, 0x03, 0x03, 0x07, 0x0f, 0x1f, 0x3e, 0x38, 0x70, 0x60, 0xe0, 0xe0, 0xc0, 0xc0, 0xc0, - 0xc0, 0xc0, 0xc0, 0xc0, 0xe0, 0xe0, 0x70, 0x78, 0x3c, 0x3f, 0x1f, 0x0f, 0x07, 0x03, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0x80, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x1c, 0x38, 0x0e, 0x00, 0x11, 0x30, 0x26, 0x3f, 0x19, - 0x00, 0x20, 0x20, 0x00, 0x1f, 0x30, 0x20, 0x31, 0x1f, 0x10, 0x18, 0x1e, 0x1b, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xd8, 0xfc, 0x6c, 0xfc, 0xd8, 0x00, 0x80, 0x80, 0x18, 0x0c, 0xcc, 0x78, 0x10, 0x00, - 0x80, 0xe0, 0xf0, 0xf8, 0x80, 0x80, 0x80, 0x00, 0x18, 0x8c, 0xcc, 0x78, 0x10, 0x00, 0xf8, 0x0c, - 0x0c, 0x98, 0xf0, 0x00, 0x18, 0x8c, 0xcc, 0x78, 0x00, 0x00, 0x18, 0x0c, 0x6c, 0xf8, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, - 0x00, 0x00, 0x01, 0x03, 0x02, 0xc3, 0xc1, 0x00, 0x00, 0xc0, 0x02, 0x03, 0x03, 0x02, 0x02, 0x00, - 0x01, 0xc1, 0x01, 0xc3, 0x01, 0x00, 0x00, 0x00, 0x03, 0x03, 0xc3, 0xc2, 0xc0, 0xc0, 0xc1, 0x83, - 0x83, 0x03, 0x80, 0x00, 0x03, 0x03, 0x03, 0x02, 0x00, 0x00, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xfe, 0xa2, 0xb2, 0xfe, 0x00, 0x3f, 0x07, 0x02, - 0x3e, 0x00, 0xe0, 0x38, 0x0e, 0x01, 0x00, 0x20, 0x30, 0x1f, 0x00, 0x1c, 0x3e, 0x3a, 0x3e, 0x1c, - 0x1f, 0x3f, 0x00, 0x3f, 0x00, 0x82, 0xce, 0x38, 0x0c, 0x06, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x3f, 0x02, 0x08, 0x3e, 0x22, 0x32, 0x3e, 0x00, 0x3e, 0x1e, 0x02, 0x3e, 0x00, 0x00 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; oled_write_raw_P(sofle_pico_logo, sizeof(sofle_pico_logo)); } @@ -331,32 +332,38 @@ } } - bool oled_task_user(void) { + bool oled_task_user(void) { static bool finished_logo = false; if ((timer_elapsed(startup_timer) < OLED_LOGO_TIMEOUT) && !finished_logo) { // Display the logo for 5 seconds on boot. if (is_keyboard_master()) { render_logo(); + // 10 Chars per line. set cursor used to simplify line wraps. + oled_set_cursor(0, 12); + oled_write_P(PSTR("Build 3.51"), false); + oled_set_cursor(0, 13); + oled_write_P(PSTR("12-5-2023"), false); + oled_set_cursor(0, 14); + oled_write_P(PSTR("by:github/"), false); + oled_set_cursor(0, 15); + oled_write_P(PSTR("JellyTitan"), false); } else { render_qmk_logo(); } } else { // Display the current keyboard state. if (!finished_logo) { - // Clears the OLED. - oled_clear(); - } else { finished_logo = true; - } + // Clears the OLED. + oled_clear(); + } if (is_keyboard_master()) { render_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc) } else { render_logo(); } - return false; } - return true; - + return false; } #endif \ No newline at end of file From 867ebcaf5e8d6a58200e62e33e1af0d8fcefb6f5 Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Tue, 5 Dec 2023 19:28:21 -0800 Subject: [PATCH 30/87] Added QMK & Via logo to RH startup OLED --- .../sofle_pico/keymaps/jellytitan/keymap.c | 76 +++++++++++++++++-- 1 file changed, 69 insertions(+), 7 deletions(-) diff --git a/keyboards/sofle_pico/keymaps/jellytitan/keymap.c b/keyboards/sofle_pico/keymaps/jellytitan/keymap.c index eaab74d18fd..3433a2462cc 100644 --- a/keyboards/sofle_pico/keymaps/jellytitan/keymap.c +++ b/keyboards/sofle_pico/keymaps/jellytitan/keymap.c @@ -223,12 +223,74 @@ } static void render_qmk_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 + // 'qmk_via_OLED_128x64', 64x128px + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, + 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xfc, 0xfe, 0xfe, + 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, + 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, + 0xfe, 0xfc, 0xf8, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x01, + 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0x71, 0x71, 0x71, 0x71, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, + 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x71, 0x71, 0x71, 0x71, 0x71, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0xf8, 0xf0, 0xf1, 0xf1, 0xe3, 0xe3, 0xe3, 0x00, 0x00, + 0x00, 0xe3, 0xe3, 0xf3, 0xf1, 0xf1, 0xf0, 0xf8, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x07, 0x07, 0x7f, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xfc, + 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x7f, 0x07, 0x07, 0x07, 0x07, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, + 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x7f, 0xff, + 0x7f, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, + 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0x70, 0x30, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x38, + 0xf0, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x78, 0xf0, 0xc0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf8, 0x38, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, + 0xf8, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xf0, 0x38, 0x18, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xe3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x03, 0x0f, 0x7e, 0xf8, 0xc0, + 0x00, 0x80, 0xe0, 0xfc, 0x1f, 0x07, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, + 0xff, 0x0c, 0x1e, 0x7f, 0xf3, 0xc1, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0f, 0x0e, 0x0c, 0x1c, 0x1c, 0x1c, 0x0c, 0x0c, 0x0e, + 0x0f, 0x1f, 0x38, 0x30, 0x70, 0x20, 0x00, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, + 0x0f, 0x0f, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x0f, 0x0c, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x7c, 0xfe, 0xfe, 0xfc, 0xfc, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xfc, 0xfe, 0xfe, 0xfe, 0x3c, 0x00, 0x00, 0x00, 0x00, + 0xe0, 0xf8, 0xfc, 0xfc, 0xfc, 0xf8, 0x10, 0x00, 0x00, 0x00, 0xc0, 0xf8, 0xfc, 0xfe, 0xfe, 0xfe, + 0xfe, 0xfc, 0xf8, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0xf0, 0xfc, 0xff, 0xff, 0xff, 0x7f, 0x0f, 0x01, 0x00, 0x00, 0xe0, 0xf8, 0xff, + 0xff, 0xff, 0xff, 0x1f, 0x03, 0x00, 0x00, 0xc0, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x07, 0x03, + 0x1f, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0xc0, + 0xf0, 0xfe, 0xff, 0xff, 0xff, 0x3f, 0x0f, 0x01, 0x00, 0x00, 0xe0, 0xf8, 0xff, 0xff, 0xff, 0x7f, + 0x1f, 0x03, 0x00, 0x00, 0xc0, 0xf8, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xf8, 0xf8, 0xf8, + 0xf8, 0xf8, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, 0x3f, 0x7f, 0x7f, 0x7f, + 0x7f, 0x7f, 0x3f, 0x0f, 0x01, 0x00, 0x00, 0x00, 0x38, 0x7f, 0x7f, 0x7f, 0x3f, 0x1f, 0x03, 0x00, + 0x00, 0x00, 0x18, 0x7e, 0x7f, 0x7f, 0x7f, 0x1f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1f, 0x3f, 0x7f, 0x7f, 0x7f, 0x3c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x1e, 0x3e, + 0x1c, 0x08, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, + 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x3e, 0x3e, + 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; - - oled_write_P(qmk_logo, false); + oled_write_raw_P(qmk_logo, sizeof(qmk_logo)); + // oled_write_P(qmk_logo, false); } static void render_logo(void) { // @todo - should we split this into a seperate file? kb16 has a good example. @@ -338,9 +400,9 @@ // Display the logo for 5 seconds on boot. if (is_keyboard_master()) { render_logo(); - // 10 Chars per line. set cursor used to simplify line wraps. + // 10 Chars per line. Set cursor used to simplify line wraps. oled_set_cursor(0, 12); - oled_write_P(PSTR("Build 3.51"), false); + oled_write_P(PSTR("v3.51"), false); oled_set_cursor(0, 13); oled_write_P(PSTR("12-5-2023"), false); oled_set_cursor(0, 14); From 2162f101cd89116b5cdde4a6670fea683f711df0 Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Wed, 13 Dec 2023 14:20:47 -0800 Subject: [PATCH 31/87] Update readme.md image link --- keyboards/sofle_pico/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/sofle_pico/readme.md b/keyboards/sofle_pico/readme.md index 530940bbe59..50d929528f0 100644 --- a/keyboards/sofle_pico/readme.md +++ b/keyboards/sofle_pico/readme.md @@ -1,6 +1,6 @@ # sofle_pico -![sofle_pico](https://i.imgur.com/WzZaIgQh.jpg) +![Sofle Pico](https://i.imgur.com/WzZaIgQh.jpg) Sofle Pico is a 60% Raspberry Pi Pico powered split keyboard boasting a 4x6 layout with an aggressive columnar stagger. It has 5 "thumb" keys on either side, support for 2-4 rotary encoders, and per-key RGB lighting. From 567bfe884d0908a4eee2f56cc21d6f68e2ea6629 Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Wed, 13 Dec 2023 14:21:02 -0800 Subject: [PATCH 32/87] Update readme.md --- keyboards/sofle_pico/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/sofle_pico/readme.md b/keyboards/sofle_pico/readme.md index 50d929528f0..577b1108f01 100644 --- a/keyboards/sofle_pico/readme.md +++ b/keyboards/sofle_pico/readme.md @@ -1,6 +1,6 @@ # sofle_pico -![Sofle Pico](https://i.imgur.com/WzZaIgQh.jpg) +![Sofle Pico](https://imgur.com/12R25jF) Sofle Pico is a 60% Raspberry Pi Pico powered split keyboard boasting a 4x6 layout with an aggressive columnar stagger. It has 5 "thumb" keys on either side, support for 2-4 rotary encoders, and per-key RGB lighting. From bbfdde98bd1291c6c75503a6af05be4fb285a7d7 Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Wed, 13 Dec 2023 14:23:24 -0800 Subject: [PATCH 33/87] Update readme.md --- keyboards/sofle_pico/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/sofle_pico/readme.md b/keyboards/sofle_pico/readme.md index 577b1108f01..e236f409381 100644 --- a/keyboards/sofle_pico/readme.md +++ b/keyboards/sofle_pico/readme.md @@ -1,6 +1,6 @@ # sofle_pico -![Sofle Pico](https://imgur.com/12R25jF) +![Sofle Pico](https://i.imgur.com/12R25jF.jpg) Sofle Pico is a 60% Raspberry Pi Pico powered split keyboard boasting a 4x6 layout with an aggressive columnar stagger. It has 5 "thumb" keys on either side, support for 2-4 rotary encoders, and per-key RGB lighting. From 36bc366699aec30215b42a236f762a165e4e2632 Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Wed, 13 Dec 2023 14:24:21 -0800 Subject: [PATCH 34/87] Removed animation default 'on' --- keyboards/sofle_pico/info.json | 1 - 1 file changed, 1 deletion(-) diff --git a/keyboards/sofle_pico/info.json b/keyboards/sofle_pico/info.json index baebc5fbf3d..f289e4f6499 100644 --- a/keyboards/sofle_pico/info.json +++ b/keyboards/sofle_pico/info.json @@ -91,7 +91,6 @@ }, "default": { "animation": "typing_heatmap", - "on": true, "speed": 14 }, "layout": [ From c8fd1299cdd21b4bef150ad3f8233f9290e1188d Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Thu, 14 Dec 2023 14:53:09 -0800 Subject: [PATCH 35/87] Default keymap matches legacy sofle Added via support (not tested yet) --- keyboards/sofle_pico/keymaps/default/keymap.c | 375 +++++++++- .../sofle_pico/keymaps/default/readme.md | 20 + keyboards/sofle_pico/keymaps/via/config.h | 9 - keyboards/sofle_pico/keymaps/via/keymap.c | 705 +++++++++--------- keyboards/sofle_pico/keymaps/via/readme.md | 29 - 5 files changed, 744 insertions(+), 394 deletions(-) create mode 100644 keyboards/sofle_pico/keymaps/default/readme.md delete mode 100644 keyboards/sofle_pico/keymaps/via/config.h delete mode 100644 keyboards/sofle_pico/keymaps/via/readme.md diff --git a/keyboards/sofle_pico/keymaps/default/keymap.c b/keyboards/sofle_pico/keymaps/default/keymap.c index 5153cb86a9a..9b4ac7f5ba1 100644 --- a/keyboards/sofle_pico/keymaps/default/keymap.c +++ b/keyboards/sofle_pico/keymaps/default/keymap.c @@ -3,34 +3,381 @@ #include QMK_KEYBOARD_H +enum sofle_layers { + /* _M_XYZ = Mac Os, _W_XYZ = Win/Linux */ + _QWERTY, + _COLEMAK, + _LOWER, + _RAISE, + _ADJUST, +}; + +enum custom_keycodes { + KC_QWERTY = SAFE_RANGE, + KC_COLEMAK, + KC_PRVWD, + KC_NXTWD, + KC_LSTRT, + KC_LEND, + KC_DLINE +}; + +/** + * Tap Dance declarations + */ +enum tapdances { + _TD_FIVE_ENTER, +}; + +/* Tapdance */ +#define TD5ENT TD(_TD_FIVE_ENTER) + +/** + * Tap Dance definitions + * + * To use this in the configurator, enter the name 'TD5ENT' in the "Any" key. + */ +tap_dance_action_t tap_dance_actions[] = { + /* Tap once for 5, twice for Enter. */ + [_TD_FIVE_ENTER] = ACTION_TAP_DANCE_DOUBLE(KC_5, KC_ENT), +}; + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* * QWERTY * ,-----------------------------------------. ,-----------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` | + * | ` | 1 | 2 | 3 | 4 |TD5ENT| | 6 | 7 | 8 | 9 | 0 | ` | * |------+------+------+------+------+------| |------+------+------+------+------+------| * | ESC | Q | W | E | R | T | | Y | U | I | O | P | Bspc | * |------+------+------+------+------+------| |------+------+------+------+------+------| * | Tab | A | S | D | F | G |-------. ,-------| H | J | K | L | ; | ' | - * |------+------+------+------+------+------| Mute | | Pause |------+------+------+------+------+------| + * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| * |LShift| Z | X | C | V | B |-------| |-------| N | M | , | . | / |RShift| * `-----------------------------------------/ / \ \-----------------------------------------' - * | LCTL | LGUI | LCMD | LALT | /Enter / \Space \ | RALT | RCMD | RGUI | RCTL | + * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI | * | | | | |/ / \ \ | | | | | * `----------------------------------' '------''---------------------------' */ -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, KC_MPLY,KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LCTL, KC_LGUI, KC_LCMD, KC_LALT, KC_ENT, KC_SPC, KC_RALT, KC_RCMD, KC_RGUI, KC_RCTL -) +[_QWERTY] = LAYOUT( + KC_GRV, KC_1, KC_2, KC_3, KC_4, TD5ENT, 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_LCTL, MO(_LOWER), KC_ENT, KC_SPC, MO(_RAISE), KC_RCTL, KC_RALT, KC_RGUI +), +/* + * COLEMAK + * ,-----------------------------------------. ,-----------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | ESC | Q | W | F | P | G | | J | L | U | Y | ; | Bspc | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | TAB | A | R | S | T | D |-------. ,-------| H | N | E | I | O | ' | + * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| + * |LShift| Z | X | C | V | B |-------| |-------| K | M | , | . | / |RShift| + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | 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_LCTL,MO(_LOWER), KC_ENT, KC_SPC, MO(_RAISE), KC_RCTL, KC_RALT, KC_RGUI +), +/* LOWER + * ,-----------------------------------------. ,-----------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | F12 | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Tab | ! | @ | # | $ | % |-------. ,-------| ^ | & | * | ( | ) | | | + * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| + * | Shift| = | - | + | { | } |-------| |-------| [ | ] | ; | : | \ | Shift| + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI | + * | | | | |/ / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ +[_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 + * ,----------------------------------------. ,-----------------------------------------. + * | | | | | | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | 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| + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI | + * | | | | |/ / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ +[_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 + * ,-----------------------------------------. ,-----------------------------------------. + * | | | | | | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | QK_BOOT| |QWERTY|COLEMAK| | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | |MACWIN| | | |-------. ,-------| | VOLDO| MUTE | VOLUP| | | + * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| + * | | | | | | |-------| |-------| | PREV | PLAY | NEXT | | | + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI | + * | | | | |/ / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ + [_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, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) }; -#if defined(ENCODER_MAP_ENABLE) -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MPRV, KC_MNXT) }, -}; +#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); + oled_write_ln_P(PSTR("MODE"), false); + oled_write_ln_P(PSTR(""), false); + if (keymap_config.swap_lctl_lgui) { + oled_write_ln_P(PSTR("MAC"), false); + } else { + oled_write_ln_P(PSTR("WIN"), false); + } + + switch (get_highest_layer(default_layer_state)) { + case _QWERTY: + oled_write_ln_P(PSTR("Qwrt"), false); + break; + case _COLEMAK: + oled_write_ln_P(PSTR("Clmk"), false); + break; + default: + oled_write_P(PSTR("Undef"), false); + } + oled_write_P(PSTR("\n\n"), false); + // Print current layer + oled_write_ln_P(PSTR("LAYER"), false); + switch (get_highest_layer(layer_state)) { + case _COLEMAK: + case _QWERTY: + oled_write_P(PSTR("Base\n"), false); + break; + case _RAISE: + oled_write_P(PSTR("Raise"), false); + break; + case _LOWER: + oled_write_P(PSTR("Lower"), false); + break; + case _ADJUST: + oled_write_P(PSTR("Adj\n"), 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 + +layer_state_t layer_state_set_user(layer_state_t state) { + return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KC_QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + case KC_COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + case KC_PRVWD: + if (record->event.pressed) { + if (keymap_config.swap_lctl_lgui) { + register_mods(mod_config(MOD_LALT)); + register_code(KC_LEFT); + } else { + register_mods(mod_config(MOD_LCTL)); + register_code(KC_LEFT); + } + } else { + if (keymap_config.swap_lctl_lgui) { + unregister_mods(mod_config(MOD_LALT)); + unregister_code(KC_LEFT); + } else { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_LEFT); + } + } + break; + case KC_NXTWD: + if (record->event.pressed) { + if (keymap_config.swap_lctl_lgui) { + register_mods(mod_config(MOD_LALT)); + register_code(KC_RIGHT); + } else { + register_mods(mod_config(MOD_LCTL)); + register_code(KC_RIGHT); + } + } else { + if (keymap_config.swap_lctl_lgui) { + unregister_mods(mod_config(MOD_LALT)); + unregister_code(KC_RIGHT); + } else { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_RIGHT); + } + } + break; + case KC_LSTRT: + if (record->event.pressed) { + if (keymap_config.swap_lctl_lgui) { + //CMD-arrow on Mac, but we have CTL and GUI swapped + register_mods(mod_config(MOD_LCTL)); + register_code(KC_LEFT); + } else { + register_code(KC_HOME); + } + } else { + if (keymap_config.swap_lctl_lgui) { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_LEFT); + } else { + unregister_code(KC_HOME); + } + } + break; + case KC_LEND: + if (record->event.pressed) { + if (keymap_config.swap_lctl_lgui) { + //CMD-arrow on Mac, but we have CTL and GUI swapped + register_mods(mod_config(MOD_LCTL)); + register_code(KC_RIGHT); + } else { + register_code(KC_END); + } + } else { + if (keymap_config.swap_lctl_lgui) { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_RIGHT); + } else { + unregister_code(KC_END); + } + } + break; + case KC_DLINE: + if (record->event.pressed) { + register_mods(mod_config(MOD_LCTL)); + register_code(KC_BSPC); + } else { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_BSPC); + } + break; + case KC_COPY: + if (record->event.pressed) { + register_mods(mod_config(MOD_LCTL)); + register_code(KC_C); + } else { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_C); + } + return false; + case KC_PASTE: + if (record->event.pressed) { + register_mods(mod_config(MOD_LCTL)); + register_code(KC_V); + } else { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_V); + } + return false; + case KC_CUT: + if (record->event.pressed) { + register_mods(mod_config(MOD_LCTL)); + register_code(KC_X); + } else { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_X); + } + return false; + break; + case KC_UNDO: + if (record->event.pressed) { + register_mods(mod_config(MOD_LCTL)); + register_code(KC_Z); + } else { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_Z); + } + return false; + } + return true; +} + + +#ifdef ENCODER_MAP_ENABLE + const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(KC_PGUP, KC_PGDN) }, + [2] = { ENCODER_CCW_CW(_______, _______) }, + [3] = { ENCODER_CCW_CW(_______, _______) }, + [4] = { ENCODER_CCW_CW(_______, _______) }, + }; +#endif + diff --git a/keyboards/sofle_pico/keymaps/default/readme.md b/keyboards/sofle_pico/keymaps/default/readme.md new file mode 100644 index 00000000000..1fb0f37b58f --- /dev/null +++ b/keyboards/sofle_pico/keymaps/default/readme.md @@ -0,0 +1,20 @@ +![SofleKeyboard default keymap](https://github.com/josefadamcik/SofleKeyboard/raw/master/Images/soflekeyboard.png) +![SofleKeyboard adjust layer](https://github.com/josefadamcik/SofleKeyboard/raw/master/Images/soflekeyboard_layout_adjust.png) + + +# Default keymap for Sofle Pico Keyboard + +Ported directly from the classic Sofle Keyboard by Josef Adamcik. +Layout in [Keyboard Layout Editor](http://www.keyboard-layout-editor.com/#/gists/76efb423a46cbbea75465cb468eef7ff) and [adjust layer](http://www.keyboard-layout-editor.com/#/gists/4bcf66f922cfd54da20ba04905d56bd4) + + +Features: + +- Symmetric modifiers (CMD/Super, Alt/Opt, Ctrl, Shift) +- Various modes, can be switched (using Adjust layer and the selected one is stored in EEPROM. +- Modes for Qwerty and Colemak support +- Modes for Mac vs Linux/Win support -> different order of modifiers and different action shortcuts on the "UPPER" layer (the red one in the image). Designed to simplify transtions when switching between operating systems often. +- The OLED on master half shows selected mode and caps lock state and is rotated. +- Left encoder controls volume up/down/mute. Right encoder PGUP/PGDOWN. + + diff --git a/keyboards/sofle_pico/keymaps/via/config.h b/keyboards/sofle_pico/keymaps/via/config.h deleted file mode 100644 index 89cda6449de..00000000000 --- a/keyboards/sofle_pico/keymaps/via/config.h +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright 2023 Ryan Neff (@JellyTitan) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define POINTING_DEVICE_ROTATION_90 -#define SPLIT_POINTING_ENABLE -#define POINTING_DEVICE_RIGHT -#define POINTING_DEVICE_TASK_THROTTLE_MS 8 diff --git a/keyboards/sofle_pico/keymaps/via/keymap.c b/keyboards/sofle_pico/keymaps/via/keymap.c index 23e0de213cb..9b4ac7f5ba1 100644 --- a/keyboards/sofle_pico/keymaps/via/keymap.c +++ b/keyboards/sofle_pico/keymaps/via/keymap.c @@ -1,362 +1,383 @@ - // Copyright 2023 Ryan Neff (@JellyTitan) - // SPDX-License-Identifier: GPL-2.0-or-later +// Copyright 2023 Ryan Neff (@JellyTitan) +// SPDX-License-Identifier: GPL-2.0-or-later - #include QMK_KEYBOARD_H +#include QMK_KEYBOARD_H - enum custom_layers { _QWERTY, _LOWER, _RAISE }; +enum sofle_layers { + /* _M_XYZ = Mac Os, _W_XYZ = Win/Linux */ + _QWERTY, + _COLEMAK, + _LOWER, + _RAISE, + _ADJUST, +}; - /* Defines macros for use with the configurators "Any" key. (These are non-standard macros using the "Magnet" app on Mac). */ - /* Move active application right half. */ - #define KC_CSGRA LCTL(LSFT(LGUI(KC_RGHT))) - /* Move active application to left half. */ - #define KC_CSGLA LCTL(LSFT(LGUI(KC_LEFT))) - /* Maximize active application. */ - #define KC_MAXIM LCTL(LSFT(LGUI(KC_UP))) - /* Minimize active application. */ - #define KC_MINIM LCTL(LSFT(LGUI(KC_DOWN))) +enum custom_keycodes { + KC_QWERTY = SAFE_RANGE, + KC_COLEMAK, + KC_PRVWD, + KC_NXTWD, + KC_LSTRT, + KC_LEND, + KC_DLINE +}; - enum custom_keycodes { - QWERTY = SAFE_RANGE, - LOWER, - RAISE, - CMD_TAB_CW, - CMD_TAB_CCW, +/** + * Tap Dance declarations + */ +enum tapdances { + _TD_FIVE_ENTER, +}; + +/* Tapdance */ +#define TD5ENT TD(_TD_FIVE_ENTER) + +/** + * Tap Dance definitions + * + * To use this in the configurator, enter the name 'TD5ENT' in the "Any" key. + */ +tap_dance_action_t tap_dance_actions[] = { + /* Tap once for 5, twice for Enter. */ + [_TD_FIVE_ENTER] = ACTION_TAP_DANCE_DOUBLE(KC_5, KC_ENT), +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* + * QWERTY + * ,-----------------------------------------. ,-----------------------------------------. + * | ` | 1 | 2 | 3 | 4 |TD5ENT| | 6 | 7 | 8 | 9 | 0 | ` | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | ESC | Q | W | E | R | T | | Y | U | I | O | P | Bspc | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Tab | A | S | D | F | G |-------. ,-------| H | J | K | L | ; | ' | + * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| + * |LShift| Z | X | C | V | B |-------| |-------| N | M | , | . | / |RShift| + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI | + * | | | | |/ / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ + +[_QWERTY] = LAYOUT( + KC_GRV, KC_1, KC_2, KC_3, KC_4, TD5ENT, 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_LCTL, MO(_LOWER), KC_ENT, KC_SPC, MO(_RAISE), KC_RCTL, KC_RALT, KC_RGUI +), +/* + * COLEMAK + * ,-----------------------------------------. ,-----------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | ESC | Q | W | F | P | G | | J | L | U | Y | ; | Bspc | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | TAB | A | R | S | T | D |-------. ,-------| H | N | E | I | O | ' | + * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| + * |LShift| Z | X | C | V | B |-------| |-------| K | M | , | . | / |RShift| + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | 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_LCTL,MO(_LOWER), KC_ENT, KC_SPC, MO(_RAISE), KC_RCTL, KC_RALT, KC_RGUI +), +/* LOWER + * ,-----------------------------------------. ,-----------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | F12 | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Tab | ! | @ | # | $ | % |-------. ,-------| ^ | & | * | ( | ) | | | + * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| + * | Shift| = | - | + | { | } |-------| |-------| [ | ] | ; | : | \ | Shift| + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI | + * | | | | |/ / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ +[_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 + * ,----------------------------------------. ,-----------------------------------------. + * | | | | | | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | 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| + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI | + * | | | | |/ / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ +[_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 + * ,-----------------------------------------. ,-----------------------------------------. + * | | | | | | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | QK_BOOT| |QWERTY|COLEMAK| | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | |MACWIN| | | |-------. ,-------| | VOLDO| MUTE | VOLUP| | | + * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| + * | | | | | | |-------| |-------| | PREV | PLAY | NEXT | | | + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI | + * | | | | |/ / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ + [_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, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; + +#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 }; - /* Rotary encoder variables used to hold down Command (GUI) key while cycling through open programs. */ - bool is_cmd_tab_active = false; - uint16_t cmd_tab_timer = 0; + oled_write_P(qmk_logo, false); +} - /** - * Tap Dance declarations - */ - enum tapdances { - _TD_FIVE_ENTER, - }; - - /* Tapdance */ - #define TD5ENT TD(_TD_FIVE_ENTER) - - /** - * Tap Dance definitions - * - * To use this in the configurator, enter the name 'TD5ENT' in the "Any" key. - */ - tap_dance_action_t tap_dance_actions[] = { - /* Tap once for 5, twice for Enter. */ - [_TD_FIVE_ENTER] = ACTION_TAP_DANCE_DOUBLE(KC_5, KC_ENT), - }; - - /** - * Keymap. - * The rotary encoders are programmed manually below because the configurator does not support them yet. - */ - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - // clang-format off - /* - QWERTY - ┌───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┐ - │ = │ 1 │ 2 │ 3 │ 4 │ 5 │ │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ - ├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤ - │Tab│ Q │ W │ E │ R │ T │ │ Y │ U │ I │ O │ P │ \ │ - ├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤ - │Esc│ A │ S │ D │ F │ G │ │ H │ J │ K │ L │ ; │ ' │ - ├───┼───┼───┼───┼───┼───┼───┐ ┌───┼───┼───┼───┼───┼───┼───┤ - │Sft│ Z │ X │ C │ V │ B │Min│ │Max│ N │ M │ , │ . │ / │Sft│ - └───┴───┴───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┴───┴───┘ - ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ - │ ← │ → │Esc│Spc│Bsp│ │Tab│Ent│Del│ ↓ │ ↑ │ - └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ - */ - [_QWERTY] = LAYOUT( - KC_EQL, KC_1, KC_2, KC_3, KC_4, TD5ENT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, - LT(1,KC_DEL), LT(2,KC_A), LCTL_T(KC_S), KC_D, LGUI_T(KC_F), KC_G, KC_H, RGUI_T(KC_J), KC_K, RCTL_T(KC_L), LT(2,KC_SCLN), LT(1,KC_QUOT), - KC_LSFT, LALT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_MINIM, KC_MAXIM, KC_N, KC_M, KC_COMM, KC_DOT, RALT_T(KC_SLSH), KC_RSFT, - KC_LEFT, KC_RGHT, QK_GESC, KC_SPC, KC_BSPC, KC_TAB, KC_ENT, KC_DEL, KC_UP, KC_DOWN - ), - - /* - Symbols/Numpad Layer - ┌────┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬────┐ - │BOOT│F1 │F2 │F3 │F4 │F5 │ │F6 │F7 │F8 │F9 │F10│F11 │ - ├────┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼────┤ - │____│ ! │ @ │ { │ } │ | │ │QMK│ 7 │ 8 │ 9 │ * │F12 │ - ├────┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼────┤ - │____│ # │ $ │ ( │ ) │ ` │ │QMK│ 4 │ 5 │ 6 │ + │____│ - ├────┼───┼───┼───┼───┼───┼───┐ ┌───┼───┼───┼───┼───┼───┼────┤ - │____│ # │ $ │ [ │ ] │ ~ │___│ │___│QMK│ 1 │ 2 │ 3 │ / │BOOT│ - └────┴───┴───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┴───┴────┘ - ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ - │___│___│___│___│___│ │ 0 │ 0 │ 0 │ 0 │ 0 │ - └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ - */ - - [_LOWER] = LAYOUT( - QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, - KC_TRNS, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, DT_PRNT, KC_7, KC_8, KC_9, KC_ASTR, KC_F12, - KC_TRNS, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRV, DT_UP, KC_4, KC_5, KC_6, KC_PPLS, KC_TRNS, - KC_TRNS, KC_HASH, KC_DLR, KC_LBRC, KC_RBRC, KC_TILD, KC_TRNS, KC_TRNS, DT_DOWN, KC_1, KC_2, KC_3, KC_PSLS, QK_BOOT, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P0, KC_P0, KC_P0, KC_P0, KC_P0 - ), - - /* - Navigation/Function Layer - ┌────┬────┬────┬────┬────┬────┐ ┌────┬────┬────┬────┬────┬────┐ - │RGB │ACL0│ACL1│ACL2│____│____│ │____│____│MOD │RMOD│HUI │HUD │ - ├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤ - │____│____│____│MS_U│____│____│ │____│BTN1│ ↑ │BTN2│SAI │SAD │ - ├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤ - │____│____│MS_L│MS_D│MS_R│____│ │____│ ← │ ↓ │ → │VAI │VAD │ - ├────┼────┼────┼────┼────┼────┼────┐ ┌────┼────┼────┼────┼────┼────┼────┤ - │____│____│____│____│____│____│____│ │____│____│____│____│____│SPI │SPD │ - └────┴────┴────┴────┴────┴────┴────┘ └────┴────┴────┴────┴────┴────┴────┘ - ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ - │___│___│___│___│QMK│ │QMK│___│___│___│___│ - └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ - */ - [_RAISE] = LAYOUT( - RGB_TOG, KC_ACL0, KC_ACL1, KC_ACL2, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, RGB_RMOD, RGB_HUI, RGB_HUD, - HF_TOGG, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_UP, KC_BTN2, RGB_SAI, RGB_SAD, - HF_DWLU, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, RGB_VAI, RGB_VAD, - HF_DWLD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPI, RGB_SPD, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_CSGLA, KC_CSGRA, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) - // clang-format on - }; - - bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - return false; - case CMD_TAB_CW: - if (record->event.pressed) { - if (!is_cmd_tab_active) { - is_cmd_tab_active = true; - register_code(KC_LGUI); - } - cmd_tab_timer = timer_read(); - register_code(KC_TAB); - } else { - unregister_code(KC_TAB); - } - break; - case CMD_TAB_CCW: - if (record->event.pressed) { - if (!is_cmd_tab_active) { - is_cmd_tab_active = true; - register_code(KC_LGUI); - } - cmd_tab_timer = timer_read(); - tap_code16(S(KC_TAB)); - } else { - unregister_code(KC_TAB); - } - break; - } - return true; +static void print_status_narrow(void) { + // Print current mode + oled_write_P(PSTR("\n\n"), false); + oled_write_ln_P(PSTR("MODE"), false); + oled_write_ln_P(PSTR(""), false); + if (keymap_config.swap_lctl_lgui) { + oled_write_ln_P(PSTR("MAC"), false); + } else { + oled_write_ln_P(PSTR("WIN"), false); } - /** - * Helper function for rotary encoder. - * - * If the timer has elapsed, the Command/Gui tab will be released. - * You can adjust the milliseconds to speed up the CMD key release. - */ - void matrix_scan_user(void) { - if (is_cmd_tab_active) { - if (timer_elapsed(cmd_tab_timer) > 900) { - unregister_code(KC_LGUI); - is_cmd_tab_active = false; - } - } + switch (get_highest_layer(default_layer_state)) { + case _QWERTY: + oled_write_ln_P(PSTR("Qwrt"), false); + break; + case _COLEMAK: + oled_write_ln_P(PSTR("Clmk"), false); + break; + default: + oled_write_P(PSTR("Undef"), false); } - - /** - * Rotary Encoder. - * - * This can't be programmed through configurator. You must do it here. - * - * This uses the amazing "Encoder map" feature which replicates the normal keyswitch layer handling functionality, but with encoders. - * https://docs.qmk.fm/#/feature_encoders?id=encoder-map - * - * Uses a variant of the Super-alt-tab macro to switch between open applications on a mac. (Command-tab) - * https://docs.qmk.fm/#/feature_macros?id=super-alt%e2%86%aftab - */ - #ifdef ENCODER_MAP_ENABLE - const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - /* Left Hand */ /* Right Hand */ - /* Switch between tabs. (Control + Tab). */ /* Switch between open apps on Mac. (Command + Tab + timer logic) */ - [_QWERTY] = {ENCODER_CCW_CW(S(C(KC_TAB)), C(KC_TAB)), ENCODER_CCW_CW(CMD_TAB_CW, CMD_TAB_CCW)}, - /* Scrolls left & right. (Shift + Mouse Wheel Up). */ /* Scrolls up and down. (Page Down & Page Up - mouse wheel scroll incraments are too small) */ - [_LOWER] = {ENCODER_CCW_CW(S(KC_MS_WH_UP), S(KC_MS_WH_DOWN)), ENCODER_CCW_CW(KC_PGDN, KC_PGUP)}, - /* Selects adjacent words. (Command + Shift + Right Arrow). */ /* Jumps to end/start of line. Hold shift to select. (Gui + arrow). */ - [_RAISE] = {ENCODER_CCW_CW(C(S(KC_LEFT)), C(S(KC_RGHT))), ENCODER_CCW_CW(G(KC_LEFT), G(KC_RGHT))} - }; - #endif - - // Default timeout for displaying logo on boot. - #ifndef OLED_LOGO_TIMEOUT - #define OLED_LOGO_TIMEOUT 5000 - #endif - - #ifdef OLED_ENABLE - - uint16_t startup_timer; - - oled_rotation_t oled_init_user(oled_rotation_t rotation) { - startup_timer = timer_read(); - - if (is_keyboard_master()) { - if(is_keyboard_left()){ - return OLED_ROTATION_90; - } - else { - return OLED_ROTATION_270; - } - } else { - return OLED_ROTATION_90; - } + oled_write_P(PSTR("\n\n"), false); + // Print current layer + oled_write_ln_P(PSTR("LAYER"), false); + switch (get_highest_layer(layer_state)) { + case _COLEMAK: + case _QWERTY: + oled_write_P(PSTR("Base\n"), false); + break; + case _RAISE: + oled_write_P(PSTR("Raise"), false); + break; + case _LOWER: + oled_write_P(PSTR("Lower"), false); + break; + case _ADJUST: + oled_write_P(PSTR("Adj\n"), false); + break; + default: + oled_write_ln_P(PSTR("Undef"), false); } - static void render_qmk_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(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_write_P(qmk_logo, false); - } - static void render_logo(void) { - // @todo - should we split this into a seperate file? kb16 has a good example. - static const char PROGMEM sofle_pico_logo[] = { - // 'sofle-pico-vector-logo-v3bw', 64x128px - 0x00, 0x00, 0xf8, 0xfc, 0xdc, 0x8e, 0x0e, 0x0e, 0x1c, 0x1c, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xfe, 0xfe, 0x87, 0x03, 0x03, - 0x9f, 0xfe, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x60, 0xe0, 0xe1, 0x83, 0x03, 0x07, 0x87, 0xce, 0xfe, 0xfc, 0x00, 0x00, 0x38, 0xfe, 0xff, - 0x87, 0x03, 0x03, 0x03, 0x83, 0xef, 0xfe, 0xfc, 0x00, 0x00, 0xff, 0xff, 0xff, 0x03, 0x03, 0x03, - 0x07, 0xff, 0xff, 0x00, 0x00, 0x30, 0xfe, 0xff, 0xbf, 0x1b, 0x1b, 0x1b, 0x9f, 0xff, 0x9e, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xe1, 0xe3, 0x63, 0x63, 0x63, 0xe3, 0xe3, 0xc1, 0x80, 0x00, 0x40, 0xe0, 0xe0, 0x41, - 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x00, 0x00, 0x00, - 0x00, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0x70, 0x70, 0x30, 0x38, 0x3f, 0x1f, 0x0f, 0x00, 0x00, 0xf8, 0xf8, 0x00, - 0x00, 0x00, 0xe0, 0xf0, 0x38, 0x1c, 0x1c, 0x1c, 0x1c, 0x38, 0x00, 0x00, 0xe0, 0xf0, 0x78, 0x18, - 0x1c, 0x1c, 0x1c, 0x38, 0xf8, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x00, - 0x00, 0x00, 0x07, 0x0f, 0x1e, 0x1c, 0x18, 0x18, 0x1c, 0x1c, 0x00, 0x00, 0x07, 0x0f, 0x1e, 0x1c, - 0x18, 0x18, 0x18, 0x1c, 0x0f, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xe0, 0xf0, 0xf0, 0xf0, 0x78, 0x38, 0x38, 0x38, 0x1c, 0x3c, 0x1c, 0x1c, 0x1c, 0x38, 0x38, - 0x38, 0x38, 0x78, 0x70, 0xf0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xf0, 0x78, 0x38, 0x3c, 0x1c, 0x1c, 0x1c, - 0x1c, 0x0e, 0x0e, 0x0e, 0x1e, 0x0e, 0x1c, 0x1c, 0x1c, 0x38, 0xb8, 0xf8, 0xf8, 0xf0, 0x00, 0x00, - 0x00, 0x03, 0x3f, 0x7f, 0xff, 0xf0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x02, 0x04, 0x04, 0x08, 0x18, - 0x10, 0x30, 0x60, 0xc0, 0xc0, 0xc1, 0xff, 0x7f, 0x3e, 0x80, 0x80, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, - 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x80, 0x9e, 0xbf, 0x7f, 0xf1, 0xe0, 0xe0, 0x30, 0x10, 0x08, 0x0c, - 0x04, 0x02, 0x02, 0x00, 0x01, 0x00, 0x00, 0x80, 0xe0, 0xf8, 0xfe, 0x7f, 0x1f, 0x03, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x07, 0x0e, 0x1e, 0x1c, 0x3c, 0x38, 0x38, 0x38, 0x38, - 0x18, 0x9c, 0xce, 0xef, 0xff, 0xfd, 0xfe, 0x1e, 0x0f, 0x07, 0x03, 0x03, 0x01, 0x01, 0x01, 0x01, - 0x01, 0x01, 0x01, 0x01, 0x03, 0x03, 0x07, 0x0f, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xce, 0x9c, 0x1c, - 0x1c, 0x1c, 0x1c, 0x1c, 0x1e, 0x0f, 0x07, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf8, 0xfc, - 0x3f, 0x1f, 0x1f, 0x1f, 0x3f, 0x7f, 0xff, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xf0, 0xfe, 0x3f, 0x1f, 0x0f, 0x0f, 0x1f, 0x3f, - 0xfc, 0xf8, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x3f, 0x7d, - 0xf0, 0xc0, 0xc0, 0x80, 0x80, 0xc0, 0xfb, 0xff, 0x3f, 0x3f, 0x1f, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, - 0x0e, 0x0e, 0x0e, 0x0e, 0x1f, 0x1f, 0x3f, 0x3f, 0x7f, 0xff, 0xc0, 0xc0, 0xc0, 0xc0, 0xe0, 0xf0, - 0x7f, 0x3f, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x01, 0x03, 0x03, 0x07, 0x0f, 0x1f, 0x3e, 0x38, 0x70, 0x60, 0xe0, 0xe0, 0xc0, 0xc0, 0xc0, - 0xc0, 0xc0, 0xc0, 0xc0, 0xe0, 0xe0, 0x70, 0x78, 0x3c, 0x3f, 0x1f, 0x0f, 0x07, 0x03, 0x01, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0x80, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x1c, 0x38, 0x0e, 0x00, 0x11, 0x30, 0x26, 0x3f, 0x19, - 0x00, 0x20, 0x20, 0x00, 0x1f, 0x30, 0x20, 0x31, 0x1f, 0x10, 0x18, 0x1e, 0x1b, 0x3f, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xd8, 0xfc, 0x6c, 0xfc, 0xd8, 0x00, 0x80, 0x80, 0x18, 0x0c, 0xcc, 0x78, 0x10, 0x00, - 0x80, 0xe0, 0xf0, 0xf8, 0x80, 0x80, 0x80, 0x00, 0x18, 0x8c, 0xcc, 0x78, 0x10, 0x00, 0xf8, 0x0c, - 0x0c, 0x98, 0xf0, 0x00, 0x18, 0x8c, 0xcc, 0x78, 0x00, 0x00, 0x18, 0x0c, 0x6c, 0xf8, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, - 0x00, 0x00, 0x01, 0x03, 0x02, 0xc3, 0xc1, 0x00, 0x00, 0xc0, 0x02, 0x03, 0x03, 0x02, 0x02, 0x00, - 0x01, 0xc1, 0x01, 0xc3, 0x01, 0x00, 0x00, 0x00, 0x03, 0x03, 0xc3, 0xc2, 0xc0, 0xc0, 0xc1, 0x83, - 0x83, 0x03, 0x80, 0x00, 0x03, 0x03, 0x03, 0x02, 0x00, 0x00, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xfe, 0xa2, 0xb2, 0xfe, 0x00, 0x3f, 0x07, 0x02, - 0x3e, 0x00, 0xe0, 0x38, 0x0e, 0x01, 0x00, 0x20, 0x30, 0x1f, 0x00, 0x1c, 0x3e, 0x3a, 0x3e, 0x1c, - 0x1f, 0x3f, 0x00, 0x3f, 0x00, 0x82, 0xce, 0x38, 0x0c, 0x06, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x3f, 0x02, 0x08, 0x3e, 0x22, 0x32, 0x3e, 0x00, 0x3e, 0x1e, 0x02, 0x3e, 0x00, 0x00 - }; - oled_write_raw_P(sofle_pico_logo, sizeof(sofle_pico_logo)); +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + if (is_keyboard_master()) { + return OLED_ROTATION_270; } + return rotation; +} - static void render_status(void) { - oled_write_P(PSTR("Sofle Pico\nv3.04\n~~~~~~~~~\n"), false); - uint8_t n = get_current_wpm(); - char wpm_counter[4]; - wpm_counter[3] = '\0'; - wpm_counter[2] = '0' + n % 10; - wpm_counter[1] = (n /= 10) % 10 ? '0' + (n) % 10 : (n / 10) % 10 ? '0' : ' '; - wpm_counter[0] = n / 10 ? '0' + n / 10 : ' '; - oled_write_P(PSTR("WPM:"), false); - oled_write(wpm_counter, false); - led_t led_state = host_keyboard_led_state(); - oled_write_P(PSTR("\nCaps: "), false); - oled_write_P(led_state.caps_lock ? PSTR("on ") : PSTR("off"), false); - oled_write_P(PSTR("\n"), false); - switch (get_highest_layer(layer_state)) { - case _QWERTY: - oled_write_P(PSTR("Qwerty Base"), false); - break; - case _LOWER: - oled_write_P(PSTR("Numbers &\nSymbols"), false); - break; - case _RAISE: - oled_write_P(PSTR("Navigation"), false); - break; - default: - oled_write_P(PSTR("Unknown"), false); - break; - } +bool oled_task_user(void) { + if (is_keyboard_master()) { + print_status_narrow(); + } else { + render_logo(); } + return false; +} - bool oled_task_user(void) { - static bool finished_logo = false; - if ((timer_elapsed(startup_timer) < OLED_LOGO_TIMEOUT) && !finished_logo) { - // Display the logo for 5 seconds on boot. - if (is_keyboard_master()) { - render_logo(); - } else { - render_qmk_logo(); - } - } else { - // Display the current keyboard state. - if (!finished_logo) { - // Clears the OLED. - oled_clear(); - } else { - finished_logo = true; - } - if (is_keyboard_master()) { - render_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc) - } else { - render_logo(); +#endif + +layer_state_t layer_state_set_user(layer_state_t state) { + return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KC_QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + case KC_COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + case KC_PRVWD: + if (record->event.pressed) { + if (keymap_config.swap_lctl_lgui) { + register_mods(mod_config(MOD_LALT)); + register_code(KC_LEFT); + } else { + register_mods(mod_config(MOD_LCTL)); + register_code(KC_LEFT); + } + } else { + if (keymap_config.swap_lctl_lgui) { + unregister_mods(mod_config(MOD_LALT)); + unregister_code(KC_LEFT); + } else { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_LEFT); + } + } + break; + case KC_NXTWD: + if (record->event.pressed) { + if (keymap_config.swap_lctl_lgui) { + register_mods(mod_config(MOD_LALT)); + register_code(KC_RIGHT); + } else { + register_mods(mod_config(MOD_LCTL)); + register_code(KC_RIGHT); + } + } else { + if (keymap_config.swap_lctl_lgui) { + unregister_mods(mod_config(MOD_LALT)); + unregister_code(KC_RIGHT); + } else { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_RIGHT); + } + } + break; + case KC_LSTRT: + if (record->event.pressed) { + if (keymap_config.swap_lctl_lgui) { + //CMD-arrow on Mac, but we have CTL and GUI swapped + register_mods(mod_config(MOD_LCTL)); + register_code(KC_LEFT); + } else { + register_code(KC_HOME); + } + } else { + if (keymap_config.swap_lctl_lgui) { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_LEFT); + } else { + unregister_code(KC_HOME); + } + } + break; + case KC_LEND: + if (record->event.pressed) { + if (keymap_config.swap_lctl_lgui) { + //CMD-arrow on Mac, but we have CTL and GUI swapped + register_mods(mod_config(MOD_LCTL)); + register_code(KC_RIGHT); + } else { + register_code(KC_END); + } + } else { + if (keymap_config.swap_lctl_lgui) { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_RIGHT); + } else { + unregister_code(KC_END); + } + } + break; + case KC_DLINE: + if (record->event.pressed) { + register_mods(mod_config(MOD_LCTL)); + register_code(KC_BSPC); + } else { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_BSPC); + } + break; + case KC_COPY: + if (record->event.pressed) { + register_mods(mod_config(MOD_LCTL)); + register_code(KC_C); + } else { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_C); + } + return false; + case KC_PASTE: + if (record->event.pressed) { + register_mods(mod_config(MOD_LCTL)); + register_code(KC_V); + } else { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_V); + } + return false; + case KC_CUT: + if (record->event.pressed) { + register_mods(mod_config(MOD_LCTL)); + register_code(KC_X); + } else { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_X); + } + return false; + break; + case KC_UNDO: + if (record->event.pressed) { + register_mods(mod_config(MOD_LCTL)); + register_code(KC_Z); + } else { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_Z); } return false; - } - return true; - } + return true; +} + + +#ifdef ENCODER_MAP_ENABLE + const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(KC_PGUP, KC_PGDN) }, + [2] = { ENCODER_CCW_CW(_______, _______) }, + [3] = { ENCODER_CCW_CW(_______, _______) }, + [4] = { ENCODER_CCW_CW(_______, _______) }, + }; +#endif - #endif \ No newline at end of file diff --git a/keyboards/sofle_pico/keymaps/via/readme.md b/keyboards/sofle_pico/keymaps/via/readme.md deleted file mode 100644 index 2bc57d32064..00000000000 --- a/keyboards/sofle_pico/keymaps/via/readme.md +++ /dev/null @@ -1,29 +0,0 @@ -# JellyTitan sofle_pico Keymap -![jellytitan](https://i.imgur.com/JqGPWCn.png) - -This keymap is derived from Ergodox layouts and is adapted for the [sofle_pico](https://github.com/JellyTitan/sofle_pico). -It is notable for it's semi-complex programming examples that include the use of rotary encoders. - -Plenty of useful examples: -* Pimaroni enabled -* Advanced knob programming! (Three-layer usage + clicks) -* Macros! (Fancy key combos tied to the rotary encoders) -* Tap Dance! (Double tap your '5' key for 'Enter') -* Dynamic Tapping term! (Dial in the double tap speed) - -The qwerty key layout is my adaptation of the Ergodox defaults. -If this is your first split keyboard, you probably want a different key layout. - -Flashing example for this keyboard: - -```bash -# For flashing the left half... -make sofle_pico:jellytitan:uf2-split-left -# or the qmk cli equivalent: -qmk flash -kb sofle_pico --keymap jellytitan -bl uf2-split-left - -# For flashing the right half... -make sofle_pico:jellytitan:uf2-split-right -# or the qmk cli equivalent: -qmk flash -kb sofle_pico --keymap jellytitan -bl uf2-split-right -``` From 461432b6fc91bc6b441837662ba5299ef8a833e2 Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Thu, 14 Dec 2023 14:59:44 -0800 Subject: [PATCH 36/87] Removed tapdance from default config and keymap --- keyboards/sofle_pico/info.json | 1 - keyboards/sofle_pico/keymaps/default/keymap.c | 24 ++----------------- .../sofle_pico/keymaps/jellytitan/rules.mk | 2 +- 3 files changed, 3 insertions(+), 24 deletions(-) diff --git a/keyboards/sofle_pico/info.json b/keyboards/sofle_pico/info.json index f289e4f6499..0cece4639c1 100644 --- a/keyboards/sofle_pico/info.json +++ b/keyboards/sofle_pico/info.json @@ -22,7 +22,6 @@ "console": false, "extrakey": true, "mousekey": true, - "tap_dance": true, "nkro": true, "rgb_matrix": true, "oled": true, diff --git a/keyboards/sofle_pico/keymaps/default/keymap.c b/keyboards/sofle_pico/keymaps/default/keymap.c index 9b4ac7f5ba1..09be46c9d7b 100644 --- a/keyboards/sofle_pico/keymaps/default/keymap.c +++ b/keyboards/sofle_pico/keymaps/default/keymap.c @@ -22,31 +22,11 @@ enum custom_keycodes { KC_DLINE }; -/** - * Tap Dance declarations - */ -enum tapdances { - _TD_FIVE_ENTER, -}; - -/* Tapdance */ -#define TD5ENT TD(_TD_FIVE_ENTER) - -/** - * Tap Dance definitions - * - * To use this in the configurator, enter the name 'TD5ENT' in the "Any" key. - */ -tap_dance_action_t tap_dance_actions[] = { - /* Tap once for 5, twice for Enter. */ - [_TD_FIVE_ENTER] = ACTION_TAP_DANCE_DOUBLE(KC_5, KC_ENT), -}; - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* * QWERTY * ,-----------------------------------------. ,-----------------------------------------. - * | ` | 1 | 2 | 3 | 4 |TD5ENT| | 6 | 7 | 8 | 9 | 0 | ` | + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` | * |------+------+------+------+------+------| |------+------+------+------+------+------| * | ESC | Q | W | E | R | T | | Y | U | I | O | P | Bspc | * |------+------+------+------+------+------| |------+------+------+------+------+------| @@ -60,7 +40,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_QWERTY] = LAYOUT( - KC_GRV, KC_1, KC_2, KC_3, KC_4, TD5ENT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_GRV, + 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, diff --git a/keyboards/sofle_pico/keymaps/jellytitan/rules.mk b/keyboards/sofle_pico/keymaps/jellytitan/rules.mk index ee58f6ad32a..52801f1831d 100644 --- a/keyboards/sofle_pico/keymaps/jellytitan/rules.mk +++ b/keyboards/sofle_pico/keymaps/jellytitan/rules.mk @@ -1,4 +1,4 @@ # POINTING_DEVICE_ENABLE = yes POINTING_DEVICE_DRIVER = pimoroni_trackball -VIA_ENABLE = yes \ No newline at end of file +TAP_DANCE_ENABLE = yes \ No newline at end of file From 0629633da8bd5976e0573ab0c5e6170451c090cc Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Sun, 31 Dec 2023 15:28:51 -0800 Subject: [PATCH 37/87] Reduced max brightness --- keyboards/sofle_pico/info.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/keyboards/sofle_pico/info.json b/keyboards/sofle_pico/info.json index 0cece4639c1..4dcd03eb22f 100644 --- a/keyboards/sofle_pico/info.json +++ b/keyboards/sofle_pico/info.json @@ -8,7 +8,7 @@ "usb": { "vid": "0x4A54", "pid": "0x5350", - "device_version": "3.5.1" + "device_version": "3.5.2" }, "build": { "lto": false @@ -43,7 +43,7 @@ }, "rgb_matrix": { "driver": "ws2812", - "max_brightness": 255, + "max_brightness": 127, "split_count": [29, 29], "animations": { "band_pinwheel_sat": true, @@ -89,8 +89,8 @@ "typing_heatmap": true }, "default": { - "animation": "typing_heatmap", - "speed": 14 + "animation": "cycle_out_in", + "speed": 16 }, "layout": [ { "flags": 4, "matrix": [0, 5], "x": 95, "y": 7 }, From 3da48b3fb94740905b8a1e6eb83eca14c550591e Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Tue, 2 Jan 2024 17:19:08 -0800 Subject: [PATCH 38/87] Added via support for default --- keyboards/sofle_pico/config.h | 3 +++ .../sofle_pico/keymaps/jellytitan/rules.mk | 3 ++- keyboards/sofle_pico/keymaps/via/keymap.c | 24 ++----------------- keyboards/sofle_pico/keymaps/via/readme.md | 20 ++++++++++++++++ keyboards/sofle_pico/keymaps/via/rules.mk | 3 --- 5 files changed, 27 insertions(+), 26 deletions(-) create mode 100644 keyboards/sofle_pico/keymaps/via/readme.md diff --git a/keyboards/sofle_pico/config.h b/keyboards/sofle_pico/config.h index 704f296cf2d..2eb377a1b4b 100644 --- a/keyboards/sofle_pico/config.h +++ b/keyboards/sofle_pico/config.h @@ -56,3 +56,6 @@ # define RGB_DISABLE_WHEN_USB_SUSPENDED #endif + +// Allows for more than the default 4 layers in VIA. +#define DYNAMIC_KEYMAP_LAYER_COUNT 5 diff --git a/keyboards/sofle_pico/keymaps/jellytitan/rules.mk b/keyboards/sofle_pico/keymaps/jellytitan/rules.mk index 52801f1831d..8613fe54dc1 100644 --- a/keyboards/sofle_pico/keymaps/jellytitan/rules.mk +++ b/keyboards/sofle_pico/keymaps/jellytitan/rules.mk @@ -1,4 +1,5 @@ # POINTING_DEVICE_ENABLE = yes POINTING_DEVICE_DRIVER = pimoroni_trackball -TAP_DANCE_ENABLE = yes \ No newline at end of file +TAP_DANCE_ENABLE = yes +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/sofle_pico/keymaps/via/keymap.c b/keyboards/sofle_pico/keymaps/via/keymap.c index 9b4ac7f5ba1..09be46c9d7b 100644 --- a/keyboards/sofle_pico/keymaps/via/keymap.c +++ b/keyboards/sofle_pico/keymaps/via/keymap.c @@ -22,31 +22,11 @@ enum custom_keycodes { KC_DLINE }; -/** - * Tap Dance declarations - */ -enum tapdances { - _TD_FIVE_ENTER, -}; - -/* Tapdance */ -#define TD5ENT TD(_TD_FIVE_ENTER) - -/** - * Tap Dance definitions - * - * To use this in the configurator, enter the name 'TD5ENT' in the "Any" key. - */ -tap_dance_action_t tap_dance_actions[] = { - /* Tap once for 5, twice for Enter. */ - [_TD_FIVE_ENTER] = ACTION_TAP_DANCE_DOUBLE(KC_5, KC_ENT), -}; - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* * QWERTY * ,-----------------------------------------. ,-----------------------------------------. - * | ` | 1 | 2 | 3 | 4 |TD5ENT| | 6 | 7 | 8 | 9 | 0 | ` | + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` | * |------+------+------+------+------+------| |------+------+------+------+------+------| * | ESC | Q | W | E | R | T | | Y | U | I | O | P | Bspc | * |------+------+------+------+------+------| |------+------+------+------+------+------| @@ -60,7 +40,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_QWERTY] = LAYOUT( - KC_GRV, KC_1, KC_2, KC_3, KC_4, TD5ENT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_GRV, + 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, diff --git a/keyboards/sofle_pico/keymaps/via/readme.md b/keyboards/sofle_pico/keymaps/via/readme.md new file mode 100644 index 00000000000..1fb0f37b58f --- /dev/null +++ b/keyboards/sofle_pico/keymaps/via/readme.md @@ -0,0 +1,20 @@ +![SofleKeyboard default keymap](https://github.com/josefadamcik/SofleKeyboard/raw/master/Images/soflekeyboard.png) +![SofleKeyboard adjust layer](https://github.com/josefadamcik/SofleKeyboard/raw/master/Images/soflekeyboard_layout_adjust.png) + + +# Default keymap for Sofle Pico Keyboard + +Ported directly from the classic Sofle Keyboard by Josef Adamcik. +Layout in [Keyboard Layout Editor](http://www.keyboard-layout-editor.com/#/gists/76efb423a46cbbea75465cb468eef7ff) and [adjust layer](http://www.keyboard-layout-editor.com/#/gists/4bcf66f922cfd54da20ba04905d56bd4) + + +Features: + +- Symmetric modifiers (CMD/Super, Alt/Opt, Ctrl, Shift) +- Various modes, can be switched (using Adjust layer and the selected one is stored in EEPROM. +- Modes for Qwerty and Colemak support +- Modes for Mac vs Linux/Win support -> different order of modifiers and different action shortcuts on the "UPPER" layer (the red one in the image). Designed to simplify transtions when switching between operating systems often. +- The OLED on master half shows selected mode and caps lock state and is rotated. +- Left encoder controls volume up/down/mute. Right encoder PGUP/PGDOWN. + + diff --git a/keyboards/sofle_pico/keymaps/via/rules.mk b/keyboards/sofle_pico/keymaps/via/rules.mk index ee58f6ad32a..036bd6d1c3e 100644 --- a/keyboards/sofle_pico/keymaps/via/rules.mk +++ b/keyboards/sofle_pico/keymaps/via/rules.mk @@ -1,4 +1 @@ -# -POINTING_DEVICE_ENABLE = yes -POINTING_DEVICE_DRIVER = pimoroni_trackball VIA_ENABLE = yes \ No newline at end of file From 934ada8ee36d448ec5d2839514bbe6ef09600936 Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Fri, 5 Jan 2024 13:12:37 -0800 Subject: [PATCH 39/87] Updated default layer count to match classic Sofle --- keyboards/sofle_pico/config.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/keyboards/sofle_pico/config.h b/keyboards/sofle_pico/config.h index 2eb377a1b4b..143f3f5801b 100644 --- a/keyboards/sofle_pico/config.h +++ b/keyboards/sofle_pico/config.h @@ -58,4 +58,6 @@ #endif // Allows for more than the default 4 layers in VIA. -#define DYNAMIC_KEYMAP_LAYER_COUNT 5 +#ifndef DYNAMIC_KEYMAP_LAYER_COUNT +# define DYNAMIC_KEYMAP_LAYER_COUNT 5 +#endif From 05c1c9155f217a0890623180693200d64bfd0e7d Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Tue, 20 Feb 2024 15:22:44 -0800 Subject: [PATCH 40/87] Updated Sofle Pico name and url --- keyboards/sofle_pico/info.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/keyboards/sofle_pico/info.json b/keyboards/sofle_pico/info.json index 4dcd03eb22f..06878801d1a 100644 --- a/keyboards/sofle_pico/info.json +++ b/keyboards/sofle_pico/info.json @@ -1,14 +1,14 @@ { "manufacturer": "Ryan Neff", - "keyboard_name": "sofle_pico", - "url": "https://github.com/JellyTitan/sofle_pico", + "keyboard_name": "Sofle Pico", + "url": "https://github.com/JellyTitan/Sofle-Pico", "bootloader_instructions": "Hold the BOOT button while plugging in the usb cable", "maintainer": "Ryan Neff ", - "tags": ["ortho", "split", "rgb", "encoder", "OLED"], + "tags": ["ortho", "split", "rgb", "encoder", "OLED", "128x64", "tenting_puck"], "usb": { "vid": "0x4A54", "pid": "0x5350", - "device_version": "3.5.2" + "device_version": "3.5.4" }, "build": { "lto": false From 3899c212b4fdf2914821d8004b38c1f9a2afd937 Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Tue, 20 Feb 2024 15:49:16 -0800 Subject: [PATCH 41/87] qmk-json formatting applied jellytitan keymaps relabeled as vendor default updated license year --- keyboards/sofle_pico/config.h | 2 +- keyboards/sofle_pico/halconf.h | 2 +- keyboards/sofle_pico/info.json | 189 +++++++++--------- keyboards/sofle_pico/keymaps/default/keymap.c | 2 +- .../config.h | 2 +- .../keymap.c | 4 +- .../readme.md | 10 +- .../rules.mk | 1 - keyboards/sofle_pico/keymaps/via/keymap.c | 2 +- keyboards/sofle_pico/keymaps/via/readme.md | 1 - keyboards/sofle_pico/post_config.h | 3 +- keyboards/sofle_pico/readme.md | 10 +- 12 files changed, 110 insertions(+), 118 deletions(-) rename keyboards/sofle_pico/keymaps/{jellytitan => default_jellytitan}/config.h (82%) rename keyboards/sofle_pico/keymaps/{jellytitan => default_jellytitan}/keymap.c (99%) rename keyboards/sofle_pico/keymaps/{jellytitan => default_jellytitan}/readme.md (83%) rename keyboards/sofle_pico/keymaps/{jellytitan => default_jellytitan}/rules.mk (84%) diff --git a/keyboards/sofle_pico/config.h b/keyboards/sofle_pico/config.h index 143f3f5801b..e01d3fe105c 100644 --- a/keyboards/sofle_pico/config.h +++ b/keyboards/sofle_pico/config.h @@ -1,4 +1,4 @@ -// Copyright 2023 Ryan Neff (@JellyTitan) +// Copyright 2024 Ryan Neff (@JellyTitan) // SPDX-License-Identifier: GPL-2.0-or-later #pragma once diff --git a/keyboards/sofle_pico/halconf.h b/keyboards/sofle_pico/halconf.h index 522bbbb1ae5..6d130c56488 100644 --- a/keyboards/sofle_pico/halconf.h +++ b/keyboards/sofle_pico/halconf.h @@ -1,4 +1,4 @@ -// Copyright 2023 Ryan Neff (@JellyTitan) +// Copyright 2024 Ryan Neff (@JellyTitan) // SPDX-License-Identifier: GPL-2.0-or-later #pragma once #define HAL_USE_I2C TRUE diff --git a/keyboards/sofle_pico/info.json b/keyboards/sofle_pico/info.json index 06878801d1a..e4f001722b1 100644 --- a/keyboards/sofle_pico/info.json +++ b/keyboards/sofle_pico/info.json @@ -1,50 +1,45 @@ { "manufacturer": "Ryan Neff", "keyboard_name": "Sofle Pico", - "url": "https://github.com/JellyTitan/Sofle-Pico", - "bootloader_instructions": "Hold the BOOT button while plugging in the usb cable", "maintainer": "Ryan Neff ", - "tags": ["ortho", "split", "rgb", "encoder", "OLED", "128x64", "tenting_puck"], - "usb": { - "vid": "0x4A54", - "pid": "0x5350", - "device_version": "3.5.4" - }, + "bootloader": "rp2040", + "bootloader_instructions": "Hold the BOOT button while plugging in the usb cable", "build": { "lto": false }, + "diode_direction": "COL2ROW", + "encoder": { + "rotary": [ + {"pin_a": "GP14", "pin_b": "GP15", "resolution": 4} + ] + }, "features": { "bootmagic": true, "command": false, + "console": false, "dynamic_tapping_term": true, "encoder": true, "encoder_map": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, - "rgb_matrix": true, "oled": true, + "rgb_matrix": true, "wpm": true }, - "ws2812": { - "pin": "GP0", - "driver": "vendor" + "matrix_pins": { + "cols": ["GP1", "GP2", "GP3", "GP4", "GP5", "GP8"], + "rows": ["GP9", "GP10", "GP11", "GP12", "GP13"] }, "mouse_key": { - "enabled": true, "delay": 10, + "enabled": true, "interval": 16, "max_speed": 2, "time_to_max": 40 }, - "tapping": { - "term": 210 - }, + "processor": "RP2040", "rgb_matrix": { - "driver": "ws2812", - "max_brightness": 127, - "split_count": [29, 29], "animations": { "band_pinwheel_sat": true, "band_pinwheel_val": true, @@ -92,77 +87,69 @@ "animation": "cycle_out_in", "speed": 16 }, + "driver": "ws2812", "layout": [ - { "flags": 4, "matrix": [0, 5], "x": 95, "y": 7 }, - { "flags": 4, "matrix": [1, 5], "x": 95, "y": 21 }, - { "flags": 4, "matrix": [2, 5], "x": 95, "y": 36 }, - { "flags": 4, "matrix": [3, 5], "x": 95, "y": 50 }, - { "flags": 4, "matrix": [4, 4], "x":115, "y": 64 }, - { "flags": 4, "matrix": [4, 3], "x": 95, "y": 64 }, - { "flags": 4, "matrix": [4, 2], "x": 76, "y": 62 }, - { "flags": 4, "matrix": [3, 4], "x": 76, "y": 48 }, - { "flags": 4, "matrix": [2, 4], "x": 76, "y": 33 }, - { "flags": 4, "matrix": [1, 4], "x": 76, "y": 19 }, - { "flags": 4, "matrix": [0, 4], "x": 76, "y": 5 }, - { "flags": 4, "matrix": [0, 3], "x": 57, "y": 3 }, - { "flags": 4, "matrix": [1, 3], "x": 57, "y": 17 }, - { "flags": 4, "matrix": [2, 3], "x": 57, "y": 31 }, - { "flags": 4, "matrix": [3, 3], "x": 57, "y": 46 }, - { "flags": 4, "matrix": [4, 1], "x": 57, "y": 62 }, - { "flags": 4, "matrix": [4, 0], "x": 38, "y": 64 }, - { "flags": 4, "matrix": [3, 2], "x": 38, "y": 48 }, - { "flags": 4, "matrix": [2, 2], "x": 38, "y": 33 }, - { "flags": 4, "matrix": [1, 2], "x": 38, "y": 19 }, - { "flags": 4, "matrix": [0, 2], "x": 38, "y": 5 }, - { "flags": 4, "matrix": [0, 1], "x": 19, "y": 7 }, - { "flags": 4, "matrix": [1, 1], "x": 19, "y": 21 }, - { "flags": 4, "matrix": [2, 1], "x": 19, "y": 36 }, - { "flags": 4, "matrix": [3, 1], "x": 19, "y": 50 }, - { "flags": 4, "matrix": [3, 0], "x": 0, "y": 50 }, - { "flags": 4, "matrix": [2, 0], "x": 0, "y": 36 }, - { "flags": 4, "matrix": [1, 0], "x": 0, "y": 21 }, - { "flags": 4, "matrix": [0, 0], "x": 0, "y": 7 }, - - { "flags": 4, "matrix": [5, 5], "x":129, "y": 7 }, - { "flags": 4, "matrix": [6, 5], "x":129, "y": 21 }, - { "flags": 4, "matrix": [7, 5], "x":129, "y": 36 }, - { "flags": 4, "matrix": [8, 5], "x":129, "y": 50 }, - { "flags": 4, "matrix": [9, 4], "x":119, "y": 64 }, - { "flags": 4, "matrix": [9, 3], "x":129, "y": 64 }, - { "flags": 4, "matrix": [9, 2], "x":148, "y": 62 }, - { "flags": 4, "matrix": [8, 4], "x":148, "y": 48 }, - { "flags": 4, "matrix": [7, 4], "x":148, "y": 33 }, - { "flags": 4, "matrix": [6, 4], "x":148, "y": 19 }, - { "flags": 4, "matrix": [5, 4], "x":148, "y": 5 }, - { "flags": 4, "matrix": [5, 3], "x":167, "y": 3 }, - { "flags": 4, "matrix": [6, 3], "x":167, "y": 17 }, - { "flags": 4, "matrix": [7, 3], "x":167, "y": 31 }, - { "flags": 4, "matrix": [8, 3], "x":167, "y": 46 }, - { "flags": 4, "matrix": [9, 1], "x":167, "y": 62 }, - { "flags": 4, "matrix": [9, 0], "x":186, "y": 64 }, - { "flags": 4, "matrix": [8, 2], "x":186, "y": 48 }, - { "flags": 4, "matrix": [7, 2], "x":186, "y": 33 }, - { "flags": 4, "matrix": [6, 2], "x":186, "y": 19 }, - { "flags": 4, "matrix": [5, 2], "x":186, "y": 5 }, - { "flags": 4, "matrix": [5, 1], "x":209, "y": 7 }, - { "flags": 4, "matrix": [6, 1], "x":209, "y": 21 }, - { "flags": 4, "matrix": [7, 1], "x":209, "y": 36 }, - { "flags": 4, "matrix": [8, 1], "x":209, "y": 50 }, - { "flags": 4, "matrix": [8, 0], "x":224, "y": 50 }, - { "flags": 4, "matrix": [7, 0], "x":224, "y": 36 }, - { "flags": 4, "matrix": [6, 0], "x":224, "y": 21 }, - { "flags": 4, "matrix": [5, 0], "x":224, "y": 7 } - ] - }, - "matrix_pins": { - "rows": ["GP9", "GP10", "GP11", "GP12", "GP13"], - "cols": ["GP1", "GP2", "GP3", "GP4", "GP5", "GP8"] - }, - "diode_direction": "COL2ROW", - "encoder": { - "rotary": [ - {"pin_a": "GP14", "pin_b": "GP15", "resolution": 4} - ] + {"matrix": [0, 5], "x": 95, "y": 7, "flags": 4}, + {"matrix": [1, 5], "x": 95, "y": 21, "flags": 4}, + {"matrix": [2, 5], "x": 95, "y": 36, "flags": 4}, + {"matrix": [3, 5], "x": 95, "y": 50, "flags": 4}, + {"matrix": [4, 4], "x": 115, "y": 64, "flags": 4}, + {"matrix": [4, 3], "x": 95, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 76, "y": 62, "flags": 4}, + {"matrix": [3, 4], "x": 76, "y": 48, "flags": 4}, + {"matrix": [2, 4], "x": 76, "y": 33, "flags": 4}, + {"matrix": [1, 4], "x": 76, "y": 19, "flags": 4}, + {"matrix": [0, 4], "x": 76, "y": 5, "flags": 4}, + {"matrix": [0, 3], "x": 57, "y": 3, "flags": 4}, + {"matrix": [1, 3], "x": 57, "y": 17, "flags": 4}, + {"matrix": [2, 3], "x": 57, "y": 31, "flags": 4}, + {"matrix": [3, 3], "x": 57, "y": 46, "flags": 4}, + {"matrix": [4, 1], "x": 57, "y": 62, "flags": 4}, + {"matrix": [4, 0], "x": 38, "y": 64, "flags": 4}, + {"matrix": [3, 2], "x": 38, "y": 48, "flags": 4}, + {"matrix": [2, 2], "x": 38, "y": 33, "flags": 4}, + {"matrix": [1, 2], "x": 38, "y": 19, "flags": 4}, + {"matrix": [0, 2], "x": 38, "y": 5, "flags": 4}, + {"matrix": [0, 1], "x": 19, "y": 7, "flags": 4}, + {"matrix": [1, 1], "x": 19, "y": 21, "flags": 4}, + {"matrix": [2, 1], "x": 19, "y": 36, "flags": 4}, + {"matrix": [3, 1], "x": 19, "y": 50, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 50, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 36, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 21, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 7, "flags": 4}, + {"matrix": [5, 5], "x": 129, "y": 7, "flags": 4}, + {"matrix": [6, 5], "x": 129, "y": 21, "flags": 4}, + {"matrix": [7, 5], "x": 129, "y": 36, "flags": 4}, + {"matrix": [8, 5], "x": 129, "y": 50, "flags": 4}, + {"matrix": [9, 4], "x": 119, "y": 64, "flags": 4}, + {"matrix": [9, 3], "x": 129, "y": 64, "flags": 4}, + {"matrix": [9, 2], "x": 148, "y": 62, "flags": 4}, + {"matrix": [8, 4], "x": 148, "y": 48, "flags": 4}, + {"matrix": [7, 4], "x": 148, "y": 33, "flags": 4}, + {"matrix": [6, 4], "x": 148, "y": 19, "flags": 4}, + {"matrix": [5, 4], "x": 148, "y": 5, "flags": 4}, + {"matrix": [5, 3], "x": 167, "y": 3, "flags": 4}, + {"matrix": [6, 3], "x": 167, "y": 17, "flags": 4}, + {"matrix": [7, 3], "x": 167, "y": 31, "flags": 4}, + {"matrix": [8, 3], "x": 167, "y": 46, "flags": 4}, + {"matrix": [9, 1], "x": 167, "y": 62, "flags": 4}, + {"matrix": [9, 0], "x": 186, "y": 64, "flags": 4}, + {"matrix": [8, 2], "x": 186, "y": 48, "flags": 4}, + {"matrix": [7, 2], "x": 186, "y": 33, "flags": 4}, + {"matrix": [6, 2], "x": 186, "y": 19, "flags": 4}, + {"matrix": [5, 2], "x": 186, "y": 5, "flags": 4}, + {"matrix": [5, 1], "x": 209, "y": 7, "flags": 4}, + {"matrix": [6, 1], "x": 209, "y": 21, "flags": 4}, + {"matrix": [7, 1], "x": 209, "y": 36, "flags": 4}, + {"matrix": [8, 1], "x": 209, "y": 50, "flags": 4}, + {"matrix": [8, 0], "x": 224, "y": 50, "flags": 4}, + {"matrix": [7, 0], "x": 224, "y": 36, "flags": 4}, + {"matrix": [6, 0], "x": 224, "y": 21, "flags": 4}, + {"matrix": [5, 0], "x": 224, "y": 7, "flags": 4} + ], + "max_brightness": 127, + "split_count": [29, 29] }, "split": { "enabled": true, @@ -174,8 +161,20 @@ } } }, - "processor": "RP2040", - "bootloader": "rp2040", + "tags": ["ortho", "split", "rgb", "encoder", "OLED", "128x64", "tenting_puck"], + "tapping": { + "term": 210 + }, + "url": "https://github.com/JellyTitan/Sofle-Pico", + "usb": { + "device_version": "3.5.4", + "pid": "0x5350", + "vid": "0x4A54" + }, + "ws2812": { + "driver": "vendor", + "pin": "GP0" + }, "layouts": { "LAYOUT": { "layout": [ @@ -191,7 +190,6 @@ {"label": "9", "matrix": [5, 2], "x": 12, "y": 0.3}, {"label": "0", "matrix": [5, 1], "x": 13, "y": 0.7}, {"label": "`", "matrix": [5, 0], "x": 14, "y": 0.7}, - {"label": "Esc", "matrix": [1, 0], "x": 0, "y": 1.7}, {"label": "Q", "matrix": [1, 1], "x": 1, "y": 1.7}, {"label": "W", "matrix": [1, 2], "x": 2, "y": 1.3}, @@ -204,7 +202,6 @@ {"label": "O", "matrix": [6, 2], "x": 12, "y": 1.3}, {"label": "P", "matrix": [6, 1], "x": 13, "y": 1.7}, {"label": "Bspc", "matrix": [6, 0], "x": 14, "y": 1.7}, - {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.7}, {"label": "A", "matrix": [2, 1], "x": 1, "y": 2.7}, {"label": "S", "matrix": [2, 2], "x": 2, "y": 2.3}, @@ -217,7 +214,6 @@ {"label": "L", "matrix": [7, 2], "x": 12, "y": 2.3}, {"label": ";", "matrix": [7, 1], "x": 13, "y": 2.7}, {"label": "'", "matrix": [7, 0], "x": 14, "y": 2.7}, - {"label": "LShift", "matrix": [3, 0], "x": 0, "y": 3.7}, {"label": "Z", "matrix": [3, 1], "x": 1, "y": 3.7}, {"label": "X", "matrix": [3, 2], "x": 2, "y": 3.3}, @@ -232,7 +228,6 @@ {"label": ".", "matrix": [8, 2], "x": 12, "y": 3.3}, {"label": "/", "matrix": [8, 1], "x": 13, "y": 3.7}, {"label": "RShift", "matrix": [8, 0], "x": 14, "y": 3.7}, - {"label": "LCtrl", "matrix": [4, 0], "x": 2, "y": 4.3}, {"label": "LGUI", "matrix": [4, 1], "x": 3, "y": 4}, {"label": "LCmnd", "matrix": [4, 2], "x": 4, "y": 4.3}, @@ -246,4 +241,4 @@ ] } } -} +} \ No newline at end of file diff --git a/keyboards/sofle_pico/keymaps/default/keymap.c b/keyboards/sofle_pico/keymaps/default/keymap.c index 09be46c9d7b..7b9dcc8cff2 100644 --- a/keyboards/sofle_pico/keymaps/default/keymap.c +++ b/keyboards/sofle_pico/keymaps/default/keymap.c @@ -1,4 +1,4 @@ -// Copyright 2023 Ryan Neff (@JellyTitan) +// Copyright 2024 Ryan Neff (@JellyTitan) // SPDX-License-Identifier: GPL-2.0-or-later #include QMK_KEYBOARD_H diff --git a/keyboards/sofle_pico/keymaps/jellytitan/config.h b/keyboards/sofle_pico/keymaps/default_jellytitan/config.h similarity index 82% rename from keyboards/sofle_pico/keymaps/jellytitan/config.h rename to keyboards/sofle_pico/keymaps/default_jellytitan/config.h index 89cda6449de..edef645046b 100644 --- a/keyboards/sofle_pico/keymaps/jellytitan/config.h +++ b/keyboards/sofle_pico/keymaps/default_jellytitan/config.h @@ -1,4 +1,4 @@ -// Copyright 2023 Ryan Neff (@JellyTitan) +// Copyright 2024 Ryan Neff (@JellyTitan) // SPDX-License-Identifier: GPL-2.0-or-later #pragma once diff --git a/keyboards/sofle_pico/keymaps/jellytitan/keymap.c b/keyboards/sofle_pico/keymaps/default_jellytitan/keymap.c similarity index 99% rename from keyboards/sofle_pico/keymaps/jellytitan/keymap.c rename to keyboards/sofle_pico/keymaps/default_jellytitan/keymap.c index 3433a2462cc..889be4eeea7 100644 --- a/keyboards/sofle_pico/keymaps/jellytitan/keymap.c +++ b/keyboards/sofle_pico/keymaps/default_jellytitan/keymap.c @@ -1,5 +1,5 @@ - // Copyright 2023 Ryan Neff (@JellyTitan) - // SPDX-License-Identifier: GPL-2.0-or-later +// Copyright 2024 Ryan Neff (@JellyTitan) +// SPDX-License-Identifier: GPL-2.0-or-later #include QMK_KEYBOARD_H diff --git a/keyboards/sofle_pico/keymaps/jellytitan/readme.md b/keyboards/sofle_pico/keymaps/default_jellytitan/readme.md similarity index 83% rename from keyboards/sofle_pico/keymaps/jellytitan/readme.md rename to keyboards/sofle_pico/keymaps/default_jellytitan/readme.md index 2bc57d32064..5655bb0366d 100644 --- a/keyboards/sofle_pico/keymaps/jellytitan/readme.md +++ b/keyboards/sofle_pico/keymaps/default_jellytitan/readme.md @@ -1,11 +1,13 @@ -# JellyTitan sofle_pico Keymap +# JellyTitan Sofle Pico Keymap ![jellytitan](https://i.imgur.com/JqGPWCn.png) -This keymap is derived from Ergodox layouts and is adapted for the [sofle_pico](https://github.com/JellyTitan/sofle_pico). -It is notable for it's semi-complex programming examples that include the use of rotary encoders. +This keymap is derived from Ergodox layouts and is adapted for the +[sofle_pico](https://github.com/JellyTitan/sofle_pico). +It is notable for it's semi-complex programming examples that include the use of + rotary encoders. Plenty of useful examples: -* Pimaroni enabled +* Pimaroni enabled (I really don't like it, I don't recommend it)! * Advanced knob programming! (Three-layer usage + clicks) * Macros! (Fancy key combos tied to the rotary encoders) * Tap Dance! (Double tap your '5' key for 'Enter') diff --git a/keyboards/sofle_pico/keymaps/jellytitan/rules.mk b/keyboards/sofle_pico/keymaps/default_jellytitan/rules.mk similarity index 84% rename from keyboards/sofle_pico/keymaps/jellytitan/rules.mk rename to keyboards/sofle_pico/keymaps/default_jellytitan/rules.mk index 8613fe54dc1..9d0f59c568e 100644 --- a/keyboards/sofle_pico/keymaps/jellytitan/rules.mk +++ b/keyboards/sofle_pico/keymaps/default_jellytitan/rules.mk @@ -1,4 +1,3 @@ -# POINTING_DEVICE_ENABLE = yes POINTING_DEVICE_DRIVER = pimoroni_trackball TAP_DANCE_ENABLE = yes diff --git a/keyboards/sofle_pico/keymaps/via/keymap.c b/keyboards/sofle_pico/keymaps/via/keymap.c index 09be46c9d7b..7b9dcc8cff2 100644 --- a/keyboards/sofle_pico/keymaps/via/keymap.c +++ b/keyboards/sofle_pico/keymaps/via/keymap.c @@ -1,4 +1,4 @@ -// Copyright 2023 Ryan Neff (@JellyTitan) +// Copyright 2024 Ryan Neff (@JellyTitan) // SPDX-License-Identifier: GPL-2.0-or-later #include QMK_KEYBOARD_H diff --git a/keyboards/sofle_pico/keymaps/via/readme.md b/keyboards/sofle_pico/keymaps/via/readme.md index 1fb0f37b58f..345080c91be 100644 --- a/keyboards/sofle_pico/keymaps/via/readme.md +++ b/keyboards/sofle_pico/keymaps/via/readme.md @@ -7,7 +7,6 @@ Ported directly from the classic Sofle Keyboard by Josef Adamcik. Layout in [Keyboard Layout Editor](http://www.keyboard-layout-editor.com/#/gists/76efb423a46cbbea75465cb468eef7ff) and [adjust layer](http://www.keyboard-layout-editor.com/#/gists/4bcf66f922cfd54da20ba04905d56bd4) - Features: - Symmetric modifiers (CMD/Super, Alt/Opt, Ctrl, Shift) diff --git a/keyboards/sofle_pico/post_config.h b/keyboards/sofle_pico/post_config.h index bcc15a941a0..6b541a47e46 100644 --- a/keyboards/sofle_pico/post_config.h +++ b/keyboards/sofle_pico/post_config.h @@ -1,11 +1,10 @@ -// Copyright 2022 Dane Skalski (@Daneski13) +// Copyright 2024 Ryan Neff (@JellyTitan) // SPDX-License-Identifier: GPL-2.0-or-later #pragma once /* Default Bootmagic lite */ // Top left for left side is default in core - // Top right for right side #ifndef BOOTMAGIC_LITE_ROW_RIGHT # define BOOTMAGIC_LITE_ROW_RIGHT 5 diff --git a/keyboards/sofle_pico/readme.md b/keyboards/sofle_pico/readme.md index e236f409381..b4f3edbecda 100644 --- a/keyboards/sofle_pico/readme.md +++ b/keyboards/sofle_pico/readme.md @@ -1,8 +1,8 @@ -# sofle_pico +# Sofle Pico Keyboard ![Sofle Pico](https://i.imgur.com/12R25jF.jpg) -Sofle Pico is a 60% Raspberry Pi Pico powered split keyboard boasting a 4x6 layout with an aggressive columnar stagger. It has 5 "thumb" keys on either side, support for 2-4 rotary encoders, and per-key RGB lighting. +Sofle Pico is a 60% Raspberry Pi Pico powered split keyboard boasting a 4x6 layout with an aggressive columnar stagger. It has 5 "thumb" keys on either side, support for 2-4 rotary encoders, per-key RGB lighting, 128x64 OLEDs and a tenting puck mount. - Keyboard Maintainer: [Ryan Neff](https://github.com/JellyTitan) - Hardware Supported: sofle_pico PCB, Raspberry Pi Pico @@ -12,8 +12,6 @@ Remember you have to flash both halves of the keyboard for it to work! Make example for this keyboard (after setting up your build environment): - make sofle_pico:default - Flashing example for this keyboard: ```bash @@ -30,7 +28,7 @@ qmk flash -kb sofle_pico --keymap default -bl uf2-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). -## Bootloader +## Bootloader Enter the bootloader in 3 ways: @@ -38,6 +36,6 @@ Enter the bootloader in 3 ways: - **Physical reset button**: Hold the `BOOT` button on the Pico and press the `RST` button on the Pico, release the the `RST` button before the `BOOT` button. - **Keycode in layout**: In the default layout, the `Bootloader` keycode is above home row pinky on the right side's adjust layer. -Once you enter the bootloader, the keyboard will show up as a USB device on your computer, you could drag and drop a firmware file to flash it, but I recommend using the flash commands for the respective side. +Once you enter the bootloader, the keyboard will show up as a USB device on your computer, you could drag and drop a `.uf2` firmware file to flash it. [Keyboard-layout-editor.com](http://www.keyboard-layout-editor.com/#/gists/2fa0527caf2f6e527e4f46787a74a9d2) From 3273146037a1348b53593a3f6ca22885875028ca Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Tue, 20 Feb 2024 16:16:10 -0800 Subject: [PATCH 42/87] Readme tweak --- keyboards/sofle_pico/readme.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/keyboards/sofle_pico/readme.md b/keyboards/sofle_pico/readme.md index b4f3edbecda..31e11c81368 100644 --- a/keyboards/sofle_pico/readme.md +++ b/keyboards/sofle_pico/readme.md @@ -5,13 +5,15 @@ Sofle Pico is a 60% Raspberry Pi Pico powered split keyboard boasting a 4x6 layout with an aggressive columnar stagger. It has 5 "thumb" keys on either side, support for 2-4 rotary encoders, per-key RGB lighting, 128x64 OLEDs and a tenting puck mount. - Keyboard Maintainer: [Ryan Neff](https://github.com/JellyTitan) -- Hardware Supported: sofle_pico PCB, Raspberry Pi Pico +- Hardware Supported: Sofle Pico PCB v3.5.x, Raspberry Pi Pico - Hardware Availability: [PCB, Case, Parts List](https://github.com/JellyTitan/sofle_pico) Remember you have to flash both halves of the keyboard for it to work! Make example for this keyboard (after setting up your build environment): + make sofle_pico:default + Flashing example for this keyboard: ```bash From a93ba7e805af82c108f4f882d4a564b00282d0da Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Tue, 20 Feb 2024 16:30:30 -0800 Subject: [PATCH 43/87] Updated sofle pico hero images --- keyboards/sofle_pico/readme.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/sofle_pico/readme.md b/keyboards/sofle_pico/readme.md index 31e11c81368..07b33e84f0f 100644 --- a/keyboards/sofle_pico/readme.md +++ b/keyboards/sofle_pico/readme.md @@ -1,7 +1,7 @@ # Sofle Pico Keyboard -![Sofle Pico](https://i.imgur.com/12R25jF.jpg) - +![Sofle Pico](https://raw.githubusercontent.com/JellyTitan/Sofle-Pico/main/docs/images/qmk/sofle_pico_hero_image.jpeg) +![Sofle Pico PCB](https://raw.githubusercontent.com/JellyTitan/Sofle-Pico/main/docs/images/qmk/sofle_pico_pcb_hero_image.jpeg) Sofle Pico is a 60% Raspberry Pi Pico powered split keyboard boasting a 4x6 layout with an aggressive columnar stagger. It has 5 "thumb" keys on either side, support for 2-4 rotary encoders, per-key RGB lighting, 128x64 OLEDs and a tenting puck mount. - Keyboard Maintainer: [Ryan Neff](https://github.com/JellyTitan) From 475bdeccfccc7eb121cc308d11245552b3a10e66 Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Tue, 20 Feb 2024 17:21:20 -0800 Subject: [PATCH 44/87] Formatting cleanup --- keyboards/sofle_pico/config.h | 23 +- keyboards/sofle_pico/halconf.h | 2 + keyboards/sofle_pico/keymaps/default/keymap.c | 219 +++---- .../keymaps/default_jellytitan/keymap.c | 554 +++++++----------- .../keymaps/default_jellytitan/rules.mk | 2 +- keyboards/sofle_pico/keymaps/via/keymap.c | 219 +++---- keyboards/sofle_pico/keymaps/via/readme.md | 2 - keyboards/sofle_pico/keymaps/via/rules.mk | 2 +- keyboards/sofle_pico/rules.mk | 3 - 9 files changed, 397 insertions(+), 629 deletions(-) diff --git a/keyboards/sofle_pico/config.h b/keyboards/sofle_pico/config.h index e01d3fe105c..db46b5d316e 100644 --- a/keyboards/sofle_pico/config.h +++ b/keyboards/sofle_pico/config.h @@ -7,28 +7,24 @@ #define EE_HANDS // Sets the keyboard’s handedness using EEPROM #define SERIAL_USART_FULL_DUPLEX // Use full duplex communication (TRRS) #define SERIAL_USART_TX_PIN GP16 // USART TX pin -#define SERIAL_USART_RX_PIN GP17 // USART RX pin -#define SERIAL_USART_PIN_SWAP // Swap TX and RX pins if keyboard is master halve. (Only available on some MCUs) +#define SERIAL_USART_RX_PIN GP17 // USART RX pin +#define SERIAL_USART_PIN_SWAP // Swap TX and RX pins if keyboard is master halve. (Only available on some MCUs) -// I2C for OLEDs +// I2C for OLEDs #define I2C_DRIVER I2CD1 #define I2C1_SDA_PIN GP6 #define I2C1_SCL_PIN GP7 #ifdef OLED_ENABLE - #define OLED_DISPLAY_128X64 - #define OLED_TIMEOUT 30000 +# define OLED_DISPLAY_128X64 +# define OLED_TIMEOUT 30000 #endif /* - Encoder settings - */ #ifdef ENCODER_MAP_ENABLE -// Key delay for encoders (necessary for some keycodes) # define ENCODER_MAP_KEY_DELAY 10 #endif -/* Allows for the setting of constant mouse speed levels. */ -/* Not all mouse wheel config settings are currently supported in .json config.*/ -/* https://github.com/qmk/qmk_firmware/blob/master/docs/reference_info_json.md */ /* Step size */ #define MOUSEKEY_MOVE_DELTA 8 /* Maximum number of scroll steps per scroll action */ @@ -40,21 +36,14 @@ #define SPLIT_POINTING_ENABLE #define POINTING_DEVICE_RIGHT #define POINTING_DEVICE_TASK_THROTTLE_MS 8 -/* - - RGB Stuff - - All effects can be found in the QMK docs: - https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects -*/ -#ifdef RGB_MATRIX_ENABLE +#ifdef RGB_MATRIX_ENABLE // Decrease decay of heatmap rgb effect # define RGB_MATRIX_TYPING_HEATMAP_DECREASE_DELAY_MS 50 // If you're setting colors per key, this is required. # define SPLIT_LAYER_STATE_ENABLE - // Turns off RGB effects when there is no longer a USB connection # define RGB_DISABLE_WHEN_USB_SUSPENDED - #endif // Allows for more than the default 4 layers in VIA. diff --git a/keyboards/sofle_pico/halconf.h b/keyboards/sofle_pico/halconf.h index 6d130c56488..ed969d9afca 100644 --- a/keyboards/sofle_pico/halconf.h +++ b/keyboards/sofle_pico/halconf.h @@ -1,5 +1,7 @@ // Copyright 2024 Ryan Neff (@JellyTitan) // SPDX-License-Identifier: GPL-2.0-or-later + #pragma once + #define HAL_USE_I2C TRUE #include_next diff --git a/keyboards/sofle_pico/keymaps/default/keymap.c b/keyboards/sofle_pico/keymaps/default/keymap.c index 7b9dcc8cff2..421c48be1eb 100644 --- a/keyboards/sofle_pico/keymaps/default/keymap.c +++ b/keyboards/sofle_pico/keymaps/default/keymap.c @@ -12,136 +12,93 @@ enum sofle_layers { _ADJUST, }; -enum custom_keycodes { - KC_QWERTY = SAFE_RANGE, - KC_COLEMAK, - KC_PRVWD, - KC_NXTWD, - KC_LSTRT, - KC_LEND, - KC_DLINE -}; +enum custom_keycodes { KC_QWERTY = SAFE_RANGE, KC_COLEMAK, KC_PRVWD, KC_NXTWD, KC_LSTRT, KC_LEND, KC_DLINE }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* - * QWERTY - * ,-----------------------------------------. ,-----------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | ESC | Q | W | E | R | T | | Y | U | I | O | P | Bspc | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | Tab | A | S | D | F | G |-------. ,-------| H | J | K | L | ; | ' | - * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| - * |LShift| Z | X | C | V | B |-------| |-------| N | M | , | . | / |RShift| - * `-----------------------------------------/ / \ \-----------------------------------------' - * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI | - * | | | | |/ / \ \ | | | | | - * `----------------------------------' '------''---------------------------' - */ + /* + * QWERTY + * ,-----------------------------------------. ,-----------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | ESC | Q | W | E | R | T | | Y | U | I | O | P | Bspc | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Tab | A | S | D | F | G |-------. ,-------| H | J | K | L | ; | ' | + * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| + * |LShift| Z | X | C | V | B |-------| |-------| N | M | , | . | / |RShift| + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | 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_LCTL, MO(_LOWER), KC_ENT, KC_SPC, MO(_RAISE), KC_RCTL, KC_RALT, KC_RGUI -), -/* - * COLEMAK - * ,-----------------------------------------. ,-----------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | ESC | Q | W | F | P | G | | J | L | U | Y | ; | Bspc | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | TAB | A | R | S | T | D |-------. ,-------| H | N | E | I | O | ' | - * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| - * |LShift| Z | X | C | V | B |-------| |-------| K | M | , | . | / |RShift| - * `-----------------------------------------/ / \ \-----------------------------------------' - * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | 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_LCTL, MO(_LOWER), KC_ENT, KC_SPC, MO(_RAISE), KC_RCTL, KC_RALT, KC_RGUI), + /* + * COLEMAK + * ,-----------------------------------------. ,-----------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | ESC | Q | W | F | P | G | | J | L | U | Y | ; | Bspc | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | TAB | A | R | S | T | D |-------. ,-------| H | N | E | I | O | ' | + * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| + * |LShift| Z | X | C | V | B |-------| |-------| K | M | , | . | / |RShift| + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | 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_LCTL,MO(_LOWER), KC_ENT, KC_SPC, MO(_RAISE), KC_RCTL, KC_RALT, KC_RGUI -), -/* LOWER - * ,-----------------------------------------. ,-----------------------------------------. - * | | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | F12 | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | Tab | ! | @ | # | $ | % |-------. ,-------| ^ | & | * | ( | ) | | | - * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| - * | Shift| = | - | + | { | } |-------| |-------| [ | ] | ; | : | \ | Shift| - * `-----------------------------------------/ / \ \-----------------------------------------' - * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI | - * | | | | |/ / \ \ | | | | | - * `----------------------------------' '------''---------------------------' - */ -[_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 - * ,----------------------------------------. ,-----------------------------------------. - * | | | | | | | | | | | | | | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | 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| - * `-----------------------------------------/ / \ \-----------------------------------------' - * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI | - * | | | | |/ / \ \ | | | | | - * `----------------------------------' '------''---------------------------' - */ -[_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 - * ,-----------------------------------------. ,-----------------------------------------. - * | | | | | | | | | | | | | | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | QK_BOOT| |QWERTY|COLEMAK| | | | | | | | | | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | | |MACWIN| | | |-------. ,-------| | VOLDO| MUTE | VOLUP| | | - * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| - * | | | | | | |-------| |-------| | PREV | PLAY | NEXT | | | - * `-----------------------------------------/ / \ \-----------------------------------------' - * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI | - * | | | | |/ / \ \ | | | | | - * `----------------------------------' '------''---------------------------' - */ - [_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, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ) -}; + [_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_LCTL, MO(_LOWER), KC_ENT, KC_SPC, MO(_RAISE), KC_RCTL, KC_RALT, KC_RGUI), + /* LOWER + * ,-----------------------------------------. ,-----------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | F12 | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Tab | ! | @ | # | $ | % |-------. ,-------| ^ | & | * | ( | ) | | | + * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| + * | Shift| = | - | + | { | } |-------| |-------| [ | ] | ; | : | \ | Shift| + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI | + * | | | | |/ / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ + [_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 + * ,----------------------------------------. ,-----------------------------------------. + * | | | | | | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | 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| + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI | + * | | | | |/ / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ + [_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 + * ,-----------------------------------------. ,-----------------------------------------. + * | | | | | | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | QK_BOOT| |QWERTY|COLEMAK| | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | |MACWIN| | | |-------. ,-------| | VOLDO| MUTE | VOLUP| | | + * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| + * | | | | | | |-------| |-------| | PREV | PLAY | NEXT | | | + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI | + * | | | | |/ / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ + [_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, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______)}; #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 - }; + 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); } @@ -246,7 +203,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } break; case KC_NXTWD: - if (record->event.pressed) { + if (record->event.pressed) { if (keymap_config.swap_lctl_lgui) { register_mods(mod_config(MOD_LALT)); register_code(KC_RIGHT); @@ -267,7 +224,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { case KC_LSTRT: if (record->event.pressed) { if (keymap_config.swap_lctl_lgui) { - //CMD-arrow on Mac, but we have CTL and GUI swapped + // CMD-arrow on Mac, but we have CTL and GUI swapped register_mods(mod_config(MOD_LCTL)); register_code(KC_LEFT); } else { @@ -285,7 +242,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { case KC_LEND: if (record->event.pressed) { if (keymap_config.swap_lctl_lgui) { - //CMD-arrow on Mac, but we have CTL and GUI swapped + // CMD-arrow on Mac, but we have CTL and GUI swapped register_mods(mod_config(MOD_LCTL)); register_code(KC_RIGHT); } else { @@ -350,14 +307,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; } - #ifdef ENCODER_MAP_ENABLE - const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [1] = { ENCODER_CCW_CW(KC_PGUP, KC_PGDN) }, - [2] = { ENCODER_CCW_CW(_______, _______) }, - [3] = { ENCODER_CCW_CW(_______, _______) }, - [4] = { ENCODER_CCW_CW(_______, _______) }, - }; +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, [1] = {ENCODER_CCW_CW(KC_PGUP, KC_PGDN)}, [2] = {ENCODER_CCW_CW(_______, _______)}, [3] = {ENCODER_CCW_CW(_______, _______)}, [4] = {ENCODER_CCW_CW(_______, _______)}, +}; #endif - diff --git a/keyboards/sofle_pico/keymaps/default_jellytitan/keymap.c b/keyboards/sofle_pico/keymaps/default_jellytitan/keymap.c index 889be4eeea7..8863a001f35 100644 --- a/keyboards/sofle_pico/keymaps/default_jellytitan/keymap.c +++ b/keyboards/sofle_pico/keymaps/default_jellytitan/keymap.c @@ -1,58 +1,58 @@ // Copyright 2024 Ryan Neff (@JellyTitan) // SPDX-License-Identifier: GPL-2.0-or-later - #include QMK_KEYBOARD_H +#include QMK_KEYBOARD_H - enum custom_layers { _QWERTY, _LOWER, _RAISE }; +enum custom_layers { _QWERTY, _LOWER, _RAISE }; - /* Defines macros for use with the configurators "Any" key. (These are non-standard macros using the "Magnet" app on Mac). */ - /* Move active application right half. */ - #define KC_CSGRA LCTL(LSFT(LGUI(KC_RGHT))) - /* Move active application to left half. */ - #define KC_CSGLA LCTL(LSFT(LGUI(KC_LEFT))) - /* Maximize active application. */ - #define KC_MAXIM LCTL(LSFT(LGUI(KC_UP))) - /* Minimize active application. */ - #define KC_MINIM LCTL(LSFT(LGUI(KC_DOWN))) +/* Defines macros for use with the configurators "Any" key. (These are non-standard macros using the "Magnet" app on Mac). */ +/* Move active application right half. */ +#define KC_CSGRA LCTL(LSFT(LGUI(KC_RGHT))) +/* Move active application to left half. */ +#define KC_CSGLA LCTL(LSFT(LGUI(KC_LEFT))) +/* Maximize active application. */ +#define KC_MAXIM LCTL(LSFT(LGUI(KC_UP))) +/* Minimize active application. */ +#define KC_MINIM LCTL(LSFT(LGUI(KC_DOWN))) - enum custom_keycodes { - QWERTY = SAFE_RANGE, - LOWER, - RAISE, - CMD_TAB_CW, - CMD_TAB_CCW, - }; +enum custom_keycodes { + QWERTY = SAFE_RANGE, + LOWER, + RAISE, + CMD_TAB_CW, + CMD_TAB_CCW, +}; - /* Rotary encoder variables used to hold down Command (GUI) key while cycling through open programs. */ - bool is_cmd_tab_active = false; - uint16_t cmd_tab_timer = 0; +/* Rotary encoder variables used to hold down Command (GUI) key while cycling through open programs. */ +bool is_cmd_tab_active = false; +uint16_t cmd_tab_timer = 0; - /** - * Tap Dance declarations - */ - enum tapdances { - _TD_FIVE_ENTER, - }; +/** + * Tap Dance declarations + */ +enum tapdances { + _TD_FIVE_ENTER, +}; - /* Tapdance */ - #define TD5ENT TD(_TD_FIVE_ENTER) +/* Tapdance */ +#define TD5ENT TD(_TD_FIVE_ENTER) - /** - * Tap Dance definitions - * - * To use this in the configurator, enter the name 'TD5ENT' in the "Any" key. - */ - tap_dance_action_t tap_dance_actions[] = { - /* Tap once for 5, twice for Enter. */ - [_TD_FIVE_ENTER] = ACTION_TAP_DANCE_DOUBLE(KC_5, KC_ENT), - }; +/** + * Tap Dance definitions + * + * To use this in the configurator, enter the name 'TD5ENT' in the "Any" key. + */ +tap_dance_action_t tap_dance_actions[] = { + /* Tap once for 5, twice for Enter. */ + [_TD_FIVE_ENTER] = ACTION_TAP_DANCE_DOUBLE(KC_5, KC_ENT), +}; - /** - * Keymap. - * The rotary encoders are programmed manually below because the configurator does not support them yet. - */ - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - // clang-format off +/** + * Keymap. + * The rotary encoders are programmed manually below because the configurator does not support them yet. + */ +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off /* QWERTY ┌───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┐ @@ -121,311 +121,191 @@ HF_DWLU, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, RGB_VAI, RGB_VAD, HF_DWLD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPI, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_CSGLA, KC_CSGRA, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) - // clang-format on - }; + // clang-format on +}; - bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - return false; - case CMD_TAB_CW: - if (record->event.pressed) { - if (!is_cmd_tab_active) { - is_cmd_tab_active = true; - register_code(KC_LGUI); - } - cmd_tab_timer = timer_read(); - register_code(KC_TAB); - } else { - unregister_code(KC_TAB); - } - break; - case CMD_TAB_CCW: - if (record->event.pressed) { - if (!is_cmd_tab_active) { - is_cmd_tab_active = true; - register_code(KC_LGUI); - } - cmd_tab_timer = timer_read(); - tap_code16(S(KC_TAB)); - } else { - unregister_code(KC_TAB); - } - break; - } - return true; - } - - /** - * Helper function for rotary encoder. - * - * If the timer has elapsed, the Command/Gui tab will be released. - * You can adjust the milliseconds to speed up the CMD key release. - */ - void matrix_scan_user(void) { - if (is_cmd_tab_active) { - if (timer_elapsed(cmd_tab_timer) > 900) { - unregister_code(KC_LGUI); - is_cmd_tab_active = false; +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); } + return false; + case CMD_TAB_CW: + if (record->event.pressed) { + if (!is_cmd_tab_active) { + is_cmd_tab_active = true; + register_code(KC_LGUI); + } + cmd_tab_timer = timer_read(); + register_code(KC_TAB); + } else { + unregister_code(KC_TAB); + } + break; + case CMD_TAB_CCW: + if (record->event.pressed) { + if (!is_cmd_tab_active) { + is_cmd_tab_active = true; + register_code(KC_LGUI); + } + cmd_tab_timer = timer_read(); + tap_code16(S(KC_TAB)); + } else { + unregister_code(KC_TAB); + } + break; + } + return true; +} + +/** + * Helper function for rotary encoder. + * + * If the timer has elapsed, the Command/Gui tab will be released. + * You can adjust the milliseconds to speed up the CMD key release. + */ +void matrix_scan_user(void) { + if (is_cmd_tab_active) { + if (timer_elapsed(cmd_tab_timer) > 900) { + unregister_code(KC_LGUI); + is_cmd_tab_active = false; } } +} - /** - * Rotary Encoder. - * - * This can't be programmed through configurator. You must do it here. - * - * This uses the amazing "Encoder map" feature which replicates the normal keyswitch layer handling functionality, but with encoders. - * https://docs.qmk.fm/#/feature_encoders?id=encoder-map - * - * Uses a variant of the Super-alt-tab macro to switch between open applications on a mac. (Command-tab) - * https://docs.qmk.fm/#/feature_macros?id=super-alt%e2%86%aftab - */ - #ifdef ENCODER_MAP_ENABLE - const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - /* Left Hand */ /* Right Hand */ - /* Switch between tabs. (Control + Tab). */ /* Switch between open apps on Mac. (Command + Tab + timer logic) */ - [_QWERTY] = {ENCODER_CCW_CW(S(C(KC_TAB)), C(KC_TAB)), ENCODER_CCW_CW(CMD_TAB_CW, CMD_TAB_CCW)}, - /* Scrolls left & right. (Shift + Mouse Wheel Up). */ /* Scrolls up and down. (Page Down & Page Up - mouse wheel scroll incraments are too small) */ - [_LOWER] = {ENCODER_CCW_CW(S(KC_MS_WH_UP), S(KC_MS_WH_DOWN)), ENCODER_CCW_CW(KC_PGDN, KC_PGUP)}, - /* Selects adjacent words. (Command + Shift + Right Arrow). */ /* Jumps to end/start of line. Hold shift to select. (Gui + arrow). */ - [_RAISE] = {ENCODER_CCW_CW(C(S(KC_LEFT)), C(S(KC_RGHT))), ENCODER_CCW_CW(G(KC_LEFT), G(KC_RGHT))} - }; - #endif +/** + * Rotary Encoder. + * + * This can't be programmed through configurator. You must do it here. + * + * This uses the amazing "Encoder map" feature which replicates the normal keyswitch layer handling functionality, but with encoders. + * https://docs.qmk.fm/#/feature_encoders?id=encoder-map + * + * Uses a variant of the Super-alt-tab macro to switch between open applications on a mac. (Command-tab) + * https://docs.qmk.fm/#/feature_macros?id=super-alt%e2%86%aftab + */ +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + /* Left Hand */ /* Right Hand */ + /* Switch between tabs. (Control + Tab). */ /* Switch between open apps on Mac. (Command + Tab + timer logic) */ + [_QWERTY] = {ENCODER_CCW_CW(S(C(KC_TAB)), C(KC_TAB)), ENCODER_CCW_CW(CMD_TAB_CW, CMD_TAB_CCW)}, + /* Scrolls left & right. (Shift + Mouse Wheel Up). */ /* Scrolls up and down. (Page Down & Page Up - mouse wheel scroll incraments are too small) */ + [_LOWER] = {ENCODER_CCW_CW(S(KC_MS_WH_UP), S(KC_MS_WH_DOWN)), ENCODER_CCW_CW(KC_PGDN, KC_PGUP)}, + /* Selects adjacent words. (Command + Shift + Right Arrow). */ /* Jumps to end/start of line. Hold shift to select. (Gui + arrow). */ + [_RAISE] = {ENCODER_CCW_CW(C(S(KC_LEFT)), C(S(KC_RGHT))), ENCODER_CCW_CW(G(KC_LEFT), G(KC_RGHT))}}; +#endif - // Default timeout for displaying logo on boot. - #ifndef OLED_LOGO_TIMEOUT - // 10 second timeout. - #define OLED_LOGO_TIMEOUT 10000 - #endif +// Default timeout for displaying logo on boot. +#ifndef OLED_LOGO_TIMEOUT +// 10 second timeout. +# define OLED_LOGO_TIMEOUT 10000 +#endif - #ifdef OLED_ENABLE +#ifdef OLED_ENABLE - uint16_t startup_timer; +uint16_t startup_timer; - oled_rotation_t oled_init_user(oled_rotation_t rotation) { - startup_timer = timer_read(); +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + startup_timer = timer_read(); - if (is_keyboard_master()) { - if(is_keyboard_left()){ + if (is_keyboard_master()) { + if (is_keyboard_left()) { return OLED_ROTATION_90; - } - else { - return OLED_ROTATION_270; - } - } else { - return OLED_ROTATION_90; - } - } - static void render_qmk_logo(void) { - static const char PROGMEM qmk_logo[] = { - // 'qmk_via_OLED_128x64', 64x128px - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, - 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xfc, 0xfe, 0xfe, - 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, - 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, - 0xfe, 0xfc, 0xf8, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x01, - 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0x71, 0x71, 0x71, 0x71, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, - 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0x71, 0x71, 0x71, 0x71, 0x71, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0xf8, 0xf0, 0xf1, 0xf1, 0xe3, 0xe3, 0xe3, 0x00, 0x00, - 0x00, 0xe3, 0xe3, 0xf3, 0xf1, 0xf1, 0xf0, 0xf8, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x07, 0x07, 0x7f, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xfc, - 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0x7f, 0x07, 0x07, 0x07, 0x07, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, - 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x7f, 0xff, - 0x7f, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, - 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0x70, 0x30, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x38, - 0xf0, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x78, 0xf0, 0xc0, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf8, 0x38, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, - 0xf8, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xf0, 0x38, 0x18, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xe3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x03, 0x0f, 0x7e, 0xf8, 0xc0, - 0x00, 0x80, 0xe0, 0xfc, 0x1f, 0x07, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, - 0xff, 0x0c, 0x1e, 0x7f, 0xf3, 0xc1, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0f, 0x0e, 0x0c, 0x1c, 0x1c, 0x1c, 0x0c, 0x0c, 0x0e, - 0x0f, 0x1f, 0x38, 0x30, 0x70, 0x20, 0x00, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, - 0x0f, 0x0f, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, - 0x0f, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x0f, 0x0c, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x18, 0x7c, 0xfe, 0xfe, 0xfc, 0xfc, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xfc, 0xfe, 0xfe, 0xfe, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0xe0, 0xf8, 0xfc, 0xfc, 0xfc, 0xf8, 0x10, 0x00, 0x00, 0x00, 0xc0, 0xf8, 0xfc, 0xfe, 0xfe, 0xfe, - 0xfe, 0xfc, 0xf8, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0x80, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x80, 0xf0, 0xfc, 0xff, 0xff, 0xff, 0x7f, 0x0f, 0x01, 0x00, 0x00, 0xe0, 0xf8, 0xff, - 0xff, 0xff, 0xff, 0x1f, 0x03, 0x00, 0x00, 0xc0, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x07, 0x03, - 0x1f, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0xc0, - 0xf0, 0xfe, 0xff, 0xff, 0xff, 0x3f, 0x0f, 0x01, 0x00, 0x00, 0xe0, 0xf8, 0xff, 0xff, 0xff, 0x7f, - 0x1f, 0x03, 0x00, 0x00, 0xc0, 0xf8, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xf8, 0xf8, 0xf8, - 0xf8, 0xf8, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, 0x3f, 0x7f, 0x7f, 0x7f, - 0x7f, 0x7f, 0x3f, 0x0f, 0x01, 0x00, 0x00, 0x00, 0x38, 0x7f, 0x7f, 0x7f, 0x3f, 0x1f, 0x03, 0x00, - 0x00, 0x00, 0x18, 0x7e, 0x7f, 0x7f, 0x7f, 0x1f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1f, 0x3f, 0x7f, 0x7f, 0x7f, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x1e, 0x3e, - 0x1c, 0x08, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, - 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x3e, 0x3e, - 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - }; - oled_write_raw_P(qmk_logo, sizeof(qmk_logo)); - // oled_write_P(qmk_logo, false); - } - static void render_logo(void) { - // @todo - should we split this into a seperate file? kb16 has a good example. - static const char PROGMEM sofle_pico_logo[] = { - // 'sofle-pico-vector-logo-v5 OLED chopped', 64x128px - 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xe0, 0xf0, 0xf0, 0xf0, 0x70, 0xf0, 0xf0, 0xe0, 0x20, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xe0, 0xf0, 0xf8, 0xfc, 0x3c, 0x3c, 0x3c, 0x7c, 0xf8, 0xf8, 0xf0, 0x80, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x0f, 0x1f, 0x3f, 0x3f, 0x3f, 0x7c, 0x78, 0xf8, 0xf8, 0xf0, 0xe0, 0x00, - 0x00, 0xc0, 0xf0, 0xf8, 0xfc, 0x3c, 0x1c, 0x1e, 0x1e, 0x3c, 0xfc, 0xf8, 0xf0, 0xc0, 0x00, 0x1c, - 0x1c, 0xff, 0xff, 0xff, 0xff, 0x1c, 0x1c, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xc0, - 0xf0, 0xf8, 0xfc, 0xfc, 0xce, 0xce, 0xce, 0xdc, 0xfc, 0xfc, 0xf8, 0xe0, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x08, 0x1e, 0x1e, 0x1e, 0x3c, 0x3c, 0x3c, 0x3e, 0x1f, 0x1f, 0x0f, 0x07, 0x01, - 0x00, 0x01, 0x07, 0x0f, 0x1f, 0x1e, 0x3c, 0x3c, 0x3c, 0x1e, 0x1f, 0x0f, 0x07, 0x03, 0x00, 0x00, - 0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x01, - 0x07, 0x0f, 0x1f, 0x1f, 0x3c, 0x38, 0x38, 0x3c, 0x1c, 0x1c, 0x0c, 0x04, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0x06, 0x06, 0x06, 0x0e, 0x9e, 0xfc, 0xf8, 0x00, 0x00, 0x8e, - 0x8e, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x07, 0x07, 0x07, 0x07, 0x03, 0x03, 0x00, 0x00, 0x00, 0xff, - 0xff, 0x00, 0x00, 0x00, 0x7c, 0xfe, 0xff, 0x83, 0x01, 0x01, 0x01, 0x83, 0x83, 0x00, 0x00, 0x7e, - 0xff, 0xc7, 0x83, 0x01, 0x01, 0x01, 0x83, 0xff, 0xff, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x80, 0xc0, 0xc3, 0xe3, 0xe0, 0xe0, 0xe0, 0xf0, 0x70, 0x70, 0x70, 0x70, 0x30, 0x33, - 0x73, 0xe0, 0x60, 0xe0, 0xe0, 0xc0, 0xc1, 0x83, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, - 0x01, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x80, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x70, - 0x30, 0x70, 0x70, 0x70, 0x70, 0x70, 0xf0, 0xe0, 0xe0, 0xe0, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x03, 0x1f, 0xff, 0xf8, 0xd0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x20, - 0x20, 0x40, 0xc0, 0x80, 0x00, 0x01, 0x87, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0xff, 0xff, 0x03, 0x01, 0x00, 0x80, 0xc0, 0x40, 0x20, - 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf0, 0xf8, 0x7f, 0x0f, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0f, 0x1c, 0x1c, 0x38, 0x78, 0x60, 0x60, 0x60, 0x60, - 0x60, 0x70, 0x38, 0x39, 0xdf, 0xef, 0xf7, 0x7b, 0x39, 0x1c, 0x1c, 0x0e, 0x0e, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x0e, 0x0e, 0x1e, 0x1c, 0x3c, 0x79, 0xfb, 0xf7, 0xef, 0x9f, 0x38, 0x30, 0x70, 0x60, - 0x60, 0x60, 0x60, 0x70, 0x38, 0x3c, 0x1c, 0x0f, 0x0f, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, - 0xf8, 0xfc, 0x7e, 0x7f, 0xff, 0xff, 0xe3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc1, 0xff, 0x7f, 0x7f, 0x3f, 0x7c, 0xf8, 0xf0, - 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, - 0x81, 0x00, 0x00, 0x00, 0x00, 0x01, 0xcf, 0xff, 0xfe, 0x7c, 0x78, 0x78, 0x38, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x38, 0x78, 0x78, 0x7c, 0xfe, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, - 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, - 0x03, 0x07, 0x0f, 0x0e, 0x1e, 0x3f, 0x7f, 0xf1, 0xe0, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xc0, 0xe1, 0xf3, 0x7f, 0x3f, 0x1f, 0x0f, 0x07, 0x07, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x03, 0x03, 0x03, 0x03, - 0x03, 0x03, 0x03, 0x03, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - }; - oled_write_raw_P(sofle_pico_logo, sizeof(sofle_pico_logo)); - } - - static void render_status(void) { - oled_write_P(PSTR("Sofle Pico\nv3.04\n~~~~~~~~~\n"), false); - uint8_t n = get_current_wpm(); - char wpm_counter[4]; - wpm_counter[3] = '\0'; - wpm_counter[2] = '0' + n % 10; - wpm_counter[1] = (n /= 10) % 10 ? '0' + (n) % 10 : (n / 10) % 10 ? '0' : ' '; - wpm_counter[0] = n / 10 ? '0' + n / 10 : ' '; - oled_write_P(PSTR("WPM:"), false); - oled_write(wpm_counter, false); - led_t led_state = host_keyboard_led_state(); - oled_write_P(PSTR("\nCaps: "), false); - oled_write_P(led_state.caps_lock ? PSTR("on ") : PSTR("off"), false); - oled_write_P(PSTR("\n"), false); - switch (get_highest_layer(layer_state)) { - case _QWERTY: - oled_write_P(PSTR("Qwerty Base"), false); - break; - case _LOWER: - oled_write_P(PSTR("Numbers &\nSymbols"), false); - break; - case _RAISE: - oled_write_P(PSTR("Navigation"), false); - break; - default: - oled_write_P(PSTR("Unknown"), false); - break; - } - } - - bool oled_task_user(void) { - static bool finished_logo = false; - if ((timer_elapsed(startup_timer) < OLED_LOGO_TIMEOUT) && !finished_logo) { - // Display the logo for 5 seconds on boot. - if (is_keyboard_master()) { - render_logo(); - // 10 Chars per line. Set cursor used to simplify line wraps. - oled_set_cursor(0, 12); - oled_write_P(PSTR("v3.51"), false); - oled_set_cursor(0, 13); - oled_write_P(PSTR("12-5-2023"), false); - oled_set_cursor(0, 14); - oled_write_P(PSTR("by:github/"), false); - oled_set_cursor(0, 15); - oled_write_P(PSTR("JellyTitan"), false); - } else { - render_qmk_logo(); - } } else { - // Display the current keyboard state. - if (!finished_logo) { - finished_logo = true; - // Clears the OLED. - oled_clear(); - } - if (is_keyboard_master()) { - render_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc) - } else { - render_logo(); - } + return OLED_ROTATION_270; } - return false; + } else { + return OLED_ROTATION_90; } +} +static void render_qmk_logo(void) { + static const char PROGMEM qmk_logo[] = {// 'qmk_via_OLED_128x64', 64x128px + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xfc, 0xfe, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xfe, 0xfc, 0xf8, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0x71, 0x71, 0x71, 0x71, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x71, 0x71, 0x71, 0x71, 0x71, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0xf8, 0xf0, 0xf1, 0xf1, 0xe3, 0xe3, 0xe3, 0x00, 0x00, 0x00, 0xe3, 0xe3, 0xf3, 0xf1, 0xf1, + 0xf0, 0xf8, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x07, 0x07, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xfc, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x07, 0x07, 0x07, 0x07, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0x70, 0x30, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x38, 0xf0, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x78, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf8, 0x38, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xf0, 0x38, 0x18, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xe3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x03, 0x0f, 0x7e, 0xf8, 0xc0, 0x00, 0x80, 0xe0, 0xfc, 0x1f, 0x07, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x0c, 0x1e, 0x7f, 0xf3, 0xc1, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0f, 0x0e, 0x0c, 0x1c, 0x1c, + 0x1c, 0x0c, 0x0c, 0x0e, 0x0f, 0x1f, 0x38, 0x30, 0x70, 0x20, 0x00, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, 0x0f, 0x0f, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x0f, 0x0c, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x7c, 0xfe, 0xfe, 0xfc, 0xfc, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xfc, 0xfe, 0xfe, 0xfe, 0x3c, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0xf8, 0xfc, 0xfc, 0xfc, 0xf8, 0x10, 0x00, 0x00, 0x00, 0xc0, 0xf8, 0xfc, 0xfe, 0xfe, 0xfe, 0xfe, 0xfc, 0xf8, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf0, 0xfc, 0xff, 0xff, 0xff, 0x7f, 0x0f, 0x01, 0x00, 0x00, 0xe0, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x03, 0x00, 0x00, 0xc0, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x07, 0x03, 0x1f, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0xc0, 0xf0, 0xfe, 0xff, 0xff, 0xff, 0x3f, 0x0f, 0x01, 0x00, 0x00, 0xe0, 0xf8, 0xff, 0xff, 0xff, 0x7f, 0x1f, 0x03, 0x00, 0x00, 0xc0, 0xf8, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, + 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, 0x3f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x3f, 0x0f, 0x01, 0x00, 0x00, 0x00, 0x38, 0x7f, 0x7f, 0x7f, 0x3f, 0x1f, 0x03, 0x00, 0x00, 0x00, 0x18, 0x7e, 0x7f, 0x7f, 0x7f, 0x1f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1f, 0x3f, 0x7f, 0x7f, 0x7f, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x1e, 0x3e, 0x1c, 0x08, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x3e, 0x3e, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + oled_write_raw_P(qmk_logo, sizeof(qmk_logo)); + // oled_write_P(qmk_logo, false); +} +static void render_logo(void) { + // @todo - should we split this into a seperate file? kb16 has a good example. + static const char PROGMEM sofle_pico_logo[] = {// 'sofle-pico-vector-logo-v5 OLED chopped', 64x128px + 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xe0, 0xf0, 0xf0, 0xf0, 0x70, 0xf0, 0xf0, 0xe0, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf0, 0xf8, 0xfc, 0x3c, 0x3c, 0x3c, 0x7c, 0xf8, 0xf8, 0xf0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x1f, 0x3f, 0x3f, 0x3f, 0x7c, 0x78, 0xf8, 0xf8, 0xf0, 0xe0, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xfc, 0x3c, 0x1c, 0x1e, 0x1e, 0x3c, 0xfc, 0xf8, 0xf0, 0xc0, 0x00, 0x1c, 0x1c, 0xff, 0xff, 0xff, 0xff, 0x1c, 0x1c, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xfc, 0xfc, 0xce, 0xce, 0xce, 0xdc, 0xfc, 0xfc, 0xf8, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x1e, 0x1e, 0x1e, 0x3c, 0x3c, 0x3c, 0x3e, 0x1f, 0x1f, 0x0f, 0x07, 0x01, 0x00, 0x01, 0x07, + 0x0f, 0x1f, 0x1e, 0x3c, 0x3c, 0x3c, 0x1e, 0x1f, 0x0f, 0x07, 0x03, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x01, 0x07, 0x0f, 0x1f, 0x1f, 0x3c, 0x38, 0x38, 0x3c, 0x1c, 0x1c, 0x0c, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0x06, 0x06, 0x06, 0x0e, 0x9e, 0xfc, 0xf8, 0x00, 0x00, 0x8e, 0x8e, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x07, 0x07, 0x07, 0x07, 0x03, 0x03, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x7c, 0xfe, 0xff, 0x83, 0x01, 0x01, 0x01, 0x83, 0x83, 0x00, 0x00, 0x7e, 0xff, 0xc7, 0x83, 0x01, 0x01, 0x01, + 0x83, 0xff, 0xff, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc3, 0xe3, 0xe0, 0xe0, 0xe0, 0xf0, 0x70, 0x70, 0x70, 0x70, 0x30, 0x33, 0x73, 0xe0, 0x60, 0xe0, 0xe0, 0xc0, 0xc1, 0x83, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x80, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x70, 0x30, 0x70, 0x70, 0x70, 0x70, 0x70, 0xf0, 0xe0, 0xe0, 0xe0, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1f, 0xff, 0xf8, 0xd0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x20, 0x20, 0x40, 0xc0, 0x80, 0x00, 0x01, 0x87, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0xff, 0xff, 0x03, 0x01, 0x00, 0x80, 0xc0, 0x40, 0x20, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0xf0, 0xf8, 0x7f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0f, 0x1c, 0x1c, 0x38, 0x78, 0x60, 0x60, 0x60, 0x60, 0x60, 0x70, 0x38, 0x39, 0xdf, 0xef, 0xf7, 0x7b, 0x39, 0x1c, 0x1c, 0x0e, 0x0e, 0x06, 0x06, 0x06, 0x06, 0x06, 0x0e, 0x0e, 0x1e, 0x1c, 0x3c, 0x79, 0xfb, 0xf7, 0xef, 0x9f, 0x38, 0x30, 0x70, 0x60, 0x60, 0x60, 0x60, 0x70, 0x38, 0x3c, 0x1c, 0x0f, 0x0f, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xf8, 0xfc, 0x7e, 0x7f, 0xff, 0xff, 0xe3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc1, 0xff, 0x7f, 0x7f, 0x3f, 0x7c, 0xf8, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7f, 0xff, 0x81, 0x00, 0x00, 0x00, 0x00, 0x01, 0xcf, 0xff, 0xfe, 0x7c, 0x78, 0x78, 0x38, 0x30, 0x30, 0x30, 0x30, 0x30, 0x38, 0x78, 0x78, 0x7c, 0xfe, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0f, 0x0e, 0x1e, 0x3f, 0x7f, 0xf1, 0xe0, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xc0, 0xe1, 0xf3, 0x7f, 0x3f, 0x1f, 0x0f, 0x07, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + oled_write_raw_P(sofle_pico_logo, sizeof(sofle_pico_logo)); +} - #endif \ No newline at end of file +static void render_status(void) { + oled_write_P(PSTR("Sofle Pico\nv3.04\n~~~~~~~~~\n"), false); + uint8_t n = get_current_wpm(); + char wpm_counter[4]; + wpm_counter[3] = '\0'; + wpm_counter[2] = '0' + n % 10; + wpm_counter[1] = (n /= 10) % 10 ? '0' + (n) % 10 : (n / 10) % 10 ? '0' : ' '; + wpm_counter[0] = n / 10 ? '0' + n / 10 : ' '; + oled_write_P(PSTR("WPM:"), false); + oled_write(wpm_counter, false); + led_t led_state = host_keyboard_led_state(); + oled_write_P(PSTR("\nCaps: "), false); + oled_write_P(led_state.caps_lock ? PSTR("on ") : PSTR("off"), false); + oled_write_P(PSTR("\n"), false); + switch (get_highest_layer(layer_state)) { + case _QWERTY: + oled_write_P(PSTR("Qwerty Base"), false); + break; + case _LOWER: + oled_write_P(PSTR("Numbers &\nSymbols"), false); + break; + case _RAISE: + oled_write_P(PSTR("Navigation"), false); + break; + default: + oled_write_P(PSTR("Unknown"), false); + break; + } +} + +bool oled_task_user(void) { + static bool finished_logo = false; + if ((timer_elapsed(startup_timer) < OLED_LOGO_TIMEOUT) && !finished_logo) { + // Display the logo for 5 seconds on boot. + if (is_keyboard_master()) { + render_logo(); + // 10 Chars per line. Set cursor used to simplify line wraps. + oled_set_cursor(0, 12); + oled_write_P(PSTR("v3.51"), false); + oled_set_cursor(0, 13); + oled_write_P(PSTR("12-5-2023"), false); + oled_set_cursor(0, 14); + oled_write_P(PSTR("by:github/"), false); + oled_set_cursor(0, 15); + oled_write_P(PSTR("JellyTitan"), false); + } else { + render_qmk_logo(); + } + } else { + // Display the current keyboard state. + if (!finished_logo) { + finished_logo = true; + // Clears the OLED. + oled_clear(); + } + if (is_keyboard_master()) { + render_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc) + } else { + render_logo(); + } + } + return false; +} + +#endif diff --git a/keyboards/sofle_pico/keymaps/default_jellytitan/rules.mk b/keyboards/sofle_pico/keymaps/default_jellytitan/rules.mk index 9d0f59c568e..fe3af317213 100644 --- a/keyboards/sofle_pico/keymaps/default_jellytitan/rules.mk +++ b/keyboards/sofle_pico/keymaps/default_jellytitan/rules.mk @@ -1,4 +1,4 @@ POINTING_DEVICE_ENABLE = yes POINTING_DEVICE_DRIVER = pimoroni_trackball TAP_DANCE_ENABLE = yes -VIA_ENABLE = yes \ No newline at end of file +VIA_ENABLE = yes diff --git a/keyboards/sofle_pico/keymaps/via/keymap.c b/keyboards/sofle_pico/keymaps/via/keymap.c index 7b9dcc8cff2..421c48be1eb 100644 --- a/keyboards/sofle_pico/keymaps/via/keymap.c +++ b/keyboards/sofle_pico/keymaps/via/keymap.c @@ -12,136 +12,93 @@ enum sofle_layers { _ADJUST, }; -enum custom_keycodes { - KC_QWERTY = SAFE_RANGE, - KC_COLEMAK, - KC_PRVWD, - KC_NXTWD, - KC_LSTRT, - KC_LEND, - KC_DLINE -}; +enum custom_keycodes { KC_QWERTY = SAFE_RANGE, KC_COLEMAK, KC_PRVWD, KC_NXTWD, KC_LSTRT, KC_LEND, KC_DLINE }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* - * QWERTY - * ,-----------------------------------------. ,-----------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | ESC | Q | W | E | R | T | | Y | U | I | O | P | Bspc | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | Tab | A | S | D | F | G |-------. ,-------| H | J | K | L | ; | ' | - * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| - * |LShift| Z | X | C | V | B |-------| |-------| N | M | , | . | / |RShift| - * `-----------------------------------------/ / \ \-----------------------------------------' - * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI | - * | | | | |/ / \ \ | | | | | - * `----------------------------------' '------''---------------------------' - */ + /* + * QWERTY + * ,-----------------------------------------. ,-----------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | ESC | Q | W | E | R | T | | Y | U | I | O | P | Bspc | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Tab | A | S | D | F | G |-------. ,-------| H | J | K | L | ; | ' | + * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| + * |LShift| Z | X | C | V | B |-------| |-------| N | M | , | . | / |RShift| + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | 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_LCTL, MO(_LOWER), KC_ENT, KC_SPC, MO(_RAISE), KC_RCTL, KC_RALT, KC_RGUI -), -/* - * COLEMAK - * ,-----------------------------------------. ,-----------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | ESC | Q | W | F | P | G | | J | L | U | Y | ; | Bspc | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | TAB | A | R | S | T | D |-------. ,-------| H | N | E | I | O | ' | - * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| - * |LShift| Z | X | C | V | B |-------| |-------| K | M | , | . | / |RShift| - * `-----------------------------------------/ / \ \-----------------------------------------' - * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | 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_LCTL, MO(_LOWER), KC_ENT, KC_SPC, MO(_RAISE), KC_RCTL, KC_RALT, KC_RGUI), + /* + * COLEMAK + * ,-----------------------------------------. ,-----------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | ESC | Q | W | F | P | G | | J | L | U | Y | ; | Bspc | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | TAB | A | R | S | T | D |-------. ,-------| H | N | E | I | O | ' | + * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| + * |LShift| Z | X | C | V | B |-------| |-------| K | M | , | . | / |RShift| + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | 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_LCTL,MO(_LOWER), KC_ENT, KC_SPC, MO(_RAISE), KC_RCTL, KC_RALT, KC_RGUI -), -/* LOWER - * ,-----------------------------------------. ,-----------------------------------------. - * | | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | F12 | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | Tab | ! | @ | # | $ | % |-------. ,-------| ^ | & | * | ( | ) | | | - * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| - * | Shift| = | - | + | { | } |-------| |-------| [ | ] | ; | : | \ | Shift| - * `-----------------------------------------/ / \ \-----------------------------------------' - * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI | - * | | | | |/ / \ \ | | | | | - * `----------------------------------' '------''---------------------------' - */ -[_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 - * ,----------------------------------------. ,-----------------------------------------. - * | | | | | | | | | | | | | | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | 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| - * `-----------------------------------------/ / \ \-----------------------------------------' - * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI | - * | | | | |/ / \ \ | | | | | - * `----------------------------------' '------''---------------------------' - */ -[_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 - * ,-----------------------------------------. ,-----------------------------------------. - * | | | | | | | | | | | | | | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | QK_BOOT| |QWERTY|COLEMAK| | | | | | | | | | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | | |MACWIN| | | |-------. ,-------| | VOLDO| MUTE | VOLUP| | | - * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| - * | | | | | | |-------| |-------| | PREV | PLAY | NEXT | | | - * `-----------------------------------------/ / \ \-----------------------------------------' - * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI | - * | | | | |/ / \ \ | | | | | - * `----------------------------------' '------''---------------------------' - */ - [_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, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ) -}; + [_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_LCTL, MO(_LOWER), KC_ENT, KC_SPC, MO(_RAISE), KC_RCTL, KC_RALT, KC_RGUI), + /* LOWER + * ,-----------------------------------------. ,-----------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | F12 | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Tab | ! | @ | # | $ | % |-------. ,-------| ^ | & | * | ( | ) | | | + * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| + * | Shift| = | - | + | { | } |-------| |-------| [ | ] | ; | : | \ | Shift| + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI | + * | | | | |/ / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ + [_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 + * ,----------------------------------------. ,-----------------------------------------. + * | | | | | | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | 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| + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI | + * | | | | |/ / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ + [_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 + * ,-----------------------------------------. ,-----------------------------------------. + * | | | | | | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | QK_BOOT| |QWERTY|COLEMAK| | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | |MACWIN| | | |-------. ,-------| | VOLDO| MUTE | VOLUP| | | + * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| + * | | | | | | |-------| |-------| | PREV | PLAY | NEXT | | | + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI | + * | | | | |/ / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ + [_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, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______)}; #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 - }; + 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); } @@ -246,7 +203,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } break; case KC_NXTWD: - if (record->event.pressed) { + if (record->event.pressed) { if (keymap_config.swap_lctl_lgui) { register_mods(mod_config(MOD_LALT)); register_code(KC_RIGHT); @@ -267,7 +224,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { case KC_LSTRT: if (record->event.pressed) { if (keymap_config.swap_lctl_lgui) { - //CMD-arrow on Mac, but we have CTL and GUI swapped + // CMD-arrow on Mac, but we have CTL and GUI swapped register_mods(mod_config(MOD_LCTL)); register_code(KC_LEFT); } else { @@ -285,7 +242,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { case KC_LEND: if (record->event.pressed) { if (keymap_config.swap_lctl_lgui) { - //CMD-arrow on Mac, but we have CTL and GUI swapped + // CMD-arrow on Mac, but we have CTL and GUI swapped register_mods(mod_config(MOD_LCTL)); register_code(KC_RIGHT); } else { @@ -350,14 +307,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; } - #ifdef ENCODER_MAP_ENABLE - const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [1] = { ENCODER_CCW_CW(KC_PGUP, KC_PGDN) }, - [2] = { ENCODER_CCW_CW(_______, _______) }, - [3] = { ENCODER_CCW_CW(_______, _______) }, - [4] = { ENCODER_CCW_CW(_______, _______) }, - }; +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, [1] = {ENCODER_CCW_CW(KC_PGUP, KC_PGDN)}, [2] = {ENCODER_CCW_CW(_______, _______)}, [3] = {ENCODER_CCW_CW(_______, _______)}, [4] = {ENCODER_CCW_CW(_______, _______)}, +}; #endif - diff --git a/keyboards/sofle_pico/keymaps/via/readme.md b/keyboards/sofle_pico/keymaps/via/readme.md index 345080c91be..76148216d39 100644 --- a/keyboards/sofle_pico/keymaps/via/readme.md +++ b/keyboards/sofle_pico/keymaps/via/readme.md @@ -15,5 +15,3 @@ Features: - Modes for Mac vs Linux/Win support -> different order of modifiers and different action shortcuts on the "UPPER" layer (the red one in the image). Designed to simplify transtions when switching between operating systems often. - The OLED on master half shows selected mode and caps lock state and is rotated. - Left encoder controls volume up/down/mute. Right encoder PGUP/PGDOWN. - - diff --git a/keyboards/sofle_pico/keymaps/via/rules.mk b/keyboards/sofle_pico/keymaps/via/rules.mk index 036bd6d1c3e..1e5b99807cb 100644 --- a/keyboards/sofle_pico/keymaps/via/rules.mk +++ b/keyboards/sofle_pico/keymaps/via/rules.mk @@ -1 +1 @@ -VIA_ENABLE = yes \ No newline at end of file +VIA_ENABLE = yes diff --git a/keyboards/sofle_pico/rules.mk b/keyboards/sofle_pico/rules.mk index ab1de352049..161ec22b16e 100644 --- a/keyboards/sofle_pico/rules.mk +++ b/keyboards/sofle_pico/rules.mk @@ -1,4 +1 @@ -# Build Options -# Configures the USART FULL DUPLEX driver. This config is unique to the RP2040. -# https://github.com/qmk/qmk_firmware/blob/master/docs/serial_driver.md#pin-configuration-2 SERIAL_DRIVER = vendor From b9adb0e115b85a7c43a5a17668507906e7c4558b Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Tue, 20 Feb 2024 17:40:44 -0800 Subject: [PATCH 45/87] Fixed ascii keymaps mangled by clang --- keyboards/sofle_pico/keymaps/default/keymap.c | 187 ++++++++++-------- keyboards/sofle_pico/keymaps/via/keymap.c | 187 ++++++++++-------- 2 files changed, 220 insertions(+), 154 deletions(-) diff --git a/keyboards/sofle_pico/keymaps/default/keymap.c b/keyboards/sofle_pico/keymaps/default/keymap.c index 421c48be1eb..536ad6e1304 100644 --- a/keyboards/sofle_pico/keymaps/default/keymap.c +++ b/keyboards/sofle_pico/keymaps/default/keymap.c @@ -15,85 +15,118 @@ enum sofle_layers { enum custom_keycodes { KC_QWERTY = SAFE_RANGE, KC_COLEMAK, KC_PRVWD, KC_NXTWD, KC_LSTRT, KC_LEND, KC_DLINE }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* - * QWERTY - * ,-----------------------------------------. ,-----------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | ESC | Q | W | E | R | T | | Y | U | I | O | P | Bspc | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | Tab | A | S | D | F | G |-------. ,-------| H | J | K | L | ; | ' | - * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| - * |LShift| Z | X | C | V | B |-------| |-------| N | M | , | . | / |RShift| - * `-----------------------------------------/ / \ \-----------------------------------------' - * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI | - * | | | | |/ / \ \ | | | | | - * `----------------------------------' '------''---------------------------' - */ + // clang-format off + /* + * QWERTY + * ,-----------------------------------------. ,-----------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | ESC | Q | W | E | R | T | | Y | U | I | O | P | Bspc | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Tab | A | S | D | F | G |-------. ,-------| H | J | K | L | ; | ' | + * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| + * |LShift| Z | X | C | V | B |-------| |-------| N | M | , | . | / |RShift| + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | 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_LCTL, MO(_LOWER), KC_ENT, KC_SPC, MO(_RAISE), KC_RCTL, KC_RALT, KC_RGUI), - /* - * COLEMAK - * ,-----------------------------------------. ,-----------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | ESC | Q | W | F | P | G | | J | L | U | Y | ; | Bspc | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | TAB | A | R | S | T | D |-------. ,-------| H | N | E | I | O | ' | - * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| - * |LShift| Z | X | C | V | B |-------| |-------| K | M | , | . | / |RShift| - * `-----------------------------------------/ / \ \-----------------------------------------' - * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | 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_LCTL, MO(_LOWER), KC_ENT, KC_SPC, MO(_RAISE), KC_RCTL, KC_RALT, KC_RGUI + ), + /* + * COLEMAK + * ,-----------------------------------------. ,-----------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | ESC | Q | W | F | P | G | | J | L | U | Y | ; | Bspc | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | TAB | A | R | S | T | D |-------. ,-------| H | N | E | I | O | ' | + * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| + * |LShift| Z | X | C | V | B |-------| |-------| K | M | , | . | / |RShift| + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | 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_LCTL, MO(_LOWER), KC_ENT, KC_SPC, MO(_RAISE), KC_RCTL, KC_RALT, KC_RGUI), - /* LOWER - * ,-----------------------------------------. ,-----------------------------------------. - * | | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | F12 | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | Tab | ! | @ | # | $ | % |-------. ,-------| ^ | & | * | ( | ) | | | - * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| - * | Shift| = | - | + | { | } |-------| |-------| [ | ] | ; | : | \ | Shift| - * `-----------------------------------------/ / \ \-----------------------------------------' - * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI | - * | | | | |/ / \ \ | | | | | - * `----------------------------------' '------''---------------------------' - */ - [_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 - * ,----------------------------------------. ,-----------------------------------------. - * | | | | | | | | | | | | | | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | 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| - * `-----------------------------------------/ / \ \-----------------------------------------' - * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI | - * | | | | |/ / \ \ | | | | | - * `----------------------------------' '------''---------------------------' - */ - [_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 - * ,-----------------------------------------. ,-----------------------------------------. - * | | | | | | | | | | | | | | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | QK_BOOT| |QWERTY|COLEMAK| | | | | | | | | | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | | |MACWIN| | | |-------. ,-------| | VOLDO| MUTE | VOLUP| | | - * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| - * | | | | | | |-------| |-------| | PREV | PLAY | NEXT | | | - * `-----------------------------------------/ / \ \-----------------------------------------' - * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI | - * | | | | |/ / \ \ | | | | | - * `----------------------------------' '------''---------------------------' - */ - [_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, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______)}; + [_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_LCTL,MO(_LOWER), KC_ENT, KC_SPC, MO(_RAISE), KC_RCTL, KC_RALT, KC_RGUI + ), + /* LOWER + * ,-----------------------------------------. ,-----------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | F12 | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Tab | ! | @ | # | $ | % |-------. ,-------| ^ | & | * | ( | ) | | | + * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| + * | Shift| = | - | + | { | } |-------| |-------| [ | ] | ; | : | \ | Shift| + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI | + * | | | | |/ / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ + [_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 + * ,----------------------------------------. ,-----------------------------------------. + * | | | | | | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | 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| + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI | + * | | | | |/ / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ + [_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 + * ,-----------------------------------------. ,-----------------------------------------. + * | | | | | | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | QK_BOOT| |QWERTY|COLEMAK| | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | |MACWIN| | | |-------. ,-------| | VOLDO| MUTE | VOLUP| | | + * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| + * | | | | | | |-------| |-------| | PREV | PLAY | NEXT | | | + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI | + * | | | | |/ / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ + [_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, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) + // clang-format on +}; #ifdef OLED_ENABLE diff --git a/keyboards/sofle_pico/keymaps/via/keymap.c b/keyboards/sofle_pico/keymaps/via/keymap.c index 421c48be1eb..536ad6e1304 100644 --- a/keyboards/sofle_pico/keymaps/via/keymap.c +++ b/keyboards/sofle_pico/keymaps/via/keymap.c @@ -15,85 +15,118 @@ enum sofle_layers { enum custom_keycodes { KC_QWERTY = SAFE_RANGE, KC_COLEMAK, KC_PRVWD, KC_NXTWD, KC_LSTRT, KC_LEND, KC_DLINE }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* - * QWERTY - * ,-----------------------------------------. ,-----------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | ESC | Q | W | E | R | T | | Y | U | I | O | P | Bspc | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | Tab | A | S | D | F | G |-------. ,-------| H | J | K | L | ; | ' | - * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| - * |LShift| Z | X | C | V | B |-------| |-------| N | M | , | . | / |RShift| - * `-----------------------------------------/ / \ \-----------------------------------------' - * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI | - * | | | | |/ / \ \ | | | | | - * `----------------------------------' '------''---------------------------' - */ + // clang-format off + /* + * QWERTY + * ,-----------------------------------------. ,-----------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | ESC | Q | W | E | R | T | | Y | U | I | O | P | Bspc | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Tab | A | S | D | F | G |-------. ,-------| H | J | K | L | ; | ' | + * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| + * |LShift| Z | X | C | V | B |-------| |-------| N | M | , | . | / |RShift| + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | 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_LCTL, MO(_LOWER), KC_ENT, KC_SPC, MO(_RAISE), KC_RCTL, KC_RALT, KC_RGUI), - /* - * COLEMAK - * ,-----------------------------------------. ,-----------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | ESC | Q | W | F | P | G | | J | L | U | Y | ; | Bspc | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | TAB | A | R | S | T | D |-------. ,-------| H | N | E | I | O | ' | - * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| - * |LShift| Z | X | C | V | B |-------| |-------| K | M | , | . | / |RShift| - * `-----------------------------------------/ / \ \-----------------------------------------' - * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | 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_LCTL, MO(_LOWER), KC_ENT, KC_SPC, MO(_RAISE), KC_RCTL, KC_RALT, KC_RGUI + ), + /* + * COLEMAK + * ,-----------------------------------------. ,-----------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | ESC | Q | W | F | P | G | | J | L | U | Y | ; | Bspc | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | TAB | A | R | S | T | D |-------. ,-------| H | N | E | I | O | ' | + * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| + * |LShift| Z | X | C | V | B |-------| |-------| K | M | , | . | / |RShift| + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | 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_LCTL, MO(_LOWER), KC_ENT, KC_SPC, MO(_RAISE), KC_RCTL, KC_RALT, KC_RGUI), - /* LOWER - * ,-----------------------------------------. ,-----------------------------------------. - * | | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | F12 | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | Tab | ! | @ | # | $ | % |-------. ,-------| ^ | & | * | ( | ) | | | - * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| - * | Shift| = | - | + | { | } |-------| |-------| [ | ] | ; | : | \ | Shift| - * `-----------------------------------------/ / \ \-----------------------------------------' - * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI | - * | | | | |/ / \ \ | | | | | - * `----------------------------------' '------''---------------------------' - */ - [_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 - * ,----------------------------------------. ,-----------------------------------------. - * | | | | | | | | | | | | | | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | 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| - * `-----------------------------------------/ / \ \-----------------------------------------' - * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI | - * | | | | |/ / \ \ | | | | | - * `----------------------------------' '------''---------------------------' - */ - [_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 - * ,-----------------------------------------. ,-----------------------------------------. - * | | | | | | | | | | | | | | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | QK_BOOT| |QWERTY|COLEMAK| | | | | | | | | | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | | |MACWIN| | | |-------. ,-------| | VOLDO| MUTE | VOLUP| | | - * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| - * | | | | | | |-------| |-------| | PREV | PLAY | NEXT | | | - * `-----------------------------------------/ / \ \-----------------------------------------' - * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI | - * | | | | |/ / \ \ | | | | | - * `----------------------------------' '------''---------------------------' - */ - [_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, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______)}; + [_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_LCTL,MO(_LOWER), KC_ENT, KC_SPC, MO(_RAISE), KC_RCTL, KC_RALT, KC_RGUI + ), + /* LOWER + * ,-----------------------------------------. ,-----------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | F12 | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Tab | ! | @ | # | $ | % |-------. ,-------| ^ | & | * | ( | ) | | | + * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| + * | Shift| = | - | + | { | } |-------| |-------| [ | ] | ; | : | \ | Shift| + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI | + * | | | | |/ / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ + [_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 + * ,----------------------------------------. ,-----------------------------------------. + * | | | | | | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | 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| + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI | + * | | | | |/ / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ + [_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 + * ,-----------------------------------------. ,-----------------------------------------. + * | | | | | | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | QK_BOOT| |QWERTY|COLEMAK| | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | |MACWIN| | | |-------. ,-------| | VOLDO| MUTE | VOLUP| | | + * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| + * | | | | | | |-------| |-------| | PREV | PLAY | NEXT | | | + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI | + * | | | | |/ / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ + [_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, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) + // clang-format on +}; #ifdef OLED_ENABLE From 540f16a1870ade5fd37fd359032feeab3345a1f7 Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Thu, 14 Mar 2024 13:45:18 -0700 Subject: [PATCH 46/87] Fixes broken url in readme's --- keyboards/sofle_pico/keymaps/default_jellytitan/readme.md | 2 +- keyboards/sofle_pico/readme.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/sofle_pico/keymaps/default_jellytitan/readme.md b/keyboards/sofle_pico/keymaps/default_jellytitan/readme.md index 5655bb0366d..153b47bd0c9 100644 --- a/keyboards/sofle_pico/keymaps/default_jellytitan/readme.md +++ b/keyboards/sofle_pico/keymaps/default_jellytitan/readme.md @@ -2,7 +2,7 @@ ![jellytitan](https://i.imgur.com/JqGPWCn.png) This keymap is derived from Ergodox layouts and is adapted for the -[sofle_pico](https://github.com/JellyTitan/sofle_pico). +[sofle_pico](https://github.com/JellyTitan/Sofle-Pico). It is notable for it's semi-complex programming examples that include the use of rotary encoders. diff --git a/keyboards/sofle_pico/readme.md b/keyboards/sofle_pico/readme.md index 07b33e84f0f..53c1dc569a0 100644 --- a/keyboards/sofle_pico/readme.md +++ b/keyboards/sofle_pico/readme.md @@ -6,7 +6,7 @@ Sofle Pico is a 60% Raspberry Pi Pico powered split keyboard boasting a 4x6 layo - Keyboard Maintainer: [Ryan Neff](https://github.com/JellyTitan) - Hardware Supported: Sofle Pico PCB v3.5.x, Raspberry Pi Pico -- Hardware Availability: [PCB, Case, Parts List](https://github.com/JellyTitan/sofle_pico) +- Hardware Availability: [PCB, Case, Parts List](https://github.com/JellyTitan/Sofle-Pico) Remember you have to flash both halves of the keyboard for it to work! From dcbfbed919a74bc9f34177fcbef6131ff96505c7 Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Fri, 22 Mar 2024 16:35:14 -0700 Subject: [PATCH 47/87] Adds updated startup graphics to default Sofle Pico keymap --- keyboards/sofle_pico/keymaps/default/keymap.c | 85 ++++++++++++++++--- .../keymaps/default_jellytitan/keymap.c | 4 +- keyboards/sofle_pico/keymaps/via/keymap.c | 85 ++++++++++++++++--- 3 files changed, 152 insertions(+), 22 deletions(-) diff --git a/keyboards/sofle_pico/keymaps/default/keymap.c b/keyboards/sofle_pico/keymaps/default/keymap.c index 536ad6e1304..c356442777e 100644 --- a/keyboards/sofle_pico/keymaps/default/keymap.c +++ b/keyboards/sofle_pico/keymaps/default/keymap.c @@ -128,15 +128,23 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // clang-format on }; +// Default timeout for displaying logo on boot. +#ifndef OLED_LOGO_TIMEOUT +// 10 second timeout. +# define OLED_LOGO_TIMEOUT 10000 +#endif + #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}; +uint16_t startup_timer; - oled_write_P(qmk_logo, false); -} +// 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}; -static void print_status_narrow(void) { +// oled_write_P(qmk_logo, false); +// } + +static void render_status(void) { // Print current mode oled_write_P(PSTR("\n\n"), false); oled_write_ln_P(PSTR("MODE"), false); @@ -183,17 +191,74 @@ static void print_status_narrow(void) { } oled_rotation_t oled_init_user(oled_rotation_t rotation) { + startup_timer = timer_read(); + if (is_keyboard_master()) { - return OLED_ROTATION_270; + if (is_keyboard_left()) { + return OLED_ROTATION_90; + } else { + return OLED_ROTATION_270; + } + } else { + return OLED_ROTATION_270; } - return rotation; +} + +static void render_qmk_logo(void) { + static const char PROGMEM qmk_logo[] = {// 'qmk_via_OLED_128x64', 64x128px + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xfc, 0xfe, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xfe, 0xfc, 0xf8, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0x71, 0x71, 0x71, 0x71, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x71, 0x71, 0x71, 0x71, 0x71, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0xf8, 0xf0, 0xf1, 0xf1, 0xe3, 0xe3, 0xe3, 0x00, 0x00, 0x00, 0xe3, 0xe3, 0xf3, 0xf1, 0xf1, + 0xf0, 0xf8, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x07, 0x07, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xfc, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x07, 0x07, 0x07, 0x07, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0x70, 0x30, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x38, 0xf0, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x78, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf8, 0x38, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xf0, 0x38, 0x18, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xe3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x03, 0x0f, 0x7e, 0xf8, 0xc0, 0x00, 0x80, 0xe0, 0xfc, 0x1f, 0x07, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x0c, 0x1e, 0x7f, 0xf3, 0xc1, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0f, 0x0e, 0x0c, 0x1c, 0x1c, + 0x1c, 0x0c, 0x0c, 0x0e, 0x0f, 0x1f, 0x38, 0x30, 0x70, 0x20, 0x00, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, 0x0f, 0x0f, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x0f, 0x0c, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x7c, 0xfe, 0xfe, 0xfc, 0xfc, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xfc, 0xfe, 0xfe, 0xfe, 0x3c, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0xf8, 0xfc, 0xfc, 0xfc, 0xf8, 0x10, 0x00, 0x00, 0x00, 0xc0, 0xf8, 0xfc, 0xfe, 0xfe, 0xfe, 0xfe, 0xfc, 0xf8, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf0, 0xfc, 0xff, 0xff, 0xff, 0x7f, 0x0f, 0x01, 0x00, 0x00, 0xe0, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x03, 0x00, 0x00, 0xc0, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x07, 0x03, 0x1f, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0xc0, 0xf0, 0xfe, 0xff, 0xff, 0xff, 0x3f, 0x0f, 0x01, 0x00, 0x00, 0xe0, 0xf8, 0xff, 0xff, 0xff, 0x7f, 0x1f, 0x03, 0x00, 0x00, 0xc0, 0xf8, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, + 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, 0x3f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x3f, 0x0f, 0x01, 0x00, 0x00, 0x00, 0x38, 0x7f, 0x7f, 0x7f, 0x3f, 0x1f, 0x03, 0x00, 0x00, 0x00, 0x18, 0x7e, 0x7f, 0x7f, 0x7f, 0x1f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1f, 0x3f, 0x7f, 0x7f, 0x7f, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x1e, 0x3e, 0x1c, 0x08, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x3e, 0x3e, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + oled_write_raw_P(qmk_logo, sizeof(qmk_logo)); + // oled_write_P(qmk_logo, false); +} +static void render_logo(void) { + // @todo - should we split this into a seperate file? kb16 has a good example. + static const char PROGMEM sofle_pico_logo[] = {// 'sofle-pico-vector-logo-v5 OLED chopped', 64x128px + 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xe0, 0xf0, 0xf0, 0xf0, 0x70, 0xf0, 0xf0, 0xe0, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf0, 0xf8, 0xfc, 0x3c, 0x3c, 0x3c, 0x7c, 0xf8, 0xf8, 0xf0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x1f, 0x3f, 0x3f, 0x3f, 0x7c, 0x78, 0xf8, 0xf8, 0xf0, 0xe0, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xfc, 0x3c, 0x1c, 0x1e, 0x1e, 0x3c, 0xfc, 0xf8, 0xf0, 0xc0, 0x00, 0x1c, 0x1c, 0xff, 0xff, 0xff, 0xff, 0x1c, 0x1c, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xfc, 0xfc, 0xce, 0xce, 0xce, 0xdc, 0xfc, 0xfc, 0xf8, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x1e, 0x1e, 0x1e, 0x3c, 0x3c, 0x3c, 0x3e, 0x1f, 0x1f, 0x0f, 0x07, 0x01, 0x00, 0x01, 0x07, + 0x0f, 0x1f, 0x1e, 0x3c, 0x3c, 0x3c, 0x1e, 0x1f, 0x0f, 0x07, 0x03, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x01, 0x07, 0x0f, 0x1f, 0x1f, 0x3c, 0x38, 0x38, 0x3c, 0x1c, 0x1c, 0x0c, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0x06, 0x06, 0x06, 0x0e, 0x9e, 0xfc, 0xf8, 0x00, 0x00, 0x8e, 0x8e, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x07, 0x07, 0x07, 0x07, 0x03, 0x03, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x7c, 0xfe, 0xff, 0x83, 0x01, 0x01, 0x01, 0x83, 0x83, 0x00, 0x00, 0x7e, 0xff, 0xc7, 0x83, 0x01, 0x01, 0x01, + 0x83, 0xff, 0xff, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc3, 0xe3, 0xe0, 0xe0, 0xe0, 0xf0, 0x70, 0x70, 0x70, 0x70, 0x30, 0x33, 0x73, 0xe0, 0x60, 0xe0, 0xe0, 0xc0, 0xc1, 0x83, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x80, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x70, 0x30, 0x70, 0x70, 0x70, 0x70, 0x70, 0xf0, 0xe0, 0xe0, 0xe0, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1f, 0xff, 0xf8, 0xd0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x20, 0x20, 0x40, 0xc0, 0x80, 0x00, 0x01, 0x87, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0xff, 0xff, 0x03, 0x01, 0x00, 0x80, 0xc0, 0x40, 0x20, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0xf0, 0xf8, 0x7f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0f, 0x1c, 0x1c, 0x38, 0x78, 0x60, 0x60, 0x60, 0x60, 0x60, 0x70, 0x38, 0x39, 0xdf, 0xef, 0xf7, 0x7b, 0x39, 0x1c, 0x1c, 0x0e, 0x0e, 0x06, 0x06, 0x06, 0x06, 0x06, 0x0e, 0x0e, 0x1e, 0x1c, 0x3c, 0x79, 0xfb, 0xf7, 0xef, 0x9f, 0x38, 0x30, 0x70, 0x60, 0x60, 0x60, 0x60, 0x70, 0x38, 0x3c, 0x1c, 0x0f, 0x0f, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xf8, 0xfc, 0x7e, 0x7f, 0xff, 0xff, 0xe3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc1, 0xff, 0x7f, 0x7f, 0x3f, 0x7c, 0xf8, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7f, 0xff, 0x81, 0x00, 0x00, 0x00, 0x00, 0x01, 0xcf, 0xff, 0xfe, 0x7c, 0x78, 0x78, 0x38, 0x30, 0x30, 0x30, 0x30, 0x30, 0x38, 0x78, 0x78, 0x7c, 0xfe, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0f, 0x0e, 0x1e, 0x3f, 0x7f, 0xf1, 0xe0, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xc0, 0xe1, 0xf3, 0x7f, 0x3f, 0x1f, 0x0f, 0x07, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + oled_write_raw_P(sofle_pico_logo, sizeof(sofle_pico_logo)); } bool oled_task_user(void) { - if (is_keyboard_master()) { - print_status_narrow(); + static bool finished_logo = false; + if ((timer_elapsed(startup_timer) < OLED_LOGO_TIMEOUT) && !finished_logo) { + // Display the logo for 5 seconds on boot. + if (is_keyboard_master()) { + render_logo(); + // 10 Chars per line. Set cursor used to simplify line wraps. + oled_set_cursor(0, 12); + oled_write_P(PSTR("v3.5.4"), false); + oled_set_cursor(0, 13); + oled_write_P(PSTR("03-22-2024"), false); + oled_set_cursor(0, 14); + oled_write_P(PSTR("by:github/"), false); + oled_set_cursor(0, 15); + oled_write_P(PSTR("JellyTitan"), false); + } else { + render_qmk_logo(); + } } else { - render_logo(); + // Display the current keyboard state. + if (!finished_logo) { + finished_logo = true; + // Clears the OLED. + oled_clear(); + } + if (is_keyboard_master()) { + render_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc) + } else { + render_logo(); + } } return false; } diff --git a/keyboards/sofle_pico/keymaps/default_jellytitan/keymap.c b/keyboards/sofle_pico/keymaps/default_jellytitan/keymap.c index 8863a001f35..04dcf69f9a3 100644 --- a/keyboards/sofle_pico/keymaps/default_jellytitan/keymap.c +++ b/keyboards/sofle_pico/keymaps/default_jellytitan/keymap.c @@ -282,9 +282,9 @@ bool oled_task_user(void) { render_logo(); // 10 Chars per line. Set cursor used to simplify line wraps. oled_set_cursor(0, 12); - oled_write_P(PSTR("v3.51"), false); + oled_write_P(PSTR("v3.5.4"), false); oled_set_cursor(0, 13); - oled_write_P(PSTR("12-5-2023"), false); + oled_write_P(PSTR("03-22-2024"), false); oled_set_cursor(0, 14); oled_write_P(PSTR("by:github/"), false); oled_set_cursor(0, 15); diff --git a/keyboards/sofle_pico/keymaps/via/keymap.c b/keyboards/sofle_pico/keymaps/via/keymap.c index 536ad6e1304..efa1f3ec43f 100644 --- a/keyboards/sofle_pico/keymaps/via/keymap.c +++ b/keyboards/sofle_pico/keymaps/via/keymap.c @@ -128,15 +128,23 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // clang-format on }; +// Default timeout for displaying logo on boot. +#ifndef OLED_LOGO_TIMEOUT +// 10 second timeout. +# define OLED_LOGO_TIMEOUT 10000 +#endif + #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}; +uint16_t startup_timer; - oled_write_P(qmk_logo, false); -} +// 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}; -static void print_status_narrow(void) { +// oled_write_P(qmk_logo, false); +// } + +static void render_status(void) { // Print current mode oled_write_P(PSTR("\n\n"), false); oled_write_ln_P(PSTR("MODE"), false); @@ -183,17 +191,74 @@ static void print_status_narrow(void) { } oled_rotation_t oled_init_user(oled_rotation_t rotation) { + startup_timer = timer_read(); + if (is_keyboard_master()) { - return OLED_ROTATION_270; + if (is_keyboard_left()) { + return OLED_ROTATION_90; + } else { + return OLED_ROTATION_270; + } + } else { + return OLED_ROTATION_90; } - return rotation; +} + +static void render_qmk_logo(void) { + static const char PROGMEM qmk_logo[] = {// 'qmk_via_OLED_128x64', 64x128px + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xfc, 0xfe, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xfe, 0xfc, 0xf8, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0x71, 0x71, 0x71, 0x71, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x71, 0x71, 0x71, 0x71, 0x71, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0xf8, 0xf0, 0xf1, 0xf1, 0xe3, 0xe3, 0xe3, 0x00, 0x00, 0x00, 0xe3, 0xe3, 0xf3, 0xf1, 0xf1, + 0xf0, 0xf8, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x07, 0x07, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xfc, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x07, 0x07, 0x07, 0x07, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0x70, 0x30, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x38, 0xf0, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x78, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf8, 0x38, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xf0, 0x38, 0x18, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xe3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x03, 0x0f, 0x7e, 0xf8, 0xc0, 0x00, 0x80, 0xe0, 0xfc, 0x1f, 0x07, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x0c, 0x1e, 0x7f, 0xf3, 0xc1, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0f, 0x0e, 0x0c, 0x1c, 0x1c, + 0x1c, 0x0c, 0x0c, 0x0e, 0x0f, 0x1f, 0x38, 0x30, 0x70, 0x20, 0x00, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, 0x0f, 0x0f, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x0f, 0x0c, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x7c, 0xfe, 0xfe, 0xfc, 0xfc, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xfc, 0xfe, 0xfe, 0xfe, 0x3c, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0xf8, 0xfc, 0xfc, 0xfc, 0xf8, 0x10, 0x00, 0x00, 0x00, 0xc0, 0xf8, 0xfc, 0xfe, 0xfe, 0xfe, 0xfe, 0xfc, 0xf8, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf0, 0xfc, 0xff, 0xff, 0xff, 0x7f, 0x0f, 0x01, 0x00, 0x00, 0xe0, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x03, 0x00, 0x00, 0xc0, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x07, 0x03, 0x1f, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0xc0, 0xf0, 0xfe, 0xff, 0xff, 0xff, 0x3f, 0x0f, 0x01, 0x00, 0x00, 0xe0, 0xf8, 0xff, 0xff, 0xff, 0x7f, 0x1f, 0x03, 0x00, 0x00, 0xc0, 0xf8, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, + 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, 0x3f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x3f, 0x0f, 0x01, 0x00, 0x00, 0x00, 0x38, 0x7f, 0x7f, 0x7f, 0x3f, 0x1f, 0x03, 0x00, 0x00, 0x00, 0x18, 0x7e, 0x7f, 0x7f, 0x7f, 0x1f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1f, 0x3f, 0x7f, 0x7f, 0x7f, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x1e, 0x3e, 0x1c, 0x08, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x3e, 0x3e, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + oled_write_raw_P(qmk_logo, sizeof(qmk_logo)); + // oled_write_P(qmk_logo, false); +} +static void render_logo(void) { + // @todo - should we split this into a seperate file? kb16 has a good example. + static const char PROGMEM sofle_pico_logo[] = {// 'sofle-pico-vector-logo-v5 OLED chopped', 64x128px + 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xe0, 0xf0, 0xf0, 0xf0, 0x70, 0xf0, 0xf0, 0xe0, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf0, 0xf8, 0xfc, 0x3c, 0x3c, 0x3c, 0x7c, 0xf8, 0xf8, 0xf0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x1f, 0x3f, 0x3f, 0x3f, 0x7c, 0x78, 0xf8, 0xf8, 0xf0, 0xe0, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xfc, 0x3c, 0x1c, 0x1e, 0x1e, 0x3c, 0xfc, 0xf8, 0xf0, 0xc0, 0x00, 0x1c, 0x1c, 0xff, 0xff, 0xff, 0xff, 0x1c, 0x1c, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xfc, 0xfc, 0xce, 0xce, 0xce, 0xdc, 0xfc, 0xfc, 0xf8, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x1e, 0x1e, 0x1e, 0x3c, 0x3c, 0x3c, 0x3e, 0x1f, 0x1f, 0x0f, 0x07, 0x01, 0x00, 0x01, 0x07, + 0x0f, 0x1f, 0x1e, 0x3c, 0x3c, 0x3c, 0x1e, 0x1f, 0x0f, 0x07, 0x03, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x01, 0x07, 0x0f, 0x1f, 0x1f, 0x3c, 0x38, 0x38, 0x3c, 0x1c, 0x1c, 0x0c, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0x06, 0x06, 0x06, 0x0e, 0x9e, 0xfc, 0xf8, 0x00, 0x00, 0x8e, 0x8e, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x07, 0x07, 0x07, 0x07, 0x03, 0x03, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x7c, 0xfe, 0xff, 0x83, 0x01, 0x01, 0x01, 0x83, 0x83, 0x00, 0x00, 0x7e, 0xff, 0xc7, 0x83, 0x01, 0x01, 0x01, + 0x83, 0xff, 0xff, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc3, 0xe3, 0xe0, 0xe0, 0xe0, 0xf0, 0x70, 0x70, 0x70, 0x70, 0x30, 0x33, 0x73, 0xe0, 0x60, 0xe0, 0xe0, 0xc0, 0xc1, 0x83, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x80, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x70, 0x30, 0x70, 0x70, 0x70, 0x70, 0x70, 0xf0, 0xe0, 0xe0, 0xe0, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1f, 0xff, 0xf8, 0xd0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x20, 0x20, 0x40, 0xc0, 0x80, 0x00, 0x01, 0x87, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0xff, 0xff, 0x03, 0x01, 0x00, 0x80, 0xc0, 0x40, 0x20, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0xf0, 0xf8, 0x7f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0f, 0x1c, 0x1c, 0x38, 0x78, 0x60, 0x60, 0x60, 0x60, 0x60, 0x70, 0x38, 0x39, 0xdf, 0xef, 0xf7, 0x7b, 0x39, 0x1c, 0x1c, 0x0e, 0x0e, 0x06, 0x06, 0x06, 0x06, 0x06, 0x0e, 0x0e, 0x1e, 0x1c, 0x3c, 0x79, 0xfb, 0xf7, 0xef, 0x9f, 0x38, 0x30, 0x70, 0x60, 0x60, 0x60, 0x60, 0x70, 0x38, 0x3c, 0x1c, 0x0f, 0x0f, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xf8, 0xfc, 0x7e, 0x7f, 0xff, 0xff, 0xe3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc1, 0xff, 0x7f, 0x7f, 0x3f, 0x7c, 0xf8, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7f, 0xff, 0x81, 0x00, 0x00, 0x00, 0x00, 0x01, 0xcf, 0xff, 0xfe, 0x7c, 0x78, 0x78, 0x38, 0x30, 0x30, 0x30, 0x30, 0x30, 0x38, 0x78, 0x78, 0x7c, 0xfe, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0f, 0x0e, 0x1e, 0x3f, 0x7f, 0xf1, 0xe0, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xc0, 0xe1, 0xf3, 0x7f, 0x3f, 0x1f, 0x0f, 0x07, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + oled_write_raw_P(sofle_pico_logo, sizeof(sofle_pico_logo)); } bool oled_task_user(void) { - if (is_keyboard_master()) { - print_status_narrow(); + static bool finished_logo = false; + if ((timer_elapsed(startup_timer) < OLED_LOGO_TIMEOUT) && !finished_logo) { + // Display the logo for 5 seconds on boot. + if (is_keyboard_master()) { + render_logo(); + // 10 Chars per line. Set cursor used to simplify line wraps. + oled_set_cursor(0, 12); + oled_write_P(PSTR("v3.5.4"), false); + oled_set_cursor(0, 13); + oled_write_P(PSTR("03-22-2024"), false); + oled_set_cursor(0, 14); + oled_write_P(PSTR("by:github/"), false); + oled_set_cursor(0, 15); + oled_write_P(PSTR("JellyTitan"), false); + } else { + render_qmk_logo(); + } } else { - render_logo(); + // Display the current keyboard state. + if (!finished_logo) { + finished_logo = true; + // Clears the OLED. + oled_clear(); + } + if (is_keyboard_master()) { + render_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc) + } else { + render_logo(); + } } return false; } From 755f20e27013c99972b07b05903ed6cd72823ae8 Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Fri, 22 Mar 2024 16:52:42 -0700 Subject: [PATCH 48/87] Fixed OLED rotation --- keyboards/sofle_pico/keymaps/default/keymap.c | 11 +---------- .../sofle_pico/keymaps/default_jellytitan/keymap.c | 12 ++---------- keyboards/sofle_pico/keymaps/via/keymap.c | 11 +---------- 3 files changed, 4 insertions(+), 30 deletions(-) diff --git a/keyboards/sofle_pico/keymaps/default/keymap.c b/keyboards/sofle_pico/keymaps/default/keymap.c index c356442777e..4bc6efec64d 100644 --- a/keyboards/sofle_pico/keymaps/default/keymap.c +++ b/keyboards/sofle_pico/keymaps/default/keymap.c @@ -192,16 +192,7 @@ static void render_status(void) { oled_rotation_t oled_init_user(oled_rotation_t rotation) { startup_timer = timer_read(); - - if (is_keyboard_master()) { - if (is_keyboard_left()) { - return OLED_ROTATION_90; - } else { - return OLED_ROTATION_270; - } - } else { - return OLED_ROTATION_270; - } + return OLED_ROTATION_90; } static void render_qmk_logo(void) { diff --git a/keyboards/sofle_pico/keymaps/default_jellytitan/keymap.c b/keyboards/sofle_pico/keymaps/default_jellytitan/keymap.c index 04dcf69f9a3..1b9ae3560af 100644 --- a/keyboards/sofle_pico/keymaps/default_jellytitan/keymap.c +++ b/keyboards/sofle_pico/keymaps/default_jellytitan/keymap.c @@ -208,17 +208,9 @@ uint16_t startup_timer; oled_rotation_t oled_init_user(oled_rotation_t rotation) { startup_timer = timer_read(); - - if (is_keyboard_master()) { - if (is_keyboard_left()) { - return OLED_ROTATION_90; - } else { - return OLED_ROTATION_270; - } - } else { - return OLED_ROTATION_90; - } + return OLED_ROTATION_90; } + static void render_qmk_logo(void) { static const char PROGMEM qmk_logo[] = {// 'qmk_via_OLED_128x64', 64x128px 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xfc, 0xfe, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xfe, 0xfc, 0xf8, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, diff --git a/keyboards/sofle_pico/keymaps/via/keymap.c b/keyboards/sofle_pico/keymaps/via/keymap.c index efa1f3ec43f..4bc6efec64d 100644 --- a/keyboards/sofle_pico/keymaps/via/keymap.c +++ b/keyboards/sofle_pico/keymaps/via/keymap.c @@ -192,16 +192,7 @@ static void render_status(void) { oled_rotation_t oled_init_user(oled_rotation_t rotation) { startup_timer = timer_read(); - - if (is_keyboard_master()) { - if (is_keyboard_left()) { - return OLED_ROTATION_90; - } else { - return OLED_ROTATION_270; - } - } else { - return OLED_ROTATION_90; - } + return OLED_ROTATION_90; } static void render_qmk_logo(void) { From 87a56ada1019309d74d98c5f361e6aa01f311540 Mon Sep 17 00:00:00 2001 From: uberrice Date: Sat, 23 Mar 2024 07:42:46 +0100 Subject: [PATCH 49/87] fix issue of cpslk appearing on different lines in default and raise/lower modes --- keyboards/sofle_pico/keymaps/via/keymap.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/keyboards/sofle_pico/keymaps/via/keymap.c b/keyboards/sofle_pico/keymaps/via/keymap.c index 4bc6efec64d..a814a95c690 100644 --- a/keyboards/sofle_pico/keymaps/via/keymap.c +++ b/keyboards/sofle_pico/keymaps/via/keymap.c @@ -171,16 +171,16 @@ static void render_status(void) { switch (get_highest_layer(layer_state)) { case _COLEMAK: case _QWERTY: - oled_write_P(PSTR("Base\n"), false); + oled_write_ln_P(PSTR("Base"), false); break; case _RAISE: - oled_write_P(PSTR("Raise"), false); + oled_write_ln_P(PSTR("Raise"), false); break; case _LOWER: - oled_write_P(PSTR("Lower"), false); + oled_write_ln_P(PSTR("Lower"), false); break; case _ADJUST: - oled_write_P(PSTR("Adj\n"), false); + oled_write_ln_P(PSTR("Adj"), false); break; default: oled_write_ln_P(PSTR("Undef"), false); From 20e4c0874a537a046d5e261383a2fc89209b5b51 Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Sun, 24 Mar 2024 11:06:45 -0700 Subject: [PATCH 50/87] Added uberrice submitted oled line wraps to default keymap minor formatting cleanup --- keyboards/sofle_pico/keymaps/default/keymap.c | 43 ++++++++----------- keyboards/sofle_pico/keymaps/via/keymap.c | 37 +++++++--------- 2 files changed, 33 insertions(+), 47 deletions(-) diff --git a/keyboards/sofle_pico/keymaps/default/keymap.c b/keyboards/sofle_pico/keymaps/default/keymap.c index 4bc6efec64d..fe5302451d1 100644 --- a/keyboards/sofle_pico/keymaps/default/keymap.c +++ b/keyboards/sofle_pico/keymaps/default/keymap.c @@ -135,15 +135,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #endif #ifdef OLED_ENABLE - uint16_t startup_timer; -// 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 render_status(void) { // Print current mode oled_write_P(PSTR("\n\n"), false); @@ -157,13 +150,13 @@ static void render_status(void) { switch (get_highest_layer(default_layer_state)) { case _QWERTY: - oled_write_ln_P(PSTR("Qwrt"), false); + oled_write_ln_P(PSTR("Qwerty"), false); break; case _COLEMAK: - oled_write_ln_P(PSTR("Clmk"), false); + oled_write_ln_P(PSTR("Colemak"), false); break; default: - oled_write_P(PSTR("Undef"), false); + oled_write_P(PSTR("Undefined"), false); } oled_write_P(PSTR("\n\n"), false); // Print current layer @@ -171,23 +164,23 @@ static void render_status(void) { switch (get_highest_layer(layer_state)) { case _COLEMAK: case _QWERTY: - oled_write_P(PSTR("Base\n"), false); + oled_write_ln_P(PSTR("Base"), false); break; case _RAISE: - oled_write_P(PSTR("Raise"), false); + oled_write_ln_P(PSTR("Raise"), false); break; case _LOWER: - oled_write_P(PSTR("Lower"), false); + oled_write_ln_P(PSTR("Lower"), false); break; case _ADJUST: - oled_write_P(PSTR("Adj\n"), false); + oled_write_ln_P(PSTR("Adjust"), false); break; default: - oled_write_ln_P(PSTR("Undef"), false); + oled_write_ln_P(PSTR("Undefined"), 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_write_ln_P(PSTR("CAPSLOCK"), led_usb_state.caps_lock); } oled_rotation_t oled_init_user(oled_rotation_t rotation) { @@ -196,7 +189,7 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) { } static void render_qmk_logo(void) { - static const char PROGMEM qmk_logo[] = {// 'qmk_via_OLED_128x64', 64x128px + static const char PROGMEM qmk_logo[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xfc, 0xfe, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xfe, 0xfc, 0xf8, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0x71, 0x71, 0x71, 0x71, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x71, 0x71, 0x71, 0x71, 0x71, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0xf8, 0xf0, 0xf1, 0xf1, 0xe3, 0xe3, 0xe3, 0x00, 0x00, 0x00, 0xe3, 0xe3, 0xf3, 0xf1, 0xf1, 0xf0, 0xf8, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x07, 0x07, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xfc, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x07, 0x07, 0x07, 0x07, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -205,11 +198,10 @@ static void render_qmk_logo(void) { 0x00, 0xe0, 0xf8, 0xfc, 0xfc, 0xfc, 0xf8, 0x10, 0x00, 0x00, 0x00, 0xc0, 0xf8, 0xfc, 0xfe, 0xfe, 0xfe, 0xfe, 0xfc, 0xf8, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf0, 0xfc, 0xff, 0xff, 0xff, 0x7f, 0x0f, 0x01, 0x00, 0x00, 0xe0, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x03, 0x00, 0x00, 0xc0, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x07, 0x03, 0x1f, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0xc0, 0xf0, 0xfe, 0xff, 0xff, 0xff, 0x3f, 0x0f, 0x01, 0x00, 0x00, 0xe0, 0xf8, 0xff, 0xff, 0xff, 0x7f, 0x1f, 0x03, 0x00, 0x00, 0xc0, 0xf8, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, 0x3f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x3f, 0x0f, 0x01, 0x00, 0x00, 0x00, 0x38, 0x7f, 0x7f, 0x7f, 0x3f, 0x1f, 0x03, 0x00, 0x00, 0x00, 0x18, 0x7e, 0x7f, 0x7f, 0x7f, 0x1f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1f, 0x3f, 0x7f, 0x7f, 0x7f, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x1e, 0x3e, 0x1c, 0x08, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x3e, 0x3e, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; oled_write_raw_P(qmk_logo, sizeof(qmk_logo)); - // oled_write_P(qmk_logo, false); } + static void render_logo(void) { - // @todo - should we split this into a seperate file? kb16 has a good example. - static const char PROGMEM sofle_pico_logo[] = {// 'sofle-pico-vector-logo-v5 OLED chopped', 64x128px + static const char PROGMEM sofle_pico_logo[] = { 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xe0, 0xf0, 0xf0, 0xf0, 0x70, 0xf0, 0xf0, 0xe0, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf0, 0xf8, 0xfc, 0x3c, 0x3c, 0x3c, 0x7c, 0xf8, 0xf8, 0xf0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x1f, 0x3f, 0x3f, 0x3f, 0x7c, 0x78, 0xf8, 0xf8, 0xf0, 0xe0, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xfc, 0x3c, 0x1c, 0x1e, 0x1e, 0x3c, 0xfc, 0xf8, 0xf0, 0xc0, 0x00, 0x1c, 0x1c, 0xff, 0xff, 0xff, 0xff, 0x1c, 0x1c, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xfc, 0xfc, 0xce, 0xce, 0xce, 0xdc, 0xfc, 0xfc, 0xf8, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x1e, 0x1e, 0x1e, 0x3c, 0x3c, 0x3c, 0x3e, 0x1f, 0x1f, 0x0f, 0x07, 0x01, 0x00, 0x01, 0x07, 0x0f, 0x1f, 0x1e, 0x3c, 0x3c, 0x3c, 0x1e, 0x1f, 0x0f, 0x07, 0x03, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x01, 0x07, 0x0f, 0x1f, 0x1f, 0x3c, 0x38, 0x38, 0x3c, 0x1c, 0x1c, 0x0c, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0x06, 0x06, 0x06, 0x0e, 0x9e, 0xfc, 0xf8, 0x00, 0x00, 0x8e, 0x8e, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x07, 0x07, 0x07, 0x07, 0x03, 0x03, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x7c, 0xfe, 0xff, 0x83, 0x01, 0x01, 0x01, 0x83, 0x83, 0x00, 0x00, 0x7e, 0xff, 0xc7, 0x83, 0x01, 0x01, 0x01, 0x83, 0xff, 0xff, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc3, 0xe3, 0xe0, 0xe0, 0xe0, 0xf0, 0x70, 0x70, 0x70, 0x70, 0x30, 0x33, 0x73, 0xe0, 0x60, 0xe0, 0xe0, 0xc0, 0xc1, 0x83, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x80, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x70, 0x30, 0x70, 0x70, 0x70, 0x70, 0x70, 0xf0, 0xe0, 0xe0, 0xe0, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1f, 0xff, 0xf8, 0xd0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x20, 0x20, 0x40, 0xc0, 0x80, 0x00, 0x01, 0x87, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0xff, 0xff, 0x03, 0x01, 0x00, 0x80, 0xc0, 0x40, 0x20, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, @@ -226,9 +218,10 @@ bool oled_task_user(void) { // Display the logo for 5 seconds on boot. if (is_keyboard_master()) { render_logo(); - // 10 Chars per line. Set cursor used to simplify line wraps. + // Adding text below the partial screen logo requires oled_set_cursor. + // There are 10 chars per line. Subsequent oled_set_cursor simplifies line wraps. oled_set_cursor(0, 12); - oled_write_P(PSTR("v3.5.4"), false); + oled_write_ln_P(PSTR("v3.5.4"), false); oled_set_cursor(0, 13); oled_write_P(PSTR("03-22-2024"), false); oled_set_cursor(0, 14); @@ -243,17 +236,17 @@ bool oled_task_user(void) { if (!finished_logo) { finished_logo = true; // Clears the OLED. - oled_clear(); + oled_clear(); } if (is_keyboard_master()) { - render_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc) + // Renders the current keyboard state (layer, lock, caps, scroll, etc) + render_status(); } else { render_logo(); } } return false; } - #endif layer_state_t layer_state_set_user(layer_state_t state) { diff --git a/keyboards/sofle_pico/keymaps/via/keymap.c b/keyboards/sofle_pico/keymaps/via/keymap.c index a814a95c690..fe5302451d1 100644 --- a/keyboards/sofle_pico/keymaps/via/keymap.c +++ b/keyboards/sofle_pico/keymaps/via/keymap.c @@ -135,15 +135,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #endif #ifdef OLED_ENABLE - uint16_t startup_timer; -// 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 render_status(void) { // Print current mode oled_write_P(PSTR("\n\n"), false); @@ -157,13 +150,13 @@ static void render_status(void) { switch (get_highest_layer(default_layer_state)) { case _QWERTY: - oled_write_ln_P(PSTR("Qwrt"), false); + oled_write_ln_P(PSTR("Qwerty"), false); break; case _COLEMAK: - oled_write_ln_P(PSTR("Clmk"), false); + oled_write_ln_P(PSTR("Colemak"), false); break; default: - oled_write_P(PSTR("Undef"), false); + oled_write_P(PSTR("Undefined"), false); } oled_write_P(PSTR("\n\n"), false); // Print current layer @@ -180,14 +173,14 @@ static void render_status(void) { oled_write_ln_P(PSTR("Lower"), false); break; case _ADJUST: - oled_write_ln_P(PSTR("Adj"), false); + oled_write_ln_P(PSTR("Adjust"), false); break; default: - oled_write_ln_P(PSTR("Undef"), false); + oled_write_ln_P(PSTR("Undefined"), 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_write_ln_P(PSTR("CAPSLOCK"), led_usb_state.caps_lock); } oled_rotation_t oled_init_user(oled_rotation_t rotation) { @@ -196,7 +189,7 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) { } static void render_qmk_logo(void) { - static const char PROGMEM qmk_logo[] = {// 'qmk_via_OLED_128x64', 64x128px + static const char PROGMEM qmk_logo[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xfc, 0xfe, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xfe, 0xfc, 0xf8, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0x71, 0x71, 0x71, 0x71, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x71, 0x71, 0x71, 0x71, 0x71, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0xf8, 0xf0, 0xf1, 0xf1, 0xe3, 0xe3, 0xe3, 0x00, 0x00, 0x00, 0xe3, 0xe3, 0xf3, 0xf1, 0xf1, 0xf0, 0xf8, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x07, 0x07, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xfc, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x07, 0x07, 0x07, 0x07, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -205,11 +198,10 @@ static void render_qmk_logo(void) { 0x00, 0xe0, 0xf8, 0xfc, 0xfc, 0xfc, 0xf8, 0x10, 0x00, 0x00, 0x00, 0xc0, 0xf8, 0xfc, 0xfe, 0xfe, 0xfe, 0xfe, 0xfc, 0xf8, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf0, 0xfc, 0xff, 0xff, 0xff, 0x7f, 0x0f, 0x01, 0x00, 0x00, 0xe0, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x03, 0x00, 0x00, 0xc0, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x07, 0x03, 0x1f, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0xc0, 0xf0, 0xfe, 0xff, 0xff, 0xff, 0x3f, 0x0f, 0x01, 0x00, 0x00, 0xe0, 0xf8, 0xff, 0xff, 0xff, 0x7f, 0x1f, 0x03, 0x00, 0x00, 0xc0, 0xf8, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, 0x3f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x3f, 0x0f, 0x01, 0x00, 0x00, 0x00, 0x38, 0x7f, 0x7f, 0x7f, 0x3f, 0x1f, 0x03, 0x00, 0x00, 0x00, 0x18, 0x7e, 0x7f, 0x7f, 0x7f, 0x1f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1f, 0x3f, 0x7f, 0x7f, 0x7f, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x1e, 0x3e, 0x1c, 0x08, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x3e, 0x3e, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; oled_write_raw_P(qmk_logo, sizeof(qmk_logo)); - // oled_write_P(qmk_logo, false); } + static void render_logo(void) { - // @todo - should we split this into a seperate file? kb16 has a good example. - static const char PROGMEM sofle_pico_logo[] = {// 'sofle-pico-vector-logo-v5 OLED chopped', 64x128px + static const char PROGMEM sofle_pico_logo[] = { 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xe0, 0xf0, 0xf0, 0xf0, 0x70, 0xf0, 0xf0, 0xe0, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf0, 0xf8, 0xfc, 0x3c, 0x3c, 0x3c, 0x7c, 0xf8, 0xf8, 0xf0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x1f, 0x3f, 0x3f, 0x3f, 0x7c, 0x78, 0xf8, 0xf8, 0xf0, 0xe0, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xfc, 0x3c, 0x1c, 0x1e, 0x1e, 0x3c, 0xfc, 0xf8, 0xf0, 0xc0, 0x00, 0x1c, 0x1c, 0xff, 0xff, 0xff, 0xff, 0x1c, 0x1c, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xfc, 0xfc, 0xce, 0xce, 0xce, 0xdc, 0xfc, 0xfc, 0xf8, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x1e, 0x1e, 0x1e, 0x3c, 0x3c, 0x3c, 0x3e, 0x1f, 0x1f, 0x0f, 0x07, 0x01, 0x00, 0x01, 0x07, 0x0f, 0x1f, 0x1e, 0x3c, 0x3c, 0x3c, 0x1e, 0x1f, 0x0f, 0x07, 0x03, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x01, 0x07, 0x0f, 0x1f, 0x1f, 0x3c, 0x38, 0x38, 0x3c, 0x1c, 0x1c, 0x0c, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0x06, 0x06, 0x06, 0x0e, 0x9e, 0xfc, 0xf8, 0x00, 0x00, 0x8e, 0x8e, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x07, 0x07, 0x07, 0x07, 0x03, 0x03, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x7c, 0xfe, 0xff, 0x83, 0x01, 0x01, 0x01, 0x83, 0x83, 0x00, 0x00, 0x7e, 0xff, 0xc7, 0x83, 0x01, 0x01, 0x01, 0x83, 0xff, 0xff, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc3, 0xe3, 0xe0, 0xe0, 0xe0, 0xf0, 0x70, 0x70, 0x70, 0x70, 0x30, 0x33, 0x73, 0xe0, 0x60, 0xe0, 0xe0, 0xc0, 0xc1, 0x83, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x80, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x70, 0x30, 0x70, 0x70, 0x70, 0x70, 0x70, 0xf0, 0xe0, 0xe0, 0xe0, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1f, 0xff, 0xf8, 0xd0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x20, 0x20, 0x40, 0xc0, 0x80, 0x00, 0x01, 0x87, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0xff, 0xff, 0x03, 0x01, 0x00, 0x80, 0xc0, 0x40, 0x20, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, @@ -226,9 +218,10 @@ bool oled_task_user(void) { // Display the logo for 5 seconds on boot. if (is_keyboard_master()) { render_logo(); - // 10 Chars per line. Set cursor used to simplify line wraps. + // Adding text below the partial screen logo requires oled_set_cursor. + // There are 10 chars per line. Subsequent oled_set_cursor simplifies line wraps. oled_set_cursor(0, 12); - oled_write_P(PSTR("v3.5.4"), false); + oled_write_ln_P(PSTR("v3.5.4"), false); oled_set_cursor(0, 13); oled_write_P(PSTR("03-22-2024"), false); oled_set_cursor(0, 14); @@ -243,17 +236,17 @@ bool oled_task_user(void) { if (!finished_logo) { finished_logo = true; // Clears the OLED. - oled_clear(); + oled_clear(); } if (is_keyboard_master()) { - render_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc) + // Renders the current keyboard state (layer, lock, caps, scroll, etc) + render_status(); } else { render_logo(); } } return false; } - #endif layer_state_t layer_state_set_user(layer_state_t state) { From 9b7a4be521ef15397995e5a1eefadb212c29b459 Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Sun, 24 Mar 2024 11:31:41 -0700 Subject: [PATCH 51/87] Fixed jellytitan oled line breaks --- .../sofle_pico/keymaps/default_jellytitan/keymap.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/keyboards/sofle_pico/keymaps/default_jellytitan/keymap.c b/keyboards/sofle_pico/keymaps/default_jellytitan/keymap.c index 1b9ae3560af..f5bcdb643cb 100644 --- a/keyboards/sofle_pico/keymaps/default_jellytitan/keymap.c +++ b/keyboards/sofle_pico/keymaps/default_jellytitan/keymap.c @@ -221,10 +221,8 @@ static void render_qmk_logo(void) { 0x00, 0xe0, 0xf8, 0xfc, 0xfc, 0xfc, 0xf8, 0x10, 0x00, 0x00, 0x00, 0xc0, 0xf8, 0xfc, 0xfe, 0xfe, 0xfe, 0xfe, 0xfc, 0xf8, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf0, 0xfc, 0xff, 0xff, 0xff, 0x7f, 0x0f, 0x01, 0x00, 0x00, 0xe0, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x03, 0x00, 0x00, 0xc0, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x07, 0x03, 0x1f, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0xc0, 0xf0, 0xfe, 0xff, 0xff, 0xff, 0x3f, 0x0f, 0x01, 0x00, 0x00, 0xe0, 0xf8, 0xff, 0xff, 0xff, 0x7f, 0x1f, 0x03, 0x00, 0x00, 0xc0, 0xf8, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, 0x3f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x3f, 0x0f, 0x01, 0x00, 0x00, 0x00, 0x38, 0x7f, 0x7f, 0x7f, 0x3f, 0x1f, 0x03, 0x00, 0x00, 0x00, 0x18, 0x7e, 0x7f, 0x7f, 0x7f, 0x1f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1f, 0x3f, 0x7f, 0x7f, 0x7f, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x1e, 0x3e, 0x1c, 0x08, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x3e, 0x3e, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; oled_write_raw_P(qmk_logo, sizeof(qmk_logo)); - // oled_write_P(qmk_logo, false); } static void render_logo(void) { - // @todo - should we split this into a seperate file? kb16 has a good example. static const char PROGMEM sofle_pico_logo[] = {// 'sofle-pico-vector-logo-v5 OLED chopped', 64x128px 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xe0, 0xf0, 0xf0, 0xf0, 0x70, 0xf0, 0xf0, 0xe0, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf0, 0xf8, 0xfc, 0x3c, 0x3c, 0x3c, 0x7c, 0xf8, 0xf8, 0xf0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x1f, 0x3f, 0x3f, 0x3f, 0x7c, 0x78, 0xf8, 0xf8, 0xf0, 0xe0, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xfc, 0x3c, 0x1c, 0x1e, 0x1e, 0x3c, 0xfc, 0xf8, 0xf0, 0xc0, 0x00, 0x1c, 0x1c, 0xff, 0xff, 0xff, 0xff, 0x1c, 0x1c, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xfc, 0xfc, 0xce, 0xce, 0xce, 0xdc, 0xfc, 0xfc, 0xf8, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x1e, 0x1e, 0x1e, 0x3c, 0x3c, 0x3c, 0x3e, 0x1f, 0x1f, 0x0f, 0x07, 0x01, 0x00, 0x01, 0x07, 0x0f, 0x1f, 0x1e, 0x3c, 0x3c, 0x3c, 0x1e, 0x1f, 0x0f, 0x07, 0x03, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x01, 0x07, 0x0f, 0x1f, 0x1f, 0x3c, 0x38, 0x38, 0x3c, 0x1c, 0x1c, 0x0c, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0x06, 0x06, 0x06, 0x0e, 0x9e, 0xfc, 0xf8, 0x00, 0x00, 0x8e, 0x8e, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x07, 0x07, 0x07, 0x07, 0x03, 0x03, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x7c, 0xfe, 0xff, 0x83, 0x01, 0x01, 0x01, 0x83, 0x83, 0x00, 0x00, 0x7e, 0xff, 0xc7, 0x83, 0x01, 0x01, 0x01, @@ -237,7 +235,7 @@ static void render_logo(void) { } static void render_status(void) { - oled_write_P(PSTR("Sofle Pico\nv3.04\n~~~~~~~~~\n"), false); + oled_write_ln_P(PSTR("Sofle Pico\nv3.5.4\n~~~~~~~~~\n"), false); uint8_t n = get_current_wpm(); char wpm_counter[4]; wpm_counter[3] = '\0'; @@ -247,21 +245,23 @@ static void render_status(void) { oled_write_P(PSTR("WPM:"), false); oled_write(wpm_counter, false); led_t led_state = host_keyboard_led_state(); + oled_write_ln_P(PSTR(""), false); oled_write_P(PSTR("\nCaps: "), false); oled_write_P(led_state.caps_lock ? PSTR("on ") : PSTR("off"), false); - oled_write_P(PSTR("\n"), false); + oled_write_ln_P(PSTR("\n"), false); + oled_write_ln_P(PSTR("LAYER: "), false); switch (get_highest_layer(layer_state)) { case _QWERTY: - oled_write_P(PSTR("Qwerty Base"), false); + oled_write_P(PSTR("Qwerty\n "), false); break; case _LOWER: oled_write_P(PSTR("Numbers &\nSymbols"), false); break; case _RAISE: - oled_write_P(PSTR("Navigation"), false); + oled_write_P(PSTR("Navigation\n "), false); break; default: - oled_write_P(PSTR("Unknown"), false); + oled_write_P(PSTR("Undefined\n "), false); break; } } From 6d8cfe813389bf4bd5925e4f51192358fabe8368 Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Sun, 24 Mar 2024 11:55:40 -0700 Subject: [PATCH 52/87] Cleans up comments to use 'C' style --- keyboards/sofle_pico/config.h | 26 +++++----- keyboards/sofle_pico/keymaps/default/keymap.c | 52 +++++++++---------- .../keymaps/default_jellytitan/keymap.c | 52 +++++++++---------- keyboards/sofle_pico/keymaps/via/keymap.c | 52 +++++++++---------- keyboards/sofle_pico/post_config.h | 6 +-- 5 files changed, 95 insertions(+), 93 deletions(-) diff --git a/keyboards/sofle_pico/config.h b/keyboards/sofle_pico/config.h index db46b5d316e..fe5825e9498 100644 --- a/keyboards/sofle_pico/config.h +++ b/keyboards/sofle_pico/config.h @@ -3,14 +3,16 @@ #pragma once -// Split Keyboard Stuff -#define EE_HANDS // Sets the keyboard’s handedness using EEPROM -#define SERIAL_USART_FULL_DUPLEX // Use full duplex communication (TRRS) -#define SERIAL_USART_TX_PIN GP16 // USART TX pin -#define SERIAL_USART_RX_PIN GP17 // USART RX pin -#define SERIAL_USART_PIN_SWAP // Swap TX and RX pins if keyboard is master halve. (Only available on some MCUs) +/* Split Keyboard Stuff */ +#define EE_HANDS +/* Use full duplex communication (TRRS) */ +#define SERIAL_USART_FULL_DUPLEX +#define SERIAL_USART_TX_PIN GP16 +#define SERIAL_USART_RX_PIN GP17 +/* Swap TX and RX pins if keyboard is master half. (Only available on some MCUs) */ +#define SERIAL_USART_PIN_SWAP -// I2C for OLEDs +/* I2C for OLEDs */ #define I2C_DRIVER I2CD1 #define I2C1_SDA_PIN GP6 #define I2C1_SCL_PIN GP7 @@ -20,7 +22,7 @@ # define OLED_TIMEOUT 30000 #endif -/* - Encoder settings - */ +/* Encoder settings */ #ifdef ENCODER_MAP_ENABLE # define ENCODER_MAP_KEY_DELAY 10 #endif @@ -38,15 +40,15 @@ #define POINTING_DEVICE_TASK_THROTTLE_MS 8 #ifdef RGB_MATRIX_ENABLE -// Decrease decay of heatmap rgb effect +/* Decrease decay of heatmap rgb effect */ # define RGB_MATRIX_TYPING_HEATMAP_DECREASE_DELAY_MS 50 -// If you're setting colors per key, this is required. +/* If you're setting colors per key, this is required */ # define SPLIT_LAYER_STATE_ENABLE -// Turns off RGB effects when there is no longer a USB connection +/* Turns off RGB effects when there is no longer a USB connection */ # define RGB_DISABLE_WHEN_USB_SUSPENDED #endif -// Allows for more than the default 4 layers in VIA. +/* Allows for more than the default 4 layers in VIA. */ #ifndef DYNAMIC_KEYMAP_LAYER_COUNT # define DYNAMIC_KEYMAP_LAYER_COUNT 5 #endif diff --git a/keyboards/sofle_pico/keymaps/default/keymap.c b/keyboards/sofle_pico/keymaps/default/keymap.c index fe5302451d1..3107a025060 100644 --- a/keyboards/sofle_pico/keymaps/default/keymap.c +++ b/keyboards/sofle_pico/keymaps/default/keymap.c @@ -128,9 +128,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // clang-format on }; -// Default timeout for displaying logo on boot. +/* Default timeout for displaying logo on boot. */ #ifndef OLED_LOGO_TIMEOUT -// 10 second timeout. +/* 10 second timeout. */ # define OLED_LOGO_TIMEOUT 10000 #endif @@ -138,7 +138,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { uint16_t startup_timer; static void render_status(void) { - // Print current mode + /* Print current mode */ oled_write_P(PSTR("\n\n"), false); oled_write_ln_P(PSTR("MODE"), false); oled_write_ln_P(PSTR(""), false); @@ -159,7 +159,7 @@ static void render_status(void) { oled_write_P(PSTR("Undefined"), false); } oled_write_P(PSTR("\n\n"), false); - // Print current layer + /* Print current layer */ oled_write_ln_P(PSTR("LAYER"), false); switch (get_highest_layer(layer_state)) { case _COLEMAK: @@ -190,36 +190,36 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) { static void render_qmk_logo(void) { static const char PROGMEM qmk_logo[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xfc, 0xfe, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xfe, 0xfc, 0xf8, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0x71, 0x71, 0x71, 0x71, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x71, 0x71, 0x71, 0x71, 0x71, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0xf8, 0xf0, 0xf1, 0xf1, 0xe3, 0xe3, 0xe3, 0x00, 0x00, 0x00, 0xe3, 0xe3, 0xf3, 0xf1, 0xf1, - 0xf0, 0xf8, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x07, 0x07, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xfc, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x07, 0x07, 0x07, 0x07, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0x70, 0x30, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x38, 0xf0, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x78, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf8, 0x38, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xf0, 0x38, 0x18, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xe3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x03, 0x0f, 0x7e, 0xf8, 0xc0, 0x00, 0x80, 0xe0, 0xfc, 0x1f, 0x07, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x0c, 0x1e, 0x7f, 0xf3, 0xc1, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0f, 0x0e, 0x0c, 0x1c, 0x1c, - 0x1c, 0x0c, 0x0c, 0x0e, 0x0f, 0x1f, 0x38, 0x30, 0x70, 0x20, 0x00, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, 0x0f, 0x0f, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x0f, 0x0c, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x7c, 0xfe, 0xfe, 0xfc, 0xfc, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xfc, 0xfe, 0xfe, 0xfe, 0x3c, 0x00, 0x00, 0x00, - 0x00, 0xe0, 0xf8, 0xfc, 0xfc, 0xfc, 0xf8, 0x10, 0x00, 0x00, 0x00, 0xc0, 0xf8, 0xfc, 0xfe, 0xfe, 0xfe, 0xfe, 0xfc, 0xf8, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf0, 0xfc, 0xff, 0xff, 0xff, 0x7f, 0x0f, 0x01, 0x00, 0x00, 0xe0, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x03, 0x00, 0x00, 0xc0, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x07, 0x03, 0x1f, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0xc0, 0xf0, 0xfe, 0xff, 0xff, 0xff, 0x3f, 0x0f, 0x01, 0x00, 0x00, 0xe0, 0xf8, 0xff, 0xff, 0xff, 0x7f, 0x1f, 0x03, 0x00, 0x00, 0xc0, 0xf8, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, - 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, 0x3f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x3f, 0x0f, 0x01, 0x00, 0x00, 0x00, 0x38, 0x7f, 0x7f, 0x7f, 0x3f, 0x1f, 0x03, 0x00, 0x00, 0x00, 0x18, 0x7e, 0x7f, 0x7f, 0x7f, 0x1f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1f, 0x3f, 0x7f, 0x7f, 0x7f, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x1e, 0x3e, 0x1c, 0x08, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x3e, 0x3e, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xfc, 0xfe, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xfe, 0xfc, 0xf8, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0x71, 0x71, 0x71, 0x71, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x71, 0x71, 0x71, 0x71, 0x71, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0xf8, 0xf0, 0xf1, 0xf1, 0xe3, 0xe3, 0xe3, 0x00, 0x00, 0x00, 0xe3, 0xe3, 0xf3, 0xf1, 0xf1, + 0xf0, 0xf8, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x07, 0x07, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xfc, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x07, 0x07, 0x07, 0x07, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0x70, 0x30, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x38, 0xf0, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x78, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf8, 0x38, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xf0, 0x38, 0x18, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xe3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x03, 0x0f, 0x7e, 0xf8, 0xc0, 0x00, 0x80, 0xe0, 0xfc, 0x1f, 0x07, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x0c, 0x1e, 0x7f, 0xf3, 0xc1, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0f, 0x0e, 0x0c, 0x1c, 0x1c, + 0x1c, 0x0c, 0x0c, 0x0e, 0x0f, 0x1f, 0x38, 0x30, 0x70, 0x20, 0x00, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, 0x0f, 0x0f, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x0f, 0x0c, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x7c, 0xfe, 0xfe, 0xfc, 0xfc, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xfc, 0xfe, 0xfe, 0xfe, 0x3c, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0xf8, 0xfc, 0xfc, 0xfc, 0xf8, 0x10, 0x00, 0x00, 0x00, 0xc0, 0xf8, 0xfc, 0xfe, 0xfe, 0xfe, 0xfe, 0xfc, 0xf8, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf0, 0xfc, 0xff, 0xff, 0xff, 0x7f, 0x0f, 0x01, 0x00, 0x00, 0xe0, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x03, 0x00, 0x00, 0xc0, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x07, 0x03, 0x1f, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0xc0, 0xf0, 0xfe, 0xff, 0xff, 0xff, 0x3f, 0x0f, 0x01, 0x00, 0x00, 0xe0, 0xf8, 0xff, 0xff, 0xff, 0x7f, 0x1f, 0x03, 0x00, 0x00, 0xc0, 0xf8, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, + 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, 0x3f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x3f, 0x0f, 0x01, 0x00, 0x00, 0x00, 0x38, 0x7f, 0x7f, 0x7f, 0x3f, 0x1f, 0x03, 0x00, 0x00, 0x00, 0x18, 0x7e, 0x7f, 0x7f, 0x7f, 0x1f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1f, 0x3f, 0x7f, 0x7f, 0x7f, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x1e, 0x3e, 0x1c, 0x08, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x3e, 0x3e, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; oled_write_raw_P(qmk_logo, sizeof(qmk_logo)); } static void render_logo(void) { static const char PROGMEM sofle_pico_logo[] = { - 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xe0, 0xf0, 0xf0, 0xf0, 0x70, 0xf0, 0xf0, 0xe0, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf0, 0xf8, 0xfc, 0x3c, 0x3c, 0x3c, 0x7c, 0xf8, 0xf8, 0xf0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x1f, 0x3f, 0x3f, 0x3f, 0x7c, 0x78, 0xf8, 0xf8, 0xf0, 0xe0, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xfc, 0x3c, 0x1c, 0x1e, 0x1e, 0x3c, 0xfc, 0xf8, 0xf0, 0xc0, 0x00, 0x1c, 0x1c, 0xff, 0xff, 0xff, 0xff, 0x1c, 0x1c, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xfc, 0xfc, 0xce, 0xce, 0xce, 0xdc, 0xfc, 0xfc, 0xf8, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x1e, 0x1e, 0x1e, 0x3c, 0x3c, 0x3c, 0x3e, 0x1f, 0x1f, 0x0f, 0x07, 0x01, 0x00, 0x01, 0x07, - 0x0f, 0x1f, 0x1e, 0x3c, 0x3c, 0x3c, 0x1e, 0x1f, 0x0f, 0x07, 0x03, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x01, 0x07, 0x0f, 0x1f, 0x1f, 0x3c, 0x38, 0x38, 0x3c, 0x1c, 0x1c, 0x0c, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0x06, 0x06, 0x06, 0x0e, 0x9e, 0xfc, 0xf8, 0x00, 0x00, 0x8e, 0x8e, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x07, 0x07, 0x07, 0x07, 0x03, 0x03, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x7c, 0xfe, 0xff, 0x83, 0x01, 0x01, 0x01, 0x83, 0x83, 0x00, 0x00, 0x7e, 0xff, 0xc7, 0x83, 0x01, 0x01, 0x01, - 0x83, 0xff, 0xff, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc3, 0xe3, 0xe0, 0xe0, 0xe0, 0xf0, 0x70, 0x70, 0x70, 0x70, 0x30, 0x33, 0x73, 0xe0, 0x60, 0xe0, 0xe0, 0xc0, 0xc1, 0x83, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x80, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x70, 0x30, 0x70, 0x70, 0x70, 0x70, 0x70, 0xf0, 0xe0, 0xe0, 0xe0, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1f, 0xff, 0xf8, 0xd0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x20, 0x20, 0x40, 0xc0, 0x80, 0x00, 0x01, 0x87, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0xff, 0xff, 0x03, 0x01, 0x00, 0x80, 0xc0, 0x40, 0x20, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, - 0xf0, 0xf8, 0x7f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0f, 0x1c, 0x1c, 0x38, 0x78, 0x60, 0x60, 0x60, 0x60, 0x60, 0x70, 0x38, 0x39, 0xdf, 0xef, 0xf7, 0x7b, 0x39, 0x1c, 0x1c, 0x0e, 0x0e, 0x06, 0x06, 0x06, 0x06, 0x06, 0x0e, 0x0e, 0x1e, 0x1c, 0x3c, 0x79, 0xfb, 0xf7, 0xef, 0x9f, 0x38, 0x30, 0x70, 0x60, 0x60, 0x60, 0x60, 0x70, 0x38, 0x3c, 0x1c, 0x0f, 0x0f, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xf8, 0xfc, 0x7e, 0x7f, 0xff, 0xff, 0xe3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc1, 0xff, 0x7f, 0x7f, 0x3f, 0x7c, 0xf8, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x7f, 0xff, 0x81, 0x00, 0x00, 0x00, 0x00, 0x01, 0xcf, 0xff, 0xfe, 0x7c, 0x78, 0x78, 0x38, 0x30, 0x30, 0x30, 0x30, 0x30, 0x38, 0x78, 0x78, 0x7c, 0xfe, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0f, 0x0e, 0x1e, 0x3f, 0x7f, 0xf1, 0xe0, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xc0, 0xe1, 0xf3, 0x7f, 0x3f, 0x1f, 0x0f, 0x07, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x03, 0x03, 0x03, - 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xe0, 0xf0, 0xf0, 0xf0, 0x70, 0xf0, 0xf0, 0xe0, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf0, 0xf8, 0xfc, 0x3c, 0x3c, 0x3c, 0x7c, 0xf8, 0xf8, 0xf0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x1f, 0x3f, 0x3f, 0x3f, 0x7c, 0x78, 0xf8, 0xf8, 0xf0, 0xe0, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xfc, 0x3c, 0x1c, 0x1e, 0x1e, 0x3c, 0xfc, 0xf8, 0xf0, 0xc0, 0x00, 0x1c, 0x1c, 0xff, 0xff, 0xff, 0xff, 0x1c, 0x1c, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xfc, 0xfc, 0xce, 0xce, 0xce, 0xdc, 0xfc, 0xfc, 0xf8, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x1e, 0x1e, 0x1e, 0x3c, 0x3c, 0x3c, 0x3e, 0x1f, 0x1f, 0x0f, 0x07, 0x01, 0x00, 0x01, 0x07, + 0x0f, 0x1f, 0x1e, 0x3c, 0x3c, 0x3c, 0x1e, 0x1f, 0x0f, 0x07, 0x03, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x01, 0x07, 0x0f, 0x1f, 0x1f, 0x3c, 0x38, 0x38, 0x3c, 0x1c, 0x1c, 0x0c, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0x06, 0x06, 0x06, 0x0e, 0x9e, 0xfc, 0xf8, 0x00, 0x00, 0x8e, 0x8e, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x07, 0x07, 0x07, 0x07, 0x03, 0x03, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x7c, 0xfe, 0xff, 0x83, 0x01, 0x01, 0x01, 0x83, 0x83, 0x00, 0x00, 0x7e, 0xff, 0xc7, 0x83, 0x01, 0x01, 0x01, + 0x83, 0xff, 0xff, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc3, 0xe3, 0xe0, 0xe0, 0xe0, 0xf0, 0x70, 0x70, 0x70, 0x70, 0x30, 0x33, 0x73, 0xe0, 0x60, 0xe0, 0xe0, 0xc0, 0xc1, 0x83, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x80, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x70, 0x30, 0x70, 0x70, 0x70, 0x70, 0x70, 0xf0, 0xe0, 0xe0, 0xe0, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1f, 0xff, 0xf8, 0xd0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x20, 0x20, 0x40, 0xc0, 0x80, 0x00, 0x01, 0x87, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0xff, 0xff, 0x03, 0x01, 0x00, 0x80, 0xc0, 0x40, 0x20, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0xf0, 0xf8, 0x7f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0f, 0x1c, 0x1c, 0x38, 0x78, 0x60, 0x60, 0x60, 0x60, 0x60, 0x70, 0x38, 0x39, 0xdf, 0xef, 0xf7, 0x7b, 0x39, 0x1c, 0x1c, 0x0e, 0x0e, 0x06, 0x06, 0x06, 0x06, 0x06, 0x0e, 0x0e, 0x1e, 0x1c, 0x3c, 0x79, 0xfb, 0xf7, 0xef, 0x9f, 0x38, 0x30, 0x70, 0x60, 0x60, 0x60, 0x60, 0x70, 0x38, 0x3c, 0x1c, 0x0f, 0x0f, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xf8, 0xfc, 0x7e, 0x7f, 0xff, 0xff, 0xe3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc1, 0xff, 0x7f, 0x7f, 0x3f, 0x7c, 0xf8, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7f, 0xff, 0x81, 0x00, 0x00, 0x00, 0x00, 0x01, 0xcf, 0xff, 0xfe, 0x7c, 0x78, 0x78, 0x38, 0x30, 0x30, 0x30, 0x30, 0x30, 0x38, 0x78, 0x78, 0x7c, 0xfe, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0f, 0x0e, 0x1e, 0x3f, 0x7f, 0xf1, 0xe0, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xc0, 0xe1, 0xf3, 0x7f, 0x3f, 0x1f, 0x0f, 0x07, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; oled_write_raw_P(sofle_pico_logo, sizeof(sofle_pico_logo)); } bool oled_task_user(void) { static bool finished_logo = false; if ((timer_elapsed(startup_timer) < OLED_LOGO_TIMEOUT) && !finished_logo) { - // Display the logo for 5 seconds on boot. + /* Display the logo for 5 seconds on boot. */ if (is_keyboard_master()) { render_logo(); - // Adding text below the partial screen logo requires oled_set_cursor. - // There are 10 chars per line. Subsequent oled_set_cursor simplifies line wraps. + /* Adding text below the partial screen logo requires oled_set_cursor. */ + /* There are 10 chars per line. Subsequent oled_set_cursor simplifies line wraps. */ oled_set_cursor(0, 12); oled_write_ln_P(PSTR("v3.5.4"), false); oled_set_cursor(0, 13); @@ -232,14 +232,14 @@ bool oled_task_user(void) { render_qmk_logo(); } } else { - // Display the current keyboard state. + /* Display the current keyboard state. */ if (!finished_logo) { finished_logo = true; - // Clears the OLED. + /* Clears the OLED. */ oled_clear(); } if (is_keyboard_master()) { - // Renders the current keyboard state (layer, lock, caps, scroll, etc) + /* Renders the current keyboard state (layer, lock, caps, scroll, etc) */ render_status(); } else { render_logo(); @@ -306,7 +306,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { case KC_LSTRT: if (record->event.pressed) { if (keymap_config.swap_lctl_lgui) { - // CMD-arrow on Mac, but we have CTL and GUI swapped + /* CMD-arrow on Mac, but we have CTL and GUI swapped */ register_mods(mod_config(MOD_LCTL)); register_code(KC_LEFT); } else { @@ -324,7 +324,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { case KC_LEND: if (record->event.pressed) { if (keymap_config.swap_lctl_lgui) { - // CMD-arrow on Mac, but we have CTL and GUI swapped + /* CMD-arrow on Mac, but we have CTL and GUI swapped */ register_mods(mod_config(MOD_LCTL)); register_code(KC_RIGHT); } else { diff --git a/keyboards/sofle_pico/keymaps/default_jellytitan/keymap.c b/keyboards/sofle_pico/keymaps/default_jellytitan/keymap.c index f5bcdb643cb..2fea570d083 100644 --- a/keyboards/sofle_pico/keymaps/default_jellytitan/keymap.c +++ b/keyboards/sofle_pico/keymaps/default_jellytitan/keymap.c @@ -27,9 +27,7 @@ enum custom_keycodes { bool is_cmd_tab_active = false; uint16_t cmd_tab_timer = 0; -/** - * Tap Dance declarations - */ +/* Tap Dance declarations */ enum tapdances { _TD_FIVE_ENTER, }; @@ -49,6 +47,7 @@ tap_dance_action_t tap_dance_actions[] = { /** * Keymap. + * * The rotary encoders are programmed manually below because the configurator does not support them yet. */ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -196,9 +195,9 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [_RAISE] = {ENCODER_CCW_CW(C(S(KC_LEFT)), C(S(KC_RGHT))), ENCODER_CCW_CW(G(KC_LEFT), G(KC_RGHT))}}; #endif -// Default timeout for displaying logo on boot. +/* Default timeout for displaying logo on boot. */ #ifndef OLED_LOGO_TIMEOUT -// 10 second timeout. +/* 10 second timeout. */ # define OLED_LOGO_TIMEOUT 10000 #endif @@ -212,25 +211,25 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) { } static void render_qmk_logo(void) { - static const char PROGMEM qmk_logo[] = {// 'qmk_via_OLED_128x64', 64x128px - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xfc, 0xfe, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xfe, 0xfc, 0xf8, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0x71, 0x71, 0x71, 0x71, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x71, 0x71, 0x71, 0x71, 0x71, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0xf8, 0xf0, 0xf1, 0xf1, 0xe3, 0xe3, 0xe3, 0x00, 0x00, 0x00, 0xe3, 0xe3, 0xf3, 0xf1, 0xf1, - 0xf0, 0xf8, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x07, 0x07, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xfc, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x07, 0x07, 0x07, 0x07, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0x70, 0x30, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x38, 0xf0, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x78, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf8, 0x38, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xf0, 0x38, 0x18, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xe3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x03, 0x0f, 0x7e, 0xf8, 0xc0, 0x00, 0x80, 0xe0, 0xfc, 0x1f, 0x07, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x0c, 0x1e, 0x7f, 0xf3, 0xc1, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0f, 0x0e, 0x0c, 0x1c, 0x1c, - 0x1c, 0x0c, 0x0c, 0x0e, 0x0f, 0x1f, 0x38, 0x30, 0x70, 0x20, 0x00, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, 0x0f, 0x0f, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x0f, 0x0c, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x7c, 0xfe, 0xfe, 0xfc, 0xfc, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xfc, 0xfe, 0xfe, 0xfe, 0x3c, 0x00, 0x00, 0x00, - 0x00, 0xe0, 0xf8, 0xfc, 0xfc, 0xfc, 0xf8, 0x10, 0x00, 0x00, 0x00, 0xc0, 0xf8, 0xfc, 0xfe, 0xfe, 0xfe, 0xfe, 0xfc, 0xf8, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf0, 0xfc, 0xff, 0xff, 0xff, 0x7f, 0x0f, 0x01, 0x00, 0x00, 0xe0, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x03, 0x00, 0x00, 0xc0, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x07, 0x03, 0x1f, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0xc0, 0xf0, 0xfe, 0xff, 0xff, 0xff, 0x3f, 0x0f, 0x01, 0x00, 0x00, 0xe0, 0xf8, 0xff, 0xff, 0xff, 0x7f, 0x1f, 0x03, 0x00, 0x00, 0xc0, 0xf8, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, - 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, 0x3f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x3f, 0x0f, 0x01, 0x00, 0x00, 0x00, 0x38, 0x7f, 0x7f, 0x7f, 0x3f, 0x1f, 0x03, 0x00, 0x00, 0x00, 0x18, 0x7e, 0x7f, 0x7f, 0x7f, 0x1f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1f, 0x3f, 0x7f, 0x7f, 0x7f, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x1e, 0x3e, 0x1c, 0x08, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x3e, 0x3e, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + static const char PROGMEM qmk_logo[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xfc, 0xfe, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xfe, 0xfc, 0xf8, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0x71, 0x71, 0x71, 0x71, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x71, 0x71, 0x71, 0x71, 0x71, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0xf8, 0xf0, 0xf1, 0xf1, 0xe3, 0xe3, 0xe3, 0x00, 0x00, 0x00, 0xe3, 0xe3, 0xf3, 0xf1, 0xf1, + 0xf0, 0xf8, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x07, 0x07, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xfc, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x07, 0x07, 0x07, 0x07, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0x70, 0x30, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x38, 0xf0, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x78, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf8, 0x38, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xf0, 0x38, 0x18, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xe3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x03, 0x0f, 0x7e, 0xf8, 0xc0, 0x00, 0x80, 0xe0, 0xfc, 0x1f, 0x07, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x0c, 0x1e, 0x7f, 0xf3, 0xc1, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0f, 0x0e, 0x0c, 0x1c, 0x1c, + 0x1c, 0x0c, 0x0c, 0x0e, 0x0f, 0x1f, 0x38, 0x30, 0x70, 0x20, 0x00, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, 0x0f, 0x0f, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x0f, 0x0c, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x7c, 0xfe, 0xfe, 0xfc, 0xfc, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xfc, 0xfe, 0xfe, 0xfe, 0x3c, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0xf8, 0xfc, 0xfc, 0xfc, 0xf8, 0x10, 0x00, 0x00, 0x00, 0xc0, 0xf8, 0xfc, 0xfe, 0xfe, 0xfe, 0xfe, 0xfc, 0xf8, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf0, 0xfc, 0xff, 0xff, 0xff, 0x7f, 0x0f, 0x01, 0x00, 0x00, 0xe0, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x03, 0x00, 0x00, 0xc0, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x07, 0x03, 0x1f, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0xc0, 0xf0, 0xfe, 0xff, 0xff, 0xff, 0x3f, 0x0f, 0x01, 0x00, 0x00, 0xe0, 0xf8, 0xff, 0xff, 0xff, 0x7f, 0x1f, 0x03, 0x00, 0x00, 0xc0, 0xf8, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, + 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, 0x3f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x3f, 0x0f, 0x01, 0x00, 0x00, 0x00, 0x38, 0x7f, 0x7f, 0x7f, 0x3f, 0x1f, 0x03, 0x00, 0x00, 0x00, 0x18, 0x7e, 0x7f, 0x7f, 0x7f, 0x1f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1f, 0x3f, 0x7f, 0x7f, 0x7f, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x1e, 0x3e, 0x1c, 0x08, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x3e, 0x3e, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; oled_write_raw_P(qmk_logo, sizeof(qmk_logo)); } static void render_logo(void) { - static const char PROGMEM sofle_pico_logo[] = {// 'sofle-pico-vector-logo-v5 OLED chopped', 64x128px - 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xe0, 0xf0, 0xf0, 0xf0, 0x70, 0xf0, 0xf0, 0xe0, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf0, 0xf8, 0xfc, 0x3c, 0x3c, 0x3c, 0x7c, 0xf8, 0xf8, 0xf0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x1f, 0x3f, 0x3f, 0x3f, 0x7c, 0x78, 0xf8, 0xf8, 0xf0, 0xe0, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xfc, 0x3c, 0x1c, 0x1e, 0x1e, 0x3c, 0xfc, 0xf8, 0xf0, 0xc0, 0x00, 0x1c, 0x1c, 0xff, 0xff, 0xff, 0xff, 0x1c, 0x1c, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xfc, 0xfc, 0xce, 0xce, 0xce, 0xdc, 0xfc, 0xfc, 0xf8, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x1e, 0x1e, 0x1e, 0x3c, 0x3c, 0x3c, 0x3e, 0x1f, 0x1f, 0x0f, 0x07, 0x01, 0x00, 0x01, 0x07, - 0x0f, 0x1f, 0x1e, 0x3c, 0x3c, 0x3c, 0x1e, 0x1f, 0x0f, 0x07, 0x03, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x01, 0x07, 0x0f, 0x1f, 0x1f, 0x3c, 0x38, 0x38, 0x3c, 0x1c, 0x1c, 0x0c, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0x06, 0x06, 0x06, 0x0e, 0x9e, 0xfc, 0xf8, 0x00, 0x00, 0x8e, 0x8e, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x07, 0x07, 0x07, 0x07, 0x03, 0x03, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x7c, 0xfe, 0xff, 0x83, 0x01, 0x01, 0x01, 0x83, 0x83, 0x00, 0x00, 0x7e, 0xff, 0xc7, 0x83, 0x01, 0x01, 0x01, - 0x83, 0xff, 0xff, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc3, 0xe3, 0xe0, 0xe0, 0xe0, 0xf0, 0x70, 0x70, 0x70, 0x70, 0x30, 0x33, 0x73, 0xe0, 0x60, 0xe0, 0xe0, 0xc0, 0xc1, 0x83, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x80, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x70, 0x30, 0x70, 0x70, 0x70, 0x70, 0x70, 0xf0, 0xe0, 0xe0, 0xe0, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1f, 0xff, 0xf8, 0xd0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x20, 0x20, 0x40, 0xc0, 0x80, 0x00, 0x01, 0x87, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0xff, 0xff, 0x03, 0x01, 0x00, 0x80, 0xc0, 0x40, 0x20, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, - 0xf0, 0xf8, 0x7f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0f, 0x1c, 0x1c, 0x38, 0x78, 0x60, 0x60, 0x60, 0x60, 0x60, 0x70, 0x38, 0x39, 0xdf, 0xef, 0xf7, 0x7b, 0x39, 0x1c, 0x1c, 0x0e, 0x0e, 0x06, 0x06, 0x06, 0x06, 0x06, 0x0e, 0x0e, 0x1e, 0x1c, 0x3c, 0x79, 0xfb, 0xf7, 0xef, 0x9f, 0x38, 0x30, 0x70, 0x60, 0x60, 0x60, 0x60, 0x70, 0x38, 0x3c, 0x1c, 0x0f, 0x0f, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xf8, 0xfc, 0x7e, 0x7f, 0xff, 0xff, 0xe3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc1, 0xff, 0x7f, 0x7f, 0x3f, 0x7c, 0xf8, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x7f, 0xff, 0x81, 0x00, 0x00, 0x00, 0x00, 0x01, 0xcf, 0xff, 0xfe, 0x7c, 0x78, 0x78, 0x38, 0x30, 0x30, 0x30, 0x30, 0x30, 0x38, 0x78, 0x78, 0x7c, 0xfe, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0f, 0x0e, 0x1e, 0x3f, 0x7f, 0xf1, 0xe0, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xc0, 0xe1, 0xf3, 0x7f, 0x3f, 0x1f, 0x0f, 0x07, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x03, 0x03, 0x03, - 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + static const char PROGMEM sofle_pico_logo[] = { + 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xe0, 0xf0, 0xf0, 0xf0, 0x70, 0xf0, 0xf0, 0xe0, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf0, 0xf8, 0xfc, 0x3c, 0x3c, 0x3c, 0x7c, 0xf8, 0xf8, 0xf0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x1f, 0x3f, 0x3f, 0x3f, 0x7c, 0x78, 0xf8, 0xf8, 0xf0, 0xe0, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xfc, 0x3c, 0x1c, 0x1e, 0x1e, 0x3c, 0xfc, 0xf8, 0xf0, 0xc0, 0x00, 0x1c, 0x1c, 0xff, 0xff, 0xff, 0xff, 0x1c, 0x1c, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xfc, 0xfc, 0xce, 0xce, 0xce, 0xdc, 0xfc, 0xfc, 0xf8, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x1e, 0x1e, 0x1e, 0x3c, 0x3c, 0x3c, 0x3e, 0x1f, 0x1f, 0x0f, 0x07, 0x01, 0x00, 0x01, 0x07, + 0x0f, 0x1f, 0x1e, 0x3c, 0x3c, 0x3c, 0x1e, 0x1f, 0x0f, 0x07, 0x03, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x01, 0x07, 0x0f, 0x1f, 0x1f, 0x3c, 0x38, 0x38, 0x3c, 0x1c, 0x1c, 0x0c, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0x06, 0x06, 0x06, 0x0e, 0x9e, 0xfc, 0xf8, 0x00, 0x00, 0x8e, 0x8e, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x07, 0x07, 0x07, 0x07, 0x03, 0x03, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x7c, 0xfe, 0xff, 0x83, 0x01, 0x01, 0x01, 0x83, 0x83, 0x00, 0x00, 0x7e, 0xff, 0xc7, 0x83, 0x01, 0x01, 0x01, + 0x83, 0xff, 0xff, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc3, 0xe3, 0xe0, 0xe0, 0xe0, 0xf0, 0x70, 0x70, 0x70, 0x70, 0x30, 0x33, 0x73, 0xe0, 0x60, 0xe0, 0xe0, 0xc0, 0xc1, 0x83, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x80, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x70, 0x30, 0x70, 0x70, 0x70, 0x70, 0x70, 0xf0, 0xe0, 0xe0, 0xe0, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1f, 0xff, 0xf8, 0xd0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x20, 0x20, 0x40, 0xc0, 0x80, 0x00, 0x01, 0x87, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0xff, 0xff, 0x03, 0x01, 0x00, 0x80, 0xc0, 0x40, 0x20, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0xf0, 0xf8, 0x7f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0f, 0x1c, 0x1c, 0x38, 0x78, 0x60, 0x60, 0x60, 0x60, 0x60, 0x70, 0x38, 0x39, 0xdf, 0xef, 0xf7, 0x7b, 0x39, 0x1c, 0x1c, 0x0e, 0x0e, 0x06, 0x06, 0x06, 0x06, 0x06, 0x0e, 0x0e, 0x1e, 0x1c, 0x3c, 0x79, 0xfb, 0xf7, 0xef, 0x9f, 0x38, 0x30, 0x70, 0x60, 0x60, 0x60, 0x60, 0x70, 0x38, 0x3c, 0x1c, 0x0f, 0x0f, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xf8, 0xfc, 0x7e, 0x7f, 0xff, 0xff, 0xe3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc1, 0xff, 0x7f, 0x7f, 0x3f, 0x7c, 0xf8, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7f, 0xff, 0x81, 0x00, 0x00, 0x00, 0x00, 0x01, 0xcf, 0xff, 0xfe, 0x7c, 0x78, 0x78, 0x38, 0x30, 0x30, 0x30, 0x30, 0x30, 0x38, 0x78, 0x78, 0x7c, 0xfe, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0f, 0x0e, 0x1e, 0x3f, 0x7f, 0xf1, 0xe0, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xc0, 0xe1, 0xf3, 0x7f, 0x3f, 0x1f, 0x0f, 0x07, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; oled_write_raw_P(sofle_pico_logo, sizeof(sofle_pico_logo)); } @@ -269,10 +268,10 @@ static void render_status(void) { bool oled_task_user(void) { static bool finished_logo = false; if ((timer_elapsed(startup_timer) < OLED_LOGO_TIMEOUT) && !finished_logo) { - // Display the logo for 5 seconds on boot. + /* Display the logo for 5 seconds on boot. */ if (is_keyboard_master()) { render_logo(); - // 10 Chars per line. Set cursor used to simplify line wraps. + /* 10 Chars per line. Set cursor used to simplify line wraps. */ oled_set_cursor(0, 12); oled_write_P(PSTR("v3.5.4"), false); oled_set_cursor(0, 13); @@ -285,14 +284,15 @@ bool oled_task_user(void) { render_qmk_logo(); } } else { - // Display the current keyboard state. + /* Display the current keyboard state. */ if (!finished_logo) { finished_logo = true; - // Clears the OLED. + /* Clears the OLED. */ oled_clear(); } if (is_keyboard_master()) { - render_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc) + /* Renders the current keyboard state (layer, lock, caps, scroll, etc) */ + render_status(); } else { render_logo(); } diff --git a/keyboards/sofle_pico/keymaps/via/keymap.c b/keyboards/sofle_pico/keymaps/via/keymap.c index fe5302451d1..3107a025060 100644 --- a/keyboards/sofle_pico/keymaps/via/keymap.c +++ b/keyboards/sofle_pico/keymaps/via/keymap.c @@ -128,9 +128,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // clang-format on }; -// Default timeout for displaying logo on boot. +/* Default timeout for displaying logo on boot. */ #ifndef OLED_LOGO_TIMEOUT -// 10 second timeout. +/* 10 second timeout. */ # define OLED_LOGO_TIMEOUT 10000 #endif @@ -138,7 +138,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { uint16_t startup_timer; static void render_status(void) { - // Print current mode + /* Print current mode */ oled_write_P(PSTR("\n\n"), false); oled_write_ln_P(PSTR("MODE"), false); oled_write_ln_P(PSTR(""), false); @@ -159,7 +159,7 @@ static void render_status(void) { oled_write_P(PSTR("Undefined"), false); } oled_write_P(PSTR("\n\n"), false); - // Print current layer + /* Print current layer */ oled_write_ln_P(PSTR("LAYER"), false); switch (get_highest_layer(layer_state)) { case _COLEMAK: @@ -190,36 +190,36 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) { static void render_qmk_logo(void) { static const char PROGMEM qmk_logo[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xfc, 0xfe, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xfe, 0xfc, 0xf8, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0x71, 0x71, 0x71, 0x71, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x71, 0x71, 0x71, 0x71, 0x71, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0xf8, 0xf0, 0xf1, 0xf1, 0xe3, 0xe3, 0xe3, 0x00, 0x00, 0x00, 0xe3, 0xe3, 0xf3, 0xf1, 0xf1, - 0xf0, 0xf8, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x07, 0x07, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xfc, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x07, 0x07, 0x07, 0x07, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0x70, 0x30, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x38, 0xf0, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x78, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf8, 0x38, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xf0, 0x38, 0x18, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xe3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x03, 0x0f, 0x7e, 0xf8, 0xc0, 0x00, 0x80, 0xe0, 0xfc, 0x1f, 0x07, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x0c, 0x1e, 0x7f, 0xf3, 0xc1, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0f, 0x0e, 0x0c, 0x1c, 0x1c, - 0x1c, 0x0c, 0x0c, 0x0e, 0x0f, 0x1f, 0x38, 0x30, 0x70, 0x20, 0x00, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, 0x0f, 0x0f, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x0f, 0x0c, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x7c, 0xfe, 0xfe, 0xfc, 0xfc, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xfc, 0xfe, 0xfe, 0xfe, 0x3c, 0x00, 0x00, 0x00, - 0x00, 0xe0, 0xf8, 0xfc, 0xfc, 0xfc, 0xf8, 0x10, 0x00, 0x00, 0x00, 0xc0, 0xf8, 0xfc, 0xfe, 0xfe, 0xfe, 0xfe, 0xfc, 0xf8, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf0, 0xfc, 0xff, 0xff, 0xff, 0x7f, 0x0f, 0x01, 0x00, 0x00, 0xe0, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x03, 0x00, 0x00, 0xc0, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x07, 0x03, 0x1f, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0xc0, 0xf0, 0xfe, 0xff, 0xff, 0xff, 0x3f, 0x0f, 0x01, 0x00, 0x00, 0xe0, 0xf8, 0xff, 0xff, 0xff, 0x7f, 0x1f, 0x03, 0x00, 0x00, 0xc0, 0xf8, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, - 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, 0x3f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x3f, 0x0f, 0x01, 0x00, 0x00, 0x00, 0x38, 0x7f, 0x7f, 0x7f, 0x3f, 0x1f, 0x03, 0x00, 0x00, 0x00, 0x18, 0x7e, 0x7f, 0x7f, 0x7f, 0x1f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1f, 0x3f, 0x7f, 0x7f, 0x7f, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x1e, 0x3e, 0x1c, 0x08, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x3e, 0x3e, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xfc, 0xfe, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xfe, 0xfc, 0xf8, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0x71, 0x71, 0x71, 0x71, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x71, 0x71, 0x71, 0x71, 0x71, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0xf8, 0xf0, 0xf1, 0xf1, 0xe3, 0xe3, 0xe3, 0x00, 0x00, 0x00, 0xe3, 0xe3, 0xf3, 0xf1, 0xf1, + 0xf0, 0xf8, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x07, 0x07, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xfc, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x07, 0x07, 0x07, 0x07, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0x70, 0x30, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x38, 0xf0, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x78, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf8, 0x38, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xf0, 0x38, 0x18, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xe3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x03, 0x0f, 0x7e, 0xf8, 0xc0, 0x00, 0x80, 0xe0, 0xfc, 0x1f, 0x07, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x0c, 0x1e, 0x7f, 0xf3, 0xc1, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0f, 0x0e, 0x0c, 0x1c, 0x1c, + 0x1c, 0x0c, 0x0c, 0x0e, 0x0f, 0x1f, 0x38, 0x30, 0x70, 0x20, 0x00, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, 0x0f, 0x0f, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x0f, 0x0c, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x7c, 0xfe, 0xfe, 0xfc, 0xfc, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xfc, 0xfe, 0xfe, 0xfe, 0x3c, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0xf8, 0xfc, 0xfc, 0xfc, 0xf8, 0x10, 0x00, 0x00, 0x00, 0xc0, 0xf8, 0xfc, 0xfe, 0xfe, 0xfe, 0xfe, 0xfc, 0xf8, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf0, 0xfc, 0xff, 0xff, 0xff, 0x7f, 0x0f, 0x01, 0x00, 0x00, 0xe0, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x03, 0x00, 0x00, 0xc0, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x07, 0x03, 0x1f, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0xc0, 0xf0, 0xfe, 0xff, 0xff, 0xff, 0x3f, 0x0f, 0x01, 0x00, 0x00, 0xe0, 0xf8, 0xff, 0xff, 0xff, 0x7f, 0x1f, 0x03, 0x00, 0x00, 0xc0, 0xf8, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, + 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, 0x3f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x3f, 0x0f, 0x01, 0x00, 0x00, 0x00, 0x38, 0x7f, 0x7f, 0x7f, 0x3f, 0x1f, 0x03, 0x00, 0x00, 0x00, 0x18, 0x7e, 0x7f, 0x7f, 0x7f, 0x1f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1f, 0x3f, 0x7f, 0x7f, 0x7f, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x1e, 0x3e, 0x1c, 0x08, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x3e, 0x3e, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; oled_write_raw_P(qmk_logo, sizeof(qmk_logo)); } static void render_logo(void) { static const char PROGMEM sofle_pico_logo[] = { - 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xe0, 0xf0, 0xf0, 0xf0, 0x70, 0xf0, 0xf0, 0xe0, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf0, 0xf8, 0xfc, 0x3c, 0x3c, 0x3c, 0x7c, 0xf8, 0xf8, 0xf0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x1f, 0x3f, 0x3f, 0x3f, 0x7c, 0x78, 0xf8, 0xf8, 0xf0, 0xe0, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xfc, 0x3c, 0x1c, 0x1e, 0x1e, 0x3c, 0xfc, 0xf8, 0xf0, 0xc0, 0x00, 0x1c, 0x1c, 0xff, 0xff, 0xff, 0xff, 0x1c, 0x1c, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xfc, 0xfc, 0xce, 0xce, 0xce, 0xdc, 0xfc, 0xfc, 0xf8, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x1e, 0x1e, 0x1e, 0x3c, 0x3c, 0x3c, 0x3e, 0x1f, 0x1f, 0x0f, 0x07, 0x01, 0x00, 0x01, 0x07, - 0x0f, 0x1f, 0x1e, 0x3c, 0x3c, 0x3c, 0x1e, 0x1f, 0x0f, 0x07, 0x03, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x01, 0x07, 0x0f, 0x1f, 0x1f, 0x3c, 0x38, 0x38, 0x3c, 0x1c, 0x1c, 0x0c, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0x06, 0x06, 0x06, 0x0e, 0x9e, 0xfc, 0xf8, 0x00, 0x00, 0x8e, 0x8e, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x07, 0x07, 0x07, 0x07, 0x03, 0x03, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x7c, 0xfe, 0xff, 0x83, 0x01, 0x01, 0x01, 0x83, 0x83, 0x00, 0x00, 0x7e, 0xff, 0xc7, 0x83, 0x01, 0x01, 0x01, - 0x83, 0xff, 0xff, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc3, 0xe3, 0xe0, 0xe0, 0xe0, 0xf0, 0x70, 0x70, 0x70, 0x70, 0x30, 0x33, 0x73, 0xe0, 0x60, 0xe0, 0xe0, 0xc0, 0xc1, 0x83, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x80, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x70, 0x30, 0x70, 0x70, 0x70, 0x70, 0x70, 0xf0, 0xe0, 0xe0, 0xe0, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1f, 0xff, 0xf8, 0xd0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x20, 0x20, 0x40, 0xc0, 0x80, 0x00, 0x01, 0x87, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0xff, 0xff, 0x03, 0x01, 0x00, 0x80, 0xc0, 0x40, 0x20, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, - 0xf0, 0xf8, 0x7f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0f, 0x1c, 0x1c, 0x38, 0x78, 0x60, 0x60, 0x60, 0x60, 0x60, 0x70, 0x38, 0x39, 0xdf, 0xef, 0xf7, 0x7b, 0x39, 0x1c, 0x1c, 0x0e, 0x0e, 0x06, 0x06, 0x06, 0x06, 0x06, 0x0e, 0x0e, 0x1e, 0x1c, 0x3c, 0x79, 0xfb, 0xf7, 0xef, 0x9f, 0x38, 0x30, 0x70, 0x60, 0x60, 0x60, 0x60, 0x70, 0x38, 0x3c, 0x1c, 0x0f, 0x0f, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xf8, 0xfc, 0x7e, 0x7f, 0xff, 0xff, 0xe3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc1, 0xff, 0x7f, 0x7f, 0x3f, 0x7c, 0xf8, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x7f, 0xff, 0x81, 0x00, 0x00, 0x00, 0x00, 0x01, 0xcf, 0xff, 0xfe, 0x7c, 0x78, 0x78, 0x38, 0x30, 0x30, 0x30, 0x30, 0x30, 0x38, 0x78, 0x78, 0x7c, 0xfe, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0f, 0x0e, 0x1e, 0x3f, 0x7f, 0xf1, 0xe0, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xc0, 0xe1, 0xf3, 0x7f, 0x3f, 0x1f, 0x0f, 0x07, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x03, 0x03, 0x03, - 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xe0, 0xf0, 0xf0, 0xf0, 0x70, 0xf0, 0xf0, 0xe0, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf0, 0xf8, 0xfc, 0x3c, 0x3c, 0x3c, 0x7c, 0xf8, 0xf8, 0xf0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x1f, 0x3f, 0x3f, 0x3f, 0x7c, 0x78, 0xf8, 0xf8, 0xf0, 0xe0, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xfc, 0x3c, 0x1c, 0x1e, 0x1e, 0x3c, 0xfc, 0xf8, 0xf0, 0xc0, 0x00, 0x1c, 0x1c, 0xff, 0xff, 0xff, 0xff, 0x1c, 0x1c, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xfc, 0xfc, 0xce, 0xce, 0xce, 0xdc, 0xfc, 0xfc, 0xf8, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x1e, 0x1e, 0x1e, 0x3c, 0x3c, 0x3c, 0x3e, 0x1f, 0x1f, 0x0f, 0x07, 0x01, 0x00, 0x01, 0x07, + 0x0f, 0x1f, 0x1e, 0x3c, 0x3c, 0x3c, 0x1e, 0x1f, 0x0f, 0x07, 0x03, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x01, 0x07, 0x0f, 0x1f, 0x1f, 0x3c, 0x38, 0x38, 0x3c, 0x1c, 0x1c, 0x0c, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0x06, 0x06, 0x06, 0x0e, 0x9e, 0xfc, 0xf8, 0x00, 0x00, 0x8e, 0x8e, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x07, 0x07, 0x07, 0x07, 0x03, 0x03, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x7c, 0xfe, 0xff, 0x83, 0x01, 0x01, 0x01, 0x83, 0x83, 0x00, 0x00, 0x7e, 0xff, 0xc7, 0x83, 0x01, 0x01, 0x01, + 0x83, 0xff, 0xff, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc3, 0xe3, 0xe0, 0xe0, 0xe0, 0xf0, 0x70, 0x70, 0x70, 0x70, 0x30, 0x33, 0x73, 0xe0, 0x60, 0xe0, 0xe0, 0xc0, 0xc1, 0x83, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x80, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x70, 0x30, 0x70, 0x70, 0x70, 0x70, 0x70, 0xf0, 0xe0, 0xe0, 0xe0, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1f, 0xff, 0xf8, 0xd0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x20, 0x20, 0x40, 0xc0, 0x80, 0x00, 0x01, 0x87, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0xff, 0xff, 0x03, 0x01, 0x00, 0x80, 0xc0, 0x40, 0x20, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0xf0, 0xf8, 0x7f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0f, 0x1c, 0x1c, 0x38, 0x78, 0x60, 0x60, 0x60, 0x60, 0x60, 0x70, 0x38, 0x39, 0xdf, 0xef, 0xf7, 0x7b, 0x39, 0x1c, 0x1c, 0x0e, 0x0e, 0x06, 0x06, 0x06, 0x06, 0x06, 0x0e, 0x0e, 0x1e, 0x1c, 0x3c, 0x79, 0xfb, 0xf7, 0xef, 0x9f, 0x38, 0x30, 0x70, 0x60, 0x60, 0x60, 0x60, 0x70, 0x38, 0x3c, 0x1c, 0x0f, 0x0f, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xf8, 0xfc, 0x7e, 0x7f, 0xff, 0xff, 0xe3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc1, 0xff, 0x7f, 0x7f, 0x3f, 0x7c, 0xf8, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7f, 0xff, 0x81, 0x00, 0x00, 0x00, 0x00, 0x01, 0xcf, 0xff, 0xfe, 0x7c, 0x78, 0x78, 0x38, 0x30, 0x30, 0x30, 0x30, 0x30, 0x38, 0x78, 0x78, 0x7c, 0xfe, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0f, 0x0e, 0x1e, 0x3f, 0x7f, 0xf1, 0xe0, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xc0, 0xe1, 0xf3, 0x7f, 0x3f, 0x1f, 0x0f, 0x07, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; oled_write_raw_P(sofle_pico_logo, sizeof(sofle_pico_logo)); } bool oled_task_user(void) { static bool finished_logo = false; if ((timer_elapsed(startup_timer) < OLED_LOGO_TIMEOUT) && !finished_logo) { - // Display the logo for 5 seconds on boot. + /* Display the logo for 5 seconds on boot. */ if (is_keyboard_master()) { render_logo(); - // Adding text below the partial screen logo requires oled_set_cursor. - // There are 10 chars per line. Subsequent oled_set_cursor simplifies line wraps. + /* Adding text below the partial screen logo requires oled_set_cursor. */ + /* There are 10 chars per line. Subsequent oled_set_cursor simplifies line wraps. */ oled_set_cursor(0, 12); oled_write_ln_P(PSTR("v3.5.4"), false); oled_set_cursor(0, 13); @@ -232,14 +232,14 @@ bool oled_task_user(void) { render_qmk_logo(); } } else { - // Display the current keyboard state. + /* Display the current keyboard state. */ if (!finished_logo) { finished_logo = true; - // Clears the OLED. + /* Clears the OLED. */ oled_clear(); } if (is_keyboard_master()) { - // Renders the current keyboard state (layer, lock, caps, scroll, etc) + /* Renders the current keyboard state (layer, lock, caps, scroll, etc) */ render_status(); } else { render_logo(); @@ -306,7 +306,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { case KC_LSTRT: if (record->event.pressed) { if (keymap_config.swap_lctl_lgui) { - // CMD-arrow on Mac, but we have CTL and GUI swapped + /* CMD-arrow on Mac, but we have CTL and GUI swapped */ register_mods(mod_config(MOD_LCTL)); register_code(KC_LEFT); } else { @@ -324,7 +324,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { case KC_LEND: if (record->event.pressed) { if (keymap_config.swap_lctl_lgui) { - // CMD-arrow on Mac, but we have CTL and GUI swapped + /* CMD-arrow on Mac, but we have CTL and GUI swapped */ register_mods(mod_config(MOD_LCTL)); register_code(KC_RIGHT); } else { diff --git a/keyboards/sofle_pico/post_config.h b/keyboards/sofle_pico/post_config.h index 6b541a47e46..a5366734531 100644 --- a/keyboards/sofle_pico/post_config.h +++ b/keyboards/sofle_pico/post_config.h @@ -3,9 +3,9 @@ #pragma once -/* Default Bootmagic lite */ -// Top left for left side is default in core -// Top right for right side +/* Bootmagic lite */ +/* Top left for left side - this is default in core */ +/* Top right for right side */ #ifndef BOOTMAGIC_LITE_ROW_RIGHT # define BOOTMAGIC_LITE_ROW_RIGHT 5 #endif From c0e7f063c96fc0fb8ac463e3bd443da05f230a6c Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Sun, 24 Mar 2024 12:00:59 -0700 Subject: [PATCH 53/87] Fixes long comment styling --- keyboards/sofle_pico/config.h | 2 +- keyboards/sofle_pico/keymaps/default/keymap.c | 3 +-- keyboards/sofle_pico/keymaps/via/keymap.c | 3 +-- keyboards/sofle_pico/post_config.h | 4 ++-- 4 files changed, 5 insertions(+), 7 deletions(-) diff --git a/keyboards/sofle_pico/config.h b/keyboards/sofle_pico/config.h index fe5825e9498..0aa7d7b1d94 100644 --- a/keyboards/sofle_pico/config.h +++ b/keyboards/sofle_pico/config.h @@ -9,7 +9,7 @@ #define SERIAL_USART_FULL_DUPLEX #define SERIAL_USART_TX_PIN GP16 #define SERIAL_USART_RX_PIN GP17 -/* Swap TX and RX pins if keyboard is master half. (Only available on some MCUs) */ +/* Swap TX and RX pins if keyboard is master half. Only available on some MCU's. This _is_ available on the RP2040 */ #define SERIAL_USART_PIN_SWAP /* I2C for OLEDs */ diff --git a/keyboards/sofle_pico/keymaps/default/keymap.c b/keyboards/sofle_pico/keymaps/default/keymap.c index 3107a025060..d19bb74a8a9 100644 --- a/keyboards/sofle_pico/keymaps/default/keymap.c +++ b/keyboards/sofle_pico/keymaps/default/keymap.c @@ -218,8 +218,7 @@ bool oled_task_user(void) { /* Display the logo for 5 seconds on boot. */ if (is_keyboard_master()) { render_logo(); - /* Adding text below the partial screen logo requires oled_set_cursor. */ - /* There are 10 chars per line. Subsequent oled_set_cursor simplifies line wraps. */ + /* Adding text below the partial screen logo requires oled_set_cursor. There are 10 chars per line. Subsequent oled_set_cursor simplifies line wraps. */ oled_set_cursor(0, 12); oled_write_ln_P(PSTR("v3.5.4"), false); oled_set_cursor(0, 13); diff --git a/keyboards/sofle_pico/keymaps/via/keymap.c b/keyboards/sofle_pico/keymaps/via/keymap.c index 3107a025060..d19bb74a8a9 100644 --- a/keyboards/sofle_pico/keymaps/via/keymap.c +++ b/keyboards/sofle_pico/keymaps/via/keymap.c @@ -218,8 +218,7 @@ bool oled_task_user(void) { /* Display the logo for 5 seconds on boot. */ if (is_keyboard_master()) { render_logo(); - /* Adding text below the partial screen logo requires oled_set_cursor. */ - /* There are 10 chars per line. Subsequent oled_set_cursor simplifies line wraps. */ + /* Adding text below the partial screen logo requires oled_set_cursor. There are 10 chars per line. Subsequent oled_set_cursor simplifies line wraps. */ oled_set_cursor(0, 12); oled_write_ln_P(PSTR("v3.5.4"), false); oled_set_cursor(0, 13); diff --git a/keyboards/sofle_pico/post_config.h b/keyboards/sofle_pico/post_config.h index a5366734531..32259924650 100644 --- a/keyboards/sofle_pico/post_config.h +++ b/keyboards/sofle_pico/post_config.h @@ -4,8 +4,8 @@ #pragma once /* Bootmagic lite */ -/* Top left for left side - this is default in core */ -/* Top right for right side */ +/* Left hand uses the top left button - this is default in core */ +/* Right hand uses the top right button */ #ifndef BOOTMAGIC_LITE_ROW_RIGHT # define BOOTMAGIC_LITE_ROW_RIGHT 5 #endif From 6d8b0862cceb1b35b10e6ac479f925335d191a65 Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Sun, 24 Mar 2024 12:22:45 -0700 Subject: [PATCH 54/87] Updates readme to use 'via' keymap as default --- keyboards/sofle_pico/readme.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/keyboards/sofle_pico/readme.md b/keyboards/sofle_pico/readme.md index 53c1dc569a0..7b78da7ef1a 100644 --- a/keyboards/sofle_pico/readme.md +++ b/keyboards/sofle_pico/readme.md @@ -12,20 +12,20 @@ Remember you have to flash both halves of the keyboard for it to work! Make example for this keyboard (after setting up your build environment): - make sofle_pico:default + make sofle_pico:via Flashing example for this keyboard: ```bash # For flashing the left half... -make sofle_pico:default:uf2-split-left +make sofle_pico:via:uf2-split-left # or the qmk cli equivalent: -qmk flash -kb sofle_pico --keymap default -bl uf2-split-left +qmk flash -kb sofle_pico --keymap via -bl uf2-split-left # For flashing the right half... -make sofle_pico:default:uf2-split-right +make sofle_pico:via:uf2-split-right # or the qmk cli equivalent: -qmk flash -kb sofle_pico --keymap default -bl uf2-split-right +qmk flash -kb sofle_pico --keymap via -bl uf2-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). From 3539f6c98329a56645910127778b00b60202a707 Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Sun, 24 Mar 2024 12:27:29 -0700 Subject: [PATCH 55/87] Removed redundant comments --- keyboards/sofle_pico/config.h | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/keyboards/sofle_pico/config.h b/keyboards/sofle_pico/config.h index 0aa7d7b1d94..b615ff46baf 100644 --- a/keyboards/sofle_pico/config.h +++ b/keyboards/sofle_pico/config.h @@ -27,20 +27,16 @@ # define ENCODER_MAP_KEY_DELAY 10 #endif -/* Step size */ +/* Mouse settings */ #define MOUSEKEY_MOVE_DELTA 8 -/* Maximum number of scroll steps per scroll action */ #define MOUSEKEY_WHEEL_MAX_SPEED 42 -/* Time until maximum scroll speed is reached */ #define MOUSEKEY_WHEEL_TIME_TO_MAX 15 - #define POINTING_DEVICE_ROTATION_90 #define SPLIT_POINTING_ENABLE #define POINTING_DEVICE_RIGHT #define POINTING_DEVICE_TASK_THROTTLE_MS 8 #ifdef RGB_MATRIX_ENABLE -/* Decrease decay of heatmap rgb effect */ # define RGB_MATRIX_TYPING_HEATMAP_DECREASE_DELAY_MS 50 /* If you're setting colors per key, this is required */ # define SPLIT_LAYER_STATE_ENABLE From a7c9965d3911f328820ae575af4f578926cb13fd Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Sun, 24 Mar 2024 12:29:16 -0700 Subject: [PATCH 56/87] Restores 'default' keymap in readme to align with qmk template guidelines --- keyboards/sofle_pico/readme.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/keyboards/sofle_pico/readme.md b/keyboards/sofle_pico/readme.md index 7b78da7ef1a..b260351507c 100644 --- a/keyboards/sofle_pico/readme.md +++ b/keyboards/sofle_pico/readme.md @@ -18,14 +18,14 @@ Flashing example for this keyboard: ```bash # For flashing the left half... -make sofle_pico:via:uf2-split-left +make sofle_pico:default:uf2-split-left # or the qmk cli equivalent: -qmk flash -kb sofle_pico --keymap via -bl uf2-split-left +qmk flash -kb sofle_pico --keymap default -bl uf2-split-left # For flashing the right half... -make sofle_pico:via:uf2-split-right +make sofle_pico:default:uf2-split-right # or the qmk cli equivalent: -qmk flash -kb sofle_pico --keymap via -bl uf2-split-right +qmk flash -kb sofle_pico --keymap default -bl uf2-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). From 2cce3b8cb1c922702028be1b77eb0bb54d9d5672 Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Sun, 24 Mar 2024 15:47:42 -0700 Subject: [PATCH 57/87] Fixes lint error 'Invalid keyboard level feature detected - encoder_map' --- keyboards/sofle_pico/info.json | 1 - 1 file changed, 1 deletion(-) diff --git a/keyboards/sofle_pico/info.json b/keyboards/sofle_pico/info.json index e4f001722b1..454d8c21585 100644 --- a/keyboards/sofle_pico/info.json +++ b/keyboards/sofle_pico/info.json @@ -19,7 +19,6 @@ "console": false, "dynamic_tapping_term": true, "encoder": true, - "encoder_map": true, "extrakey": true, "mousekey": true, "nkro": true, From da01f24d05972e255c48f5cc6800dfafdd5e1a4d Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Sun, 24 Mar 2024 15:51:08 -0700 Subject: [PATCH 58/87] Update keyboards/sofle_pico/info.json Co-authored-by: jack <0x6a73@protonmail.com> --- keyboards/sofle_pico/info.json | 3 --- 1 file changed, 3 deletions(-) diff --git a/keyboards/sofle_pico/info.json b/keyboards/sofle_pico/info.json index 454d8c21585..7c553b177d5 100644 --- a/keyboards/sofle_pico/info.json +++ b/keyboards/sofle_pico/info.json @@ -4,9 +4,6 @@ "maintainer": "Ryan Neff ", "bootloader": "rp2040", "bootloader_instructions": "Hold the BOOT button while plugging in the usb cable", - "build": { - "lto": false - }, "diode_direction": "COL2ROW", "encoder": { "rotary": [ From 4ca2cc25cfade7794afbb1d553d004459c397075 Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Sun, 24 Mar 2024 15:54:58 -0700 Subject: [PATCH 59/87] Fixes sofle pico via keymap name in readme Co-authored-by: jack <0x6a73@protonmail.com> --- keyboards/sofle_pico/keymaps/via/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/sofle_pico/keymaps/via/readme.md b/keyboards/sofle_pico/keymaps/via/readme.md index 76148216d39..a1a72c45be9 100644 --- a/keyboards/sofle_pico/keymaps/via/readme.md +++ b/keyboards/sofle_pico/keymaps/via/readme.md @@ -2,7 +2,7 @@ ![SofleKeyboard adjust layer](https://github.com/josefadamcik/SofleKeyboard/raw/master/Images/soflekeyboard_layout_adjust.png) -# Default keymap for Sofle Pico Keyboard +# VIA keymap for Sofle Pico Keyboard Ported directly from the classic Sofle Keyboard by Josef Adamcik. Layout in [Keyboard Layout Editor](http://www.keyboard-layout-editor.com/#/gists/76efb423a46cbbea75465cb468eef7ff) and [adjust layer](http://www.keyboard-layout-editor.com/#/gists/4bcf66f922cfd54da20ba04905d56bd4) From 0891aa2410800fb646f1497a25d792c15353872a Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Sun, 24 Mar 2024 16:02:20 -0700 Subject: [PATCH 60/87] Moved bootmagic config into info.json --- keyboards/sofle_pico/info.json | 3 +++ keyboards/sofle_pico/post_config.h | 14 -------------- 2 files changed, 3 insertions(+), 14 deletions(-) delete mode 100644 keyboards/sofle_pico/post_config.h diff --git a/keyboards/sofle_pico/info.json b/keyboards/sofle_pico/info.json index 7c553b177d5..40305cb2636 100644 --- a/keyboards/sofle_pico/info.json +++ b/keyboards/sofle_pico/info.json @@ -149,6 +149,9 @@ }, "split": { "enabled": true, + "bootmagic": { + "matrix": [5, 0] + }, "encoder": { "right": { "rotary": [ diff --git a/keyboards/sofle_pico/post_config.h b/keyboards/sofle_pico/post_config.h deleted file mode 100644 index 32259924650..00000000000 --- a/keyboards/sofle_pico/post_config.h +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright 2024 Ryan Neff (@JellyTitan) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -/* Bootmagic lite */ -/* Left hand uses the top left button - this is default in core */ -/* Right hand uses the top right button */ -#ifndef BOOTMAGIC_LITE_ROW_RIGHT -# define BOOTMAGIC_LITE_ROW_RIGHT 5 -#endif -#ifndef BOOTMAGIC_LITE_COLUMN_RIGHT -# define BOOTMAGIC_LITE_COLUMN_RIGHT 0 -#endif From abb10f160b80d776306849a7e1a43c9bad813d0b Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Sun, 24 Mar 2024 16:06:59 -0700 Subject: [PATCH 61/87] Removes redundant encoder resolution Co-authored-by: jack <0x6a73@protonmail.com> --- keyboards/sofle_pico/info.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/sofle_pico/info.json b/keyboards/sofle_pico/info.json index 40305cb2636..127d2021aee 100644 --- a/keyboards/sofle_pico/info.json +++ b/keyboards/sofle_pico/info.json @@ -155,7 +155,7 @@ "encoder": { "right": { "rotary": [ - {"pin_a": "GP14", "pin_b": "GP15", "resolution": 4} + {"pin_a": "GP14", "pin_b": "GP15"} ] } } From bd2c950a864b9bca4d4af6e75b945cf6a2da0a15 Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Sun, 24 Mar 2024 16:07:13 -0700 Subject: [PATCH 62/87] Removes redundant encoder resolution Co-authored-by: jack <0x6a73@protonmail.com> --- keyboards/sofle_pico/info.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/sofle_pico/info.json b/keyboards/sofle_pico/info.json index 127d2021aee..ecbb5b10470 100644 --- a/keyboards/sofle_pico/info.json +++ b/keyboards/sofle_pico/info.json @@ -7,7 +7,7 @@ "diode_direction": "COL2ROW", "encoder": { "rotary": [ - {"pin_a": "GP14", "pin_b": "GP15", "resolution": 4} + {"pin_a": "GP14", "pin_b": "GP15"} ] }, "features": { From 42d715a5eead098591be5f025ca0148bf9e2b8ef Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Sun, 24 Mar 2024 16:11:39 -0700 Subject: [PATCH 63/87] Turns off the LEDs when the host goes to sleep. Co-authored-by: jack <0x6a73@protonmail.com> --- keyboards/sofle_pico/info.json | 1 + 1 file changed, 1 insertion(+) diff --git a/keyboards/sofle_pico/info.json b/keyboards/sofle_pico/info.json index ecbb5b10470..b361fd07cf0 100644 --- a/keyboards/sofle_pico/info.json +++ b/keyboards/sofle_pico/info.json @@ -36,6 +36,7 @@ }, "processor": "RP2040", "rgb_matrix": { + "sleep": true, "animations": { "band_pinwheel_sat": true, "band_pinwheel_val": true, From 97f950da7f62cbf2b7e0335cb0d0ea8f62365334 Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Sun, 24 Mar 2024 16:47:58 -0700 Subject: [PATCH 64/87] Simplifies flashing instructions to align with standards Co-authored-by: jack <0x6a73@protonmail.com> --- keyboards/sofle_pico/readme.md | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/keyboards/sofle_pico/readme.md b/keyboards/sofle_pico/readme.md index b260351507c..5595fe833c7 100644 --- a/keyboards/sofle_pico/readme.md +++ b/keyboards/sofle_pico/readme.md @@ -12,21 +12,11 @@ Remember you have to flash both halves of the keyboard for it to work! Make example for this keyboard (after setting up your build environment): - make sofle_pico:via + make sofle_pico:default Flashing example for this keyboard: -```bash -# For flashing the left half... -make sofle_pico:default:uf2-split-left -# or the qmk cli equivalent: -qmk flash -kb sofle_pico --keymap default -bl uf2-split-left - -# For flashing the right half... -make sofle_pico:default:uf2-split-right -# or the qmk cli equivalent: -qmk flash -kb sofle_pico --keymap default -bl uf2-split-right -``` + make sofle_pico:default:flash 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). From 06a4bb914f1bd4286e4b2c468cd45acb6fabbb69 Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Sun, 24 Mar 2024 16:53:53 -0700 Subject: [PATCH 65/87] Added ee_hands first flash instructions to README --- keyboards/sofle_pico/readme.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/keyboards/sofle_pico/readme.md b/keyboards/sofle_pico/readme.md index 5595fe833c7..2b56ee9b2a1 100644 --- a/keyboards/sofle_pico/readme.md +++ b/keyboards/sofle_pico/readme.md @@ -18,6 +18,12 @@ Flashing example for this keyboard: make sofle_pico:default:flash +Handedness should be programmed in EEPROM once, you can use these commands to +flash the firmware and the EEPROM: + + make sofle_pico:default:uf2-split-left + make sofle_pico:default:uf2-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). ## Bootloader From 7d6a76696003f8e81a525386adb12a86557cf59d Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Mon, 25 Mar 2024 17:03:37 -0700 Subject: [PATCH 66/87] Moves sofle pico keymap images to imgur --- keyboards/sofle_pico/keymaps/default/readme.md | 4 ++-- keyboards/sofle_pico/keymaps/via/readme.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/keyboards/sofle_pico/keymaps/default/readme.md b/keyboards/sofle_pico/keymaps/default/readme.md index 1fb0f37b58f..232125cc6ea 100644 --- a/keyboards/sofle_pico/keymaps/default/readme.md +++ b/keyboards/sofle_pico/keymaps/default/readme.md @@ -1,5 +1,5 @@ -![SofleKeyboard default keymap](https://github.com/josefadamcik/SofleKeyboard/raw/master/Images/soflekeyboard.png) -![SofleKeyboard adjust layer](https://github.com/josefadamcik/SofleKeyboard/raw/master/Images/soflekeyboard_layout_adjust.png) +![SofleKeyboard default keymap](https://i.imgur.com/MZxVvm9.png) +![SofleKeyboard adjust layer](https://i.imgur.com/f5sKy0I.png) # Default keymap for Sofle Pico Keyboard diff --git a/keyboards/sofle_pico/keymaps/via/readme.md b/keyboards/sofle_pico/keymaps/via/readme.md index a1a72c45be9..622c25ad84c 100644 --- a/keyboards/sofle_pico/keymaps/via/readme.md +++ b/keyboards/sofle_pico/keymaps/via/readme.md @@ -1,5 +1,5 @@ -![SofleKeyboard default keymap](https://github.com/josefadamcik/SofleKeyboard/raw/master/Images/soflekeyboard.png) -![SofleKeyboard adjust layer](https://github.com/josefadamcik/SofleKeyboard/raw/master/Images/soflekeyboard_layout_adjust.png) +![SofleKeyboard default keymap](https://i.imgur.com/MZxVvm9.png) +![SofleKeyboard adjust layer](https://i.imgur.com/f5sKy0I.png) # VIA keymap for Sofle Pico Keyboard From 6336c2123a501dc1f5268e6207072a6ab0583182 Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Mon, 25 Mar 2024 17:11:19 -0700 Subject: [PATCH 67/87] Standardizes make commands in readme --- keyboards/sofle_pico/readme.md | 5 ----- 1 file changed, 5 deletions(-) diff --git a/keyboards/sofle_pico/readme.md b/keyboards/sofle_pico/readme.md index 2b56ee9b2a1..c0ba23761b6 100644 --- a/keyboards/sofle_pico/readme.md +++ b/keyboards/sofle_pico/readme.md @@ -16,11 +16,6 @@ Make example for this keyboard (after setting up your build environment): Flashing example for this keyboard: - make sofle_pico:default:flash - -Handedness should be programmed in EEPROM once, you can use these commands to -flash the firmware and the EEPROM: - make sofle_pico:default:uf2-split-left make sofle_pico:default:uf2-split-right From e98fd4a487c2e08885c3b465a57ac6277c7e3d1e Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Wed, 27 Mar 2024 19:59:57 -0700 Subject: [PATCH 68/87] Removes user keymap 'default_jellytitan' --- .../keymaps/default_jellytitan/config.h | 9 - .../keymaps/default_jellytitan/keymap.c | 303 ------------------ .../keymaps/default_jellytitan/readme.md | 31 -- .../keymaps/default_jellytitan/rules.mk | 4 - 4 files changed, 347 deletions(-) delete mode 100644 keyboards/sofle_pico/keymaps/default_jellytitan/config.h delete mode 100644 keyboards/sofle_pico/keymaps/default_jellytitan/keymap.c delete mode 100644 keyboards/sofle_pico/keymaps/default_jellytitan/readme.md delete mode 100644 keyboards/sofle_pico/keymaps/default_jellytitan/rules.mk diff --git a/keyboards/sofle_pico/keymaps/default_jellytitan/config.h b/keyboards/sofle_pico/keymaps/default_jellytitan/config.h deleted file mode 100644 index edef645046b..00000000000 --- a/keyboards/sofle_pico/keymaps/default_jellytitan/config.h +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright 2024 Ryan Neff (@JellyTitan) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define POINTING_DEVICE_ROTATION_90 -#define SPLIT_POINTING_ENABLE -#define POINTING_DEVICE_RIGHT -#define POINTING_DEVICE_TASK_THROTTLE_MS 8 diff --git a/keyboards/sofle_pico/keymaps/default_jellytitan/keymap.c b/keyboards/sofle_pico/keymaps/default_jellytitan/keymap.c deleted file mode 100644 index 2fea570d083..00000000000 --- a/keyboards/sofle_pico/keymaps/default_jellytitan/keymap.c +++ /dev/null @@ -1,303 +0,0 @@ -// Copyright 2024 Ryan Neff (@JellyTitan) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -enum custom_layers { _QWERTY, _LOWER, _RAISE }; - -/* Defines macros for use with the configurators "Any" key. (These are non-standard macros using the "Magnet" app on Mac). */ -/* Move active application right half. */ -#define KC_CSGRA LCTL(LSFT(LGUI(KC_RGHT))) -/* Move active application to left half. */ -#define KC_CSGLA LCTL(LSFT(LGUI(KC_LEFT))) -/* Maximize active application. */ -#define KC_MAXIM LCTL(LSFT(LGUI(KC_UP))) -/* Minimize active application. */ -#define KC_MINIM LCTL(LSFT(LGUI(KC_DOWN))) - -enum custom_keycodes { - QWERTY = SAFE_RANGE, - LOWER, - RAISE, - CMD_TAB_CW, - CMD_TAB_CCW, -}; - -/* Rotary encoder variables used to hold down Command (GUI) key while cycling through open programs. */ -bool is_cmd_tab_active = false; -uint16_t cmd_tab_timer = 0; - -/* Tap Dance declarations */ -enum tapdances { - _TD_FIVE_ENTER, -}; - -/* Tapdance */ -#define TD5ENT TD(_TD_FIVE_ENTER) - -/** - * Tap Dance definitions - * - * To use this in the configurator, enter the name 'TD5ENT' in the "Any" key. - */ -tap_dance_action_t tap_dance_actions[] = { - /* Tap once for 5, twice for Enter. */ - [_TD_FIVE_ENTER] = ACTION_TAP_DANCE_DOUBLE(KC_5, KC_ENT), -}; - -/** - * Keymap. - * - * The rotary encoders are programmed manually below because the configurator does not support them yet. - */ -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - // clang-format off - /* - QWERTY - ┌───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┐ - │ = │ 1 │ 2 │ 3 │ 4 │ 5 │ │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ - ├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤ - │Tab│ Q │ W │ E │ R │ T │ │ Y │ U │ I │ O │ P │ \ │ - ├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤ - │Esc│ A │ S │ D │ F │ G │ │ H │ J │ K │ L │ ; │ ' │ - ├───┼───┼───┼───┼───┼───┼───┐ ┌───┼───┼───┼───┼───┼───┼───┤ - │Sft│ Z │ X │ C │ V │ B │Min│ │Max│ N │ M │ , │ . │ / │Sft│ - └───┴───┴───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┴───┴───┘ - ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ - │ ← │ → │Esc│Spc│Bsp│ │Tab│Ent│Del│ ↓ │ ↑ │ - └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ - */ - [_QWERTY] = LAYOUT( - KC_EQL, KC_1, KC_2, KC_3, KC_4, TD5ENT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, - LT(1,KC_DEL), LT(2,KC_A), LCTL_T(KC_S), KC_D, LGUI_T(KC_F), KC_G, KC_H, RGUI_T(KC_J), KC_K, RCTL_T(KC_L), LT(2,KC_SCLN), LT(1,KC_QUOT), - KC_LSFT, LALT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_MINIM, KC_MAXIM, KC_N, KC_M, KC_COMM, KC_DOT, RALT_T(KC_SLSH), KC_RSFT, - KC_LEFT, KC_RGHT, QK_GESC, KC_SPC, KC_BSPC, KC_TAB, KC_ENT, KC_DEL, KC_UP, KC_DOWN - ), - - /* - Symbols/Numpad Layer - ┌────┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬────┐ - │BOOT│F1 │F2 │F3 │F4 │F5 │ │F6 │F7 │F8 │F9 │F10│F11 │ - ├────┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼────┤ - │____│ ! │ @ │ { │ } │ | │ │QMK│ 7 │ 8 │ 9 │ * │F12 │ - ├────┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼────┤ - │____│ # │ $ │ ( │ ) │ ` │ │QMK│ 4 │ 5 │ 6 │ + │____│ - ├────┼───┼───┼───┼───┼───┼───┐ ┌───┼───┼───┼───┼───┼───┼────┤ - │____│ # │ $ │ [ │ ] │ ~ │___│ │___│QMK│ 1 │ 2 │ 3 │ / │BOOT│ - └────┴───┴───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┴───┴────┘ - ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ - │___│___│___│___│___│ │ 0 │ 0 │ 0 │ 0 │ 0 │ - └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ - */ - - [_LOWER] = LAYOUT( - QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, - KC_TRNS, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, DT_PRNT, KC_7, KC_8, KC_9, KC_ASTR, KC_F12, - KC_TRNS, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRV, DT_UP, KC_4, KC_5, KC_6, KC_PPLS, KC_TRNS, - KC_TRNS, KC_HASH, KC_DLR, KC_LBRC, KC_RBRC, KC_TILD, KC_TRNS, KC_TRNS, DT_DOWN, KC_1, KC_2, KC_3, KC_PSLS, QK_BOOT, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P0, KC_P0, KC_P0, KC_P0, KC_P0 - ), - - /* - Navigation/Function Layer - ┌────┬────┬────┬────┬────┬────┐ ┌────┬────┬────┬────┬────┬────┐ - │RGB │ACL0│ACL1│ACL2│____│____│ │____│____│MOD │RMOD│HUI │HUD │ - ├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤ - │____│____│____│MS_U│____│____│ │____│BTN1│ ↑ │BTN2│SAI │SAD │ - ├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤ - │____│____│MS_L│MS_D│MS_R│____│ │____│ ← │ ↓ │ → │VAI │VAD │ - ├────┼────┼────┼────┼────┼────┼────┐ ┌────┼────┼────┼────┼────┼────┼────┤ - │____│____│____│____│____│____│____│ │____│____│____│____│____│SPI │SPD │ - └────┴────┴────┴────┴────┴────┴────┘ └────┴────┴────┴────┴────┴────┴────┘ - ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ - │___│___│___│___│QMK│ │QMK│___│___│___│___│ - └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ - */ - [_RAISE] = LAYOUT( - RGB_TOG, KC_ACL0, KC_ACL1, KC_ACL2, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, RGB_RMOD, RGB_HUI, RGB_HUD, - HF_TOGG, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_UP, KC_BTN2, RGB_SAI, RGB_SAD, - HF_DWLU, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, RGB_VAI, RGB_VAD, - HF_DWLD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPI, RGB_SPD, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_CSGLA, KC_CSGRA, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) - // clang-format on -}; - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - return false; - case CMD_TAB_CW: - if (record->event.pressed) { - if (!is_cmd_tab_active) { - is_cmd_tab_active = true; - register_code(KC_LGUI); - } - cmd_tab_timer = timer_read(); - register_code(KC_TAB); - } else { - unregister_code(KC_TAB); - } - break; - case CMD_TAB_CCW: - if (record->event.pressed) { - if (!is_cmd_tab_active) { - is_cmd_tab_active = true; - register_code(KC_LGUI); - } - cmd_tab_timer = timer_read(); - tap_code16(S(KC_TAB)); - } else { - unregister_code(KC_TAB); - } - break; - } - return true; -} - -/** - * Helper function for rotary encoder. - * - * If the timer has elapsed, the Command/Gui tab will be released. - * You can adjust the milliseconds to speed up the CMD key release. - */ -void matrix_scan_user(void) { - if (is_cmd_tab_active) { - if (timer_elapsed(cmd_tab_timer) > 900) { - unregister_code(KC_LGUI); - is_cmd_tab_active = false; - } - } -} - -/** - * Rotary Encoder. - * - * This can't be programmed through configurator. You must do it here. - * - * This uses the amazing "Encoder map" feature which replicates the normal keyswitch layer handling functionality, but with encoders. - * https://docs.qmk.fm/#/feature_encoders?id=encoder-map - * - * Uses a variant of the Super-alt-tab macro to switch between open applications on a mac. (Command-tab) - * https://docs.qmk.fm/#/feature_macros?id=super-alt%e2%86%aftab - */ -#ifdef ENCODER_MAP_ENABLE -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - /* Left Hand */ /* Right Hand */ - /* Switch between tabs. (Control + Tab). */ /* Switch between open apps on Mac. (Command + Tab + timer logic) */ - [_QWERTY] = {ENCODER_CCW_CW(S(C(KC_TAB)), C(KC_TAB)), ENCODER_CCW_CW(CMD_TAB_CW, CMD_TAB_CCW)}, - /* Scrolls left & right. (Shift + Mouse Wheel Up). */ /* Scrolls up and down. (Page Down & Page Up - mouse wheel scroll incraments are too small) */ - [_LOWER] = {ENCODER_CCW_CW(S(KC_MS_WH_UP), S(KC_MS_WH_DOWN)), ENCODER_CCW_CW(KC_PGDN, KC_PGUP)}, - /* Selects adjacent words. (Command + Shift + Right Arrow). */ /* Jumps to end/start of line. Hold shift to select. (Gui + arrow). */ - [_RAISE] = {ENCODER_CCW_CW(C(S(KC_LEFT)), C(S(KC_RGHT))), ENCODER_CCW_CW(G(KC_LEFT), G(KC_RGHT))}}; -#endif - -/* Default timeout for displaying logo on boot. */ -#ifndef OLED_LOGO_TIMEOUT -/* 10 second timeout. */ -# define OLED_LOGO_TIMEOUT 10000 -#endif - -#ifdef OLED_ENABLE - -uint16_t startup_timer; - -oled_rotation_t oled_init_user(oled_rotation_t rotation) { - startup_timer = timer_read(); - return OLED_ROTATION_90; -} - -static void render_qmk_logo(void) { - static const char PROGMEM qmk_logo[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xfc, 0xfe, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xfe, 0xfc, 0xf8, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0x71, 0x71, 0x71, 0x71, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x71, 0x71, 0x71, 0x71, 0x71, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0xf8, 0xf0, 0xf1, 0xf1, 0xe3, 0xe3, 0xe3, 0x00, 0x00, 0x00, 0xe3, 0xe3, 0xf3, 0xf1, 0xf1, - 0xf0, 0xf8, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x07, 0x07, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xfc, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x07, 0x07, 0x07, 0x07, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0x70, 0x30, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x38, 0xf0, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x78, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf8, 0x38, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xf0, 0x38, 0x18, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xe3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x03, 0x0f, 0x7e, 0xf8, 0xc0, 0x00, 0x80, 0xe0, 0xfc, 0x1f, 0x07, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x0c, 0x1e, 0x7f, 0xf3, 0xc1, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0f, 0x0e, 0x0c, 0x1c, 0x1c, - 0x1c, 0x0c, 0x0c, 0x0e, 0x0f, 0x1f, 0x38, 0x30, 0x70, 0x20, 0x00, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, 0x0f, 0x0f, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x0f, 0x0c, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x7c, 0xfe, 0xfe, 0xfc, 0xfc, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xfc, 0xfe, 0xfe, 0xfe, 0x3c, 0x00, 0x00, 0x00, - 0x00, 0xe0, 0xf8, 0xfc, 0xfc, 0xfc, 0xf8, 0x10, 0x00, 0x00, 0x00, 0xc0, 0xf8, 0xfc, 0xfe, 0xfe, 0xfe, 0xfe, 0xfc, 0xf8, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf0, 0xfc, 0xff, 0xff, 0xff, 0x7f, 0x0f, 0x01, 0x00, 0x00, 0xe0, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x03, 0x00, 0x00, 0xc0, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x07, 0x03, 0x1f, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0xc0, 0xf0, 0xfe, 0xff, 0xff, 0xff, 0x3f, 0x0f, 0x01, 0x00, 0x00, 0xe0, 0xf8, 0xff, 0xff, 0xff, 0x7f, 0x1f, 0x03, 0x00, 0x00, 0xc0, 0xf8, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, - 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, 0x3f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x3f, 0x0f, 0x01, 0x00, 0x00, 0x00, 0x38, 0x7f, 0x7f, 0x7f, 0x3f, 0x1f, 0x03, 0x00, 0x00, 0x00, 0x18, 0x7e, 0x7f, 0x7f, 0x7f, 0x1f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1f, 0x3f, 0x7f, 0x7f, 0x7f, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x1e, 0x3e, 0x1c, 0x08, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x3e, 0x3e, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; - oled_write_raw_P(qmk_logo, sizeof(qmk_logo)); -} -static void render_logo(void) { - static const char PROGMEM sofle_pico_logo[] = { - 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xe0, 0xf0, 0xf0, 0xf0, 0x70, 0xf0, 0xf0, 0xe0, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf0, 0xf8, 0xfc, 0x3c, 0x3c, 0x3c, 0x7c, 0xf8, 0xf8, 0xf0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x1f, 0x3f, 0x3f, 0x3f, 0x7c, 0x78, 0xf8, 0xf8, 0xf0, 0xe0, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xfc, 0x3c, 0x1c, 0x1e, 0x1e, 0x3c, 0xfc, 0xf8, 0xf0, 0xc0, 0x00, 0x1c, 0x1c, 0xff, 0xff, 0xff, 0xff, 0x1c, 0x1c, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xfc, 0xfc, 0xce, 0xce, 0xce, 0xdc, 0xfc, 0xfc, 0xf8, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x1e, 0x1e, 0x1e, 0x3c, 0x3c, 0x3c, 0x3e, 0x1f, 0x1f, 0x0f, 0x07, 0x01, 0x00, 0x01, 0x07, - 0x0f, 0x1f, 0x1e, 0x3c, 0x3c, 0x3c, 0x1e, 0x1f, 0x0f, 0x07, 0x03, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x01, 0x07, 0x0f, 0x1f, 0x1f, 0x3c, 0x38, 0x38, 0x3c, 0x1c, 0x1c, 0x0c, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0x06, 0x06, 0x06, 0x0e, 0x9e, 0xfc, 0xf8, 0x00, 0x00, 0x8e, 0x8e, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x07, 0x07, 0x07, 0x07, 0x03, 0x03, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x7c, 0xfe, 0xff, 0x83, 0x01, 0x01, 0x01, 0x83, 0x83, 0x00, 0x00, 0x7e, 0xff, 0xc7, 0x83, 0x01, 0x01, 0x01, - 0x83, 0xff, 0xff, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc3, 0xe3, 0xe0, 0xe0, 0xe0, 0xf0, 0x70, 0x70, 0x70, 0x70, 0x30, 0x33, 0x73, 0xe0, 0x60, 0xe0, 0xe0, 0xc0, 0xc1, 0x83, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x80, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x70, 0x30, 0x70, 0x70, 0x70, 0x70, 0x70, 0xf0, 0xe0, 0xe0, 0xe0, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1f, 0xff, 0xf8, 0xd0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x20, 0x20, 0x40, 0xc0, 0x80, 0x00, 0x01, 0x87, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0xff, 0xff, 0x03, 0x01, 0x00, 0x80, 0xc0, 0x40, 0x20, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, - 0xf0, 0xf8, 0x7f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0f, 0x1c, 0x1c, 0x38, 0x78, 0x60, 0x60, 0x60, 0x60, 0x60, 0x70, 0x38, 0x39, 0xdf, 0xef, 0xf7, 0x7b, 0x39, 0x1c, 0x1c, 0x0e, 0x0e, 0x06, 0x06, 0x06, 0x06, 0x06, 0x0e, 0x0e, 0x1e, 0x1c, 0x3c, 0x79, 0xfb, 0xf7, 0xef, 0x9f, 0x38, 0x30, 0x70, 0x60, 0x60, 0x60, 0x60, 0x70, 0x38, 0x3c, 0x1c, 0x0f, 0x0f, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xf8, 0xfc, 0x7e, 0x7f, 0xff, 0xff, 0xe3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc1, 0xff, 0x7f, 0x7f, 0x3f, 0x7c, 0xf8, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x7f, 0xff, 0x81, 0x00, 0x00, 0x00, 0x00, 0x01, 0xcf, 0xff, 0xfe, 0x7c, 0x78, 0x78, 0x38, 0x30, 0x30, 0x30, 0x30, 0x30, 0x38, 0x78, 0x78, 0x7c, 0xfe, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0f, 0x0e, 0x1e, 0x3f, 0x7f, 0xf1, 0xe0, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xc0, 0xe1, 0xf3, 0x7f, 0x3f, 0x1f, 0x0f, 0x07, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x03, 0x03, 0x03, - 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; - oled_write_raw_P(sofle_pico_logo, sizeof(sofle_pico_logo)); -} - -static void render_status(void) { - oled_write_ln_P(PSTR("Sofle Pico\nv3.5.4\n~~~~~~~~~\n"), false); - uint8_t n = get_current_wpm(); - char wpm_counter[4]; - wpm_counter[3] = '\0'; - wpm_counter[2] = '0' + n % 10; - wpm_counter[1] = (n /= 10) % 10 ? '0' + (n) % 10 : (n / 10) % 10 ? '0' : ' '; - wpm_counter[0] = n / 10 ? '0' + n / 10 : ' '; - oled_write_P(PSTR("WPM:"), false); - oled_write(wpm_counter, false); - led_t led_state = host_keyboard_led_state(); - oled_write_ln_P(PSTR(""), false); - oled_write_P(PSTR("\nCaps: "), false); - oled_write_P(led_state.caps_lock ? PSTR("on ") : PSTR("off"), false); - oled_write_ln_P(PSTR("\n"), false); - oled_write_ln_P(PSTR("LAYER: "), false); - switch (get_highest_layer(layer_state)) { - case _QWERTY: - oled_write_P(PSTR("Qwerty\n "), false); - break; - case _LOWER: - oled_write_P(PSTR("Numbers &\nSymbols"), false); - break; - case _RAISE: - oled_write_P(PSTR("Navigation\n "), false); - break; - default: - oled_write_P(PSTR("Undefined\n "), false); - break; - } -} - -bool oled_task_user(void) { - static bool finished_logo = false; - if ((timer_elapsed(startup_timer) < OLED_LOGO_TIMEOUT) && !finished_logo) { - /* Display the logo for 5 seconds on boot. */ - if (is_keyboard_master()) { - render_logo(); - /* 10 Chars per line. Set cursor used to simplify line wraps. */ - oled_set_cursor(0, 12); - oled_write_P(PSTR("v3.5.4"), false); - oled_set_cursor(0, 13); - oled_write_P(PSTR("03-22-2024"), false); - oled_set_cursor(0, 14); - oled_write_P(PSTR("by:github/"), false); - oled_set_cursor(0, 15); - oled_write_P(PSTR("JellyTitan"), false); - } else { - render_qmk_logo(); - } - } else { - /* Display the current keyboard state. */ - if (!finished_logo) { - finished_logo = true; - /* Clears the OLED. */ - oled_clear(); - } - if (is_keyboard_master()) { - /* Renders the current keyboard state (layer, lock, caps, scroll, etc) */ - render_status(); - } else { - render_logo(); - } - } - return false; -} - -#endif diff --git a/keyboards/sofle_pico/keymaps/default_jellytitan/readme.md b/keyboards/sofle_pico/keymaps/default_jellytitan/readme.md deleted file mode 100644 index 153b47bd0c9..00000000000 --- a/keyboards/sofle_pico/keymaps/default_jellytitan/readme.md +++ /dev/null @@ -1,31 +0,0 @@ -# JellyTitan Sofle Pico Keymap -![jellytitan](https://i.imgur.com/JqGPWCn.png) - -This keymap is derived from Ergodox layouts and is adapted for the -[sofle_pico](https://github.com/JellyTitan/Sofle-Pico). -It is notable for it's semi-complex programming examples that include the use of - rotary encoders. - -Plenty of useful examples: -* Pimaroni enabled (I really don't like it, I don't recommend it)! -* Advanced knob programming! (Three-layer usage + clicks) -* Macros! (Fancy key combos tied to the rotary encoders) -* Tap Dance! (Double tap your '5' key for 'Enter') -* Dynamic Tapping term! (Dial in the double tap speed) - -The qwerty key layout is my adaptation of the Ergodox defaults. -If this is your first split keyboard, you probably want a different key layout. - -Flashing example for this keyboard: - -```bash -# For flashing the left half... -make sofle_pico:jellytitan:uf2-split-left -# or the qmk cli equivalent: -qmk flash -kb sofle_pico --keymap jellytitan -bl uf2-split-left - -# For flashing the right half... -make sofle_pico:jellytitan:uf2-split-right -# or the qmk cli equivalent: -qmk flash -kb sofle_pico --keymap jellytitan -bl uf2-split-right -``` diff --git a/keyboards/sofle_pico/keymaps/default_jellytitan/rules.mk b/keyboards/sofle_pico/keymaps/default_jellytitan/rules.mk deleted file mode 100644 index fe3af317213..00000000000 --- a/keyboards/sofle_pico/keymaps/default_jellytitan/rules.mk +++ /dev/null @@ -1,4 +0,0 @@ -POINTING_DEVICE_ENABLE = yes -POINTING_DEVICE_DRIVER = pimoroni_trackball -TAP_DANCE_ENABLE = yes -VIA_ENABLE = yes From fe281eca6c28482cf529c84b3efbd801a62e9a28 Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Wed, 27 Mar 2024 20:04:04 -0700 Subject: [PATCH 69/87] moves the OLED code from the default keymap to the keyboard level Removes custom keycodes in default keymap and via Updates keymap images in default keymap and via Removes Colemak and extra Colemak toggle layer from default keymap and via --- keyboards/sofle_pico/keymaps/default/keymap.c | 264 +----------------- .../sofle_pico/keymaps/default/readme.md | 18 +- keyboards/sofle_pico/keymaps/via/keymap.c | 264 +----------------- keyboards/sofle_pico/keymaps/via/readme.md | 15 +- keyboards/sofle_pico/sofle_pico.c | 32 +++ 5 files changed, 70 insertions(+), 523 deletions(-) create mode 100644 keyboards/sofle_pico/sofle_pico.c diff --git a/keyboards/sofle_pico/keymaps/default/keymap.c b/keyboards/sofle_pico/keymaps/default/keymap.c index d19bb74a8a9..253048e6a57 100644 --- a/keyboards/sofle_pico/keymaps/default/keymap.c +++ b/keyboards/sofle_pico/keymaps/default/keymap.c @@ -4,16 +4,12 @@ #include QMK_KEYBOARD_H enum sofle_layers { - /* _M_XYZ = Mac Os, _W_XYZ = Win/Linux */ _QWERTY, - _COLEMAK, _LOWER, _RAISE, _ADJUST, }; -enum custom_keycodes { KC_QWERTY = SAFE_RANGE, KC_COLEMAK, KC_PRVWD, KC_NXTWD, KC_LSTRT, KC_LEND, KC_DLINE }; - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // clang-format off /* @@ -33,35 +29,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_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_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_LCTL, MO(_LOWER), KC_ENT, KC_SPC, MO(_RAISE), KC_RCTL, KC_RALT, KC_RGUI ), - /* - * COLEMAK - * ,-----------------------------------------. ,-----------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | ESC | Q | W | F | P | G | | J | L | U | Y | ; | Bspc | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | TAB | A | R | S | T | D |-------. ,-------| H | N | E | I | O | ' | - * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| - * |LShift| Z | X | C | V | B |-------| |-------| K | M | , | . | / |RShift| - * `-----------------------------------------/ / \ \-----------------------------------------' - * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | 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_LCTL,MO(_LOWER), KC_ENT, KC_SPC, MO(_RAISE), KC_RCTL, KC_RALT, KC_RGUI - ), /* LOWER * ,-----------------------------------------. ,-----------------------------------------. * | | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 | @@ -78,10 +51,10 @@ 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_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 * ,----------------------------------------. ,-----------------------------------------. @@ -98,17 +71,17 @@ 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, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + _______, _______, _______ , _______ , _______ , _______ , _______, _______, _______, _______, _______, _______, + _______, KC_INS , KC_PSCR , KC_APP , XXXXXXX , XXXXXXX , KC_PGUP, XXXXXXX, KC_UP , XXXXXXX, XXXXXXX, 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, XXXXXXX, XXXXXXX, _______, + _______ , _______ , _______ , _______ , _______, _______, _______, _______, _______, _______ ), /* ADJUST * ,-----------------------------------------. ,-----------------------------------------. * | | | | | | | | | | | | | | * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | QK_BOOT| |QWERTY|COLEMAK| | | | | | | | | | + * |QK_BOOT| | | | | | | | | | | | | * |------+------+------+------+------+------| |------+------+------+------+------+------| * | | |MACWIN| | | |-------. ,-------| | VOLDO| MUTE | VOLUP| | | * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| @@ -119,11 +92,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `----------------------------------' '------''---------------------------' */ [_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, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + XXXXXXX , XXXXXXX, XXXXXXX , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + QK_BOOT , XXXXXXX, XXXXXXX , XXXXXXX, 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, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) // clang-format on }; @@ -134,219 +107,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { # define OLED_LOGO_TIMEOUT 10000 #endif -#ifdef OLED_ENABLE -uint16_t startup_timer; - -static void render_status(void) { - /* Print current mode */ - oled_write_P(PSTR("\n\n"), false); - oled_write_ln_P(PSTR("MODE"), false); - oled_write_ln_P(PSTR(""), false); - if (keymap_config.swap_lctl_lgui) { - oled_write_ln_P(PSTR("MAC"), false); - } else { - oled_write_ln_P(PSTR("WIN"), false); - } - - switch (get_highest_layer(default_layer_state)) { - case _QWERTY: - oled_write_ln_P(PSTR("Qwerty"), false); - break; - case _COLEMAK: - oled_write_ln_P(PSTR("Colemak"), false); - break; - default: - oled_write_P(PSTR("Undefined"), false); - } - oled_write_P(PSTR("\n\n"), false); - /* Print current layer */ - oled_write_ln_P(PSTR("LAYER"), false); - switch (get_highest_layer(layer_state)) { - case _COLEMAK: - case _QWERTY: - oled_write_ln_P(PSTR("Base"), false); - break; - case _RAISE: - oled_write_ln_P(PSTR("Raise"), false); - break; - case _LOWER: - oled_write_ln_P(PSTR("Lower"), false); - break; - case _ADJUST: - oled_write_ln_P(PSTR("Adjust"), false); - break; - default: - oled_write_ln_P(PSTR("Undefined"), false); - } - oled_write_P(PSTR("\n\n"), false); - led_t led_usb_state = host_keyboard_led_state(); - oled_write_ln_P(PSTR("CAPSLOCK"), led_usb_state.caps_lock); -} - -oled_rotation_t oled_init_user(oled_rotation_t rotation) { - startup_timer = timer_read(); - return OLED_ROTATION_90; -} - -static void render_qmk_logo(void) { - static const char PROGMEM qmk_logo[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xfc, 0xfe, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xfe, 0xfc, 0xf8, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0x71, 0x71, 0x71, 0x71, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x71, 0x71, 0x71, 0x71, 0x71, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0xf8, 0xf0, 0xf1, 0xf1, 0xe3, 0xe3, 0xe3, 0x00, 0x00, 0x00, 0xe3, 0xe3, 0xf3, 0xf1, 0xf1, - 0xf0, 0xf8, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x07, 0x07, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xfc, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x07, 0x07, 0x07, 0x07, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0x70, 0x30, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x38, 0xf0, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x78, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf8, 0x38, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xf0, 0x38, 0x18, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xe3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x03, 0x0f, 0x7e, 0xf8, 0xc0, 0x00, 0x80, 0xe0, 0xfc, 0x1f, 0x07, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x0c, 0x1e, 0x7f, 0xf3, 0xc1, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0f, 0x0e, 0x0c, 0x1c, 0x1c, - 0x1c, 0x0c, 0x0c, 0x0e, 0x0f, 0x1f, 0x38, 0x30, 0x70, 0x20, 0x00, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, 0x0f, 0x0f, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x0f, 0x0c, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x7c, 0xfe, 0xfe, 0xfc, 0xfc, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xfc, 0xfe, 0xfe, 0xfe, 0x3c, 0x00, 0x00, 0x00, - 0x00, 0xe0, 0xf8, 0xfc, 0xfc, 0xfc, 0xf8, 0x10, 0x00, 0x00, 0x00, 0xc0, 0xf8, 0xfc, 0xfe, 0xfe, 0xfe, 0xfe, 0xfc, 0xf8, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf0, 0xfc, 0xff, 0xff, 0xff, 0x7f, 0x0f, 0x01, 0x00, 0x00, 0xe0, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x03, 0x00, 0x00, 0xc0, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x07, 0x03, 0x1f, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0xc0, 0xf0, 0xfe, 0xff, 0xff, 0xff, 0x3f, 0x0f, 0x01, 0x00, 0x00, 0xe0, 0xf8, 0xff, 0xff, 0xff, 0x7f, 0x1f, 0x03, 0x00, 0x00, 0xc0, 0xf8, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, - 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, 0x3f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x3f, 0x0f, 0x01, 0x00, 0x00, 0x00, 0x38, 0x7f, 0x7f, 0x7f, 0x3f, 0x1f, 0x03, 0x00, 0x00, 0x00, 0x18, 0x7e, 0x7f, 0x7f, 0x7f, 0x1f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1f, 0x3f, 0x7f, 0x7f, 0x7f, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x1e, 0x3e, 0x1c, 0x08, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x3e, 0x3e, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; - oled_write_raw_P(qmk_logo, sizeof(qmk_logo)); -} - -static void render_logo(void) { - static const char PROGMEM sofle_pico_logo[] = { - 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xe0, 0xf0, 0xf0, 0xf0, 0x70, 0xf0, 0xf0, 0xe0, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf0, 0xf8, 0xfc, 0x3c, 0x3c, 0x3c, 0x7c, 0xf8, 0xf8, 0xf0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x1f, 0x3f, 0x3f, 0x3f, 0x7c, 0x78, 0xf8, 0xf8, 0xf0, 0xe0, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xfc, 0x3c, 0x1c, 0x1e, 0x1e, 0x3c, 0xfc, 0xf8, 0xf0, 0xc0, 0x00, 0x1c, 0x1c, 0xff, 0xff, 0xff, 0xff, 0x1c, 0x1c, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xfc, 0xfc, 0xce, 0xce, 0xce, 0xdc, 0xfc, 0xfc, 0xf8, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x1e, 0x1e, 0x1e, 0x3c, 0x3c, 0x3c, 0x3e, 0x1f, 0x1f, 0x0f, 0x07, 0x01, 0x00, 0x01, 0x07, - 0x0f, 0x1f, 0x1e, 0x3c, 0x3c, 0x3c, 0x1e, 0x1f, 0x0f, 0x07, 0x03, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x01, 0x07, 0x0f, 0x1f, 0x1f, 0x3c, 0x38, 0x38, 0x3c, 0x1c, 0x1c, 0x0c, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0x06, 0x06, 0x06, 0x0e, 0x9e, 0xfc, 0xf8, 0x00, 0x00, 0x8e, 0x8e, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x07, 0x07, 0x07, 0x07, 0x03, 0x03, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x7c, 0xfe, 0xff, 0x83, 0x01, 0x01, 0x01, 0x83, 0x83, 0x00, 0x00, 0x7e, 0xff, 0xc7, 0x83, 0x01, 0x01, 0x01, - 0x83, 0xff, 0xff, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc3, 0xe3, 0xe0, 0xe0, 0xe0, 0xf0, 0x70, 0x70, 0x70, 0x70, 0x30, 0x33, 0x73, 0xe0, 0x60, 0xe0, 0xe0, 0xc0, 0xc1, 0x83, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x80, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x70, 0x30, 0x70, 0x70, 0x70, 0x70, 0x70, 0xf0, 0xe0, 0xe0, 0xe0, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1f, 0xff, 0xf8, 0xd0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x20, 0x20, 0x40, 0xc0, 0x80, 0x00, 0x01, 0x87, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0xff, 0xff, 0x03, 0x01, 0x00, 0x80, 0xc0, 0x40, 0x20, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, - 0xf0, 0xf8, 0x7f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0f, 0x1c, 0x1c, 0x38, 0x78, 0x60, 0x60, 0x60, 0x60, 0x60, 0x70, 0x38, 0x39, 0xdf, 0xef, 0xf7, 0x7b, 0x39, 0x1c, 0x1c, 0x0e, 0x0e, 0x06, 0x06, 0x06, 0x06, 0x06, 0x0e, 0x0e, 0x1e, 0x1c, 0x3c, 0x79, 0xfb, 0xf7, 0xef, 0x9f, 0x38, 0x30, 0x70, 0x60, 0x60, 0x60, 0x60, 0x70, 0x38, 0x3c, 0x1c, 0x0f, 0x0f, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xf8, 0xfc, 0x7e, 0x7f, 0xff, 0xff, 0xe3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc1, 0xff, 0x7f, 0x7f, 0x3f, 0x7c, 0xf8, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x7f, 0xff, 0x81, 0x00, 0x00, 0x00, 0x00, 0x01, 0xcf, 0xff, 0xfe, 0x7c, 0x78, 0x78, 0x38, 0x30, 0x30, 0x30, 0x30, 0x30, 0x38, 0x78, 0x78, 0x7c, 0xfe, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0f, 0x0e, 0x1e, 0x3f, 0x7f, 0xf1, 0xe0, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xc0, 0xe1, 0xf3, 0x7f, 0x3f, 0x1f, 0x0f, 0x07, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x03, 0x03, 0x03, - 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; - oled_write_raw_P(sofle_pico_logo, sizeof(sofle_pico_logo)); -} - -bool oled_task_user(void) { - static bool finished_logo = false; - if ((timer_elapsed(startup_timer) < OLED_LOGO_TIMEOUT) && !finished_logo) { - /* Display the logo for 5 seconds on boot. */ - if (is_keyboard_master()) { - render_logo(); - /* Adding text below the partial screen logo requires oled_set_cursor. There are 10 chars per line. Subsequent oled_set_cursor simplifies line wraps. */ - oled_set_cursor(0, 12); - oled_write_ln_P(PSTR("v3.5.4"), false); - oled_set_cursor(0, 13); - oled_write_P(PSTR("03-22-2024"), false); - oled_set_cursor(0, 14); - oled_write_P(PSTR("by:github/"), false); - oled_set_cursor(0, 15); - oled_write_P(PSTR("JellyTitan"), false); - } else { - render_qmk_logo(); - } - } else { - /* Display the current keyboard state. */ - if (!finished_logo) { - finished_logo = true; - /* Clears the OLED. */ - oled_clear(); - } - if (is_keyboard_master()) { - /* Renders the current keyboard state (layer, lock, caps, scroll, etc) */ - render_status(); - } else { - render_logo(); - } - } - return false; -} -#endif - layer_state_t layer_state_set_user(layer_state_t state) { return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); } bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case KC_QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - return false; - case KC_COLEMAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_COLEMAK); - } - return false; - case KC_PRVWD: - if (record->event.pressed) { - if (keymap_config.swap_lctl_lgui) { - register_mods(mod_config(MOD_LALT)); - register_code(KC_LEFT); - } else { - register_mods(mod_config(MOD_LCTL)); - register_code(KC_LEFT); - } - } else { - if (keymap_config.swap_lctl_lgui) { - unregister_mods(mod_config(MOD_LALT)); - unregister_code(KC_LEFT); - } else { - unregister_mods(mod_config(MOD_LCTL)); - unregister_code(KC_LEFT); - } - } - break; - case KC_NXTWD: - if (record->event.pressed) { - if (keymap_config.swap_lctl_lgui) { - register_mods(mod_config(MOD_LALT)); - register_code(KC_RIGHT); - } else { - register_mods(mod_config(MOD_LCTL)); - register_code(KC_RIGHT); - } - } else { - if (keymap_config.swap_lctl_lgui) { - unregister_mods(mod_config(MOD_LALT)); - unregister_code(KC_RIGHT); - } else { - unregister_mods(mod_config(MOD_LCTL)); - unregister_code(KC_RIGHT); - } - } - break; - case KC_LSTRT: - if (record->event.pressed) { - if (keymap_config.swap_lctl_lgui) { - /* CMD-arrow on Mac, but we have CTL and GUI swapped */ - register_mods(mod_config(MOD_LCTL)); - register_code(KC_LEFT); - } else { - register_code(KC_HOME); - } - } else { - if (keymap_config.swap_lctl_lgui) { - unregister_mods(mod_config(MOD_LCTL)); - unregister_code(KC_LEFT); - } else { - unregister_code(KC_HOME); - } - } - break; - case KC_LEND: - if (record->event.pressed) { - if (keymap_config.swap_lctl_lgui) { - /* CMD-arrow on Mac, but we have CTL and GUI swapped */ - register_mods(mod_config(MOD_LCTL)); - register_code(KC_RIGHT); - } else { - register_code(KC_END); - } - } else { - if (keymap_config.swap_lctl_lgui) { - unregister_mods(mod_config(MOD_LCTL)); - unregister_code(KC_RIGHT); - } else { - unregister_code(KC_END); - } - } - break; - case KC_DLINE: - if (record->event.pressed) { - register_mods(mod_config(MOD_LCTL)); - register_code(KC_BSPC); - } else { - unregister_mods(mod_config(MOD_LCTL)); - unregister_code(KC_BSPC); - } - break; case KC_COPY: if (record->event.pressed) { register_mods(mod_config(MOD_LCTL)); diff --git a/keyboards/sofle_pico/keymaps/default/readme.md b/keyboards/sofle_pico/keymaps/default/readme.md index 232125cc6ea..a15159d07ca 100644 --- a/keyboards/sofle_pico/keymaps/default/readme.md +++ b/keyboards/sofle_pico/keymaps/default/readme.md @@ -4,17 +4,7 @@ # Default keymap for Sofle Pico Keyboard -Ported directly from the classic Sofle Keyboard by Josef Adamcik. -Layout in [Keyboard Layout Editor](http://www.keyboard-layout-editor.com/#/gists/76efb423a46cbbea75465cb468eef7ff) and [adjust layer](http://www.keyboard-layout-editor.com/#/gists/4bcf66f922cfd54da20ba04905d56bd4) - - -Features: - -- Symmetric modifiers (CMD/Super, Alt/Opt, Ctrl, Shift) -- Various modes, can be switched (using Adjust layer and the selected one is stored in EEPROM. -- Modes for Qwerty and Colemak support -- Modes for Mac vs Linux/Win support -> different order of modifiers and different action shortcuts on the "UPPER" layer (the red one in the image). Designed to simplify transtions when switching between operating systems often. -- The OLED on master half shows selected mode and caps lock state and is rotated. -- Left encoder controls volume up/down/mute. Right encoder PGUP/PGDOWN. - - +Adapted from the classic Sofle Keyboard by Josef Adamcik. +Simplified to serve as a starting point for further customizations. +Layout in [Keyboard Layout Editor](http://www.keyboard-layout-editor.com/#/gists/76efb423a46cbbea75465cb468eef7ff) +Left encoder controls volume up/down/mute. Right encoder PGUP/PGDOWN. diff --git a/keyboards/sofle_pico/keymaps/via/keymap.c b/keyboards/sofle_pico/keymaps/via/keymap.c index d19bb74a8a9..253048e6a57 100644 --- a/keyboards/sofle_pico/keymaps/via/keymap.c +++ b/keyboards/sofle_pico/keymaps/via/keymap.c @@ -4,16 +4,12 @@ #include QMK_KEYBOARD_H enum sofle_layers { - /* _M_XYZ = Mac Os, _W_XYZ = Win/Linux */ _QWERTY, - _COLEMAK, _LOWER, _RAISE, _ADJUST, }; -enum custom_keycodes { KC_QWERTY = SAFE_RANGE, KC_COLEMAK, KC_PRVWD, KC_NXTWD, KC_LSTRT, KC_LEND, KC_DLINE }; - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // clang-format off /* @@ -33,35 +29,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_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_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_LCTL, MO(_LOWER), KC_ENT, KC_SPC, MO(_RAISE), KC_RCTL, KC_RALT, KC_RGUI ), - /* - * COLEMAK - * ,-----------------------------------------. ,-----------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | ESC | Q | W | F | P | G | | J | L | U | Y | ; | Bspc | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | TAB | A | R | S | T | D |-------. ,-------| H | N | E | I | O | ' | - * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| - * |LShift| Z | X | C | V | B |-------| |-------| K | M | , | . | / |RShift| - * `-----------------------------------------/ / \ \-----------------------------------------' - * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | 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_LCTL,MO(_LOWER), KC_ENT, KC_SPC, MO(_RAISE), KC_RCTL, KC_RALT, KC_RGUI - ), /* LOWER * ,-----------------------------------------. ,-----------------------------------------. * | | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 | @@ -78,10 +51,10 @@ 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_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 * ,----------------------------------------. ,-----------------------------------------. @@ -98,17 +71,17 @@ 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, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + _______, _______, _______ , _______ , _______ , _______ , _______, _______, _______, _______, _______, _______, + _______, KC_INS , KC_PSCR , KC_APP , XXXXXXX , XXXXXXX , KC_PGUP, XXXXXXX, KC_UP , XXXXXXX, XXXXXXX, 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, XXXXXXX, XXXXXXX, _______, + _______ , _______ , _______ , _______ , _______, _______, _______, _______, _______, _______ ), /* ADJUST * ,-----------------------------------------. ,-----------------------------------------. * | | | | | | | | | | | | | | * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | QK_BOOT| |QWERTY|COLEMAK| | | | | | | | | | + * |QK_BOOT| | | | | | | | | | | | | * |------+------+------+------+------+------| |------+------+------+------+------+------| * | | |MACWIN| | | |-------. ,-------| | VOLDO| MUTE | VOLUP| | | * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| @@ -119,11 +92,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `----------------------------------' '------''---------------------------' */ [_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, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + XXXXXXX , XXXXXXX, XXXXXXX , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + QK_BOOT , XXXXXXX, XXXXXXX , XXXXXXX, 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, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) // clang-format on }; @@ -134,219 +107,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { # define OLED_LOGO_TIMEOUT 10000 #endif -#ifdef OLED_ENABLE -uint16_t startup_timer; - -static void render_status(void) { - /* Print current mode */ - oled_write_P(PSTR("\n\n"), false); - oled_write_ln_P(PSTR("MODE"), false); - oled_write_ln_P(PSTR(""), false); - if (keymap_config.swap_lctl_lgui) { - oled_write_ln_P(PSTR("MAC"), false); - } else { - oled_write_ln_P(PSTR("WIN"), false); - } - - switch (get_highest_layer(default_layer_state)) { - case _QWERTY: - oled_write_ln_P(PSTR("Qwerty"), false); - break; - case _COLEMAK: - oled_write_ln_P(PSTR("Colemak"), false); - break; - default: - oled_write_P(PSTR("Undefined"), false); - } - oled_write_P(PSTR("\n\n"), false); - /* Print current layer */ - oled_write_ln_P(PSTR("LAYER"), false); - switch (get_highest_layer(layer_state)) { - case _COLEMAK: - case _QWERTY: - oled_write_ln_P(PSTR("Base"), false); - break; - case _RAISE: - oled_write_ln_P(PSTR("Raise"), false); - break; - case _LOWER: - oled_write_ln_P(PSTR("Lower"), false); - break; - case _ADJUST: - oled_write_ln_P(PSTR("Adjust"), false); - break; - default: - oled_write_ln_P(PSTR("Undefined"), false); - } - oled_write_P(PSTR("\n\n"), false); - led_t led_usb_state = host_keyboard_led_state(); - oled_write_ln_P(PSTR("CAPSLOCK"), led_usb_state.caps_lock); -} - -oled_rotation_t oled_init_user(oled_rotation_t rotation) { - startup_timer = timer_read(); - return OLED_ROTATION_90; -} - -static void render_qmk_logo(void) { - static const char PROGMEM qmk_logo[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xfc, 0xfe, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xfe, 0xfc, 0xf8, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0x71, 0x71, 0x71, 0x71, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x71, 0x71, 0x71, 0x71, 0x71, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0xf8, 0xf0, 0xf1, 0xf1, 0xe3, 0xe3, 0xe3, 0x00, 0x00, 0x00, 0xe3, 0xe3, 0xf3, 0xf1, 0xf1, - 0xf0, 0xf8, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x07, 0x07, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xfc, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x07, 0x07, 0x07, 0x07, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x7f, 0xff, 0x7f, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0x70, 0x30, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x38, 0xf0, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x78, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf8, 0x38, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xf0, 0x38, 0x18, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xe3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x03, 0x0f, 0x7e, 0xf8, 0xc0, 0x00, 0x80, 0xe0, 0xfc, 0x1f, 0x07, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x0c, 0x1e, 0x7f, 0xf3, 0xc1, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0f, 0x0e, 0x0c, 0x1c, 0x1c, - 0x1c, 0x0c, 0x0c, 0x0e, 0x0f, 0x1f, 0x38, 0x30, 0x70, 0x20, 0x00, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, 0x0f, 0x0f, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x0f, 0x0c, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x7c, 0xfe, 0xfe, 0xfc, 0xfc, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xfc, 0xfe, 0xfe, 0xfe, 0x3c, 0x00, 0x00, 0x00, - 0x00, 0xe0, 0xf8, 0xfc, 0xfc, 0xfc, 0xf8, 0x10, 0x00, 0x00, 0x00, 0xc0, 0xf8, 0xfc, 0xfe, 0xfe, 0xfe, 0xfe, 0xfc, 0xf8, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf0, 0xfc, 0xff, 0xff, 0xff, 0x7f, 0x0f, 0x01, 0x00, 0x00, 0xe0, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x03, 0x00, 0x00, 0xc0, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x07, 0x03, 0x1f, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0xc0, 0xf0, 0xfe, 0xff, 0xff, 0xff, 0x3f, 0x0f, 0x01, 0x00, 0x00, 0xe0, 0xf8, 0xff, 0xff, 0xff, 0x7f, 0x1f, 0x03, 0x00, 0x00, 0xc0, 0xf8, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, - 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, 0x3f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x3f, 0x0f, 0x01, 0x00, 0x00, 0x00, 0x38, 0x7f, 0x7f, 0x7f, 0x3f, 0x1f, 0x03, 0x00, 0x00, 0x00, 0x18, 0x7e, 0x7f, 0x7f, 0x7f, 0x1f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1f, 0x3f, 0x7f, 0x7f, 0x7f, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x1e, 0x3e, 0x1c, 0x08, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x3e, 0x3e, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; - oled_write_raw_P(qmk_logo, sizeof(qmk_logo)); -} - -static void render_logo(void) { - static const char PROGMEM sofle_pico_logo[] = { - 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xe0, 0xf0, 0xf0, 0xf0, 0x70, 0xf0, 0xf0, 0xe0, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf0, 0xf8, 0xfc, 0x3c, 0x3c, 0x3c, 0x7c, 0xf8, 0xf8, 0xf0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x1f, 0x3f, 0x3f, 0x3f, 0x7c, 0x78, 0xf8, 0xf8, 0xf0, 0xe0, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xfc, 0x3c, 0x1c, 0x1e, 0x1e, 0x3c, 0xfc, 0xf8, 0xf0, 0xc0, 0x00, 0x1c, 0x1c, 0xff, 0xff, 0xff, 0xff, 0x1c, 0x1c, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xfc, 0xfc, 0xce, 0xce, 0xce, 0xdc, 0xfc, 0xfc, 0xf8, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x1e, 0x1e, 0x1e, 0x3c, 0x3c, 0x3c, 0x3e, 0x1f, 0x1f, 0x0f, 0x07, 0x01, 0x00, 0x01, 0x07, - 0x0f, 0x1f, 0x1e, 0x3c, 0x3c, 0x3c, 0x1e, 0x1f, 0x0f, 0x07, 0x03, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x01, 0x07, 0x0f, 0x1f, 0x1f, 0x3c, 0x38, 0x38, 0x3c, 0x1c, 0x1c, 0x0c, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0x06, 0x06, 0x06, 0x0e, 0x9e, 0xfc, 0xf8, 0x00, 0x00, 0x8e, 0x8e, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x07, 0x07, 0x07, 0x07, 0x03, 0x03, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x7c, 0xfe, 0xff, 0x83, 0x01, 0x01, 0x01, 0x83, 0x83, 0x00, 0x00, 0x7e, 0xff, 0xc7, 0x83, 0x01, 0x01, 0x01, - 0x83, 0xff, 0xff, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc3, 0xe3, 0xe0, 0xe0, 0xe0, 0xf0, 0x70, 0x70, 0x70, 0x70, 0x30, 0x33, 0x73, 0xe0, 0x60, 0xe0, 0xe0, 0xc0, 0xc1, 0x83, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x80, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x70, 0x30, 0x70, 0x70, 0x70, 0x70, 0x70, 0xf0, 0xe0, 0xe0, 0xe0, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1f, 0xff, 0xf8, 0xd0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x20, 0x20, 0x40, 0xc0, 0x80, 0x00, 0x01, 0x87, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0xff, 0xff, 0x03, 0x01, 0x00, 0x80, 0xc0, 0x40, 0x20, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, - 0xf0, 0xf8, 0x7f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0f, 0x1c, 0x1c, 0x38, 0x78, 0x60, 0x60, 0x60, 0x60, 0x60, 0x70, 0x38, 0x39, 0xdf, 0xef, 0xf7, 0x7b, 0x39, 0x1c, 0x1c, 0x0e, 0x0e, 0x06, 0x06, 0x06, 0x06, 0x06, 0x0e, 0x0e, 0x1e, 0x1c, 0x3c, 0x79, 0xfb, 0xf7, 0xef, 0x9f, 0x38, 0x30, 0x70, 0x60, 0x60, 0x60, 0x60, 0x70, 0x38, 0x3c, 0x1c, 0x0f, 0x0f, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xf8, 0xfc, 0x7e, 0x7f, 0xff, 0xff, 0xe3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc1, 0xff, 0x7f, 0x7f, 0x3f, 0x7c, 0xf8, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x7f, 0xff, 0x81, 0x00, 0x00, 0x00, 0x00, 0x01, 0xcf, 0xff, 0xfe, 0x7c, 0x78, 0x78, 0x38, 0x30, 0x30, 0x30, 0x30, 0x30, 0x38, 0x78, 0x78, 0x7c, 0xfe, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0f, 0x0e, 0x1e, 0x3f, 0x7f, 0xf1, 0xe0, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xc0, 0xe1, 0xf3, 0x7f, 0x3f, 0x1f, 0x0f, 0x07, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x03, 0x03, 0x03, - 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; - oled_write_raw_P(sofle_pico_logo, sizeof(sofle_pico_logo)); -} - -bool oled_task_user(void) { - static bool finished_logo = false; - if ((timer_elapsed(startup_timer) < OLED_LOGO_TIMEOUT) && !finished_logo) { - /* Display the logo for 5 seconds on boot. */ - if (is_keyboard_master()) { - render_logo(); - /* Adding text below the partial screen logo requires oled_set_cursor. There are 10 chars per line. Subsequent oled_set_cursor simplifies line wraps. */ - oled_set_cursor(0, 12); - oled_write_ln_P(PSTR("v3.5.4"), false); - oled_set_cursor(0, 13); - oled_write_P(PSTR("03-22-2024"), false); - oled_set_cursor(0, 14); - oled_write_P(PSTR("by:github/"), false); - oled_set_cursor(0, 15); - oled_write_P(PSTR("JellyTitan"), false); - } else { - render_qmk_logo(); - } - } else { - /* Display the current keyboard state. */ - if (!finished_logo) { - finished_logo = true; - /* Clears the OLED. */ - oled_clear(); - } - if (is_keyboard_master()) { - /* Renders the current keyboard state (layer, lock, caps, scroll, etc) */ - render_status(); - } else { - render_logo(); - } - } - return false; -} -#endif - layer_state_t layer_state_set_user(layer_state_t state) { return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); } bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case KC_QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - return false; - case KC_COLEMAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_COLEMAK); - } - return false; - case KC_PRVWD: - if (record->event.pressed) { - if (keymap_config.swap_lctl_lgui) { - register_mods(mod_config(MOD_LALT)); - register_code(KC_LEFT); - } else { - register_mods(mod_config(MOD_LCTL)); - register_code(KC_LEFT); - } - } else { - if (keymap_config.swap_lctl_lgui) { - unregister_mods(mod_config(MOD_LALT)); - unregister_code(KC_LEFT); - } else { - unregister_mods(mod_config(MOD_LCTL)); - unregister_code(KC_LEFT); - } - } - break; - case KC_NXTWD: - if (record->event.pressed) { - if (keymap_config.swap_lctl_lgui) { - register_mods(mod_config(MOD_LALT)); - register_code(KC_RIGHT); - } else { - register_mods(mod_config(MOD_LCTL)); - register_code(KC_RIGHT); - } - } else { - if (keymap_config.swap_lctl_lgui) { - unregister_mods(mod_config(MOD_LALT)); - unregister_code(KC_RIGHT); - } else { - unregister_mods(mod_config(MOD_LCTL)); - unregister_code(KC_RIGHT); - } - } - break; - case KC_LSTRT: - if (record->event.pressed) { - if (keymap_config.swap_lctl_lgui) { - /* CMD-arrow on Mac, but we have CTL and GUI swapped */ - register_mods(mod_config(MOD_LCTL)); - register_code(KC_LEFT); - } else { - register_code(KC_HOME); - } - } else { - if (keymap_config.swap_lctl_lgui) { - unregister_mods(mod_config(MOD_LCTL)); - unregister_code(KC_LEFT); - } else { - unregister_code(KC_HOME); - } - } - break; - case KC_LEND: - if (record->event.pressed) { - if (keymap_config.swap_lctl_lgui) { - /* CMD-arrow on Mac, but we have CTL and GUI swapped */ - register_mods(mod_config(MOD_LCTL)); - register_code(KC_RIGHT); - } else { - register_code(KC_END); - } - } else { - if (keymap_config.swap_lctl_lgui) { - unregister_mods(mod_config(MOD_LCTL)); - unregister_code(KC_RIGHT); - } else { - unregister_code(KC_END); - } - } - break; - case KC_DLINE: - if (record->event.pressed) { - register_mods(mod_config(MOD_LCTL)); - register_code(KC_BSPC); - } else { - unregister_mods(mod_config(MOD_LCTL)); - unregister_code(KC_BSPC); - } - break; case KC_COPY: if (record->event.pressed) { register_mods(mod_config(MOD_LCTL)); diff --git a/keyboards/sofle_pico/keymaps/via/readme.md b/keyboards/sofle_pico/keymaps/via/readme.md index 622c25ad84c..02ee27d4f78 100644 --- a/keyboards/sofle_pico/keymaps/via/readme.md +++ b/keyboards/sofle_pico/keymaps/via/readme.md @@ -4,14 +4,7 @@ # VIA keymap for Sofle Pico Keyboard -Ported directly from the classic Sofle Keyboard by Josef Adamcik. -Layout in [Keyboard Layout Editor](http://www.keyboard-layout-editor.com/#/gists/76efb423a46cbbea75465cb468eef7ff) and [adjust layer](http://www.keyboard-layout-editor.com/#/gists/4bcf66f922cfd54da20ba04905d56bd4) - -Features: - -- Symmetric modifiers (CMD/Super, Alt/Opt, Ctrl, Shift) -- Various modes, can be switched (using Adjust layer and the selected one is stored in EEPROM. -- Modes for Qwerty and Colemak support -- Modes for Mac vs Linux/Win support -> different order of modifiers and different action shortcuts on the "UPPER" layer (the red one in the image). Designed to simplify transtions when switching between operating systems often. -- The OLED on master half shows selected mode and caps lock state and is rotated. -- Left encoder controls volume up/down/mute. Right encoder PGUP/PGDOWN. +Adapted from the classic Sofle Keyboard by Josef Adamcik. +Simplified to serve as a starting point for further customizations. +Layout in [Keyboard Layout Editor](http://www.keyboard-layout-editor.com/#/gists/76efb423a46cbbea75465cb468eef7ff) +Left encoder controls volume up/down/mute. Right encoder PGUP/PGDOWN. diff --git a/keyboards/sofle_pico/sofle_pico.c b/keyboards/sofle_pico/sofle_pico.c new file mode 100644 index 00000000000..3d1e7ead1ec --- /dev/null +++ b/keyboards/sofle_pico/sofle_pico.c @@ -0,0 +1,32 @@ +// Copyright 2024 Ryan Neff (@JellyTitan) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" + +#ifdef OLED_ENABLE + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + return OLED_ROTATION_90; +} + +static void render_logo(void) { + static const char PROGMEM sofle_pico_logo[] = { + 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xe0, 0xf0, 0xf0, 0xf0, 0x70, 0xf0, 0xf0, 0xe0, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf0, 0xf8, 0xfc, 0x3c, 0x3c, 0x3c, 0x7c, 0xf8, 0xf8, 0xf0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x1f, 0x3f, 0x3f, 0x3f, 0x7c, 0x78, 0xf8, 0xf8, 0xf0, 0xe0, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xfc, 0x3c, 0x1c, 0x1e, 0x1e, 0x3c, 0xfc, 0xf8, 0xf0, 0xc0, 0x00, 0x1c, 0x1c, 0xff, 0xff, 0xff, 0xff, 0x1c, 0x1c, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xfc, 0xfc, 0xce, 0xce, 0xce, 0xdc, 0xfc, 0xfc, 0xf8, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x1e, 0x1e, 0x1e, 0x3c, 0x3c, 0x3c, 0x3e, 0x1f, 0x1f, 0x0f, 0x07, 0x01, 0x00, 0x01, 0x07, + 0x0f, 0x1f, 0x1e, 0x3c, 0x3c, 0x3c, 0x1e, 0x1f, 0x0f, 0x07, 0x03, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x01, 0x07, 0x0f, 0x1f, 0x1f, 0x3c, 0x38, 0x38, 0x3c, 0x1c, 0x1c, 0x0c, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0x06, 0x06, 0x06, 0x0e, 0x9e, 0xfc, 0xf8, 0x00, 0x00, 0x8e, 0x8e, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x07, 0x07, 0x07, 0x07, 0x03, 0x03, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x7c, 0xfe, 0xff, 0x83, 0x01, 0x01, 0x01, 0x83, 0x83, 0x00, 0x00, 0x7e, 0xff, 0xc7, 0x83, 0x01, 0x01, 0x01, + 0x83, 0xff, 0xff, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc3, 0xe3, 0xe0, 0xe0, 0xe0, 0xf0, 0x70, 0x70, 0x70, 0x70, 0x30, 0x33, 0x73, 0xe0, 0x60, 0xe0, 0xe0, 0xc0, 0xc1, 0x83, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x80, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x70, 0x30, 0x70, 0x70, 0x70, 0x70, 0x70, 0xf0, 0xe0, 0xe0, 0xe0, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1f, 0xff, 0xf8, 0xd0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x20, 0x20, 0x40, 0xc0, 0x80, 0x00, 0x01, 0x87, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0xff, 0xff, 0x03, 0x01, 0x00, 0x80, 0xc0, 0x40, 0x20, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0xf0, 0xf8, 0x7f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0f, 0x1c, 0x1c, 0x38, 0x78, 0x60, 0x60, 0x60, 0x60, 0x60, 0x70, 0x38, 0x39, 0xdf, 0xef, 0xf7, 0x7b, 0x39, 0x1c, 0x1c, 0x0e, 0x0e, 0x06, 0x06, 0x06, 0x06, 0x06, 0x0e, 0x0e, 0x1e, 0x1c, 0x3c, 0x79, 0xfb, 0xf7, 0xef, 0x9f, 0x38, 0x30, 0x70, 0x60, 0x60, 0x60, 0x60, 0x70, 0x38, 0x3c, 0x1c, 0x0f, 0x0f, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xf8, 0xfc, 0x7e, 0x7f, 0xff, 0xff, 0xe3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc1, 0xff, 0x7f, 0x7f, 0x3f, 0x7c, 0xf8, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7f, 0xff, 0x81, 0x00, 0x00, 0x00, 0x00, 0x01, 0xcf, 0xff, 0xfe, 0x7c, 0x78, 0x78, 0x38, 0x30, 0x30, 0x30, 0x30, 0x30, 0x38, 0x78, 0x78, 0x7c, 0xfe, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0f, 0x0e, 0x1e, 0x3f, 0x7f, 0xf1, 0xe0, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xc0, 0xe1, 0xf3, 0x7f, 0x3f, 0x1f, 0x0f, 0x07, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + oled_write_raw_P(sofle_pico_logo, sizeof(sofle_pico_logo)); +} + +bool oled_task_kb(void) { + if (!oled_task_user()) { + return false; + } + render_logo(); + return false; +} + +#endif From 83d1fb70b41022dcddb624f13787c5d1d202ae09 Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Wed, 27 Mar 2024 20:11:01 -0700 Subject: [PATCH 70/87] Removes pointing device config at the keyboard level. Co-authored-by: jack <0x6a73@protonmail.com> --- keyboards/sofle_pico/config.h | 9 --------- 1 file changed, 9 deletions(-) diff --git a/keyboards/sofle_pico/config.h b/keyboards/sofle_pico/config.h index b615ff46baf..0486eaa6430 100644 --- a/keyboards/sofle_pico/config.h +++ b/keyboards/sofle_pico/config.h @@ -27,15 +27,6 @@ # define ENCODER_MAP_KEY_DELAY 10 #endif -/* Mouse settings */ -#define MOUSEKEY_MOVE_DELTA 8 -#define MOUSEKEY_WHEEL_MAX_SPEED 42 -#define MOUSEKEY_WHEEL_TIME_TO_MAX 15 -#define POINTING_DEVICE_ROTATION_90 -#define SPLIT_POINTING_ENABLE -#define POINTING_DEVICE_RIGHT -#define POINTING_DEVICE_TASK_THROTTLE_MS 8 - #ifdef RGB_MATRIX_ENABLE # define RGB_MATRIX_TYPING_HEATMAP_DECREASE_DELAY_MS 50 /* If you're setting colors per key, this is required */ From 0a210d52076ef844ec858a7abc8f1ebe938403e5 Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Wed, 27 Mar 2024 20:17:01 -0700 Subject: [PATCH 71/87] Removes extended layer count, and extra rgb config from keyboard level Co-authored-by: jack <0x6a73@protonmail.com> --- keyboards/sofle_pico/config.h | 9 --------- 1 file changed, 9 deletions(-) diff --git a/keyboards/sofle_pico/config.h b/keyboards/sofle_pico/config.h index 0486eaa6430..2a879929628 100644 --- a/keyboards/sofle_pico/config.h +++ b/keyboards/sofle_pico/config.h @@ -29,13 +29,4 @@ #ifdef RGB_MATRIX_ENABLE # define RGB_MATRIX_TYPING_HEATMAP_DECREASE_DELAY_MS 50 -/* If you're setting colors per key, this is required */ -# define SPLIT_LAYER_STATE_ENABLE -/* Turns off RGB effects when there is no longer a USB connection */ -# define RGB_DISABLE_WHEN_USB_SUSPENDED -#endif - -/* Allows for more than the default 4 layers in VIA. */ -#ifndef DYNAMIC_KEYMAP_LAYER_COUNT -# define DYNAMIC_KEYMAP_LAYER_COUNT 5 #endif From c03ff53b349f8bf39a0cf14e2ff7ea9c58024263 Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Wed, 27 Mar 2024 20:18:31 -0700 Subject: [PATCH 72/87] Moves layer state transport sync to json config Co-authored-by: jack <0x6a73@protonmail.com> --- keyboards/sofle_pico/info.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/keyboards/sofle_pico/info.json b/keyboards/sofle_pico/info.json index b361fd07cf0..959e360d210 100644 --- a/keyboards/sofle_pico/info.json +++ b/keyboards/sofle_pico/info.json @@ -159,6 +159,11 @@ {"pin_a": "GP14", "pin_b": "GP15"} ] } + }, + "transport": { + "sync": { + "layer_state": true + } } }, "tags": ["ortho", "split", "rgb", "encoder", "OLED", "128x64", "tenting_puck"], From caf496ff0e3145c7c7bcc0f40a87b24c62b427d7 Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Fri, 29 Mar 2024 12:57:04 -0700 Subject: [PATCH 73/87] Removes keyboard level conditionals wrapping oled size, timeout, and others Co-authored-by: Drashna Jaelre --- keyboards/sofle_pico/config.h | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/keyboards/sofle_pico/config.h b/keyboards/sofle_pico/config.h index 2a879929628..95c9a746691 100644 --- a/keyboards/sofle_pico/config.h +++ b/keyboards/sofle_pico/config.h @@ -17,16 +17,9 @@ #define I2C1_SDA_PIN GP6 #define I2C1_SCL_PIN GP7 -#ifdef OLED_ENABLE -# define OLED_DISPLAY_128X64 -# define OLED_TIMEOUT 30000 -#endif +#define OLED_DISPLAY_128X64 +#define OLED_TIMEOUT 30000 -/* Encoder settings */ -#ifdef ENCODER_MAP_ENABLE -# define ENCODER_MAP_KEY_DELAY 10 -#endif +#define ENCODER_MAP_KEY_DELAY 10 -#ifdef RGB_MATRIX_ENABLE -# define RGB_MATRIX_TYPING_HEATMAP_DECREASE_DELAY_MS 50 -#endif +#define RGB_MATRIX_TYPING_HEATMAP_DECREASE_DELAY_MS 50 From b9f6310f87fd28a21979d5180dc30c2b43b86cd4 Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Fri, 29 Mar 2024 12:59:24 -0700 Subject: [PATCH 74/87] Fixes lazy encoder formatting Co-authored-by: Drashna Jaelre --- keyboards/sofle_pico/keymaps/default/keymap.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/keyboards/sofle_pico/keymaps/default/keymap.c b/keyboards/sofle_pico/keymaps/default/keymap.c index 253048e6a57..72cccd44cb9 100644 --- a/keyboards/sofle_pico/keymaps/default/keymap.c +++ b/keyboards/sofle_pico/keymaps/default/keymap.c @@ -156,6 +156,10 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { #ifdef ENCODER_MAP_ENABLE const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [0] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, [1] = {ENCODER_CCW_CW(KC_PGUP, KC_PGDN)}, [2] = {ENCODER_CCW_CW(_______, _______)}, [3] = {ENCODER_CCW_CW(_______, _______)}, [4] = {ENCODER_CCW_CW(_______, _______)}, + [0] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, + [1] = {ENCODER_CCW_CW(KC_PGUP, KC_PGDN)}, + [2] = {ENCODER_CCW_CW(_______, _______)}, + [3] = {ENCODER_CCW_CW(_______, _______)}, + [4] = {ENCODER_CCW_CW(_______, _______)}, }; #endif From c9da4b57ec876f3a13598d34b5c1086fbb19493f Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Fri, 29 Mar 2024 13:09:06 -0700 Subject: [PATCH 75/87] Removes vestigial encoder map layer --- keyboards/sofle_pico/keymaps/default/keymap.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/keyboards/sofle_pico/keymaps/default/keymap.c b/keyboards/sofle_pico/keymaps/default/keymap.c index 72cccd44cb9..5c396bb2e6e 100644 --- a/keyboards/sofle_pico/keymaps/default/keymap.c +++ b/keyboards/sofle_pico/keymaps/default/keymap.c @@ -156,10 +156,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { #ifdef ENCODER_MAP_ENABLE const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [0] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, - [1] = {ENCODER_CCW_CW(KC_PGUP, KC_PGDN)}, - [2] = {ENCODER_CCW_CW(_______, _______)}, - [3] = {ENCODER_CCW_CW(_______, _______)}, - [4] = {ENCODER_CCW_CW(_______, _______)}, + [0] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, + [1] = {ENCODER_CCW_CW(KC_PGUP, KC_PGDN)}, + [2] = {ENCODER_CCW_CW(_______, _______)}, + [3] = {ENCODER_CCW_CW(_______, _______)}, }; #endif From a011ffbcb003c457b6461229d44660c8731912fc Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Fri, 29 Mar 2024 13:21:57 -0700 Subject: [PATCH 76/87] Removes depricated copy/paste/cut/undo methods --- keyboards/sofle_pico/keymaps/default/keymap.c | 45 +------------------ 1 file changed, 1 insertion(+), 44 deletions(-) diff --git a/keyboards/sofle_pico/keymaps/default/keymap.c b/keyboards/sofle_pico/keymaps/default/keymap.c index 5c396bb2e6e..b30ab5970a8 100644 --- a/keyboards/sofle_pico/keymaps/default/keymap.c +++ b/keyboards/sofle_pico/keymaps/default/keymap.c @@ -74,7 +74,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______ , _______ , _______ , _______ , _______, _______, _______, _______, _______, _______, _______, KC_INS , KC_PSCR , KC_APP , XXXXXXX , XXXXXXX , KC_PGUP, XXXXXXX, KC_UP , XXXXXXX, XXXXXXX, 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, XXXXXXX, XXXXXXX, _______, + _______, C(KC_Z), C(KC_X) , C(KC_C) , C(KC_V) , XXXXXXX , _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______ , _______ , _______ , _______ , _______, _______, _______, _______, _______, _______ ), /* ADJUST @@ -111,49 +111,6 @@ layer_state_t layer_state_set_user(layer_state_t state) { return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); } -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case KC_COPY: - if (record->event.pressed) { - register_mods(mod_config(MOD_LCTL)); - register_code(KC_C); - } else { - unregister_mods(mod_config(MOD_LCTL)); - unregister_code(KC_C); - } - return false; - case KC_PASTE: - if (record->event.pressed) { - register_mods(mod_config(MOD_LCTL)); - register_code(KC_V); - } else { - unregister_mods(mod_config(MOD_LCTL)); - unregister_code(KC_V); - } - return false; - case KC_CUT: - if (record->event.pressed) { - register_mods(mod_config(MOD_LCTL)); - register_code(KC_X); - } else { - unregister_mods(mod_config(MOD_LCTL)); - unregister_code(KC_X); - } - return false; - break; - case KC_UNDO: - if (record->event.pressed) { - register_mods(mod_config(MOD_LCTL)); - register_code(KC_Z); - } else { - unregister_mods(mod_config(MOD_LCTL)); - unregister_code(KC_Z); - } - return false; - } - return true; -} - #ifdef ENCODER_MAP_ENABLE const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [0] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, From cad7282e28fde6875889dd08a2b4ab416f875b4d Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Fri, 29 Mar 2024 13:28:38 -0700 Subject: [PATCH 77/87] Removed vestigial OLED logo timeout Co-authored-by: Drashna Jaelre --- keyboards/sofle_pico/keymaps/default/keymap.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/keyboards/sofle_pico/keymaps/default/keymap.c b/keyboards/sofle_pico/keymaps/default/keymap.c index b30ab5970a8..62558f96946 100644 --- a/keyboards/sofle_pico/keymaps/default/keymap.c +++ b/keyboards/sofle_pico/keymaps/default/keymap.c @@ -101,11 +101,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // clang-format on }; -/* Default timeout for displaying logo on boot. */ -#ifndef OLED_LOGO_TIMEOUT -/* 10 second timeout. */ -# define OLED_LOGO_TIMEOUT 10000 -#endif layer_state_t layer_state_set_user(layer_state_t state) { return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); From 4986536181e7290b2c88b42f40eddef15daca818 Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Fri, 29 Mar 2024 13:42:27 -0700 Subject: [PATCH 78/87] Enables tri_layer feature --- keyboards/sofle_pico/keymaps/default/keymap.c | 7 +------ keyboards/sofle_pico/keymaps/default/rules.mk | 1 + keyboards/sofle_pico/keymaps/via/rules.mk | 1 + 3 files changed, 3 insertions(+), 6 deletions(-) create mode 100644 keyboards/sofle_pico/keymaps/default/rules.mk diff --git a/keyboards/sofle_pico/keymaps/default/keymap.c b/keyboards/sofle_pico/keymaps/default/keymap.c index 62558f96946..d71bd06abb0 100644 --- a/keyboards/sofle_pico/keymaps/default/keymap.c +++ b/keyboards/sofle_pico/keymaps/default/keymap.c @@ -33,7 +33,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_LCTL, MO(_LOWER), KC_ENT, KC_SPC, MO(_RAISE), KC_RCTL, KC_RALT, KC_RGUI + KC_LGUI, KC_LALT, KC_LCTL, TL_LOWR, KC_ENT, KC_SPC ,TL_UPPR,KC_RCTL, KC_RALT, KC_RGUI ), /* LOWER * ,-----------------------------------------. ,-----------------------------------------. @@ -101,11 +101,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // clang-format on }; - -layer_state_t layer_state_set_user(layer_state_t state) { - return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); -} - #ifdef ENCODER_MAP_ENABLE const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [0] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, diff --git a/keyboards/sofle_pico/keymaps/default/rules.mk b/keyboards/sofle_pico/keymaps/default/rules.mk new file mode 100644 index 00000000000..7c9bf212a6f --- /dev/null +++ b/keyboards/sofle_pico/keymaps/default/rules.mk @@ -0,0 +1 @@ +TRI_LAYER_ENABLE = yes diff --git a/keyboards/sofle_pico/keymaps/via/rules.mk b/keyboards/sofle_pico/keymaps/via/rules.mk index 1e5b99807cb..3855616486a 100644 --- a/keyboards/sofle_pico/keymaps/via/rules.mk +++ b/keyboards/sofle_pico/keymaps/via/rules.mk @@ -1 +1,2 @@ +TRI_LAYER_ENABLE = yes VIA_ENABLE = yes From 3a1a71d2c9951661dd0b936d4026e7107047005a Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Fri, 29 Mar 2024 13:50:42 -0700 Subject: [PATCH 79/87] Cleans up keymap spacing --- keyboards/sofle_pico/keymaps/default/keymap.c | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/keyboards/sofle_pico/keymaps/default/keymap.c b/keyboards/sofle_pico/keymaps/default/keymap.c index d71bd06abb0..533464766b9 100644 --- a/keyboards/sofle_pico/keymaps/default/keymap.c +++ b/keyboards/sofle_pico/keymaps/default/keymap.c @@ -29,11 +29,11 @@ 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_LCTL, TL_LOWR, KC_ENT, KC_SPC ,TL_UPPR,KC_RCTL, KC_RALT, KC_RGUI + 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_LCTL, TL_LOWR, KC_ENT, KC_SPC , TL_UPPR, KC_RCTL, KC_RALT, KC_RGUI ), /* LOWER * ,-----------------------------------------. ,-----------------------------------------. @@ -50,10 +50,10 @@ 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, _______, + _______, 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 @@ -71,11 +71,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `----------------------------------' '------''---------------------------' */ [_RAISE] = LAYOUT( - _______, _______, _______ , _______ , _______ , _______ , _______, _______, _______, _______, _______, _______, - _______, KC_INS , KC_PSCR , KC_APP , XXXXXXX , XXXXXXX , KC_PGUP, XXXXXXX, KC_UP , XXXXXXX, XXXXXXX, KC_BSPC, - _______, KC_LALT, KC_LCTL , KC_LSFT , XXXXXXX , KC_CAPS , KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL , KC_BSPC, - _______, C(KC_Z), C(KC_X) , C(KC_C) , C(KC_V) , XXXXXXX , _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, - _______ , _______ , _______ , _______ , _______, _______, _______, _______, _______, _______ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_INS, KC_PSCR, KC_APP, XXXXXXX, XXXXXXX, KC_PGUP, XXXXXXX, KC_UP , XXXXXXX, XXXXXXX, KC_BSPC, + _______, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, KC_CAPS, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL , KC_BSPC, + _______, C(KC_Z), C(KC_X), C(KC_C), C(KC_V), XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), /* ADJUST * ,-----------------------------------------. ,-----------------------------------------. @@ -92,11 +92,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `----------------------------------' '------''---------------------------' */ [_ADJUST] = LAYOUT( - XXXXXXX , XXXXXXX, XXXXXXX , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - QK_BOOT , XXXXXXX, XXXXXXX , XXXXXXX, 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, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, 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, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) // clang-format on }; From 5c1383db290d562c2feff03b9e414017fa73b3a5 Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Fri, 29 Mar 2024 13:51:28 -0700 Subject: [PATCH 80/87] Copies default keymap updates to VIA keymap --- keyboards/sofle_pico/keymaps/via/keymap.c | 96 ++++++----------------- 1 file changed, 23 insertions(+), 73 deletions(-) diff --git a/keyboards/sofle_pico/keymaps/via/keymap.c b/keyboards/sofle_pico/keymaps/via/keymap.c index 253048e6a57..533464766b9 100644 --- a/keyboards/sofle_pico/keymaps/via/keymap.c +++ b/keyboards/sofle_pico/keymaps/via/keymap.c @@ -29,11 +29,11 @@ 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_LCTL, MO(_LOWER), KC_ENT, KC_SPC, MO(_RAISE), KC_RCTL, KC_RALT, KC_RGUI + 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_LCTL, TL_LOWR, KC_ENT, KC_SPC , TL_UPPR, KC_RCTL, KC_RALT, KC_RGUI ), /* LOWER * ,-----------------------------------------. ,-----------------------------------------. @@ -50,10 +50,10 @@ 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, _______, + _______, 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 @@ -71,11 +71,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `----------------------------------' '------''---------------------------' */ [_RAISE] = LAYOUT( - _______, _______, _______ , _______ , _______ , _______ , _______, _______, _______, _______, _______, _______, - _______, KC_INS , KC_PSCR , KC_APP , XXXXXXX , XXXXXXX , KC_PGUP, XXXXXXX, KC_UP , XXXXXXX, XXXXXXX, 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, XXXXXXX, XXXXXXX, _______, - _______ , _______ , _______ , _______ , _______, _______, _______, _______, _______, _______ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_INS, KC_PSCR, KC_APP, XXXXXXX, XXXXXXX, KC_PGUP, XXXXXXX, KC_UP , XXXXXXX, XXXXXXX, KC_BSPC, + _______, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, KC_CAPS, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL , KC_BSPC, + _______, C(KC_Z), C(KC_X), C(KC_C), C(KC_V), XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), /* ADJUST * ,-----------------------------------------. ,-----------------------------------------. @@ -92,70 +92,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `----------------------------------' '------''---------------------------' */ [_ADJUST] = LAYOUT( - XXXXXXX , XXXXXXX, XXXXXXX , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - QK_BOOT , XXXXXXX, XXXXXXX , XXXXXXX, 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, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, 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, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) // clang-format on }; -/* Default timeout for displaying logo on boot. */ -#ifndef OLED_LOGO_TIMEOUT -/* 10 second timeout. */ -# define OLED_LOGO_TIMEOUT 10000 -#endif - -layer_state_t layer_state_set_user(layer_state_t state) { - return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case KC_COPY: - if (record->event.pressed) { - register_mods(mod_config(MOD_LCTL)); - register_code(KC_C); - } else { - unregister_mods(mod_config(MOD_LCTL)); - unregister_code(KC_C); - } - return false; - case KC_PASTE: - if (record->event.pressed) { - register_mods(mod_config(MOD_LCTL)); - register_code(KC_V); - } else { - unregister_mods(mod_config(MOD_LCTL)); - unregister_code(KC_V); - } - return false; - case KC_CUT: - if (record->event.pressed) { - register_mods(mod_config(MOD_LCTL)); - register_code(KC_X); - } else { - unregister_mods(mod_config(MOD_LCTL)); - unregister_code(KC_X); - } - return false; - break; - case KC_UNDO: - if (record->event.pressed) { - register_mods(mod_config(MOD_LCTL)); - register_code(KC_Z); - } else { - unregister_mods(mod_config(MOD_LCTL)); - unregister_code(KC_Z); - } - return false; - } - return true; -} - #ifdef ENCODER_MAP_ENABLE const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [0] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, [1] = {ENCODER_CCW_CW(KC_PGUP, KC_PGDN)}, [2] = {ENCODER_CCW_CW(_______, _______)}, [3] = {ENCODER_CCW_CW(_______, _______)}, [4] = {ENCODER_CCW_CW(_______, _______)}, + [0] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, + [1] = {ENCODER_CCW_CW(KC_PGUP, KC_PGDN)}, + [2] = {ENCODER_CCW_CW(_______, _______)}, + [3] = {ENCODER_CCW_CW(_______, _______)}, }; #endif From 24462d2eda2a5512243e9eb7c3dd365f8b0bc34a Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Sun, 31 Mar 2024 16:20:28 -0700 Subject: [PATCH 81/87] Removes ee_hands - letting master default to LH Updates readme to remove LH/RH flashing --- keyboards/sofle_pico/config.h | 4 +--- keyboards/sofle_pico/readme.md | 3 +-- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/keyboards/sofle_pico/config.h b/keyboards/sofle_pico/config.h index 95c9a746691..f4f34171fa0 100644 --- a/keyboards/sofle_pico/config.h +++ b/keyboards/sofle_pico/config.h @@ -3,10 +3,8 @@ #pragma once -/* Split Keyboard Stuff */ -#define EE_HANDS /* Use full duplex communication (TRRS) */ -#define SERIAL_USART_FULL_DUPLEX +#define SERIAL_USART_FULL_DUPLEX #define SERIAL_USART_TX_PIN GP16 #define SERIAL_USART_RX_PIN GP17 /* Swap TX and RX pins if keyboard is master half. Only available on some MCU's. This _is_ available on the RP2040 */ diff --git a/keyboards/sofle_pico/readme.md b/keyboards/sofle_pico/readme.md index c0ba23761b6..1dcfeea3cbf 100644 --- a/keyboards/sofle_pico/readme.md +++ b/keyboards/sofle_pico/readme.md @@ -16,8 +16,7 @@ Make example for this keyboard (after setting up your build environment): Flashing example for this keyboard: - make sofle_pico:default:uf2-split-left - make sofle_pico:default:uf2-split-right + make sofle_pico:default:flash 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). From 0ce90e433669892181c34d6f4bbebfb57be35a2e Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Sun, 31 Mar 2024 16:27:42 -0700 Subject: [PATCH 82/87] Removed tri-layer-enable from via keymap VIA enables this by default, so it is not needed --- keyboards/sofle_pico/keymaps/via/rules.mk | 1 - 1 file changed, 1 deletion(-) diff --git a/keyboards/sofle_pico/keymaps/via/rules.mk b/keyboards/sofle_pico/keymaps/via/rules.mk index 3855616486a..1e5b99807cb 100644 --- a/keyboards/sofle_pico/keymaps/via/rules.mk +++ b/keyboards/sofle_pico/keymaps/via/rules.mk @@ -1,2 +1 @@ -TRI_LAYER_ENABLE = yes VIA_ENABLE = yes From 643b50d6b85987e60d835730c028ee35368f925d Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Mon, 8 Apr 2024 16:26:57 -0700 Subject: [PATCH 83/87] removes enabled mouse_key default Co-authored-by: jack <0x6a73@protonmail.com> --- keyboards/sofle_pico/info.json | 1 - 1 file changed, 1 deletion(-) diff --git a/keyboards/sofle_pico/info.json b/keyboards/sofle_pico/info.json index 959e360d210..b77aff35424 100644 --- a/keyboards/sofle_pico/info.json +++ b/keyboards/sofle_pico/info.json @@ -29,7 +29,6 @@ }, "mouse_key": { "delay": 10, - "enabled": true, "interval": 16, "max_speed": 2, "time_to_max": 40 From 3d373075c1be91028f6aeb206cb981f0ec4e3134 Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Mon, 8 Apr 2024 16:31:02 -0700 Subject: [PATCH 84/87] fixes oled rotation default at the keyboard level. Co-authored-by: jack <0x6a73@protonmail.com> --- keyboards/sofle_pico/sofle_pico.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/sofle_pico/sofle_pico.c b/keyboards/sofle_pico/sofle_pico.c index 3d1e7ead1ec..b237dfc5997 100644 --- a/keyboards/sofle_pico/sofle_pico.c +++ b/keyboards/sofle_pico/sofle_pico.c @@ -5,7 +5,7 @@ #ifdef OLED_ENABLE -oled_rotation_t oled_init_user(oled_rotation_t rotation) { +oled_rotation_t oled_init_kb(oled_rotation_t rotation) { return OLED_ROTATION_90; } From ea1a0c0bd37c6caa63c7c044797ae45b0640ddb8 Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Tue, 15 Oct 2024 15:33:49 -0700 Subject: [PATCH 85/87] Removes VIA-enabled keymap from Sofle Pico --- keyboards/sofle_pico/keymaps/via/keymap.c | 111 --------------------- keyboards/sofle_pico/keymaps/via/readme.md | 10 -- keyboards/sofle_pico/keymaps/via/rules.mk | 1 - 3 files changed, 122 deletions(-) delete mode 100644 keyboards/sofle_pico/keymaps/via/keymap.c delete mode 100644 keyboards/sofle_pico/keymaps/via/readme.md delete mode 100644 keyboards/sofle_pico/keymaps/via/rules.mk diff --git a/keyboards/sofle_pico/keymaps/via/keymap.c b/keyboards/sofle_pico/keymaps/via/keymap.c deleted file mode 100644 index 533464766b9..00000000000 --- a/keyboards/sofle_pico/keymaps/via/keymap.c +++ /dev/null @@ -1,111 +0,0 @@ -// Copyright 2024 Ryan Neff (@JellyTitan) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -enum sofle_layers { - _QWERTY, - _LOWER, - _RAISE, - _ADJUST, -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - // clang-format off - /* - * QWERTY - * ,-----------------------------------------. ,-----------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | ESC | Q | W | E | R | T | | Y | U | I | O | P | Bspc | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | Tab | A | S | D | F | G |-------. ,-------| H | J | K | L | ; | ' | - * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| - * |LShift| Z | X | C | V | B |-------| |-------| N | M | , | . | / |RShift| - * `-----------------------------------------/ / \ \-----------------------------------------' - * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | 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_LCTL, TL_LOWR, KC_ENT, KC_SPC , TL_UPPR, KC_RCTL, KC_RALT, KC_RGUI - ), - /* LOWER - * ,-----------------------------------------. ,-----------------------------------------. - * | | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | F12 | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | Tab | ! | @ | # | $ | % |-------. ,-------| ^ | & | * | ( | ) | | | - * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| - * | Shift| = | - | + | { | } |-------| |-------| [ | ] | ; | : | \ | Shift| - * `-----------------------------------------/ / \ \-----------------------------------------' - * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI | - * | | | | |/ / \ \ | | | | | - * `----------------------------------' '------''---------------------------' - */ - [_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 - * ,----------------------------------------. ,-----------------------------------------. - * | | | | | | | | | | | | | | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | 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| - * `-----------------------------------------/ / \ \-----------------------------------------' - * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI | - * | | | | |/ / \ \ | | | | | - * `----------------------------------' '------''---------------------------' - */ - [_RAISE] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, KC_INS, KC_PSCR, KC_APP, XXXXXXX, XXXXXXX, KC_PGUP, XXXXXXX, KC_UP , XXXXXXX, XXXXXXX, KC_BSPC, - _______, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, KC_CAPS, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL , KC_BSPC, - _______, C(KC_Z), C(KC_X), C(KC_C), C(KC_V), XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - /* ADJUST - * ,-----------------------------------------. ,-----------------------------------------. - * | | | | | | | | | | | | | | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * |QK_BOOT| | | | | | | | | | | | | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | | |MACWIN| | | |-------. ,-------| | VOLDO| MUTE | VOLUP| | | - * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| - * | | | | | | |-------| |-------| | PREV | PLAY | NEXT | | | - * `-----------------------------------------/ / \ \-----------------------------------------' - * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI | - * | | | | |/ / \ \ | | | | | - * `----------------------------------' '------''---------------------------' - */ - [_ADJUST] = LAYOUT( - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, 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, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ) - // clang-format on -}; - -#ifdef ENCODER_MAP_ENABLE -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [0] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, - [1] = {ENCODER_CCW_CW(KC_PGUP, KC_PGDN)}, - [2] = {ENCODER_CCW_CW(_______, _______)}, - [3] = {ENCODER_CCW_CW(_______, _______)}, -}; -#endif diff --git a/keyboards/sofle_pico/keymaps/via/readme.md b/keyboards/sofle_pico/keymaps/via/readme.md deleted file mode 100644 index 02ee27d4f78..00000000000 --- a/keyboards/sofle_pico/keymaps/via/readme.md +++ /dev/null @@ -1,10 +0,0 @@ -![SofleKeyboard default keymap](https://i.imgur.com/MZxVvm9.png) -![SofleKeyboard adjust layer](https://i.imgur.com/f5sKy0I.png) - - -# VIA keymap for Sofle Pico Keyboard - -Adapted from the classic Sofle Keyboard by Josef Adamcik. -Simplified to serve as a starting point for further customizations. -Layout in [Keyboard Layout Editor](http://www.keyboard-layout-editor.com/#/gists/76efb423a46cbbea75465cb468eef7ff) -Left encoder controls volume up/down/mute. Right encoder PGUP/PGDOWN. diff --git a/keyboards/sofle_pico/keymaps/via/rules.mk b/keyboards/sofle_pico/keymaps/via/rules.mk deleted file mode 100644 index 1e5b99807cb..00000000000 --- a/keyboards/sofle_pico/keymaps/via/rules.mk +++ /dev/null @@ -1 +0,0 @@ -VIA_ENABLE = yes From 6545c216105098d28ebbfcbb7de454a70df7b7f3 Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Thu, 17 Oct 2024 15:49:22 -0700 Subject: [PATCH 86/87] Removes unneded rules.mk serial driver moving to json config --- keyboards/sofle_pico/rules.mk | 1 - 1 file changed, 1 deletion(-) delete mode 100644 keyboards/sofle_pico/rules.mk diff --git a/keyboards/sofle_pico/rules.mk b/keyboards/sofle_pico/rules.mk deleted file mode 100644 index 161ec22b16e..00000000000 --- a/keyboards/sofle_pico/rules.mk +++ /dev/null @@ -1 +0,0 @@ -SERIAL_DRIVER = vendor From fe0301349de5c11f9b67cf7f8981251dee018189 Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Thu, 17 Oct 2024 15:50:24 -0700 Subject: [PATCH 87/87] Moves serial driver from rules.mk to info.json Co-authored-by: Joel Challis --- keyboards/sofle_pico/info.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/keyboards/sofle_pico/info.json b/keyboards/sofle_pico/info.json index b77aff35424..473e427f7b9 100644 --- a/keyboards/sofle_pico/info.json +++ b/keyboards/sofle_pico/info.json @@ -159,6 +159,9 @@ ] } }, + "serial": { + "driver": "vendor" + }, "transport": { "sync": { "layer_state": true