Daemon and tools to control your ASUS ROG laptop. Supersedes rog-core.
See the code[!WARNING] Kernel Patch Requirement: Many features are developed alongside Linux kernel updates. If an expected feature is missing, ensure your system is running the latest stable kernel or a kernel containing the required patches.
asusctl is a system control utility for Linux designed primarily for ASUS laptops, with reduced functionality available for non-ASUS hardware.
The project consists of three core components:
asusd: System daemon controlled through D-Bus interfaces.rog-control-center: Graphical user interface for asusd.asusctl: Command-line client for asusd.The primary goal of asusctl is to provide a safe, efficient abstraction layer over hardware features using D-Bus. It manages automated system responses, such as switching performance profiles when connecting or disconnecting AC power.
asusctl supports most ASUS gaming laptops equipped with a USB keyboard. To verify device compatibility, run lsusb in your terminal and check for entries matching:
Bus 001 Device 002: ID 0b05:1866 ASUSTek Computer, Inc. N-KEY Device
or
Bus 003 Device 002: ID 0b05:19b6 ASUSTek Computer, Inc. [unknown]
Devices displaying these hardware IDs typically function without extra configuration. Features such as AniMe Matrix, LED controls, and Slash displays work regardless of your laptop make. However, if you are using a newer laptop model, adding explicit hardware support may be required. See Laptop support requests for details.
Features such as battery charge thresholds use generic kernel interfaces and work on non-ASUS hardware, but platform and fan controls require ASUS-specific asus-nb-wmi or asus-armoury drivers.
Due to ongoing development, the minimum suggested kernel version is always the latest, as improvements are merged upstream continuously.
Support for Thermal Design Power (TDP) is tied to the new asus-armoury driver: available mainline since Linux 6.19: everything older is not supported.
[!NOTE] X11 is officially unsupported. Technical assistance is not provided for X11 environments due to developer resource constraints and the unmaintained status of X11 itself.
Users who require X11 integration may compile the GUI application with X11 support enabled using
cargo build --features "rog-control-center/x11". Operation on unmaintained display servers remains the responsibility of the user.
Feature availability depends on upstream Linux kernel support and specific hardware capabilities.
asusd): Background service handling hardware communicationsrog-control-center): Desktop application with system tray integration and notificationsKeyboard backlight support relies on hardware mappings defined in ./rog-aura/data/aura_support.ron, installed to /usr/share/asusd/aura_support.ron. Because keyboard controller configurations vary across model generations and firmware revisions, explicit layout definitions prevent misconfigurations. Refer to the rog-aura README for configuration details.
Pre-built binary packages are available in several Linux distribution repositories. Check your package manager before building from source.
| Distribution | Repository Source | Installation Command | Notes |
|---|---|---|---|
| Ultramarine / Nobara | Official Repositories | sudo dnf install asusctl | Direct package installation |
| Fedora | Terra Repository | sudo dnf install asusctl | Requires Terra repository enabled |
| openSUSE | OBS Repository | Add OBS repository | Maintained on OpenSUSE Build Service |
| Arch Linux | OGC Arch Repository | Refer to OGC Arch Guide | Maintained via OGC Arch pacman repository |
| Nix / NixOS | Nixpkgs | nix-env -iA nixpkgs.asusctl | Package name: asusctl |
| Solus | Official Repositories | sudo eopkg install asusctl | Direct package installation |
asusctl uses udev rules to initialize background services when hardware is detected.
On systems such as Fedora or Ultramarine, enable and start the services manually after installation:
sudo systemctl enable --now asusd.service
sudo systemctl enable --now asus-shutdown.service
On Debian, service activation may require manual intervention. On Pop!_OS systems, disable the system76-power GNOME extension and its associated systemd service to prevent power profile conflicts.
Compiling asusctl requires the Rust compiler and Cargo toolchain from rustup.rs. Use the stable toolchain for build tasks.
sudo pacman -S --needed --asdeps git cmake clang pkg-config libzip rust openssl
make
sudo make install
sudo dnf install git make cmake clang-devel libxkbcommon-devel systemd-devel expat-devel pcre2-devel libzstd-devel gtk3-devel rust cargo
make
sudo make install
For KDE Plasma desktop environments without GTK dependencies:
sudo zypper in -t pattern devel_basis
sudo zypper in rustup make cmake clang-devel libxkbcommon-devel systemd-devel expat-devel pcre2-devel libzstd-devel
make
sudo make install
Debian is officially unsupported, but you can attempt to build with:
sudo apt install libclang-dev libudev-dev libfontconfig-dev build-essential cmake libxkbcommon-dev
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
make
sudo make install
sudo apt install make cargo gcc pkg-config openssl libasound2-dev cmake build-essential python3 libfreetype6-dev libexpat1-dev libxcb-composite0-dev libssl-dev libx11-dev libfontconfig1-dev curl libclang-dev libudev-dev checkinstall libseat-dev libinput-dev libxkbcommon-dev libgbm-dev
make
sudo make install
When upgrading an existing installation, reload systemd service definitions and restart asusd:
sudo systemctl daemon-reload && sudo systemctl restart asusd
Alternatively, reboot the system to apply updates.
To remove installations built from source, stop and disable the services, run sudo make uninstall from the source directory, and reload systemd:
sudo systemctl disable --now asusd.service asus-shutdown.service
sudo make uninstall
sudo systemctl daemon-reload
Remove any remaining configuration files in /etc/asusd/.
For binary installations, remove asusctl using your distribution package manager.
See CONTRIBUTING.md for contribution guidelines and git hooks setup.
An SDL2-based simulator is included for testing matrix display rendering without physical hardware.
To compile and launch the simulator:
cargo build --package rog_simulators
./target/debug/anime_sim
Restart asusd after starting the simulator to attach the service to the simulated display interface. Running the simulator on a laptop with a physical display redirects display output to the simulator window.
To request support for unlisted hardware models, open an issue on the project issue tracker.
/usr/share/asusd/aura_support.ron (or ./rog-aura/data/aura_support.ron). Once you verify that your changes work for your laptop model, create a pull request with the updated mapping.This project is licensed under the Mozilla Public License 2.0 (MPL-2.0).
ASUS and ROG are registered trademarks of ASUSTeK Computer Inc. in the United States and other jurisdictions.
References to ASUS products, services, or trademarks within this repository do not constitute or imply endorsement, sponsorship, or recommendation by ASUSTeK Computer Inc. Trademarks are used solely for hardware identification purposes.
We do not accept code blindly written with just AI or "vibecoding". We encourage use of AI for finding bugs and as a tool used to assist development, but all of these must be verified by a human as AI makes mistakes and gives false bug reports as well. For further details, refer to our contribution policy
212 followers · starred Sep 2026
469 followers · starred Sep 2026
38 followers · starred Aug 2026
82 followers · starred Nov 2022
Daemon and tools to control your ASUS ROG laptop. Supersedes rog-core.
See the code[!WARNING] Kernel Patch Requirement: Many features are developed alongside Linux kernel updates. If an expected feature is missing, ensure your system is running the latest stable kernel or a kernel containing the required patches.
asusctl is a system control utility for Linux designed primarily for ASUS laptops, with reduced functionality available for non-ASUS hardware.
The project consists of three core components:
asusd: System daemon controlled through D-Bus interfaces.rog-control-center: Graphical user interface for asusd.asusctl: Command-line client for asusd.The primary goal of asusctl is to provide a safe, efficient abstraction layer over hardware features using D-Bus. It manages automated system responses, such as switching performance profiles when connecting or disconnecting AC power.
asusctl supports most ASUS gaming laptops equipped with a USB keyboard. To verify device compatibility, run lsusb in your terminal and check for entries matching:
Bus 001 Device 002: ID 0b05:1866 ASUSTek Computer, Inc. N-KEY Device
or
Bus 003 Device 002: ID 0b05:19b6 ASUSTek Computer, Inc. [unknown]
Devices displaying these hardware IDs typically function without extra configuration. Features such as AniMe Matrix, LED controls, and Slash displays work regardless of your laptop make. However, if you are using a newer laptop model, adding explicit hardware support may be required. See Laptop support requests for details.
Features such as battery charge thresholds use generic kernel interfaces and work on non-ASUS hardware, but platform and fan controls require ASUS-specific asus-nb-wmi or asus-armoury drivers.
Due to ongoing development, the minimum suggested kernel version is always the latest, as improvements are merged upstream continuously.
Support for Thermal Design Power (TDP) is tied to the new asus-armoury driver: available mainline since Linux 6.19: everything older is not supported.
[!NOTE] X11 is officially unsupported. Technical assistance is not provided for X11 environments due to developer resource constraints and the unmaintained status of X11 itself.
Users who require X11 integration may compile the GUI application with X11 support enabled using
cargo build --features "rog-control-center/x11". Operation on unmaintained display servers remains the responsibility of the user.
Feature availability depends on upstream Linux kernel support and specific hardware capabilities.
asusd): Background service handling hardware communicationsrog-control-center): Desktop application with system tray integration and notificationsKeyboard backlight support relies on hardware mappings defined in ./rog-aura/data/aura_support.ron, installed to /usr/share/asusd/aura_support.ron. Because keyboard controller configurations vary across model generations and firmware revisions, explicit layout definitions prevent misconfigurations. Refer to the rog-aura README for configuration details.
Pre-built binary packages are available in several Linux distribution repositories. Check your package manager before building from source.
| Distribution | Repository Source | Installation Command | Notes |
|---|---|---|---|
| Ultramarine / Nobara | Official Repositories | sudo dnf install asusctl | Direct package installation |
| Fedora | Terra Repository | sudo dnf install asusctl | Requires Terra repository enabled |
| openSUSE | OBS Repository | Add OBS repository | Maintained on OpenSUSE Build Service |
| Arch Linux | OGC Arch Repository | Refer to OGC Arch Guide | Maintained via OGC Arch pacman repository |
| Nix / NixOS | Nixpkgs | nix-env -iA nixpkgs.asusctl | Package name: asusctl |
| Solus | Official Repositories | sudo eopkg install asusctl | Direct package installation |
asusctl uses udev rules to initialize background services when hardware is detected.
On systems such as Fedora or Ultramarine, enable and start the services manually after installation:
sudo systemctl enable --now asusd.service
sudo systemctl enable --now asus-shutdown.service
On Debian, service activation may require manual intervention. On Pop!_OS systems, disable the system76-power GNOME extension and its associated systemd service to prevent power profile conflicts.
Compiling asusctl requires the Rust compiler and Cargo toolchain from rustup.rs. Use the stable toolchain for build tasks.
sudo pacman -S --needed --asdeps git cmake clang pkg-config libzip rust openssl
make
sudo make install
sudo dnf install git make cmake clang-devel libxkbcommon-devel systemd-devel expat-devel pcre2-devel libzstd-devel gtk3-devel rust cargo
make
sudo make install
For KDE Plasma desktop environments without GTK dependencies:
sudo zypper in -t pattern devel_basis
sudo zypper in rustup make cmake clang-devel libxkbcommon-devel systemd-devel expat-devel pcre2-devel libzstd-devel
make
sudo make install
Debian is officially unsupported, but you can attempt to build with:
sudo apt install libclang-dev libudev-dev libfontconfig-dev build-essential cmake libxkbcommon-dev
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
make
sudo make install
sudo apt install make cargo gcc pkg-config openssl libasound2-dev cmake build-essential python3 libfreetype6-dev libexpat1-dev libxcb-composite0-dev libssl-dev libx11-dev libfontconfig1-dev curl libclang-dev libudev-dev checkinstall libseat-dev libinput-dev libxkbcommon-dev libgbm-dev
make
sudo make install
When upgrading an existing installation, reload systemd service definitions and restart asusd:
sudo systemctl daemon-reload && sudo systemctl restart asusd
Alternatively, reboot the system to apply updates.
To remove installations built from source, stop and disable the services, run sudo make uninstall from the source directory, and reload systemd:
sudo systemctl disable --now asusd.service asus-shutdown.service
sudo make uninstall
sudo systemctl daemon-reload
Remove any remaining configuration files in /etc/asusd/.
For binary installations, remove asusctl using your distribution package manager.
See CONTRIBUTING.md for contribution guidelines and git hooks setup.
An SDL2-based simulator is included for testing matrix display rendering without physical hardware.
To compile and launch the simulator:
cargo build --package rog_simulators
./target/debug/anime_sim
Restart asusd after starting the simulator to attach the service to the simulated display interface. Running the simulator on a laptop with a physical display redirects display output to the simulator window.
To request support for unlisted hardware models, open an issue on the project issue tracker.
/usr/share/asusd/aura_support.ron (or ./rog-aura/data/aura_support.ron). Once you verify that your changes work for your laptop model, create a pull request with the updated mapping.This project is licensed under the Mozilla Public License 2.0 (MPL-2.0).
ASUS and ROG are registered trademarks of ASUSTeK Computer Inc. in the United States and other jurisdictions.
References to ASUS products, services, or trademarks within this repository do not constitute or imply endorsement, sponsorship, or recommendation by ASUSTeK Computer Inc. Trademarks are used solely for hardware identification purposes.
We do not accept code blindly written with just AI or "vibecoding". We encourage use of AI for finding bugs and as a tool used to assist development, but all of these must be verified by a human as AI makes mistakes and gives false bug reports as well. For further details, refer to our contribution policy
212 followers · starred Sep 2026
469 followers · starred Sep 2026
38 followers · starred Aug 2026
82 followers · starred Nov 2022