This guide documents the ultimate setup for the ASUS ROG Flow Z13 (2025 Model) running Omarchy Linux.
Because this device features the AMD Ryzen AI Max (Strix Halo) architecture, a standard Arch install is not enough. This guide implements the CachyOS Kernel to enable:
- AVX-512 & NPU Support: Hardware acceleration for AI tasks.
- Sched-Ext (scx_lavd): Eliminates micro-stutters caused by the Strix Halo chiplet design.
- AMD P-State EPP: Proper battery life and boost behavior.
- BIOS Settings: Reboot (
F2) -> Advanced -> Security -> Secure Boot -> Disable. - Clean Install: Assumes a fresh installation of Omarchy Linux.
- Internet: Required during setup.
Do not skip this. Installing custom kernels on an outdated base will break the system.
- Connect to Wi-Fi.
- Update system keyrings and packages:
sudo pacman -Sy archlinux-keyring sudo pacman -Syu
- Reboot.
We replace the generic kernel with CachyOS and install the ASUS control stack using a specific sequence to avoid repository conflicts.
-
Install CachyOS Repositories
Install the CachyOS Repo Helper
curl https://mirror.cachyos.org/cachyos-repo.tar.xz -o cachyos-repo.tar.xz tar xvf cachyos-repo.tar.xz cd cachyos-repo sudo ./cachyos-repo.sh cd ..Note: The script will automatically try to update and will likely fail with a dependency error. This is expected. Proceed to the next step to resolve it.
-
Resolve Hyprland Dependencies
This sequence re-aligns your system to prevent conflicts between the Omarchy and CachyOS packages.
i. Temporarily disable CachyOS Repos: Open /etc/pacman.conf and comment out all CachyOS entries by adding a # at the beginning of each line.
sudo nano /etc/pacman.confii. Force Sync to Stable Repos This aligns your system back to the pure Arch/Omarchy repositories. The yy is important.
sudo pacman -Syyuiii. Reinstall Desktop Environment Ensure you are using the stable Omarchy versions:
sudo pacman -S hyprland hyprlock hyprtoolkitiv. Re-Enable CachyOS Repos Open /etc/pacman.conf again and remove the # symbols you just added.
sudo nano /etc/pacman.conf -
Install CachyOS Kernel The Limine bootloader will automatically detect this kernel after installation.
Install Kernel & Headers
sudo pacman -S linux-cachyos linux-cachyos-headers -
Install ASUS Tools
Add G14 Repo
echo -e "\n[g14]\nServer = https://arch.asus-linux.org" | sudo tee -a /etc/pacman.confImport Keys & Install
sudo pacman-key --recv-keys 8F654886F17D497FEFE3DB448B15A6B0E9A3FA35 sudo pacman-key --lsign-key 8F654886F17D497FEFE3DB448B15A6B0E9A3FA35 sudo pacman -Sy asusctl rog-control-center -
Reboot
The daemon may fail to enable out of the box on minimal installs due to a missing install section. Fix it manually:
-
Edit the service file:
sudo nano /usr/lib/systemd/system/asusd.service -
Add this block to the very bottom of the file:
[Install] WantedBy=multi-user.target -
Reload and Enable:
sudo systemctl daemon-reload sudo systemctl enable --now asusd
-
Bleeding-Edge Firmware Required for 2025 Audio and NPU support.
yay -S linux-firmware-git --overwrite '*'Critical: If prompted :: linux-firmware-git and linux-firmware are in conflict, type y (Yes) to remove the old version.
Note: The --overwrite '*' flag is necessary to replace the existing stock firmware files without errors.
-
Tablet Utilities Installs rotation, virtual keyboard, and menu tools.
yay -S iio-hyprland-git wvkbd-mobintl rofi-wayland -
Wi-Fi Stability Fix Prevents the MediaTek MT7925 card from disconnecting during sleep.
echo "options mt7925e disable_aspm=1" | sudo tee /etc/modprobe.d/mt7925e.conf
Add the following to your ~/.config/hypr/hyprland.conf:
Step 1: Open the Config File
You need to open the file in the nano text editor you installed earlier.
Run this command in your terminal:
nano ~/.config/hypr/hyprland.conf
Step 2: Scroll to the Bottom
Use the Down Arrow key on your keyboard to scroll all the way to the very end of the file. It is safer to add new settings at the bottom so you don't accidentally break existing ones.
Step 3: Paste the Configuration
Copy the block below and paste it into the editor (usually Ctrl+Shift+V in the terminal):
# --- ASUS ROG Flow Z13 (2025) Hardware ---
# High-DPI Scaling
monitor = eDP-1, preferred, auto, 2
# Auto-Rotation
exec-once = iio-hyprland
# Tablet Input Mapping (Fixed formatting)
input {
tablet {
transform = 0
output = eDP-1
}
}
# --- Keybinds ---
# Virtual Keyboard (Super + V)
bind = SUPER, V, exec, pkill wvkbd-mobintl || wvkbd-mobintl -L 300
# ROG Power Menu (Dedicated Side Button / Super + A)
bind = , XF86Launch3, exec, ~/rog-quick.sh
bind = SUPER, A, exec, ~/rog-quick.sh
# Keyboard Backlight (Fn + F11 Cycle Modes)
bind = , XF86KbdLightOnOff, exec, asusctl -nCreate a visual menu to switch power profiles without the terminal.
Step 1: Create and Open the File
Run this command. It will open a new, blank file named rog-quick.sh in your home director
nano ~/rog-quick.sh
Step 2: Paste the Script
Now, copy the entire script block below and paste it into the nano editor (usually Ctrl+Shift+V in the terminal).
#!/bin/bash
options="π Silent\nβοΈ Balanced\nπ Performance\nβ‘ Turbo 95W\nπ Limit 80%\nπ Limit 100%"
selected=$(echo -e "$options" | rofi -dmenu -p "ROG Control")
case $selected in
"π Silent") asusctl profile -P Quiet && notify-send "ROG" "Silent Mode" ;;
"βοΈ Balanced") asusctl profile -P Balanced && notify-send "ROG" "Balanced Mode" ;;
"π Performance") asusctl profile -P Performance && notify-send "ROG" "Performance Mode" ;;
"β‘ Turbo 95W")
asusctl profile -P Performance
asusctl power-limits -s 95000
notify-send "ROG" "Turbo 95W Active" ;;
"π Limit 80%") asusctl -c 80 && notify-send "Battery" "Capped at 80%" ;;
"π Limit 100%") asusctl -c 100 && notify-send "Battery" "Uncapped" ;;
esac
Step 3: Save and Exit
-
Make executable:
chmod +x ~/rog-quick.sh -
Waybar Integration: We need to add the battery module to the status bar. Open the configuration file:
nano ~/.config/waybar/config.jsoncPart A: Define the Module Scroll to the bottom of the file. Paste this block inside the final closing bracket }, but make sure to add a comma , to the block above it!
"custom/asus": { "format": "β‘ {}", "exec": "asusctl profile -p | sed 's/Active profile is //'", "interval": 5, "on-click": "~/rog-quick.sh", "tooltip": true, "tooltip-format": "Current Power Profile: {}" }Part B: Position the Module Scroll to the top and find the line starting with "modules-right". Add "custom/asus" to the list. Example:
"modules-right": ["custom/asus", "network", "cpu", ...],Save and Exit.
Reboot and select CachyOS from the boot menu.
| Component | Command / Action | Expected Result |
|---|---|---|
| Kernel | uname -r |
Contains cachyos |
| CPU Driver | cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_driver |
amd-pstate-epp |
| Fans | asusctl -s |
Shows RPM and Temps |
| Power | watch sensors |
Check PPT wattage changes with profiles |
| Side Button | Press Side Button | ROG Menu opens |
| Rotation | Rotate Device | Screen flips automatically |
If you use the Z13 as a handheld console (gyro/controller support):
yay -S hhd-git
sudo systemctl enable --now hhd.service
Run hhd-gui to configure gyro and rumble.
The script in Phase 5 includes a "Turbo 95W" option.
This uses asusctl power-limits -s 95000 to override the default 80W cap of the Performance profile.
To Reset: Select a different profile or run asusctl power-limits --restore.
- Pen Support: Verified: Microsoft Surface Pen 2 works out of the box with full pressure sensitivity and rear eraser support.
- Side Shortcut Button: Mapped to
XF86Launch3(on 2025 models). Perfect for triggering the Power Menu or Virtual Keyboard. - USB-C Charging: Third-party chargers work (65W-100W) but ASUS firmware may lock out the highest "Turbo" TDP modes. Use the official brick for heavy gaming.
By default, browsers may use the CPU to decode video, which drains battery. Enable the GPU's media engine to save power.
- Install AMD Media Drivers:
sudo pacman -S libva-mesa-driver
- Enable in Firefox:
- Type
about:configin the address bar. - Search for
media.ffmpeg.vaapi.enabled. - Set it to true.
- Type
- Result: YouTube/Netflix will now use the efficient Strix Halo media engine instead of the CPU.
- No Audio:
- Ensure
linux-firmware-gitis installed. - Open
pavucontrol(PulseAudio Volume Control) and ensure the correct output device (Smart Amp) is selected, not HDMI.
- Ensure
- Wi-Fi Drops:
- Verify the config file exists:
cat /etc/modprobe.d/mt7925e.conf - It must contain
options mt7925e disable_aspm=1.
- Verify the config file exists:
- Boot Loop / Black Screen:
- Double-check that Secure Boot is DISABLED in the BIOS (
F2on boot). The CachyOS kernel is not signed for Secure Boot.
- Double-check that Secure Boot is DISABLED in the BIOS (
- ASUS-Linux.org: The developers behind
asusctland the reverse-engineering efforts for ROG laptops. - CachyOS: For the optimized kernel and
sched-extscheduler work that makes Strix Halo usable. - Omarchy: For the lightweight, opinionated Arch base.
I am not responsible for bricked devices, dead SD cards, thermonuclear war, or you getting fired because the alarm app failed.
- Voltage/TDP: Modifying power limits (
asusctl power-limits) can push hardware beyond factory specs. Use "Turbo" modes at your own risk. - Secure Boot: Disabling Secure Boot is required but may affect some Windows-only games if you dual-boot.
This project is licensed under the MIT License - feel free to use, modify, and distribute.