diff --git a/keyboards/sofle/info.json b/keyboards/sofle/info.json
new file mode 100644
index 0000000000..91fdfd38be
--- /dev/null
+++ b/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}
+ ]
+ }
+}
diff --git a/keyboards/sofle/keyhive/config.h b/keyboards/sofle/keyhive/config.h
old mode 100755
new mode 100644
diff --git a/keyboards/sofle/keyhive/info.json b/keyboards/sofle/keyhive/info.json
index ae7c4a1935..8c76e875b0 100644
--- a/keyboards/sofle/keyhive/info.json
+++ b/keyboards/sofle/keyhive/info.json
@@ -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": [
diff --git a/keyboards/sofle/keyhive/readme.md b/keyboards/sofle/keyhive/readme.md
old mode 100755
new mode 100644
diff --git a/keyboards/sofle/keyhive/rules.mk b/keyboards/sofle/keyhive/rules.mk
old mode 100755
new mode 100644
index 00719ebea0..6e7633bfe0
--- a/keyboards/sofle/keyhive/rules.mk
+++ b/keyboards/sofle/keyhive/rules.mk
@@ -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
diff --git a/keyboards/sofle/keymaps/default/keymap.c b/keyboards/sofle/keymaps/default/keymap.c
index 377b4498e6..37996c3e41 100644
--- a/keyboards/sofle/keymaps/default/keymap.c
+++ b/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
diff --git a/keyboards/sofle/keymaps/default/readme.md b/keyboards/sofle/keymaps/default/readme.md
index 6d6dea228c..879513af06 100644
--- a/keyboards/sofle/keymaps/default/readme.md
+++ b/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.
-
-
diff --git a/keyboards/sofle/keymaps/default/rules.mk b/keyboards/sofle/keymaps/default/rules.mk
index ab79c07969..7c9bf212a6 100644
--- a/keyboards/sofle/keymaps/default/rules.mk
+++ b/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
diff --git a/keyboards/sofle/keymaps/via/config.h b/keyboards/sofle/keymaps/via/config.h
deleted file mode 100644
index c70c410f77..0000000000
--- a/keyboards/sofle/keymaps/via/config.h
+++ /dev/null
@@ -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 .
- */
-
-#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
diff --git a/keyboards/sofle/keymaps/via/keymap.c b/keyboards/sofle/keymaps/via/keymap.c
index 21717a7a6c..8207f35fd9 100644
--- a/keyboards/sofle/keymaps/via/keymap.c
+++ b/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 .
- */
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
#include QMK_KEYBOARD_H
-#include "oled.c"
#ifdef ENCODER_MAP_ENABLE
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
diff --git a/keyboards/sofle/keymaps/via/oled.c b/keyboards/sofle/keymaps/via/oled.c
deleted file mode 100644
index 74f06cedc5..0000000000
--- a/keyboards/sofle/keymaps/via/oled.c
+++ /dev/null
@@ -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 .
- */
-
-//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
diff --git a/keyboards/sofle/keymaps/via/readme.md b/keyboards/sofle/keymaps/via/readme.md
index 8470c69bcf..e0a87253e6 100644
--- a/keyboards/sofle/keymaps/via/readme.md
+++ b/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
-
diff --git a/keyboards/sofle/keymaps/via/rules.mk b/keyboards/sofle/keymaps/via/rules.mk
index c8ca49919c..2c37cfdddd 100644
--- a/keyboards/sofle/keymaps/via/rules.mk
+++ b/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
diff --git a/keyboards/sofle/readme.md b/keyboards/sofle/readme.md
index 27071e6f33..7e8ef215c2 100644
--- a/keyboards/sofle/readme.md
+++ b/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.
diff --git a/keyboards/sofle/rev1/info.json b/keyboards/sofle/rev1/info.json
index 5ab71ff1e3..20548d6baf 100644
--- a/keyboards/sofle/rev1/info.json
+++ b/keyboards/sofle/rev1/info.json
@@ -1,10 +1,9 @@
{
- "keyboard_name": "Sofle",
"manufacturer": "JosefAdamcik",
"url": "https://github.com/josefadamcik/SofleKeyboard",
"maintainer": "Josef Adamcik ",
+ "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": [
diff --git a/keyboards/sofle/rev1/readme.md b/keyboards/sofle/rev1/readme.md
index 629d568e60..1d229030c4 100644
--- a/keyboards/sofle/rev1/readme.md
+++ b/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.
diff --git a/keyboards/sofle/rev1/rev1.c b/keyboards/sofle/rev1/rev1.c
deleted file mode 100644
index df0f23a26c..0000000000
--- a/keyboards/sofle/rev1/rev1.c
+++ /dev/null
@@ -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 .
- */
-
-#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
diff --git a/keyboards/sofle/rev1/rules.mk b/keyboards/sofle/rev1/rules.mk
index 5ec06e9609..6e7633bfe0 100644
--- a/keyboards/sofle/rev1/rules.mk
+++ b/keyboards/sofle/rev1/rules.mk
@@ -1,2 +1 @@
-ENCODER_ENABLE = yes
-OLED_ENABLE = yes
+# This file intentionally left blank
diff --git a/keyboards/sofle/rules.mk b/keyboards/sofle/rules.mk
index e03eb21a90..a7307c3499 100644
--- a/keyboards/sofle/rules.mk
+++ b/keyboards/sofle/rules.mk
@@ -1,3 +1 @@
-SPLIT_KEYBOARD = yes
DEFAULT_FOLDER = sofle/rev1
-SWAP_HANDS_ENABLE = yes
diff --git a/keyboards/sofle/sofle.c b/keyboards/sofle/sofle.c
index bd3f3e157c..3f88e2b5ba 100644
--- a/keyboards/sofle/sofle.c
+++ b/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