diff --git a/keyboards/sofle/info.json b/keyboards/sofle/info.json new file mode 100644 index 000000000000..91fdfd38be1d --- /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 ae7c4a1935b2..8c76e875b01f 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 00719ebea0cb..6e7633bfe015 --- 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 377b4498e628..37996c3e4135 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 6d6dea228c96..879513af069a 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 ab79c07969fc..7c9bf212a6f5 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 c70c410f771f..000000000000 --- 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 21717a7a6c2d..8207f35fd91c 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 74f06cedc54e..000000000000 --- 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 8470c69bcfbc..e0a87253e603 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 c8ca49919c88..2c37cfdddd6d 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 27071e6f3371..7e8ef215c236 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 5ab71ff1e37b..20548d6bafff 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 629d568e6093..1d229030c4bb 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 df0f23a26cce..000000000000 --- 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 5ec06e960911..6e7633bfe015 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 e03eb21a90c5..a7307c3499e3 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 bd3f3e157c5b..3f88e2b5ba7c 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