Contribute
Register

Asus Z690 ProArt Creator WiFi (Thunderbolt 4) + i7-12700K + AMD RX 6800 XT

** Automating Liquidctl at Start Up **

Purpose:
To install a script that will run automatically at startup to configure Aura LED color channels.

Procedure:
There are two parts to the procedure:
  1. Creating a script to configure color channels
  2. Creating and registering a LaunchAgent
Part 1: Create a Script to Configure Color Channels
This is a simple procedure. We create a script that will contain all of the liquidctl operations we want to perform at startup. Then we'll change its ownership to root.

Download the sample file below called liquidctl-start.sh. It looks like this:
Bash:
#!/bin/bash

# initialize devices
/usr/local/bin/liquidctl -m Aura initialize

# set color modes
/usr/local/bin/liquidctl -m Aura set argb1 color static ff0000
/usr/local/bin/liquidctl -m Aura set argb3 color static 0000ff
In the section set color modes, simply customize the color channels any way you like. Then save the file into the /Users/Shared folder. Yes it must be in /Users/Shared and the name must be liquidctl-start.sh (all lowercase letters).

Then we change its ownership as follows:
Bash:
cd /Users/Shared
sudo xattr -d com.apple.quarantine liquidctl-start.sh
sudo chown root liquidctl-start.sh

Part 2: Create and Register a LaunchAgent
A LaunchAgent is a .plist file that tells macOS what to do on system start. We proceed as follows:
  1. Download the attached file called com.caseysj.liquidctl.plist. Fortunately we don't need to make any changes to this file.
  2. Let's assume the plist is in our Downloads folder. Copy the file using admin privileges to /Library/LaunchAgents.
  3. Then we register the plist file with launchctl.
Steps 2 and 3 are performed as follows:
Bash:
# copy the file
sudo cp ~/Downloads/com.caseysj.liquidctl.plist /Library/LaunchAgents

# register the file with launchctl
cd /Library/LaunchAgents
launchctl load com.caseysj.liquidctl.plist
XML:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.caseysj.liquidctl</string>
    <key>Disabled</key>
    <false/>
    <key>KeepAlive</key>
    <false/>
    <key>Program</key>
    <string>/Users/Shared/liquidctl-start.sh</string>
    <key>ProgramArguments</key>
    <array>
        <string>/Users/Shared/liquidctl-start.sh</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>

After rebooting and logging in, check if active color modes match the settings specified in liquidctl-start.sh.


Procedure to Remove the LaunchAgent Job:
Bash:
cd /Library/LaunchAgents
launchctl unload com.caseysj.liquidctl.plist

# we can now delete the plist file
sudo rm com.caseysj.liquidctl.plist

# optional: if you wish to remove the script as well
cd /Users/Shared
sudo rm liquidctl-start.sh
 

Attachments

  • com.caseysj.liquidctl.plist
    566 bytes · Views: 76
  • liquidctl-start.sh.zip
    323 bytes · Views: 80
Last edited:
@CaseySJ

I discovered some additional dynamic color modes that are not in the driver:
0x10, takes_color=false
0x11, takes_color=false
0x12, takes_color=true
0x13, takes_color=false

Not sure what to name these.
Wow, these are real and different from the others! Here's what I've called them:

Screen Shot 2022-02-06 at 4.23.35 PM.png


I really like gentle_transition. It operates across all color channels in a soothing, almost Zen-like manner.
 
Wow, these are real and different from the others! Here's what I've called them:

View attachment 541387

I really like gentle_transition. It operates across all color channels in a soothing, almost Zen-like manner.
How do we read device id of the z690 Aura USB led controller? What if the Aura controller on another ASUS z690 board has a different device ID? Would be good to extend the driver to support known device ids.

SUPPORTED_DEVICES = [
(0x0b05, 0x19af, None, 'AsusTek Aura LED Controller', {}),
]
 
Last edited:
How do we read device id of the z690 Aura USB led controller? What if the Aura controller on another ASUS z690 board has a different device ID? Would be good to extend the driver to support known device ids.

SUPPORTED_DEVICES = [
(0x0b05, 0x19af, None, 'AsusTek Aura LED Controller', {}),
]
The AuraLed driver inherits the UsbHidDriver class, which in turn inherits other USB base classes. The base classes handle all of the low-level tasks, leaving the driver to focus on its own tasks.

If other Asus Aura controllers with different product IDs use the same control codes then we can certainly add them to the SUPPORTED_DEVICES list.
 
The AuraLed driver inherits the UsbHidDriver class, which in turn inherits other USB base classes. The base classes handle all of the low-level tasks, leaving the driver to focus on its own tasks.

If other Asus Aura controllers with different product IDs use the same control codes then we can certainly add them to the SUPPORTED_DEVICES list.
But how do we prove the aura led usb device for its device id? I suppose device manager in windows is a good place to look?
 
But how do we prove the aura led usb device for its device id? I suppose device manager in windows is a good place to look?
Not sure I understand the question, but we can use IOReg on Mac, HWINFO64 on Windows, and ‘lsusb’ on Linux to probe the USB bus and get idVendor and idProduct. We can add other Aura IDs to the same driver and see if the driver works with them. If so, we call it a done deal. If not, we can create a new driver with hopefully just a few modifications.
 
Not sure I understand the question, but we can use IOReg on Mac, HWINFO64 on Windows, and ‘lsusb’ on Linux to probe the USB bus and get idVendor and idProduct. We can add other Aura IDs to the same driver and see if the driver works with them. If so, we call it a done deal. If not, we can create a new driver with hopefully just a few modifications.
Ok cool, So the driver matches on product id 0x19af for the ProArt. But on the Asus z690 Formula for example, the Aura Led USB product id is different, it is 0x18f3.
 
Ok cool, So the driver matches on product id 0x19af for the ProArt. But on the Asus z690 Formula for example, the Aura Led USB product id is different, it is 0x18f3.
Interesting. Curious to see if the same driver works. We can make this change, which is included in the modified aura_led.py attached.

Screen Shot 2022-02-07 at 8.36.07 AM.png
 

Attachments

  • aura_led.py.zip
    3.9 KB · Views: 43
Interesting. Curious to see if the same driver works. We can make this change, which is included in the modified aura_led.py attached.

View attachment 541421
Sorry, been out of the loop a bit. Is this something you're looking to test?
 
Sorry, been out of the loop a bit. Is this something you're looking to test?
That is for a different Asus motherboard such as Z690 Formula that uses a different Aura controller.
 
Back
Top