feat: Implement OLED display support and custom icons for 128x32 displays
- Added OLED functionality in keymap.c with custom rendering for layers and modifiers. - Created a Python script to generate simple icons for OLED displays. - Introduced a new rules.mk file to enable OLED features for the keymap. - Developed an OLED font helper script for visualizing and designing custom graphics. - Redesigned OLED layout to fit 128x32 displays, optimizing space for logos and layer indicators. - Implemented flow tap functionality in flow_tap.c for enhanced key responsiveness.
This commit is contained in:
parent
f3afe70c10
commit
ac0b03a50c
15 changed files with 1300 additions and 17 deletions
|
|
@ -25,6 +25,10 @@
|
|||
// IMPORTANT: This must be set for EE_HANDS to work properly
|
||||
#define EE_HANDS
|
||||
|
||||
#ifdef OLED_ENABLE
|
||||
#define OLED_DISPLAY_128X32
|
||||
#endif
|
||||
|
||||
// Alternative methods (comment out EE_HANDS and use one of these if needed):
|
||||
// #define MASTER_LEFT // Left half is always master (USB connection side)
|
||||
// #define MASTER_RIGHT // Right half is always master (USB connection side)
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@
|
|||
*/
|
||||
#include "smathev.h"
|
||||
#include <stdio.h>
|
||||
//#include "flow_tap.c"
|
||||
#include "wrappers.h"
|
||||
#include "casemodes.h"
|
||||
#include QMK_KEYBOARD_H
|
||||
|
|
@ -47,29 +48,39 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||
__NORTO_THUMBS_6__
|
||||
),
|
||||
|
||||
[_QWERTY] = LAYOUT_sweeeeep_base_wrapper(
|
||||
__________________QWERTY_L1____________________, __________________QWERTY_R1____________________,
|
||||
__________________QWERTY_L2____________________, __________________QWERTY_R2____________________,
|
||||
__________________QWERTY_L3____________________, __________________QWERTY_R3____________________,
|
||||
__QWERTY_THUMBS_6__
|
||||
),
|
||||
|
||||
[_NORTNAVIGATION] = LAYOUT_sweeeeep_base_wrapper(
|
||||
____________NORTNAVIGATION_1_______________, _________________NUMPAD_1__________________,
|
||||
____________NORTNAVIGATION_2_______________, _________________NUMPAD_2__________________,
|
||||
____________NORTNAVIGATION_3_______________, _________________NUMPAD_3__________________,
|
||||
_______, TG(_NORTO), TG(_QWERTY), TG(_QWERTY), TG(_NORTO), _______
|
||||
_______, _______, _______, _______, _______, TG(_SETUP)
|
||||
),
|
||||
|
||||
[_SYMFKEYS] = LAYOUT_sweeeeep_base_wrapper(
|
||||
___________________FKEY______L1________________, ________________NORTSYMBOLS_R1_________________,
|
||||
___________________FKEY______L2________________, ________________NORTSYMBOLS_R2_________________,
|
||||
___________________FKEY______L3________________, ________________NORTSYMBOLS_R3_________________,
|
||||
_______, TG(_NORTO), TG(_QWERTY), TG(_QWERTY), TG(_NORTO), _______
|
||||
TG(_SETUP), _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
[_SETUP] = LAYOUT_sweeeeep_base_wrapper(
|
||||
__________________QWERTY_L1____________________, _________________KB_SETUP_1________________,
|
||||
__________________QWERTY_L2____________________, _________________KB_SETUP_2________________,
|
||||
__________________QWERTY_L3____________________, _________________KB_SETUP_3________________,
|
||||
_______, TG(_SETUP), TG(_NORTO), TG(_NORTO), TG(_SETUP), _______
|
||||
)
|
||||
|
||||
};
|
||||
|
||||
|
||||
// Chordal hold layout (disabled - conflicts with multi-modifier shortcuts)
|
||||
/*
|
||||
const char chordal_hold_layout[MATRIX_ROWS][MATRIX_COLS] PROGMEM =
|
||||
LAYOUT(
|
||||
'L', 'L', 'L', 'L', 'L', 'R', 'R', 'R', 'R', 'R',
|
||||
'L', 'L', 'L', 'L', 'L', 'R', 'R', 'R', 'R', 'R',
|
||||
'L', 'L', 'L', 'L', 'L', 'R', 'R', 'R', 'R', 'R',
|
||||
'*', 'L', 'L', 'R', 'R', '*'
|
||||
);
|
||||
*/
|
||||
#ifdef OLED_ENABLE
|
||||
// static uint32_t oled_timer = 0;
|
||||
bool process_record_oled(uint16_t keycode, keyrecord_t *record);
|
||||
|
|
@ -253,9 +264,9 @@ void render_layer_state(void) {
|
|||
0x20, 0x9a, 0x9b, 0x9c, 0x20,
|
||||
0x20, 0xba, 0xbb, 0xbc, 0x20,
|
||||
0x20, 0xda, 0xdb, 0xdc, 0x20, 0};
|
||||
if(layer_state_is(_SYMBOLS)) {
|
||||
if(layer_state_is(_SYMFKEYS)) {
|
||||
oled_write_P(lower_layer, false);
|
||||
} else if(layer_state_is(_NAVIGATION)) {
|
||||
} else if(layer_state_is(_NORTNAVIGATION)) {
|
||||
oled_write_P(raise_layer, false);
|
||||
} else {
|
||||
oled_write_P(default_layer, false);
|
||||
|
|
|
|||
3
keyboards/fingerpunch/sweeeeep/keymaps/smathev/rules.mk
Normal file
3
keyboards/fingerpunch/sweeeeep/keymaps/smathev/rules.mk
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
# Keymap-specific features
|
||||
OLED_ENABLE = yes
|
||||
OLED_DRIVER = ssd1306 # Standard I2C OLED driver
|
||||
Loading…
Add table
Add a link
Reference in a new issue