Skip to content

queenkjuul/ryzen-control-center

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

62 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ryzen Control Center

build check test

Ryzen Control Center is a GUI frontend for RyzenAdj on Linux (and maybe Windows, eventually).

Screenshot of Ryzen Control Center

The app is focused on being friendly and beautiful before being lean and mean. Thus, it is written in Electron. Yeah, sue me. I'm a web developer. All I have is this TypeScript-shaped hammer.

As I am likely to continue owning my Ryzen 5000 series laptop for quite some time, I do have loose long-term plans for a D-Bus daemon, ryzend (written in Go), which could be controlled by a small python ayatana tray client instead of a colossal hulking Electron app (that you have to admit, is at least pretty)

About

Inspired by the now-deprecated Ryzen Controller, whose successor "Universal x86 Tuning Utility" is so universal that it does not run on Linux, and whose website commits the mortal sin of autoplaying a video with sound below the fold, and thus will not be mentioned again.

Built with Electron, Vite, React, Tailwind, and DaisyUI.

Development is focused on compatibility with latest Ubuntu, but the code is mostly platform-independent so a Windows version would be very little work (CI builds Windows binaries that run but are not actually wired to ryzenadj binaries)

Features

rice, rice, baby

Generate custom themes with the DaisyUI Theme Generator and simply paste them into the app. Use any DaisyUI theme you can find on the internet just as easily. Or, pick from any of the dozens of built-in themes.

more features probably coming eventually.

themes included in ryzen control center

Roadmap

MVP

  • per-interaction admin authentication (sudo/UAC) for getting and setting ryzenadj
  • tray icon for showing current config and setting values*
  • main window for editing current config and setting tray options**
  • app runs with only tray icon after main window is closed
  • settings persistence
  • snap and AppImage packaging

*Tray only allows setting PowerSave/MaxPerformance.

**Tray does not actually expose any options for the main window to set, so, technically accurate (the best kind).

Planned

  • Full config presets
  • In-app documentation for each parameter
  • Full light and dark mode support
  • .deb packaging

Stretch

  • ryzenadj snap packaging
  • ryzenadjd systemd service to run with admin privileges (allow non-root settings adjustment)
  • Integration with other power monitoring (e.g. show current battery draw, powertop interaction)
  • asusctl/ROG Control Center integration
  • Ubuntu PPA packaging
  • .rpm packaging

Usage

It should be straightforward. For details on various parameters, see the RyzenAdj docs.

Log Level

By default, the "production" app logs at the INFO (3) log level. In development, it defaults to SILLY (0) (all messages).

To override the defaults, there are two flags:

  • DEBUG_LOG=true - sets log level to DEBUG (2)

  • LOG_LEVEL=x - sets log level to x, where x is a number 0-6:

    • 0: silly, 1: trace, 2: debug, 3: info, 4: warn, 5: error, 6: fatal
  • TODO: Allow toggling DEBUG_LOG via the UI

Ubuntu

Due to an incompatibility between Ubuntu 25+, Node.js, and polkit, sudo operations called from a Node process can hang for a long time.

The issue is being tracked on the polkit github: #572

This can be worked around by setting a lower ulimit -Sn or ulimit -Hn value. The app will do this automatically if it detects it is running on Ubuntu 25+, or if either the ULIMIT_S or ULIMIT_H environment variables are set. These variables set the threshold value for each limit. If the system limit is above the threshold value, it will be clamped to the provided value. If the system value is below the threshold, it is not adjusted.

My system works fine with both clamping values set to 524288, so that's the default. Values can be as low as 1024.

SETTING VERY LOW OR VERY HIGH VALUES MAY CAUSE SYSTEM PROBLEMS. I TAKE NO RESPONSIBILITY FOR YOUR SYSTEM. USE THIS SOFTWARE AT YOUR OWN RISK

Development

Project Setup

Install

$ npm install

Development

$ npm run dev

Build

# For windows
$ npm run build:win

# For Linux
$ npm run build:linux

Code of Conduct

be nice, stay woke; be gay, do crime; live long, and prosper.

License

(C) 2025 queenkjuul

Distributed under the terms of the GNU General Public License Version 3 (GNU GPL v3)

AMD, Ryzen, and the AMD logo are trademarks of Advanced Micro Devices, Inc.; this project claims no rights to these trademarks.

About

RyzenAdj GUI with tray icon controls in React+Electron

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published