-
-
Notifications
You must be signed in to change notification settings - Fork 6
Custom Presets
The Custom Preset Editor lets you build your own power preset from scratch. Instead of using the four fixed built-in presets, you pick exactly which parameters to enable and what values to set them to. Saved presets appear alongside the built-in ones everywhere in the app.
This page covers both using the editor and what every parameter does. For the config.ini file (active preset, automations and app settings), see Configuration.
Main menu, Custom Preset
If you have no saved custom presets yet, the editor opens immediately with a blank preset. If you have existing presets, you'll see a list to pick from, with a "Create new preset" option at the bottom.
Requirements: your CPU must be detected as Amd_Apu or Amd_Desktop_Cpu. The editor doesn't open for Intel or Unknown hardware, since custom presets can't do anything useful without SMU support.
Custom Preset Editor
Name: MyPreset [*]
[1] Temp [2] Power [3] VRM [4] iGPU [5] CO
[6] CO Per-Core [7] Clocks [8] CPU Tuning [9] NV GPU [10] System
──────────────────────────────────────────────────────────
APU Temperature
▶ [✓] APU Temp Limit 90 °C [10 – 105]
[ ] Skin Temp Limit 45 °C [8 – 105]
Controls the temperature limit at which the APU starts soft throttling
──────────────────────────────────────────────────────────
[S] Save [L] Load [D] Delete [R] Rename
Space to toggle, ←/→ to step, Enter to type value
Backspace to reset, Tab to switch section, Esc to go back
Name is the preset name. [*] appears when there are unsaved changes.
Section tabs group related parameters. The active tab is bold. Tabs are numbered by position among the sections your CPU actually supports, so the numbers can shift if some sections are hidden on your hardware.
Parameter rows: [✓] means the parameter is enabled and will be applied. [ ] means it's disabled and won't be sent to the CPU.
The selected row has ▶ on the left and is shown in bold.
Hint: the area below the parameters shows a description of the currently selected one.
| Key | Action |
|---|---|
| ↑ / ↓ | Move between parameters in the current section |
| 1 – 9 | Jump to a section tab by its position number |
| Tab | Cycle through sections in order (this is how you reach a tab past position 9) |
| Space | Toggle the selected parameter on / off |
| ← | Decrease value by one step |
| → | Increase value by one step |
| Enter | Type a specific number directly |
| Backspace | Reset to default value and disable |
| S | Save the preset |
| L | Load a previously saved preset |
| D | Delete a saved preset |
| R | Rename the current preset |
| Esc | Go back (asks to confirm if there are unsaved changes) |
When you step a value with ← / →, it clamps at the min and max for that parameter. For clock pairs (like min/max iGPU clock), raising the min above the max automatically raises the max to match, and vice versa.
Press S inside the editor. If the preset doesn't have a name yet, you'll be prompted to enter one. Names are limited to about 50 characters. You can't save a preset with no parameters enabled, so enable at least one.
If a preset with the same name already exists, you'll be asked whether to overwrite it.
After saving, the preset appears in Power Management and Automations.
Press L to load a previously saved preset. You'll see a list of your saved presets. Selecting one replaces the current editor state. If there are unsaved changes, you're asked to confirm before discarding them.
Press D to delete a saved preset. You'll be asked to confirm. If the deleted preset is currently active in Power Management or Automations, those slots are cleared automatically and the daemon reloads.
Press R to rename the current preset without changing any values. If the preset was already saved under the old name, saving after renaming creates a new entry; the old one isn't removed automatically. Use Delete to clean up the old name.
When you apply a custom preset through Power Management, it behaves the same as a built-in preset: it can be the active preset, sit in Automations slots, and be re-applied by the Reapply loop.
If you save changes to a custom preset that's currently active (in Power Management or an Automations slot), the daemon automatically reloads and re-applies it. You don't need to select it again.
If you delete a custom preset that's active, Power Management falls back to Balance and any Automations slots using it are cleared.
Every section, every field, what it does and what range it accepts.
Section availability depends on your CPU. If a parameter's SMU command isn't in the command table for your CPU family, it's hidden, and a section with nothing left in it disappears entirely. Tab numbers are positional among the sections that are actually visible on your hardware.
APU Temp Limit (--tctl-temp)
Range: 10 – 105 °C
The temperature limit at which the APU starts throttling. When the CPU die temperature (Tctl) exceeds this value, the CPU begins reducing clocks to bring the temperature back down. Setting this lower reduces heat at the cost of performance. Setting it higher lets the CPU run warmer.
On APUs, this also sets --chtc-temp to the same value automatically. CHTC is the composite thermal control temperature used by newer APU families.
Skin Temp Limit (--apu-skin-temp)
Range: 8 – 105 °C
The laptop chassis temperature limit. If the external surface of the laptop exceeds this, the CPU throttles. Only relevant on laptops with skin temperature sensors (most modern ones have them). On desktops or systems without the sensor, enabling this has no effect.
Setting it lower forces throttling before the CPU gets hot, which helps if your laptop chassis runs uncomfortably warm.
STAPM Power Limit (--stapm-limit)
Range: 5 – 300 W
STAPM stands for Skin Temperature Aware Power Management. This is the sustained long-term power limit: the average power the CPU is allowed to use over the STAPM time window. Once the CPU has used more than this average over time, it backs down.
This is the main number that determines how much power your CPU uses over the long run. Lower means less heat and power draw, higher means more sustained performance.
Fast Power Limit (--fast-limit)
Range: 5 – 300 W
The short-duration burst power limit. The CPU can exceed STAPM up to this limit for a limited time (controlled by Fast Boost Duration). After that burst window, it comes back down toward the STAPM limit.
On systems with AMD SmartShift (AMD CPU plus AMD dGPU), this controls the total power shared between the CPU and the dGPU.
Set this higher than STAPM to give the CPU burst headroom.
Fast Boost Duration (--stapm-time)
Range: 2 – 1024 s
How long the CPU is allowed to run at the Fast Power Limit before the STAPM time-averaging kicks in and pulls it back down. Higher values give a longer burst window.
Slow Power Limit (--slow-limit)
Range: 5 – 300 W
An intermediate power limit between Fast and STAPM. After the CPU leaves the fast burst window, it's allowed to run at this limit until the Slow Boost Duration expires, then it has to come down toward STAPM.
On SmartShift platforms, this also controls the total shared power budget.
Slow Boost Duration (--slow-time)
Range: 2 – 1024 s
How long the CPU can stay at the Slow Power Limit.
AMD Boost Profile (--max-performance / --power-saving)
Choices: Auto, Power Saving, Performance
A hidden profile that AMD defines. It adjusts internal boost behaviour, mainly boost delay.
- Auto: let the CPU decide based on power state
- Power Saving: lower boost, better efficiency
- Performance: higher boost, more aggressive clocks
These six parameters control how much current the CPU's voltage regulators are allowed to deliver. If your system is hitting VRM limits rather than thermal limits, raising these can help. If your VRM runs hot, lowering them protects it.
All values are in amps. Internally they're sent to the SMU in milliamps (the editor multiplies by 1000 for you).
CPU TDC Limit (--vrm-current)
Range: 8 – 300 A
TDC means Thermal Design Current, the sustained current limit for the CPU VRM rail. The CPU can't draw more than this continuously.
CPU EDC Limit (--vrmmax-current)
Range: 8 – 300 A
EDC means Electrical Design Current, the peak current limit. The CPU can briefly spike above TDC up to this limit.
SoC TDC Limit (--vrmsoc-current)
Range: 8 – 300 A
Sustained current limit for the SoC rail, which powers the memory controller, PCIe and other platform logic.
SoC EDC Limit (--vrmsocmax-current)
Range: 8 – 300 A
Peak current limit for the SoC rail.
GFX TDC Limit (--vrmgfx-current)
Range: 8 – 300 A
Sustained current limit for the iGPU VRM rail.
GFX EDC Limit (--vrmgfxmax-current)
Range: 8 – 300 A
Peak current limit for the iGPU VRM rail.
These affect the integrated GPU clock targets. They're soft limits: they influence what the driver targets but may not be the hard ceiling in every situation.
Max iGPU Clock (--max-gfxclk)
Range: 400 – 2000 MHz
The maximum clock the iGPU will target. Useful for capping GPU power draw or heat.
Min iGPU Clock (--min-gfxclk)
Range: 400 – 2000 MHz
The minimum clock the iGPU will target. Setting this above the hardware idle floor keeps the iGPU at a higher base frequency, which can reduce stutter in some workloads at the cost of idle power.
iGPU Clock (--gfx-clk)
Range: 200 – 4000 MHz
Sets a static boost clock target for the iGPU. Unlike the soft min/max clocks, this directly sets the boost target; reverting back to normal requires either a system reboot or a suspend/resume cycle. Available on some CPU families (mainly Renoir-era), so check if it shows up for your CPU.
Curve Optimiser adjusts the voltage/frequency curve to either reduce voltage for the same frequency (negative offset, better efficiency) or increase it (positive offset, more stability headroom). The changes persist until the next boot unless re-applied.
Support: not all CPU families support CO, and on some that do it's limited to certain SKUs.
All Core CO (--set-coall)
Range: -50 to +30
Adjusts the Curve Optimiser for all CPU cores at once. Negative values lower voltage (better efficiency, cooler, longer battery life). Positive values raise voltage (better stability).
Start conservative: try -5 or -10 and test stability. Aggressive negative offsets can cause crashes under load.
iGPU CO (--set-cogfx)
Range: -50 to +30
Same concept but for the iGPU. Adjusts the voltage curve for the integrated graphics.
PBO Scalar (--pbo-scalar)
Range: 1 – 10
Precision Boost Overdrive scalar. Controls how aggressively PBO lets the CPU boost above base. Value 1 is essentially default, value 10 gives maximum headroom. This interacts with your thermal and power limits: if those are already set high, raising the scalar may not add much.
Per-core Curve Optimiser. Same concept as All Core CO but applied to individual cores on CCD1 and CCD2.
Range: -50 to +30 per core.
CCD2 fields only appear if your CPU has a second CCD (typically Ryzen 9 parts with large core counts like the 5900X, 6900HX or 7945HX).
Each core can be tuned independently. Some cores tolerate more aggressive negative offsets than others. Finding the per-core optimal values takes time and stability testing, so start with small steps.
These set the minimum and maximum soft clock targets for various subsystems. They're enforced by the SMU but the driver may override them under some conditions. They're for tuning, not hard caps.
For each pair, setting the min above the max automatically raises the max to match, and lowering the max below the min pulls the min down.
Max CPU Clock (--max-cpuclk)
Range: 400 – 4200 MHz
Min CPU Clock (--min-cpuclk)
Range: 400 – 2000 MHz
CPU core clock soft limits.
Max / Min Fclk (--max-fclk-frequency / --min-fclk-frequency)
Range: 400 – 2000 MHz
Infinity Fabric clock limits. Fclk is the interconnect between CPU, memory controller and iGPU. Higher Fclk improves memory bandwidth and latency. Most CPUs top out around 1600 to 2000 MHz; going higher can cause instability.
Max / Min SoC Clock (--max-socclk-frequency / --min-socclk-frequency)
Range: 400 – 2000 MHz
SoC clock limits. The SoC clock feeds the memory controller and display outputs.
Max / Min VCN Clock (--max-vcn / --min-vcn)
Range: 400 – 2000 MHz
Video Core Next clock limits. VCN handles hardware video encoding and decoding.
Max / Min Data Clock (--max-lclk / --min-lclk)
Range: 400 – 4200 MHz (max), 400 – 2000 MHz (min)
Data Launch Clock limits. LCLK is used by the PCIe subsystem and internal data paths.
Static overclocking parameters. Use with caution, these can cause instability if set wrong.
CPU Clocks (--oc-clk)
Range: 400 – 8000 MHz
Sets a static CPU core clock. When this is enabled, the CPU stops using its boost algorithm and runs at this fixed frequency. Enabling it also enables --enable-oc automatically.
CPU VID (--oc-volt)
Range: 512 – 1450 mV
Sets the CPU core voltage. The encoding differs between older and newer families:
- Older families (pre-Rembrandt) use the VID formula
(1.55 - voltage) / 0.00625 - Newer families (Rembrandt and up) use
(voltage - 1125) / 5 + 1200
The editor handles this conversion internally: you enter the voltage in millivolts and it encodes the right value for your CPU family.
This section only appears if nvidia-smi is found on your system. These parameters use nvidia-smi and NVML to control an NVIDIA discrete GPU.
Max GPU Clock Range: 400 – 4000 MHz
Sets the maximum clock for the NVIDIA GPU. Setting it to exactly 4000 MHz resets the clock limit to stock (nvidia-smi -rgc). Anything lower applies nvidia-smi -lgc 0,<value> to cap the GPU clock.
GPU Core Offset Range: -500 to +2000 MHz
Offset applied to the NVIDIA GPU's core clock. Positive values overclock, negative values underclock (useful for cutting power or heat).
GPU Mem Offset Range: -900 to +2000 MHz
Offset applied to the NVIDIA GPU's VRAM clock.
Each field in this section only appears if the matching capability is detected on your machine, and the whole tab is hidden when none are available. The tab sits past position 9, so reach it with the Tab key.
Power Profile Choices: Power Saver / Balanced / Performance
Sets the system power profile, the Linux equivalent of the Windows power mode in the original UXTU. The daemon writes /sys/firmware/acpi/platform_profile (if your firmware only offers quiet, Power Saver maps to it automatically). When the ACPI interface is missing it falls back to powerprofilesctl (power-profiles-daemon, or tuned-ppd on Fedora 41 and later), and finally to tuned-adm profile powersave|balanced|throughput-performance on systems that only run tuned. In practice this works on any distro with kernel 5.17+ and supporting firmware, or with power-profiles-daemon or tuned installed.
TLP users: TLP works alongside this setting, but if PLATFORM_PROFILE_ON_AC / PLATFORM_PROFILE_ON_BAT are set in /etc/tlp.conf, TLP re-applies its own profile on every AC/battery change and will override the preset. The daemon detects this and logs a warning; comment those options out if you want UXTU4Linux to manage the profile. TLP itself is not used as a backend, since it has no Power Saver/Balanced/Performance concept, only AC/BAT setting groups. On TLP systems the kernel platform_profile interface is used directly.
ASUS Performance Mode Choices: Silent / Balanced / Turbo
Sets the ASUS fan and thermal mode, the same modes as Armoury Crate or G-Helper, via the in-kernel asus-wmi driver (throttle_thermal_policy, or the asus-armoury firmware-attributes interface on kernel 6.8+). Only shown on ASUS laptops.
ASUS GPU Eco Choices: dGPU On / dGPU Off (Eco)
Powers the discrete GPU off (Eco) or back on, via the asus-wmi driver's dgpu_disable, the same switch as Armoury Crate's Eco mode. Only shown on ASUS laptops with a dGPU. Two safety guards apply (the same ones G-Helper uses):
- Refused while the dGPU driver (
nvidia_drmoramdgpu) is active. Disabling it then would hot-remove a GPU that's in use, which can crash the kernel. Close anything using the dGPU first. - Refused while the MUX is in dGPU (Ultimate) mode. The dGPU is the only display output in that state, so turning it off would black-screen the system.
When re-enabling the dGPU, a PCI bus rescan is triggered so it reappears without a reboot.
ASUS GPU MUX Choices: dGPU (Ultimate) / Optimus (Hybrid)
Switches the display MUX between dGPU-direct (Ultimate: lower latency, more battery drain) and Optimus hybrid mode, via gpu_mux_mode. Only shown on ASUS laptops with a MUX. Takes effect after a reboot. Refused while GPU Eco has the dGPU powered off, because the firmware rejects MUX changes in that state.
CCD Affinity Choices: All Cores / CCD1 Only / CCD2 Only
Pins user applications to one CCD using systemd (AllowedCPUs on user.slice). CCDs are detected from the CPU's L3 cache topology, so this only appears on dual-CCD CPUs. The classic use: on X3D chips, keep games on the V-Cache CCD. System services and the daemon itself are unaffected. "All Cores" removes the restriction.
Desktop CPUs use a different set of parameters. The editor shows different fields depending on whether your CPU is Amd_Desktop_Cpu or Amd_Apu.
CPU Temp Limit (--tctl-temp)
Range: 10 – 95 °C
Hard throttle temperature for the CPU. When the die temperature exceeds this, the CPU immediately reduces clocks. Default is typically 85 to 90 °C for desktop CPUs.
PPT Limit (--ppt-limit)
Range: 8 – 300 W
Package Power Tracking limit, the total power the CPU package is allowed to draw. This is the primary power limit on desktop CPUs.
TDC Limit (--tdc-limit)
Range: 8 – 900 A
Thermal Design Current, the sustained current limit.
EDC Limit (--edc-limit)
Range: 8 – 900 A
Electrical Design Current, the peak current limit.
Same as the APU CO section: All Core CO, iGPU CO and PBO Scalar. The descriptions above apply.
Same as the APU per-core CO section. CCD2 fields appear for dual-CCD parts like Ryzen 9.
Same parameters as the APU CPU Tuning, NV GPU and System sections. On desktop CPUs the OC tab is labeled OC and sits at position [5], NV GPU at [6] if nvidia-smi is present, and System at [7] when a power profile interface, ASUS WMI or a display backend is detected. (As on APUs, hidden sections shift the position numbers of the ones after them.)
Getting started
Using the app
Internals