Skip to content

Repository files navigation

z13ctl

RGB lighting, performance profiles, battery limit, fan curves, TDP control, CPU undervolting, and display settings for the 2025 ASUS ROG Flow Z13 on Linux.

License

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.

Install

# 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 setup

See the Installation guide for systemd service setup, source builds, and uninstall instructions.

Quick Start

# 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-uv

Documentation

Full documentation at https://dahui.github.io/z13ctl

About

ROG Flow Z13 2025 RGB lighting and performance control

Resources

Contributing

Stars

47 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages