commit fa26e242351851272c8cff2d567dd9f5a4ec65d6
parent c12d8a122a95bc0e8843f98184f7efcc8ebb7727
Author: Jack Sangdahl <jack@pngu.org>
Date: Wed, 21 Jan 2026 20:44:27 -0700
Move pointing device scrolling to userspace
Diffstat:
4 files changed, 33 insertions(+), 36 deletions(-)
diff --git a/keyboards/splitkb/kyria/keymaps/jack/keymap.c b/keyboards/splitkb/kyria/keymaps/jack/keymap.c
@@ -116,31 +116,3 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
return true;
}
#endif
-
-#ifdef POINTING_DEVICE_ENABLE
-static bool scrolling = false;
-layer_state_t layer_state_set_keymap(layer_state_t state) {
- switch (get_highest_layer(state)) {
- case LAYER1:
- scrolling = true;
- pointing_device_set_cpi(64);
- break;
- default:
- if (scrolling) {
- scrolling = false;
- pointing_device_set_cpi(1024);
- }
- }
- return state;
-}
-
-report_mouse_t pointing_device_task_user(report_mouse_t mouse_report) {
- if (scrolling) {
- mouse_report.h = mouse_report.x;
- mouse_report.v = -mouse_report.y;
- mouse_report.x = 0;
- mouse_report.y = 0;
- }
- return mouse_report;
-}
-#endif
diff --git a/users/jack/callbacks.c b/users/jack/callbacks.c
@@ -4,6 +4,5 @@
// clang-format off
__attribute__((weak)) void keyboard_post_init_keymap(void) {}
-__attribute__((weak)) layer_state_t layer_state_set_keymap(layer_state_t state) { return state; }
__attribute__((weak)) bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { return true; }
// clang-format on
diff --git a/users/jack/jack.c b/users/jack/jack.c
@@ -32,12 +32,6 @@ bool process_detected_host_os_user(os_variant_t detected_os) {
}
#endif
-layer_state_t layer_state_set_user(layer_state_t state) {
- state = update_tri_layer_state(state, LAYER1, LAYER2, LAYER3);
- state = layer_state_set_keymap(state);
- return state;
-}
-
uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case ESC_L1:
@@ -169,3 +163,36 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[LAYER3] = {{_______, _______}, {_______, _______}},
};
#endif
+
+static bool scrolling = false;
+
+layer_state_t layer_state_set_user(layer_state_t state) {
+ switch (get_highest_layer(state)) {
+ case LAYER1:
+ scrolling = true;
+#ifdef POINTING_DEVICE_ENABLE
+ pointing_device_set_cpi(64);
+#endif
+ break;
+ default:
+ if (scrolling) {
+ scrolling = false;
+#ifdef POINTING_DEVICE_ENABLE
+ pointing_device_set_cpi(1024);
+#endif
+ }
+ }
+ return update_tri_layer_state(state, LAYER1, LAYER2, LAYER3);
+}
+
+#ifdef POINTING_DEVICE_ENABLE
+report_mouse_t pointing_device_task_user(report_mouse_t mouse_report) {
+ if (scrolling) {
+ mouse_report.h = mouse_report.x;
+ mouse_report.v = -mouse_report.y;
+ mouse_report.x = 0;
+ mouse_report.y = 0;
+ }
+ return mouse_report;
+}
+#endif
diff --git a/users/jack/jack.h b/users/jack/jack.h
@@ -18,7 +18,6 @@ enum custom_keycodes {
};
void keyboard_post_init_keymap(void);
-layer_state_t layer_state_set_keymap(layer_state_t state);
bool process_record_keymap(uint16_t keycode, keyrecord_t *record);
#define INTERCEPT_MOD_TAP(mod, keycode) \