Add RGB, media, and output controls to HUB layer and thumbs

- HUB layer: RGB hue/sat/brightness, volume, screen brightness, OUT_TOG
- Tap-dance td_rgb on thumb: 1×=toggle, 2×=effect fwd, 3×=effect rev
- Tap-dance td_colors on HUB pos 34: 5 color presets (purple/white/red/blue/green)
- Hold-tap mute/play-pause on right outer thumb (CARP/QWRT/STEN/HUB)
- Update README with new layer diagrams and legends

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
afiqzudinhadi 2026-06-22 15:34:10 +08:00
parent 8b03f68833
commit 7041dbccd5
2 changed files with 50 additions and 14 deletions

View file

@ -65,7 +65,7 @@ Key positions reference:
` Q G M L W | Y F U B ; ->HUB
[HUB] D S T N R | I A E O H '
LSHFT Z X C V J | K P , . / RSHFT
_ CTRL GUI | SPC ALT _
[RGB] CTRL GUI | SPC ALT MUTE/PP
Combos (layers 0+1):
top+home row same col = 1-0, shift+combo = ! @ # $ % ^ & * ( )
@ -74,6 +74,8 @@ Combos (layers 0+1):
U+B (I+O on QWRT) = BSPC
E+O (K+L on QWRT) = ENTER
[HUB] = hold opens HUB layer, release goes back
[RGB] = tap-dance: 1×=toggle, 2×=effect fwd, 3×=effect rev
MUTE/PP = tap mute, hold play/pause
```
### Layer 1: QWRT (QWERTY)
@ -81,10 +83,12 @@ Combos (layers 0+1):
` Q W E R T | Y U I O P ->HUB
[HUB] A S D F G | H J K L ; '
LSHFT Z X C V B | N M , . / RSHFT
_ CTRL GUI | SPC ALT _
[RGB] CTRL GUI | SPC ALT MUTE/PP
Combos: same as CARP (top+home = 1-0, W+E = ESC, S+D = TAB, I+O = BSPC, K+L = ENTER)
[HUB] = hold opens HUB layer, release goes back
[RGB] = tap-dance: 1×=toggle, 2×=effect fwd, 3×=effect rev
MUTE/PP = tap mute, hold play/pause
```
### Layer 2: STEN (Plover keyboard mode)
@ -92,7 +96,7 @@ Combos: same as CARP (top+home = 1-0, W+E = ESC, S+D = TAB, I+O = BSPC, K+L = EN
_ # # # # # | # # # # # ->HUB
[HUB] S T P H * | * F P L T D
_ S K W R * | * R B G S Z
_ A O | E U _
[RGB] A O | E U MUTE/PP
```
### Layer 3: FPS (WASD shifted right for ortho)
@ -105,13 +109,20 @@ M/ALT Z X C V G | _ _ _ _ _ _
Hold-taps: 1=tap/ESC=hold, E=tap/3=hold, R=tap/4=hold, M=tap/ALT=hold
```
### Layer 4: HUB
### Layer 4: HUB (Utility — BT, RGB, Media, Nav)
```
BT_CLR BT0 BT1 BT2 BT3 BT4 | + [ UP ] * =
_ _ _ _ _ _ | - LEFT DOWN RIGHT / \
LSHFT Z X C V _ | ->CARP ->QWRT ->STEN ->FPS _ RSHFT
ESC CTRL GUI | SPC ALT _
BT_CLR BT0 BT1 BT2 BT3 BT4 | + [ UP ] * =
OUT_TOG HUE+ SAT+ BRT+ SCRN+ VOL+ | - LEFT DOWN RIGHT / \
LSHFT HUE- SAT- BRT- SCRN- VOL- | ->CARP ->QWRT ->STEN ->FPS [CLR] RSHFT
[RGB] CTRL GUI | SPC ALT MUTE/PP
OUT_TOG = toggle USB/BLE output
HUE/SAT/BRT = RGB underglow hue, saturation, brightness
SCRN = display brightness (C_BRI_UP/DN)
VOL = volume up/down
[RGB] = tap-dance: 1×=toggle, 2×=effect fwd, 3×=effect rev
[CLR] = tap-dance color presets: 1×=purple, 2×=white, 3×=red, 4×=blue, 5×=green
MUTE/PP = tap mute, hold play/pause
```
# Related Resources

View file

@ -19,6 +19,31 @@
};
/ {
behaviors {
ht_mute_pp: ht_mute_pp {
compatible = "zmk,behavior-hold-tap";
#binding-cells = <2>;
tapping-term-ms = <200>;
bindings = <&kp>, <&kp>;
};
td_rgb: td_rgb {
compatible = "zmk,behavior-tap-dance";
#binding-cells = <0>;
tapping-term-ms = <300>;
bindings = <&rgb_ug RGB_TOG>, <&rgb_ug RGB_EFF>, <&rgb_ug RGB_EFR>;
};
td_colors: td_colors {
compatible = "zmk,behavior-tap-dance";
#binding-cells = <0>;
tapping-term-ms = <400>;
bindings = <&rgb_ug RGB_COLOR_HSB(270,89,90)>,
<&rgb_ug RGB_COLOR_HSB(0,0,100)>,
<&rgb_ug RGB_COLOR_HSB(0,100,100)>,
<&rgb_ug RGB_COLOR_HSB(240,100,100)>,
<&rgb_ug RGB_COLOR_HSB(120,100,100)>;
};
};
combos {
compatible = "zmk,combos";
// Top + home row combos = numbers (like ecosteno)
@ -51,7 +76,7 @@
&kp GRAVE &kp Q &kp G &kp M &kp L &kp W &kp Y &kp F &kp U &kp B &kp SEMI &to 4
&mo 4 &kp D &kp S &kp T &kp N &kp R &kp I &kp A &kp E &kp O &kp H &kp SQT
&kp LSHFT &kp Z &kp X &kp C &kp V &kp J &kp K &kp P &kp COMMA &kp DOT &kp FSLH &kp RSHFT
&none &kp LCTRL &kp LGUI &kp SPACE &kp RALT &none
&td_rgb &kp LCTRL &kp LGUI &kp SPACE &kp RALT &ht_mute_pp C_PLAY_PAUSE C_MUTE
>;
};
@ -61,7 +86,7 @@
&kp GRAVE &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &to 4
&mo 4 &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT
&kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHFT
&none &kp LCTRL &kp LGUI &kp SPACE &kp RALT &none
&td_rgb &kp LCTRL &kp LGUI &kp SPACE &kp RALT &ht_mute_pp C_PLAY_PAUSE C_MUTE
>;
};
@ -71,7 +96,7 @@
&none &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &to 4
&mo 4 &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT
&none &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT
&none &kp C &kp V &kp N &kp M &none
&td_rgb &kp C &kp V &kp N &kp M &ht_mute_pp C_PLAY_PAUSE C_MUTE
>;
};
@ -89,9 +114,9 @@
display-name = "HUB";
bindings = <
&bt BT_CLR &bt BT_SEL 0 &bt BT_SEL 1 &bt BT_SEL 2 &bt BT_SEL 3 &bt BT_SEL 4 &kp PLUS &kp LBKT &kp UP &kp RBKT &kp ASTRK &kp EQUAL
&none &none &none &none &none &none &kp MINUS &kp LEFT &kp DOWN &kp RIGHT &kp FSLH &kp BSLH
&kp LSHFT &kp Z &kp X &kp C &kp V &none &to 0 &to 1 &to 2 &to 3 &none &kp RSHFT
&kp ESC &kp LCTRL &kp LGUI &kp SPACE &kp RALT &none
&out OUT_TOG &rgb_ug RGB_HUI &rgb_ug RGB_SAI &rgb_ug RGB_BRI &kp C_BRI_UP &kp C_VOL_UP &kp MINUS &kp LEFT &kp DOWN &kp RIGHT &kp FSLH &kp BSLH
&kp LSHFT &rgb_ug RGB_HUD &rgb_ug RGB_SAD &rgb_ug RGB_BRD &kp C_BRI_DN &kp C_VOL_DN &to 0 &to 1 &to 2 &to 3 &td_colors &kp RSHFT
&td_rgb &kp LCTRL &kp LGUI &kp SPACE &kp RALT &ht_mute_pp C_PLAY_PAUSE C_MUTE
>;
};