Repository navigation
Conversation
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: true
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
scardracs
force-pushed
the
leds/dynamic-lighting
branch
6 times, most recently
from
September 13, 2026 10:23
446d581 to
cbbe60a
Compare
scardracs
force-pushed
the
leds/dynamic-lighting
branch
11 times, most recently
from
September 25, 2026 13:11
2abf73c to
26d1aec
Compare
scardracs
force-pushed
the
leds/dynamic-lighting
branch
3 times, most recently
from
October 16, 2026 09:27
395f72c to
e37afc6
Compare
Replace the manual element-wise loop with slice::fill to address the clippy::manual_slice_fill lint when mutating matrix rows. Signed-off-by: Marco Scardovi <scardracs@disroot.org>
Introduce a validated wrapper for Linux Dynamic Lighting LED nodes. Require generic mandatory attributes, probe optional capabilities, and validate ranges, palette capacity, exact buffers, and sysfs errors. Map missing sysfs attributes on numeric writes to AttrNotFound. Expose optional enabled/enabled_index as true/false lighting-engine controls. Keep vendor-specific topology out of generic node validation. The unused optional frame sink remains deliberately unexposed. Signed-off-by: Marco Scardovi <scardracs@disroot.org>
Add mapping functions between ROG Aura structures and Dynamic Lighting class values:
- AuraModeNum::to_dynamic_effect_str
- Speed::to_dynamic_speed
- Direction::to_dynamic_direction_str
- AuraEffect::to_dynamic_palette for extracting RGB palette tuples
- LedBrightness::{to_scaled, from_scaled} for mapping Off/Low/Med/High onto
Dynamic Lighting 0..=max_brightness sysfs ranges
Effect names follow the hid-asus effect_index vocabulary: static, breathe,
rainbow_cycle, rainbow_wave, star, rain, highlight, laser, ripple, pulse,
comet, flash, and direct. direct is AuraModeNum::Direct.
Signed-off-by: Marco Scardovi <scardracs@disroot.org>
scardracs
force-pushed
the
leds/dynamic-lighting
branch
from
October 19, 2026 08:51
e37afc6 to
fb792e7
Compare
Prioritize valid Dynamic Lighting sysfs nodes for laptop Aura control and keep hidraw only as a capability-based fallback when no DL node exists. The two paths stay mutually exclusive for one device. Drive independent aura:keyboard and aura:lightbar nodes, map lighting off through enabled=false, stream exact led_count*3 RGB payloads through direct_buffer, map legacy Key1–4 / bar zones onto keyboard/lightbar, and scale Fn-key brightness across writable DL nodes. Under Dynamic Lighting, supported_basic_modes is the full Aura catalog intersected with the kernel effect_index. Document the userspace DL vs hidraw policy. Signed-off-by: Marco Scardovi <scardracs@disroot.org>
Prefer aura:keyboard, then fall back to a Dynamic Lighting-capable asus::kbd_backlight from asus-wmi on TUF laptops. Keep brightness-only kbd_backlight as the legacy KeyboardBacklight path, and drop that handle when DL already owns the same LED node so the two paths never fight. Signed-off-by: Marco Scardovi <scardracs@disroot.org>
Name the full Aura catalog in the mode menu, including Rainbow cycle, Rainbow wave, and Direct. Show only the mode numbers asusd reports for the current device. Signed-off-by: Marco Scardovi <scardracs@disroot.org>
Drive Slash lighting through the kernel LED classdev sysfs path when asus::slash exists. Do not gate on DMI board lists. Kernel Slash LED has no power_states, so boot/sleep/shutdown/battery/lid D-Bus setters return NotSupported instead of persisting a hardware no-op. Signed-off-by: Marco Scardovi <scardracs@disroot.org>
AuraZbus::start_tasks never registered CtrlTask sleep handlers, so keyboard/lightbar effects were not reapplied after suspend. Wire create_tasks and re-apply power states, brightness, and the current mode after resume with a short settle/retry for Dynamic Lighting. Signed-off-by: Marco Scardovi <scardracs@disroot.org>
scardracs
force-pushed
the
leds/dynamic-lighting
branch
from
October 19, 2026 09:02
fb792e7 to
aa656da
Compare
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Userspace support for the Linux Dynamic Lighting LED class, aligned with linux-unstable PR #17. Prefer standardized sysfs when present; keep legacy
hidrawonly when no valid DL node exists. Draft / paired with the kernel series — not for daily use on stock kernels.All chassis LED nodes use the
asus::vendor prefix (same pattern asasus::kbd_backlight):asus::keyboardasus::lightbarasus::slashasus::animeasus::kbd_backlightCommits
fix(asusctl): use slice::fill in anime-diag example— clippy cleanupfeat(rog-platform): add dynamic lighting led sysfs abstraction—DynamicLedhelperfeat(rog-aura): add dynamic lighting mode and palette conversions— effect/palette mappingfeat(asusd): prefer dynamic lighting with hidraw fallback— probeasus::keyboard/asus::lightbar, one owner vs hidrawfeat(asusd): discover tuf dynamic lighting on asus::kbd_backlight— TUF fallback when keyboard DL is on WMI backlightfeat(rog-control-center): list every Aura mode and show supported onesfeat(asusd): control slash lighting via sysfs led classdev—asus::slashfix(asusd): restore Aura lighting after s2idle resumeBehaviour notes
effect,effect_index,zone_type, andled_count.supported_basic_zonesis empty; legacy Key1–4 / Bar* are aliases onto keyboard/lightbar.asus::slashsysfs; AniMe Matrix is registered by the kernel asasus::anime(asusd anime path may still use its existing stack until wired to DL).Tested
asus::*LED names)Verification
docs/usage/dynamic-lighting.md)cargo fmt/ clippy / check as applicable on this branch