commit 89810b6a7710fb7359f95a83cdf1413121d59cdc
parent 96a6ffa99d97f2c6fe66f6615f10e04600cc0304
Author: Jack Sangdahl <jack@pngu.org>
Date: Sun, 7 Dec 2025 18:21:42 +0100
Some layout changes (removing combos etc.), and fix rgb_t types
Diffstat:
7 files changed, 27 insertions(+), 71 deletions(-)
diff --git a/users/jack/colour.c b/users/jack/colour.c
@@ -10,7 +10,7 @@
// Adapted from https://fastled.io/docs/hsv2rgb_8cpp_source.html
// void hsv2rgb_rainbow() function
-RGB rgb_matrix_hsv_to_rgb(const HSV hsv) {
+rgb_t rgb_matrix_hsv_to_rgb(hsv_t hsv) {
// Yellow has a higher inherent brightness than
// any other color; 'pure' yellow is perceived to
// be 93% as bright as white. In order to make
@@ -136,5 +136,5 @@ RGB rgb_matrix_hsv_to_rgb(const HSV hsv) {
b = scale8(b, val);
}
}
- return (RGB){.r = r, .g = g, .b = b};
+ return (rgb_t){.r = r, .g = g, .b = b};
}
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(we_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/config.h b/users/jack/config.h
@@ -21,6 +21,7 @@
#define THREE_MIN (1000 * 60) * 3
#define ENABLE_COMPILE_KEYCODE
+// RGB Matrix configuration
#ifdef RGB_MATRIX_ENABLE
#define RGB_MATRIX_SLEEP
#define LUMINO_LONG_TIMEOUT THREE_MIN
diff --git a/users/jack/jack.c b/users/jack/jack.c
@@ -43,15 +43,11 @@ bool process_detected_host_os_user(os_variant_t detected_os) {
uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
- case ESCLWR:
- case PSTRSE:
- case LWRSPC:
- case RSEBSP:
+ case ESC_L1:
+ case REP_L2:
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;
@@ -63,7 +59,7 @@ void em_dash_mins(tap_dance_state_t *state, void *user_data) {
switch (state->count) {
case 3:
#ifdef UNICODE_COMMON_ENABLE
- register_unicode(0x2014); // —
+ register_unicode(0x2014);
#endif
break;
case 2:
@@ -109,14 +105,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
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/jack.h b/users/jack/jack.h
@@ -5,16 +5,10 @@
enum layers { LAYER0, LAYER1, LAYER2, LAYER3 };
-enum tapdances { EM_DASH_MINS, PLY_NXT_PRV, CBRACKET, SBRACKET };
+enum tapdances { EM_DASH_MINS, PLY_NXT_PRV };
enum custom_keycodes { UPDIR = QK_USER, REMOVE };
-#define CMB(name, action, ...) name,
-enum combos {
-#include "combos.def"
-};
-#undef CMB
-
#ifdef TAP_DANCE_ENABLE
void em_dash_mins(tap_dance_state_t *state, void *user_data);
void ply_nxt_prv(tap_dance_state_t *state, void *user_data);
@@ -56,10 +50,8 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record);
#define XRGB_VAD _______
#endif
-#define ESCLWR LT(LAYER1, KC_ESC)
-#define PSTRSE LT(LAYER3, KC_PSTE)
-#define LWRSPC LT(LAYER1, KC_SPC)
-#define RSEBSP LT(LAYER3, KC_BSPC)
+#define ESC_L1 LT(LAYER1, KC_ESC)
+#define REP_L2 LT(LAYER2, QK_REP)
#define PNP TD(PLY_NXT_PRV)
#define HRML(k1, k2, k3, k4) LALT_T(k1), LGUI_T(k2), LCTL_T(k3), LSFT_T(k4)
#define HRMR(k1, k2, k3, k4) RSFT_T(k1), RCTL_T(k2), RGUI_T(k3), RALT_T(k4)
@@ -68,34 +60,32 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record);
#define ___LAYER00___ KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P
#define ___LAYER01___ HRML(KC_A, KC_S, KC_D, KC_F), KC_G, KC_H, HRMR(KC_J, KC_K, KC_L, KC_SCLN)
#define ___LAYER02___ KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH
-#define ___LAYER03___ ESCLWR, KC_SPC, KC_BSPC, PSTRSE
+#define ___LAYER03___ ESC_L1, KC_SPC, KC_BSPC, REP_L2
// https://oxey.dev/sturdy/index.html
// #define ___LAYER00___ KC_V, KC_M, KC_L, KC_C, KC_P, KC_X, KC_F, KC_O, KC_U, KC_J
// #define ___LAYER01___ KC_S, KC_T, KC_R, KC_D, KC_Y, KC_DOT, KC_N, KC_A, KC_E, KC_I
// #define ___LAYER02___ KC_Z, KC_K, KC_Q, KC_G, KC_W, KC_B, KC_H, KC_QUOT, KC_SCLN, KC_COMM
-// #define ___LAYER03___ _______, _______, _______, _______
// https://github.com/GalileoBlues/Gallium
// #define ___LAYER00___ KC_B, KC_L, KC_D, KC_C, KC_V KC_J, KC_Y, KC_O, KC_U, KC_COMM
-// #define ___LAYER00___ KC_N, KC_R, KC_T, KC_S, KC_G, KC_P, KC_H, KC_A, KC_E, KC_I
-// #define ___LAYER00___ KC_X, KC_Q, KC_M, KC_W, KC_Z, KC_K, KC_F, KC_QUOT, KC_SCLN, KC_DOT
-// #define ___LAYER03___ _______, _______, _______, _______
+// #define ___LAYER01___ KC_N, KC_R, KC_T, KC_S, KC_G, KC_P, KC_H, KC_A, KC_E, KC_I
+// #define ___LAYER02___ KC_X, KC_Q, KC_M, KC_W, KC_Z, KC_K, KC_F, KC_QUOT, KC_SCLN, KC_DOT
-#define ___LAYER10___ KC_GRV, KC_LABK, KC_RABK, KC_DQUO, KC_DOT, KC_AMPR, REMOVE, KC_LBRC, KC_RBRC, KC_PERC
-#define ___LAYER11___ HRML(KC_EXLM, KC_MINS, KC_PLUS, KC_EQL), KC_HASH, KC_PIPE, HRMR(KC_COLN, KC_LPRN, KC_RPRN, KC_QUES)
-#define ___LAYER12___ KC_CIRC, KC_SLSH, KC_ASTR, KC_BSLS, UPDIR, KC_TILD, KC_DLR, KC_LCBR, KC_RCBR, KC_AT
-#define ___LAYER13___ _______, _______, _______, _______
+#define ___LAYER10___ PNP, KC_9, KC_8, KC_7, KC_TAB, _______, _______, _______, _______, _______
+#define ___LAYER11___ HRML(KC_VOLU, KC_3, KC_2, KC_1), KC_CAPS, KC_LEFT, HRMR(KC_DOWN, KC_UP, KC_RGHT, _______)
+#define ___LAYER12___ KC_VOLD, KC_6, KC_5, KC_4, _______, _______, _______, _______, _______, _______
+#define ___LAYER13___ _______, _______, _______, TG(LAYER3)
-// #define ___LAYER10___ _______, KC_9, KC_8, KC_7, KC_TAB, _______, _______, _______, _______, _______
-// #define ___LAYER11___ HRML(KC_VOLU, KC_3, KC_2, KC_1), KC_CAPS, KC_LEFT, HRMR(KC_DOWN, KC_UP, KC_RGHT, _______)
-// #define ___LAYER12___ KC_VOLD, KC_6, KC_5, KC_4, _______, _______, _______, _______, _______, _______
-// #define ___LAYER13___ _______, _______, _______, _______
+#define ___LAYER20___ KC_GRV, KC_LABK, KC_RABK, KC_DQUO, KC_DOT, KC_AMPR, REMOVE, KC_LBRC, KC_RBRC, KC_PERC
+#define ___LAYER21___ KC_EXLM, TD(EM_DASH_MINS), KC_PLUS, KC_EQL, KC_HASH, KC_PIPE, KC_COLN, KC_LPRN, KC_RPRN, KC_QUES
+#define ___LAYER22___ KC_CIRC, KC_SLSH, KC_ASTR, KC_BSLS, UPDIR, KC_TILD, KC_DLR, KC_LCBR, KC_RCBR, KC_AT
+#define ___LAYER23___ _______, _______, _______, _______
#define ___LAYER30___ XRGB_TOG, XRGB_NXT, XRGB_HUI, XRGB_SAI, XRGB_VAI, _______, _______, _______, _______, QK_MAKE
#define ___LAYER31___ _______, 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___ _______, _______, _______, _______
+#define ___LAYER33___ _______, _______, _______, TG(LAYER3)
// clang-format on
#define LAYOUT_jack_60_ts(...) LAYOUT_60_ansi_tsangan(__VA_ARGS__)
diff --git a/users/jack/rules.mk b/users/jack/rules.mk
@@ -9,6 +9,7 @@ EXTRAKEY_ENABLE = yes
BOOTMAGIC_ENABLE = yes
CAPS_WORD_ENABLE = yes
TAP_DANCE_ENABLE = yes
+REPEAT_KEY_ENABLE = yes
SPACE_CADET_ENABLE = no
AUTOCORRECT_ENABLE = yes
OS_DETECTION_ENABLE = yes
diff --git a/users/jack/user_introspection.c b/users/jack/user_introspection.c
@@ -6,27 +6,19 @@
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 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
+const uint16_t PROGMEM enter_combo[] = {KC_J, KC_K, COMBO_END};
+combo_t key_combos[] = {COMBO(enter_combo, KC_ENT)};
#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)}}};
+ [LAYER2] = {{_______, _______}, {_______, _______}},
+ [LAYER3] = {{_______, _______}, {_______, _______}},
+};
#endif