From What does this started ?
During the summer 2022, I've worked in a restaurant to buy myself a laptop, the laptop was a Tuxedo Aura 15 Gen 2, it is a great laptop, good build quality, good battery life (back then), decent screen, but, its only weak point is that it has a R7 5700U, theses chips are locked to a low TDP (25 W in my case), and this is hitting performance in games.
To solve that, i used ryzenadj, wich, works great but, when i plug or unplug the laptop, the tdp would go back to default, so, i started using a watch -n 5
command, it worked, but i was not user friendly, thi is where i starde to develop an app in python that has a GUI to handle all the dirty commands for me.
How does the app works
This app is made in 3 parts, a launcher script, a daemon and a GUI, the daemon is launched with root rights and is connected to the GUI that has not root rights
If you close the GUI, it can continue to run in background thanks to that multi process structure.
Instead of writing the values to registers every x seconds, it will just read the actual limits from them and if they change, wait a bit and, write the user defined values, this can prevent crashes.
For the gui i use libadwaita that uses GTK.
Where to find it
Please not that there can be some security issues in this app (the encryption key generation function for the GUI daemon communication is not that good) and i will no longer work on it.
https://github.com/fnyaker/RyzenTuningUtility/tree/master