- Rust 100%
| acg | remove unnecessary braces | |
| acg-common | added some traits to the structs | |
| acg-daemon | removed unnecessary ctrl handling | |
| .gitignore | init | |
| acg.conf.example | init | |
| acg.service | init | |
| Cargo.lock | added removal of old sockets in case of crash | |
| Cargo.toml | init | |
| LICENSE | init | |
| README.md | changed todo | |
acg
⚠️ WARNING ⚠️
do NOT use this unless you know what you're doing, it has barely any functionality and isn't tested at all
the config and cli aren't stable yet, things might change so be ready for that
acg stands for auto cpu governor - it automatically sets the cpu governor based on the system load
it does more but that's the first thing I implemented and I like short names
this is a clone of auto-cpufreq
why?
I'm on arch (btw) so some python packages get installed through the AUR and some through pip, which creates conflicts
maybe because I did something wrong or maybe not but one day auto-cpufreq became a victim of that, it didn't start and I had to manually delete the python files
maybe it was my fault, maybe it wasn't, what matters is that's part of what got me started on this
the other part was getting interested in the kernel and lower level shit so this was an excuse to learn some of that
installing
I've yet to make official packages so right now you need to do it manually
first the usual - git clone, cargo build --release
then copy the binaries (acg and acg-daemon) to /usr/bin, copy acg.conf.example to /etc/acg.conf
if you use systemd copy the service file to /etc/systemd/system, then you can start/enable/whatever the acg.service just like any other systemd service
roadmap
these aren't gonna be implemented in any specific order
- official packaging
- make every core configurable by itself
- implement all of auto-cpufreq's features:
- a way to get stats back from the daemon
- settings for each governor (only performance right now Xd)
- ncurses interface for the statistics
- logs in the daemon
- better error messages (human-panic seems nice)
- support other init systems
- configurable settings (when to enable turbo, what frequencies to set, what governor to use, etc.)
- stabilize the api between the daemon and cli and the config file for 1.0