Skip to content

Configuration

Le Khanh Binh edited this page Jun 29, 2026 · 4 revisions

Configuration

UXTU4Linux stores its settings in Assets/config.ini, created automatically on first run.

Full path on a standard install:

/opt/uxtu4linux/src/Assets/config.ini

Example

[User]
mode = Balance

[Settings]
time = 3
reapply = 0
applyonstart = 1
autostartadaptive = 0
softwareupdate = 1
debug = 0
defaulttab = home

[Automations]
onac =
onbattery =
onresume =

[Adaptive]
preset =
interval = 2

[Info]
cpu = AMD Ryzen 5 7535HS with Radeon Graphics
signature = Family 25, Model 68, Stepping 1
architecture = Zen 3 - Zen 4
family = Rembrandt
type = Amd_Apu
variant =
maxclock = 5000

The app always rewrites the file in this section order, so don't worry if your own copy looks different at first.


[User]

Key Type Description
mode string Preset to apply. Built-in name (Eco, Balance, Performance, Extreme) or a custom preset name (stored with _custom_preset suffix — the app manages this automatically)

Built-in preset names (availability depends on your CPU family):

Preset Description
Eco Low power, quiet, cool, battery-friendly
Balance Moderate power, good for daily use
Performance Higher power limits for sustained workloads
Extreme Maximum power limits, highest performance

Custom presets saved in the editor are stored in custom.json and can be selected by name in the app. See Custom Presets.


[Settings]

Key Default Values Description
time 3 integer (seconds) How often the daemon re-applies the preset when reapply is on
reapply 0 0 / 1 Keep re-applying the preset on a timer
applyonstart 0 0 / 1 Daemon applies the saved preset when the systemd service starts
autostartadaptive 0 0 / 1 Daemon starts the saved Adaptive Mode preset when the service starts. See Adaptive Mode
softwareupdate 1 0 / 1 Check GitHub for updates on every launch
debug 0 0 / 1 Show build info in the header and verbose SMU apply output in daemon logs
defaulttab home tab id Which tab the app opens on. One of home, power, custom, adaptive, automations, hardware, status, settings. Set it from the Settings tab

How these interact:

  • applyonstart: controls whether the daemon applies a preset when it first starts (e.g. after boot). The TUI always applies the selected preset when you open it.
  • reapply: runs a background loop that re-applies the preset every time seconds. Useful for keeping limits active on systems that reset them.
  • When reapply = 1 and an automation slot is set, the loop also handles switching between AC and battery presets automatically.

[Automations]

Key Default Values Description
onac (empty) preset name Preset to apply when the charger is plugged in. Shown as Preset on Battery Charge in the Automations tab. Leave empty to keep whatever is active
onbattery (empty) preset name Preset to apply when running on battery. Shown as Preset on Battery Discharge in the Automations tab. Leave empty to keep whatever is active
onresume (empty) preset name Preset to apply once each time the system wakes from sleep, suspend or hibernation. Shown as Preset on System Resume

Notes:

  • There is no on/off switch. Automation is active whenever onac or onbattery is set; clear both to turn AC/battery switching off.
  • Preset names here follow the same rules as [User] mode: built-in names or bare custom preset names (without _custom_preset).
  • AC/battery switching works even with reapply = 0: a lightweight background thread watches for power state changes and applies the matching preset on each transition. A slot left empty is skipped, so that power state keeps whatever is already applied.
  • onresume is independent of the AC/battery slots: the resume preset is applied on every wake event regardless.

[Adaptive]

Settings for Adaptive Mode. The preset values themselves are stored separately in adaptive.json.

Key Default Values Description
preset (empty) preset name The selected adaptive preset
interval 2 1-8 (seconds) Polling rate - how often Adaptive Mode reads sensors and adjusts

To start Adaptive Mode automatically on boot, turn on autostartadaptive under [Settings]. Adaptive Mode also survives a daemon restart (a crash, or Restart from the Settings tab) on its own, but not a reboot - the daemon tracks "was running" with a marker in /run, which is cleared when the machine reboots.


[Info]

Populated automatically by dmidecode during first-run hardware detection. Only edit manually if detection produced wrong results.

Key Description
cpu Full CPU name string from dmidecode
signature CPUID signature, Family, Model, Stepping
architecture Zen generation string, e.g. Zen 3 - Zen 4
family Codename, e.g. Rembrandt, PhoenixPoint, StrixPoint
type Amd_Apu, Amd_Desktop_Cpu, or Intel
variant Device-specific variant identifier for premade presets, e.g. AMDFrameworkLaptop16Ryzen7040. Set automatically during hardware detection. Leave empty (variant = ) to ignore the variant preset and force CPU-family-based detection instead
maxclock Highest CPU clock reported by dmidecode, rounded up. Used as the fixed top of the CPU Clock graph on the Home tab. Filled in automatically

Tip

Framework Laptop users: if you prefer the generic CPU-family preset over the Framework-specific one, set variant = in config.ini. The app will fall back to standard APU detection for your processor family.

  • If your CPU shows an unrecognised codename, set cpu to a known model string that matches your hardware family.

Resetting

From inside the app: open the Settings tab (7) → Reset all settings. This wipes config.ini, custom.json and adaptive.json, then re-runs the setup wizard.

Manually:

rm /opt/uxtu4linux/src/Assets/config.ini
uxtu4linux

Clone this wiki locally