#cli #usage #switch #battery-saving #turbo-boost #kernel-governor

app racf

Tool that dynamicaly switches turbo boost and kernel governor based on usage and charger state

17 stable releases

1.6.6 May 16, 2023
1.6.5 Mar 19, 2023

#512 in Command line utilities

Download history 42/week @ 2024-02-22 95/week @ 2024-02-29 1/week @ 2024-03-07

138 downloads per month

GPL-3.0 license

26KB
394 lines

racf - auto cpu frequencer

crates io downloads license dependency status loc CodeBerg

Simple and configurable tool that dynamically switches turbo boost and the kernel governor in order to have a corresponding relationship between the computer's capabilities and the actual usage.

Another important variable is whether the machine is charging or using the battery, depending on this state racf will use the corresponding configuration profile.

This is intended mainly for battery based machines like laptops. Desktops could benefit, I haven't really thought about it that much (e.g. those systems would only be on the '[ac]' profile).

A rewrite of sacf in rust.

Reference: cpufreq

Usage

racf --help

Note A very helpful flag is --run-once which, runs once; and thus no need for racf to stay in the background. This way you can manually tweak your system with the help of racf whenever you actually need it (might be useful to put this in the status bar).

Building and Installing

Currently you need to build it from source (not that big) with cargo and then, optionally, move it to your PATH. In the example bellow I use /usr/local/bin/ as the PREFIX (target) directory.

cargo build --release
cp -f ./target/release/racf /usr/local/bin/

Alternatively use cargo install racf

Configuration

This repo contains racf.toml configuration example with the respective documentation for it's parameters.

racf searches config files in:

  1. /etc/racf.toml
  2. /etc/racf/racf.toml
  3. /etc/racf/config.toml

The first config file that is found is used.

You can copy the file like so:

cp -f racf.toml /etc/racf.toml

or simply copy and paste it.

TODO

  • Implement user space for thermal controls (just like thermald) [seems a bit complicated]
  • Allow to define profiles with an Optional battery percentage value

Dependencies

~6MB
~114K SLoC