Releases: HorizonUnix/UXTU4Unix
Releases · HorizonUnix/UXTU4Unix
v0.5.21
- Resolve issue #23 by implementing a robust search path for the
dmidecodebinary (_find_dmidecode) and storing its absolute path to preventPATHresolution errors withinsudosubshells (thx @kstutz01). - Minor tweaks to
about.pyandpower.py. - Always
chmod +xbinaries when starting. - Default sleep time is now
3s instead of30s.
v0.5.2
What's New?
- Cleaned up and refined most of the codebase after the huge refactor from
v0.5.0
v0.5.1
What's New?
General
- Removed unused
SoftwareUpdate.pystandalone updater from theAssetsfolder - Removed unused fields from
config.toml:Assets,voltage,max speed,
current speed,core count,core enabled, andthread count - Implemented a new method for handling sudo and non-sudo command execution
- Implemented binary validation for
ryzenadjanddmidecodeat startup - Implemented a new method to retrieve and display detailed hardware information
Linux
- Added run-on-startup support via XDG Autostart with automatic config path registration
- Fixed an issue where
updater.pycould fail to relaunch the script after
an update
macOS
- Implemented a new method to re-register Login Items on startup

v0.5.0
What's New?
Architecture
The entire codebase has been rewritten from a single monolithic script into a proper Python package. UXTU4Unix.py is now a thin entry point; all logic lives in focused modules under Assets/Modules/.
UXTU4Unix/
├── UXTU4Unix.py
└── Assets/
├── SoftwareUpdate.py
├── Darwin/ ryzenadj, dmidecode
├── Linux/ ryzenadj
├── Presets/
└── Modules/
├── config.py central constants, paths, config singleton
├── hardware.py CPU detection, codename, NVRAM check
├── power.py preset loading, ryzenadj, dynamic mode
├── settings.py all settings sub-menus
├── setup.py first-run wizard, integrity check
├── ui.py banner, clear, prompts
├── updater.py version check, self-update
├── installer.py macOS EFI/plist dependency installer
├── about.py about screen
└── secure_password.py keyring wrapper
New features
- Dynamic Mode AC detection (Linux) now correctly reads all AC adapter types (
Mains,USB,USB_C,USB_PD,USB_PD_DRP,USB_C_DRP) and falls back gracefully on desktops with no battery - previously always returnedExtremeon Linux. - Login Item path validation (macOS) - stale Login Item entries (wrong path, moved app, leftover from Trash) are detected and removed automatically before re-registering the correct path.
Bug fixes
- Dynamic Mode preset args - in reapply loop, Dynamic Mode now correctly fetches the actual preset arguments for
Extreme/Ecofrom the preset table instead of passing the mode name string as ryzenadj args.
Code quality
- Replaced long
if/elifchains in codename detection withmatch/case(Python 3.10+). _toggle_menu()helper insettings.pyeliminates six copy-pasted enable/disable sub-menus.- Config access centralized,
config.pyowns all paths, constants, and theConfigParsersingleton; no module holds its owncfgobject. SoftwareUpdate.pyis now standalone (callable directly) and also used internally byupdater.py, eliminating duplicated zip/swap logic.
Notes
- When updating from
v0.4.x, you need to install the Python librarykeyringbefore performing the update! - The updater will not remove the old config file from
v0.4.x, so it is recommended to reset all settings for the best experience.
v0.4.2
What's New?
- Rework how dynamic mode works on Linux
- Update detection for new CPU models and presets from UXTU
- Resize the window to 80x35
v0.4.1
- Update
UXTU4Unix.commandfor macOS
v0.4.0
Starting from v0.4.0, UXTU4Unix has been completely rewritten.
What's New?
- Merged
LinuxandmacOSbranches into a single main branch that supports both operating systems in the same file. - Removed
logging.
Linux
- Added support for RyzenAdj version
0.17.0.
Note
- The
v0.4.xseries will be the last version to support macOS. - Future development will focus on extending Linux support.
- Existed config file from
v0.3.xwill be reset due to incompatibility. - Don't use Updater from
v0.3.xbecause it may cause incompatibility issues betweenv0.3.xandv0.4.xso please access download the latest version from GitHub.

v0.3.3
General
- Updated CPU stepping code detection (based on Family.cs)
- Updated CPU Presets (based on JamesCJ60/Universal-x86-Tuning-Utility@3a4a5d5 and JamesCJ60/Universal-x86-Tuning-Utility@f58c637)
- Updated RyzenAdj to latest commit FlyGoat/RyzenAdj@8b0b7b9
Note
UXTU4Unix has entered the slow-development stage as UXTU is now planning to support the Linux platform. Since Hackintosh is also approaching end-of-life, this project will be deprecated once UXTU officially supports Linux.
v0.3.2
General
- Support ryzenAdj v0.16.0
- Support macOS Sequoia
v0.3.1
General
- Add
StrixPointdetection CPU model - Refactor code
- Support some Linux distros: AlmaLinux, Alpine, Arch, CentOS, Mint, openSUSE, Pop!_OS, RHEL, Rocky, Stream, SUSE
- Fix DIR logic
- Fix
Custommode - Fix some bugs
macOS
- Extend Terminal window when called by
python3command instead of.commandfile