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
|
|
@ -23,16 +23,21 @@
|
|||
// ============================================================================
|
||||
|
||||
// Tapping and timing configuration
|
||||
#define TAPPING_TERM 140
|
||||
#define PERMISSIVE_HOLD // Activate mod immediately when another key pressed
|
||||
#define AUTO_SHIFT_TIMEOUT 170 // Slightly longer than TAPPING_TERM
|
||||
#define TAPPING_TERM 200
|
||||
//#define FLOW_TAP
|
||||
//#define PERMISSIVE_HOLD // Activate mod immediately when another key pressed _REDUNDANT due to SpeculativeHold
|
||||
#define AUTO_SHIFT_TIMEOUT 150 // Slightly longer than TAPPING_TERM
|
||||
#define RETRO_SHIFT // Enable retroactive shift
|
||||
#define RETRO_TAPPING // Enable retroactive tapping
|
||||
#define HOLD_ON_OTHER_KEY_PRESS // Enable hold on other key press
|
||||
#define CHORDAL_HOLD // Enable chordal hold (mod activates if another key is pressed before tapping term)
|
||||
//#define CHORDAL_HOLD // Enable chordal hold (mod activates if another key is pressed before tapping term)
|
||||
// DISABLED: Conflicts with multi-modifier shortcuts like Ctrl+Shift+P
|
||||
|
||||
// Combo configuration
|
||||
#define CASEMODES_ENABLE
|
||||
#define COMBO_REF_DEFAULT _NORTO
|
||||
|
||||
#ifdef OLED_ENABLE
|
||||
#define OLED_DISPLAY_128X32
|
||||
#endif
|
||||
|
||||
|
|
|
|||
20
users/smathev/flow_tap.c
Normal file
20
users/smathev/flow_tap.c
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
#include "keymap_danish.h"
|
||||
|
||||
bool is_flow_tap_key(uint16_t keycode) {
|
||||
if ((get_mods() & (MOD_MASK_CG | MOD_BIT_LALT)) != 0) {
|
||||
return false; // Disable Flow Tap on hotkeys.
|
||||
}
|
||||
switch (get_tap_keycode(keycode)) {
|
||||
case KC_SPC:
|
||||
case KC_A ... KC_Z:
|
||||
case KC_DOT:
|
||||
case KC_COMM:
|
||||
case DK_SCLN:
|
||||
case DK_SLSH:
|
||||
case DK_ARNG:
|
||||
case DK_OSTR:
|
||||
case DK_AE:
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
|
@ -15,6 +15,8 @@ COMBO_ENABLE = yes # Combo key feature
|
|||
INTROSPECTION_KEYMAP_C = keyboards/fingerpunch/sweeeeep/keymaps/smathev/keymap.c
|
||||
|
||||
AUTO_SHIFT_ENABLE = yes # Auto shift for hold-to-shift
|
||||
OLED_ENABLE = yes # Enable OLED displays
|
||||
OLED_DRIVER = ssd1306 # Standard I2C OLED driver (SSD1306)
|
||||
|
||||
# Implemented from https://github.com/samhocevar-forks/qmk-firmware/blob/master/docs/feature_tap_dance.md
|
||||
# TAP_DANCE_ENABLE = yes
|
||||
|
|
@ -28,3 +30,4 @@ CASEMODE_ENABLE = yes
|
|||
#WPM ENABLE
|
||||
WPM_ENABLE = yes
|
||||
|
||||
DYNAMIC_TAPPING_TERM_ENABLE = yes
|
||||
|
|
|
|||
|
|
@ -28,7 +28,8 @@ enum userspace_layers {
|
|||
_NORTO= 0,
|
||||
_QWERTY,
|
||||
_NORTNAVIGATION,
|
||||
_SYMFKEYS
|
||||
_SYMFKEYS,
|
||||
_SETUP
|
||||
};
|
||||
|
||||
void press_super_alt_tab(bool shift);
|
||||
|
|
|
|||
|
|
@ -279,6 +279,13 @@ NOTE: These are all the same length. If you do a search/replace
|
|||
|
||||
// GAMES_LAYER?
|
||||
|
||||
|
||||
#define _________________KB_SETUP_1________________ AS_UP, DT_UP, KC_C, KC_V, KC_G
|
||||
#define _________________KB_SETUP_2________________ AS_DOWN, DT_DOWN, KC_E, KC_R, KC_D
|
||||
#define _________________KB_SETUP_3________________ AS_RPT, DT_PRNT, KC_TAB, KC_L, KC_H
|
||||
#define _________________KB_SETUP_4________________ KC_T, KC_COMM, KC_K, KC_SCLN, KC_DOT
|
||||
|
||||
|
||||
#define ___________________GAMES_0_________________ KC_F1, KC_F2, KC_C, KC_V, KC_G
|
||||
#define ___________________GAMES_1_________________ KC_Q, KC_W, KC_E, KC_R, KC_D
|
||||
#define ___________________GAMES_2_________________ KC_A, KC_F, KC_TAB, KC_L, KC_H
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue