Skip to content

Releases: HorizonUnix/UXTU4Unix

v0.5.21

30 Apr 13:41

Choose a tag to compare

  • Resolve issue #23 by implementing a robust search path for the dmidecode binary (_find_dmidecode) and storing its absolute path to prevent PATH resolution errors within sudo subshells (thx @kstutz01).
  • Minor tweaks to about.py and power.py.
  • Always chmod +x binaries when starting.
  • Default sleep time is now 3s instead of 30s.

v0.5.2

28 Apr 04:26

Choose a tag to compare

What's New?

  • Cleaned up and refined most of the codebase after the huge refactor from v0.5.0

v0.5.1

27 Apr 11:03

Choose a tag to compare

What's New?

General

  • Removed unused SoftwareUpdate.py standalone updater from the Assets folder
  • Removed unused fields from config.toml: Assets, voltage, max speed,
    current speed, core count, core enabled, and thread count
  • Implemented a new method for handling sudo and non-sudo command execution
  • Implemented binary validation for ryzenadj and dmidecode at 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.py could fail to relaunch the script after
    an update

macOS

  • Implemented a new method to re-register Login Items on startup
image

v0.5.0

26 Apr 17:53

Choose a tag to compare

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 returned Extreme on 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/Eco from the preset table instead of passing the mode name string as ryzenadj args.

Code quality

  • Replaced long if/elif chains in codename detection with match/case (Python 3.10+).
  • _toggle_menu() helper in settings.py eliminates six copy-pasted enable/disable sub-menus.
  • Config access centralized, config.py owns all paths, constants, and the ConfigParser singleton; no module holds its own cfg object.
  • SoftwareUpdate.py is now standalone (callable directly) and also used internally by updater.py, eliminating duplicated zip/swap logic.

Notes

  • When updating from v0.4.x, you need to install the Python library keyring before 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

25 Apr 17:13

Choose a tag to compare

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

16 Dec 15:24

Choose a tag to compare

  • Update UXTU4Unix.command for macOS

v0.4.0

14 Jul 16:25
86e5839

Choose a tag to compare

Starting from v0.4.0, UXTU4Unix has been completely rewritten.

What's New?

  • Merged Linux and macOS branches 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.x series will be the last version to support macOS.
  • Future development will focus on extending Linux support.
  • Existed config file from v0.3.x will be reset due to incompatibility.
  • Don't use Updater from v0.3.x because it may cause incompatibility issues between v0.3.x and v0.4.x so please access download the latest version from GitHub.
Screenshot 2025-07-14 at 23 24 30

v0.3.3

14 May 13:22

Choose a tag to compare

General

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

19 Oct 04:58

Choose a tag to compare

General

  • Support ryzenAdj v0.16.0
  • Support macOS Sequoia

v0.3.1

01 Aug 09:17
5e5854d

Choose a tag to compare

General

  • Add StrixPoint detection CPU model
  • Refactor code
  • Support some Linux distros: AlmaLinux, Alpine, Arch, CentOS, Mint, openSUSE, Pop!_OS, RHEL, Rocky, Stream, SUSE
  • Fix DIR logic
  • Fix Custom mode
  • Fix some bugs

macOS

  • Extend Terminal window when called by python3 command instead of .command file