OpenGamingCollective/asusctl

Daemon and tools to control your ASUS ROG laptop. Supersedes rog-core.

Rust

646

2,124 commits

updated Oct 19, 2026

See the code

See what people are saying

SourceMessageScoreDate

FWIW I have an Asus Zephyrus G14 and the dual graphics cards works pretty well in Linux in hybrid mode. It's pretty cool, certain things (games) run on the dedicated Nvidia GPU. Everything else runs on the built in AMD GPU. I'm guessing it's because the laptops are popular enough that there's a…

on Steam on Linux Use Skyrocketed Above 5% in March

0

Apr 2, 2026

Systems with iGPU (CPU RAM) + dGPU (dedicated GPU RAM) support GPU passthrough IIUC. With the proprietary Nvidia Linux module, These environment variables cause processes to run on an Nvidia dGPU instead of the iGPU: https://download.nvidia.com/XFree86/Linux-x86_64/435.17/READ... :…

on Show HN: VM-curator – a TUI alternative to libvirt and virt-manager

0

Jan 25, 2026

If you're interested in ASUS laptops (they have some very good and powerful models), you can check out this website: https://asus-linux.org/

on Inside the Steam Deck's APU

0

Jan 15, 2024

The ASUS Zephyrus series (I'm on a 2022 G14) are fantastic if you can get past the mild gamer aesthetic. Great magnesium build. Lots of keyboard travel. Tons of ports (USB-A, HDMI, etc.) Touchpad works great on Linux, but wake from suspend results in mild bork on the current kernel (fans won't turn…

on Recovering a password-protected ThinkPad T60

0

Oct 15, 2022

I followed the guides from here: asus-linux.org/ specifically this one (because I wanted Fedora): https://asus-linux.org/wiki/fedora-guide/ There is also a reddit community for Fedora where you can ask questions (also the above link contains some discord server links I believe. The gui software is…

on Ask HN: What’s a good laptop for software development at around $2k?

0

Apr 21, 2022

I'm also on a G14! The wait time for a ThinkPad was 6 weeks when I needed a new laptop, so I just ended up buying a G14 because I couldn't wait. WiFi seems okay for me, I've not had any problems. Restarting X is indeed annoying. Also only one of the USB-c ports has display port support, that took…

on Ask HN: What’s a good laptop for software development at around $2k?

0

Apr 20, 2022

I cannot really accept a MacBook because it's a rental product where Apple has complete control over your machine. Used a Dell XPS for a while, it's a fairly good experience with Linux (Ubuntu and Manjaro), but the build quality is pretty bad. Once it fell backwards from a coffee table and shorted…

on Ask HN: MacBooks seems to be the only viable option these days

0

Apr 19, 2022

I personally try to avoid Nvidia dGPUs since I usually don't need CUDA and they tend to be a PITA even w/ DKMS drivers and are terrible for battery life. I think the thing with the currently available Vivobook Pro 14Xs (M4700/N7400) is that they're currently last-gen Ryzen 5000 and Intel 11th gen…

on StarBook 14-inch

0

Apr 15, 2022

Just to tack on, I set up windows with GPU pass-through and looking glass on my new laptop over the course of about 3 hours of on-and-off work using the excellent guide over at https://asus-linux.org/wiki/vfio-guide/

on Looking Glass: Run a Windows VM on Linux in a window with native performance

0

Jul 18, 2021

README

asusctl for ASUS ROG

Become a Patron Support me on Ko-fi Asus Linux Website Discord

[!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.

Overview and goals

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.

  • Clean interface: Exposes hardware controls safely via D-Bus.
  • Resource efficiency: Operates with minimal CPU overhead and under 1 MB of RAM during standard daemon execution.

Hardware and kernel compatibility

Supported laptops

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.

Kernel requirements

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.

Display server support (X11)

[!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.

Implemented features

Feature availability depends on upstream Linux kernel support and specific hardware capabilities.

Power and performance

  • Battery charge thresholds: Configure maximum charging limits (requires kernel support)
  • Custom fan curves: Adjust fan profiles on supported hardware
  • GPU MUX toggling: Switch GPU operational modes (G-Sync / MUX) on 2022 and newer laptops
  • Power profile management: Control system performance profiles as detailed in MANUAL.md

Lighting and displays

  • Built-in LED controls: Adjust integrated keyboard lighting modes
  • Per-key RGB configuration: Customize individual key backlight settings
  • Advanced lighting effects: Apply custom animation modes (currently undergoing revision)
  • AniMe Matrix displays: Control panel rendering on equipped G14, M16, and Strix Scar 16/18 models

System integration

  • System daemon (asusd): Background service handling hardware communications
  • Graphical interface (rog-control-center): Desktop application with system tray integration and notifications
  • POST audio controls: Toggle the BIOS boot sound setting

Additional hardware configuration notes

Keyboard 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.

Installation and setup

Package installation

Pre-built binary packages are available in several Linux distribution repositories. Check your package manager before building from source.

DistributionRepository SourceInstallation CommandNotes
Ultramarine / NobaraOfficial Repositoriessudo dnf install asusctlDirect package installation
FedoraTerra Repositorysudo dnf install asusctlRequires Terra repository enabled
openSUSEOBS RepositoryAdd OBS repositoryMaintained on OpenSUSE Build Service
Arch LinuxOGC Arch RepositoryRefer to OGC Arch GuideMaintained via OGC Arch pacman repository
Nix / NixOSNixpkgsnix-env -iA nixpkgs.asusctlPackage name: asusctl
SolusOfficial Repositoriessudo eopkg install asusctlDirect package installation

Service management

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.

Building from source

Compiling asusctl requires the Rust compiler and Cargo toolchain from rustup.rs. Use the stable toolchain for build tasks.

Arch Linux

sudo pacman -S --needed --asdeps git cmake clang pkg-config libzip rust openssl
make
sudo make install

Fedora

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

openSUSE

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 (Unsupported)

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

Ubuntu and Pop!_OS (Unsupported)

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

Upgrading

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.

Uninstalling

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.

Development and testing

Contributing

See CONTRIBUTING.md for contribution guidelines and git hooks setup.

AniMe Matrix simulator

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.

Laptop support requests

To request support for unlisted hardware models, open an issue on the project issue tracker.

  • PPT Sliders: For specific issues regarding PPT sliders, refer to Issue #124.
  • Keyboard Backlight Support: The procedure involves testing layout changes locally in /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.

License and trademarks

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.


AI Disclaimer

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

anime-matrix
asus
aura
rog
rog-core

OpenGamingCollective/asusctl

Daemon and tools to control your ASUS ROG laptop. Supersedes rog-core.

Rust

646

2,124 commits

updated Oct 19, 2026

See the code

See what people are saying

SourceMessageScoreDate

FWIW I have an Asus Zephyrus G14 and the dual graphics cards works pretty well in Linux in hybrid mode. It's pretty cool, certain things (games) run on the dedicated Nvidia GPU. Everything else runs on the built in AMD GPU. I'm guessing it's because the laptops are popular enough that there's a…

on Steam on Linux Use Skyrocketed Above 5% in March

0

Apr 2, 2026

Systems with iGPU (CPU RAM) + dGPU (dedicated GPU RAM) support GPU passthrough IIUC. With the proprietary Nvidia Linux module, These environment variables cause processes to run on an Nvidia dGPU instead of the iGPU: https://download.nvidia.com/XFree86/Linux-x86_64/435.17/READ... :…

on Show HN: VM-curator – a TUI alternative to libvirt and virt-manager

0

Jan 25, 2026

If you're interested in ASUS laptops (they have some very good and powerful models), you can check out this website: https://asus-linux.org/

on Inside the Steam Deck's APU

0

Jan 15, 2024

The ASUS Zephyrus series (I'm on a 2022 G14) are fantastic if you can get past the mild gamer aesthetic. Great magnesium build. Lots of keyboard travel. Tons of ports (USB-A, HDMI, etc.) Touchpad works great on Linux, but wake from suspend results in mild bork on the current kernel (fans won't turn…

on Recovering a password-protected ThinkPad T60

0

Oct 15, 2022

I followed the guides from here: asus-linux.org/ specifically this one (because I wanted Fedora): https://asus-linux.org/wiki/fedora-guide/ There is also a reddit community for Fedora where you can ask questions (also the above link contains some discord server links I believe. The gui software is…

on Ask HN: What’s a good laptop for software development at around $2k?

0

Apr 21, 2022

I'm also on a G14! The wait time for a ThinkPad was 6 weeks when I needed a new laptop, so I just ended up buying a G14 because I couldn't wait. WiFi seems okay for me, I've not had any problems. Restarting X is indeed annoying. Also only one of the USB-c ports has display port support, that took…

on Ask HN: What’s a good laptop for software development at around $2k?

0

Apr 20, 2022

I cannot really accept a MacBook because it's a rental product where Apple has complete control over your machine. Used a Dell XPS for a while, it's a fairly good experience with Linux (Ubuntu and Manjaro), but the build quality is pretty bad. Once it fell backwards from a coffee table and shorted…

on Ask HN: MacBooks seems to be the only viable option these days

0

Apr 19, 2022

I personally try to avoid Nvidia dGPUs since I usually don't need CUDA and they tend to be a PITA even w/ DKMS drivers and are terrible for battery life. I think the thing with the currently available Vivobook Pro 14Xs (M4700/N7400) is that they're currently last-gen Ryzen 5000 and Intel 11th gen…

on StarBook 14-inch

0

Apr 15, 2022

Just to tack on, I set up windows with GPU pass-through and looking glass on my new laptop over the course of about 3 hours of on-and-off work using the excellent guide over at https://asus-linux.org/wiki/vfio-guide/

on Looking Glass: Run a Windows VM on Linux in a window with native performance

0

Jul 18, 2021

README

asusctl for ASUS ROG

Become a Patron Support me on Ko-fi Asus Linux Website Discord

[!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.

Overview and goals

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.

  • Clean interface: Exposes hardware controls safely via D-Bus.
  • Resource efficiency: Operates with minimal CPU overhead and under 1 MB of RAM during standard daemon execution.

Hardware and kernel compatibility

Supported laptops

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.

Kernel requirements

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.

Display server support (X11)

[!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.

Implemented features

Feature availability depends on upstream Linux kernel support and specific hardware capabilities.

Power and performance

  • Battery charge thresholds: Configure maximum charging limits (requires kernel support)
  • Custom fan curves: Adjust fan profiles on supported hardware
  • GPU MUX toggling: Switch GPU operational modes (G-Sync / MUX) on 2022 and newer laptops
  • Power profile management: Control system performance profiles as detailed in MANUAL.md

Lighting and displays

  • Built-in LED controls: Adjust integrated keyboard lighting modes
  • Per-key RGB configuration: Customize individual key backlight settings
  • Advanced lighting effects: Apply custom animation modes (currently undergoing revision)
  • AniMe Matrix displays: Control panel rendering on equipped G14, M16, and Strix Scar 16/18 models

System integration

  • System daemon (asusd): Background service handling hardware communications
  • Graphical interface (rog-control-center): Desktop application with system tray integration and notifications
  • POST audio controls: Toggle the BIOS boot sound setting

Additional hardware configuration notes

Keyboard 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.

Installation and setup

Package installation

Pre-built binary packages are available in several Linux distribution repositories. Check your package manager before building from source.

DistributionRepository SourceInstallation CommandNotes
Ultramarine / NobaraOfficial Repositoriessudo dnf install asusctlDirect package installation
FedoraTerra Repositorysudo dnf install asusctlRequires Terra repository enabled
openSUSEOBS RepositoryAdd OBS repositoryMaintained on OpenSUSE Build Service
Arch LinuxOGC Arch RepositoryRefer to OGC Arch GuideMaintained via OGC Arch pacman repository
Nix / NixOSNixpkgsnix-env -iA nixpkgs.asusctlPackage name: asusctl
SolusOfficial Repositoriessudo eopkg install asusctlDirect package installation

Service management

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.

Building from source

Compiling asusctl requires the Rust compiler and Cargo toolchain from rustup.rs. Use the stable toolchain for build tasks.

Arch Linux

sudo pacman -S --needed --asdeps git cmake clang pkg-config libzip rust openssl
make
sudo make install

Fedora

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

openSUSE

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 (Unsupported)

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

Ubuntu and Pop!_OS (Unsupported)

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

Upgrading

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.

Uninstalling

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.

Development and testing

Contributing

See CONTRIBUTING.md for contribution guidelines and git hooks setup.

AniMe Matrix simulator

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.

Laptop support requests

To request support for unlisted hardware models, open an issue on the project issue tracker.

  • PPT Sliders: For specific issues regarding PPT sliders, refer to Issue #124.
  • Keyboard Backlight Support: The procedure involves testing layout changes locally in /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.

License and trademarks

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.


AI Disclaimer

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

anime-matrix
asus
aura
rog
rog-core

Significant stargazers

Diogo Sousa

212 followers · starred Sep 2026

Js0n

469 followers · starred Sep 2026

miles

38 followers · starred Aug 2026

Mohammad Amin Mollazadeh

82 followers · starred Nov 2022