-
-
Notifications
You must be signed in to change notification settings - Fork 6
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
[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 = 5000The app always rewrites the file in this section order, so don't worry if your own copy looks different at first.
| 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.
| 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 everytimeseconds. Useful for keeping limits active on systems that reset them. - When
reapply = 1and an automation slot is set, the loop also handles switching between AC and battery presets automatically.
| 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
onacoronbatteryis 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. -
onresumeis independent of the AC/battery slots: the resume preset is applied on every wake event regardless.
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.
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
cputo a known model string that matches your hardware family.
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
uxtu4linuxGetting started
Using the app
Internals