Ver código fonte

Fixup sofle (#22934)

* initial

* Update keyboards/sofle/info.json

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/sofle/info.json

Co-authored-by: Drashna Jaelre <drashna@live.com>

---------

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
jack 2 anos atrás
pai
commit
e446366326

+ 117 - 0
keyboards/sofle/info.json

@@ -0,0 +1,117 @@
+{
+    "keyboard_name": "Sofle",
+    "features": {
+        "bootmagic": true,
+        "extrakey": true,
+        "mousekey": true,
+        "nkro": true,
+        "encoder": true,
+        "oled": true
+    },
+    "build": {
+        "lto": true
+    },
+    "usb": {
+        "vid": "0xFC32"
+    },
+    "diode_direction": "COL2ROW",
+    "qmk": {
+        "tap_keycode_delay": 10
+    },
+    "split": {
+        "enabled": true,
+        "soft_serial_pin": "D2",
+        "transport": {
+            "sync": {
+                "matrix_state": true
+            }
+        }
+    },
+    "ws2812": {
+        "pin": "D3"
+    },
+    "rgblight": {
+        "led_count": 72,
+        "split_count": [36, 36],
+        "sleep": true
+    },
+    "rgb_matrix": {
+        "driver": "ws2812",
+        "split_count": [36, 36],
+        "sleep": true,
+        "layout": [
+            {"x": 96, "y": 40, "flags": 8},
+            {"x": 16, "y": 20, "flags": 2},
+            {"x": 48, "y": 10, "flags": 2},
+            {"x": 80, "y": 18, "flags": 2},
+            {"x": 88, "y": 60, "flags": 2},
+            {"x": 56, "y": 57, "flags": 2},
+            {"x": 24, "y": 60, "flags": 2},
+            {"matrix": [4, 0], "x": 32, "y": 57, "flags": 4},
+            {"matrix": [3, 0], "x": 0, "y": 48, "flags": 4},
+            {"matrix": [2, 0], "x": 0, "y": 36, "flags": 4},
+            {"matrix": [1, 0], "x": 0, "y": 24, "flags": 4},
+            {"matrix": [0, 0], "x": 0, "y": 12, "flags": 4},
+            {"matrix": [0, 1], "x": 16, "y": 12, "flags": 4},
+            {"matrix": [1, 1], "x": 16, "y": 24, "flags": 4},
+            {"matrix": [2, 1], "x": 16, "y": 36, "flags": 4},
+            {"matrix": [3, 1], "x": 16, "y": 48, "flags": 4},
+            {"matrix": [4, 1], "x": 48, "y": 55, "flags": 4},
+            {"matrix": [4, 2], "x": 64, "y": 57, "flags": 4},
+            {"matrix": [3, 2], "x": 32, "y": 45, "flags": 4},
+            {"matrix": [2, 2], "x": 32, "y": 33, "flags": 4},
+            {"matrix": [1, 2], "x": 32, "y": 21, "flags": 4},
+            {"matrix": [0, 2], "x": 32, "y": 9, "flags": 4},
+            {"matrix": [0, 3], "x": 48, "y": 7, "flags": 4},
+            {"matrix": [1, 3], "x": 48, "y": 19, "flags": 4},
+            {"matrix": [2, 3], "x": 48, "y": 31, "flags": 4},
+            {"matrix": [3, 3], "x": 48, "y": 43, "flags": 4},
+            {"matrix": [4, 3], "x": 80, "y": 59, "flags": 4},
+            {"matrix": [4, 4], "x": 96, "y": 64, "flags": 4},
+            {"matrix": [3, 4], "x": 64, "y": 45, "flags": 4},
+            {"matrix": [2, 4], "x": 64, "y": 33, "flags": 4},
+            {"matrix": [1, 4], "x": 64, "y": 21, "flags": 4},
+            {"matrix": [0, 4], "x": 64, "y": 9, "flags": 4},
+            {"matrix": [0, 5], "x": 80, "y": 10, "flags": 4},
+            {"matrix": [1, 5], "x": 80, "y": 22, "flags": 4},
+            {"matrix": [2, 5], "x": 80, "y": 34, "flags": 4},
+            {"matrix": [3, 5], "x": 80, "y": 47, "flags": 4},
+            {"x": 128, "y": 40, "flags": 8},
+            {"x": 208, "y": 20, "flags": 2},
+            {"x": 176, "y": 10, "flags": 2},
+            {"x": 144, "y": 18, "flags": 2},
+            {"x": 136, "y": 60, "flags": 2},
+            {"x": 168, "y": 57, "flags": 2},
+            {"x": 200, "y": 60, "flags": 2},
+            {"matrix": [9, 0], "x": 192, "y": 57, "flags": 4},
+            {"matrix": [8, 0], "x": 224, "y": 48, "flags": 4},
+            {"matrix": [7, 0], "x": 224, "y": 36, "flags": 4},
+            {"matrix": [6, 0], "x": 224, "y": 24, "flags": 4},
+            {"matrix": [5, 0], "x": 224, "y": 12, "flags": 4},
+            {"matrix": [5, 1], "x": 208, "y": 12, "flags": 4},
+            {"matrix": [6, 1], "x": 208, "y": 24, "flags": 4},
+            {"matrix": [7, 1], "x": 208, "y": 36, "flags": 4},
+            {"matrix": [8, 1], "x": 208, "y": 48, "flags": 4},
+            {"matrix": [9, 1], "x": 176, "y": 55, "flags": 4},
+            {"matrix": [9, 2], "x": 160, "y": 57, "flags": 4},
+            {"matrix": [8, 2], "x": 192, "y": 45, "flags": 4},
+            {"matrix": [7, 2], "x": 192, "y": 33, "flags": 4},
+            {"matrix": [6, 2], "x": 192, "y": 21, "flags": 4},
+            {"matrix": [5, 2], "x": 192, "y": 9, "flags": 4},
+            {"matrix": [5, 3], "x": 176, "y": 7, "flags": 4},
+            {"matrix": [6, 3], "x": 176, "y": 19, "flags": 4},
+            {"matrix": [7, 3], "x": 176, "y": 31, "flags": 4},
+            {"matrix": [8, 3], "x": 176, "y": 43, "flags": 4},
+            {"matrix": [9, 3], "x": 144, "y": 59, "flags": 4},
+            {"matrix": [9, 4], "x": 128, "y": 64, "flags": 4},
+            {"matrix": [8, 4], "x": 160, "y": 45, "flags": 4},
+            {"matrix": [7, 4], "x": 160, "y": 33, "flags": 4},
+            {"matrix": [6, 4], "x": 160, "y": 21, "flags": 4},
+            {"matrix": [5, 4], "x": 160, "y": 9, "flags": 4},
+            {"matrix": [5, 5], "x": 144, "y": 10, "flags": 4},
+            {"matrix": [6, 5], "x": 144, "y": 22, "flags": 4},
+            {"matrix": [7, 5], "x": 144, "y": 34, "flags": 4},
+            {"matrix": [8, 5], "x": 144, "y": 47, "flags": 4}
+        ]
+    }
+}

+ 1 - 12
keyboards/sofle/keyhive/config.h

@@ -1,14 +1,11 @@
 {
     "keyboard_name": "Sofle",
     "manufacturer": "Keyhive",
+    "development_board": "elite_c",
     "usb": {
-        "vid": "0xFC32",
         "pid": "0x1287",
         "device_version": "0.0.2"
     },
-    "ws2812": {
-        "pin": "D3"
-    },
     "rgblight": {
         "hue_steps": 10,
         "led_count": 74,
@@ -21,14 +18,12 @@
         "cols": ["B6", "B2", "B3", "B1", "F7", "F6", null],
         "rows": ["C6", "D7", "E6", "B4", "B5"]
     },
-    "diode_direction": "COL2ROW",
     "encoder": {
         "rotary": [
             {"pin_a": "F5", "pin_b": "F4"}
         ]
     },
     "split": {
-        "soft_serial_pin": "D2",
         "encoder": {
             "right": {
                 "rotary": [
@@ -44,17 +39,11 @@
         },
         "transport": {
             "sync": {
-                "matrix_state": true,
                 "oled": true,
                 "wpm": true
             }
         }
     },
-    "qmk": {
-        "tap_keycode_delay": 10
-    },
-    "processor": "atmega32u4",
-    "bootloader": "atmel-dfu",
     "layouts": {
         "LAYOUT": {
             "layout": [

+ 1 - 16
keyboards/sofle/keyhive/readme.md

@@ -1,16 +1 @@
-# Build Options
-#   change yes to no to disable
-#
-BOOTMAGIC_ENABLE = no       # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = no        # Mouse keys
-EXTRAKEY_ENABLE = yes       # Audio control and System control
-CONSOLE_ENABLE = no         # Console for debug
-COMMAND_ENABLE = no         # Commands for debug and configuration
-NKRO_ENABLE = yes           # Enable N-Key Rollover
-BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow
-AUDIO_ENABLE = no           # Audio output
-ENCODER_ENABLE = yes
-LTO_ENABLE = yes
-SPLIT_KEYBOARD = yes
-OLED_ENABLE = yes
+# This file intentionally left blank

+ 8 - 155
keyboards/sofle/keymaps/default/keymap.c

@@ -1,3 +1,5 @@
+// Copyright 2023 QMK
+// SPDX-License-Identifier: GPL-2.0-or-later
 #include QMK_KEYBOARD_H
 
 enum sofle_layers {
@@ -10,16 +12,14 @@ enum sofle_layers {
 };
 
 enum custom_keycodes {
-    KC_QWERTY = SAFE_RANGE,
+    KC_QWERTY = QK_USER,
     KC_COLEMAK,
     KC_PRVWD,
     KC_NXTWD,
     KC_LSTRT,
-    KC_LEND,
-    KC_DLINE
+    KC_LEND
 };
 
-
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 /*
  * QWERTY
@@ -42,7 +42,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
 ),
 /*
  * COLEMAK
@@ -65,7 +65,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
   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
+                 KC_LGUI,KC_LALT,KC_LCTL,TL_LOWR, KC_ENT,        KC_SPC,  TL_UPPR, KC_RCTL, KC_RALT, KC_RGUI
 ),
 /* LOWER
  * ,-----------------------------------------.                    ,-----------------------------------------.
@@ -104,9 +104,9 @@ 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_INS,  KC_PSCR,   KC_APP,  XXXXXXX, XXXXXXX,                        KC_PGUP, KC_PRVWD,   KC_UP, KC_NXTWD,C(KC_BSPC), 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, _______,
+  _______, C(KC_Z), C(KC_X), C(KC_C), C(KC_V), XXXXXXX,  _______,       _______,  XXXXXXX, KC_LSTRT, XXXXXXX, KC_LEND,   XXXXXXX, _______,
                          _______, _______, _______, _______, _______,       _______, _______, _______, _______, _______
 ),
 /* ADJUST
@@ -132,86 +132,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
   )
 };
 
-#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:
@@ -298,73 +218,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
                 }
             }
             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_ENABLE
-
-bool encoder_update_user(uint8_t index, bool clockwise) {
-    if (index == 0) {
-        if (clockwise) {
-            tap_code(KC_VOLU);
-        } else {
-            tap_code(KC_VOLD);
-        }
-    } else if (index == 1) {
-        if (clockwise) {
-            tap_code(KC_PGDN);
-        } else {
-            tap_code(KC_PGUP);
-        }
-    }
-    return true;
-}
-
-#endif

+ 2 - 6
keyboards/sofle/keymaps/default/readme.md

@@ -1,12 +1,10 @@
-![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 Keyboard
 
 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)
@@ -15,5 +13,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.
-
-

+ 1 - 5
keyboards/sofle/keymaps/default/rules.mk

@@ -1,5 +1 @@
-
-OLED_ENABLE = yes
-ENCODER_ENABLE = yes
-CONSOLE_ENABLE = no
-EXTRAKEY_ENABLE = yes
+TRI_LAYER_ENABLE = yes

+ 0 - 50
keyboards/sofle/keymaps/via/config.h

@@ -1,50 +0,0 @@
-/* Copyright 2020 Josef Adamcik
- * Modification for VIA support and RGB underglow by Jens Bonk-Wiltfang
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-/* By default left side is selected as master, 
-see https://docs.qmk.fm/#/feature_split_keyboard?id=setting-handedness
-for more options. */
-
-#if defined(KEYBOARD_sofle_rev1)
-// Add RGB underglow and top facing lighting
-#    define WS2812_DI_PIN D3
-#    define RGBLIGHT_LED_COUNT 72
-#    define RGBLED_SPLIT \
-        { 36, 36 }
-#    ifdef RGB_MATRIX_ENABLE
-#        define RGB_MATRIX_LED_COUNT RGBLIGHT_LED_COUNT
-#        define RGB_MATRIX_SPLIT RGBLED_SPLIT
-#        define SPLIT_TRANSPORT_MIRROR
-#    else
-#        define RGBLIGHT_EFFECT_BREATHING
-#        define RGBLIGHT_EFFECT_RAINBOW_MOOD
-#        define RGBLIGHT_EFFECT_RAINBOW_SWIRL
-#        define RGBLIGHT_EFFECT_SNAKE
-#        define RGBLIGHT_EFFECT_KNIGHT
-#        define RGBLIGHT_EFFECT_CHRISTMAS
-#        define RGBLIGHT_EFFECT_STATIC_GRADIENT
-#        define RGBLIGHT_EFFECT_RGB_TEST
-#        define RGBLIGHT_EFFECT_ALTERNATING
-#        define RGBLIGHT_EFFECT_TWINKLE
-#        define RGBLIGHT_LIMIT_VAL 120
-#        define RGBLIGHT_HUE_STEP 10
-#        define RGBLIGHT_SAT_STEP 17
-#        define RGBLIGHT_VAL_STEP 17
-#    endif
-#endif

+ 14 - 15
keyboards/sofle/keymaps/via/keymap.c

@@ -1,22 +1,21 @@
  /* Copyright 2020 Josef Adamcik
   * Modification for VIA support and RGB underglow by Jens Bonk-Wiltfang
-  * 
-  * This program is free software: you can redistribute it and/or modify 
-  * it under the terms of the GNU General Public License as published by 
-  * the Free Software Foundation, either version 2 of the License, or 
-  * (at your option) any later version. 
-  * 
-  * This program is distributed in the hope that it will be useful, 
-  * but WITHOUT ANY WARRANTY; without even the implied warranty of 
-  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
-  * GNU General Public License for more details. 
-  * 
-  * You should have received a copy of the GNU General Public License 
-  * along with this program.  If not, see <http://www.gnu.org/licenses/>. 
-  */ 
+  *
+  * This program is free software: you can redistribute it and/or modify
+  * it under the terms of the GNU General Public License as published by
+  * the Free Software Foundation, either version 2 of the License, or
+  * (at your option) any later version.
+  *
+  * This program is distributed in the hope that it will be useful,
+  * but WITHOUT ANY WARRANTY; without even the implied warranty of
+  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  * GNU General Public License for more details.
+  *
+  * You should have received a copy of the GNU General Public License
+  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+  */
 
 #include QMK_KEYBOARD_H
-#include "oled.c"
 
 #ifdef ENCODER_MAP_ENABLE
 const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {

+ 0 - 85
keyboards/sofle/keymaps/via/oled.c

@@ -1,85 +0,0 @@
- /* Copyright 2020 Josef Adamcik
-  * Modification for VIA support and RGB underglow by Jens Bonk-Wiltfang
-  *
-  * This program is free software: you can redistribute it and/or modify
-  * it under the terms of the GNU General Public License as published by
-  * the Free Software Foundation, either version 2 of the License, or
-  * (at your option) any later version.
-  *
-  * This program is distributed in the hope that it will be useful,
-  * but WITHOUT ANY WARRANTY; without even the implied warranty of
-  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-  * GNU General Public License for more details.
-  *
-  * You should have received a copy of the GNU General Public License
-  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
-  */
-
-//Sets up what the OLED screens display.
-
-#ifdef OLED_ENABLE
-
-static void render_logo(void) {
-    static const char PROGMEM qmk_logo[] = {
-        0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,
-        0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4,
-        0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0
-    };
-
-    oled_write_P(qmk_logo, false);
-}
-
-static void print_status_narrow(void) {
-    // Print current mode
-    oled_write_P(PSTR("\n\n"), false);
-
-    switch (get_highest_layer(layer_state)) {
-        case 0:
-            oled_write_ln_P(PSTR("Qwrt"), false);
-            break;
-        case 1:
-            oled_write_ln_P(PSTR("Clmk"), false);
-            break;
-        default:
-            oled_write_P(PSTR("Mod\n"), false);
-            break;
-    }
-    oled_write_P(PSTR("\n\n"), false);
-    // Print current layer
-    oled_write_ln_P(PSTR("LAYER"), false);
-    switch (get_highest_layer(layer_state)) {
-        case 0:
-        case 1:
-            oled_write_P(PSTR("Base\n"), false);
-            break;
-        case 2:
-            oled_write_P(PSTR("Raise"), false);
-            break;
-        case 3:
-            oled_write_P(PSTR("Lower"), 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

+ 0 - 2
keyboards/sofle/keymaps/via/readme.md

@@ -2,7 +2,6 @@
 
 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)
@@ -11,4 +10,3 @@ Features:
 - Left encoder controls volume up/down/mute. Right encoder PGUP/PGDOWN.
 - Via support
 - RGB underglow support
-

+ 1 - 6
keyboards/sofle/keymaps/via/rules.mk

@@ -1,8 +1,3 @@
-OLED_ENABLE = yes
-ENCODER_ENABLE = yes
-CONSOLE_ENABLE = no
-EXTRAKEY_ENABLE = yes
 VIA_ENABLE = yes
-LTO_ENABLE = yes
-RGBLIGHT_ENABLE = yes
+RGB_MATRIX_ENABLE = yes
 ENCODER_MAP_ENABLE = yes

+ 1 - 1
keyboards/sofle/readme.md

@@ -1,6 +1,6 @@
 # Sofle Keyboard
 
-![SofleKeyboard version 1](https://raw.githubusercontent.com/josefadamcik/SofleKeyboard/master/Images/IMG_20200126_114622.jpg)
+![SofleKeyboard version 1](https://i.imgur.com/S5GTKth.jpeg)
 
 Sofle is 6×4+5 keys column-staggered split keyboard. Based on Lily58, Corne and Helix keyboards.
 

+ 1 - 12
keyboards/sofle/rev1/info.json

@@ -1,10 +1,9 @@
 {
-    "keyboard_name": "Sofle",
     "manufacturer": "JosefAdamcik",
     "url": "https://github.com/josefadamcik/SofleKeyboard",
     "maintainer": "Josef Adamcik <josef.adamcik@gmail.com>",
+    "development_board": "promicro",
     "usb": {
-        "vid": "0xFC32",
         "pid": "0x0287",
         "device_version": "0.0.1"
     },
@@ -12,14 +11,12 @@
         "cols": ["F6", "F7", "B1", "B3", "B2", "B6"],
         "rows": ["C6", "D7", "E6", "B4", "B5"]
     },
-    "diode_direction": "COL2ROW",
     "encoder": {
         "rotary": [
             {"pin_a": "F5", "pin_b": "F4", "resolution": 2}
         ]
     },
     "split": {
-        "soft_serial_pin": "D2",
         "encoder": {
             "right": {
                 "rotary": [
@@ -28,14 +25,6 @@
             }
         }
     },
-    "tapping": {
-        "term": 100
-    },
-    "qmk": {
-        "tap_keycode_delay": 10
-    },
-    "processor": "atmega32u4",
-    "bootloader": "caterina",
     "layouts": {
         "LAYOUT": {
             "layout": [

+ 1 - 1
keyboards/sofle/rev1/readme.md

@@ -1,6 +1,6 @@
 # Sofle Keyboard
 
-![SofleKeyboard version 1](https://raw.githubusercontent.com/josefadamcik/SofleKeyboard/master/Images/IMG_20200126_114622.jpg)
+![SofleKeyboard version 1](https://i.imgur.com/S5GTKth.jpeg)
 
 Sofle is 6×4+5 keys column-staggered split keyboard. Based on Lily58, Corne and Helix keyboards.
 

+ 0 - 87
keyboards/sofle/rev1/rev1.c

@@ -1,87 +0,0 @@
-/* Copyright 2021 Carlos Martins
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "quantum.h"
-
-#ifdef RGB_MATRIX_ENABLE
-  // Physical Layout
-  // Columns
-  // 0  1  2  3  4  5  6  7  8  9  10 11 12 13
-  //                                           ROWS
-  // 12 13 22 23 32 33       33 32 23 22 13 12  0
-  //    02    03    04       04    03    02
-  // 11 14 21 24 31 34       34 31 24 21 14 11  1
-  //                01       01
-  // 10 15 20 25 30 35       35 30 25 20 15 10  2
-  //
-  // 09 16 19 26 29 36       36 29 26 19 16 09  3
-  //
-  //     08 17 18 27 28     28 27 18 17 08      4
-  //    07    06    05       05    06    07
-
-led_config_t g_led_config = {
-    {
-        {  11,  12,  21,  22,  31,  32 },
-        {  10,  13,  20,  23,  30,  33 },
-        {  9,   14,  19,  24,  29,  34},
-        {  8,   15,  18,  25,  28,  35},
-        {  7,   16,  17,  26,  27,  NO_LED },
-        {  47,  48,  57,  58,  67,  68},
-        {  46,  49,  56,  59,  66,  69},
-        {  45,  50,  55,  60,  65,  70},
-        {  44,  51,  54,  61,  64,  71},
-        {  43,  52,  53,  62,  63,  NO_LED }
-    },
-    {
-       // Left side underglow
-        {96, 40}, {16, 20}, {48, 10}, {80, 18}, {88, 60}, {56, 57}, {24,60},
-        // Left side Matrix
-        {32, 57}, { 0, 48}, { 0, 36}, { 0, 24}, { 0, 12},
-        {16, 12}, {16, 24}, {16, 36}, {16, 48}, {48, 55},
-        {64, 57}, {32, 45}, {32, 33}, {32, 21}, {32,  9},
-        {48,  7}, {48, 19}, {48, 31}, {48, 43}, {80, 59},
-        {96, 64}, {64, 45}, {64, 33}, {64, 21}, {64,  9},
-        {80, 10}, {80, 22}, {80, 34}, {80, 47},
-
-
-        // Right side underglow
-        {128, 40}, {208, 20}, {176, 10}, {144, 18}, {136, 60}, {168, 57}, {200,60},
-        // Right side Matrix
-        {192, 57}, {224, 48}, {224, 36}, {224, 24}, {224, 12},
-        {208, 12}, {208, 24}, {208, 36}, {208, 48}, {176, 55},
-        {160, 57}, {192, 45}, {192, 33}, {192, 21}, {192,  9},
-        {176,  7}, {176, 19}, {176, 31}, {176, 43}, {144, 59},
-        {128, 64}, {160, 45}, {160, 33}, {160, 21}, {160,  9},
-        {144, 10}, {144, 22}, {144, 34}, {144, 47},
-    },
-    {
-        LED_FLAG_INDICATOR, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW,
-        LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
-        LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
-        LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
-        LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
-        LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
-        LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
-        LED_FLAG_INDICATOR, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW,
-        LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
-        LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
-        LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
-        LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
-        LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
-        LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT
-    }
-};
-#endif

+ 1 - 2
keyboards/sofle/rev1/rules.mk

@@ -1,2 +1 @@
-ENCODER_ENABLE = yes
-OLED_ENABLE = yes
+# This file intentionally left blank

+ 0 - 2
keyboards/sofle/rules.mk

@@ -1,3 +1 @@
-SPLIT_KEYBOARD = yes
 DEFAULT_FOLDER = sofle/rev1
-SWAP_HANDS_ENABLE = yes

+ 89 - 0
keyboards/sofle/sofle.c

@@ -1,3 +1,5 @@
+// Copyright 2023 QMK
+// SPDX-License-Identifier: GPL-2.0-or-later
 #include "quantum.h"
 
 #ifdef SWAP_HANDS_ENABLE
@@ -44,3 +46,90 @@ const uint8_t PROGMEM encoder_hand_swap_config[NUM_ENCODERS] = {1, 0};
 #    endif
 
 #endif
+
+#ifdef OLED_ENABLE
+oled_rotation_t oled_init_kb(oled_rotation_t rotation) {
+    if (is_keyboard_master()) {
+        return OLED_ROTATION_270;
+    }
+    return rotation;
+}
+
+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);
+}
+
+void print_status_narrow(void) {
+    oled_write_P(PSTR("\n\n"), false);
+    switch (get_highest_layer(layer_state)) {
+        case 0:
+            oled_write_ln_P(PSTR("Qwrt"), false);
+            break;
+        case 1:
+            oled_write_ln_P(PSTR("Clmk"), false);
+            break;
+        default:
+            oled_write_P(PSTR("Mod\n"), false);
+            break;
+    }
+    oled_write_P(PSTR("\n\n"), false);
+    oled_write_ln_P(PSTR("LAYER"), false);
+    switch (get_highest_layer(layer_state)) {
+        case 0:
+        case 1:
+            oled_write_P(PSTR("Base\n"), false);
+            break;
+        case 2:
+            oled_write_P(PSTR("Raise"), false);
+            break;
+        case 3:
+            oled_write_P(PSTR("Lower"), 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);
+}
+
+bool oled_task_kb(void) {
+    if (!oled_task_user()) {
+        return false;
+    }
+    if (is_keyboard_master()) {
+        print_status_narrow();
+    } else {
+        render_logo();
+    }
+    return true;
+}
+
+#endif
+
+#ifdef ENCODER_ENABLE
+bool encoder_update_kb(uint8_t index, bool clockwise) {
+    if (!encoder_update_user(index, clockwise)) {
+        return false;
+    }
+    if (index == 0) {
+        if (clockwise) {
+            tap_code(KC_VOLU);
+        } else {
+            tap_code(KC_VOLD);
+        }
+    } else if (index == 1) {
+        if (clockwise) {
+            tap_code(KC_PGDN);
+        } else {
+            tap_code(KC_PGUP);
+        }
+    }
+    return true;
+}
+#endif