Releases: OldJobobo/thpm
Release list
THPM 1.0.0rc24
THPM 1.0.0rc24 is now available
THPM rc24 completes the Quattro application-theme fallback audit and publishes retained certification for both fzf and Zellij alongside the ownership, restoration, and semantic palette repairs from rc23.
Install or upgrade the latest release
curl -fsSL https://raw.githubusercontent.com/OldJobobo/thpm/main/scripts/install-arch-release.sh | bashThe installer resolves the newest published GitHub release, verifies its source archive and checksum, builds the Arch package with makepkg, installs it through pacman, and completes THPM's per-user setup.
What’s new in rc24
Safer semantic application themes
GTK receives a complete generated semantic fallback when a theme does not provide authored GTK CSS. Fish and Superfile use corrected target-native color contracts, while fzf remains fully certified after complete automated, lifecycle, restoration, fresh-process, visual, and maintainer-signoff gates on Omarchy Quattro.
Typora remains an opt-in Experimental integration with generated screen colors, neutral print output, restorable file ownership, and change-sensitive restart reporting. Zellij is now Supported after exact merged-source parser, no-op, disable, user-edit, uninstall, restoration, restart-reporting, and real Dune/Last Call transition gates passed with retained evidence and maintainer signoff.
Obsidian Terminal recovery fails closed
THPM can restorably disable the Terminal community plugin's profile-level Follow Theme setting so its semantic xterm palette remains effective. Ownership records cover only true-to-false changes and preserve unrelated settings and later user edits.
Settings and private recovery paths reject traversal, malformed state, arbitrary targets, symlink leaves and ancestors, and unsafe relative candidates. Missing or malformed owned profiles, failed writes, uncertain atomic replacement, and incomplete rollback retain structured recovery state instead of falsely reporting successful cleanup.
Native ownership stays native
cliamp keeps its contrast-checked built-in or terminal-ANSI theme by default. THPM installs an authored override only when the theme explicitly opts in with # thpm:cliamp-use-native, and restores both file and selector state conservatively.
The uncertified SwayNC adapter is retired because its standalone generated file was not consumed by the active stylesheet. Guarded historical cleanup remains available.
Verification
The exact merged release tree passes 457 automated tests, release metadata validation, Python compilation, Ruff and ShellCheck static checks, wheel content and isolated-install smoke tests, Python 3.11 through 3.14 CI, and clean stable and VCS Arch package builds. Zellij certification PR #56 passed all 7 required checks and merged.
fzf and Zellij are Supported. Other active adapters remain visibly opt-in Experimental until their complete real-application certification records and maintainer signoff are retained.
This remains a release candidate. Please report application-theme ownership, restoration, migration, or visual compatibility issues.
THPM 1.0.0rc22
THPM 1.0.0rc22 is now available
THPM is built for Omarchy Quattro and targets Omarchy 4.x. RC22 is a browser-theming and reliability release for Zen, the graphical manager, menu updates, source rollback, Zed setup, and CLI discoverability.
Install or upgrade the latest release
curl -fsSL https://raw.githubusercontent.com/OldJobobo/thpm/main/scripts/install-arch-release.sh | bashThe installer resolves the newest published GitHub release, verifies its source archive and checksum, builds the Arch package with makepkg, installs it through pacman, and completes THPM's per-user setup.
What’s new in rc22
Zen follows the active Omarchy palette
The generated Zen fallback now styles modern browser chrome, including Zen palette variables, sidebar controls, navigation surfaces, the URL bar, and the app-content wrapper. Upgraded profiles migrate complete legacy Firefox and Zen hook import blocks while preserving unrelated user CSS.
Firefox and Zen now report a required restart after profile stylesheets change so new userChrome.css colors are not mistaken for a failed hook. Removing only an unused rendered source does not produce a false restart notice. The Zen path was also validated live against the current browser release and an active Omarchy palette.
The graphical manager and menu recover safely
The Omarchy menu now launches the graphical manager through a stable thpm ui open path. THPM can stage and switch stale QML, verify Shell discovery and readiness with bounded retries, and open the TUI as a recovery surface when the graphical path cannot load. An idempotent post-update hook keeps already-installed control panels synchronized.
Every user-scoped menu writer now shares one per-user lock. Surface changes validate the next JSONC document before committing, restore the previous menu when state persistence fails, and remain coherent across concurrent install, synchronization, repair, removal, and surface-selection operations.
Updates, Zed setup, and CLI help are more predictable
Source-update rollback now preserves relative, absolute, and dangling symlinks exactly. Snapshot ownership comes from the staged runtime's complete template registry, including obsolete outputs that the next version must remove.
Direct thpm zed setup preserves the user's existing zed-extra synchronization state instead of silently enabling ongoing synchronization. Normal enable operations through the CLI, TUI, and GUI still opt into that behavior explicitly.
Built-in help now documents every root command, nested action, positional argument, global option, and command-specific flag, making the complete CLI discoverable without external documentation.
Verification
The rc22 preparation passes the complete automated suite: 385 tests, Python 3.11 through 3.14, and clean stable and VCS Arch package builds.
This remains a release candidate. Please report Zen theming, graphical-manager recovery, menu synchronization, source rollback, Zed setup, or packaging issues.
THPM 1.0.0rc21
THPM 1.0.0rc21 is now available
THPM is built for Omarchy Quattro and targets Omarchy 4.x. RC21 is a focused reliability release for updates and desktop appearance diagnostics.
Install or upgrade the latest release
curl -fsSL https://raw.githubusercontent.com/OldJobobo/thpm/main/scripts/install-arch-release.sh | bashThe installer resolves the newest published GitHub release, verifies its source archive and checksum, builds the Arch package with makepkg, installs it through pacman, and completes THPM's per-user setup.
What’s new in rc21
Updates now synchronize every THPM surface
thpm update now completes the package upgrade, integration reconciliation, active-theme refresh, and graphical control-panel installation as one coordinated transaction. Users no longer need to run thpm ui install after every THPM-managed update.
The same behavior is available from the CLI, Textual TUI, and QML control panel. Interactive CLI updates stay in the current terminal. TUI, QML, and non-TTY human callers open a visible Omarchy terminal for package authorization and receive the final structured result through a private mode-0600 handoff file.
If the package update commits but theme or control-panel synchronization fails, THPM reports the committed partial failure honestly and provides the exact recovery command instead of presenting the operation as a total success or losing the result.
Doctor finds stale GTK and desktop appearance state
Doctor now detects unmanaged and stale GTK CSS—including recognizable Aether overrides—legacy gtk-application-prefer-dark-theme settings, GNOME color-scheme or GTK-theme drift, desktop-portal color-scheme drift, and failed native probes.
The checks remain read-only and ownership-safe. GTK compatibility findings stay attributed to gtk-css-compat, while GNOME and portal findings remain under native-gnome; THPM does not claim or rewrite configuration it does not own.
Safer verified release installation
The verified release-source installer can replace the unavoidable pre-tag stable-package checksum placeholder in its temporary build tree after validating the published archive digest. It rejects any non-placeholder checksum that disagrees with the verified release asset.
Verification
The rc21 preparation passes the complete automated suite: 355 tests, Python 3.11 through 3.14, and clean stable and VCS Arch package builds.
This remains a release candidate. Please report update handoff, graphical-manager synchronization, GTK diagnostics, or packaging issues.
THPM 1.0.0rc20
THPM 1.0.0rc20 is now available
THPM is built for Omarchy Quattro and targets Omarchy 4.x. RC20 is the final graduation candidate for THPM 1.0.
Install or upgrade the latest release
curl -fsSL https://raw.githubusercontent.com/OldJobobo/thpm/main/scripts/install-arch-release.sh | bashThe installer resolves the newest published GitHub release, verifies its source archive and checksum, builds the Arch package with makepkg, installs it through pacman, and completes THPM's per-user setup.
What’s new in rc20
Honest Experimental integration policy
Every active adapter that still lacks complete real-application certification is now visibly labeled Experimental and default-disabled for fresh state. Existing schema-1 enablement is grandfathered because older releases serialized inherited defaults and cannot distinguish them from explicit choices; grandfathering is not evidence of certification or opt-in. Cava remains separately protected by its durable consent marker.
The new integration support register records the reference Omarchy environment, evidence gaps, lifecycle disposition, repeatable certification procedure, and maintainer signoff required before an adapter can become Supported.
Safer lifecycle and recovery
Persisted state now fails closed when its version is unsupported or Discord variants conflict. Readiness failures are isolated per integration, legacy Discord intent is normalized safely, and fresh SwayNC state is disabled without revoking existing enablement.
Disable and uninstall operations now distinguish committed state from incomplete cleanup. They report structured residuals, retain recovery paths and source ownership metadata, preserve the runtime needed for retries, and provide an exact recovery command instead of silently claiming success.
Reproducible source and Arch packaging
Source installs and updates now use a complete dependency lock containing exact versions and SHA-256 hashes, require binary wheels, and validate the same graph on Python 3.11 through 3.14. Arch builds use /usr/bin/python to avoid mixing pacman modules with mise-managed environments.
CI now builds the exact pull-request checkout as stable and VCS packages in clean Arch environments—including before a release tag exists—validates generated .SRCINFO, smoke-tests installed packages, covers Python 3.14, and exposes one required aggregate result. New release gates verify version surfaces, tagged archive bytes and permissions, checksums, and both AUR package trees.
Compatibility fixes
- Preserve Shibumi Shell's comment-terminated JSONC menu blocks while installing or removing THPM entries.
- Render Heroic's semantic CSS variables from the active Omarchy palette.
Verification and soak
The rc20 preparation passes the complete automated suite: 339 tests. RC20 should soak for approximately 7–14 days before the accepted commit is promoted to stable 1.0.0.
Please report lifecycle, upgrade, uninstall, recovery, packaging, or application-integration issues during the soak period.
THPM 1.0.0rc19
THPM 1.0.0rc19 is now available
THPM is made for Omarchy Quattro and supports Omarchy 4.x.
Install or upgrade the latest release
curl -fsSL https://raw.githubusercontent.com/OldJobobo/thpm/main/scripts/install-arch-release.sh | bashThe installer resolves the newest published GitHub release, verifies its source archive and checksum, builds the Arch package with makepkg, installs it through pacman, and completes THPM's per-user setup.
What’s new in rc19
Obsidian Terminal theming is restored
THPM once again synchronizes the Obsidian Terminal community plugin’s xterm.js colors after Omarchy theme changes. This integration is separate from Omarchy’s native Obsidian application theme support.
Safe discovery and updates
The adapter discovers Terminal settings through Obsidian’s registered vaults, common vault locations, or explicit OBSIDIAN_VAULT_PATH and OBSIDIAN_TERMINAL_DATA_JSON overrides. It validates all discovered documents first, refuses malformed or symlinked settings, atomically updates files, and preserves every option outside terminalOptions.theme.
Truthful restart reporting
The running Terminal plugin does not reliably reload settings changed on disk. RC19 therefore reports Obsidian as restart-required after a palette change rather than falsely claiming that an open terminal repainted.
Verification
The rc19 release passes the complete automated suite: 315 tests.
This remains a release candidate. Please report any issues you find.
THPM 1.0.0rc18
THPM 1.0.0rc18 is now available
THPM is made for Omarchy Quattro and supports Omarchy 4.x.
Install or upgrade the latest release
curl -fsSL https://raw.githubusercontent.com/OldJobobo/thpm/main/scripts/install-arch-release.sh | bashThe installer now resolves the newest published GitHub release, including release candidates. It downloads the matching source archive and checksum, verifies them, builds the Arch package with makepkg, installs it through pacman, and completes THPM's per-user setup.
What’s new in rc18
Spotify setup now repairs itself
Once Spicetify has a current backup, enabling Spotify in THPM creates the missing Omarchy companion stylesheet, installs the generated color scheme, and selects current_theme = omarchy with color_scheme = Base. Doctor treats a different active Spicetify theme as repairable setup instead of leaving the integration unavailable. Existing custom user.css files remain untouched.
Cava is safer and explicitly opt-in
Cava setup now verifies version 0.10.6 or newer, safely selects and restores the managed theme, reloads only verified Cava processes, and offers transactional repair through thpm doctor cava --fix.
Better support diagnostics
thpm report [plugin] creates a bounded, privacy-preserving JSON support report with integration outcomes, durations, redacted configuration evidence, and recent operation history.
Persistent Pi sessions repaint correctly
The opt-in Pi compatibility integration emits a safe metadata-only reload event when Omarchy's generated Pi theme is current, allowing long-lived sessions using omarchy-system to repaint.
Verification
The rc18 release passes the complete automated suite: 312 tests and 58 subtests.
This remains a release candidate. Please report any issues you find.
THPM 1.0.0rc17
THPM 1.0.0rc17 is now available
THPM is made for Omarchy Quattro and supports Omarchy 4.x.
Temporary Arch installation while AUR submissions are unavailable
Download and inspect the temporary release-source installer, then run it as your normal user:
curl -fsSLO https://raw.githubusercontent.com/OldJobobo/thpm/main/scripts/install-arch-release.sh
less install-arch-release.sh
bash install-arch-release.sh 1.0.0rc17
rm install-arch-release.shIt downloads the rc17 GitHub source archive and checksum, verifies the source, builds the stable Arch package with makepkg, installs it through pacman, and completes THPM's per-user setup. Existing installations are upgraded through the same path without replacing pacman ownership.
What’s new since rc5
Stock Discord themes work again
The standard Discord integration now wraps THPM's own hosted Midnight base instead of setting a handful of obsolete Discord variables. Stock Omarchy themes such as Everforest receive a complete current Discord surface from their semantic palette. The vendored base is pinned, reviewed, and redistributed under Midnight's MIT License.
Application restarts are now under your control
The GUI, TUI, and CLI now share one restart policy. Choose automatic restarts for applications with a safe adapter, or keep applications open and receive one notification naming the pending restarts:
thpm config restart-policy automatic
thpm config restart-policy notifyClosed applications are never launched just to apply a theme. GTK applications and nwg-dock-hyprland remain notification-only because THPM cannot restart them safely without risking work or losing launch arguments.
Apply active theme now genuinely reapplies the current theme even when managed files are already current, including Spotify's refresh and policy-controlled restart behavior.
Spotify integration is repaired
THPM now writes Spicetify colors to the active omarchy theme location, checks backup and selected-theme readiness, refreshes generated files, and restarts only an already-running Spotify client when automatic restarts are enabled.
Obsolete integrations are retired safely
Vicinae, Windsurf, and Typora no longer appear as active integrations. Upgrade cleanup restores tracked displaced files and preserves unknown or user-modified content at their former destinations.
Inactive SwayNC no longer blocks theme hooks
Systems that still have swaync-client installed but use Omarchy Shell for notifications no longer wait on SwayNC's masked D-Bus service or fail the theme hook. THPM reloads SwayNC CSS only when its daemon is actually running.
Theme changes now show every integration result
Terminal-driven Omarchy theme changes now print a compact, color-aware line for every enabled THPM integration. Each result is clearly marked as applied, unchanged, skipped, or failed.
thpm run shows the same report without running integrations twice, and it now returns a failure when an integration genuinely fails instead of hiding the problem behind a successful theme refresh.
Zed themes now work through THPM
Turn on Zed authored theme in THPM and it will install and select the matching Zed theme for you. Your existing Zed settings are backed up first.
If you use Omazed, THPM leaves it available for themes that do not include their own Zed colors.
Commands no longer appear stuck
Enable and disable commands now show what they are doing instead of sitting at 0%. Prompts remain visible, failures no longer look like successful completions, and misspelled integration names suggest the closest valid name.
Safer theme switching
THPM is now better at cleaning up after itself. If you disable an integration or switch to a theme that does not support it, THPM restores what was there before whenever possible.
Your own changes are preserved instead of being overwritten or removed.
A cleaner graphical manager
The graphical manager now follows your Omarchy window style more closely, without the extra border and frame it had before.
Better terminal feedback
THPM commands now show clearer progress, results, changed files, and useful errors. Use --quiet when you want shorter output.
Smoother updates
Running thpm update now installs the available update directly. Package output and password prompts remain visible, theme colors are refreshed after the update, and THPM gives you a clear result when everything is finished. Long-running update steps now stop with an error instead of waiting forever.
Clearer app support
THPM now does a better job of telling you when an app is missing or when the current theme does not include support for an integration.
Testing still needed
If you use any of these apps, feedback would be especially helpful:
- Qt6ct
- nwg-dock-hyprland
- Qutebrowser
- Heroic Games Launcher
- Spicetify
Special thanks
Special thanks to our beta testers: @hancore, @Sodipops, @gnugent, and @signal//directive.
This remains a release candidate. Please report any issues you find.
THPM 1.0.0rc16
THPM 1.0.0rc16 is now available
THPM is made for Omarchy Quattro and supports Omarchy 4.x.
First installation
omarchy pkg aur add thpm
thpm installThe second command completes your user setup, including the theme hook and graphical manager.
Upgrade
omarchy update aur pkgs
thpm ui installThe second command deploys the latest graphical-manager files from the updated package.
What’s new since rc5
Application restarts are now under your control
The GUI, TUI, and CLI now share one restart policy. Choose automatic restarts for applications with a safe adapter, or keep applications open and receive one notification naming the pending restarts:
thpm config restart-policy automatic
thpm config restart-policy notifyClosed applications are never launched just to apply a theme. GTK applications and nwg-dock-hyprland remain notification-only because THPM cannot restart them safely without risking work or losing launch arguments.
Apply active theme now genuinely reapplies the current theme even when managed files are already current, including Spotify's refresh and policy-controlled restart behavior.
Spotify integration is repaired
THPM now writes Spicetify colors to the active omarchy theme location, checks backup and selected-theme readiness, refreshes generated files, and restarts only an already-running Spotify client when automatic restarts are enabled.
Obsolete integrations are retired safely
Vicinae, Windsurf, and Typora no longer appear as active integrations. Upgrade cleanup restores tracked displaced files and preserves unknown or user-modified content at their former destinations.
Inactive SwayNC no longer blocks theme hooks
Systems that still have swaync-client installed but use Omarchy Shell for notifications no longer wait on SwayNC's masked D-Bus service or fail the theme hook. THPM reloads SwayNC CSS only when its daemon is actually running.
Theme changes now show every integration result
Terminal-driven Omarchy theme changes now print a compact, color-aware line for every enabled THPM integration. Each result is clearly marked as applied, unchanged, skipped, or failed.
thpm run shows the same report without running integrations twice, and it now returns a failure when an integration genuinely fails instead of hiding the problem behind a successful theme refresh.
Zed themes now work through THPM
Turn on Zed authored theme in THPM and it will install and select the matching Zed theme for you. Your existing Zed settings are backed up first.
If you use Omazed, THPM leaves it available for themes that do not include their own Zed colors.
Commands no longer appear stuck
Enable and disable commands now show what they are doing instead of sitting at 0%. Prompts remain visible, failures no longer look like successful completions, and misspelled integration names suggest the closest valid name.
Safer theme switching
THPM is now better at cleaning up after itself. If you disable an integration or switch to a theme that does not support it, THPM restores what was there before whenever possible.
Your own changes are preserved instead of being overwritten or removed.
A cleaner graphical manager
The graphical manager now follows your Omarchy window style more closely, without the extra border and frame it had before.
Better terminal feedback
THPM commands now show clearer progress, results, changed files, and useful errors. Use --quiet when you want shorter output.
Smoother updates
Running thpm update now installs the available update directly. Package output and password prompts remain visible, theme colors are refreshed after the update, and THPM gives you a clear result when everything is finished. Long-running update steps now stop with an error instead of waiting forever.
Clearer app support
THPM now does a better job of telling you when an app is missing or when the current theme does not include support for an integration.
Testing still needed
If you use any of these apps, feedback would be especially helpful:
- Qt6ct
- nwg-dock-hyprland
- Qutebrowser
- Heroic Games Launcher
- Spicetify
Special thanks
Special thanks to our beta testers: @hancore, @Sodipops, @gnugent, and @signal//directive.
This remains a release candidate. Please report any issues you find.
THPM 1.0.0rc15
THPM 1.0.0rc15 is now available
THPM is made for Omarchy Quattro and supports Omarchy 4.x.
First installation
omarchy pkg aur add thpm
thpm installThe second command completes your user setup, including the theme hook and graphical manager.
Upgrade
omarchy update aur pkgs
thpm ui installThe second command deploys the latest graphical-manager files from the updated package.
What’s new since rc5
Theme changes now show every integration result
Terminal-driven Omarchy theme changes now print a compact, color-aware line for every enabled THPM integration. Each result is clearly marked as applied, unchanged, skipped, or failed.
thpm run shows the same report without running integrations twice, and it now returns a failure when an integration genuinely fails instead of hiding the problem behind a successful theme refresh.
Zed themes now work through THPM
Turn on Zed authored theme in THPM and it will install and select the matching Zed theme for you. Your existing Zed settings are backed up first.
If you use Omazed, THPM leaves it available for themes that do not include their own Zed colors.
Commands no longer appear stuck
Enable and disable commands now show what they are doing instead of sitting at 0%. Prompts remain visible, failures no longer look like successful completions, and misspelled integration names suggest the closest valid name.
Safer theme switching
THPM is now better at cleaning up after itself. If you disable an integration or switch to a theme that does not support it, THPM restores what was there before whenever possible.
Your own changes are preserved instead of being overwritten or removed.
A cleaner graphical manager
The graphical manager now follows your Omarchy window style more closely, without the extra border and frame it had before.
Better terminal feedback
THPM commands now show clearer progress, results, changed files, and useful errors. Use --quiet when you want shorter output.
Smoother updates
Running thpm update now installs the available update directly. Package output and password prompts remain visible, theme colors are refreshed after the update, and THPM gives you a clear result when everything is finished. Long-running update steps now stop with an error instead of waiting forever.
Clearer app support
THPM now does a better job of telling you when an app is missing or when the current theme does not include support for an integration.
Testing still needed
If you use any of these apps, feedback would be especially helpful:
- Qt6ct
- Vicinae
- nwg-dock-hyprland
- Windsurf
- Qutebrowser
- Heroic Games Launcher
- Spicetify
Special thanks
Special thanks to our beta testers: @hancore, @Sodipops, @gnugent, and @signal//directive.
This remains a release candidate. Please report any issues you find.
THPM 1.0.0rc14
THPM 1.0.0rc14 is now available
THPM is made for Omarchy Quattro and supports Omarchy 4.x.
First installation
omarchy pkg aur add thpm
thpm installThe second command completes your user setup, including the theme hook and graphical manager.
Upgrade
omarchy update aur pkgs
thpm ui installThe second command deploys the latest graphical-manager files from the updated package.
What’s new since rc5
Zed themes now work through THPM
Turn on Zed authored theme in THPM and it will install and select the matching Zed theme for you. Your existing Zed settings are backed up first.
If you use Omazed, THPM leaves it available for themes that do not include their own Zed colors.
Commands no longer appear stuck
Enable and disable commands now show what they are doing instead of sitting at 0%. Prompts remain visible, failures no longer look like successful completions, and misspelled integration names suggest the closest valid name.
Safer theme switching
THPM is now better at cleaning up after itself. If you disable an integration or switch to a theme that does not support it, THPM restores what was there before whenever possible.
Your own changes are preserved instead of being overwritten or removed.
A cleaner graphical manager
The graphical manager now follows your Omarchy window style more closely, without the extra border and frame it had before.
Better terminal feedback
THPM commands now show clearer progress, results, changed files, and useful errors. Use --quiet when you want shorter output.
Smoother updates
Running thpm update now installs the available update directly. Package output and password prompts remain visible, theme colors are refreshed after the update, and THPM gives you a clear result when everything is finished. Long-running update steps now stop with an error instead of waiting forever.
Clearer app support
THPM now does a better job of telling you when an app is missing or when the current theme does not include support for an integration.
Testing still needed
If you use any of these apps, feedback would be especially helpful:
- Qt6ct
- Vicinae
- nwg-dock-hyprland
- Windsurf
- Qutebrowser
- Heroic Games Launcher
- Spicetify
Special thanks
Special thanks to our beta testers: @hancore, @Sodipops, @gnugent, and @signal//directive.
This remains a release candidate. Please report any issues you find.