feat: add support for ROG Zephyrus G16 GU606AX - #281
Conversation
Without an entry asusd falls through to the built-in default:
[WARN rog_aura::aura_detection] the aura_support.ron file has no entry
for this model: GU606AX, 19b6. Using a default
which leaves the keyboard with Static only and no zone control.
Verified on hardware (GU606AX, Intel Core Ultra 9 386H, USB 0b05:19b6)
by loading a candidate entry through /etc/asusd/asusd_user_ledmodes.ron
with all twelve basic modes enabled, then applying each one and watching
the keyboard:
working Static, Breathe, RainbowCycle, RainbowWave, Pulse
no effect Star, Rain, Highlight, Laser, Ripple, Comet, Flash
The seven that do nothing are the per-key effects; the controller accepts
the packets without error but the keyboard is single-zone, so nothing is
visible. RainbowWave is kept because it is accepted and cycles colour,
matching the existing GU605M/GU605C entries.
That leaves the same shape as its predecessor GU605M, which is what this
entry uses.
SlashType::from_dmi() had no branch for GU606, so the lid ledbar was
never claimed even though the device is present:
[DEBUG asusd::aura_types] Testing for HIDRAW Slash
[INFO asusd::aura_types] Unknown or invalid slash: "19b6", skipping
The GU606AX uses the same 0x19b6 controller and the same packet format as
the GU605 2025 models, so this only adds the enum variant and the DMI
match; no packet changes are needed.
Verified on hardware before writing the patch: the set-mode packets that
asusd emits were replayed byte-for-byte to the raw hidraw node, alongside
three variants (with the unsent 0xd2 prepare packet, with the GA605 0x10
slot value, and with the mode written to slot 0). All four drove the
ledbar correctly, confirming the existing format is right for this model
and that nothing in rog-slash/src/usb.rs needs to change.
With the variant added, detection, enable, brightness and all animation
modes work:
[INFO asusd::aura_types] Found slash type GU606_2026: 19b6
Note for testing: `asusctl` 6.3.11 cannot drive Slash on this machine
because its CLI resolves a fixed D-Bus object path. That is unrelated to
this change and is already fixed on main by c47ccea, but a 6.3.11 CLI
against a patched daemon will make the mode commands appear to do
nothing.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (3)
📜 Recent review details🔇 Additional comments (3)
📝 WalkthroughSummary by CodeRabbit
WalkthroughAdded GU606 Aura support and ChangesGU606 support
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related issues
Possibly related PRs
Suggested labels: Suggested reviewers: 🚥 Pre-merge checks | ✅ 4✅ Passed checks (4 passed)
Comment |
Ghoul4500
left a comment
There was a problem hiding this comment.
Thank you for your contribution!
Keyboard aura and lid Slash for the GU606AX. Board name
GU606AX, aura device0b05:19b6.Aura
Right now it falls back to the default entry:
which means Static only. Instead of copying the GU605M entry I loaded one with all twelve modes through
asusd_user_ledmodes.ronand tried each on the keyboard:The dead ones are all per-key effects — the keyboard is single-zone so they get accepted but nothing shows. That leaves the same set as GU605M, which is what the entry uses.
Slash
No GU606 branch in
from_dmi(), so the ledbar is never picked up:Before assuming the GU605 format works I replayed the set-mode packets straight to the hidraw node, plus three variants: with the
0xd2packet thatset_mode()builds but never sends, with0x10instead of0x19in slot 2, and with the mode in slot 0. All four drove the ledbar fine, so the format is already right and only the enum variant and DMI match are needed.After that everything works — detection, enable, brightness, all modes:
One thing if you test this
asusctl 6.3.11 can't drive Slash here, its CLI uses a fixed D-Bus object path so
slash set --modesilently does nothing. Not related to this PR, already fixed on main by c47ccea, but a released CLI against a patched daemon looks like the patch is broken. Build the CLI from main.