Remove Sofle rgb_default keymap & tidy readme's (#25010)

This commit is contained in:
jack 2025-04-14 10:58:14 -06:00 committed by GitHub
parent 9208fb5adb
commit 32b9d33bbb
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
8 changed files with 19 additions and 801 deletions

View File

@ -1,23 +0,0 @@
/* Copyright
* 2021 solartempest
* 2021 QMK
*
* 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
// OLED settings
#define OLED_TIMEOUT 80000
#define OLED_BRIGHTNESS 90

View File

@ -1,5 +1,4 @@
{ {
"keyboard_name": "Sofle",
"manufacturer": "Keyhive", "manufacturer": "Keyhive",
"development_board": "elite_c", "development_board": "elite_c",
"usb": { "usb": {

View File

@ -1,54 +0,0 @@
# Keyhive Sofle Keyboard
![SofleKeyboard version 2.1 RGB Keyhive](https://i.imgur.com/WH9OoWuh.jpg)
Sofle is 6×4+5 keys column-staggered split keyboard. Based on Lily58, Corne and Helix keyboards.
For details about the keyboard design, refer to Josef's blog: [Sofle Keyboard - a split keyboard based on Lily58 and Crkbd](https://josef-adamcik.cz/electronics/let-me-introduce-you-sofle-keyboard-split-keyboard-based-on-lily58.html)
Build guide: [Keyhive Sofle RGB build guide](https://github.com/keyhive/build_guides/blob/master/docs/keyboards/sofle-rgb.md)
* Keyboard Maintainer: [Winder](https://github.com/winder)
* Hardware Supported: Keyhive Sofle RGB, ProMicro / Elite-C
* Hardware Availability: [Keyhive](https://keyhive.xyz/shop/sofle)
### Acknowledgements
* Solartempest - the image on this page and most of the code is either copied directly or inspired by their fork. [Solartempest's fork.](https://github.com/solartempest/qmk_firmware/tree/master/keyboards/solartempest/sofle).
* [Keyhive fork](https://github.com/keyhive/qmk_firmware) defined all of the board settings.
# Supported Keymaps
The keyhive schematic has been slightly modified compared to the open source sofle and not all keymaps are compatible.
* **default**: Basic functionality, no rgb, no VIA.
* [keyhive_via](../keymaps/keyhive_via/readme.md) - Includes rgblighting and special support for remapping encoders with VIA.
* **Other**: may work but backwards compatibility is not guaranteed or tested.
# VIA Support
As of 1.3.1, the VIA tool does not support Keyhive/Sofle V2 out of the box.
See [keyhive_via](../keymaps/keyhive_via/readme.md) for details about configuring and using VIA.
# Compiling
Make example for this keyboard (after setting up your build environment):
make sofle/keyhive:default
## Flashing
Flash using the correct command below (or use QMK Toolbox). These commands can be mixed if, for example, you have an Elite C on the left and a pro micro on the right.
Press reset button on the keyboard when asked.
Disconnect the first half, connect the second one and repeat the process.
# for Pro Micro-based builds
make sofle/keyhive:default:avrdude-split-left
make sofle/keyhive:default:avrdude-split-right
# for Elite C or DFU bootloader builds
make sofle/keyhive:default:dfu-split-left
make sofle/keyhive:default:dfu-split-right
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).

View File

@ -1,124 +0,0 @@
/* Copyright 2021 Dane Evans
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
//#define USE_MATRIX_I2C
/* Select hand configuration */
///https://thomasbaart.nl/2018/12/01/reducing-firmware-size-in-qmk/
#define CUSTOM_FONT
#define CUSTOM_LAYER_READ //if you remove this it causes issues - needs better guarding
#define QUICK_TAP_TERM 0
#ifdef TAPPING_TERM
#undef TAPPING_TERM
#define TAPPING_TERM 200
#endif
#define ENCODER_DIRECTION_FLIP
#define RGBLIGHT_SLEEP
//
#define RGBLIGHT_LAYERS
/* ws2812 RGB LED */
#define WS2812_DI_PIN D3
#ifdef RGB_MATRIX_ENABLE
#define RGBLIGHT_LED_COUNT 35 // Number of LEDs
#define RGBLIGHT_LED_COUNT 35 // Number of LEDs
#define RGB_MATRIX_LED_COUNT RGBLIGHT_LED_COUNT
#endif
#ifdef RGBLIGHT_ENABLE
#undef RGBLIGHT_LED_COUNT
//#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_LED_COUNT 70
#undef RGBLED_SPLIT
#define RGBLED_SPLIT { 35, 35 } // haven't figured out how to use this yet
//#define RGBLIGHT_LED_COUNT 30
#undef RGBLIGHT_LIMIT_VAL
#define RGBLIGHT_LIMIT_VAL 120
#define RGBLIGHT_HUE_STEP 10
#define RGBLIGHT_SAT_STEP 17
#define RGBLIGHT_VAL_STEP 17
#endif
#ifdef RGB_MATRIX_ENABLE
# define RGB_MATRIX_KEYPRESSES // reacts to keypresses
// # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses)
# define RGB_MATRIX_SLEEP // turn off effects when suspended
# define RGB_MATRIX_FRAMEBUFFER_EFFECTS
// # define RGB_MATRIX_LED_PROCESS_LIMIT (RGB_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness)
// # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness)
# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash.
#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_GRADIENT_LEFT_RIGHT
# define RGB_MATRIX_HUE_STEP 8
# define RGB_MATRIX_SAT_STEP 8
# define RGB_MATRIX_VAL_STEP 8
# define RGB_MATRIX_SPD_STEP 10
/* Disable the animations you don't want/need. You will need to disable a good number of these *
* because they take up a lot of space. Disable until you can successfully compile your firmware. */
// # undef ENABLE_RGB_MATRIX_ALPHAS_MODS
// # undef ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
// # undef ENABLE_RGB_MATRIX_BREATHING
// # undef ENABLE_RGB_MATRIX_CYCLE_ALL
// # undef ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
// # undef ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
// # undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN
// # undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
// # undef ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
// # undef ENABLE_RGB_MATRIX_DUAL_BEACON
// # undef ENABLE_RGB_MATRIX_RAINBOW_BEACON
// # undef ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
// # undef ENABLE_RGB_MATRIX_RAINDROPS
// # undef ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
// # undef ENABLE_RGB_MATRIX_TYPING_HEATMAP
// # undef ENABLE_RGB_MATRIX_DIGITAL_RAIN
// # undef ENABLE_RGB_MATRIX_SOLID_REACTIVE
// # undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
// # undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
// # undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
// # undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
// # undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
// # undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
// # undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
// # undef ENABLE_RGB_MATRIX_SPLASH
// # undef ENABLE_RGB_MATRIX_MULTISPLASH
// # undef ENABLE_RGB_MATRIX_SOLID_SPLASH
// # undef ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
#endif

View File

@ -1,559 +0,0 @@
/* Copyright 2021 Dane Evans
*
* 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/>.
*/
// SOFLE RGB
#include <stdio.h>
#include QMK_KEYBOARD_H
#define INDICATOR_BRIGHTNESS 30
#define HSV_OVERRIDE_HELP(h, s, v, Override) h, s , Override
#define HSV_OVERRIDE(hsv, Override) HSV_OVERRIDE_HELP(hsv,Override)
// Light combinations
#define SET_INDICATORS(hsv) \
{0, 1, HSV_OVERRIDE_HELP(hsv, INDICATOR_BRIGHTNESS)}, \
{35+0, 1, hsv}
#define SET_UNDERGLOW(hsv) \
{1, 6, hsv}, \
{35+1, 6,hsv}
#define SET_NUMPAD(hsv) \
{35+15, 5, hsv},\
{35+22, 3, hsv},\
{35+27, 3, hsv}
#define SET_NUMROW(hsv) \
{10, 2, hsv}, \
{20, 2, hsv}, \
{30, 2, hsv}, \
{35+ 10, 2, hsv}, \
{35+ 20, 2, hsv}, \
{35+ 30, 2, hsv}
#define SET_INNER_COL(hsv) \
{33, 4, hsv}, \
{35+ 33, 4, hsv}
#define SET_OUTER_COL(hsv) \
{7, 4, hsv}, \
{35+ 7, 4, hsv}
#define SET_THUMB_CLUSTER(hsv) \
{25, 2, hsv}, \
{35+ 25, 2, hsv}
#define SET_LAYER_ID(hsv) \
{0, 1, HSV_OVERRIDE_HELP(hsv, INDICATOR_BRIGHTNESS)}, \
{35+0, 1, HSV_OVERRIDE_HELP(hsv, INDICATOR_BRIGHTNESS)}, \
{1, 6, hsv}, \
{35+1, 6, hsv}, \
{7, 4, hsv}, \
{35+ 7, 4, hsv}, \
{25, 2, hsv}, \
{35+ 25, 2, hsv}
enum sofle_layers {
_DEFAULTS = 0,
_QWERTY = 0,
_COLEMAK,
_COLEMAKDH,
_LOWER,
_RAISE,
_ADJUST,
_NUMPAD,
_SWITCH
};
enum custom_keycodes {
KC_LOWER = SAFE_RANGE,
KC_RAISE,
KC_ADJUST,
KC_D_MUTE
};
#define KC_QWERTY PDF(_QWERTY)
#define KC_COLEMAK PDF(_COLEMAK)
#define KC_COLEMAKDH PDF(_COLEMAKDH)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
* QWERTY
* ,-----------------------------------------. ,-----------------------------------------.
* | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | TAB | Q | W | E | R | T | | Y | U | I | O | P | Bspc |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* |LShift| A | S | D | F | G |-------. ,-------| H | J | K | L | ; | ' |
* |------+------+------+------+------+------| MUTE | |DISCORD|------+------+------+------+------+------|
* | LCTR | Z | X | C | V | B |-------| |-------| N | M | , | . | / |LShift|
* `-----------------------------------------/ / \ \-----------------------------------------'
* | Bspc | WIN |LOWER | Enter| /Space / \Enter \ |SPACE |RAISE | RCTR | RAlt |
* | | | | |/ / \ \ | | | | |
* `----------------------------------' '------''---------------------------'
*/
[_QWERTY] = LAYOUT(
//,------------------------------------------------. ,---------------------------------------------------.
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, LT(_SWITCH,KC_6), KC_7, KC_8, KC_9, KC_0, KC_GRV,
//|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
LT(_NUMPAD,KC_TAB),KC_Q,KC_W,KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
//|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
//|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MUTE, KC_D_MUTE,KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT,
//|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
KC_BSPC, KC_LGUI, KC_LOWER, KC_SPC, KC_ENT , KC_SPC, KC_ENT , KC_RAISE, KC_RCTL, KC_RALT
// \--------+--------+--------+---------+-------| |--------+---------+--------+---------+-------/
),
/*
* COLEMAK
* ,-----------------------------------------. ,-----------------------------------------.
* | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | TAB | Q | W | F | P | G | | J | L | U | Y | ; | Bspc |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* |LShift| A | R | S | T | D |-------. ,-------| H | N | E | I | O | ' |
* |------+------+------+------+------+------| MUTE | |DISCORD|------+------+------+------+------+------|
* | LCTR | Z | X | C | V | B |-------| |-------| K | M | , | . | / |LShift|
* `-----------------------------------------/ / \ \-----------------------------------------'
* | Bspc | WIN |LOWER | Enter| /Space / \Enter \ |SPACE |RAISE | RCTR | RAlt |
* | | | | |/ / \ \ | | | | |
* `----------------------------------' '------''---------------------------'
*/
[_COLEMAK] = LAYOUT(
//,------------------------------------------------. ,---------------------------------------------------.
KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, LT(_SWITCH,KC_6), KC_7, KC_8, KC_9, KC_0, KC_TRNS,
//|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
KC_TRNS, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_TRNS,
//|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
KC_TRNS, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_TRNS,
//|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
KC_TRNS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_TRNS, KC_TRNS,KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_TRNS,
//|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
// \--------+--------+--------+---------+-------| |--------+---------+--------+---------+-------/
),
/*
* COLEMAK-DH
* ,-----------------------------------------. ,-----------------------------------------.
* | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | TAB | Q | W | F | P | B | | J | L | U | Y | ; | Bspc |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* |LShift| A | R | S | T | G |-------. ,-------| M | N | E | I | O | ' |
* |------+------+------+------+------+------| MUTE | |DISCORD|------+------+------+------+------+------|
* | LCTR | Z | X | C | D | V |-------| |-------| K | H | , | . | / |LShift|
* `-----------------------------------------/ / \ \-----------------------------------------'
* | Bspc | WIN |LOWER | Enter| /Space / \Enter \ |SPACE |RAISE | RCTR | RAlt |
* | | | | |/ / \ \ | | | | |
* `----------------------------------' '------''---------------------------'
*/
[_COLEMAKDH] = LAYOUT(
//,------------------------------------------------. ,---------------------------------------------------.
KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, LT(_SWITCH,KC_6), KC_7, KC_8, KC_9, KC_0, KC_TRNS,
//|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
KC_TRNS, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_TRNS,
//|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
KC_TRNS, KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, KC_TRNS,
//|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
KC_TRNS, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_TRNS, KC_TRNS,KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_TRNS,
//|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
// \--------+--------+--------+---------+-------| |--------+---------+--------+---------+-------/
),
/* LOWER
* ,-----------------------------------------. ,-----------------------------------------.
* | trans| F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | F12 |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | trans| ! | @ | # | $ | % |-------. ,-------| ^ | & | * | ( | ) | | |
* |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------|
* | trans| = | - | + | { | } |-------| |-------| [ | ] | ; | : | \ | Shift|
* `-----------------------------------------/ / \ \-----------------------------------------'
* | Bspc | WIN |LOWER | Enter| /Space / \Enter \ |SPACE |RAISE | RCTR | RAlt |
* | | | | |/ / \ \ | | | | |
* `----------------------------------' '------''---------------------------'
*/
[_LOWER] = LAYOUT(
//,------------------------------------------------. ,---------------------------------------------------.
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
//|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
//|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
_______, KC_NO, KC_NO, KC_NO, KC_WH_U, KC_PGUP, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, KC_DEL,
//|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
_______, KC_NO, KC_NO, KC_NO, KC_WH_D, KC_PGDN,_______, _______,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, _______,
//|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
// \--------+--------+--------+---------+-------| |--------+---------+--------+---------+-------/
),
/* RAISE
* ,----------------------------------------. ,-----------------------------------------.
* | | | | | | | | | | | | | |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | Esc | Ins | Pscr | Menu | | | | | PWrd | Up | NWrd | DLine| Bspc |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | Tab | LAt | LCtl |LShift| | Caps |-------. ,-------| | Left | Down | Rigth| Del | Bspc |
* |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------|
* |Shift | Undo | Cut | Copy | Paste| |-------| |-------| | LStr | | LEnd | | Shift|
* `-----------------------------------------/ / \ \-----------------------------------------'
* | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI |
* | | | | |/ / \ \ | | | | |
* `----------------------------------' '------''---------------------------'
*/
[_RAISE] = LAYOUT(
//,------------------------------------------------. ,---------------------------------------------------.
_______, _______ , _______ , _______ , _______ , _______, _______, _______ , _______, _______ , _______ ,_______,
//|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
_______, KC_INS, KC_PSCR, KC_APP, XXXXXXX, XXXXXXX, KC_CIRC, KC_AMPR,KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
//|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
_______, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, KC_CAPS, KC_MINS, KC_EQL, KC_LCBR, KC_RCBR, KC_PIPE, KC_GRV,
//|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
_______,KC_UNDO, KC_CUT, KC_COPY, KC_PASTE, XXXXXXX,_______, _______,KC_UNDS, KC_PLUS,KC_LBRC, KC_RBRC, KC_BSLS, KC_TILD,
//|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
// \--------+--------+--------+---------+-------| |--------+---------+--------+---------+-------/
),
/* ADJUST
* ,-----------------------------------------. ,-----------------------------------------.
* | | | | | | | | | | | | | |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | QK_BOOT| | | | | | | | | | | | |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* |UG_TOGG|hue^ |sat ^ | bri ^| |COLEMAK|-------. ,-------|desk <| | |desk >| | |
* |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------|
* | mode | hue dn|sat d|bri dn| |QWERTY|-------| |-------| | PREV | PLAY | NEXT | | |
* `-----------------------------------------/ / \ \-----------------------------------------'
* | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI |
* | | | | |/ / \ \ | | | | |
* `----------------------------------' '------''---------------------------'
*/
[_ADJUST] = LAYOUT(
//,------------------------------------------------. ,---------------------------------------------------.
EE_CLR, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
//|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
QK_BOOT, XXXXXXX,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
//|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
UG_TOGG, UG_HUEU,UG_SATU, UG_VALU, KC_COLEMAKDH,KC_COLEMAK, C(G(KC_LEFT)),KC_NO,KC_NO,C(G(KC_RGHT)),XXXXXXX, XXXXXXX,
//|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
UG_NEXT, UG_HUED,UG_SATD, UG_VALD, XXXXXXX,KC_QWERTY,XXXXXXX, XXXXXXX, XXXXXXX, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX,
//|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
// \--------+--------+--------+---------+-------| |--------+---------+--------+---------+-------/
),
/* NUMPAD
* ,-----------------------------------------. ,-----------------------------------------.
* | trans| | | | | | | |NumLck| | | | |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | ` | | | | | | | ^ | 7 | 8 | 9 | * | |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | trans| | | | | |-------. ,-------| - | 4 | 5 | 6 | | | |
* |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------|
* | trans| | | | | |-------| |-------| + | 1 | 2 | 3 | \ | Shift|
* `-----------------------------------------/ / \ \-----------------------------------------'
* | Bspc | WIN |LOWER | Enter| /Space / \Enter \ |SPACE | 0 | . | RAlt |
* | | | | |/ / \ \ | | | | |
* `----------------------------------' '------''---------------------------'
*/
[_NUMPAD] = LAYOUT(
//,------------------------------------------------. ,---------------------------------------------------.
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, KC_NUM, XXXXXXX, XXXXXXX,XXXXXXX, XXXXXXX,
//|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_CIRC, KC_P7, KC_P8, KC_P9, KC_ASTR, XXXXXXX,
//|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, KC_P4, KC_P5, KC_P6, KC_EQL, KC_PIPE,
//|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,_______, _______,KC_PLUS, KC_P1, KC_P2, KC_P3, KC_SLSH, _______,
//|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
_______, OSM(MOD_MEH), _______, _______, _______, _______, _______, KC_P0, KC_PDOT, _______
// \--------+--------+--------+---------+-------| |--------+---------+--------+---------+-------/
),
/* SWITCH
* ,-----------------------------------------. ,-----------------------------------------.
* | | | | | | | | | | | | | |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | qwer | cole |col_dh| low | raise| adj | |numpad| | | | |QK_BOOT |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | | | | | | |-------. ,-------| | | | | |EE_CLR|
* |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------|
* | SLEEP| | | | | |-------| |-------| | | | | | |
* `-----------------------------------------/ / \ \-----------------------------------------'
* | Bspc | WIN |LOWER | Enter| /Space / \Enter \ |SPACE | 0 | . | RAlt |
* | | | | |/ / \ \ | | | | |
* `----------------------------------' '------''---------------------------'
*/
// layer switcher
[_SWITCH] = LAYOUT(
//,------------------------------------------------. ,---------------------------------------------------.
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,XXXXXXX, XXXXXXX,
//|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
TO(0), TO(1), TO(2), TO(3), TO(4), TO(5), TO(6), KC_NO, KC_NO, KC_NO, KC_NO, QK_BOOT,
//|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
KC_NO, KC_NO, KC_BRIU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, EE_CLR,
//|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
KC_SYSTEM_SLEEP,KC_NO,KC_NO,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
//|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
// \--------+--------+--------+---------+-------| |--------+---------+--------+---------+-------/
),
};
#ifdef RGBLIGHT_ENABLE
char layer_state_str[70];
// Now define the array of layers. Later layers take precedence
// QWERTY,
// Light on inner column and underglow
const rgblight_segment_t PROGMEM layer_qwerty_lights[] = RGBLIGHT_LAYER_SEGMENTS(
SET_LAYER_ID(HSV_RED)
);
const rgblight_segment_t PROGMEM layer_colemakdh_lights[] = RGBLIGHT_LAYER_SEGMENTS(
SET_LAYER_ID(HSV_PINK)
);
// _NUM,
// Light on outer column and underglow
const rgblight_segment_t PROGMEM layer_num_lights[] = RGBLIGHT_LAYER_SEGMENTS(
SET_LAYER_ID(HSV_TEAL)
);
// _SYMBOL,
// Light on inner column and underglow
const rgblight_segment_t PROGMEM layer_symbol_lights[] = RGBLIGHT_LAYER_SEGMENTS(
SET_LAYER_ID(HSV_BLUE)
);
// _COMMAND,
// Light on inner column and underglow
const rgblight_segment_t PROGMEM layer_command_lights[] = RGBLIGHT_LAYER_SEGMENTS(
SET_LAYER_ID(HSV_PURPLE)
);
//_NUMPAD
const rgblight_segment_t PROGMEM layer_numpad_lights[] = RGBLIGHT_LAYER_SEGMENTS(
SET_INDICATORS(HSV_ORANGE),
SET_UNDERGLOW(HSV_ORANGE),
SET_NUMPAD(HSV_BLUE),
{7, 4, HSV_ORANGE},
{25, 2, HSV_ORANGE},
{35+6, 4, HSV_ORANGE},
{35+25, 2, HSV_ORANGE}
);
// _SWITCHER // light up top row
const rgblight_segment_t PROGMEM layer_switcher_lights[] = RGBLIGHT_LAYER_SEGMENTS(
SET_LAYER_ID(HSV_GREEN),
SET_NUMROW(HSV_GREEN)
);
const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST(
layer_qwerty_lights,
layer_num_lights,// overrides layer 1
layer_symbol_lights,
layer_command_lights,
layer_numpad_lights,
layer_switcher_lights, // Overrides other layers
layer_colemakdh_lights
);
layer_state_t layer_state_set_user(layer_state_t state) {
rgblight_set_layer_state(0, layer_state_cmp(state, _DEFAULTS) && layer_state_cmp(default_layer_state,_QWERTY));
rgblight_set_layer_state(7, layer_state_cmp(state, _DEFAULTS) && layer_state_cmp(default_layer_state,_COLEMAKDH));
rgblight_set_layer_state(1, layer_state_cmp(state, _LOWER));
rgblight_set_layer_state(2, layer_state_cmp(state, _RAISE));
rgblight_set_layer_state(3, layer_state_cmp(state, _ADJUST));
rgblight_set_layer_state(4, layer_state_cmp(state, _NUMPAD));
rgblight_set_layer_state(5, layer_state_cmp(state, _SWITCH));
return state;
}
void keyboard_post_init_user(void) {
// Enable the LED layers
rgblight_layers = my_rgb_layers;
rgblight_mode(10);// haven't found a way to set this in a more useful way
}
#endif
#ifdef OLED_ENABLE
static void render_logo(void) {
static const char PROGMEM qmk_logo[] = {
0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94,
0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4,
0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0x00
};
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("Dane\nEvans"), false);
oled_write_ln_P(PSTR(""), false);
//snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Undef-%ld", layer_state)
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;
case _COLEMAKDH:
oled_write_ln_P(PSTR("CmkDH"), false);
break;
default:
oled_write_ln_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:
case _COLEMAKDH:
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;
case _NUMPAD:
oled_write_P(PSTR("Nump\n"), false);
break;
case _SWITCH:
oled_write_P(PSTR("Swit\n"), false);
break;
default:
oled_write_ln_P(PSTR("Undef"), false);
}
}
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
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case KC_LOWER:
if (record->event.pressed) {
layer_on(_LOWER);
update_tri_layer(_LOWER, _RAISE, _ADJUST);
} else {
layer_off(_LOWER);
update_tri_layer(_LOWER, _RAISE, _ADJUST);
}
return false;
case KC_RAISE:
if (record->event.pressed) {
layer_on(_RAISE);
update_tri_layer(_LOWER, _RAISE, _ADJUST);
} else {
layer_off(_RAISE);
update_tri_layer(_LOWER, _RAISE, _ADJUST);
}
return false;
case KC_ADJUST:
if (record->event.pressed) {
layer_on(_ADJUST);
} else {
layer_off(_ADJUST);
}
return false;
case KC_D_MUTE:
if (record->event.pressed) {
register_mods(mod_config(MOD_MEH));
register_code(KC_UP);
} else {
unregister_mods(mod_config(MOD_MEH));
unregister_code(KC_UP);
}
}
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) {
switch (get_highest_layer(layer_state)) {
case _COLEMAK:
case _QWERTY:
case _COLEMAKDH:
if (clockwise) {
tap_code(KC_PGDN);
} else {
tap_code(KC_PGUP);
}
break;
case _RAISE:
case _LOWER:
if (clockwise) {
tap_code(KC_DOWN);
} else {
tap_code(KC_UP);
}
break;
default:
if (clockwise) {
tap_code(KC_WH_D);
} else {
tap_code(KC_WH_U);
}
break;
}
}
return true;
}
#endif

View File

@ -1,7 +0,0 @@
MOUSEKEY_ENABLE = yes
EXTRAKEY_ENABLE = yes
CONSOLE_ENABLE = no
RGBLIGHT_ENABLE = yes
ENCODER_ENABLE = yes
LTO_ENABLE = yes
OLED_ENABLE = yes

View File

@ -4,24 +4,37 @@
Sofle is 6×4+5 keys column-staggered split keyboard. Based on Lily58, Corne and Helix keyboards. Sofle is 6×4+5 keys column-staggered split keyboard. Based on Lily58, Corne and Helix keyboards.
More details about the keyboard on my blog: [Let me introduce you SofleKeyboard - a split keyboard based on Lily58 and Crkbd](https://josef-adamcik.cz/electronics/let-me-introduce-you-sofle-keyboard-split-keyboard-based-on-lily58.html) More details about the keyboard and build guides can be found here: [Sofle Keyboard Build Log and Guide](https://josefadamcik.github.io/SofleKeyboard)
The current (temporary) build guide and a build log is available here: [SofleKeyboard build log/guide](https://josef-adamcik.cz/electronics/soflekeyboard-build-log-and-build-guide.html)
* Keyboard Maintainer: [Josef Adamcik](https://josef-adamcik.cz) [Twitter:@josefadamcik](https://twitter.com/josefadamcik) * Keyboard Maintainer: [Josef Adamcik](https://josef-adamcik.cz) [Twitter:@josefadamcik](https://twitter.com/josefadamcik)
* Hardware Supported: SofleKeyboard PCB, ProMicro * Hardware Supported: SofleKeyboard PCB, ProMicro
* Hardware Availability: [PCB & Case Data](https://github.com/josefadamcik/SofleKeyboard) * Hardware Availability: [PCB & Case Data](https://github.com/josefadamcik/SofleKeyboard)
## Firmware Revisions
- `sofle/rev1` is used for v1, v2, and RGB PCBs (**NOT** RGB PCBs purchased from [Keyhive](https://keyhive.xyz))
- `sofle/keyhive` is used for PCBs purchased from [Keyhive](https://keyhive.xyz/shop/sofle)
- [`keyboards/sofle_choc`](../sofle_choc/) is used for Choc PCBs
Make example for this keyboard (after setting up your build environment): Make example for this keyboard (after setting up your build environment):
make sofle:default make sofle/rev1:default
make sofle/keyhive:default
Flash the default keymap: Flashing example for this keyboard:
make sofle:default:avrdude make sofle/rev1:default:flash
make sofle/keyhive:default:flash
Press reset button on he keyboard when asked. Press reset button on he keyboard when asked.
Disconnect the first half, connect the second one and repeat the process. Disconnect the first half, connect the second one and repeat the process.
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
## Bootloader
Enter the bootloader in 3 ways:
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix
* **Physical reset button**: Briefly press the button near the TRRS connector. Quickly double-tap if you are using Pro Micro.
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

View File

@ -1,27 +0,0 @@
# Sofle Keyboard
![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.
More details about the keyboard on my blog: [Let me introduce you SofleKeyboard - a split keyboard based on Lily58 and Crkbd](https://josef-adamcik.cz/electronics/let-me-introduce-you-sofle-keyboard-split-keyboard-based-on-lily58.html)
The current (temporary) build guide and a build log is available here: [SofleKeyboard build log/guide](https://josef-adamcik.cz/electronics/soflekeyboard-build-log-and-build-guide.html)
* Keyboard Maintainer: [Josef Adamcik](https://josef-adamcik.cz) [Twitter:@josefadamcik](https://twitter.com/josefadamcik)
* Hardware Supported: SofleKeyboard PCB, ProMicro
* Hardware Availability: [PCB & Case Data](https://github.com/josefadamcik/SofleKeyboard)
Make example for this keyboard (after setting up your build environment):
make sofle:default
Flashing example for this keyboard:
make sofle:default:flash
Press reset button on he keyboard when asked.
Disconnect the first half, connect the second one and repeat the process.
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).