ASUS Linux Control Center is a desktop GUI for the Linux ASUS stack.
It sits on top of asusctl with optional supergfxctl integration, detects what is actually available on the current machine, and only shows controls that the backend can support honestly.
It is designed for public release and general users, not for one specific laptop model or a single-device workflow. When the required ASUS Linux pieces are missing or incomplete, the app reports that clearly and exposes diagnostics instead of pretending every system supports the same controls.
The ASUS Linux ecosystem already has the real backend tools. What many users still need is a clean desktop frontend that:
- exposes the supported controls without making false promises
- makes
asusctland optionalsupergfxctleasier to use day to day - helps users on Ubuntu and other non-Arch setups understand what is missing
- generates diagnostics that are actually useful when something does not work
- capability-aware dashboard for device, service, and backend status
- performance profile switching with fan curve editing on supported hardware
- keyboard, Aura, battery, and graphics controls in one desktop UI
- built-in diagnostics export for bug reports and setup troubleshooting
- public release artifacts, automated tests, and validation notes in-repo
Device identity, backend services, supported capabilities, active profile, and setup warnings are visible in one place.
ASUS profile switching and fan curve editing stay together so supported laptops can tune performance without dropping to the CLI.
Keyboard brightness, Aura lighting, battery limits, one-shot charging, and optional graphics controls are grouped into one hardware page.
Home: device identity, active services, supported capabilities, and warningsPerformance: ASUS profile switching plus fan curve editing where the backend supports itHardware: keyboard brightness, Aura controls, battery limits, and optional graphics mode actionsDiagnostics: copyable and exportable system reports for troubleshootingSettings: runtime paths, theme selection, and project support links
- a PyQt desktop frontend for
asusctl - an optional frontend for
supergfxctlgraphics mode switching - a capability-aware UI that only exposes supported controls
- a diagnostics tool that helps users file actionable bug reports
This project does not replace asusd, asusctl, or supergfxctl.
It differentiates itself by focusing on:
- explicit capability detection
- clear unsupported states instead of fake controls
- a standalone contributor-friendly Python/Qt codebase
- Ubuntu and cross-distro guidance for users who are not already inside the asus-linux package ecosystem
- diagnostics that make issue reports actionable
The backend remains the upstream Linux ASUS stack:
asusctlandasusdfor performance profiles, fan curves, battery limits, keyboard brightness, and Aura lightingsupergfxctlandsupergfxdonly when graphics mode switching is actually needed- read-only low-level ASUS kernel attributes for troubleshooting
Implemented in this rebuild:
- device and service overview
- ASUS profile detection and switching
- fan curve detection and editing on supported devices
- keyboard brightness control
- Aura effect presets and Aura power zone actions
- battery charge limit and one-shot charge actions
- optional
supergfxctlgraphics mode switching - diagnostics report export/copy
- settings persistence for window state, editor state, and lighting selections
Intentionally not shipped in v0.1.0:
- AniMe Matrix editing UI
- Slash / SCSI LED UI
- direct low-level firmware attribute writes
- packaging for every distro
Those areas are highly model-specific and need more hardware validation before they can be exposed responsibly.
- Public
v0.1.0release is available in GitHub Releases - Source distributions and wheel artifacts are published for the release
- Automated tests, linting, and build steps are part of the repository workflow
- Hardware validation notes and current support boundaries are documented openly
The repository now includes a thin npm wrapper in npm-wrapper/.
It is designed for users and integrators who want a Node-facing launcher without rewriting the app in JavaScript:
- prefers a system
asus-linux-control-centerif one already exists - can bootstrap a managed Python virtualenv fallback
- exposes
doctor,diagnostics,install-core, andruncommands - keeps hardware logic and diagnostics inside the Python core
Current status:
- the wrapper source is in this repository under
npm-wrapper/ - the wrapper is published on npm as
asusctl-control-center
Install it from npm:
npm install -g asusctl-control-center
asusctl-control-center doctor
asusctl-control-centerFor local development from a checkout:
npm install -g ./npm-wrapperThat wrapper still expects the same Linux backend requirements as the Python app itself: asusctl, asusd, and optionally supergfxctl plus supergfxd.
See docs/NPM_WRAPPER.md for the architecture and release-coupling details.
The app does not claim universal ASUS support.
- Most functionality depends on
asusctl,asusd, kernel support, and model-specific firmware exposure. - Fan curves are only shown when the current device actually exposes them.
- Aura controls are only shown when the backend reports usable Aura commands.
- Graphics mode switching is optional and only available when
supergfxctlis installed. - A working
supergfxctlsetup also requiressupergfxd, its systemd unit, and the system D-Bus policy. A user-local binary alone is not enough. - Low-level ASUS firmware attributes are shown read-only for troubleshooting when the kernel exposes them.
See docs/SUPPORT.md for the detailed support boundaries and research basis.
- Linux with systemd
- Python 3.11 or newer
asusctlandasusdfor ASUS hardware control- optional:
supergfxctlandsupergfxdfor graphics mode switching
The upstream ASUS Linux project still describes Debian and Ubuntu families as not officially supported. That does not mean the stack never works there; it means support quality depends heavily on kernel age, packaging, and machine model.
Install the backend in this order:
- Install or build
asusctlandasusdfirst. - Only install
supergfxctlif you actually need graphics mode switching.
If you do install supergfxctl, treat it as a system integration rather than a standalone CLI drop-in. A usable setup depends on supergfxd, the system service, and the system D-Bus policy being installed correctly.
Run:
asusctl info
systemctl is-active asusd.serviceExpected result:
asusctl infoshould print device information instead of failing.systemctl is-active asusd.serviceshould returnactive.
If you installed supergfxctl, also make sure supergfxd is installed and running as a system service.
Standard install:
python3 -m pip install .User-local install with desktop entry and icon:
./scripts/install-user.shasus-linux-control-centerIf the UI opens but some controls are disabled, collect diagnostics before filing a bug.
Text report:
asus-linux-control-center --diagnosticsJSON report:
asus-linux-control-center --diagnostics-jsonSee docs/TROUBLESHOOTING.md for common setup problems.
Create a virtualenv that can reuse the system PyQt6 installation if present:
python3 -m venv --system-site-packages .venv
.venv/bin/python -m pip install -U pip
.venv/bin/python -m pip install -e .[dev]If python3 -m venv fails because ensurepip is unavailable, install your distro's python3-venv package or bootstrap pip into the venv manually before running the remaining commands.
Useful commands:
make test
make lint
make diagnostics
make build- docs/ARCHITECTURE.md
- docs/NPM_WRAPPER.md
- docs/PUBLISHING.md
- docs/SUPPORT.md
- docs/TROUBLESHOOTING.md
- docs/VALIDATION.md
GPL-3.0-or-later. See LICENSE.
ASUS and ROG are trademarks of ASUSTeK Computer Inc. This project is an independent open-source utility and is not affiliated with or endorsed by ASUS.


