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.
- Live STAPM power readout directly on the bar button (
- ⚡ 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
ryzenadjcommand 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
systemctllifecycle commands (enable --now,disable --now,is-enabled,start,stop,restartforryzenadj-apply.service). - Permits exact file sync for
/etc/ryzenadj/settings.json. - Permits exact AMDGPU sysfs clock overrides for supported cards.
- Grants non-interactive access to
- Backend Service Unit (
/etc/systemd/system/ryzenadj-apply.service):- Runs
/usr/lib/ryzenadj/apply_saved.pyon boot to apply saved power and curve-optimizer limits.
- Runs
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.