commit 720bfba7125ba26af0dae4147e84a30707402623
parent fcad308bee5b958e14e49758a05a73c32a6aa0ef
Author: Jack Sangdahl <jack@pngu.org>
Date: Sun, 7 Dec 2025 11:02:20 +0100
Tidy up some other code
Diffstat:
17 files changed, 140 insertions(+), 402 deletions(-)
diff --git a/keyboards/crkbd/keymaps/jack/config.h b/keyboards/crkbd/keymaps/jack/config.h
@@ -1,35 +0,0 @@
-// Copyright 2025 jack@pngu.org
-// SPDX-License-Identifier: GPL-2.0-or-later
-#pragma once
-
-#undef SOFT_SERIAL_PIN
-#define SOFT_SERIAL_PIN D3
-#define CRC8_USE_TABLE
-#define CRC8_OPTIMIZE_SPEED
-#define SERIAL_USART_SPEED 921600
-
-#ifdef RGB_MATRIX_ENABLE
-#undef WS2812_DI_PIN
-#define WS2812_DI_PIN B5
-#define WS2812_PWM_DRIVER PWMD3
-#define WS2812_PWM_CHANNEL 3
-#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM3
-#define WS2812_PWM_DMA_CHANNEL 3
-#define WS2812_PWM_DMAMUX_ID STM32_DMAMUX1_TIM3_UP
-#endif
-
-#ifdef ENCODER_ENABLE
-#define ENCODER_A_PINS {B2}
-#define ENCODER_B_PINS {B6}
-#endif
-
-#ifdef AUDIO_ENABLE
-#define AUDIO_PIN A5
-#define STARTUP_SONG SONG(ODE_TO_JOY)
-#define AUDIO_CLICKY
-#endif
-
-#ifdef POINTING_DEVICE_ENABLE
-#define SPLIT_POINTING_ENABLE
-#define POINTING_DEVICE_RIGHT
-#endif
diff --git a/keyboards/crkbd/keymaps/jack/halconf.h b/keyboards/crkbd/keymaps/jack/halconf.h
@@ -1,7 +0,0 @@
-// Copyright 2025 jack@pngu.org
-// SPDX-License-Identifier: GPL-2.0-or-later
-#pragma once
-
-#define HAL_USE_SERIAL TRUE
-
-#include_next <halconf.h>
diff --git a/keyboards/crkbd/keymaps/jack/keymap.c b/keyboards/crkbd/keymaps/jack/keymap.c
@@ -1,85 +0,0 @@
-// Copyright 2025 jack@pngu.org
-// SPDX-License-Identifier: GPL-2.0-or-later
-#include "jack.h"
-
-void housekeeping_task_keymap(void) {
- if (last_input_activity_elapsed() > 300000) {
- const pin_t row_pins[] = MATRIX_ROW_PINS, col_pins[] = MATRIX_COL_PINS;
- for (uint8_t i = 0; i < ARRAY_SIZE(col_pins); ++i) {
- gpio_set_pin_output(col_pins[i]);
- gpio_write_pin_low(col_pins[i]);
- }
- for (uint8_t i = 0; i < ARRAY_SIZE(row_pins); ++i) {
- gpio_set_pin_input_high(row_pins[i]);
- palEnableLineEvent(row_pins[i], PAL_EVENT_MODE_BOTH_EDGES);
- }
- __WFI();
- for (uint8_t i = 0; i < ARRAY_SIZE(row_pins); ++i) {
- palDisableLineEvent(row_pins[i]);
- gpio_write_pin_high(row_pins[i]);
- gpio_set_pin_input_high(row_pins[i]);
- }
- for (uint8_t i = 0; i < ARRAY_SIZE(col_pins); ++i) {
- gpio_write_pin_high(col_pins[i]);
- gpio_set_pin_input_high(col_pins[i]);
- }
- }
-}
-
-#ifdef AUDIO_ENABLE
-void keyboard_pre_init_user(void) { // thank you to @sigprof for this
- palSetLineMode(A5, PAL_MODE_INPUT_ANALOG);
- palSetLineMode(B1, PAL_MODE_INPUT_ANALOG);
-}
-
-void keyboard_post_init_keymap(void) {
- // enable OPAMP1 as A5 → B1 follower
- OPAMP3->CSR = OPAMP3_CSR_VMSEL_1 | OPAMP3_CSR_VMSEL_0 | OPAMP3_CSR_VPSEL_0 |
- OPAMP3_CSR_OPAMP3EN;
-}
-#endif // audio
-
-#ifdef OLED_ENABLE
-oled_rotation_t oled_init_user(oled_rotation_t rotation) {
- return is_keyboard_master() ? OLED_ROTATION_180 : OLED_ROTATION_270;
-}
-#endif // oled
-
-#ifdef RGB_MATRIX_ENABLE
-void matrix_init_user(void) {
- g_led_config = (led_config_t){
- {{15, 16, 17, 18, 19, 20},
- {14, 13, 12, 11, 10, 9},
- {3, 4, 5, 6, 7, 8},
- {NO_LED, NO_LED, NO_LED, 2, 1, 0},
- {47, 46, 45, 44, 43, 42},
- {36, 37, 38, 39, 40, 41},
- {35, 34, 33, 32, 31, 30},
- {NO_LED, NO_LED, NO_LED, 27, 28, 29}},
- {
- {95, 63}, {85, 39}, {85, 21}, {85, 4}, {68, 2}, {68, 19},
- {68, 37}, {80, 58}, {60, 55}, {50, 35}, {50, 13}, {50, 0},
- {33, 3}, {33, 20}, {33, 37}, {16, 42}, {16, 24}, {16, 7},
- {0, 7}, {0, 24}, {0, 41}, {85, 16}, {50, 13}, {16, 20},
- {16, 38}, {50, 48}, {85, 52}, {129, 63}, {139, 39}, {139, 21},
- {139, 4}, {156, 2}, {156, 19}, {156, 37}, {144, 58}, {164, 55},
- {174, 35}, {174, 13}, {174, 0}, {191, 3}, {191, 20}, {191, 37},
- {208, 42}, {208, 24}, {208, 7}, {224, 7}, {224, 24}, {224, 41},
- {139, 16}, {174, 13}, {208, 20}, {208, 38}, {174, 48}, {139, 52},
- },
- {1, 1, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4,
- 4, 4, 4, 2, 2, 2, 2, 2, 2, 1, 1, 1, 4, 4, 4, 4, 4, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 2, 2, 2, 2, 2, 2}};
-}
-
-extern LED_TYPE rgb_matrix_ws2812_array[RGB_MATRIX_LED_COUNT];
-bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
- pimoroni_trackball_set_rgbw(rgb_matrix_ws2812_array[29].r,
- rgb_matrix_ws2812_array[29].g,
- rgb_matrix_ws2812_array[29].b, 0);
- for (uint8_t i = led_min; i <= led_max; i++)
- if (g_led_config.flags[i] & LED_FLAG_UNDERGLOW)
- rgb_matrix_set_color(i, RGB_YELLOW);
- return false;
-}
-#endif // rgb matrix
diff --git a/keyboards/crkbd/keymaps/jack/keymap.json b/keyboards/crkbd/keymaps/jack/keymap.json
@@ -1,13 +0,0 @@
-{
- "keyboard": "crkbd/rev1",
- "keymap": "jack",
- "layout": "LAYOUT_split_3x6_3",
- "layers": [
- [
- "KC_TAB", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_BSPC",
- "KC_LCTL", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCLN", "KC_QUOT",
- "KC_LSFT", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_ESC",
- "KC_LGUI", "KC_LPRN", "KC_SPC", "KC_ENT", "KC_RPRN", "KC_RALT"
- ]
- ]
-}
diff --git a/keyboards/crkbd/keymaps/jack/mcuconf.h b/keyboards/crkbd/keymaps/jack/mcuconf.h
@@ -1,8 +0,0 @@
-// Copyright 2025 jack@pngu.org
-// SPDX-License-Identifier: GPL-2.0-or-later
-#pragma once
-
-#include_next <mcuconf.h>
-
-#undef STM32_PWM_USE_TIM3
-#define STM32_PWM_USE_TIM3 TRUE
diff --git a/keyboards/crkbd/keymaps/jack/readme.md b/keyboards/crkbd/keymaps/jack/readme.md
@@ -1,8 +0,0 @@
-# [Proton-C crkbd](https://git.pngu.org/protoncrkbd)
-
-
-
-## Miscellaneous Notes
-- [Low Scan Mode](https://github.com/waffle87/qmk.me/blob/master/keymaps/crkbd/keymap.c#L5-#L27) to avoid unnecessary scans if there's no matrix activity (5s timeout)
-- [Audio Configuration](https://github.com/waffle87/qmk.me/blob/master/keymaps/crkbd/keymap.c#L30-#L39) to pass output from B1 to A5 (proper DAC pin)
-- [Align Pimoroni Trackball LED](https://github.com/waffle87/qmk.me/blob/master/keymaps/crkbd/keymap.c#L90-#L99) with active RGB Matrix animation/colour, and sets underglow LEDs to yellow
diff --git a/keyboards/crkbd/keymaps/jack/rules.mk b/keyboards/crkbd/keymaps/jack/rules.mk
@@ -1,9 +0,0 @@
-CONVERT_TO = proton_c
-SERIAL_DRIVER = usart
-WS2812_DRIVER = pwm
-OLED_ENABLE = yes
-AUDIO_ENABLE = yes
-AUDIO_DRIVER = dac_basic
-ENCODER_ENABLE = yes
-POINTING_DEVICE_ENABLE = yes
-POINTING_DEVICE_DRIVER = pimoroni_trackball
diff --git a/keyboards/splitkb/kyria/keymaps/jack/keymap.c b/keyboards/splitkb/kyria/keymaps/jack/keymap.c
@@ -19,10 +19,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
[LAYER3] = LAYOUT_jack(
- _______, XRGB_TOG, XRGB_NXT, XRGB_HUI, XRGB_SAI, XRGB_VAI, _______, _______, _______, _______, QK_MAKE, _______,
- _______, MS_JIGGLE, XRGB_PRV, XRGB_HUD, XRGB_SAD, XRGB_VAD, _______, _______, _______, _______, QK_BOOT, _______,
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, _______, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ _______, XRGB_TOG, XRGB_NXT, XRGB_HUI, XRGB_SAI, XRGB_VAI, _______, _______, _______, _______, QK_MAKE, _______,
+ _______, LUMINO, XRGB_PRV, XRGB_HUD, XRGB_SAD, XRGB_VAD, _______, _______, _______, _______, QK_BOOT, _______,
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, _______, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
)
};
// clang-format on
diff --git a/users/jack/combos.def b/users/jack/combos.def
@@ -1,16 +0,0 @@
-// Copyright 2025 jack@pngu.org
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-// name output keys
-CMB(fg_eqal, KC_EQL, KC_W, KC_E)
-CMB(er_cbkt, TD(CBRACKET), KC_E, KC_R)
-CMB(rt_bsls, KC_BSLS, KC_R, KC_T)
-CMB(yu_quot, KC_QUOT, KC_Y, KC_U)
-CMB(ui_brkt, TD(SBRACKET), KC_U, KC_I)
-CMB(io_mins, TD(EM_DASH_MINS), KC_I, KC_O)
-CMB(sd_plus, KC_PLUS, LGUI_T(KC_S), LCTL_T(KC_D))
-CMB(df_coln, KC_COLN, LCTL_T(KC_D), LSFT_T(KC_F))
-CMB(fg_pipe, KC_PIPE, LSFT_T(KC_F), KC_G)
-CMB(hj_dquo, KC_DQUO, KC_H, RSFT_T(KC_J))
-CMB(jk_entr, KC_ENT, RSFT_T(KC_J), RCTL_T(KC_K))
-CMB(kl_unds, KC_UNDS, RCTL_T(KC_K), RGUI_T(KC_L))
diff --git a/users/jack/jack.c b/users/jack/jack.c
@@ -51,3 +51,136 @@ bool oled_task_user(void) {
return false;
}
#endif
+
+#define INTERCEPT_MOD_TAP(mod, keycode) \
+ case mod(keycode): \
+ if (record->tap.count && record->event.pressed) { \
+ tap_code16(keycode); \
+ return false; \
+ } \
+ break;
+
+uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case ESCLWR:
+ case PSTRSE:
+ case LWRSPC:
+ case RSEBSP:
+ return TAPPING_TERM - 40;
+ case TD(EM_DASH_MINS):
+ case TD(PLY_NXT_PRV):
+ case TD(CBRACKET):
+ case TD(SBRACKET):
+ return TAPPING_TERM + 60;
+ default:
+ return TAPPING_TERM;
+ }
+}
+
+#ifdef TAP_DANCE_ENABLE
+void em_dash_mins(tap_dance_state_t *state, void *user_data) {
+ switch (state->count) {
+ case 3:
+#ifdef UNICODE_COMMON_ENABLE
+ register_unicode(0x2014); // —
+#endif
+ break;
+ case 2:
+ tap_code(KC_MINS), tap_code(KC_MINS);
+ break;
+ default:
+ tap_code(KC_MINS);
+ }
+}
+
+void ply_nxt_prv(tap_dance_state_t *state, void *user_data) {
+ switch (state->count) {
+ case 1:
+ tap_code(KC_MPLY);
+ break;
+ case 2:
+ tap_code(KC_MNXT);
+ break;
+ case 3:
+ tap_code(KC_MPRV);
+ break;
+ }
+}
+
+tap_dance_action_t tap_dance_actions[] = {
+ [EM_DASH_MINS] = ACTION_TAP_DANCE_FN(em_dash_mins),
+ [PLY_NXT_PRV] = ACTION_TAP_DANCE_FN(ply_nxt_prv),
+ [CBRACKET] = ACTION_TAP_DANCE_DOUBLE(KC_LCBR, KC_RCBR),
+ [SBRACKET] = ACTION_TAP_DANCE_DOUBLE(KC_LBRC, KC_RBRC),
+};
+#endif
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+#ifdef OLED_ENABLE
+ if (record->event.pressed)
+ oled_timer_reset();
+#endif
+ switch (keycode) {
+ case UPDIR:
+ if (record->event.pressed)
+ SEND_STRING("../");
+ break;
+ case REMOVE:
+ if (record->event.pressed) {
+ SEND_STRING("```suggestion\n```");
+ tap_code(KC_UP);
+ tap_code(KC_UP);
+ tap_code(KC_ENT);
+ tap_code(KC_UP);
+ }
+ break;
+ INTERCEPT_MOD_TAP(LALT_T, KC_EXLM)
+ INTERCEPT_MOD_TAP(LGUI_T, KC_AT)
+ INTERCEPT_MOD_TAP(LCTL_T, KC_HASH)
+ INTERCEPT_MOD_TAP(LSFT_T, KC_DLR)
+ INTERCEPT_MOD_TAP(RSFT_T, KC_AMPR)
+ INTERCEPT_MOD_TAP(RCTL_T, KC_ASTR)
+ INTERCEPT_MOD_TAP(RGUI_T, KC_LPRN)
+ INTERCEPT_MOD_TAP(RALT_T, KC_RPRN)
+ }
+ return true;
+}
+
+#ifdef ENCODER_MAP_ENABLE
+const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
+ [LAYER0] = {{KC_VOLU, KC_VOLD}, {KC_MNXT, KC_MPRV}},
+ [LAYER1] = {{XRGB_SAI, XRGB_SAD}, {XRGB_HUI, XRGB_HUD}},
+ [LAYER3] = {{C(KC_LEFT), C(KC_RGHT)}, {C(S(KC_TAB)), C(KC_TAB)}}};
+#endif
+
+#ifdef COMBO_ENABLE
+const uint16_t PROGMEM we_eqal[] = {KC_W, KC_E, COMBO_END};
+const uint16_t PROGMEM er_cbkt[] = {KC_E, KC_R COMBO_END};
+const uint16_t PROGMEM rt_bsls[] = {KC_R, KC_T, COMBO_END};
+const uint16_t PROGMEM yu_quot[] = {KC_Y, KC_U, COMBO_END};
+const uint16_t PROGMEM ui_brkt[] = {KC_U, KC_I, COMBO_END};
+const uint16_t PROGMEM io_mins[] = {KC_I, KC_O, COMBO_END};
+const uint16_t PROGMEM sd_plus[] = {LGUI_T(KC_S), LCTL_T(KC_D), COMBO_END};
+const uint16_t PROGMEM df_coln[] = {LCTL_T(KC_D), LSFT_T(KC_F), COMBO_END};
+const uint16_t PROGMEM fg_pipe[] = {LSFT_T(KC_F), KC_G, COMBO_END};
+const uint16_t PROGMEM hj_dquo[] = {KC_H, RSFT_T(KC_J), COMBO_END};
+const uint16_t PROGMEM jk_entr[] = {RSFT_T(KC_J), RCTL_T(KC_K), COMBO_END};
+const uint16_t PROGMEM kl_unds[] = {RCTL_T(KC_K), RGUI_T(KC_L), COMBO_END};
+
+combo_t key_combos[] = {
+ // clang-format off
+ COMBO(we_eqal, KC_EQL),
+ COMBO(er_cbkt, TD(CBRACKET)),
+ COMBO(rt_bsls, KC_BSLS),
+ COMBO(yu_quot, KC_QUOT),
+ COMBO(ui_brkt, TD(SBRACKET)),
+ COMBO(io_mins, TD(EM_DASH_MINS)),
+ COMBO(sd_plus, KC_PLUS),
+ COMBO(df_coln, KC_COLN),
+ COMBO(fg_pipe, KC_PIPE),
+ COMBO(hj_dquo, KC_DQUO),
+ COMBO(jk_entr, KC_ENT),
+ COMBO(kl_unds, KC_UNDS)
+ // clang-format on
+};
+#endif
diff --git a/users/jack/jack.h b/users/jack/jack.h
@@ -7,13 +7,7 @@ enum layers { LAYER0, LAYER1, LAYER3 };
enum tapdances { EM_DASH_MINS, PLY_NXT_PRV, CBRACKET, SBRACKET };
-enum custom_keycodes { UPDIR = QK_USER, REMOVE, MS_JIGGLE };
-
-#define CMB(name, action, ...) name,
-enum combos {
-#include "combos.def"
-};
-#undef CMB
+enum custom_keycodes { UPDIR = QK_USER, REMOVE };
#ifdef TAP_DANCE_ENABLE
void em_dash_mins(tap_dance_state_t *state, void *user_data);
@@ -97,7 +91,7 @@ void keyboard_post_init_keymap(void);
// #define ___LAYER13___ _______, _______, _______, _______
#define ___LAYER30___ XRGB_TOG, XRGB_NXT, XRGB_HUI, XRGB_SAI, XRGB_VAI, _______, _______, _______, _______, QK_MAKE
-#define ___LAYER31___ MS_JIGGLE, XRGB_PRV, XRGB_HUD, XRGB_SAD, XRGB_VAD, _______, _______, _______, _______, QK_BOOT
+#define ___LAYER31___ LUMINO, XRGB_PRV, XRGB_HUD, XRGB_SAD, XRGB_VAD, _______, _______, _______, _______, QK_BOOT
#define ___LAYER32___ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10
#define ___LAYER33___ _______, _______, _______, _______
// clang-format on
diff --git a/users/jack/post_rules.mk b/users/jack/post_rules.mk
@@ -1,5 +0,0 @@
-ifeq ($(strip $(MOUSE_JIGGLE_ENABLE)), yes)
- OPT_DEFS += -DMOUSE_JIGGLE_ENABLE
- MOUSEKEY_ENABLE = yes
- DEFERRED_EXEC_ENABLE = yes
-endif
diff --git a/users/jack/rules.mk b/users/jack/rules.mk
@@ -11,16 +11,9 @@ CAPS_WORD_ENABLE = yes
TAP_DANCE_ENABLE = yes
SPACE_CADET_ENABLE = no
AUTOCORRECT_ENABLE = yes
-MOUSE_JIGGLE_ENABLE = yes
OS_DETECTION_ENABLE = yes
-INTROSPECTION_KEYMAP_C = user_introspection.c
-
-SRC += $(USER_PATH)/jack.c $(USER_PATH)/tapping.c
+INTROSPECTION_KEYMAP_C = jack.c
ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes)
SRC += $(USER_PATH)/colour.c
endif
-
-ifeq ($(PLATFORM), CHIBIOS)
- EXTRAFLAGS += -O3
-endif
diff --git a/users/jack/tapping.c b/users/jack/tapping.c
@@ -1,115 +0,0 @@
-// Copyright 2025 jack@pngu.org
-// SPDX-License-Identifier: GPL-2.0-or-later
-#include "jack.h"
-
-#define INTERCEPT_MOD_TAP(mod, keycode) \
- case mod(keycode): \
- if (record->tap.count && record->event.pressed) { \
- tap_code16(keycode); \
- return false; \
- } \
- break;
-
-uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case ESCLWR:
- case PSTRSE:
- case LWRSPC:
- case RSEBSP:
- return TAPPING_TERM - 40;
- case TD(EM_DASH_MINS):
- case TD(PLY_NXT_PRV):
- case TD(CBRACKET):
- case TD(SBRACKET):
- return TAPPING_TERM + 60;
- default:
- return TAPPING_TERM;
- }
-}
-
-#ifdef TAP_DANCE_ENABLE
-void em_dash_mins(tap_dance_state_t *state, void *user_data) {
- switch (state->count) {
- case 3:
-#ifdef UNICODE_COMMON_ENABLE
- register_unicode(0x2014); // —
-#endif
- break;
- case 2:
- tap_code(KC_MINS), tap_code(KC_MINS);
- break;
- default:
- tap_code(KC_MINS);
- }
-}
-
-void ply_nxt_prv(tap_dance_state_t *state, void *user_data) {
- switch (state->count) {
- case 1:
- tap_code(KC_MPLY);
- break;
- case 2:
- tap_code(KC_MNXT);
- break;
- case 3:
- tap_code(KC_MPRV);
- break;
- }
-}
-#endif
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
-#ifdef OLED_ENABLE
- if (record->event.pressed)
- oled_timer_reset();
-#endif
-#ifdef MOUSE_JIGGLE_ENABLE
- if (record->event.pressed) {
- static deferred_token token = INVALID_DEFERRED_TOKEN;
- static report_mouse_t report = {0};
- if (token) {
- cancel_deferred_exec(token);
- token = INVALID_DEFERRED_TOKEN;
- report = (report_mouse_t){};
- host_mouse_send(&report);
- } else if (keycode == MS_JIGGLE) {
- uint32_t jiggle_callback(uint32_t trigger_time, void *cb_arg) {
- static const int8_t deltas[32] = {
- 0, -1, -2, -2, -3, -3, -4, -4, -4, -4, -3, -3, -2, -2, -1, 0,
- 0, 1, 2, 2, 3, 3, 4, 4, 4, 4, 3, 3, 2, 2, 1, 0};
- static uint8_t phase = 0;
- report.x = deltas[phase];
- report.y = deltas[(phase + 8) & 31];
- phase = (phase + 1) & 31;
- host_mouse_send(&report);
- return 16;
- }
- token = defer_exec(1, jiggle_callback, NULL);
- }
- }
-#endif
- switch (keycode) {
- case UPDIR:
- if (record->event.pressed)
- SEND_STRING("../");
- break;
- case REMOVE:
- if (record->event.pressed) {
- SEND_STRING("```suggestion\n```");
- tap_code(KC_UP);
- tap_code(KC_UP);
- tap_code(KC_ENT);
- tap_code(KC_UP);
- }
- break;
- INTERCEPT_MOD_TAP(LALT_T, KC_EXLM)
- INTERCEPT_MOD_TAP(LGUI_T, KC_AT)
- INTERCEPT_MOD_TAP(LCTL_T, KC_HASH)
- INTERCEPT_MOD_TAP(LSFT_T, KC_DLR)
- INTERCEPT_MOD_TAP(RSFT_T, KC_AMPR)
- INTERCEPT_MOD_TAP(RCTL_T, KC_ASTR)
- INTERCEPT_MOD_TAP(RGUI_T, KC_LPRN)
- INTERCEPT_MOD_TAP(RALT_T, KC_RPRN)
- }
- return true;
-}
diff --git a/users/jack/user_introspection.c b/users/jack/user_introspection.c
@@ -1,32 +0,0 @@
-// Copyright 2025 jack@pngu.org
-// SPDX-License-Identifier: GPL-2.0-or-later
-#include "jack.h"
-
-#ifdef TAP_DANCE_ENABLE
-tap_dance_action_t tap_dance_actions[] = {
- [EM_DASH_MINS] = ACTION_TAP_DANCE_FN(em_dash_mins),
- [PLY_NXT_PRV] = ACTION_TAP_DANCE_FN(ply_nxt_prv),
- [CBRACKET] = ACTION_TAP_DANCE_DOUBLE(KC_LCBR, KC_RCBR),
- [SBRACKET] = ACTION_TAP_DANCE_DOUBLE(KC_LBRC, KC_RBRC),
-};
-#endif
-
-#ifdef ENCODER_MAP_ENABLE
-const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
- [LAYER0] = {{KC_VOLU, KC_VOLD}, {KC_MNXT, KC_MPRV}},
- [LAYER1] = {{XRGB_SAI, XRGB_SAD}, {XRGB_HUI, XRGB_HUD}},
- [LAYER3] = {{C(KC_LEFT), C(KC_RGHT)}, {C(S(KC_TAB)), C(KC_TAB)}}};
-#endif
-
-#ifdef COMBO_ENABLE
-#define CMB(name, action, ...) \
- uint16_t const name##_combo[] PROGMEM = {__VA_ARGS__, COMBO_END};
-#include "combos.def"
-#undef CMB
-
-#define CMB(name, action, ...) [name] = COMBO(name##_combo, action),
-combo_t key_combos[] = {
-#include "combos.def"
-};
-#undef CMB
-#endif
diff --git a/users/jack/autocorrect_dict.txt b/util/autocorrect_dict.txt
diff --git a/util/raw.py b/util/raw.py
@@ -1,49 +0,0 @@
-# Copyright 2025 jack@pngu.org
-# SPDX-License-Identifier: GPL-2.0-or-later
-import hid
-import sys
-import psutil
-import math
-import time
-import datetime
-
-vendor_id = 0x6A73
-product_id = 0x6B62
-usage_page = 0xFF60
-usage = 0x61
-
-
-def get_raw_hid_interface():
- device_interfaces = hid.enumerate(vendor_id, product_id)
- raw_hid_interfaces = [
- i
- for i in device_interfaces
- if i["usage_page"] == usage_page and i["usage"] == usage
- ]
- if len(raw_hid_interfaces) == 0:
- return None
- interface = hid.Device(path=raw_hid_interfaces[0]["path"])
- return interface
-
-
-def send_packet(data):
- interface = get_raw_hid_interface()
- if interface is None:
- print("no device found")
- sys.exit(1)
- request_data = [0x00] * 32
- request_data[1 : len(data) + 1] = data
- request_packet = bytes(request_data)
- try:
- interface.write(request_packet)
- finally:
- interface.close()
-
-
-if __name__ == "__main__":
- while True:
- time.sleep(30)
- cpu_temp = psutil.sensors_temperatures()["gigabyte_wmi"][2]
- cur_hour = datetime.datetime.now().strftime("%H")
- cur_minute = datetime.datetime.now().strftime("%M")
- send_packet([math.trunc(cpu_temp.current), int(cur_hour), int(cur_minute)])