ASUS laptops with Linux
asusctl
The asusctl project provides great control over ASUS laptops, however it depends on systemd and its written in rust, so if you don't use systemd or you don't want to install rust you can just simply interact with the asus-nb-wmi driver provided by the Linux kernel.
Asus Notebooks WMI hotkey driver
If you have a custom kernel you will need to enable the CONFIG_ASUS_NB_WMI kernel option. You should also enable CONFIG_ASUS_LAPTOP and CONFIG_ASUS_WMI.
Cooling
If you want to lower your CPU temps you can change the cooling policy by editing the following file:
/sys/devices/platform/asus-nb-wmi/throttle_thermal_policy
0 - balanced
1 - performance
2 - silent
The performance option will result in lower temps, however it will also make your laptop loud. If you only want to trigger performance cooling only when your CPU is running hot, you can use a shell script like this.
MUX switch
The MUX switch can be controlled via this file:
/sys/devices/platform/asus-nb-wmi/gpu_mux_mode
0 - dGPU only
1 - dGPU and iGPU