Arch ASUS Laptop Controls
Configure ASUS-specific laptop controls on Arch with asusctl and asusd. This workflow covers power profile separation, ASUS keyboard RGB, battery charge limits, a local asusd service workaround, and set-and-go usage when ASUS settings persist without keeping the daemon enabled all day.
Understand the tool split
Section titled “Understand the tool split”ASUS laptops can expose extra hardware controls that are not part of standard i3, PipeWire, or powerprofilesctl workflows. Use asusctl only for ASUS-specific features such as keyboard RGB, battery charge limits, and optional fan curve inspection.
- Use powerprofilesctl for normal performance, balanced, and power-saver modes.
- Use asusctl for ASUS-specific laptop controls.
- The asusd service is required while running asusctl commands.
- If the settings persist after being applied, asusd does not have to run all day for a set-and-go setup.
Check standard Linux power profiles
Section titled “Check standard Linux power profiles”Use powerprofilesctl for normal Linux power mode changes. This is separate from ASUS-specific hardware control.
powerprofilesctlpowerprofilesctl get
powerprofilesctl set balancedpowerprofilesctl set power-saverpowerprofilesctl set performanceInstall and inspect asusctl
Section titled “Install and inspect asusctl”Install asusctl and inspect the available ASUS commands.
yay -S asusctl
asusctl --helpasusctl infoASUS service workaround
Section titled “ASUS service workaround”On this ASUS setup, the packaged asusd.service failed before the daemon started. The failure appeared as status 226/NAMESPACE on ExecStartPre=/bin/sleep 1. This points to systemd sandbox or namespace settings in the packaged unit, not an ASUS hardware failure.
The working fix was to create a simpler local systemd unit at /etc/systemd/system/asusd.service. A local unit in /etc overrides the packaged unit in /usr/lib/systemd/system.
# Inspect the active service definitionsystemctl cat asusd.service
# Check service statussystemctl status asusd.service --no-pager
# Check logs if it failsjournalctl -u asusd.service -b --no-pager -n 100# Create a minimal local asusd servicesudo tee /etc/systemd/system/asusd.service >/dev/null <<'EOF'[Unit]Description=ASUS Notebook ControlAfter=systemd-udevd.service
[Service]Environment=IS_SERVICE=1ExecStart=/usr/bin/asusdRestart=on-failureRestartSec=1Type=dbusBusName=xyz.ljones.AsusdTimeoutSec=10
[Install]WantedBy=multi-user.targetEOF
# Remove old drop-in overrides if they were created during testingsudo rm -rf /etc/systemd/system/asusd.service.d
# Reload systemd and start the servicesudo systemctl daemon-reloadsudo systemctl reset-failed asusd.servicesudo systemctl start asusd.servicesystemctl status asusd.service --no-pagerEnable asusd only if needed
Section titled “Enable asusd only if needed”Enable the local service only if ASUS controls should be available after reboot without starting the daemon manually.
# Enable ASUS control daemon on bootsudo systemctl enable --now asusd.service
# Verify boot statesystemctl is-enabled asusd.servicesystemctl status asusd.service --no-pagerASUS keyboard RGB
Section titled “ASUS keyboard RGB”After asusd is running, use asusctl to set a static keyboard color.
# Inspect Aura commandsasusctl aura --helpasusctl aura effect --helpasusctl aura effect static --help
# Set keyboard backlight to static whiteasusctl aura effect static -c ffffffASUS battery charge limit
Section titled “ASUS battery charge limit”Use the ASUS battery commands to inspect battery state, set a daily plugged-in charge limit, or perform a one-shot full charge before travel.
# Inspect battery commandsasusctl battery --helpasusctl battery info
# Set daily plugged-in charge limitasusctl battery limit 80
# One-shot full charge before travelasusctl battery oneshot 100- Static white keyboard color: asusctl aura effect static -c ffffff
- Daily battery preservation: asusctl battery limit 80
- Full charge before travel: asusctl battery oneshot 100
- Avoid custom fan curves unless there is a clear thermal reason.
ASUS set-and-go mode
Section titled “ASUS set-and-go mode”If ASUS settings are rarely changed, asusd can be started only when applying settings and stopped afterward. Test this after a reboot because keyboard RGB may reset more often than the battery charge limit.
# Apply ASUS preferences manuallysudo systemctl start asusd.serviceasusctl aura effect static -c ffffffasusctl battery limit 80sudo systemctl stop asusd.service# Disable background startup if set-and-go is preferredsudo systemctl disable asusd.service
# Start only when ASUS settings need to be changed againsudo systemctl start asusd.service- Arch, i3, sound, and powerprofilesctl work without asusd.
- asusd is needed only when asusctl needs to talk to ASUS-specific hardware controls.
- Keep asusd enabled if keyboard RGB resets after reboot or if ASUS controls are used often.
- Keep asusd disabled if the settings persist and the laptop is used in a fixed set-and-go style.
Debug commands
Section titled “Debug commands”# Check ASUS control daemonsystemctl status asusd.service --no-pagersystemctl cat asusd.servicejournalctl -u asusd.service -b --no-pager -n 100
# Check ASUS command availabilitycommand -v asusctlasusctl --helpasusctl info
# Check current power profilepowerprofilesctl getFile locations
Section titled “File locations”- Local asusd service override: /etc/systemd/system/asusd.service
- Packaged asusd service location: /usr/lib/systemd/system/asusd.service
- ASUS command-line tool: asusctl
- ASUS daemon service: asusd.service
- Standard Linux power profile tool: powerprofilesctl