aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbrian cully <bjc@spork.org>2026-01-13 14:47:30 -0500
committerbrian cully <bjc@spork.org>2026-01-13 14:49:54 -0500
commitcf35cb6f9081d11e19a428248876058f89180744 (patch)
tree58af0c66ce6873fa3e8d2aa7ce983246b26acc38
parenteb37d1fffc9cbfc103f9ec3ed811986ba288f57e (diff)
downloadqmk-userspace-cf35cb6f9081d11e19a428248876058f89180744.tar.gz
qmk-userspace-cf35cb6f9081d11e19a428248876058f89180744.zip
put layer change on lr button tap toggle
-rw-r--r--keyboards/ploopyco/madromys/keymaps/bjc/config.h8
-rw-r--r--keyboards/ploopyco/madromys/keymaps/bjc/keymap.c45
-rw-r--r--keyboards/ploopyco/madromys/keymaps/bjc/rules.mk1
-rw-r--r--keyboards/ploopyco/madromys/keymaps/via/info.json6
-rw-r--r--keyboards/ploopyco/madromys/keymaps/via/rules.mk1
5 files changed, 55 insertions, 6 deletions
diff --git a/keyboards/ploopyco/madromys/keymaps/bjc/config.h b/keyboards/ploopyco/madromys/keymaps/bjc/config.h
new file mode 100644
index 0000000..bf0e6e9
--- /dev/null
+++ b/keyboards/ploopyco/madromys/keymaps/bjc/config.h
@@ -0,0 +1,8 @@
+#pragma once
+
+// doesn't work on plasma. shame. 2026-jan-13
+//#define POINTING_DEVICE_HIRES_SCROLL_ENABLE
+#define PLOOPY_DPI_OPTIONS { 2400, 4800, 12000, 16000 }
+#define PLOOPY_DPI_DEFAULT 3
+#define PLOOPY_DRAGSCROLL_DIVISOR_H 16.0
+#define PLOOPY_DRAGSCROLL_DIVISOR_V 16.0
diff --git a/keyboards/ploopyco/madromys/keymaps/bjc/keymap.c b/keyboards/ploopyco/madromys/keymaps/bjc/keymap.c
index 126d7d3..6602aed 100644
--- a/keyboards/ploopyco/madromys/keymaps/bjc/keymap.c
+++ b/keyboards/ploopyco/madromys/keymaps/bjc/keymap.c
@@ -17,16 +17,49 @@
*/
#include QMK_KEYBOARD_H
-#define PLOOPY_DPI_OPTIONS { 2400, 4800, 12000 }
-#define PLOOPY_DPI_DEFAULT 2
-
enum {
DEFAULT = 0,
- FN1 = 1,
+ FN1 = 1
+};
+
+enum {
+ KC_TOG_HOLD = QK_USER
};
// top left left, top left, top right, top right right, bottom left, bottom right
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [DEFAULT] = LAYOUT(MS_BTN4, LT(FN1, MS_BTN5), MS_BTN3, MS_BTN2, MS_BTN1, DRAG_SCROLL),
- [FN1] = LAYOUT(KC_MISSION_CONTROL, KC_TRNS, KC_BRIGHTNESS_DOWN, KC_BRIGHTNESS_UP, KC_MEDIA_PLAY_PAUSE, QK_BOOT)
+ [DEFAULT] = LAYOUT(MS_BTN4, MS_BTN5, MS_BTN3, MS_BTN2, MS_BTN1, KC_TOG_HOLD),
+ [FN1] = LAYOUT(KC_MISSION_CONTROL, QK_BOOT, KC_BRIGHTNESS_DOWN, KC_BRIGHTNESS_UP, KC_MEDIA_PLAY_PAUSE, KC_TRNS)
};
+
+static bool fn1_layer_on = false;
+
+// probably shouldn't be doing this, but beats trying to keep track of
+// it myself and getting out of sync.
+extern bool is_drag_scroll;
+
+layer_state_t layer_state_set_user(layer_state_t state) {
+ if (IS_LAYER_ON_STATE(state, FN1)) {
+ is_drag_scroll = true;
+ } else {
+ is_drag_scroll = false;
+ }
+ return state;
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case KC_TOG_HOLD:
+ if (!record->event.pressed) {
+ toggle_drag_scroll();
+ fn1_layer_on = !fn1_layer_on;
+ if (is_drag_scroll) {
+ layer_on(FN1);
+ } else {
+ layer_off(FN1);
+ }
+ }
+ break;
+ }
+ return true;
+}
diff --git a/keyboards/ploopyco/madromys/keymaps/bjc/rules.mk b/keyboards/ploopyco/madromys/keymaps/bjc/rules.mk
new file mode 100644
index 0000000..59222a6
--- /dev/null
+++ b/keyboards/ploopyco/madromys/keymaps/bjc/rules.mk
@@ -0,0 +1 @@
+#VIA_ENABLE = yes
diff --git a/keyboards/ploopyco/madromys/keymaps/via/info.json b/keyboards/ploopyco/madromys/keymaps/via/info.json
new file mode 100644
index 0000000..ebb3ba2
--- /dev/null
+++ b/keyboards/ploopyco/madromys/keymaps/via/info.json
@@ -0,0 +1,6 @@
+{
+ "usb": {
+ "vid": "0x5043",
+ "pid": "0x5C47"
+ }
+}
diff --git a/keyboards/ploopyco/madromys/keymaps/via/rules.mk b/keyboards/ploopyco/madromys/keymaps/via/rules.mk
new file mode 100644
index 0000000..1e5b998
--- /dev/null
+++ b/keyboards/ploopyco/madromys/keymaps/via/rules.mk
@@ -0,0 +1 @@
+VIA_ENABLE = yes