RGB lighting, performance profiles, battery limit, fan curves, TDP control, CPU undervolting, and display settings for the 2025 ASUS ROG Flow Z13 on Linux.
z13ctl implements the Aura HID protocol directly against the Linux hidraw
interface — no kernel patches, no external daemons. System settings (profiles,
battery limit, boot sound, panel overdrive, fan curves, TDP) use the standard
asus-wmi and asus-armoury sysfs interfaces. CPU undervolting uses the
ryzen_smu kernel module for AMD Curve Optimizer control. A background daemon
persists state across reboots, restores volatile settings after sleep/resume,
re-applies keyboard lighting when the detachable keyboard is reattached, and
watches the Armoury Crate button.
Tip
New to Linux? Install z13gui. Most
users (especially newcomers!) should use z13gui, a touch-friendly
graphical overlay that exposes every z13ctl feature (lighting, fan curves,
TDP, undervolt, profiles, battery limit) with no command line required. The
raw z13ctl CLI shines for scripting and advanced tuning, but if you're not a
Linux veteran, install z13gui alongside z13ctl for a far smoother experience.
# Arch Linux (AUR)
yay -S z13ctl-bin
# Debian / Ubuntu
sudo apt install ./z13ctl_*.deb
# Fedora / RHEL
sudo dnf install ./z13ctl_*.rpm
# Manual (from release tarball)
tar xzf z13ctl_*_linux_amd64.tar.gz
sudo install -Dm755 z13ctl /usr/local/bin/z13ctl
sudo z13ctl setupSee the Installation guide for systemd service setup, source builds, and uninstall instructions.
# Solid cyan at full brightness
z13ctl apply --color cyan --brightness high
# Breathing red
z13ctl apply --mode breathe --color red --speed slow
# Rainbow wave
z13ctl apply --mode rainbow --speed normal
# Turn off lighting
z13ctl off
# Set performance profile
z13ctl profile --set balanced
# Cap battery charge at 80%
z13ctl batterylimit --set 80
# Custom fan curve (8-point, temp:pwm pairs — both fans)
# The kernel drops custom curves on every power profile change; run the daemon
# and it re-applies yours automatically.
z13ctl fancurve --set "48:2,53:22,57:30,60:43,63:56,65:68,70:89,76:102"
# Set TDP to 50W
z13ctl tdp --set 50
# Undervolt CPU by -20 (Curve Optimizer, requires ryzen_smu)
z13ctl undervolt --set -20
# A different profile on AC and on battery.
# --profile stores a setting without applying it, so you can build the battery
# profile while still plugged in.
z13ctl profile --create battery-uv
z13ctl tdp --set 35 --profile battery-uv
z13ctl undervolt --set -25 --profile battery-uv
z13ctl autoswitch --ac balanced --battery battery-uvFull documentation at https://dahui.github.io/z13ctl