Repository navigation
feat: add native PowerStation fan controls - #550
Open
sknowledge1 wants to merge 1 commit into
Open
sknowledge1 wants to merge 1 commit into
sknowledge1 wants to merge 1 commit into
Conversation
This was referenced Sep 22, 2026
sknowledge1
force-pushed
the
feat/powerstation-fan-controls
branch
from
October 8, 2026 10:46
c1be4b6 to
6fc002f
Compare
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.
PowerStation has no native client for its proposed fan interface, leaving supported
handhelds without fan controls in the stock quick-access UI. This adds a Fan
Controls card backed by the versioned D-Bus API in
PowerStation PR #54.
Result
/org/shadowblip/Performance/Fanand hide the cardwhen PowerStation exposes none.
current state, and automatic-fallback faults.
PowerStation methods.
AYANEO-specific points in OpenGamepadUI.
controller navigation.
The client requires fan API version 1 before every hardware-changing call. A
missing, legacy, or future interface leaves the status visible but disables the
controls with an upgrade message. Fan state remains global in PowerStation; it is
not added to OpenGamepadUI's per-game profiles.
Service lifecycle
The PowerStation integration recreates CPU, GPU, and fan resources when the
service becomes available again. Fan signal and refresh-timer connections are
removed when a fan is replaced, so an old object cannot update the active card.
Pending slider edits are retained until the user commits them instead of being
overwritten by telemetry refreshes.
Validation
cargo fmt --all -- --checkcargo check --locked -p opengamepadui-corethe upstream base
cargo build --locked -p opengamepadui-coregit archiverebuild at commitc1be4b6348a41722a9290cff33417220dd9906daThe focused suite covers no-fan and multiple-fan visibility, mode mapping,
fallback and API-version status, version-gated writes, preset/custom transitions,
and controller focus. PowerStation PR #54 has completed a controlled real-fan
handoff on the connected AYANEO 3, including Quiet/manual roundtrips and
SIGKILL/watchdog recovery. This OpenGamepadUI branch has not replaced the stock
session on the device; controller/UI acceptance remains a packaged testing-image
gate. The device was returned to its rollback service after backend validation.
Addresses #505. The earlier device-specific plugin/store submission was closed
as superseded by this native path.