commit c49769cb731e63cb22d9a384847bee5f1d03b3af
parent 720bfba7125ba26af0dae4147e84a30707402623
Author: Jack Sangdahl <jack@pngu.org>
Date: Sun, 7 Dec 2025 16:25:10 +0100
Move remaining OLED code to where it's used
Diffstat:
5 files changed, 33 insertions(+), 35 deletions(-)
diff --git a/keyboards/splitkb/kyria/keymaps/jack/config.h b/keyboards/splitkb/kyria/keymaps/jack/config.h
@@ -2,6 +2,8 @@
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
+#define OLED_DISABLE_TIMEOUT
+
#define SPLIT_WPM_ENABLE
#define SPLIT_POINTING_ENABLE
#define POINTING_DEVICE_RIGHT
diff --git a/keyboards/splitkb/kyria/keymaps/jack/keymap.c b/keyboards/splitkb/kyria/keymaps/jack/keymap.c
@@ -28,6 +28,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// clang-format on
#ifdef OLED_ENABLE
+uint32_t oled_timer = 0;
+
+void oled_timer_reset(void) { oled_timer = timer_read32(); }
+
void oled_wpm_graph(void) {
static uint8_t height = OLED_DISPLAY_HEIGHT - 1, vert_count = 0,
max_wpm = 160;
@@ -67,12 +71,25 @@ void oled_wpm(void) {
}
bool oled_task_keymap(void) {
+ if (is_keyboard_master()) {
+ if (timer_elapsed32(oled_timer) > THREE_MIN) {
+ oled_off();
+ return false;
+ } else
+ oled_on();
+ }
if (is_keyboard_left()) {
oled_wpm_graph();
oled_wpm();
}
return false;
}
+
+bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
+ if (record->event.pressed)
+ oled_timer_reset();
+ return true;
+}
#endif
#ifdef POINTING_DEVICE_ENABLE
diff --git a/users/jack/config.h b/users/jack/config.h
@@ -2,23 +2,24 @@
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
+// Input related
#define TAPPING_TERM_PER_KEY
#define TAPPING_TERM 140
#define BOTH_SHIFTS_TURNS_ON_CAPS_WORD
#define COMBO_TERM 40
#define NO_ACTION_ONESHOT
#define UNICODE_SELECTED_MODES UNICODE_MODE_LINUX, UNICODE_MODE_MACOS
-#define ENABLE_COMPILE_KEYCODE
+
+// Space saving
#define LAYER_STATE_8BIT
#undef LOCKING_SUPPORT_ENABLE
#undef LOCKING_RESYNC_ENABLE
+
+// Miscellaneous
#undef MANUFACTURER
#define MANUFACTURER "jack"
#define THREE_MIN (1000 * 60) * 3
-
-#ifdef OLED_ENABLE
-#define OLED_DISABLE_TIMEOUT
-#endif
+#define ENABLE_COMPILE_KEYCODE
#ifdef RGB_MATRIX_ENABLE
#define RGB_MATRIX_SLEEP
diff --git a/users/jack/jack.c b/users/jack/jack.c
@@ -33,25 +33,6 @@ bool process_detected_host_os_user(os_variant_t detected_os) {
}
#endif
-#ifdef OLED_ENABLE
-uint32_t oled_timer = 0;
-
-void oled_timer_reset(void) { oled_timer = timer_read32(); }
-
-__attribute__((weak)) bool oled_task_keymap(void) { return true; }
-bool oled_task_user(void) {
- if (is_keyboard_master()) {
- if (timer_elapsed32(oled_timer) > THREE_MIN) {
- oled_off();
- return false;
- } else
- oled_on();
- }
- oled_task_keymap();
- return false;
-}
-#endif
-
#define INTERCEPT_MOD_TAP(mod, keycode) \
case mod(keycode): \
if (record->tap.count && record->event.pressed) { \
@@ -114,12 +95,13 @@ tap_dance_action_t tap_dance_actions[] = {
[SBRACKET] = ACTION_TAP_DANCE_DOUBLE(KC_LBRC, KC_RBRC),
};
#endif
-
+__attribute__((weak)) bool process_record_keymap(uint16_t keycode,
+ keyrecord_t *record) {
+ return true;
+}
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
-#ifdef OLED_ENABLE
- if (record->event.pressed)
- oled_timer_reset();
-#endif
+ if (!process_record_keymap(keycode, record))
+ return false;
switch (keycode) {
case UPDIR:
if (record->event.pressed)
diff --git a/users/jack/jack.h b/users/jack/jack.h
@@ -3,7 +3,7 @@
#pragma once
#include QMK_KEYBOARD_H
-enum layers { LAYER0, LAYER1, LAYER3 };
+enum layers { LAYER0, LAYER1, LAYER2, LAYER3 };
enum tapdances { EM_DASH_MINS, PLY_NXT_PRV, CBRACKET, SBRACKET };
@@ -14,13 +14,9 @@ void em_dash_mins(tap_dance_state_t *state, void *user_data);
void ply_nxt_prv(tap_dance_state_t *state, void *user_data);
#endif
-#ifdef OLED_ENABLE
-bool oled_task_keymap(void);
-void oled_timer_reset(void);
-#endif
-
void keyboard_pre_init_keymap(void);
void keyboard_post_init_keymap(void);
+bool process_record_keymap(uint16_t keycode, keyrecord_t *record);
#ifdef RGB_MATRIX_ENABLE
#define XRGB_TOG RM_TOGG