Asusctl On NixOS
A simple guide for getting asusctl running on NixOS
Contents
Disclaimer
This guide expects some previous knowledge about NixOS and its configuration system.
Please note that NixOS is not officially supported by this project, and any issues specific to it shall be reported on the nixpkgs GitHub page.
Requirement
Linux 6.19 or newer is recommended. To install the latest Linux, put this in your configuration file:
boot.kernelPackages = pkgs.linuxPackages_latest;
Installation
ROG Control Center is included in the asusctl module, so you only have to add to the configuration file:
services.asusd.enable = true;
Then rebuild your NixOS
Important
Power profiles:
asusdmanages platform profiles and CPU EPP settings itself via the ACPIplatform_profileinterface. Running an external power profiles daemon (such aspower-profiles-daemonortuned) alongsideasusdcan cause race conditions over/sys/firmware/acpi/platform_profileand CPU EPP preferences. You have two options:
- Let
asusdmanage profiles and do not enable an external daemon (e.g. do not enableservices.power-profiles-daemon).- Keep the external daemon and disable
asusd’s profile management by setting the following tofalsein/etc/asusd/asusd.ron:change_platform_profile_on_ac: false, change_platform_profile_on_battery: false, platform_profile_linked_epp: false,A common way to switch profiles is binding the
Fn+F5key toasusctl profile nextAvailable profiles vary by system, seeasusctl profile list.
Graphics Switching
See GPU Switching for how to manage the dGPU and MUX.
Cardwire is also packaged in nixpkgs. Enable it with:
services.cardwired.enable = true;
Note
The
services.cardwired.enablemodule is currently only available on nixpkgs unstable. It will be included in the 26.11 release.
For installation and usage instructions, refer to the documentation.