-
-
Notifications
You must be signed in to change notification settings - Fork 39.9k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Somei70 addition * Changes made, added VIA keymap, cleaned formatting * keymap via * Create rules.mk * Add files via upload * Delete keyboards/somei70/keymaps/via directory * Fixed RGB and matrix * Layout corrections and LED positions * removal of rules.mk * Moved OLED Settings to somei70.c, formatted C removed TABs, removed _LAYERC * Forgot to include license header * Further changes as per suggestions, replaced _user for _kb within somei70.c * Updated keymap 'changes in Nov24' * Requested changes
- Loading branch information
Showing
5 changed files
with
282 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
// Copyright 2023 QMK | ||
// SPDX-License-Identifier: GPL-2.0-or-later | ||
#pragma once | ||
|
||
#define OLED_BRIGHTNESS 100 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,148 @@ | ||
{ | ||
"manufacturer": "gzowski", | ||
"keyboard_name": "Somei70", | ||
"maintainer": "gzowski", | ||
"bootloader": "rp2040", | ||
"diode_direction": "COL2ROW", | ||
"features": { | ||
"bootmagic": true, | ||
"extrakey": true, | ||
"mousekey": true, | ||
"nkro": true, | ||
"oled": true, | ||
"rgb_matrix": true, | ||
"wpm": true | ||
}, | ||
"matrix_pins": { | ||
"cols": ["GP28", "GP27", "GP26", "GP22", "GP20", "GP23", "GP21", "GP16", "GP15", "GP14", "GP13", "GP12", "GP9", "GP8", "GP7"], | ||
"rows": ["GP1", "GP29", "GP6", "GP5", "GP4"] | ||
}, | ||
"processor": "RP2040", | ||
"rgb_matrix": { | ||
"animations": { | ||
"band_sat": true, | ||
"band_val": true, | ||
"breathing": true, | ||
"cycle_all": true, | ||
"cycle_left_right": true, | ||
"cycle_out_in": true, | ||
"cycle_out_in_dual": true, | ||
"dual_beacon": true, | ||
"gradient_left_right": true, | ||
"hue_breathing": true, | ||
"hue_pendulum": true, | ||
"hue_wave": true, | ||
"jellybean_raindrops": true, | ||
"rainbow_beacon": true, | ||
"rainbow_moving_chevron": true, | ||
"raindrops": true | ||
}, | ||
"driver": "ws2812", | ||
"layout": [ | ||
{"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, | ||
{"matrix": [0, 1], "x": 16, "y": 0, "flags": 4}, | ||
{"matrix": [0, 2], "x": 32, "y": 0, "flags": 4}, | ||
{"matrix": [0, 3], "x": 48, "y": 0, "flags": 4}, | ||
{"matrix": [0, 4], "x": 64, "y": 0, "flags": 4}, | ||
{"matrix": [0, 5], "x": 80, "y": 0, "flags": 4}, | ||
{"matrix": [0, 6], "x": 96, "y": 0, "flags": 4}, | ||
{"matrix": [0, 7], "x": 112, "y": 0, "flags": 4}, | ||
{"matrix": [0, 8], "x": 128, "y": 0, "flags": 4}, | ||
{"matrix": [0, 9], "x": 144, "y": 0, "flags": 4}, | ||
{"matrix": [0, 10], "x": 160, "y": 0, "flags": 4}, | ||
{"matrix": [0, 11], "x": 176, "y": 0, "flags": 4}, | ||
{"matrix": [0, 12], "x": 192, "y": 0, "flags": 4}, | ||
{"matrix": [0, 13], "x": 212, "y": 0, "flags": 4} | ||
], | ||
"led_flush_limit": 14, | ||
"led_process_limit": 5, | ||
"max_brightness": 200, | ||
"sleep": true | ||
}, | ||
"url": "https://github.com/gzowski/somei70", | ||
"usb": { | ||
"device_version": "1.0.0", | ||
"pid": "0x6F64", | ||
"vid": "0x73CA" | ||
}, | ||
"ws2812": { | ||
"driver": "vendor", | ||
"pin": "GP0" | ||
}, | ||
"layouts": { | ||
"LAYOUT_5x15": { | ||
"layout": [ | ||
{"label": "ESC", "matrix": [0, 0], "x": 0, "y": 0}, | ||
{"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, | ||
{"label": "2", "matrix": [0, 2], "x": 2, "y": 0}, | ||
{"label": "3", "matrix": [0, 3], "x": 3, "y": 0}, | ||
{"label": "4", "matrix": [0, 4], "x": 4, "y": 0}, | ||
{"label": "5", "matrix": [0, 5], "x": 5, "y": 0}, | ||
{"label": "6", "matrix": [0, 6], "x": 6, "y": 0}, | ||
{"label": "7", "matrix": [0, 7], "x": 7, "y": 0}, | ||
{"label": "8", "matrix": [0, 8], "x": 8, "y": 0}, | ||
{"label": "9", "matrix": [0, 9], "x": 9, "y": 0}, | ||
{"label": "0", "matrix": [0, 10], "x": 10, "y": 0}, | ||
{"label": "MINS", "matrix": [0, 11], "x": 11, "y": 0}, | ||
{"label": "EQL", "matrix": [0, 12], "x": 12, "y": 0}, | ||
{"label": "BSPC", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, | ||
{"label": "TAB", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, | ||
{"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, | ||
{"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, | ||
{"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, | ||
{"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, | ||
{"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, | ||
{"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, | ||
{"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, | ||
{"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, | ||
{"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, | ||
{"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, | ||
{"label": "LBRC", "matrix": [1, 11], "x": 11.5, "y": 1}, | ||
{"label": "RBRC", "matrix": [1, 12], "x": 12.5, "y": 1}, | ||
{"label": "BSLS", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, | ||
{"label": "CAPS", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, | ||
{"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, | ||
{"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, | ||
{"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, | ||
{"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, | ||
{"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, | ||
{"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, | ||
{"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, | ||
{"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, | ||
{"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, | ||
{"label": "SCLN", "matrix": [2, 10], "x": 10.75, "y": 2}, | ||
{"label": "QLOT", "matrix": [2, 11], "x": 11.75, "y": 2}, | ||
{"label": "GRV", "matrix": [2, 12], "x": 12.75, "y": 2}, | ||
{"label": "DEL", "matrix": [2, 13], "x": 13.75, "y": 2, "w": 1.25}, | ||
{"label": "PGUP", "matrix": [2, 14], "x": 15, "y": 2}, | ||
{"label": "LSFT", "matrix": [3, 0], "x": 0, "y": 3, "w": 2}, | ||
{"label": "Z", "matrix": [3, 1], "x": 2, "y": 3}, | ||
{"label": "X", "matrix": [3, 2], "x": 3, "y": 3}, | ||
{"label": "C", "matrix": [3, 3], "x": 4, "y": 3}, | ||
{"label": "V", "matrix": [3, 4], "x": 5, "y": 3}, | ||
{"label": "B", "matrix": [3, 5], "x": 6, "y": 3}, | ||
{"label": "N", "matrix": [3, 6], "x": 7, "y": 3}, | ||
{"label": "M", "matrix": [3, 7], "x": 8, "y": 3}, | ||
{"label": "COMM", "matrix": [3, 8], "x": 9, "y": 3}, | ||
{"label": "DOT", "matrix": [3, 9], "x": 10, "y": 3}, | ||
{"label": "SLSH", "matrix": [3, 10], "x": 11, "y": 3}, | ||
{"label": "RSFT", "matrix": [3, 11], "x": 12, "y": 3}, | ||
{"label": "INS", "matrix": [3, 12], "x": 13, "y": 3}, | ||
{"label": "UP", "matrix": [3, 13], "x": 14, "y": 3}, | ||
{"label": "PGDN", "matrix": [3, 14], "x": 15, "y": 3}, | ||
{"label": "RCTL", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, | ||
{"label": "LGUI", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, | ||
{"label": "LALT", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, | ||
{"label": "SPC", "matrix": [4, 3], "x": 3.75, "y": 4, "w": 2.25}, | ||
{"label": "MUTE", "matrix": [4, 4], "x": 6, "y": 4, "w": 1.75}, | ||
{"label": "ENT", "matrix": [4, 5], "x": 7.75, "y": 4, "w": 2.25}, | ||
{"label": "RALT", "matrix": [4, 6], "x": 10, "y": 4}, | ||
{"label": "MO(1)", "matrix": [4, 7], "x": 11, "y": 4}, | ||
{"label": "RCTL", "matrix": [4, 8], "x": 12, "y": 4}, | ||
{"label": "LEFT", "matrix": [4, 9], "x": 13, "y": 4}, | ||
{"label": "DOWN", "matrix": [4, 10], "x": 14, "y": 4}, | ||
{"label": "RGHT", "matrix": [4, 11], "x": 15, "y": 4} | ||
] | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
// Copyright 2024 James Gzowski | ||
// SPDX-License-Identifier: GPL-2.0-or-later | ||
#include QMK_KEYBOARD_H | ||
enum custom_layer { _LAYERA, _LAYERB }; | ||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
[_LAYERA] = LAYOUT_5x15( | ||
KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS , KC_EQL , KC_BSPC, | ||
KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC , KC_RBRC, KC_BSLS, | ||
KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT , KC_GRV , KC_DEL , KC_PGUP, | ||
KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT , KC_INS , KC_UP , KC_PGDN, | ||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_MUTE, KC_ENT, KC_RALT, MO(_LAYERB), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT | ||
), | ||
[_LAYERB] = LAYOUT_5x15( | ||
KC_ESC , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_PSCR, | ||
KC_TAB , RM_NEXT, RM_VALD, RM_VALU, RM_SPDD, RM_SPDU, RM_HUED, RM_HUEU, RM_SATD, RM_SATU, KC_P , KC_LBRC, KC_RBRC, KC_BSLS, | ||
KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_GRV , KC_DEL , KC_PGUP, | ||
KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_INS , KC_UP , KC_PGDN, | ||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , RM_TOGG, KC_ENT , KC_RALT, _______, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT | ||
)}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
# Somei70 | ||
|
||
70 key alternative layout | ||
|
||
* Keyboard Maintainer: [James Gzowski](https://github.com/gzowski) | ||
* Hardware Supported: Elite-Pi, Frood, 0xB2 Splinky or similar, requires D9-D15 pins | ||
* Build Guide: [Somei70](https://github.com/gzowski/somei70) | ||
|
||
Make example for this keyboard (after setting up your build environment): | ||
|
||
make somei70:default | ||
|
||
Flashing example for this keyboard: | ||
|
||
make somei70:default:flash | ||
|
||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). | ||
|
||
## Bootloader | ||
|
||
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard | ||
* **Physical reset button**: Briefly press the button on the PCB, if using a RP2040 press repeatidly to enter boot mode. | ||
* **Hold down boot loader button on MCU** Hold down the boot loader button on the MCU while plugging in the keyboard |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,87 @@ | ||
// Copyright 2024 James Gzowski | ||
// SPDX-License-Identifier: GPL-2.0-or-later | ||
#include QMK_KEYBOARD_H | ||
#ifdef OLED_ENABLE | ||
static uint8_t oled_mode = 0; | ||
static uint8_t esc_press_count = 0; | ||
static uint16_t esc_timer = 0; | ||
// Stats display | ||
void render_stats(void) { | ||
oled_write_P(PSTR("WPM: "), false); | ||
oled_write_ln(get_u8_str(get_current_wpm(), '0'), false); | ||
if (host_keyboard_led_state().caps_lock) { | ||
oled_write_P(PSTR("CAPS: On "), false); | ||
} else { | ||
oled_write_P(PSTR("CAPS: Off "), false); | ||
} | ||
if (keymap_config.nkro) { | ||
oled_write_ln("NKRO: On", false); | ||
} else { | ||
oled_write_ln("NKRO: Off", false); | ||
} | ||
oled_write_P(PSTR("LED Brightness: "), false); | ||
oled_write_ln(get_u8_str(rgblight_get_val(), '0'), false); | ||
oled_write_ln(PSTR("P: 0x6F64 V: 0x73CA"), false); | ||
} | ||
// Static images | ||
static void render_caps(void) { | ||
static const char PROGMEM my_caps[] = { | ||
0, 128, 192, 192, 248, 120, 8, 8, 24, 24, 48, 96, 96, 176, 24, 12, 4, 6, 6, 30, 60, 48, 48, 240, 240, 16, 16, 16, 16, 16, 16, 16, 16, 16, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 16, 16, 16, 144, 208, 208, 248, 120, 24, 24, 24, 24, 48, 96, 96, 176, 24, 12, 4, 6, 6, 30, 60, 48, 48, 240, 224, 0, 0, 0, 0, 0, 0, 0, 0, 7, 31, 56, 64, 128, 128, 128, 192, 192, 192, 224, 192, 225, 255, 240, 240, 128, 128, 64, 64, 48, 24, 7, 7, 6, 4, 140, 216, 120, 48, 0, 0, 0, 128, 128, 128, 128, 128, 0, 0, 0, 240, | ||
248, 12, 12, 12, 12, 12, 28, 56, 0, 0, 240, 248, 156, 12, 12, 12, 12, 156, 248, 240, 0, 0, 248, 252, 156, 12, 12, 12, 12, 152, 240, 0, 0, 32, 112, 216, 140, 140, 140, 12, 12, 4, 0, 0, 0, 0, 128, 128, 128, 128, 128, 0, 0, 0, 7, 31, 56, 64, 128, 128, 128, 192, 192, 192, 224, 192, 225, 255, 240, 240, 128, 128, 64, 64, 48, 24, 7, 7, 6, 4, 140, 216, 120, 48, 0, 0, 224, 240, 24, 4, 3, 1, 0, 0, 0, 0, 6, 255, 135, 7, 15, 31, 17, 49, 32, 32, 32, 96, 224, 224, 32, 48, 17, 27, 14, 4, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 15, 31, 48, 48, 48, 48, 48, 56, 28, 0, 0, 63, 63, 3, 1, 1, 1, 1, 3, 63, 63, 0, 0, 63, 63, 3, 3, 3, 3, 3, 1, 0, 0, 0, 16, 48, 48, 49, 49, 49, 27, 14, 4, 0, | ||
0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 224, 240, 24, 4, 3, 1, 0, 0, 0, 0, 6, 255, 135, 7, 15, 31, 17, 49, 32, 32, 32, 96, 224, 224, 32, 48, 17, 27, 14, 4, 0, 0, 3, 7, 6, 30, 60, 48, 32, 48, 48, 24, 12, 7, 7, 12, 16, 32, 96, 96, 120, 124, 60, 12, 15, 15, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 8, 8, 8, 11, 15, 14, 30, 60, 48, 32, 48, 48, 24, 12, 7, 7, 12, 16, 32, 96, 96, 120, 124, 60, 12, 15, 7, 0, 0, 0, 0, 0, 0, 0, | ||
}; | ||
oled_write_raw_P(my_caps, sizeof(my_caps)); | ||
} | ||
static void render_logo(void) { | ||
static const char PROGMEM my_logo[] = { | ||
0, 128, 192, 192, 248, 120, 8, 8, 24, 24, 48, 96, 96, 176, 24, 12, 4, 6, 6, 30, 60, 48, 48, 240, 240, 16, 16, 16, 16, 16, 16, 16, 16, 16, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 16, 16, 16, 144, 208, 208, 248, 120, 24, 24, 24, 24, 48, 96, 96, 176, 24, 12, 4, 6, 6, 30, 60, 48, 48, 240, 224, 0, 0, 0, 0, 0, 0, 0, 0, 7, 31, 56, 64, 128, 128, 128, 192, 192, 192, 224, 192, 225, 255, 240, 240, 128, 128, 64, 64, 48, 24, 7, 7, 6, 4, 140, 216, 120, 48, 0, 48, 120, 204, 204, 204, 204, 204, 140, 8, 0, 0, | ||
240, 248, 12, 12, 12, 12, 12, 248, 240, 0, 0, 248, 252, 24, 48, 96, 96, 48, 24, 252, 248, 0, 0, 248, 252, 140, 140, 140, 12, 8, 0, 0, 252, 252, 0, 0, 8, 12, 12, 12, 12, 252, 248, 0, 0, 240, 248, 12, 12, 140, 76, 248, 240, 0, 7, 31, 56, 64, 128, 128, 128, 192, 192, 192, 224, 192, 225, 255, 240, 240, 128, 128, 64, 64, 48, 24, 7, 7, 6, 4, 140, 216, 120, 48, 0, 0, 224, 240, 24, 4, 3, 1, 0, 0, 0, 0, 6, 255, 135, 7, 15, 31, 17, 49, 32, 32, 32, 96, 224, 224, 32, 48, 17, 27, 14, 4, 0, 16, 48, 48, 48, 48, 48, 48, 63, 15, 0, 0, 15, 31, 48, 48, 48, 48, 48, 31, 15, 0, 0, 63, 31, 0, 0, 0, 0, 0, 0, 31, 63, 0, 0, 31, 63, 49, 49, 49, 48, 16, 0, 0, 63, 63, 0, 0, 0, 0, 0, 0, 0, 63, 63, | ||
0, 0, 15, 31, 50, 49, 48, 48, 31, 15, 0, 224, 240, 24, 4, 3, 1, 0, 0, 0, 0, 6, 255, 135, 7, 15, 31, 17, 49, 32, 32, 32, 96, 224, 224, 32, 48, 17, 27, 14, 4, 0, 0, 3, 7, 6, 30, 60, 48, 32, 48, 48, 24, 12, 7, 7, 12, 16, 32, 96, 96, 120, 124, 60, 12, 15, 15, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 8, 8, 8, 11, 15, 14, 30, 60, 48, 32, 48, 48, 24, 12, 7, 7, 12, 16, 32, 96, 96, 120, 124, 60, 12, 15, 7, 0, 0, 0, 0, 0, 0, 0, | ||
}; | ||
oled_write_raw_P(my_logo, sizeof(my_logo)); | ||
} | ||
// Render chosen display | ||
void render_oled_display(void) { | ||
if (oled_mode == 0) { | ||
if (host_keyboard_led_state().caps_lock) { | ||
render_caps(); | ||
} else { | ||
render_logo(); | ||
} | ||
} else if (oled_mode == 1) { | ||
render_stats(); | ||
} | ||
} | ||
// Rotate 180 degrees | ||
oled_rotation_t oled_init_kb(oled_rotation_t rotation) { | ||
return OLED_ROTATION_180; | ||
} | ||
bool oled_task_kb(void) { | ||
if (!oled_task_user()) { | ||
return false; | ||
} | ||
render_oled_display(); | ||
return false; | ||
} | ||
// Record keypress | ||
bool process_record_kb(uint16_t keycode, keyrecord_t *record) { | ||
switch (keycode) { | ||
case KC_ESC: | ||
if (record->event.pressed) { | ||
if (timer_elapsed(esc_timer) > 250) { | ||
esc_press_count = 0; | ||
} | ||
esc_press_count++; | ||
esc_timer = timer_read(); | ||
|
||
if (esc_press_count == 3) { | ||
oled_clear(); | ||
oled_mode = (oled_mode == 0) ? 1 : 0; | ||
esc_press_count = 0; | ||
} | ||
} | ||
break; | ||
} | ||
return process_record_user(keycode, record); | ||
} | ||
#endif |