diff options
| author | brian cully <bjc@spork.org> | 2026-01-13 14:47:30 -0500 |
|---|---|---|
| committer | brian cully <bjc@spork.org> | 2026-01-13 14:49:54 -0500 |
| commit | cf35cb6f9081d11e19a428248876058f89180744 (patch) | |
| tree | 58af0c66ce6873fa3e8d2aa7ce983246b26acc38 /keyboards/ploopyco/madromys | |
| parent | eb37d1fffc9cbfc103f9ec3ed811986ba288f57e (diff) | |
| download | qmk-userspace-cf35cb6f9081d11e19a428248876058f89180744.tar.gz qmk-userspace-cf35cb6f9081d11e19a428248876058f89180744.zip | |
put layer change on lr button tap toggle
Diffstat (limited to 'keyboards/ploopyco/madromys')
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 |
