Skip to content

About

AMD Ryzen hardware telemetry, tuning sliders, quick presets, and power profiles for the Omarchy status bar

Resources

Stars

2 stars

Watchers

0 watching

Forks

Latest commit

 

History

15 Commits

Folders and files

Repository files navigation

RyzenAdj Omarchy Shell Plugin

An Omarchy status bar widget and popout tuning panel for AMD Ryzen mobile and desktop processors powered by ryzenadj.

Exposes focused hardware telemetry, CPU-supported power/clock/thermal/current tuning inputs, quick power presets, custom profile management, and boot persistence controls directly from the Omarchy status bar.


Features

  • Live Telemetry & Status Bar:
    • Live STAPM power readout directly on the bar button (󰍛 7.2 W).
    • Hero dashboard with only the four live metrics: STAPM power, core temperature, CPU clock, and iGPU clock.
    • Dynamically measured bar slot width so text never clips or overlaps neighboring icons.
  • ⚡ Quick Presets:
    • 1-click Power Saving and Max Performance presets.
    • Right-click the status bar icon to toggle between presets instantly.
  • ⚙️ Hardware Tuning:
    • Category tabs for Power, Clocks, Current, Thermal, Undervolt, and Timing.
    • Dynamic discovery of parameters supported by the detected CPU; unsupported controls are hidden.
    • Direct numeric entry with displayed units such as W, A, MHz, and °C, converted automatically to the native ryzenadj command values.
    • Per-parameter Reset controls remove a value from the applied startup configuration.
  • 🔖 Custom Profiles:
    • Save current tuning parameters to named profiles.
    • 1-click apply and delete.
    • Automatic profile switching on AC connection and Battery discharge.
  • 🛠️ Boot Persistence & Preferences:
    • Toggle startup persistence systemd service directly from the GUI.
    • Background Persistence Guard to counteract firmware power limit resets.
    • Configurable polling intervals (1s, 2s, 3s, 5s, 10s) and bar display toggles.

Tuning workflow

At startup, the backend probes ryzenadj and exposes only the parameters supported by the detected CPU. The tuning view contains numeric fields rather than sliders or live target badges.

  • Enter values in the displayed unit: W for power, A for current, MHz for clocks, and °C for temperatures.
  • Press Apply to Hardware to validate the values, convert them to RyzenAdj's native command units, apply them, and save them for persistence.
  • Press Reset beside a parameter to remove it from the next apply and from the saved startup configuration.
  • Built-in presets and custom profiles are separate from tuning drafts; applying a preset clears the pending custom draft.

Installation

Add via Omarchy Plugin Manager

omarchy plugin add https://github.com/rishadtharayil/omarchy-plugin-ryzenadj.git --enable

Manual Installation

Clone into your user plugins directory:

git clone https://github.com/rishadtharayil/omarchy-plugin-ryzenadj.git ~/.config/omarchy/plugins/foresight.ryzenadj
omarchy plugin enable foresight.ryzenadj right

For an existing checkout, copy or update the plugin directory and restart the Omarchy shell so the QML changes are loaded:

omarchy plugin enable foresight.ryzenadj right
omarchy-restart-shell

Privileges & Service Setup

The plugin uses sudo -n for non-interactive hardware register writes and systemd lifecycle operations.

1. Requirements

  • ryzenadj:
    omarchy pkg aur add ryzenadj

2. Sudoers & Persistence Service Setup

Run the included installation script to install the strict sudoers policy, backend runner, and systemd service:

sudo ~/.config/omarchy/plugins/foresight.ryzenadj/systemd/install-service.sh

This installs:

  • Strict Sudoers Policy (/etc/sudoers.d/ryzenadj):
    • Grants non-interactive access to /usr/bin/ryzenadj.
    • Permits exact systemctl lifecycle commands (enable --now, disable --now, is-enabled, start, stop, restart for ryzenadj-apply.service).
    • Permits exact file sync for /etc/ryzenadj/settings.json.
    • Permits exact AMDGPU sysfs clock overrides for supported cards.
  • Backend Service Unit (/etc/systemd/system/ryzenadj-apply.service):
    • Runs /usr/lib/ryzenadj/apply_saved.py on boot to apply saved power and curve-optimizer limits.

Removal & Uninstallation

To cleanly remove the plugin:

# 1. Disable and remove the shell plugin
omarchy plugin remove foresight.ryzenadj --yes

# 2. (Optional) Uninstall systemd persistence service and sudoers rules
sudo ~/.config/omarchy/plugins/foresight.ryzenadj/systemd/uninstall-service.sh

IPC Commands

Control the widget from scripts, Hyprland keybindings, or terminal:

# Toggle open / close panel
omarchy-shell foresight.ryzenadj toggle

# Apply presets
omarchy-shell foresight.ryzenadj applyPreset power-saving
omarchy-shell foresight.ryzenadj applyPreset max-performance

# Apply named profile
omarchy-shell foresight.ryzenadj applyProfile <profile_name>

# Configure polling interval (in milliseconds)
omarchy-shell foresight.ryzenadj setPollingInterval 5000

# Toggle live power wattage on the bar
omarchy-shell foresight.ryzenadj toggleLivePower

# Toggle active profile tag on the bar
omarchy-shell foresight.ryzenadj toggleActiveProfile

# Query live telemetry JSON
omarchy-shell foresight.ryzenadj status

Validation & Testing

omarchy plugin validate ~/.config/omarchy/plugins/foresight.ryzenadj
node --test ~/.config/omarchy/plugins/foresight.ryzenadj/tests/model.test.js
python3 -m unittest discover -s ~/.config/omarchy/plugins/foresight.ryzenadj/tests -p '*test.py'

License

MIT License. Copyright (c) 2026.

About

AMD Ryzen hardware telemetry, tuning sliders, quick presets, and power profiles for the Omarchy status bar

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages